From 2ee5dca5bd84ad48c5ebe03cfc1ac5cbc981f49d Mon Sep 17 00:00:00 2001 From: tmont Date: Tue, 21 Sep 2021 23:35:42 -0700 Subject: [PATCH] I AM ERROR. --- .gitignore | 2 + package-lock.json | 781 ++++++++++++++++++ package.json | 8 + public/brilliant-363636.png | Bin 0 -> 151 bytes public/font/license.txt | 4 + public/font/readme.txt | 16 + .../font/zelda-ii-the-adventure-of-link.png | Bin 0 -> 2764 bytes .../font/zelda-ii-the-adventure-of-link.ttf | Bin 0 -> 26256 bytes public/iamerror-template.png | Bin 0 -> 1846 bytes public/index.html | 241 ++++++ public/zelda2-error.png | Bin 0 -> 256 bytes scripts/cfn/iamerror.yaml | 105 +++ scripts/deploy.sh | 36 + scripts/update-stack.sh | 123 +++ 14 files changed, 1316 insertions(+) create mode 100644 .gitignore create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/brilliant-363636.png create mode 100644 public/font/license.txt create mode 100644 public/font/readme.txt create mode 100644 public/font/zelda-ii-the-adventure-of-link.png create mode 100644 public/font/zelda-ii-the-adventure-of-link.ttf create mode 100644 public/iamerror-template.png create mode 100644 public/index.html create mode 100644 public/zelda2-error.png create mode 100644 scripts/cfn/iamerror.yaml create mode 100755 scripts/deploy.sh create mode 100755 scripts/update-stack.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7a1537b --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea +node_modules diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..1c91dc1 --- /dev/null +++ b/package-lock.json @@ -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 + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..83ca536 --- /dev/null +++ b/package.json @@ -0,0 +1,8 @@ +{ + "name": "iamerrorgenerator", + "version": "1.0.0", + "devDependencies": { + "@aws-sdk/client-cloudformation": "3.33.0", + "tail-stack-events": "2.1.0" + } +} diff --git a/public/brilliant-363636.png b/public/brilliant-363636.png new file mode 100644 index 0000000000000000000000000000000000000000..37ed9c0233648648112f2324feb575e5599172cc GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^%plAGBp8aFUnK)6mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_KaeNl s>Eal|aXtA;%9DhoU%&fX=e7zm@WwJZryjEq0?IRZy85}Sb4q9e0In}4^8f$< literal 0 HcmV?d00001 diff --git a/public/font/license.txt b/public/font/license.txt new file mode 100644 index 0000000..746c510 --- /dev/null +++ b/public/font/license.txt @@ -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/). diff --git a/public/font/readme.txt b/public/font/readme.txt new file mode 100644 index 0000000..37fd18b --- /dev/null +++ b/public/font/readme.txt @@ -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. diff --git a/public/font/zelda-ii-the-adventure-of-link.png b/public/font/zelda-ii-the-adventure-of-link.png new file mode 100644 index 0000000000000000000000000000000000000000..81fa0899a86d8d1976b4e33dcf7054aac7931dfc GIT binary patch literal 2764 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 G{`@~sB38lx literal 0 HcmV?d00001 diff --git a/public/iamerror-template.png b/public/iamerror-template.png new file mode 100644 index 0000000000000000000000000000000000000000..43529a78a95430c7529aab2148cb0394a5e95757 GIT binary patch literal 1846 zcmZ`)doFz3a2q-k;CfYwfkyUZ1`84=nGm z32ORk004r=VYg!dKuQW^DzGvd)%~)nOmLK|haV1y8iN$T>N4NX74#)9M?C!0^$y%(9JH3m}46eQEzKE-+1c;po4 z=+30X_|Gq{+&7j<#kYu5M*M21`?Dc>@)Csn`z%aoJZBW~442rp(OX}$vC*p2FYfoc zlDX7^ce1Gq7O(8@zVK&|a$Ep^1L+>gVAtbq7-^?!BkQ39S=Yw-5GO zUKa2L^VS>ZeXx~Qy}6g9785z5_6joSlK0Kc8+{wNvAxlrAdatSQA4#H!2PK&&F-GR z^Zow%5-fxRO#U%#FdCkvGt@)U(7j{c;Rz0S`|dY8(z9$Xx}SG5uZ?|D z^iB9ws>)DWf?;-6F|EBgyT+7A+Sgh*T~T=_75mHF?`KcdpQc@^FSE>vHh|i~%gW2x zz7O~}LZ%i2Trfvan`)Jaz1`Y{HyuTzb^G$GOhe)CIjk3GlmA8l9@INxdn{Vw#tbiz zP4J_U)O!P}P*X*peN9waMa0g?AAV0to{`&Yrl!GP5uQqwC!n@=~GC+5Bg*ZyL4yXedwz` z6tl!yz z{-^0w(c|*wUU=O)FBkHE>QaMwW}Sy&jW*m^2D2iswZ%uM<5+1n<`?^0SecUlGA56xs*g(M5rA zsO`xnn(q?o1!zPGyh^7q|7uHQJGY$ffF;DL?Q*alo;I{odXTI><6&jZDcq(AiR~A~{THZ0 z_)oW-SagDyK>vfM&wB?e;y2d~E=ykiOfkpD(%BkeCBkgWqUtbFAfWu~8bH;8{Vsy$Y!!1A`oZ1X!izyi-T*C_9D`vzs(s-K&{LXlaUt^`;<@Mr&%5mAx8Gsd?QmTxS4U0z;Ib7z zr@FSHk%E%Qx&UwOBaa=~oYw$$B4Xd`C>Dm3F#5!aNCtM>OwI@BQNlpLB9nn{XrNxu zWLYtdL<7^1ZTsDn#w4nWaFS<;VwkxK&aniuQYb*qv~TClnZORB?=+PsaE6rk{1s}b z93~Rn<~5X8mhuW|>~qP-KJ9&!BooivYYJ28;yY*-LH{39_*LRtE;%Nnb}&i#@qmZB Lx7$-!cJhA!iN!F_ literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..37bf2dd --- /dev/null +++ b/public/index.html @@ -0,0 +1,241 @@ + + + + + I AM ERROR. + + + + + + + + +

I AM ERROR GENERATOR.

+
+
+ +
+ +

+ +

+
+ + + + diff --git a/public/zelda2-error.png b/public/zelda2-error.png new file mode 100644 index 0000000000000000000000000000000000000000..bc202871680ead3349e91abbacbeba2960208dc6 GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH3?%tPCZz)@=3*z$5DpHG+YkL80J%H?J|V6^ z8VDK~KK$9UVbX`UsXz{6NswPKgTu2MX+X|oPZ!4!iOb0e4onOA1ZJ6 /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 "$@"