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