Merge pull request #6904 from LLK/release/2022-07-06

[Master] release/2022-07-06
This commit is contained in:
Christopher Willis-Ford 2022-07-07 09:52:20 -07:00 committed by GitHub
commit 5c628f57c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 118 additions and 359 deletions

View file

@ -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.

162
package-lock.json generated
View file

@ -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": {

View file

@ -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",

View file

@ -195,7 +195,7 @@ const Footer = props => (
</a>
</dd>
<dd>
<a href="/conference">
<a href="https://www.scratchfoundation.org/scratch-conference">
<FormattedMessage id="general.scratchConference" />
</a>
</dd>

View file

@ -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",

View file

@ -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 = (<FormattedDate
day="2-digit"
month="long"
value={new Date(2022, 6, 21)}
year="numeric"
/>);
const ConferenceSplash = () => (
<div className="index mod-2022">
<TitleBanner className="mod-conference mod-2022">
<div className="title-banner-image mod-2022" />
<h1 className="title-banner-h1 mod-2022">
<center>
<FormattedMessage id="conference-2022.title" />
</center>
</h1>
<h3 className="title-banner-h3 mod-2022">
{conferenceDate}
</h3>
</TitleBanner>
<div className="inner">
<section className="conf2022-panel mod-desc">
<p className="conf2022-panel-desc">
<FormattedMessage id="conference-2022.desc1" />{' '}
<strong><FormattedMessage id="conference-2022.desc1a" /></strong>
<br />
<br />
<FormattedMessage id="conference-2022.desc3" />
</p>
<table className="conf2022-panel-details">
<tbody>
<tr className="conf2022-panel-row">
<td className="conf2022-panel-row-icon">
<img
alt="Calendar Icon"
className="conf2022-panel-row-icon-image"
src="/svgs/conference/index/calendar-icon-solid.svg"
/>
</td>
<td><FormattedMessage id="conference-2022.date" /></td>
<td>
{conferenceDate}{' '}
<FormattedMessage id="conference-2022.eventTime" />
</td>
</tr>
<tr className="conf2022-panel-row">
<td className="conf2022-panel-row-icon">
<img
alt="Map Icon"
className="conf2022-panel-row-icon-image"
src="/svgs/conference/index/map-icon-solid.svg"
/>
</td>
<td><FormattedMessage id="conference-2022.location" /></td>
<td><FormattedMessage id="conference-2022.locationDetails" /></td>
</tr>
</tbody>
</table>
<br />
<center>
<FormattedMessage id="conference-2022.register" />
</center>
</section>
<section className="conf2022-panel mod-stay">
<p className="conf2022-panel-desc">
<FormattedMessage
id="conference-2022.stayDesc2"
values={{
emailLink: <a href="mailto:conference@scratch.mit.edu">
conference@scratch.mit.edu
</a>
}}
/>
<br />
<br />
<FormattedMessage id="conference-2022.organizedBy" />
</p>
</section>
</div>
</div>
);
render(
<Page
footerOrganizedByMsgId="conference-2022.organizedBy"
><ConferenceSplash /></Page>, document.getElementById('app'));

View file

@ -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;
}
}

View file

@ -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."
}

View file

@ -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\/?$/);
});
});