From 7673bf66a0025534adf7474a8bc135446d54d531 Mon Sep 17 00:00:00 2001 From: Andy O'Neill Date: Wed, 2 Nov 2022 14:35:15 -0400 Subject: [PATCH 01/53] Show alert if project uses video and cloud variables --- src/lib/project-info.js | 10 ++++++++-- src/views/preview/l10n.json | 3 ++- src/views/preview/presentation.jsx | 29 +++++++++++++++++++---------- src/views/preview/preview.scss | 11 +++++++++-- src/views/preview/project-view.jsx | 8 ++++++-- 5 files changed, 44 insertions(+), 17 deletions(-) diff --git a/src/lib/project-info.js b/src/lib/project-info.js index ac16d29be..30b82e777 100644 --- a/src/lib/project-info.js +++ b/src/lib/project-info.js @@ -20,7 +20,8 @@ module.exports = { const stage = project.targets[0]; return Object.values(stage.variables) .some(variable => variable.length === 3); // 3 entries if cloud var - } + }, + videoSensing: project => (project.extensions || []).includes('videoSensing') }, 2: { extensions: () => [], // Showing extension chip not implemented for scratch2 projects @@ -30,6 +31,11 @@ module.exports = { // Block traversing is complicated in scratch2 projects... // This check should work even if you have sprites named getUserName, etc. JSON.stringify(project).indexOf('["getUserName"]') !== -1, - cloudData: project => project.info.hasCloudData + cloudData: project => project.info.hasCloudData, + videoSensing: project => { + const stringifiedProject = JSON.stringify(project); + return ['senseVideoMotion', 'setVideoState', 'setVideoTransparency', 'whenSensorGreaterThan'] + .some(opcode => stringifiedProject.includes(`["${opcode}"`)); + } } }; diff --git a/src/views/preview/l10n.json b/src/views/preview/l10n.json index 31271fbf2..e54594781 100644 --- a/src/views/preview/l10n.json +++ b/src/views/preview/l10n.json @@ -47,5 +47,6 @@ "project.cloudDataLink": "See Data", "project.usernameBlockAlert": "This project can detect who is using it, through the \"username\" block. To hide your identity, sign out before using the project.", "project.inappropriateUpdate": "Hmm...the bad word detector thinks there is a problem with your text. Please change it and remember to be respectful.", - "project.mutedAddToStudio": "You will be able to add to studios again {inDuration}." + "project.mutedAddToStudio": "You will be able to add to studios again {inDuration}.", + "project.cloudDataAndVideoAlert": "For privacy reasons, cloud variables have been disabled in this project because it contains video sensing blocks." } diff --git a/src/views/preview/presentation.jsx b/src/views/preview/presentation.jsx index f900fde88..2e56d2b0e 100644 --- a/src/views/preview/presentation.jsx +++ b/src/views/preview/presentation.jsx @@ -125,6 +125,7 @@ const PreviewPresentation = ({ originalInfo, parentInfo, showCloudDataAlert, + showCloudDataAndVideoAlert, showUsernameBlockAlert, projectHost, projectId, @@ -335,16 +336,23 @@ const PreviewPresentation = ({ {fullscreen: isFullScreen} )} > - {showCloudDataAlert && ( - - - - )} - {showUsernameBlockAlert && ( - - - - )} +
+ {showCloudDataAlert && ( + + + + )} + {showCloudDataAndVideoAlert && ( + + + + )} + {showUsernameBlockAlert && ( + + + + )} +
Date: Thu, 3 Nov 2022 14:11:35 -0400 Subject: [PATCH 02/53] Add unit tests for project-info.js --- test/unit/lib/project-info.test.js | 322 +++++++++++++++++++++++++++++ 1 file changed, 322 insertions(+) create mode 100644 test/unit/lib/project-info.test.js diff --git a/test/unit/lib/project-info.test.js b/test/unit/lib/project-info.test.js new file mode 100644 index 000000000..afa278176 --- /dev/null +++ b/test/unit/lib/project-info.test.js @@ -0,0 +1,322 @@ +/* eslint-disable no-use-before-define */ +const projectInfo = require('../../../src/lib/project-info'); + +describe('unit test lib/project-info.js', () => { + test('videoSensing returns true for a version 3 project with video', () => { + const result = projectInfo[videoVersion3.projectVersion].videoSensing(videoVersion3); + expect(result).toEqual(true); + }); + + test('videoSensing returns false for a version 3 project with no video', () => { + const result = projectInfo[noVideoVersion3.projectVersion].videoSensing(noVideoVersion3); + expect(result).toEqual(false); + }); + + test('videoSensing returns true for a version 2 project with video', () => { + const result = projectInfo[videoVersion2.projectVersion].videoSensing(videoVersion2); + expect(result).toEqual(true); + }); +}); + +const videoVersion3 = { + targets: [ + { + isStage: true, + name: 'Stage', + variables: { + '`jEk@4|i[#Fk?(8x)AV.-my variable': [ + 'my variable', + '0' + ] + }, + lists: {}, + broadcasts: {}, + blocks: { + 'FJz[,QI8`P^5;FEjdBhc': { + opcode: 'event_whenflagclicked', + next: 'f8q%j#X8sU#C+E1z|-oF', + parent: null, + inputs: {}, + fields: {}, + shadow: false, + topLevel: true, + x: 255, + y: 171 + }, + 'f8q%j#X8sU#C+E1z|-oF': { + opcode: 'videoSensing_videoToggle', + next: null, + parent: 'FJz[,QI8`P^5;FEjdBhc', + inputs: { + VIDEO_STATE: [ + 1, + 'a2$KXEUlr`=IW!MX8(M7' + ] + }, + fields: {}, + shadow: false, + topLevel: false + }, + 'a2$KXEUlr`=IW!MX8(M7': { + opcode: 'videoSensing_menu_VIDEO_STATE', + next: null, + parent: 'f8q%j#X8sU#C+E1z|-oF', + inputs: {}, + fields: { + VIDEO_STATE: [ + 'on', + null + ] + }, + shadow: true, + topLevel: false + } + }, + comments: {}, + currentCostume: 0, + costumes: [ + { + name: 'backdrop1', + dataFormat: 'svg', + assetId: 'cd21514d0531fdffb22204e0ec5ed84a', + md5ext: 'cd21514d0531fdffb22204e0ec5ed84a.svg', + rotationCenterX: 240, + rotationCenterY: 180 + } + ], + sounds: [ + { + name: 'pop', + assetId: '83a9787d4cb6f3b7632b4ddfebf74367', + dataFormat: 'wav', + format: '', + rate: 48000, + sampleCount: 1123, + md5ext: '83a9787d4cb6f3b7632b4ddfebf74367.wav' + } + ], + volume: 100, + layerOrder: 0, + tempo: 60, + videoTransparency: 50, + videoState: 'on', + textToSpeechLanguage: null + } + ], + monitors: [ + { + id: '`jEk@4|i[#Fk?(8x)AV.-my variable', + mode: 'default', + opcode: 'data_variable', + params: { + VARIABLE: 'my variable' + }, + spriteName: null, + value: '0', + width: 0, + height: 0, + x: 7, + y: 17, + visible: false, + sliderMin: 0, + sliderMax: 100, + isDiscrete: true + } + ], + extensions: [ + 'videoSensing' + ], + meta: { + semver: '3.0.0', + vm: '1.2.48', + // eslint-disable-next-line max-len + agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36' + }, + projectVersion: 3 +}; + +const noVideoVersion3 = { + targets: [ + { + isStage: true, + name: 'Stage', + variables: { + '`jEk@4|i[#Fk?(8x)AV.-my variable': [ + 'my variable', + '0' + ] + }, + lists: {}, + broadcasts: {}, + blocks: { + 'FJz[,QI8`P^5;FEjdBhc': { + opcode: 'event_whenflagclicked', + next: '`CA90wtKfX0xa.mK80[|', + parent: null, + inputs: {}, + fields: {}, + shadow: false, + topLevel: true, + x: 255, + y: 171 + }, + '`CA90wtKfX0xa.mK80[|': { + opcode: 'data_setvariableto', + next: null, + parent: 'FJz[,QI8`P^5;FEjdBhc', + inputs: { + VALUE: [ + 1, + [ + 10, + '0' + ] + ] + }, + fields: { + VARIABLE: [ + 'my variable', + '`jEk@4|i[#Fk?(8x)AV.-my variable' + ] + }, + shadow: false, + topLevel: false + } + }, + comments: {}, + currentCostume: 0, + costumes: [ + { + name: 'backdrop1', + dataFormat: 'svg', + assetId: 'cd21514d0531fdffb22204e0ec5ed84a', + md5ext: 'cd21514d0531fdffb22204e0ec5ed84a.svg', + rotationCenterX: 240, + rotationCenterY: 180 + } + ], + sounds: [ + { + name: 'pop', + assetId: '83a9787d4cb6f3b7632b4ddfebf74367', + dataFormat: 'wav', + format: '', + rate: 48000, + sampleCount: 1123, + md5ext: '83a9787d4cb6f3b7632b4ddfebf74367.wav' + } + ], + volume: 100, + layerOrder: 0, + tempo: 60, + videoTransparency: 50, + videoState: 'on', + textToSpeechLanguage: null + } + ], + monitors: [ + { + id: '`jEk@4|i[#Fk?(8x)AV.-my variable', + mode: 'default', + opcode: 'data_variable', + params: { + VARIABLE: 'my variable' + }, + spriteName: null, + value: '0', + width: 0, + height: 0, + x: 7, + y: 17, + visible: false, + sliderMin: 0, + sliderMax: 100, + isDiscrete: true + } + ], + extensions: [], + meta: { + semver: '3.0.0', + vm: '1.2.48', + // eslint-disable-next-line max-len + agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36' + }, + projectVersion: 3 +}; + +const videoVersion2 = { + objName: 'Stage', + sounds: [{ + soundName: 'pop', + soundID: 1, + md5: '83a9787d4cb6f3b7632b4ddfebf74367.wav', + sampleCount: 258, + rate: 11025, + format: '' + }], + costumes: [{ + costumeName: 'backdrop1', + baseLayerID: 3, + baseLayerMD5: '739b5e2a2435f6e1ec2993791b423146.png', + bitmapResolution: 1, + rotationCenterX: 240, + rotationCenterY: 180 + }], + currentCostumeIndex: 0, + penLayerMD5: '5c81a336fab8be57adc039a8a2b33ca9.png', + penLayerID: 0, + tempoBPM: 60, + videoAlpha: 0.5, + children: [{ + objName: 'Sprite1', + scripts: [[62, + 85, + [['whenGreenFlag'], ['doForever', [['say:', ['senseVideoMotion', 'motion', 'this sprite']]]]]], + [70, 216, [['setVideoState', 'on']]], + [66, 281, [['setVideoTransparency', 50]]]], + sounds: [{ + soundName: 'meow', + soundID: 0, + md5: '83c36d806dc92327b9e7049a565c6bff.wav', + sampleCount: 18688, + rate: 22050, + format: '' + }], + costumes: [{ + costumeName: 'costume1', + baseLayerID: 1, + baseLayerMD5: 'f9a1c175dbe2e5dee472858dd30d16bb.svg', + bitmapResolution: 1, + rotationCenterX: 47, + rotationCenterY: 55 + }, + { + costumeName: 'costume2', + baseLayerID: 2, + baseLayerMD5: '6e8bd9ae68fdb02b7e1e3df656a75635.svg', + bitmapResolution: 1, + rotationCenterX: 47, + rotationCenterY: 55 + }], + currentCostumeIndex: 0, + scratchX: 0, + scratchY: 0, + scale: 1, + direction: 90, + rotationStyle: 'normal', + isDraggable: false, + indexInLibrary: 1, + visible: true, + spriteInfo: { + } + }], + info: { + userAgent: 'Scratch 2.0 Offline Editor', + flashVersion: 'WIN 33,1,1,743', + spriteCount: 1, + videoOn: false, + scriptCount: 1, + swfVersion: 'v461' + }, + projectVersion: 2 +}; From 4ee286b1625f855585f59d33c82f78cf3ec56f61 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Nov 2022 03:26:26 +0000 Subject: [PATCH 03/53] fix(deps): update dependency scratch-l10n to v3.15.20221110032102 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2c1c5fa34..ea62c1e51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -100,7 +100,7 @@ "sass": "1.49.7", "sass-loader": "10.2.1", "scratch-gui": "1.0.48", - "scratch-l10n": "3.15.20221108032110", + "scratch-l10n": "3.15.20221110032102", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", "style-loader": "0.12.3", @@ -23568,9 +23568,9 @@ } }, "node_modules/scratch-l10n": { - "version": "3.15.20221108032110", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221108032110.tgz", - "integrity": "sha512-FG0LINwlDgGw9d/VM6XArhsgKCkOgtJPvvlHJGEGkTpiQ3zZfN+Evkvfqejywewq7nOK2QBerPFA1RPQOdDfIw==", + "version": "3.15.20221110032102", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221110032102.tgz", + "integrity": "sha512-fus7ieayy1DvNKPBieGX6Hvn47cehKLDO+KPDtOCIuhSsg5ylm9+SFdQynOJz7O3Ut7xmO1E0OXH/IhsPbrO6A==", "dev": true, "dependencies": { "@babel/cli": "^7.1.2", @@ -51552,9 +51552,9 @@ } }, "scratch-l10n": { - "version": "3.15.20221108032110", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221108032110.tgz", - "integrity": "sha512-FG0LINwlDgGw9d/VM6XArhsgKCkOgtJPvvlHJGEGkTpiQ3zZfN+Evkvfqejywewq7nOK2QBerPFA1RPQOdDfIw==", + "version": "3.15.20221110032102", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221110032102.tgz", + "integrity": "sha512-fus7ieayy1DvNKPBieGX6Hvn47cehKLDO+KPDtOCIuhSsg5ylm9+SFdQynOJz7O3Ut7xmO1E0OXH/IhsPbrO6A==", "dev": true, "requires": { "@babel/cli": "^7.1.2", diff --git a/package.json b/package.json index 80a195eb2..7e8024abd 100644 --- a/package.json +++ b/package.json @@ -135,7 +135,7 @@ "sass": "1.49.7", "sass-loader": "10.2.1", "scratch-gui": "1.0.48", - "scratch-l10n": "3.15.20221108032110", + "scratch-l10n": "3.15.20221110032102", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", "style-loader": "0.12.3", From 996b6044d7d52c71e050d07e2364fff1c3165a4a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Nov 2022 20:30:43 +0000 Subject: [PATCH 04/53] feat(deps): update dependency scratch-gui to v1.1.0 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index ea62c1e51..e56b33ddf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -99,7 +99,7 @@ "regenerator-runtime": "0.13.9", "sass": "1.49.7", "sass-loader": "10.2.1", - "scratch-gui": "1.0.48", + "scratch-gui": "1.1.0", "scratch-l10n": "3.15.20221110032102", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", @@ -23114,9 +23114,9 @@ } }, "node_modules/scratch-gui": { - "version": "1.0.48", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.0.48.tgz", - "integrity": "sha512-cbmbocO59OYs0Wafc6TYVCUuK54HhjRpAKxlSyWHqGrojNvRBlMAbqlK9CGzQj7h+he/0ZfqCdLeGsjPtLPnqQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.0.tgz", + "integrity": "sha512-pU/PVmxigvi4wUYNC6kmExNrsH0ID3pB9GpicqdhU3p4aXixUZe/JyncUnrzZGkUg81UOlzr+PJeSgDWVm6juQ==", "dev": true, "dependencies": { "arraybuffer-loader": "^1.0.6", @@ -51177,9 +51177,9 @@ } }, "scratch-gui": { - "version": "1.0.48", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.0.48.tgz", - "integrity": "sha512-cbmbocO59OYs0Wafc6TYVCUuK54HhjRpAKxlSyWHqGrojNvRBlMAbqlK9CGzQj7h+he/0ZfqCdLeGsjPtLPnqQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.0.tgz", + "integrity": "sha512-pU/PVmxigvi4wUYNC6kmExNrsH0ID3pB9GpicqdhU3p4aXixUZe/JyncUnrzZGkUg81UOlzr+PJeSgDWVm6juQ==", "dev": true, "requires": { "arraybuffer-loader": "^1.0.6", diff --git a/package.json b/package.json index 7e8024abd..b96a16c24 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,7 @@ "regenerator-runtime": "0.13.9", "sass": "1.49.7", "sass-loader": "10.2.1", - "scratch-gui": "1.0.48", + "scratch-gui": "1.1.0", "scratch-l10n": "3.15.20221110032102", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", From 7947adecc8e0a342efcf4c6c8d12993b61b1481e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Nov 2022 08:39:14 +0000 Subject: [PATCH 05/53] fix(deps): update dependency scratch-gui to v1.1.4 --- package-lock.json | 98 ++++++++++++++++------------------------------- package.json | 2 +- 2 files changed, 34 insertions(+), 66 deletions(-) diff --git a/package-lock.json b/package-lock.json index e56b33ddf..5416df058 100644 --- a/package-lock.json +++ b/package-lock.json @@ -99,7 +99,7 @@ "regenerator-runtime": "0.13.9", "sass": "1.49.7", "sass-loader": "10.2.1", - "scratch-gui": "1.1.0", + "scratch-gui": "1.1.4", "scratch-l10n": "3.15.20221110032102", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", @@ -23114,9 +23114,9 @@ } }, "node_modules/scratch-gui": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.0.tgz", - "integrity": "sha512-pU/PVmxigvi4wUYNC6kmExNrsH0ID3pB9GpicqdhU3p4aXixUZe/JyncUnrzZGkUg81UOlzr+PJeSgDWVm6juQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.4.tgz", + "integrity": "sha512-/yoBp5ke8EO5UryuBsbsiTRZdMrq7r//3QqWeOeDCkT70OYCrWVclUfE3kJgNM6JJ+/85kB7nDbq0SG7LeOqHw==", "dev": true, "dependencies": { "arraybuffer-loader": "^1.0.6", @@ -23168,10 +23168,10 @@ "redux-throttle": "0.1.1", "scratch-audio": "0.1.0-prerelease.20200528195344", "scratch-blocks": "0.1.0-prerelease.20221024060953", - "scratch-l10n": "3.15.20221024032103", - "scratch-paint": "1.1.29", - "scratch-render": "0.1.0-prerelease.20221024201900", - "scratch-render-fonts": "1.0.0-prerelease.20221024190656", + "scratch-l10n": "3.15.20221110032102", + "scratch-paint": "1.1.31", + "scratch-render": "0.1.0-prerelease.20221102163423", + "scratch-render-fonts": "1.0.0-prerelease.20221102164332", "scratch-storage": "2.0.2", "scratch-svg-renderer": "0.2.0-prerelease.20221024201850", "scratch-vm": "1.2.52", @@ -23451,28 +23451,10 @@ "symbol-observable": "^1.0.3" } }, - "node_modules/scratch-gui/node_modules/scratch-l10n": { - "version": "3.15.20221024032103", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221024032103.tgz", - "integrity": "sha512-Rntiu90azd27jaaRsKAeDgr96Qez8fl2yvJrEBMOK5fOX2AjiP9L3HKAolOA/vnhM5fvMbGFeymDbKaDb/x3Yg==", - "dev": true, - "dependencies": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "@transifex/api": "4.2.5", - "babel-plugin-react-intl": "^3.0.1", - "download": "^8.0.0", - "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": "1.1.29", - "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.29.tgz", - "integrity": "sha512-IgJGnA3+WrLLDveLMYDl9Z3RZCPAeRDLDI7r3QRMZSdvpZW46/ddG+dO0YfYVQHekgAf9IHaevCKV/9PNOHxPw==", + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.31.tgz", + "integrity": "sha512-yfKgYJVsNmBHQoSh3bZNjcVQ78qAIgQeX820fe5LthuMMn7DE1syUwD56IPFJWhGrR0ykp8Fsf038bbxNuZZfw==", "dev": true, "dependencies": { "@scratch/paper": "0.11.20200728195508", @@ -23609,9 +23591,9 @@ } }, "node_modules/scratch-render": { - "version": "0.1.0-prerelease.20221024201900", - "resolved": "https://registry.npmjs.org/scratch-render/-/scratch-render-0.1.0-prerelease.20221024201900.tgz", - "integrity": "sha512-6dfu8J3x8rsm6RUMQ+Jq4nunJuCX/iCm6Me+NqFpHivx25OPWYF7frczJ7+UtoluBts3eSLfywOr1fQF6KaBNw==", + "version": "0.1.0-prerelease.20221102163423", + "resolved": "https://registry.npmjs.org/scratch-render/-/scratch-render-0.1.0-prerelease.20221102163423.tgz", + "integrity": "sha512-1pCvVsBL+gtRzCnTFUXKHjZrVW9bIFIGKUbNs8A3x0T9VfZaSlgRYRrBlSgNdZQC/TT7K+YZsz9By8tyBPV8aA==", "dev": true, "dependencies": { "grapheme-breaker": "0.3.2", @@ -23629,9 +23611,9 @@ } }, "node_modules/scratch-render-fonts": { - "version": "1.0.0-prerelease.20221024190656", - "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20221024190656.tgz", - "integrity": "sha512-ZN2K7wKh8sJrzTZ61AwTTMwrm2AB/jsiHLeF8M1n0A0SoRaBfB7iBYv6cwvW2ZN+pnUBClHAb7bT9/KRlExfFg==", + "version": "1.0.0-prerelease.20221102164332", + "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20221102164332.tgz", + "integrity": "sha512-22MbRDGUSArVEoHatg5rt7f/H0wWhMrcyN6HD0OQJeDqdlO3qSSX9/qvdzNJGYWwZkhrdJWcI5JGD1YuJfefmw==", "dev": true, "dependencies": { "base64-loader": "1.0.0" @@ -51177,9 +51159,9 @@ } }, "scratch-gui": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.0.tgz", - "integrity": "sha512-pU/PVmxigvi4wUYNC6kmExNrsH0ID3pB9GpicqdhU3p4aXixUZe/JyncUnrzZGkUg81UOlzr+PJeSgDWVm6juQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.4.tgz", + "integrity": "sha512-/yoBp5ke8EO5UryuBsbsiTRZdMrq7r//3QqWeOeDCkT70OYCrWVclUfE3kJgNM6JJ+/85kB7nDbq0SG7LeOqHw==", "dev": true, "requires": { "arraybuffer-loader": "^1.0.6", @@ -51231,10 +51213,10 @@ "redux-throttle": "0.1.1", "scratch-audio": "0.1.0-prerelease.20200528195344", "scratch-blocks": "0.1.0-prerelease.20221024060953", - "scratch-l10n": "3.15.20221024032103", - "scratch-paint": "1.1.29", - "scratch-render": "0.1.0-prerelease.20221024201900", - "scratch-render-fonts": "1.0.0-prerelease.20221024190656", + "scratch-l10n": "3.15.20221110032102", + "scratch-paint": "1.1.31", + "scratch-render": "0.1.0-prerelease.20221102163423", + "scratch-render-fonts": "1.0.0-prerelease.20221102164332", "scratch-storage": "2.0.2", "scratch-svg-renderer": "0.2.0-prerelease.20221024201850", "scratch-vm": "1.2.52", @@ -51460,24 +51442,10 @@ "symbol-observable": "^1.0.3" } }, - "scratch-l10n": { - "version": "3.15.20221024032103", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221024032103.tgz", - "integrity": "sha512-Rntiu90azd27jaaRsKAeDgr96Qez8fl2yvJrEBMOK5fOX2AjiP9L3HKAolOA/vnhM5fvMbGFeymDbKaDb/x3Yg==", - "dev": true, - "requires": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "@transifex/api": "4.2.5", - "babel-plugin-react-intl": "^3.0.1", - "download": "^8.0.0", - "transifex": "1.6.6" - } - }, "scratch-paint": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.29.tgz", - "integrity": "sha512-IgJGnA3+WrLLDveLMYDl9Z3RZCPAeRDLDI7r3QRMZSdvpZW46/ddG+dO0YfYVQHekgAf9IHaevCKV/9PNOHxPw==", + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.31.tgz", + "integrity": "sha512-yfKgYJVsNmBHQoSh3bZNjcVQ78qAIgQeX820fe5LthuMMn7DE1syUwD56IPFJWhGrR0ykp8Fsf038bbxNuZZfw==", "dev": true, "requires": { "@scratch/paper": "0.11.20200728195508", @@ -51588,9 +51556,9 @@ } }, "scratch-render": { - "version": "0.1.0-prerelease.20221024201900", - "resolved": "https://registry.npmjs.org/scratch-render/-/scratch-render-0.1.0-prerelease.20221024201900.tgz", - "integrity": "sha512-6dfu8J3x8rsm6RUMQ+Jq4nunJuCX/iCm6Me+NqFpHivx25OPWYF7frczJ7+UtoluBts3eSLfywOr1fQF6KaBNw==", + "version": "0.1.0-prerelease.20221102163423", + "resolved": "https://registry.npmjs.org/scratch-render/-/scratch-render-0.1.0-prerelease.20221102163423.tgz", + "integrity": "sha512-1pCvVsBL+gtRzCnTFUXKHjZrVW9bIFIGKUbNs8A3x0T9VfZaSlgRYRrBlSgNdZQC/TT7K+YZsz9By8tyBPV8aA==", "dev": true, "requires": { "grapheme-breaker": "0.3.2", @@ -51642,9 +51610,9 @@ } }, "scratch-render-fonts": { - "version": "1.0.0-prerelease.20221024190656", - "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20221024190656.tgz", - "integrity": "sha512-ZN2K7wKh8sJrzTZ61AwTTMwrm2AB/jsiHLeF8M1n0A0SoRaBfB7iBYv6cwvW2ZN+pnUBClHAb7bT9/KRlExfFg==", + "version": "1.0.0-prerelease.20221102164332", + "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20221102164332.tgz", + "integrity": "sha512-22MbRDGUSArVEoHatg5rt7f/H0wWhMrcyN6HD0OQJeDqdlO3qSSX9/qvdzNJGYWwZkhrdJWcI5JGD1YuJfefmw==", "dev": true, "requires": { "base64-loader": "1.0.0" diff --git a/package.json b/package.json index b96a16c24..3a93502d2 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,7 @@ "regenerator-runtime": "0.13.9", "sass": "1.49.7", "sass-loader": "10.2.1", - "scratch-gui": "1.1.0", + "scratch-gui": "1.1.4", "scratch-l10n": "3.15.20221110032102", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", From 661446389ac61455e585526f671a6c2c64792632 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Nov 2022 15:56:36 +0000 Subject: [PATCH 06/53] fix(deps): update dependency scratch-gui to v1.1.5 --- package-lock.json | 30 +++++++++++++++--------------- package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5416df058..811b12045 100644 --- a/package-lock.json +++ b/package-lock.json @@ -99,7 +99,7 @@ "regenerator-runtime": "0.13.9", "sass": "1.49.7", "sass-loader": "10.2.1", - "scratch-gui": "1.1.4", + "scratch-gui": "1.1.5", "scratch-l10n": "3.15.20221110032102", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", @@ -23114,9 +23114,9 @@ } }, "node_modules/scratch-gui": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.4.tgz", - "integrity": "sha512-/yoBp5ke8EO5UryuBsbsiTRZdMrq7r//3QqWeOeDCkT70OYCrWVclUfE3kJgNM6JJ+/85kB7nDbq0SG7LeOqHw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.5.tgz", + "integrity": "sha512-Q7+quVviRpK4kk8HqoHippC0iNxv4faa/e5aFVtpNk2BtkGGKyy+Z4n7n+nRukL+LnwcT8z+2MXjBGIQMRhtiw==", "dev": true, "dependencies": { "arraybuffer-loader": "^1.0.6", @@ -23173,7 +23173,7 @@ "scratch-render": "0.1.0-prerelease.20221102163423", "scratch-render-fonts": "1.0.0-prerelease.20221102164332", "scratch-storage": "2.0.2", - "scratch-svg-renderer": "0.2.0-prerelease.20221024201850", + "scratch-svg-renderer": "0.2.0-prerelease.20221102163324", "scratch-vm": "1.2.52", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", @@ -23487,9 +23487,9 @@ "dev": true }, "node_modules/scratch-gui/node_modules/scratch-svg-renderer": { - "version": "0.2.0-prerelease.20221024201850", - "resolved": "https://registry.npmjs.org/scratch-svg-renderer/-/scratch-svg-renderer-0.2.0-prerelease.20221024201850.tgz", - "integrity": "sha512-aeNC0axSAfk/A6ZOLx08aKPWyoq8ulYTexD4RgbJ4K2ksT4cXIUXzzbUWptj7iHnx3mdFXeFmIhqpc9ty5GVig==", + "version": "0.2.0-prerelease.20221102163324", + "resolved": "https://registry.npmjs.org/scratch-svg-renderer/-/scratch-svg-renderer-0.2.0-prerelease.20221102163324.tgz", + "integrity": "sha512-wYFYq+SbPe/aUAbudjp3a7F36DCHn9fL5g+WhKTAgeatqTSd0aw8cGJXVLdAK0l7XecvajOQtouxsbZbLZ66zQ==", "dev": true, "dependencies": { "base64-js": "1.2.1", @@ -51159,9 +51159,9 @@ } }, "scratch-gui": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.4.tgz", - "integrity": "sha512-/yoBp5ke8EO5UryuBsbsiTRZdMrq7r//3QqWeOeDCkT70OYCrWVclUfE3kJgNM6JJ+/85kB7nDbq0SG7LeOqHw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.5.tgz", + "integrity": "sha512-Q7+quVviRpK4kk8HqoHippC0iNxv4faa/e5aFVtpNk2BtkGGKyy+Z4n7n+nRukL+LnwcT8z+2MXjBGIQMRhtiw==", "dev": true, "requires": { "arraybuffer-loader": "^1.0.6", @@ -51218,7 +51218,7 @@ "scratch-render": "0.1.0-prerelease.20221102163423", "scratch-render-fonts": "1.0.0-prerelease.20221102164332", "scratch-storage": "2.0.2", - "scratch-svg-renderer": "0.2.0-prerelease.20221024201850", + "scratch-svg-renderer": "0.2.0-prerelease.20221102163324", "scratch-vm": "1.2.52", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", @@ -51467,9 +51467,9 @@ } }, "scratch-svg-renderer": { - "version": "0.2.0-prerelease.20221024201850", - "resolved": "https://registry.npmjs.org/scratch-svg-renderer/-/scratch-svg-renderer-0.2.0-prerelease.20221024201850.tgz", - "integrity": "sha512-aeNC0axSAfk/A6ZOLx08aKPWyoq8ulYTexD4RgbJ4K2ksT4cXIUXzzbUWptj7iHnx3mdFXeFmIhqpc9ty5GVig==", + "version": "0.2.0-prerelease.20221102163324", + "resolved": "https://registry.npmjs.org/scratch-svg-renderer/-/scratch-svg-renderer-0.2.0-prerelease.20221102163324.tgz", + "integrity": "sha512-wYFYq+SbPe/aUAbudjp3a7F36DCHn9fL5g+WhKTAgeatqTSd0aw8cGJXVLdAK0l7XecvajOQtouxsbZbLZ66zQ==", "dev": true, "requires": { "base64-js": "1.2.1", diff --git a/package.json b/package.json index 3a93502d2..995a9b2e3 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,7 @@ "regenerator-runtime": "0.13.9", "sass": "1.49.7", "sass-loader": "10.2.1", - "scratch-gui": "1.1.4", + "scratch-gui": "1.1.5", "scratch-l10n": "3.15.20221110032102", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", From 5d3f14be40df3b3c76adf9df6b17dc7bb2526d57 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Nov 2022 20:30:25 +0000 Subject: [PATCH 07/53] fix(deps): update dependency scratch-gui to v1.1.6 --- package-lock.json | 30 +++++++++++++++--------------- package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 811b12045..9b346aae4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -99,7 +99,7 @@ "regenerator-runtime": "0.13.9", "sass": "1.49.7", "sass-loader": "10.2.1", - "scratch-gui": "1.1.5", + "scratch-gui": "1.1.6", "scratch-l10n": "3.15.20221110032102", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", @@ -23114,9 +23114,9 @@ } }, "node_modules/scratch-gui": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.5.tgz", - "integrity": "sha512-Q7+quVviRpK4kk8HqoHippC0iNxv4faa/e5aFVtpNk2BtkGGKyy+Z4n7n+nRukL+LnwcT8z+2MXjBGIQMRhtiw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.6.tgz", + "integrity": "sha512-9PN4+fUOAGIa7cBzJMX7amgJSXiVy5lpo2XVJKQzHz2iDSnpbJ8h7QM5OdNXEuphJoGGgZkntvUJ61WBED+jAw==", "dev": true, "dependencies": { "arraybuffer-loader": "^1.0.6", @@ -23174,7 +23174,7 @@ "scratch-render-fonts": "1.0.0-prerelease.20221102164332", "scratch-storage": "2.0.2", "scratch-svg-renderer": "0.2.0-prerelease.20221102163324", - "scratch-vm": "1.2.52", + "scratch-vm": "1.2.54", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", "text-encoding": "0.7.0", @@ -23749,9 +23749,9 @@ "dev": true }, "node_modules/scratch-vm": { - "version": "1.2.52", - "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-1.2.52.tgz", - "integrity": "sha512-EaR4txpZhL/QF95IyTRnQ0ef37tYIzTdRTe7lT4T9+RaPVVVv6bsUsC5l0XL1e/01KZpTiw2WVf+YE0OwrjfFg==", + "version": "1.2.54", + "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-1.2.54.tgz", + "integrity": "sha512-lg6Ay+JhqZ9hjL3o+vp9hQmksAURYQC6xcEgeIfbKWIyZGOndOA6VLTarJ+5uiGwphMb8SBlWpG2fBPHiAgKRg==", "dev": true, "dependencies": { "@vernier/godirect": "1.5.0", @@ -51159,9 +51159,9 @@ } }, "scratch-gui": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.5.tgz", - "integrity": "sha512-Q7+quVviRpK4kk8HqoHippC0iNxv4faa/e5aFVtpNk2BtkGGKyy+Z4n7n+nRukL+LnwcT8z+2MXjBGIQMRhtiw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.6.tgz", + "integrity": "sha512-9PN4+fUOAGIa7cBzJMX7amgJSXiVy5lpo2XVJKQzHz2iDSnpbJ8h7QM5OdNXEuphJoGGgZkntvUJ61WBED+jAw==", "dev": true, "requires": { "arraybuffer-loader": "^1.0.6", @@ -51219,7 +51219,7 @@ "scratch-render-fonts": "1.0.0-prerelease.20221102164332", "scratch-storage": "2.0.2", "scratch-svg-renderer": "0.2.0-prerelease.20221102163324", - "scratch-vm": "1.2.52", + "scratch-vm": "1.2.54", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", "text-encoding": "0.7.0", @@ -51716,9 +51716,9 @@ "dev": true }, "scratch-vm": { - "version": "1.2.52", - "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-1.2.52.tgz", - "integrity": "sha512-EaR4txpZhL/QF95IyTRnQ0ef37tYIzTdRTe7lT4T9+RaPVVVv6bsUsC5l0XL1e/01KZpTiw2WVf+YE0OwrjfFg==", + "version": "1.2.54", + "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-1.2.54.tgz", + "integrity": "sha512-lg6Ay+JhqZ9hjL3o+vp9hQmksAURYQC6xcEgeIfbKWIyZGOndOA6VLTarJ+5uiGwphMb8SBlWpG2fBPHiAgKRg==", "dev": true, "requires": { "@vernier/godirect": "1.5.0", diff --git a/package.json b/package.json index 995a9b2e3..9a8b7297e 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,7 @@ "regenerator-runtime": "0.13.9", "sass": "1.49.7", "sass-loader": "10.2.1", - "scratch-gui": "1.1.5", + "scratch-gui": "1.1.6", "scratch-l10n": "3.15.20221110032102", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", From 184d652ab202ed5c25d27a8005baceb2cddbbb5f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Nov 2022 03:27:23 +0000 Subject: [PATCH 08/53] fix(deps): update dependency scratch-l10n to v3.15.20221114032101 --- package-lock.json | 46 +++++++++++++++++++++++++++++++++++++++------- package.json | 2 +- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9b346aae4..6450c82cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -100,7 +100,7 @@ "sass": "1.49.7", "sass-loader": "10.2.1", "scratch-gui": "1.1.6", - "scratch-l10n": "3.15.20221110032102", + "scratch-l10n": "3.15.20221114032101", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", "style-loader": "0.12.3", @@ -23451,6 +23451,24 @@ "symbol-observable": "^1.0.3" } }, + "node_modules/scratch-gui/node_modules/scratch-l10n": { + "version": "3.15.20221110032102", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221110032102.tgz", + "integrity": "sha512-fus7ieayy1DvNKPBieGX6Hvn47cehKLDO+KPDtOCIuhSsg5ylm9+SFdQynOJz7O3Ut7xmO1E0OXH/IhsPbrO6A==", + "dev": true, + "dependencies": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "@transifex/api": "4.2.5", + "babel-plugin-react-intl": "^3.0.1", + "download": "^8.0.0", + "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": "1.1.31", "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.31.tgz", @@ -23550,9 +23568,9 @@ } }, "node_modules/scratch-l10n": { - "version": "3.15.20221110032102", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221110032102.tgz", - "integrity": "sha512-fus7ieayy1DvNKPBieGX6Hvn47cehKLDO+KPDtOCIuhSsg5ylm9+SFdQynOJz7O3Ut7xmO1E0OXH/IhsPbrO6A==", + "version": "3.15.20221114032101", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221114032101.tgz", + "integrity": "sha512-sQcfmQwSoW75+215RVNOHpe/0ktfPPw9ROj0r468Uqblmp7Gc0KMCheYaTvMgnsRB0tW2Dgufc2vT84cElnR4Q==", "dev": true, "dependencies": { "@babel/cli": "^7.1.2", @@ -51442,6 +51460,20 @@ "symbol-observable": "^1.0.3" } }, + "scratch-l10n": { + "version": "3.15.20221110032102", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221110032102.tgz", + "integrity": "sha512-fus7ieayy1DvNKPBieGX6Hvn47cehKLDO+KPDtOCIuhSsg5ylm9+SFdQynOJz7O3Ut7xmO1E0OXH/IhsPbrO6A==", + "dev": true, + "requires": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "@transifex/api": "4.2.5", + "babel-plugin-react-intl": "^3.0.1", + "download": "^8.0.0", + "transifex": "1.6.6" + } + }, "scratch-paint": { "version": "1.1.31", "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.31.tgz", @@ -51520,9 +51552,9 @@ } }, "scratch-l10n": { - "version": "3.15.20221110032102", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221110032102.tgz", - "integrity": "sha512-fus7ieayy1DvNKPBieGX6Hvn47cehKLDO+KPDtOCIuhSsg5ylm9+SFdQynOJz7O3Ut7xmO1E0OXH/IhsPbrO6A==", + "version": "3.15.20221114032101", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221114032101.tgz", + "integrity": "sha512-sQcfmQwSoW75+215RVNOHpe/0ktfPPw9ROj0r468Uqblmp7Gc0KMCheYaTvMgnsRB0tW2Dgufc2vT84cElnR4Q==", "dev": true, "requires": { "@babel/cli": "^7.1.2", diff --git a/package.json b/package.json index 9a8b7297e..2c309d374 100644 --- a/package.json +++ b/package.json @@ -135,7 +135,7 @@ "sass": "1.49.7", "sass-loader": "10.2.1", "scratch-gui": "1.1.6", - "scratch-l10n": "3.15.20221110032102", + "scratch-l10n": "3.15.20221114032101", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", "style-loader": "0.12.3", From 4884c28d42b134339d70ef3b0e0c259a8c9c4d17 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Nov 2022 10:34:36 +0000 Subject: [PATCH 09/53] fix(deps): update dependency scratch-gui to v1.1.7 --- package-lock.json | 50 +++++++++-------------------------------------- package.json | 2 +- 2 files changed, 10 insertions(+), 42 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6450c82cc..4dccafb75 100644 --- a/package-lock.json +++ b/package-lock.json @@ -99,7 +99,7 @@ "regenerator-runtime": "0.13.9", "sass": "1.49.7", "sass-loader": "10.2.1", - "scratch-gui": "1.1.6", + "scratch-gui": "1.1.7", "scratch-l10n": "3.15.20221114032101", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", @@ -23114,9 +23114,9 @@ } }, "node_modules/scratch-gui": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.6.tgz", - "integrity": "sha512-9PN4+fUOAGIa7cBzJMX7amgJSXiVy5lpo2XVJKQzHz2iDSnpbJ8h7QM5OdNXEuphJoGGgZkntvUJ61WBED+jAw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.7.tgz", + "integrity": "sha512-XYnj+9p5c9te6I+P8lyCaUVEdhMk0qpOsnaOiyHWpxFSW+O6qSEAQt4wRyXGgzUZmFIN6rHM/zBgaDIgrH9hUQ==", "dev": true, "dependencies": { "arraybuffer-loader": "^1.0.6", @@ -23168,7 +23168,7 @@ "redux-throttle": "0.1.1", "scratch-audio": "0.1.0-prerelease.20200528195344", "scratch-blocks": "0.1.0-prerelease.20221024060953", - "scratch-l10n": "3.15.20221110032102", + "scratch-l10n": "3.15.20221114032101", "scratch-paint": "1.1.31", "scratch-render": "0.1.0-prerelease.20221102163423", "scratch-render-fonts": "1.0.0-prerelease.20221102164332", @@ -23451,24 +23451,6 @@ "symbol-observable": "^1.0.3" } }, - "node_modules/scratch-gui/node_modules/scratch-l10n": { - "version": "3.15.20221110032102", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221110032102.tgz", - "integrity": "sha512-fus7ieayy1DvNKPBieGX6Hvn47cehKLDO+KPDtOCIuhSsg5ylm9+SFdQynOJz7O3Ut7xmO1E0OXH/IhsPbrO6A==", - "dev": true, - "dependencies": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "@transifex/api": "4.2.5", - "babel-plugin-react-intl": "^3.0.1", - "download": "^8.0.0", - "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": "1.1.31", "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.31.tgz", @@ -51177,9 +51159,9 @@ } }, "scratch-gui": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.6.tgz", - "integrity": "sha512-9PN4+fUOAGIa7cBzJMX7amgJSXiVy5lpo2XVJKQzHz2iDSnpbJ8h7QM5OdNXEuphJoGGgZkntvUJ61WBED+jAw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.7.tgz", + "integrity": "sha512-XYnj+9p5c9te6I+P8lyCaUVEdhMk0qpOsnaOiyHWpxFSW+O6qSEAQt4wRyXGgzUZmFIN6rHM/zBgaDIgrH9hUQ==", "dev": true, "requires": { "arraybuffer-loader": "^1.0.6", @@ -51231,7 +51213,7 @@ "redux-throttle": "0.1.1", "scratch-audio": "0.1.0-prerelease.20200528195344", "scratch-blocks": "0.1.0-prerelease.20221024060953", - "scratch-l10n": "3.15.20221110032102", + "scratch-l10n": "3.15.20221114032101", "scratch-paint": "1.1.31", "scratch-render": "0.1.0-prerelease.20221102163423", "scratch-render-fonts": "1.0.0-prerelease.20221102164332", @@ -51460,20 +51442,6 @@ "symbol-observable": "^1.0.3" } }, - "scratch-l10n": { - "version": "3.15.20221110032102", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221110032102.tgz", - "integrity": "sha512-fus7ieayy1DvNKPBieGX6Hvn47cehKLDO+KPDtOCIuhSsg5ylm9+SFdQynOJz7O3Ut7xmO1E0OXH/IhsPbrO6A==", - "dev": true, - "requires": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "@transifex/api": "4.2.5", - "babel-plugin-react-intl": "^3.0.1", - "download": "^8.0.0", - "transifex": "1.6.6" - } - }, "scratch-paint": { "version": "1.1.31", "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.31.tgz", diff --git a/package.json b/package.json index 2c309d374..4fad1c2a5 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,7 @@ "regenerator-runtime": "0.13.9", "sass": "1.49.7", "sass-loader": "10.2.1", - "scratch-gui": "1.1.6", + "scratch-gui": "1.1.7", "scratch-l10n": "3.15.20221114032101", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", From 372fb5a67cc8dfa0eb68c2e22b3638b744f949c6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Nov 2022 05:31:27 +0000 Subject: [PATCH 10/53] fix(deps): update dependency scratch-l10n to v3.15.20221115032105 --- package-lock.json | 46 +++++++++++++++++++++++++++++++++++++++------- package.json | 2 +- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4dccafb75..f5dac8bca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -100,7 +100,7 @@ "sass": "1.49.7", "sass-loader": "10.2.1", "scratch-gui": "1.1.7", - "scratch-l10n": "3.15.20221114032101", + "scratch-l10n": "3.15.20221115032105", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", "style-loader": "0.12.3", @@ -23451,6 +23451,24 @@ "symbol-observable": "^1.0.3" } }, + "node_modules/scratch-gui/node_modules/scratch-l10n": { + "version": "3.15.20221114032101", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221114032101.tgz", + "integrity": "sha512-sQcfmQwSoW75+215RVNOHpe/0ktfPPw9ROj0r468Uqblmp7Gc0KMCheYaTvMgnsRB0tW2Dgufc2vT84cElnR4Q==", + "dev": true, + "dependencies": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "@transifex/api": "4.2.5", + "babel-plugin-react-intl": "^3.0.1", + "download": "^8.0.0", + "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": "1.1.31", "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.31.tgz", @@ -23550,9 +23568,9 @@ } }, "node_modules/scratch-l10n": { - "version": "3.15.20221114032101", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221114032101.tgz", - "integrity": "sha512-sQcfmQwSoW75+215RVNOHpe/0ktfPPw9ROj0r468Uqblmp7Gc0KMCheYaTvMgnsRB0tW2Dgufc2vT84cElnR4Q==", + "version": "3.15.20221115032105", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221115032105.tgz", + "integrity": "sha512-bFkzvDCBv/pmxigG9dYB3x3KewJvF9M/XAtcFEL7KplFm6WUgOyKFkIbidz7dYY/P5StUj2tB8I3z0m2Qk+N1w==", "dev": true, "dependencies": { "@babel/cli": "^7.1.2", @@ -51442,6 +51460,20 @@ "symbol-observable": "^1.0.3" } }, + "scratch-l10n": { + "version": "3.15.20221114032101", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221114032101.tgz", + "integrity": "sha512-sQcfmQwSoW75+215RVNOHpe/0ktfPPw9ROj0r468Uqblmp7Gc0KMCheYaTvMgnsRB0tW2Dgufc2vT84cElnR4Q==", + "dev": true, + "requires": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "@transifex/api": "4.2.5", + "babel-plugin-react-intl": "^3.0.1", + "download": "^8.0.0", + "transifex": "1.6.6" + } + }, "scratch-paint": { "version": "1.1.31", "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.31.tgz", @@ -51520,9 +51552,9 @@ } }, "scratch-l10n": { - "version": "3.15.20221114032101", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221114032101.tgz", - "integrity": "sha512-sQcfmQwSoW75+215RVNOHpe/0ktfPPw9ROj0r468Uqblmp7Gc0KMCheYaTvMgnsRB0tW2Dgufc2vT84cElnR4Q==", + "version": "3.15.20221115032105", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221115032105.tgz", + "integrity": "sha512-bFkzvDCBv/pmxigG9dYB3x3KewJvF9M/XAtcFEL7KplFm6WUgOyKFkIbidz7dYY/P5StUj2tB8I3z0m2Qk+N1w==", "dev": true, "requires": { "@babel/cli": "^7.1.2", diff --git a/package.json b/package.json index 4fad1c2a5..32f86ec78 100644 --- a/package.json +++ b/package.json @@ -135,7 +135,7 @@ "sass": "1.49.7", "sass-loader": "10.2.1", "scratch-gui": "1.1.7", - "scratch-l10n": "3.15.20221114032101", + "scratch-l10n": "3.15.20221115032105", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", "style-loader": "0.12.3", From 14c07dc675a6ed2c49db5c784c02511a7eb5445b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Nov 2022 08:50:16 +0000 Subject: [PATCH 11/53] fix(deps): update dependency scratch-gui to v1.1.8 --- package-lock.json | 50 +++++++++-------------------------------------- package.json | 2 +- 2 files changed, 10 insertions(+), 42 deletions(-) diff --git a/package-lock.json b/package-lock.json index f5dac8bca..b8f4b4bae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -99,7 +99,7 @@ "regenerator-runtime": "0.13.9", "sass": "1.49.7", "sass-loader": "10.2.1", - "scratch-gui": "1.1.7", + "scratch-gui": "1.1.8", "scratch-l10n": "3.15.20221115032105", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", @@ -23114,9 +23114,9 @@ } }, "node_modules/scratch-gui": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.7.tgz", - "integrity": "sha512-XYnj+9p5c9te6I+P8lyCaUVEdhMk0qpOsnaOiyHWpxFSW+O6qSEAQt4wRyXGgzUZmFIN6rHM/zBgaDIgrH9hUQ==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.8.tgz", + "integrity": "sha512-/P1yhCk418ioPvFR541UPc1BCHrh+Ieohp4PsdY/IKkyl65ZQn7YWElgwf+zyGu3gf4UCJe5713UKffGDouLxA==", "dev": true, "dependencies": { "arraybuffer-loader": "^1.0.6", @@ -23168,7 +23168,7 @@ "redux-throttle": "0.1.1", "scratch-audio": "0.1.0-prerelease.20200528195344", "scratch-blocks": "0.1.0-prerelease.20221024060953", - "scratch-l10n": "3.15.20221114032101", + "scratch-l10n": "3.15.20221115032105", "scratch-paint": "1.1.31", "scratch-render": "0.1.0-prerelease.20221102163423", "scratch-render-fonts": "1.0.0-prerelease.20221102164332", @@ -23451,24 +23451,6 @@ "symbol-observable": "^1.0.3" } }, - "node_modules/scratch-gui/node_modules/scratch-l10n": { - "version": "3.15.20221114032101", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221114032101.tgz", - "integrity": "sha512-sQcfmQwSoW75+215RVNOHpe/0ktfPPw9ROj0r468Uqblmp7Gc0KMCheYaTvMgnsRB0tW2Dgufc2vT84cElnR4Q==", - "dev": true, - "dependencies": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "@transifex/api": "4.2.5", - "babel-plugin-react-intl": "^3.0.1", - "download": "^8.0.0", - "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": "1.1.31", "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.31.tgz", @@ -51177,9 +51159,9 @@ } }, "scratch-gui": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.7.tgz", - "integrity": "sha512-XYnj+9p5c9te6I+P8lyCaUVEdhMk0qpOsnaOiyHWpxFSW+O6qSEAQt4wRyXGgzUZmFIN6rHM/zBgaDIgrH9hUQ==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.8.tgz", + "integrity": "sha512-/P1yhCk418ioPvFR541UPc1BCHrh+Ieohp4PsdY/IKkyl65ZQn7YWElgwf+zyGu3gf4UCJe5713UKffGDouLxA==", "dev": true, "requires": { "arraybuffer-loader": "^1.0.6", @@ -51231,7 +51213,7 @@ "redux-throttle": "0.1.1", "scratch-audio": "0.1.0-prerelease.20200528195344", "scratch-blocks": "0.1.0-prerelease.20221024060953", - "scratch-l10n": "3.15.20221114032101", + "scratch-l10n": "3.15.20221115032105", "scratch-paint": "1.1.31", "scratch-render": "0.1.0-prerelease.20221102163423", "scratch-render-fonts": "1.0.0-prerelease.20221102164332", @@ -51460,20 +51442,6 @@ "symbol-observable": "^1.0.3" } }, - "scratch-l10n": { - "version": "3.15.20221114032101", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221114032101.tgz", - "integrity": "sha512-sQcfmQwSoW75+215RVNOHpe/0ktfPPw9ROj0r468Uqblmp7Gc0KMCheYaTvMgnsRB0tW2Dgufc2vT84cElnR4Q==", - "dev": true, - "requires": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "@transifex/api": "4.2.5", - "babel-plugin-react-intl": "^3.0.1", - "download": "^8.0.0", - "transifex": "1.6.6" - } - }, "scratch-paint": { "version": "1.1.31", "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.31.tgz", diff --git a/package.json b/package.json index 32f86ec78..7cb995247 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,7 @@ "regenerator-runtime": "0.13.9", "sass": "1.49.7", "sass-loader": "10.2.1", - "scratch-gui": "1.1.7", + "scratch-gui": "1.1.8", "scratch-l10n": "3.15.20221115032105", "selenium-webdriver": "4.1.0", "slick-carousel": "1.6.0", From 69065e129b80d52c3817602abf97adbd1a3bace2 Mon Sep 17 00:00:00 2001 From: Karishma Chadha Date: Tue, 7 Jun 2022 18:25:32 -0400 Subject: [PATCH 12/53] feat: Create landing page for Scratch Link download (ENA-69) --- .../extension-landing/extension-landing.scss | 42 ++++- .../extension-requirements.jsx | 111 +++++++------ .../extension-landing/hardware-card.jsx | 32 ++++ src/components/os-chooser/os-chooser.jsx | 93 ++++++----- src/routes.json | 13 ++ src/views/boost/boost.jsx | 2 +- src/views/download/scratch-link/download.jsx | 149 ++++++++++++++++++ src/views/download/scratch-link/download.scss | 7 + src/views/download/scratch-link/l10n.json | 24 +++ src/views/ev3/ev3.jsx | 2 +- src/views/gdxfor/gdxfor.jsx | 2 +- src/views/microbit/microbit.jsx | 2 +- src/views/wedo2/wedo2.jsx | 2 +- .../images/scratchlink/scratch-link-logo.svg | 14 ++ 14 files changed, 404 insertions(+), 91 deletions(-) create mode 100644 src/components/extension-landing/hardware-card.jsx create mode 100644 src/views/download/scratch-link/download.jsx create mode 100644 src/views/download/scratch-link/download.scss create mode 100644 src/views/download/scratch-link/l10n.json create mode 100644 static/images/scratchlink/scratch-link-logo.svg diff --git a/src/components/extension-landing/extension-landing.scss b/src/components/extension-landing/extension-landing.scss index f4f4fbfcf..a9182d592 100644 --- a/src/components/extension-landing/extension-landing.scss +++ b/src/components/extension-landing/extension-landing.scss @@ -258,7 +258,47 @@ } } - div.cards + div.faq { + .hardware-cards { + display: grid; + grid-template-columns: 1fr 1fr 1fr; + gap: 3em; + + // 1 column + @media #{$medium-and-smaller} { + grid-template-columns: 1fr; + } + } + + .hardware-card { + border: 1px solid $ui-border; + border-radius: .5rem; + background-color: $ui-white; + overflow: hidden; + flex-basis: 0; + flex-grow: 1; + } + + .hardware-card-image { + background-color: $ui-blue-10percent; + padding: 1rem 0 1rem; + + img { + display: block; + margin: 0 auto; + height: 100px; + max-width: 100%; + } + } + + .hardware-card-info { + padding: 1rem; + + p { + margin: .2rem 0; + } + } + + div.cards+div.faq { padding-top: 2rem; } diff --git a/src/components/extension-landing/extension-requirements.jsx b/src/components/extension-landing/extension-requirements.jsx index efe498921..8348767c3 100644 --- a/src/components/extension-landing/extension-requirements.jsx +++ b/src/components/extension-landing/extension-requirements.jsx @@ -12,62 +12,77 @@ const ExtensionRequirements = props => ( - {props.bluetoothStandard ? ( - - - - Windows 10 version 1709+ - - - - macOS 10.13+ - - - - - ChromeOS - - - - Android 6.0+ - - - - - Bluetooth - - - - Scratch Link - - - ) : props.children} + {!props.hideWindows && ( + + + Windows 10 version 1709+ + + )} + {!props.hideMac && ( + + + macOS 10.13+ + + )} + {!props.hideChromeOS && ( + + + ChromeOS + + )} + {!props.hideAndroid && ( + + + Android 6.0+ + + )} + {!props.hideBluetooth && ( + + + Bluetooth + + )} + {!props.hideScratchLink && ( + + + Scratch Link + + )} ); ExtensionRequirements.propTypes = { - bluetoothStandard: PropTypes.bool, - children: PropTypes.node + hideAndroid: PropTypes.bool, + hideBluetooth: PropTypes.bool, + hideChromeOS: PropTypes.bool, + hideMac: PropTypes.bool, + hideScratchLink: PropTypes.bool, + hideWindows: PropTypes.bool, }; ExtensionRequirements.defaultProps = { - bluetoothStandard: false + hideAndroid: false, + hideBluetooth: false, + hideChromeOS: false, + hideMac: false, + hideScratchLink: false, + hideWindows: false, }; module.exports = ExtensionRequirements; diff --git a/src/components/extension-landing/hardware-card.jsx b/src/components/extension-landing/hardware-card.jsx new file mode 100644 index 000000000..d3f250e1a --- /dev/null +++ b/src/components/extension-landing/hardware-card.jsx @@ -0,0 +1,32 @@ +const PropTypes = require('prop-types'); +const React = require('react'); + +const HardwareCard = props => ( + +
+ {props.imageAlt} +
+
+

{props.title}

+

{props.description}

+
+
+); + +HardwareCard.propTypes = { + cardUrl: PropTypes.string, + description: PropTypes.string, + imageAlt: PropTypes.string, + imageSrc: PropTypes.string, + title: PropTypes.string +}; + +module.exports = HardwareCard; diff --git a/src/components/os-chooser/os-chooser.jsx b/src/components/os-chooser/os-chooser.jsx index c2821080a..b3ba27fe8 100644 --- a/src/components/os-chooser/os-chooser.jsx +++ b/src/components/os-chooser/os-chooser.jsx @@ -15,49 +15,68 @@ const OSChooser = props => (
- - - - + {!props.hideWindows && ( + + )} + {!props.hideMac && ( + + )} + {!props.hideChromeOS && ( + + )} + {!props.hideAndroid && ( + + )}
); OSChooser.propTypes = { currentOS: PropTypes.string, - handleSetOS: PropTypes.func + handleSetOS: PropTypes.func, + hideAndroid: PropTypes.bool, + hideChromeOS: PropTypes.bool, + hideMac: PropTypes.bool, + hideWindows: PropTypes.bool, +}; + +OSChooser.defaultProps = { + hideAndroid: false, + hideChromeOS: false, + hideMac: false, + hideWindows: false, }; const wrappedOSChooser = injectIntl(OSChooser); diff --git a/src/routes.json b/src/routes.json index 560430aaf..a780f20cb 100644 --- a/src/routes.json +++ b/src/routes.json @@ -298,6 +298,19 @@ "view": "download/scratch2/download", "title": "Scratch 2.0" }, + { + "name": "download-scratch-link", + "pattern": "^/download/scratch-link/?(\\?.*)?$", + "routeAlias": "/download/scratch-link", + "view": "download/scratch-link/download", + "title": "Scratch Link Download" + }, + { + "name": "download-scratch-link-redirect", + "pattern": "^/download/link/?(\\?.*)?$", + "routeAlias": "/download/link", + "redirect": "/download/scratch-link" + }, { "name": "search", "pattern": "^/search/:projects/?$", diff --git a/src/views/boost/boost.jsx b/src/views/boost/boost.jsx index b96565a4d..87c70c0e0 100644 --- a/src/views/boost/boost.jsx +++ b/src/views/boost/boost.jsx @@ -59,7 +59,7 @@ class Boost extends ExtensionLanding { src="/images/boost/boost-header.svg" />} renderRequirements={ - + } /> { + const [os, setOS] = useState(detectOS()); + + return ( +
+ +

{intl.formatMessage({{intl.formatMessage({ id: "scratchLink.headerTitle" })}

+ + + } + renderImage={ + + } + renderRequirements={ + + } + /> + + {(isDownloaded(os)) && ( + + )} + +

+

+
+ + + + + +
+
+ + {isDownloaded(os) && ( + +

+

+ + + + ), + macOSVersionLink: ( + + + + ) + }} + /> +

+

+
+ )} +

+

+ +

+
+
+ ); +}; + +ScratchLink.propTypes = { + intl: intlShape.isRequired +}; + +const WrappedScratchLink = injectIntl(ScratchLink); + +render(, document.getElementById('app')); diff --git a/src/views/download/scratch-link/download.scss b/src/views/download/scratch-link/download.scss new file mode 100644 index 000000000..965841d5a --- /dev/null +++ b/src/views/download/scratch-link/download.scss @@ -0,0 +1,7 @@ +@import "../../../colors"; + +.link { + .extension-header { + background-color: $ui-aqua; + } +} diff --git a/src/views/download/scratch-link/l10n.json b/src/views/download/scratch-link/l10n.json new file mode 100644 index 000000000..0d2ac3b18 --- /dev/null +++ b/src/views/download/scratch-link/l10n.json @@ -0,0 +1,24 @@ +{ + "scratchLink.headerText": "Scratch Link allows you to connect hardware to interact with your Scratch projects. Open new possibilities by combining your digital projects with the physical world.", + "scratchLink.headerTitle": "Scratch Link", + "scratchLink.linkLogo": "Scratch Link logo", + "scratchLink.troubleshootingTitle": "Troubleshooting", + "scratchLink.checkOSVersionTitle": "Make sure your operating system is compatible with Scratch Link", + "scratchLink.checkOSVersionText": "The minimum operating system versions are listed at the top of this page. See instructions for checking your version of {winOSVersionLink} or {macOSVersionLink}.", + "scratchLink.winOSVersionLinkText": "Windows", + "scratchLink.macOSVersionLinkText": "Mac OS", + "scratchLink.closeScratchCopiesTitle": "Close other copies of Scratch", + "scratchLink.closeScratchCopiesText": "Only one copy of Scratch can connect with Scratch Link at a time. If you have Scratch open in other browser tabs, close it and try again.", + "scratchLink.thingsToTry": "Things to Try", + "scratchLink.compatibleDevices": "Compatible with Scratch Link", + "scratchLink.microbitTitle": "micro:bit", + "scratchLink.microbitDescription": "micro:bit is a tiny circuit board designed to help kids learn to code and create with technology.", + "scratchLink.ev3Title": "LEGO MINDSTORMS EV3", + "scratchLink.ev3Description": "LEGO MINDSTORMS Education EV3 is an invention kit with motors and sensors you can use to build interactive robotic creations.", + "scratchLink.wedoTitle": "LEGO Education WeDo 2.0", + "scratchLink.wedoDescription": "LEGO Education WeDo 2.0 is an introductory invention kit you can use to build interactive robots and other creations.", + "scratchLink.boostTitle": "LEGO BOOST", + "scratchLink.boostDescription": "The LEGO BOOST kit brings your LEGO creations to life with powerful motors, a color sensor and more.", + "scratchLink.vernierTitle": "Vernier Force & Acceleration", + "scratchLink.vernierDescription": "The Vernier Go Direct Force & Acceleration sensor is a powerful scientific tool that unlocks new ways to connect the physical world to your Scratch projects." +} diff --git a/src/views/ev3/ev3.jsx b/src/views/ev3/ev3.jsx index 1ccb98b25..8c08a30c4 100644 --- a/src/views/ev3/ev3.jsx +++ b/src/views/ev3/ev3.jsx @@ -63,7 +63,7 @@ class EV3 extends ExtensionLanding { videoId="0huu6wfiki" />} renderRequirements={ - + } /> } renderRequirements={ - + } /> } renderRequirements={ - + } /> } renderRequirements={ - + } /> + + + Master 1024x1024 + Created with Sketch. + + + + + + + + + \ No newline at end of file From b038cf5f70e50a5de2a354822d15f942ef8dc9dd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Nov 2022 17:25:48 +0000 Subject: [PATCH 13/53] feat(deps): update dependency scratch-parser to v5.1.0 --- package-lock.json | 65 ++++++++++++++++++++++++++++++++++++++++------- package.json | 2 +- 2 files changed, 57 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index b8f4b4bae..8175ceb06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "react-router-dom": "5.2.0", "react-twitter-embed": "^3.0.3", "react-use": "^17.3.1", - "scratch-parser": "5.0.0", + "scratch-parser": "5.1.0", "scratch-storage": "2.0.2" }, "devDependencies": { @@ -23568,9 +23568,9 @@ } }, "node_modules/scratch-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/scratch-parser/-/scratch-parser-5.0.0.tgz", - "integrity": "sha512-7kjxoxivLgYYvmAJVLOOWnca4CigwuCpgjy9+6UuxOMgSZKO1xqIjxIADupabmh1ZLZZDVe45DBM/CQTdtVDkw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/scratch-parser/-/scratch-parser-5.1.0.tgz", + "integrity": "sha512-6B6aaEV3TmA2kxSO2u5qLr84f6rhLgUxz276aFYrUyv6ekCWegEUpkKBHnOC1oCAl1ySpVtFBNXh3S110TDadw==", "dependencies": { "ajv": "6.3.0", "jszip": "3.1.5", @@ -23583,7 +23583,7 @@ "node_modules/scratch-parser/node_modules/ajv": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz", - "integrity": "sha1-FlCkERTvAFdMrBC4Ay2PTBSBLac=", + "integrity": "sha512-6TQywaGYtRub2fqHkSXfVANlhfja2nbF33wCCHnt3aQstOrtd9jsQGiRUTIOlkEqcxpzRd2akfnqvBBPmLxs8g==", "dependencies": { "fast-deep-equal": "^1.0.0", "fast-json-stable-stringify": "^2.0.0", @@ -23776,6 +23776,17 @@ "scratch-svg-renderer": "^0.2.0-prerelease" } }, + "node_modules/scratch-vm/node_modules/ajv": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz", + "integrity": "sha512-6TQywaGYtRub2fqHkSXfVANlhfja2nbF33wCCHnt3aQstOrtd9jsQGiRUTIOlkEqcxpzRd2akfnqvBBPmLxs8g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, "node_modules/scratch-vm/node_modules/htmlparser2": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz", @@ -23861,6 +23872,20 @@ "node": ">= 4" } }, + "node_modules/scratch-vm/node_modules/scratch-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/scratch-parser/-/scratch-parser-5.0.0.tgz", + "integrity": "sha512-7kjxoxivLgYYvmAJVLOOWnca4CigwuCpgjy9+6UuxOMgSZKO1xqIjxIADupabmh1ZLZZDVe45DBM/CQTdtVDkw==", + "dev": true, + "dependencies": { + "ajv": "6.3.0", + "jszip": "3.1.5", + "pify": "4.0.1" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/scratch-vm/node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -51534,9 +51559,9 @@ } }, "scratch-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/scratch-parser/-/scratch-parser-5.0.0.tgz", - "integrity": "sha512-7kjxoxivLgYYvmAJVLOOWnca4CigwuCpgjy9+6UuxOMgSZKO1xqIjxIADupabmh1ZLZZDVe45DBM/CQTdtVDkw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/scratch-parser/-/scratch-parser-5.1.0.tgz", + "integrity": "sha512-6B6aaEV3TmA2kxSO2u5qLr84f6rhLgUxz276aFYrUyv6ekCWegEUpkKBHnOC1oCAl1ySpVtFBNXh3S110TDadw==", "requires": { "ajv": "6.3.0", "jszip": "3.1.5", @@ -51546,7 +51571,7 @@ "ajv": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz", - "integrity": "sha1-FlCkERTvAFdMrBC4Ay2PTBSBLac=", + "integrity": "sha512-6TQywaGYtRub2fqHkSXfVANlhfja2nbF33wCCHnt3aQstOrtd9jsQGiRUTIOlkEqcxpzRd2akfnqvBBPmLxs8g==", "requires": { "fast-deep-equal": "^1.0.0", "fast-json-stable-stringify": "^2.0.0", @@ -51740,6 +51765,17 @@ "worker-loader": "^1.1.1" }, "dependencies": { + "ajv": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz", + "integrity": "sha512-6TQywaGYtRub2fqHkSXfVANlhfja2nbF33wCCHnt3aQstOrtd9jsQGiRUTIOlkEqcxpzRd2akfnqvBBPmLxs8g==", + "dev": true, + "requires": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, "htmlparser2": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz", @@ -51802,6 +51838,17 @@ "ajv-keywords": "^3.1.0" } }, + "scratch-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/scratch-parser/-/scratch-parser-5.0.0.tgz", + "integrity": "sha512-7kjxoxivLgYYvmAJVLOOWnca4CigwuCpgjy9+6UuxOMgSZKO1xqIjxIADupabmh1ZLZZDVe45DBM/CQTdtVDkw==", + "dev": true, + "requires": { + "ajv": "6.3.0", + "jszip": "3.1.5", + "pify": "4.0.1" + } + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", diff --git a/package.json b/package.json index 7cb995247..524666634 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "react-router-dom": "5.2.0", "react-twitter-embed": "^3.0.3", "react-use": "^17.3.1", - "scratch-parser": "5.0.0", + "scratch-parser": "5.1.0", "scratch-storage": "2.0.2" }, "devDependencies": { From 3c458083800876c34db5e806b70c091adfb1682b Mon Sep 17 00:00:00 2001 From: Andy O'Neill Date: Tue, 15 Nov 2022 15:36:17 -0500 Subject: [PATCH 14/53] Add unit tests and correct linting problems --- .../extension-requirements.jsx | 4 +- src/components/os-chooser/os-chooser.jsx | 12 ++--- src/views/download/scratch-link/download.jsx | 52 ++++++++++--------- .../extension-requirements.test.jsx | 29 +++++++++++ test/unit/components/os-chooser.test.jsx | 32 ++++++++++++ 5 files changed, 97 insertions(+), 32 deletions(-) create mode 100644 test/unit/components/extension-requirements.test.jsx create mode 100644 test/unit/components/os-chooser.test.jsx diff --git a/src/components/extension-landing/extension-requirements.jsx b/src/components/extension-landing/extension-requirements.jsx index 8348767c3..ce9281396 100644 --- a/src/components/extension-landing/extension-requirements.jsx +++ b/src/components/extension-landing/extension-requirements.jsx @@ -73,7 +73,7 @@ ExtensionRequirements.propTypes = { hideChromeOS: PropTypes.bool, hideMac: PropTypes.bool, hideScratchLink: PropTypes.bool, - hideWindows: PropTypes.bool, + hideWindows: PropTypes.bool }; ExtensionRequirements.defaultProps = { @@ -82,7 +82,7 @@ ExtensionRequirements.defaultProps = { hideChromeOS: false, hideMac: false, hideScratchLink: false, - hideWindows: false, + hideWindows: false }; module.exports = ExtensionRequirements; diff --git a/src/components/os-chooser/os-chooser.jsx b/src/components/os-chooser/os-chooser.jsx index b3ba27fe8..232a363c8 100644 --- a/src/components/os-chooser/os-chooser.jsx +++ b/src/components/os-chooser/os-chooser.jsx @@ -17,7 +17,7 @@ const OSChooser = props => ( {!props.hideWindows && (