I AM ERROR.
This commit is contained in:
commit
2ee5dca5bd
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
.idea
|
||||
node_modules
|
781
package-lock.json
generated
Normal file
781
package-lock.json
generated
Normal file
@ -0,0 +1,781 @@
|
||||
{
|
||||
"name": "iamerrorgenerator",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@aws-crypto/ie11-detection": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-1.0.0.tgz",
|
||||
"integrity": "sha512-kCKVhCF1oDxFYgQrxXmIrS5oaWulkvRcPz+QBDMsUr2crbF4VGgGT6+uQhSwJFdUAQ2A//Vq+uT83eJrkzFgXA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^1.11.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@aws-crypto/sha256-browser": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-1.2.1.tgz",
|
||||
"integrity": "sha512-WX/Wp6sXPhcBWx/w1aSJv3bDJL0ut5Ik6hl7yfqA1pn3cfsahl4rgHzRRXqYfJ+hnhnCqdgadS17wyBbVPsK+w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-crypto/ie11-detection": "^1.0.0",
|
||||
"@aws-crypto/sha256-js": "^1.2.1",
|
||||
"@aws-crypto/supports-web-crypto": "^1.0.0",
|
||||
"@aws-crypto/util": "^1.2.1",
|
||||
"@aws-sdk/types": "^3.1.0",
|
||||
"@aws-sdk/util-locate-window": "^3.0.0",
|
||||
"tslib": "^1.11.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@aws-crypto/sha256-js": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.2.1.tgz",
|
||||
"integrity": "sha512-KtZ4qFDWZy6pKcky6RvwSytR/I8vPX9Z47pXh9sOuTcxjjtcegzS2uupg9vo0vbFcAWkSHVOEmNPh6ygiC3VFQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-crypto/util": "^1.2.1",
|
||||
"@aws-sdk/types": "^3.1.0",
|
||||
"tslib": "^1.11.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@aws-crypto/supports-web-crypto": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-1.0.0.tgz",
|
||||
"integrity": "sha512-IHLfv+WmVH89EW4n6a5eE8/hUlz6qkWGMn/v4r5ZgzcXdTC5nolii2z3k46y01hWRiC2PPhOdeSLzMUCUMco7g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^1.11.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@aws-crypto/util": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-1.2.1.tgz",
|
||||
"integrity": "sha512-H6Qrl28lzGGXZgLkdP7DQpJ3D3jJagQJugziThcqZCJVUT0HABHJt9EQMiiuf93KcUV/MMoisl56UfCxCFfmWQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/types": "^3.1.0",
|
||||
"@aws-sdk/util-utf8-browser": "^3.0.0",
|
||||
"tslib": "^1.11.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@aws-sdk/abort-controller": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.32.0.tgz",
|
||||
"integrity": "sha512-fGGlLbGzbfT8lWMt26Cr4lXpYN8rofraIK3mW9cUnV4dwFO/4UJw9m35GU/YNsC1MLzTI9Q1e08kZP+1yubvaw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/client-cloudformation": {
|
||||
"version": "3.33.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudformation/-/client-cloudformation-3.33.0.tgz",
|
||||
"integrity": "sha512-Jfz1okEn7J8tG9fCPtLouVSSUaG1vZtUi9eT+w/GcaoQs+41yQAgdj/gU6jreCf0urS0h/X+T+crNBQbbKiLzQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-crypto/sha256-browser": "^1.0.0",
|
||||
"@aws-crypto/sha256-js": "^1.0.0",
|
||||
"@aws-sdk/client-sts": "3.33.0",
|
||||
"@aws-sdk/config-resolver": "3.33.0",
|
||||
"@aws-sdk/credential-provider-node": "3.33.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.32.0",
|
||||
"@aws-sdk/hash-node": "3.32.0",
|
||||
"@aws-sdk/invalid-dependency": "3.32.0",
|
||||
"@aws-sdk/middleware-content-length": "3.32.0",
|
||||
"@aws-sdk/middleware-host-header": "3.32.0",
|
||||
"@aws-sdk/middleware-logger": "3.32.0",
|
||||
"@aws-sdk/middleware-retry": "3.32.0",
|
||||
"@aws-sdk/middleware-serde": "3.32.0",
|
||||
"@aws-sdk/middleware-signing": "3.33.0",
|
||||
"@aws-sdk/middleware-stack": "3.32.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.32.0",
|
||||
"@aws-sdk/node-config-provider": "3.32.0",
|
||||
"@aws-sdk/node-http-handler": "3.32.0",
|
||||
"@aws-sdk/protocol-http": "3.32.0",
|
||||
"@aws-sdk/smithy-client": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"@aws-sdk/url-parser": "3.32.0",
|
||||
"@aws-sdk/util-base64-browser": "3.32.0",
|
||||
"@aws-sdk/util-base64-node": "3.32.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.32.0",
|
||||
"@aws-sdk/util-body-length-node": "3.32.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.32.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.33.0",
|
||||
"@aws-sdk/util-utf8-browser": "3.32.0",
|
||||
"@aws-sdk/util-utf8-node": "3.32.0",
|
||||
"@aws-sdk/util-waiter": "3.32.0",
|
||||
"entities": "2.2.0",
|
||||
"fast-xml-parser": "3.19.0",
|
||||
"tslib": "^2.3.0",
|
||||
"uuid": "^8.3.2"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/client-sso": {
|
||||
"version": "3.33.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.33.0.tgz",
|
||||
"integrity": "sha512-NADcWgmcBFwfe2Fl26MJ8vpO34aGspgASh7WhVpbjN8R8hjxQJTJihpETieZ8foKZTp576LgedOxAHRYgMOiew==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-crypto/sha256-browser": "^1.0.0",
|
||||
"@aws-crypto/sha256-js": "^1.0.0",
|
||||
"@aws-sdk/config-resolver": "3.33.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.32.0",
|
||||
"@aws-sdk/hash-node": "3.32.0",
|
||||
"@aws-sdk/invalid-dependency": "3.32.0",
|
||||
"@aws-sdk/middleware-content-length": "3.32.0",
|
||||
"@aws-sdk/middleware-host-header": "3.32.0",
|
||||
"@aws-sdk/middleware-logger": "3.32.0",
|
||||
"@aws-sdk/middleware-retry": "3.32.0",
|
||||
"@aws-sdk/middleware-serde": "3.32.0",
|
||||
"@aws-sdk/middleware-stack": "3.32.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.32.0",
|
||||
"@aws-sdk/node-config-provider": "3.32.0",
|
||||
"@aws-sdk/node-http-handler": "3.32.0",
|
||||
"@aws-sdk/protocol-http": "3.32.0",
|
||||
"@aws-sdk/smithy-client": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"@aws-sdk/url-parser": "3.32.0",
|
||||
"@aws-sdk/util-base64-browser": "3.32.0",
|
||||
"@aws-sdk/util-base64-node": "3.32.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.32.0",
|
||||
"@aws-sdk/util-body-length-node": "3.32.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.32.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.33.0",
|
||||
"@aws-sdk/util-utf8-browser": "3.32.0",
|
||||
"@aws-sdk/util-utf8-node": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/client-sts": {
|
||||
"version": "3.33.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.33.0.tgz",
|
||||
"integrity": "sha512-5UnPi69MUHO6rhuzBYmxDrZ9wYdUvCiP2S8kp3xPwLEAyMNIrFbMBkuC+BhSAsIlaToxGz1ScouVQH6GFcf46Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-crypto/sha256-browser": "^1.0.0",
|
||||
"@aws-crypto/sha256-js": "^1.0.0",
|
||||
"@aws-sdk/config-resolver": "3.33.0",
|
||||
"@aws-sdk/credential-provider-node": "3.33.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.32.0",
|
||||
"@aws-sdk/hash-node": "3.32.0",
|
||||
"@aws-sdk/invalid-dependency": "3.32.0",
|
||||
"@aws-sdk/middleware-content-length": "3.32.0",
|
||||
"@aws-sdk/middleware-host-header": "3.32.0",
|
||||
"@aws-sdk/middleware-logger": "3.32.0",
|
||||
"@aws-sdk/middleware-retry": "3.32.0",
|
||||
"@aws-sdk/middleware-sdk-sts": "3.33.0",
|
||||
"@aws-sdk/middleware-serde": "3.32.0",
|
||||
"@aws-sdk/middleware-signing": "3.33.0",
|
||||
"@aws-sdk/middleware-stack": "3.32.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.32.0",
|
||||
"@aws-sdk/node-config-provider": "3.32.0",
|
||||
"@aws-sdk/node-http-handler": "3.32.0",
|
||||
"@aws-sdk/protocol-http": "3.32.0",
|
||||
"@aws-sdk/smithy-client": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"@aws-sdk/url-parser": "3.32.0",
|
||||
"@aws-sdk/util-base64-browser": "3.32.0",
|
||||
"@aws-sdk/util-base64-node": "3.32.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.32.0",
|
||||
"@aws-sdk/util-body-length-node": "3.32.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.32.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.33.0",
|
||||
"@aws-sdk/util-utf8-browser": "3.32.0",
|
||||
"@aws-sdk/util-utf8-node": "3.32.0",
|
||||
"entities": "2.2.0",
|
||||
"fast-xml-parser": "3.19.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/config-resolver": {
|
||||
"version": "3.33.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.33.0.tgz",
|
||||
"integrity": "sha512-+2uySfe1B8bxEI8zhqRYTWAajIchjFeamNGaOX5jM6XPLBfBfZYSFgrtqe3d6ra+jsqHXwm/Z1OYUdVkEXKapA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/signature-v4": "3.33.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/credential-provider-env": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.32.0.tgz",
|
||||
"integrity": "sha512-L/YL20wmgXY3R+6lZ94aIomPVIwxj4obfZkjSEncFZwBeB1A7UPSOsqrXFwrag5rPwgfyzy6Dgz1sIUYcdH1XQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/property-provider": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/credential-provider-imds": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.32.0.tgz",
|
||||
"integrity": "sha512-jRXqE0nQta91KVNKtVl3Pqc/vveGEaLfWvqhkJEbhVX+myI5pzTLxINNyTR111oBvoq1sFIeqJQY0KT3qn5BMA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/node-config-provider": "3.32.0",
|
||||
"@aws-sdk/property-provider": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"@aws-sdk/url-parser": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/credential-provider-ini": {
|
||||
"version": "3.33.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.33.0.tgz",
|
||||
"integrity": "sha512-a8UvxsB1+8BSlotqNLleqJzNLUGDInyG9zCAmHRNujkNkkY+1DpJ30e2ZwtBzcz25cx0ULT4OgHHlqETGEXPwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/credential-provider-env": "3.32.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.32.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.33.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.32.0",
|
||||
"@aws-sdk/property-provider": "3.32.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"@aws-sdk/util-credentials": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/credential-provider-node": {
|
||||
"version": "3.33.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.33.0.tgz",
|
||||
"integrity": "sha512-aZNYt7BOTkBMdpcdXF5livfGcP5sZRYAnO0i2o6dkjnOJ5nl2p014FS+xJNSk5/rtV3p7n740bQ5mMdz/kngHQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/credential-provider-env": "3.32.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.32.0",
|
||||
"@aws-sdk/credential-provider-ini": "3.33.0",
|
||||
"@aws-sdk/credential-provider-process": "3.32.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.33.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.32.0",
|
||||
"@aws-sdk/property-provider": "3.32.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"@aws-sdk/util-credentials": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/credential-provider-process": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.32.0.tgz",
|
||||
"integrity": "sha512-9DbcunIMW6Xmpq9mDlNlZ59q23X37uEfi9aESX1fBtu6r2cfbNKPZyY1984GsDLA3jEnXj+LhNympeAD2psAew==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/property-provider": "3.32.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"@aws-sdk/util-credentials": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/credential-provider-sso": {
|
||||
"version": "3.33.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.33.0.tgz",
|
||||
"integrity": "sha512-3KyvrpiOeCx93DfelQZz5IRLN49Il4sNpIySVgJSG9WwMVJC/vBHukBwB89hkEUifPtw5lMcKb6MJlEq7+sgxQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/client-sso": "3.33.0",
|
||||
"@aws-sdk/property-provider": "3.32.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"@aws-sdk/util-credentials": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/credential-provider-web-identity": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.32.0.tgz",
|
||||
"integrity": "sha512-0aqG2ioVoekXgTdlYhcbOM3HDsgq7J1SRwib/jpRy/gKa+EeYwk79NI6SnMpSQH8ThHwSK5LCe0SCBj8G5mCCg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/property-provider": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/fetch-http-handler": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.32.0.tgz",
|
||||
"integrity": "sha512-gPozFdAjIyj7XiUemJHuwKIFpd3bpA+P5GjYhnWRW/iV2vlmR+q4M8EcgxWyf55ME8ZTj9CpEMGED8u8Hpkrzg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/protocol-http": "3.32.0",
|
||||
"@aws-sdk/querystring-builder": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"@aws-sdk/util-base64-browser": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/hash-node": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.32.0.tgz",
|
||||
"integrity": "sha512-SQf10cM67WuZ1rFKqvxzgKS/rD6B0jM/1CUGHR2p6HfxlWQyGn4ea4fpyqDzZ53D0msmYPx06LmIQtmcc0kMgQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"@aws-sdk/util-buffer-from": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/invalid-dependency": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.32.0.tgz",
|
||||
"integrity": "sha512-ISX2d4sXeZSOYk5Bger9VAVigEE0Jgb2xucjqplcg9+Q0/Tm4PwPJTXgYXpc/fGxkVIy535fl/lrHnZZT/tTHA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/is-array-buffer": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.32.0.tgz",
|
||||
"integrity": "sha512-ywBtlNwQzA3971o+cG2WptNhARFQBSM7PX+l/LJA/XwczE0ZPcTVACbSDu+Aqphz0XjFZ8FDoYMTdbZZeVR4wQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/middleware-content-length": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.32.0.tgz",
|
||||
"integrity": "sha512-6paddPqlx86OyGCtf2IFVQd4eJWRotpYLCfEcaxno/ihoybhOgSSL3kvRMy77Y168jYjB88kilACzEVrOg8gYA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/protocol-http": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/middleware-host-header": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.32.0.tgz",
|
||||
"integrity": "sha512-zL2zj+HU/t4hU/btzyuKU7+Ct3GuyGUCaex1wE1wilLgiMQWlHx6tAVyA6lT3Zie4helHiIEnf1wYShm+Kmv4w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/protocol-http": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/middleware-logger": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.32.0.tgz",
|
||||
"integrity": "sha512-d6HH0SMI0m4U9lHk35zAbovop3ivHreZvcH5jw0A64izZQt5eqRbre+R0sfK+UjC1bARo1Wb+SaHcSDmxrqrJg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/middleware-retry": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.32.0.tgz",
|
||||
"integrity": "sha512-i5Uz/Z67kq/whrW+ZROgqz2NKNVZIGIk1V6tFte48jw1L2PMu+AQkgwKufY30p7oxOn0/v1qu2VMz0BBFYVeoQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/protocol-http": "3.32.0",
|
||||
"@aws-sdk/service-error-classification": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0",
|
||||
"uuid": "^8.3.2"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/middleware-sdk-sts": {
|
||||
"version": "3.33.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.33.0.tgz",
|
||||
"integrity": "sha512-svCAHOAg3KXgxlVtrjtmwey8/tc4tkGGpq+8EFajrf0/UMkGSnd7Lg1lelpTsJa02DdSwuww8z7TIysTEe5Z5w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/middleware-signing": "3.33.0",
|
||||
"@aws-sdk/property-provider": "3.32.0",
|
||||
"@aws-sdk/protocol-http": "3.32.0",
|
||||
"@aws-sdk/signature-v4": "3.33.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/middleware-serde": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.32.0.tgz",
|
||||
"integrity": "sha512-y3bFjq8Fm9jd0EKbDyohrHtpZLMO2GLabvpNTcQpt/2YOv8wAMPWpCllJXdFAGRav5xkzMJItYFNDuLB5foHyQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/middleware-signing": {
|
||||
"version": "3.33.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.33.0.tgz",
|
||||
"integrity": "sha512-GBqTM2gAFo/UTRWkTUipbHHyGkGXDOjimQDNscoUyTXeA8q0J7+k1z5ZSJLVtAUge7LOJmE3VSkOEc7C3SDx1w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/property-provider": "3.32.0",
|
||||
"@aws-sdk/protocol-http": "3.32.0",
|
||||
"@aws-sdk/signature-v4": "3.33.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/middleware-stack": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.32.0.tgz",
|
||||
"integrity": "sha512-tklpaAeAKGQmdbj98unhr/cSh5nJCkPJFuK2R1+LOY57IiQSzKRg+CEF3wDU9DH/ILv6r/z5wxVlXxO8T0b+3Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/middleware-user-agent": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.32.0.tgz",
|
||||
"integrity": "sha512-lg4Y8Z6EwiNpHEPoOfQtchJEm41xiVyr3wFoVWNShhRncn39FMTVJGx3uqAgh/HLSoDZ4W8MNfm3jUnvUb1rEw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/protocol-http": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/node-config-provider": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.32.0.tgz",
|
||||
"integrity": "sha512-7Ro3loMlm5DA6IGFbSmBqoopgYojm5lQhuZksSI2xPXCBHyu3ym6a39ikjVsEmSQrJdXRiB77XM94fM+jGxjCg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/property-provider": "3.32.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/node-http-handler": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.32.0.tgz",
|
||||
"integrity": "sha512-LHO+ikctC+FdPINoh84T5ooioEPjrzYrXpRXa1tufTfVN6DmtaFxukBa0XAGv/PGyL5obfHmi1ErPFSLwBfr9A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/abort-controller": "3.32.0",
|
||||
"@aws-sdk/protocol-http": "3.32.0",
|
||||
"@aws-sdk/querystring-builder": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/property-provider": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.32.0.tgz",
|
||||
"integrity": "sha512-RucvDIm2UX45xz0UvypO/KRKR0FmmLgYg3I++Twjl2aA2TGh/xR8AImbhmL6P1u98e9agkSnZVJHBMfMPbqALg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/protocol-http": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.32.0.tgz",
|
||||
"integrity": "sha512-5ORPDE+LGjSoeeaR/LIVVwJN51AvaHo+lQe9gH1jpS6/0nGXlcHOgAPRSz8+gr5rVFvwUx8GnjNSqxChRnfbAQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/querystring-builder": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.32.0.tgz",
|
||||
"integrity": "sha512-L+C7Nqg/h3gN9TksUrbT1h75+Cdj2tb4OOWcjv4z8Ud88Rc9ZXLEL2cAjKuAKJqWkVHEunm3X2Nm92x3bUNKoQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"@aws-sdk/util-uri-escape": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/querystring-parser": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.32.0.tgz",
|
||||
"integrity": "sha512-iuoVZ469fn0iU4MELLuUDoS9FJeW5UG2rejk6k395QAPSjHQa/6NbBGt0cKUOWloMxli3c8VEprZbnl/QVpujA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/service-error-classification": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.32.0.tgz",
|
||||
"integrity": "sha512-hzshKuW6x9Qe43wF0dtAS1W/NzeZUUXb/FlV+733Jw+MZlZxVaCiYSTGi8azK1coLNZ5JhesmrRbT5JitoOe/w==",
|
||||
"dev": true
|
||||
},
|
||||
"@aws-sdk/shared-ini-file-loader": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.32.0.tgz",
|
||||
"integrity": "sha512-d5Djy/mudtIiwk3nRoPm/+7OEwYWgxprLlJN7PB2ehwaolQHOZVEkJtoJ/e5hFEWZ96T7QwsHbEvCrSMNjDRkQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/signature-v4": {
|
||||
"version": "3.33.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.33.0.tgz",
|
||||
"integrity": "sha512-HuB9dvXV+SYwry6DlV8EHHuh7SlK5jSxLThQ4LOtqkNKC14W+8gQxhu7il/0aDJyCELblEQ+DBmrsB74LOmhGA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/is-array-buffer": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"@aws-sdk/util-hex-encoding": "3.32.0",
|
||||
"@aws-sdk/util-uri-escape": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/smithy-client": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.32.0.tgz",
|
||||
"integrity": "sha512-FjGujKpctsI18vJGVvZ9FmqAWffvdmT0o6nL3vD8hWoi4O2x05FGpx5rrAPo+wwhOga6ejuKtj3T9lhjU9c2vw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/middleware-stack": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/types": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.32.0.tgz",
|
||||
"integrity": "sha512-ZkB+jFk6FZ9wA9wvQTqv6ao2sPSVeMlUF349NecPGLtpy2c/+RPxO10NmJ8yG9jFfmB0OXLnEPrDR7VinxTHNw==",
|
||||
"dev": true
|
||||
},
|
||||
"@aws-sdk/url-parser": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.32.0.tgz",
|
||||
"integrity": "sha512-K7hvWjFTAqfBhg9nP7zdfGqGY4ioOAqfDXCt+LYtoAkVcdyic+LcUgAB9pwxujN0SZ2hJYaBj93ERA/qJu/FVw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/querystring-parser": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-base64-browser": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.32.0.tgz",
|
||||
"integrity": "sha512-fWheT9FmpKWbSqyk+IpiXFADUXOHhEIBf8ipDK4Rghy6NtlipJFYOeg6ACoafRG+1BV9M2zz3WqS3Xfnck3Muw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-base64-node": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.32.0.tgz",
|
||||
"integrity": "sha512-Fy3rGPUjWVtuiosUhcKtnuhsCLs7upDWWk1D35op2hRgyUXypYdSD1+mdJyQTUFOrw5P2MlbrvBAbQA3TYv0KA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/util-buffer-from": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-body-length-browser": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.32.0.tgz",
|
||||
"integrity": "sha512-9Poj9JXMiyEM3mQdM0SgZGl7hjb8KvPS+HO3+BPoC5aDD5d10KXmC3rIxxV4YHM7wMbZZco7qhoyF9fCnXOiaQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-body-length-node": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.32.0.tgz",
|
||||
"integrity": "sha512-9o4ZhjkGsLBN2WIYHWEuHk4f/oFa17IIh8Errjhub/17MKd5uX5cPVw/Bs4tNIzdFh/mz+bcbOeEnBQirUpoPg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-buffer-from": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.32.0.tgz",
|
||||
"integrity": "sha512-Vt6JQ48jYwnvPMJxv51Eh/DAS2ox/nNETxQjnpMnlKKkXmyxeH1nSQB47rgXkfmw4luvaRdiWCpx5XnU4dMgbQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/is-array-buffer": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-credentials": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-credentials/-/util-credentials-3.32.0.tgz",
|
||||
"integrity": "sha512-iHk7opjLLw8gjJdu2ut4GC+KptsTFVABRg5NNVHE0VDjd2h7kaRFKiAsEgBqD8lqEU+06n+8mOjxKN1reRfnAw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/shared-ini-file-loader": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-hex-encoding": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.32.0.tgz",
|
||||
"integrity": "sha512-N8h5Ci74S+cahVJ0P4BWo4N1kSqsIYYzYylc5lNrrLH6oc34tg48yjJK4mKF3B0jkPZ01sb7yAufS89cPmOtgg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-locate-window": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.32.0.tgz",
|
||||
"integrity": "sha512-P5sOlu7AhzxhyUtKj4aYK35MrXFrt64XivwgAUo7h+ZUx6iWUEflpurMqm2dExUYNVnpGaeTKkNX8qdvbnDGZw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-uri-escape": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.32.0.tgz",
|
||||
"integrity": "sha512-iFNCobc5OCVtTcNTFTUGB1ib5p+EOLV2s6KYej66dRUxBdioi4a2X63Exx/jOP7jS6TRTc5pTF6B+Z0uKjMe9w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-user-agent-browser": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.32.0.tgz",
|
||||
"integrity": "sha512-CaDg+lQaZLUwYtMq20FVgK8xz51zNGtolGblpM4ng6pZceH7EKSOgC5/E1VUb7O53vhpVlyVVFM1GD50QFOzcw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"bowser": "^2.11.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-user-agent-node": {
|
||||
"version": "3.33.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.33.0.tgz",
|
||||
"integrity": "sha512-2xfZHx3hzlqLdvAO/MFfs8ylAqtnFWwAeFVvBv6+CBWjDHvPJvdq2PWrPnr/j5gCmy6BrBPpbzt8mT3VJpAblA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/node-config-provider": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-utf8-browser": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.32.0.tgz",
|
||||
"integrity": "sha512-KjyGj1TFmR5siw5960hKaicdtyQJJDXgiXm0CM7PMXKLgrT8C2/PmVrpF2qYDGpGgfXVRgZNHNMv3XNMAw9vlw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-utf8-node": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.32.0.tgz",
|
||||
"integrity": "sha512-a+CkvoVe4mCXWau+vyEn++Wjj9LhE3vrbqwt7R0knm/ep0SEnMnwEG0KFVogBK6Zfwf2tqAzT/0JFFZvd3DXTg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/util-buffer-from": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-waiter": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.32.0.tgz",
|
||||
"integrity": "sha512-kd8RI2A8JO/55FL2AIzDHEd7b5KThU7+l7798fTUt2/2iWjIGDm8srGFCvlQFoo1zcgqtJCHz21x1gRNF2XvzA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@aws-sdk/abort-controller": "3.32.0",
|
||||
"@aws-sdk/types": "3.32.0",
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"bowser": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz",
|
||||
"integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==",
|
||||
"dev": true
|
||||
},
|
||||
"entities": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
|
||||
"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
|
||||
"dev": true
|
||||
},
|
||||
"fast-xml-parser": {
|
||||
"version": "3.19.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz",
|
||||
"integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==",
|
||||
"dev": true
|
||||
},
|
||||
"tail-stack-events": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tail-stack-events/-/tail-stack-events-2.1.0.tgz",
|
||||
"integrity": "sha512-c/GTzZqW7dM/jOyswiLW8VD6iSMXuoyoyFn2cF5kyesAqmtAbuKwtm0Gr+7MYacJ3BsVg0RHkAulnIQnUYgbJw==",
|
||||
"dev": true
|
||||
},
|
||||
"tslib": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
||||
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
|
||||
"dev": true
|
||||
},
|
||||
"uuid": {
|
||||
"version": "8.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
||||
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
8
package.json
Normal file
8
package.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "iamerrorgenerator",
|
||||
"version": "1.0.0",
|
||||
"devDependencies": {
|
||||
"@aws-sdk/client-cloudformation": "3.33.0",
|
||||
"tail-stack-events": "2.1.0"
|
||||
}
|
||||
}
|
BIN
public/brilliant-363636.png
Normal file
BIN
public/brilliant-363636.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 151 B |
4
public/font/license.txt
Normal file
4
public/font/license.txt
Normal file
@ -0,0 +1,4 @@
|
||||
The FontStruction “Zelda II: The Adventure of Link”
|
||||
(https://fontstruct.com/fontstructions/show/1695575) by Patrick Lauke is
|
||||
licensed under a Creative Commons Attribution license
|
||||
(http://creativecommons.org/licenses/by/3.0/).
|
16
public/font/readme.txt
Normal file
16
public/font/readme.txt
Normal file
@ -0,0 +1,16 @@
|
||||
The font file in this archive was created using Fontstruct the free, online
|
||||
font-building tool.
|
||||
This font was created by Patrick Lauke.
|
||||
This font has a homepage where this archive and other versions may be found:
|
||||
https://fontstruct.com/fontstructions/show/1695575
|
||||
|
||||
Try Fontstruct at https://fontstruct.com
|
||||
It’s easy and it’s fun.
|
||||
|
||||
Fontstruct is copyright ©2019 Rob Meek
|
||||
|
||||
LEGAL NOTICE:
|
||||
In using this font you must comply with the licensing terms described in the
|
||||
file “license.txt” included with this archive.
|
||||
If you redistribute the font file in this archive, it must be accompanied by all
|
||||
the other files from this archive, including this one.
|
BIN
public/font/zelda-ii-the-adventure-of-link.png
Normal file
BIN
public/font/zelda-ii-the-adventure-of-link.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
BIN
public/font/zelda-ii-the-adventure-of-link.ttf
Normal file
BIN
public/font/zelda-ii-the-adventure-of-link.ttf
Normal file
Binary file not shown.
BIN
public/iamerror-template.png
Normal file
BIN
public/iamerror-template.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 KiB |
241
public/index.html
Normal file
241
public/index.html
Normal file
@ -0,0 +1,241 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>I AM ERROR.</title>
|
||||
<link rel="icon" type="image/png" href="zelda2-error.png" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<meta name="description" content="I AM ERROR. image generator"/>
|
||||
<meta property="og:description" content="I AM ERROR. image generator"/>
|
||||
<meta property="og:title" content="I AM ERROR."/>
|
||||
<style>
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: sans-serif;
|
||||
font-size: 16px;
|
||||
background-color: #2a2a2a;
|
||||
color: white;
|
||||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAAAAABzQ+pjAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAUSURBVAjXY9Rk5GBi+vuPhZ2FEQANXQJDZcY4EgAAAABJRU5ErkJggg==');
|
||||
background-repeat: repeat;
|
||||
}
|
||||
|
||||
h1 {
|
||||
text-align: center;
|
||||
font-size: 1rem;
|
||||
margin: 1rem 0;
|
||||
}
|
||||
canvas {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.render {
|
||||
box-shadow:
|
||||
0 0 1px black,
|
||||
2px 2px 5px rgba(0, 0, 0, 0.75);
|
||||
border: 2px solid white;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.render img {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.container {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Zelda II: The Adventure of Link";
|
||||
src: url("./font/zelda-ii-the-adventure-of-link.ttf");
|
||||
}
|
||||
|
||||
.iamerror-text {
|
||||
font-family: "Zelda II: The Adventure of Link", sans-serif;
|
||||
text-shadow: 2px 2px #4240FF;
|
||||
color: white;
|
||||
}
|
||||
|
||||
label {
|
||||
display: block;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#text {
|
||||
width: 256px;
|
||||
height: 150px;
|
||||
background-color: black;
|
||||
border: 4px double white;
|
||||
padding: 2px 10px;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1><span class="iamerror-text">I AM ERROR GENERATOR.</span></h1>
|
||||
<div class="container">
|
||||
<div class="render">
|
||||
<img width="256" height="240" />
|
||||
</div>
|
||||
<canvas id="iamerror" width="256" height="240"></canvas>
|
||||
<p>
|
||||
<textarea id="text" class="iamerror-text" placeholder="I AM ERROR." autofocus maxlength="40"></textarea>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
const colors = {
|
||||
text: '#FFFFFF',
|
||||
textShadow: '#4240FF',
|
||||
background: '#000000',
|
||||
};
|
||||
|
||||
const dimensions = {
|
||||
left: 127,
|
||||
top: 63,
|
||||
width: 80,
|
||||
height: 52,
|
||||
};
|
||||
|
||||
const samples = [
|
||||
'i am error.',
|
||||
'can i eat your ham?',
|
||||
'the crow flies at midnight.',
|
||||
'pull my finger.',
|
||||
'say hi to dark link for me.',
|
||||
'are you my mother?',
|
||||
'you shall not pass.',
|
||||
'it smells like updog in here.',
|
||||
'i like mary poppins.',
|
||||
'oh my god, becky.',
|
||||
'there is a bustle in my hedgerow.',
|
||||
'you are the man now, dog.',
|
||||
'want to see a magic trick?',
|
||||
'yarp.',
|
||||
'narp?',
|
||||
'love is the last bastion of hope.',
|
||||
'my beard is quite luxurious.',
|
||||
'it is the springtime of my loving.',
|
||||
'would you have any grey poupon?',
|
||||
'come with me if you want to live.',
|
||||
'my tummy feels funny.',
|
||||
'are you still touching me?',
|
||||
'your sound card works perfectly.',
|
||||
'life is pain.',
|
||||
'say hello to my little friend.',
|
||||
'please do not make fun of my shirt.',
|
||||
'bagu? what a terrible name.',
|
||||
'i thought you were left- handed?',
|
||||
];
|
||||
|
||||
const charWidth = 8;
|
||||
const charHeight = charWidth;
|
||||
const lineHeight = charHeight;
|
||||
const charsPerLine = Math.floor(dimensions.width / charWidth);
|
||||
const maxLines = Math.floor(dimensions.height / (charHeight + lineHeight));
|
||||
|
||||
const templateImg = document.createElement('img');
|
||||
templateImg.src = './iamerror-template.png';
|
||||
|
||||
const canvas = document.querySelector('#iamerror');
|
||||
const ctx = canvas.getContext('2d');
|
||||
|
||||
let imageLoaded = false;
|
||||
|
||||
const render = () => {
|
||||
const text = input.value || samples[Math.floor(Math.random() * samples.length)];
|
||||
const width = canvas.width;
|
||||
const height = canvas.height;
|
||||
|
||||
ctx.clearRect(0, 0, width, height);
|
||||
ctx.drawImage(templateImg, 0, 0, width, height);
|
||||
|
||||
ctx.font = '7px "Zelda II: The Adventure of Link"';
|
||||
ctx.textBaseline = 'middle';
|
||||
|
||||
const words = text.split(' ').map(word => word.trim());
|
||||
let lineNum = 0;
|
||||
let charPos = 0;
|
||||
while (words.length) {
|
||||
let word = words.shift();
|
||||
|
||||
if (charPos > 0 && charPos + word.length + 1 > charsPerLine) {
|
||||
// word goes on next line
|
||||
charPos = 0;
|
||||
lineNum++;
|
||||
}
|
||||
|
||||
if (charPos > 0) {
|
||||
word = ' ' + word;
|
||||
}
|
||||
|
||||
const fragments = [ '' ];
|
||||
let index = 0;
|
||||
for (let i = 0; i < word.length; i++) {
|
||||
if (fragments[index].length >= charsPerLine) {
|
||||
index++;
|
||||
fragments[index] = '';
|
||||
}
|
||||
|
||||
fragments[index] += word[i];
|
||||
}
|
||||
|
||||
for (const fragment of fragments) {
|
||||
if (lineNum > maxLines) {
|
||||
break;
|
||||
}
|
||||
|
||||
const x = dimensions.left + (charPos * charWidth);
|
||||
const y = dimensions.top + (lineNum * (charHeight + lineHeight));
|
||||
|
||||
ctx.fillStyle = colors.textShadow;
|
||||
ctx.fillText(fragment, x + 1, y + 1);
|
||||
|
||||
ctx.fillStyle = colors.text;
|
||||
ctx.fillText(fragment, x, y);
|
||||
|
||||
charPos += fragment.length;
|
||||
if (charPos >= charsPerLine) {
|
||||
charPos = 0;
|
||||
lineNum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelector('.render img').src = canvas.toDataURL('img/png');
|
||||
};
|
||||
|
||||
const input = document.querySelector('#text');
|
||||
input.addEventListener('input', () => {
|
||||
if (imageLoaded && fontLoaded) {
|
||||
render();
|
||||
}
|
||||
});
|
||||
|
||||
let fontLoaded = false;
|
||||
|
||||
templateImg.addEventListener('load', () => {
|
||||
imageLoaded = true;
|
||||
if (fontLoaded) {
|
||||
setTimeout(render, 1);
|
||||
}
|
||||
});
|
||||
|
||||
const font = new FontFace('"Zelda II: The Adventure of Link"', `url(./font/zelda-ii-the-adventure-of-link.ttf)`);
|
||||
font.load()
|
||||
.then(() => {
|
||||
fontLoaded = true;
|
||||
if (imageLoaded) {
|
||||
setTimeout(render, 1);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error('failed to load custom font', err);
|
||||
});
|
||||
}());
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
BIN
public/zelda2-error.png
Normal file
BIN
public/zelda2-error.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 256 B |
105
scripts/cfn/iamerror.yaml
Normal file
105
scripts/cfn/iamerror.yaml
Normal file
@ -0,0 +1,105 @@
|
||||
AWSTemplateFormatVersion: "2010-09-09"
|
||||
Description: "I AM ERROR. generator static site"
|
||||
|
||||
Resources:
|
||||
IAmErrorSiteBucket:
|
||||
Type: "AWS::S3::Bucket"
|
||||
Properties:
|
||||
BucketName: "iamerrorgenerator.com"
|
||||
PublicAccessBlockConfiguration:
|
||||
BlockPublicAcls: false
|
||||
BlockPublicPolicy: false
|
||||
IgnorePublicAcls: false
|
||||
RestrictPublicBuckets: false
|
||||
DeletionPolicy: Retain
|
||||
|
||||
IAmErrorSiteCachePolicy:
|
||||
Type: "AWS::CloudFront::CachePolicy"
|
||||
Properties:
|
||||
CachePolicyConfig:
|
||||
Comment: "Cache policy for iamerrorgenerator.com distribution"
|
||||
DefaultTTL: 300 # five minutes
|
||||
MaxTTL: 31536000
|
||||
MinTTL: 60
|
||||
Name: "iamerror-cache-policy"
|
||||
ParametersInCacheKeyAndForwardedToOrigin:
|
||||
CookiesConfig:
|
||||
CookieBehavior: none
|
||||
EnableAcceptEncodingBrotli: true
|
||||
EnableAcceptEncodingGzip: true
|
||||
HeadersConfig:
|
||||
HeaderBehavior: none
|
||||
QueryStringsConfig:
|
||||
QueryStringBehavior: none
|
||||
|
||||
IAmErrorSiteDistribution:
|
||||
Type: "AWS::CloudFront::Distribution"
|
||||
Properties:
|
||||
DistributionConfig:
|
||||
Aliases:
|
||||
- iamerrorgenerator.com
|
||||
- iamerror.tmont.com
|
||||
Comment: "Frontend proxy for iamerrorgenerator.com"
|
||||
DefaultCacheBehavior:
|
||||
AllowedMethods:
|
||||
- GET
|
||||
- HEAD
|
||||
CachedMethods:
|
||||
- GET
|
||||
- HEAD
|
||||
CachePolicyId: !Ref IAmErrorSiteCachePolicy
|
||||
Compress: true
|
||||
TargetOriginId: s3-iamerror-bucket
|
||||
ViewerProtocolPolicy: "redirect-to-https"
|
||||
DefaultRootObject: "index.html"
|
||||
Enabled: true
|
||||
HttpVersion: http2
|
||||
IPV6Enabled: true
|
||||
Origins:
|
||||
- DomainName: !GetAtt IAmErrorSiteBucket.RegionalDomainName
|
||||
Id: s3-iamerror-bucket
|
||||
S3OriginConfig:
|
||||
OriginAccessIdentity: ""
|
||||
ViewerCertificate:
|
||||
AcmCertificateArn: "arn:aws:acm:us-east-1:592283802202:certificate/8bb1c1c8-a76c-44fb-9f3a-bfad0c3a5450"
|
||||
MinimumProtocolVersion: "TLSv1"
|
||||
SslSupportMethod: "sni-only"
|
||||
Tags:
|
||||
- Key: app
|
||||
Value: iamerrorgenerator
|
||||
|
||||
IAmErrorSiteDNS:
|
||||
Type: "AWS::Route53::RecordSetGroup"
|
||||
Properties:
|
||||
Comment: "DNS for iamerrorgenerator.com CloudFront proxy"
|
||||
HostedZoneName: "iamerrorgenerator.com."
|
||||
RecordSets:
|
||||
- Name: iamerrorgenerator.com
|
||||
Type: "A"
|
||||
AliasTarget:
|
||||
# https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-hostedzoneid
|
||||
HostedZoneId: "Z2FDTNDATAQYW2"
|
||||
DNSName: !GetAtt IAmErrorSiteDistribution.DomainName
|
||||
- Name: iamerrorgenerator.com
|
||||
Type: "AAAA"
|
||||
AliasTarget:
|
||||
HostedZoneId: "Z2FDTNDATAQYW2"
|
||||
DNSName: !GetAtt IAmErrorSiteDistribution.DomainName
|
||||
|
||||
IAmErrorTmontSiteDNS:
|
||||
Type: "AWS::Route53::RecordSetGroup"
|
||||
Properties:
|
||||
Comment: "DNS for iamerror.tmont.com CloudFront proxy"
|
||||
HostedZoneName: "tmont.com."
|
||||
RecordSets:
|
||||
- Name: iamerror.tmont.com
|
||||
Type: "A"
|
||||
AliasTarget:
|
||||
# https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-hostedzoneid
|
||||
HostedZoneId: "Z2FDTNDATAQYW2"
|
||||
DNSName: !GetAtt IAmErrorSiteDistribution.DomainName
|
||||
- Name: iamerror.tmont.com
|
||||
Type: "AAAA"
|
||||
AliasTarget:
|
||||
HostedZoneId: "Z2FDTNDATAQYW2"
|
||||
DNSName: !GetAtt IAmErrorSiteDistribution.DomainName
|
36
scripts/deploy.sh
Executable file
36
scripts/deploy.sh
Executable file
@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
readonly thisDir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
readonly rootDir="$(dirname "${thisDir}")"
|
||||
|
||||
main() {
|
||||
SECONDS=0
|
||||
echo "copying files to S3..."
|
||||
aws s3 cp --recursive --acl public-read "${rootDir}/public/" s3://iamerrorgenerator.com/
|
||||
|
||||
local distId
|
||||
|
||||
echo "querying for CloudFront distribution..."
|
||||
distId=$(
|
||||
aws cloudfront list-distributions \
|
||||
--query "DistributionList.Items[?contains(Aliases.Items, 'iamerrorgenerator.com')].Id | [0]" \
|
||||
--output text
|
||||
)
|
||||
|
||||
if [[ -z "${distId}" ]]; then
|
||||
echo "failed to find cloudfront distribution"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "found distribution \"${distId}\", invalidating CloudFront cache..."
|
||||
|
||||
aws cloudfront create-invalidation \
|
||||
--distribution-id "${distId}" \
|
||||
--paths '/*'
|
||||
|
||||
echo "all done in ${SECONDS}s"
|
||||
}
|
||||
|
||||
main "$@"
|
123
scripts/update-stack.sh
Executable file
123
scripts/update-stack.sh
Executable file
@ -0,0 +1,123 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
getStackAction() {
|
||||
local stackName=$1
|
||||
local region=$2
|
||||
local command="create"
|
||||
|
||||
aws cloudformation describe-stacks \
|
||||
--stack-name "${stackName}" \
|
||||
--output text \
|
||||
--region "${region}" &> /dev/null
|
||||
|
||||
# shellcheck disable=SC2181
|
||||
if [[ $? -eq 0 ]]; then
|
||||
command="update"
|
||||
fi
|
||||
|
||||
echo "${command}"
|
||||
}
|
||||
|
||||
checkError() {
|
||||
# shellcheck disable=SC2181
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "$1"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
usage() {
|
||||
cat << USAGE
|
||||
Updates or creates a CloudFormation stack
|
||||
|
||||
Usage: $0 [--region region] template.yaml
|
||||
|
||||
Options:
|
||||
|
||||
--region region The region to create/update the stack in (us-west-2)
|
||||
-h|--help Show this message
|
||||
|
||||
Example:
|
||||
$0 path/to/template.yaml
|
||||
USAGE
|
||||
}
|
||||
|
||||
main() {
|
||||
local cfnFile=
|
||||
local region=us-west-2
|
||||
|
||||
parseArgs() {
|
||||
while [[ $# -gt 0 ]]; do
|
||||
local key="$1"
|
||||
shift
|
||||
|
||||
case "${key}" in
|
||||
-h | --help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
--region)
|
||||
region=$1
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
if [[ -n "${cfnFile}" ]]; then
|
||||
echo "only one template file allowed"
|
||||
exit 1
|
||||
fi
|
||||
cfnFile="${key}"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
parseArgs "$@"
|
||||
|
||||
if [[ ! -f "${cfnFile}" ]]; then
|
||||
echo "template \"${cfnFile}\" does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local stackName
|
||||
stackName=$(basename "${cfnFile%.*}")
|
||||
|
||||
local action
|
||||
action=$(getStackAction "${stackName}" "${region}")
|
||||
local command=
|
||||
local extraOpts=
|
||||
if [ "${action}" = "create" ]; then
|
||||
command="create-stack"
|
||||
extraOpts="--on-failure DO_NOTHING"
|
||||
else
|
||||
command="update-stack"
|
||||
fi
|
||||
|
||||
local shouldContinue
|
||||
read -r -p "${action} stack ${stackName} in ${region} (profile: ${AWS_PROFILE}), continue? [y/n] " shouldContinue
|
||||
if [ "${shouldContinue}" != "y" ]; then
|
||||
echo "ok bye"
|
||||
exit
|
||||
fi
|
||||
|
||||
aws cloudformation ${command} \
|
||||
--stack-name "${stackName}" \
|
||||
${extraOpts} \
|
||||
--template-body "file://${cfnFile}" \
|
||||
--region "${region}" \
|
||||
> /dev/null
|
||||
|
||||
checkError "${command} failed"
|
||||
echo
|
||||
|
||||
local -r tailStackEvents="node_modules/.bin/tail-stack-events"
|
||||
if [ -x "${tailStackEvents}" ]; then
|
||||
"${tailStackEvents}" --region "${region}" --stack-name "${stackName}" --die --outputs
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "finished in ${SECONDS}s"
|
||||
}
|
||||
|
||||
main "$@"
|
Loading…
Reference in New Issue
Block a user