diff --git a/README.md b/README.md index 0892e0d2a..f25a63b29 100644 --- a/README.md +++ b/README.md @@ -309,6 +309,23 @@ npm run build && npm run deploy | `AWS_SECRET_ACCESS_KEY` | `''` | AWS secret access key for S3 | | `S3_BUCKET_NAME` | `''` | S3 bucket name to deploy into | +### Fastly deployment details + +When deploying, Fastly's API is used to clone the active VCL configuration, update just the +relevant component with content from this repo's `routes.json` file, and activate the new VCL +configuration. + +#### routes.json + +Much of the routes.json file is straightforward, but some fields are not obvious in their purpose. + +`routeAlias` helps us keep the overall length and complexity of the regex comparison code in +Fastly from getting too large. There is one large regex which we have Fastly test the incoming +request URL against to know if it can reply with a static file in S3; if no match is found, we +assume we need to pass the request on to scratchr2. We could test every single route `pattern` +regex in `routes.json`, but many are similar, so instead we just take the unique set of all +`routeAlias` entries, which is shorter and quicker. + ## Windows For development on Windows, you will probably need to use a program that provides you a Unix interface. diff --git a/package-lock.json b/package-lock.json index c3b47c74b..12810de48 100644 --- a/package-lock.json +++ b/package-lock.json @@ -99,8 +99,8 @@ "regenerator-runtime": "0.13.9", "sass": "1.49.7", "sass-loader": "10.2.1", - "scratch-gui": "0.1.0-prerelease.20220605140952", - "scratch-l10n": "3.14.20220605031627", + "scratch-gui": "0.1.0-prerelease.20220706173215", + "scratch-l10n": "3.14.20220703031542", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", "style-loader": "0.12.3", @@ -4824,7 +4824,7 @@ "node_modules/canvas-toBlob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/canvas-toBlob/-/canvas-toBlob-1.0.0.tgz", - "integrity": "sha1-m/MrKGu04SUhiyCO7MgyH9Az5sM=", + "integrity": "sha512-oU5bawygt/Nef9F+C49eTFmzXzz6yKdGqn6J1wn/LZQF5ulnnZVm0KIZzik85I6tjCbZFH6aa47j4bU2tkHxRw==", "dev": true }, "node_modules/capture-exit": { @@ -6933,7 +6933,7 @@ "node_modules/decode-html": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/decode-html/-/decode-html-2.0.0.tgz", - "integrity": "sha1-fQqIfORCgOYJeKcH67f4CB/WHqo=", + "integrity": "sha512-lVJ+EBozhAXA2nSQG+xAgcD0P5K3uejnIIvM09uoQfS8AALkQ+HhHcEUvKovXi0EIpIZWjm0y8X7ULjaJpgY9w==", "dev": true }, "node_modules/decode-uri-component": { @@ -22878,9 +22878,9 @@ } }, "node_modules/scratch-gui": { - "version": "0.1.0-prerelease.20220605140952", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20220605140952.tgz", - "integrity": "sha512-BSYEB10tQx9Y58ERV33CSOAbsLxz+7THzMUN3+QPlKu6lFoK6yB4n9o47A8WFHUiCEoT/J8HWh8juWl88Ic2Sw==", + "version": "0.1.0-prerelease.20220706173215", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20220706173215.tgz", + "integrity": "sha512-pLraYbImVh+LFH4gkFzv+CAEL8akIPwQMtT5YLDD3fJfQ2QU2uT96IHVdHxIY7DLQ1fgupYK0Z+Fa5Ys20mZHA==", "dev": true, "dependencies": { "arraybuffer-loader": "^1.0.6", @@ -22932,13 +22932,13 @@ "redux-throttle": "0.1.1", "scratch-audio": "0.1.0-prerelease.20200528195344", "scratch-blocks": "0.1.0-prerelease.20220524062105", - "scratch-l10n": "3.14.20220605031627", - "scratch-paint": "0.2.0-prerelease.20220605112441", + "scratch-l10n": "3.14.20220620031537", + "scratch-paint": "0.2.0-prerelease.20220620120722", "scratch-render": "0.1.0-prerelease.20211028200436", "scratch-render-fonts": "1.0.0-prerelease.20210401210003", "scratch-storage": "2.0.2", "scratch-svg-renderer": "0.2.0-prerelease.20210727023023", - "scratch-vm": "0.2.0-prerelease.20220602121716", + "scratch-vm": "1.0.1", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", "text-encoding": "0.7.0", @@ -23227,10 +23227,26 @@ "symbol-observable": "^1.0.3" } }, + "node_modules/scratch-gui/node_modules/scratch-l10n": { + "version": "3.14.20220620031537", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.14.20220620031537.tgz", + "integrity": "sha512-PBA/iGtkibhn9wW1SrxnZat5AY5u74p3tildPkVNyOgTxx5oYluaZ63Q+vCLILBkonPT9WE7Wf6pBj7vfN4rlQ==", + "dev": true, + "dependencies": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "babel-plugin-react-intl": "^3.0.1", + "transifex": "1.6.6" + }, + "bin": { + "build-i18n-src": "scripts/build-i18n-src.js", + "tx-push-src": "scripts/tx-push-src.js" + } + }, "node_modules/scratch-gui/node_modules/scratch-paint": { - "version": "0.2.0-prerelease.20220605112441", - "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-0.2.0-prerelease.20220605112441.tgz", - "integrity": "sha512-GgwKhp+yDJNQLbpykw3J5JUgCptgfDW66JObuTLpVDlRUVtbV9eamSuIdUWLgVrbTXVUtfHQT2z1KMi31t4thg==", + "version": "0.2.0-prerelease.20220620120722", + "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-0.2.0-prerelease.20220620120722.tgz", + "integrity": "sha512-QuR9d5Kz2A9Xe1rYBQCCJ4hoSdXL/Uejx7uvwo3o1/u9Cc5cVAN6YIwBkU95lgTcc3OBQkXsTADAorKsavixkQ==", "dev": true, "dependencies": { "@scratch/paper": "0.11.20200728195508", @@ -23330,9 +23346,9 @@ } }, "node_modules/scratch-l10n": { - "version": "3.14.20220605031627", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.14.20220605031627.tgz", - "integrity": "sha512-uVnAOlyiZrNL52ltFRJvDQTVuSnXl+TxWrxQP99I1kpZsokHuh7/NXczw+tDdbM0oiaY1D8FMi49KXPIFolMpQ==", + "version": "3.14.20220703031542", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.14.20220703031542.tgz", + "integrity": "sha512-6D50Qfg+mI8QCR37918PdRFGcuoIC+p+/aBw0P7ptA7APWzsUCHhWVQhUloUqIE7pUngC25teuONHrXTXxRn/w==", "dev": true, "dependencies": { "@babel/cli": "^7.1.2", @@ -23458,13 +23474,13 @@ "node_modules/scratch-sb1-converter/node_modules/microee": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/microee/-/microee-0.0.6.tgz", - "integrity": "sha1-oSvbAQNoHosSapsHHrpMRnx4//4=", + "integrity": "sha512-/LdL3jiBWDJ3oQIRLgRhfeCZNE3patM1LiwCC124+/HHn10sI/G2OAyiMfTNzH5oYWoZBk0tRZADAUOv+0Wt0A==", "dev": true }, "node_modules/scratch-sb1-converter/node_modules/minilog": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/minilog/-/minilog-3.1.0.tgz", - "integrity": "sha1-0tDxiHyjY9Gs8OqG1cTfKTs/tnU=", + "integrity": "sha512-Xfm4jWjWzSAduvEWtuZX/8TMkxfJlCfH7XvikCZe3ptojYTBq1eoEs3rh9/3LNLOckUP86m+8l8+Iw5NU/pBww==", "dev": true, "dependencies": { "microee": "0.0.6" @@ -23528,9 +23544,9 @@ "dev": true }, "node_modules/scratch-vm": { - "version": "0.2.0-prerelease.20220602121716", - "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20220602121716.tgz", - "integrity": "sha512-N7hY2OeMJMybH1GdYwxaj+zu8BUBsiDUCmA0o3UsrVVsKCxcPgHQxJYksWalH1zV3GsWlkXwX6qBarviRmVfbg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-1.0.1.tgz", + "integrity": "sha512-Ua9Y7G8vwjmUZkifxQDfrGmGHDJ4Wry13zRy5Gozy6jTWk/GdMVjkFuk7/qTDz6UU5Xqgyq/92FdD9S8f16TDQ==", "dev": true, "dependencies": { "@vernier/godirect": "1.5.0", @@ -23572,7 +23588,7 @@ "node_modules/scratch-vm/node_modules/immutable": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz", - "integrity": "sha1-IAgH8Rqw9ycQ6khVQt4IgHX2jNI=", + "integrity": "sha512-0R2q5f83L0h+zizu3lAA3ZR/mzEl04U1jVVXIqf2rQbZs9eX5YGtx1EFQuuJJHzVXH10ur6hGKehR8yBOQmZlQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -23581,13 +23597,13 @@ "node_modules/scratch-vm/node_modules/microee": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/microee/-/microee-0.0.6.tgz", - "integrity": "sha1-oSvbAQNoHosSapsHHrpMRnx4//4=", + "integrity": "sha512-/LdL3jiBWDJ3oQIRLgRhfeCZNE3patM1LiwCC124+/HHn10sI/G2OAyiMfTNzH5oYWoZBk0tRZADAUOv+0Wt0A==", "dev": true }, "node_modules/scratch-vm/node_modules/minilog": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/minilog/-/minilog-3.1.0.tgz", - "integrity": "sha1-0tDxiHyjY9Gs8OqG1cTfKTs/tnU=", + "integrity": "sha512-Xfm4jWjWzSAduvEWtuZX/8TMkxfJlCfH7XvikCZe3ptojYTBq1eoEs3rh9/3LNLOckUP86m+8l8+Iw5NU/pBww==", "dev": true, "dependencies": { "microee": "0.0.6" @@ -35632,7 +35648,7 @@ "canvas-toBlob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/canvas-toBlob/-/canvas-toBlob-1.0.0.tgz", - "integrity": "sha1-m/MrKGu04SUhiyCO7MgyH9Az5sM=", + "integrity": "sha512-oU5bawygt/Nef9F+C49eTFmzXzz6yKdGqn6J1wn/LZQF5ulnnZVm0KIZzik85I6tjCbZFH6aa47j4bU2tkHxRw==", "dev": true }, "capture-exit": { @@ -37401,7 +37417,7 @@ "decode-html": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/decode-html/-/decode-html-2.0.0.tgz", - "integrity": "sha1-fQqIfORCgOYJeKcH67f4CB/WHqo=", + "integrity": "sha512-lVJ+EBozhAXA2nSQG+xAgcD0P5K3uejnIIvM09uoQfS8AALkQ+HhHcEUvKovXi0EIpIZWjm0y8X7ULjaJpgY9w==", "dev": true }, "decode-uri-component": { @@ -38367,9 +38383,9 @@ }, "dependencies": { "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "ansi-styles": { @@ -42924,9 +42940,9 @@ }, "dependencies": { "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "cliui": { @@ -42962,9 +42978,9 @@ }, "dependencies": { "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "ansi-styles": { @@ -43844,9 +43860,9 @@ }, "dependencies": { "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "ansi-styles": { @@ -47837,9 +47853,9 @@ }, "dependencies": { "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "ansi-styles": { @@ -50769,9 +50785,9 @@ } }, "scratch-gui": { - "version": "0.1.0-prerelease.20220605140952", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20220605140952.tgz", - "integrity": "sha512-BSYEB10tQx9Y58ERV33CSOAbsLxz+7THzMUN3+QPlKu6lFoK6yB4n9o47A8WFHUiCEoT/J8HWh8juWl88Ic2Sw==", + "version": "0.1.0-prerelease.20220706173215", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20220706173215.tgz", + "integrity": "sha512-pLraYbImVh+LFH4gkFzv+CAEL8akIPwQMtT5YLDD3fJfQ2QU2uT96IHVdHxIY7DLQ1fgupYK0Z+Fa5Ys20mZHA==", "dev": true, "requires": { "arraybuffer-loader": "^1.0.6", @@ -50823,13 +50839,13 @@ "redux-throttle": "0.1.1", "scratch-audio": "0.1.0-prerelease.20200528195344", "scratch-blocks": "0.1.0-prerelease.20220524062105", - "scratch-l10n": "3.14.20220605031627", - "scratch-paint": "0.2.0-prerelease.20220605112441", + "scratch-l10n": "3.14.20220620031537", + "scratch-paint": "0.2.0-prerelease.20220620120722", "scratch-render": "0.1.0-prerelease.20211028200436", "scratch-render-fonts": "1.0.0-prerelease.20210401210003", "scratch-storage": "2.0.2", "scratch-svg-renderer": "0.2.0-prerelease.20210727023023", - "scratch-vm": "0.2.0-prerelease.20220602121716", + "scratch-vm": "1.0.1", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", "text-encoding": "0.7.0", @@ -51064,10 +51080,22 @@ "symbol-observable": "^1.0.3" } }, + "scratch-l10n": { + "version": "3.14.20220620031537", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.14.20220620031537.tgz", + "integrity": "sha512-PBA/iGtkibhn9wW1SrxnZat5AY5u74p3tildPkVNyOgTxx5oYluaZ63Q+vCLILBkonPT9WE7Wf6pBj7vfN4rlQ==", + "dev": true, + "requires": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "babel-plugin-react-intl": "^3.0.1", + "transifex": "1.6.6" + } + }, "scratch-paint": { - "version": "0.2.0-prerelease.20220605112441", - "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-0.2.0-prerelease.20220605112441.tgz", - "integrity": "sha512-GgwKhp+yDJNQLbpykw3J5JUgCptgfDW66JObuTLpVDlRUVtbV9eamSuIdUWLgVrbTXVUtfHQT2z1KMi31t4thg==", + "version": "0.2.0-prerelease.20220620120722", + "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-0.2.0-prerelease.20220620120722.tgz", + "integrity": "sha512-QuR9d5Kz2A9Xe1rYBQCCJ4hoSdXL/Uejx7uvwo3o1/u9Cc5cVAN6YIwBkU95lgTcc3OBQkXsTADAorKsavixkQ==", "dev": true, "requires": { "@scratch/paper": "0.11.20200728195508", @@ -51148,9 +51176,9 @@ } }, "scratch-l10n": { - "version": "3.14.20220605031627", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.14.20220605031627.tgz", - "integrity": "sha512-uVnAOlyiZrNL52ltFRJvDQTVuSnXl+TxWrxQP99I1kpZsokHuh7/NXczw+tDdbM0oiaY1D8FMi49KXPIFolMpQ==", + "version": "3.14.20220703031542", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.14.20220703031542.tgz", + "integrity": "sha512-6D50Qfg+mI8QCR37918PdRFGcuoIC+p+/aBw0P7ptA7APWzsUCHhWVQhUloUqIE7pUngC25teuONHrXTXxRn/w==", "dev": true, "requires": { "@babel/cli": "^7.1.2", @@ -51270,13 +51298,13 @@ "microee": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/microee/-/microee-0.0.6.tgz", - "integrity": "sha1-oSvbAQNoHosSapsHHrpMRnx4//4=", + "integrity": "sha512-/LdL3jiBWDJ3oQIRLgRhfeCZNE3patM1LiwCC124+/HHn10sI/G2OAyiMfTNzH5oYWoZBk0tRZADAUOv+0Wt0A==", "dev": true }, "minilog": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/minilog/-/minilog-3.1.0.tgz", - "integrity": "sha1-0tDxiHyjY9Gs8OqG1cTfKTs/tnU=", + "integrity": "sha512-Xfm4jWjWzSAduvEWtuZX/8TMkxfJlCfH7XvikCZe3ptojYTBq1eoEs3rh9/3LNLOckUP86m+8l8+Iw5NU/pBww==", "dev": true, "requires": { "microee": "0.0.6" @@ -51340,9 +51368,9 @@ "dev": true }, "scratch-vm": { - "version": "0.2.0-prerelease.20220602121716", - "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20220602121716.tgz", - "integrity": "sha512-N7hY2OeMJMybH1GdYwxaj+zu8BUBsiDUCmA0o3UsrVVsKCxcPgHQxJYksWalH1zV3GsWlkXwX6qBarviRmVfbg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-1.0.1.tgz", + "integrity": "sha512-Ua9Y7G8vwjmUZkifxQDfrGmGHDJ4Wry13zRy5Gozy6jTWk/GdMVjkFuk7/qTDz6UU5Xqgyq/92FdD9S8f16TDQ==", "dev": true, "requires": { "@vernier/godirect": "1.5.0", @@ -51381,19 +51409,19 @@ "immutable": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz", - "integrity": "sha1-IAgH8Rqw9ycQ6khVQt4IgHX2jNI=", + "integrity": "sha512-0R2q5f83L0h+zizu3lAA3ZR/mzEl04U1jVVXIqf2rQbZs9eX5YGtx1EFQuuJJHzVXH10ur6hGKehR8yBOQmZlQ==", "dev": true }, "microee": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/microee/-/microee-0.0.6.tgz", - "integrity": "sha1-oSvbAQNoHosSapsHHrpMRnx4//4=", + "integrity": "sha512-/LdL3jiBWDJ3oQIRLgRhfeCZNE3patM1LiwCC124+/HHn10sI/G2OAyiMfTNzH5oYWoZBk0tRZADAUOv+0Wt0A==", "dev": true }, "minilog": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/minilog/-/minilog-3.1.0.tgz", - "integrity": "sha1-0tDxiHyjY9Gs8OqG1cTfKTs/tnU=", + "integrity": "sha512-Xfm4jWjWzSAduvEWtuZX/8TMkxfJlCfH7XvikCZe3ptojYTBq1eoEs3rh9/3LNLOckUP86m+8l8+Iw5NU/pBww==", "dev": true, "requires": { "microee": "0.0.6" @@ -52529,9 +52557,9 @@ }, "dependencies": { "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "strip-ansi": { @@ -52583,9 +52611,9 @@ }, "dependencies": { "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "strip-ansi": { diff --git a/package.json b/package.json index adf485515..4ffdca1b8 100644 --- a/package.json +++ b/package.json @@ -134,8 +134,8 @@ "regenerator-runtime": "0.13.9", "sass": "1.49.7", "sass-loader": "10.2.1", - "scratch-gui": "0.1.0-prerelease.20220605140952", - "scratch-l10n": "3.14.20220605031627", + "scratch-gui": "0.1.0-prerelease.20220706173215", + "scratch-l10n": "3.14.20220703031542", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", "style-loader": "0.12.3", diff --git a/src/components/footer/www/footer.jsx b/src/components/footer/www/footer.jsx index f1a53be8e..675a3c4a1 100644 --- a/src/components/footer/www/footer.jsx +++ b/src/components/footer/www/footer.jsx @@ -195,7 +195,7 @@ const Footer = props => (
- +
diff --git a/src/routes.json b/src/routes.json index 12b35ec39..e50e1be28 100644 --- a/src/routes.json +++ b/src/routes.json @@ -50,7 +50,7 @@ "name": "conference-index", "pattern": "^/conference/?(\\?.*)?$", "routeAlias": "/conference(?!/20[1-2][0-9])", - "redirect": "/conference/2022" + "redirect": "https://www.scratchfoundation.org/scratch-conference" }, { "name": "conference-index-2017", @@ -122,9 +122,7 @@ "name": "conference-index-2022", "pattern": "^/conference/2022/?$", "routeAlias": "/conference(?!/20[1-2][0-9])", - "view": "conference/2022/index/index", - "title": "Scratch Conferences", - "viewportWidth": "device-width" + "redirect": "https://www.scratchfoundation.org/scratch-conference" }, { "name": "connect", diff --git a/src/views/conference/2022/index/index.jsx b/src/views/conference/2022/index/index.jsx deleted file mode 100644 index a74333ac8..000000000 --- a/src/views/conference/2022/index/index.jsx +++ /dev/null @@ -1,99 +0,0 @@ -const FormattedDate = require('react-intl').FormattedDate; -const FormattedMessage = require('react-intl').FormattedMessage; -const React = require('react'); -const render = require('../../../../lib/render.jsx'); - -// Using the 2021 page on purpose here since the layout of the page is the same -const Page = require('../../../../components/page/conference/2021/page.jsx'); -const TitleBanner = require('../../../../components/title-banner/title-banner.jsx'); - -require('../../../../components/forms/button.scss'); -require('./index.scss'); - -const conferenceDate = (); - -const ConferenceSplash = () => ( -
- -
-

-
- -
-

-

- {conferenceDate} -

- -
-
-

- {' '} - -
-
- -

- - - - - - - - - - - - - -
- Calendar Icon - - {conferenceDate}{' '} - -
- Map Icon -
-
-
- -
- -
-
-

- - conference@scratch.mit.edu - - }} - /> -
-
- -

-
-
-
-); - -render( - , document.getElementById('app')); diff --git a/src/views/conference/2022/index/index.scss b/src/views/conference/2022/index/index.scss deleted file mode 100644 index 7043cf4bb..000000000 --- a/src/views/conference/2022/index/index.scss +++ /dev/null @@ -1,168 +0,0 @@ -@import "../../../../colors"; -@import "../../../../frameless"; - -.title-banner.mod-conference.mod-2022 { - padding-top: 0; -} - -.title-banner-image.mod-2022 { - margin-bottom: 1.75rem; - background-image: url("/images/conference/index/2022/title-banner.png"); - background-size: cover; - width: 100%; - height: 20rem; -} - -.title-banner-h1.mod-2022 { - line-height: 1.25em; -} - -.conf2022-panel, -.title-banner-h3.mod-2022 { - width: 48.75rem; - margin: auto; -} - -.title-banner-h3.mod-2022 { - margin: 2rem auto 0; -} - -.title-banner-h3.mod-2022 { - text-align: center; - color: $type-white; -} - -.conf2022-panel { - border-bottom: 1px solid $ui-border; -} - -.conf2022-panel.mod-last { - border-bottom: 0; -} - -.flex-row.conf2022-panel-title { - justify-content: flex-start; - align-items: center; -} - -.conf2022-panel-desc { - margin: 2rem 0; -} - -section { - padding-top: 3rem; -} - -td { - padding: .75rem 1.25rem; - vertical-align: middle; -} - -.conf2022-panel-row-icon-image { - width: 1.5rem; - height: 1.5rem; -} -.mod-registration .conf2022-panel-desc { - margin-bottom: 0; -} -.button.mod-2022-panel { - display: block; - margin: 2rem auto 0; - background-color: $ui-orange; - padding: 1rem 0; - width: 13.75rem; - text-align: center; - color: $type-white; -} - -@media only screen and (max-width: $mobile - 1) { - .index.mod-2022 { - text-align: left; - } - - .title-banner-image.mod-2022 { - height: 10rem; - } - - .conf2022-panel, - .title-banner-h3.mod-2022 { - width: initial; - } - - .conf2022-panel { - margin: auto .5rem; - } - - .title-banner-h3.mod-2022 { - margin: 1rem .5rem .5rem; - font-size: 1.1rem; - } - - .flex-row.conf2022-panel-title { - flex-direction: row; - } - - .conf2022-panel-title-text { - max-width: 14rem; - } - - .conf2022-panel-row > td { - padding: .75rem .375rem .75rem 0; - } -} - -@media only screen and (min-width: $mobile) and (max-width: $tabletPortrait - 1) { - .index.mod-2022 { - text-align: left; - } - - .title-banner-image.mod-2022 { - height: 10rem; - } - - .conf2022-panel, - .title-banner-h3.mod-2022 { - margin: auto .5rem ; - width: initial; - } - - .title-banner-h3.mod-2022 { - font-size: 1.1rem; - } - - .flex-row.conf2022-panel-title { - flex-direction: row; - } - - .conf2022-panel-title-text { - max-width: 18.75rem; - } - - .button.mod-2022-panel { - width: 5.75rem; - } -} - -@media only screen and (min-width: $tabletPortrait) and (max-width: $desktop - 1) { - .index.mod-2022 { - text-align: left; - } - - .title-banner-image.mod-2022 { - height: 15rem; - } - - .conf2022-panel, - .title-banner-h3.mod-2022 { - margin: auto; - width: 38.75rem; - } - - .title-banner-h3.mod-2022 { - font-size: 1.1rem; - } - - .button.mod-2022-panel { - width: 8.75rem; - } -} diff --git a/src/views/conference/2022/index/l10n.json b/src/views/conference/2022/index/l10n.json deleted file mode 100644 index a72c96a56..000000000 --- a/src/views/conference/2022/index/l10n.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conference-2022.title": "Scratch Conference 2022", - "conference-2022.locationDetails": "Online", - - "conference-2022.date": "When:", - "conference-2022.location": "Where:", - "conference-2022.eventTime": "10 AM - 4 PM ET", - - "conference-2022.desc1": "Join us for Scratch Conference 2022, an online gathering for educators interested in creative learning with Scratch! This year's theme will be \"What will you create?\"", - "conference-2022.desc1a": "Although we are not able to meet in person this year, we are excited to find ways to connect and share with others in the global Scratch educator community.", - "conference-2022.desc3": "The conference will be free of charge.", - - "conference-2022.register": "Stay tuned for registration information!", - - "conference-2022.stayDesc2": "For additional questions, contact the Scratch Conference Team at {emailLink}", - "conference-2022.organizedBy": "The Scratch Conference is organized by the Scratch Foundation." -} diff --git a/test/integration/footer-links.test.js b/test/integration/footer-links.test.js index 3e7e4044a..19accd992 100644 --- a/test/integration/footer-links.test.js +++ b/test/integration/footer-links.test.js @@ -136,7 +136,7 @@ describe('www-integration footer links', () => { await clickText('Scratch Conference'); let url = await driver.getCurrentUrl(); let pathname = (new URL(url)).pathname; - expect(pathname).toMatch(/^\/conference\/2022\/?$/); + expect(pathname).toMatch(/^\/scratch-conference\/?$/); }); });