From f94b20158ca9de96e36c3719dff0dd212b37273c Mon Sep 17 00:00:00 2001 From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com> Date: Thu, 15 Feb 2024 17:41:31 -0800 Subject: [PATCH 01/15] fix(deps): unpin non-dev dependencies --- package-lock.json | 110 +++++++++++++++++++++++----------------------- package.json | 110 +++++++++++++++++++++++----------------------- 2 files changed, 110 insertions(+), 110 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9690fdba6ba..20635adef99 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,72 +9,72 @@ "version": "3.6.6", "license": "BSD-3-Clause", "dependencies": { - "@microbit/microbit-universal-hex": "0.2.2", + "@microbit/microbit-universal-hex": "^0.2.2", "arraybuffer-loader": "^1.0.6", "autoprefixer": "^9.0.1", - "balance-text": "3.3.1", - "base64-loader": "1.0.0", - "bowser": "1.9.4", + "balance-text": "^3.3.1", + "base64-loader": "^1.0.0", + "bowser": "^1.9.4", "cat-blocks": "npm:scratch-blocks@0.1.0-prerelease.20220318143026", - "classnames": "2.2.6", - "computed-style-to-inline-style": "3.0.0", - "cookie": "0.5.0", - "copy-webpack-plugin": "6.4.1", - "core-js": "2.5.7", + "classnames": "^2.2.6", + "computed-style-to-inline-style": "^3.0.0", + "cookie": "^0.5.0", + "copy-webpack-plugin": "^6.4.1", + "core-js": "^2.5.7", "css-loader": "^1.0.0", - "dapjs": "2.3.0", - "es6-object-assign": "1.1.0", - "get-float-time-domain-data": "0.1.0", - "get-user-media-promise": "1.1.4", - "immutable": "3.8.2", - "intl": "1.2.5", - "js-base64": "2.4.9", - "keymirror": "0.1.1", - "lodash.bindall": "4.4.0", - "lodash.debounce": "4.0.8", - "lodash.defaultsdeep": "4.6.1", - "lodash.omit": "4.5.0", - "lodash.throttle": "4.0.1", - "minilog": "3.1.0", - "omggif": "1.0.9", - "papaparse": "5.3.0", + "dapjs": "^2.3.0", + "es6-object-assign": "^1.1.0", + "get-float-time-domain-data": "^0.1.0", + "get-user-media-promise": "^1.1.4", + "immutable": "^3.8.2", + "intl": "^1.2.5", + "js-base64": "^2.4.9", + "keymirror": "^0.1.1", + "lodash.bindall": "^4.4.0", + "lodash.debounce": "^4.0.8", + "lodash.defaultsdeep": "^4.6.1", + "lodash.omit": "^4.5.0", + "lodash.throttle": "^4.0.1", + "minilog": "^3.1.0", + "omggif": "^1.0.9", + "papaparse": "^5.3.0", "postcss-import": "^12.0.0", "postcss-loader": "^3.0.0", "postcss-simple-vars": "^5.0.1", "prop-types": "^15.5.10", "query-string": "^5.1.1", "raw-loader": "^0.5.1", - "react": "16.14.0", - "react-contextmenu": "2.9.4", - "react-dom": "16.14.0", - "react-draggable": "3.0.5", - "react-ga": "2.5.3", - "react-intl": "2.9.0", - "react-modal": "3.9.1", - "react-popover": "0.5.10", - "react-redux": "5.0.7", - "react-responsive": "5.0.0", - "react-style-proptype": "3.2.2", - "react-tabs": "2.3.0", - "react-tooltip": "3.8.0", - "react-virtualized": "9.20.1", - "redux": "3.7.2", - "redux-throttle": "0.1.1", - "scratch-audio": "1.0.0", - "scratch-blocks": "1.1.2", - "scratch-l10n": "3.18.3", - "scratch-paint": "2.2.2", - "scratch-render": "1.0.0", - "scratch-render-fonts": "1.0.0-prerelease.20231017225105", - "scratch-storage": "2.3.1", - "scratch-svg-renderer": "0.2.0", - "scratch-vm": "2.3.4", - "startaudiocontext": "1.2.1", + "react": "^16.14.0", + "react-contextmenu": "^2.9.4", + "react-dom": "^16.14.0", + "react-draggable": "^3.0.5", + "react-ga": "^2.5.3", + "react-intl": "^2.9.0", + "react-modal": "^3.9.1", + "react-popover": "^0.5.10", + "react-redux": "^5.0.7", + "react-responsive": "^5.0.0", + "react-style-proptype": "^3.2.2", + "react-tabs": "^2.3.0", + "react-tooltip": "^3.8.0", + "react-virtualized": "^9.20.1", + "redux": "^3.7.2", + "redux-throttle": "^0.1.1", + "scratch-audio": "^1.0.0", + "scratch-blocks": "^1.1.2", + "scratch-l10n": "^3.18.3", + "scratch-paint": "^2.2.2", + "scratch-render": "^1.0.0", + "scratch-render-fonts": "^1.0.0-prerelease.20231017225105", + "scratch-storage": "^2.3.1", + "scratch-svg-renderer": "^0.2.0", + "scratch-vm": "^2.3.4", + "startaudiocontext": "^1.2.1", "style-loader": "^0.23.0", - "text-encoding": "0.7.0", - "to-style": "1.3.3", - "wav-encoder": "1.3.0", - "xhr": "2.5.0" + "text-encoding": "^0.7.0", + "to-style": "^1.3.3", + "wav-encoder": "^1.3.0", + "xhr": "^2.5.0" }, "devDependencies": { "@babel/cli": "7.14.8", diff --git a/package.json b/package.json index 3d2dbdcd2db..a8d78476349 100644 --- a/package.json +++ b/package.json @@ -32,72 +32,72 @@ } }, "dependencies": { - "@microbit/microbit-universal-hex": "0.2.2", + "@microbit/microbit-universal-hex": "^0.2.2", "arraybuffer-loader": "^1.0.6", "autoprefixer": "^9.0.1", - "balance-text": "3.3.1", - "base64-loader": "1.0.0", - "bowser": "1.9.4", + "balance-text": "^3.3.1", + "base64-loader": "^1.0.0", + "bowser": "^1.9.4", "cat-blocks": "npm:scratch-blocks@0.1.0-prerelease.20220318143026", - "classnames": "2.2.6", - "computed-style-to-inline-style": "3.0.0", - "cookie": "0.5.0", - "copy-webpack-plugin": "6.4.1", - "core-js": "2.5.7", + "classnames": "^2.2.6", + "computed-style-to-inline-style": "^3.0.0", + "cookie": "^0.5.0", + "copy-webpack-plugin": "^6.4.1", + "core-js": "^2.5.7", "css-loader": "^1.0.0", - "dapjs": "2.3.0", - "es6-object-assign": "1.1.0", - "get-float-time-domain-data": "0.1.0", - "get-user-media-promise": "1.1.4", - "immutable": "3.8.2", - "intl": "1.2.5", - "js-base64": "2.4.9", - "keymirror": "0.1.1", - "lodash.bindall": "4.4.0", - "lodash.debounce": "4.0.8", - "lodash.defaultsdeep": "4.6.1", - "lodash.omit": "4.5.0", - "lodash.throttle": "4.0.1", - "minilog": "3.1.0", - "omggif": "1.0.9", - "papaparse": "5.3.0", + "dapjs": "^2.3.0", + "es6-object-assign": "^1.1.0", + "get-float-time-domain-data": "^0.1.0", + "get-user-media-promise": "^1.1.4", + "immutable": "^3.8.2", + "intl": "^1.2.5", + "js-base64": "^2.4.9", + "keymirror": "^0.1.1", + "lodash.bindall": "^4.4.0", + "lodash.debounce": "^4.0.8", + "lodash.defaultsdeep": "^4.6.1", + "lodash.omit": "^4.5.0", + "lodash.throttle": "^4.0.1", + "minilog": "^3.1.0", + "omggif": "^1.0.9", + "papaparse": "^5.3.0", "postcss-import": "^12.0.0", "postcss-loader": "^3.0.0", "postcss-simple-vars": "^5.0.1", "prop-types": "^15.5.10", "query-string": "^5.1.1", "raw-loader": "^0.5.1", - "react": "16.14.0", - "react-contextmenu": "2.9.4", - "react-dom": "16.14.0", - "react-draggable": "3.0.5", - "react-ga": "2.5.3", - "react-intl": "2.9.0", - "react-modal": "3.9.1", - "react-popover": "0.5.10", - "react-redux": "5.0.7", - "react-responsive": "5.0.0", - "react-style-proptype": "3.2.2", - "react-tabs": "2.3.0", - "react-tooltip": "3.8.0", - "react-virtualized": "9.20.1", - "redux": "3.7.2", - "redux-throttle": "0.1.1", - "scratch-audio": "1.0.0", - "scratch-blocks": "1.1.2", - "scratch-l10n": "3.18.3", - "scratch-paint": "2.2.2", - "scratch-render": "1.0.0", - "scratch-render-fonts": "1.0.0-prerelease.20231017225105", - "scratch-storage": "2.3.1", - "scratch-svg-renderer": "0.2.0", - "scratch-vm": "2.3.4", - "startaudiocontext": "1.2.1", + "react": "^16.14.0", + "react-contextmenu": "^2.9.4", + "react-dom": "^16.14.0", + "react-draggable": "^3.0.5", + "react-ga": "^2.5.3", + "react-intl": "^2.9.0", + "react-modal": "^3.9.1", + "react-popover": "^0.5.10", + "react-redux": "^5.0.7", + "react-responsive": "^5.0.0", + "react-style-proptype": "^3.2.2", + "react-tabs": "^2.3.0", + "react-tooltip": "^3.8.0", + "react-virtualized": "^9.20.1", + "redux": "^3.7.2", + "redux-throttle": "^0.1.1", + "scratch-audio": "^1.0.0", + "scratch-blocks": "^1.1.2", + "scratch-l10n": "^3.18.3", + "scratch-paint": "^2.2.2", + "scratch-render": "^1.0.0", + "scratch-render-fonts": "^1.0.0-prerelease.20231017225105", + "scratch-storage": "^2.3.1", + "scratch-svg-renderer": "^0.2.0", + "scratch-vm": "^2.3.4", + "startaudiocontext": "^1.2.1", "style-loader": "^0.23.0", - "text-encoding": "0.7.0", - "to-style": "1.3.3", - "wav-encoder": "1.3.0", - "xhr": "2.5.0" + "text-encoding": "^0.7.0", + "to-style": "^1.3.3", + "wav-encoder": "^1.3.0", + "xhr": "^2.5.0" }, "peerDependencies": { "react": "^16.0.0", From 523cf66ecf5c1033ca8b81215bd611fc890c7174 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 02:13:16 +0000 Subject: [PATCH 02/15] chore(deps): update dependency chromedriver to v119 [security] --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 20635adef99..dc20811f4ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -89,7 +89,7 @@ "@commitlint/config-conventional": "17.8.1", "babel-core": "7.0.0-bridge.0", "babel-loader": "8.3.0", - "chromedriver": "117.0.3", + "chromedriver": "119.0.1", "enzyme": "3.10.0", "enzyme-adapter-react-16": "1.15.7", "eslint": "8.56.0", @@ -6282,19 +6282,19 @@ } }, "node_modules/chromedriver": { - "version": "117.0.3", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-117.0.3.tgz", - "integrity": "sha512-c2rk2eGK5zZFBJMdviUlAJfQEBuPNIKfal4+rTFVYAmrWbMPYAqPozB+rIkc1lDP/Ryw44lPiqKglrI01ILhTQ==", + "version": "119.0.1", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-119.0.1.tgz", + "integrity": "sha512-lpCFFLaXPpvElTaUOWKdP74pFb/sJhWtWqMjn7Ju1YriWn8dT5JBk84BGXMPvZQs70WfCYWecxdMmwfIu1Mupg==", "dev": true, "hasInstallScript": true, "dependencies": { - "@testim/chrome-version": "^1.1.3", - "axios": "^1.4.0", - "compare-versions": "^6.0.0", + "@testim/chrome-version": "^1.1.4", + "axios": "^1.6.0", + "compare-versions": "^6.1.0", "extract-zip": "^2.0.1", "https-proxy-agent": "^5.0.1", "proxy-from-env": "^1.1.0", - "tcp-port-used": "^1.0.1" + "tcp-port-used": "^1.0.2" }, "bin": { "chromedriver": "bin/chromedriver" diff --git a/package.json b/package.json index a8d78476349..8871ec71e30 100644 --- a/package.json +++ b/package.json @@ -116,7 +116,7 @@ "babel-core": "7.0.0-bridge.0", "@babel/eslint-parser": "7.23.10", "babel-loader": "8.3.0", - "chromedriver": "117.0.3", + "chromedriver": "119.0.1", "enzyme": "3.10.0", "enzyme-adapter-react-16": "1.15.7", "eslint": "8.56.0", From e0591bfb20c22301b5bbcb961cada0fbec1d03ab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 02:26:59 +0000 Subject: [PATCH 03/15] chore(deps): update dependency chromedriver to v121 --- package-lock.json | 24 ++++++++++++------------ package.json | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index dc20811f4ed..f38715f927f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -89,7 +89,7 @@ "@commitlint/config-conventional": "17.8.1", "babel-core": "7.0.0-bridge.0", "babel-loader": "8.3.0", - "chromedriver": "119.0.1", + "chromedriver": "121.0.0", "enzyme": "3.10.0", "enzyme-adapter-react-16": "1.15.7", "eslint": "8.56.0", @@ -4751,11 +4751,11 @@ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" }, "node_modules/axios": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz", - "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.4", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -6282,14 +6282,14 @@ } }, "node_modules/chromedriver": { - "version": "119.0.1", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-119.0.1.tgz", - "integrity": "sha512-lpCFFLaXPpvElTaUOWKdP74pFb/sJhWtWqMjn7Ju1YriWn8dT5JBk84BGXMPvZQs70WfCYWecxdMmwfIu1Mupg==", + "version": "121.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-121.0.0.tgz", + "integrity": "sha512-ZIKEdZrQAfuzT/RRofjl8/EZR99ghbdBXNTOcgJMKGP6N/UL6lHUX4n6ONWBV18pDvDFfQJ0x58h5AdOaXIOMw==", "dev": true, "hasInstallScript": true, "dependencies": { "@testim/chrome-version": "^1.1.4", - "axios": "^1.6.0", + "axios": "^1.6.5", "compare-versions": "^6.1.0", "extract-zip": "^2.0.1", "https-proxy-agent": "^5.0.1", @@ -10299,9 +10299,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", "funding": [ { "type": "individual", diff --git a/package.json b/package.json index 8871ec71e30..a2e7ae060bf 100644 --- a/package.json +++ b/package.json @@ -116,7 +116,7 @@ "babel-core": "7.0.0-bridge.0", "@babel/eslint-parser": "7.23.10", "babel-loader": "8.3.0", - "chromedriver": "119.0.1", + "chromedriver": "121.0.0", "enzyme": "3.10.0", "enzyme-adapter-react-16": "1.15.7", "eslint": "8.56.0", From 00841ccd6bbeeeb6e89535ff567f6d68e018319b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 02:36:18 +0000 Subject: [PATCH 04/15] chore(deps): pin dependencies --- .github/workflows/ci-cd.yml | 60 ++++++++++++++--------------- .github/workflows/commitlint.yml | 4 +- .github/workflows/daily-tx-pull.yml | 4 +- 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index c49d59af454..06397c9d50a 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -22,8 +22,8 @@ jobs: JEST_JUNIT_OUTPUT_DIR: test-results NODE_OPTIONS: --max-old-space-size=4000 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + - uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3 with: cache: "npm" node-version-file: ".nvmrc" @@ -41,27 +41,27 @@ jobs: run: | npm run test:lint -- --quiet --output-file test-results/eslint/results.xml --format junit - name: Store Lint Results - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3 with: name: lint-output path: ./test-results/* - name: Cache node_modules id: cache-nodemodules - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: node_modules key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} - name: Cache src/generated id: cache-generated - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: src/generated key: ${{ runner.os }}-generated-${{ hashFiles('package-lock.json') }} - name: Cache static/microbit id: cache-static - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: static/microbit @@ -73,9 +73,9 @@ jobs: JEST_JUNIT_OUTPUT_NAME: unit-results.xml JEST_JUNIT_OUTPUT_DIR: test-results/unit steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Cache NPM dependencies - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: node_modules @@ -83,7 +83,7 @@ jobs: - name: Run Unit Tests run: npm run test:unit -- --reporters="default" --reporters="jest-junit" --coverage --coverageReporters=text --coverageReporters=lcov --maxWorkers="2" - name: Store Unit Test Results - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3 with: name: unit-test-output path: ./test-results/* @@ -94,25 +94,25 @@ jobs: DETECT_CHROMEDRIVER_VERSION: "true" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + - uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3 with: cache: "npm" node-version-file: ".nvmrc" - name: Retrieve node_modules - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: node_modules key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} - name: Retrieve src/generated - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: src/generated key: ${{ runner.os }}-generated-${{ hashFiles('package-lock.json') }} - name: Retireve static/microbit - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: static/microbit @@ -122,24 +122,24 @@ jobs: NODE_ENV: production run: npm run build - name: Cache Build Directory - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: ./build key: ${{ runner.os }}-build-${{ hashFiles('package-lock.json') }} - name: Cache Dist Directory - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: ./dist key: ${{ runner.os }}-dist-${{ hashFiles('package-lock.json') }} - name: Store Build Output - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3 with: name: build-output path: ./build - name: Store Dist Output - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3 with: name: dist-output path: ./dist @@ -150,24 +150,24 @@ jobs: JEST_JUNIT_OUTPUT_NAME: results.txt JEST_JUNIT_OUTPUT_DIR: test-results/integration steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Install Chrome Dependencies run: | sudo apt-get update sudo apt-get install -y libgconf-2-4 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libgbm-dev libnss3-dev libxss-dev libasound2 - name: Retrieve npm dependencies - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: node_modules key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} - name: Retrieve Build - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: ./build key: ${{ runner.os }}-build-${{ hashFiles('package-lock.json') }} - - uses: browser-actions/setup-chrome@v1 + - uses: browser-actions/setup-chrome@97349de5c98094d4fc9412f31c524d7697115ad8 # v1 with: chrome-version: stable id: setup-chrome @@ -177,7 +177,7 @@ jobs: - name: Run Integration Tests run: npm run test:integration -- --reporters="default" --reporters="jest-junit" - name: Store Integration Test Results - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3 with: name: integration-test-output path: ./test-results/* @@ -186,15 +186,15 @@ jobs: if: (github.ref == 'refs/heads/master') || (github.ref == 'refs/heads/develop') || (github.ref == 'refs/heads/beta') || startsWith(github.ref, 'refs/heads/hotfix') runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Retrieve npm dependencies - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: node_modules key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} - name: Retrieve Dist Directory - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: ./dist @@ -213,21 +213,21 @@ jobs: if: (!(startsWith(github.ref, 'refs/heads/dependabot/') || startsWith(github.ref, 'refs/heads/renovate/'))) runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Retrieve npm dependencies - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: node_modules key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} - name: Retrieve Build Directory - uses: actions/cache@v3 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: ./build key: ${{ runner.os }}-build-${{ hashFiles('package-lock.json') }} - name: Deploy playground to GitHub Pages - uses: peaceiris/actions-gh-pages@v3 + uses: peaceiris/actions-gh-pages@373f7f263a76c20808c831209c920827a82a2847 # v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./build diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml index 400d857a02f..a6609e4f2d8 100644 --- a/.github/workflows/commitlint.yml +++ b/.github/workflows/commitlint.yml @@ -8,5 +8,5 @@ jobs: commitlint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: wagoid/commitlint-github-action@v5 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + - uses: wagoid/commitlint-github-action@5ce82f5d814d4010519d15f0552aec4f17a1e1fe # v5 diff --git a/.github/workflows/daily-tx-pull.yml b/.github/workflows/daily-tx-pull.yml index 41234bcd55c..ec38fb1fbe9 100644 --- a/.github/workflows/daily-tx-pull.yml +++ b/.github/workflows/daily-tx-pull.yml @@ -12,10 +12,10 @@ jobs: daily-tx-pull: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 with: ref: 'develop' - - uses: actions/setup-node@v3 + - uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3 with: cache: 'npm' node-version-file: '.nvmrc' From 51732e472e1187832b967044013c635d124e92fa Mon Sep 17 00:00:00 2001 From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com> Date: Fri, 16 Feb 2024 09:02:12 -0800 Subject: [PATCH 05/15] chore(deps): revert to chromedriver@^119 to fix SEGV Why does this help? :( --- package-lock.json | 10 +++++----- package.json | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index f38715f927f..6ad38ba77d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -89,7 +89,7 @@ "@commitlint/config-conventional": "17.8.1", "babel-core": "7.0.0-bridge.0", "babel-loader": "8.3.0", - "chromedriver": "121.0.0", + "chromedriver": "119.0.1", "enzyme": "3.10.0", "enzyme-adapter-react-16": "1.15.7", "eslint": "8.56.0", @@ -6282,14 +6282,14 @@ } }, "node_modules/chromedriver": { - "version": "121.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-121.0.0.tgz", - "integrity": "sha512-ZIKEdZrQAfuzT/RRofjl8/EZR99ghbdBXNTOcgJMKGP6N/UL6lHUX4n6ONWBV18pDvDFfQJ0x58h5AdOaXIOMw==", + "version": "119.0.1", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-119.0.1.tgz", + "integrity": "sha512-lpCFFLaXPpvElTaUOWKdP74pFb/sJhWtWqMjn7Ju1YriWn8dT5JBk84BGXMPvZQs70WfCYWecxdMmwfIu1Mupg==", "dev": true, "hasInstallScript": true, "dependencies": { "@testim/chrome-version": "^1.1.4", - "axios": "^1.6.5", + "axios": "^1.6.0", "compare-versions": "^6.1.0", "extract-zip": "^2.0.1", "https-proxy-agent": "^5.0.1", diff --git a/package.json b/package.json index a2e7ae060bf..1afd40786f8 100644 --- a/package.json +++ b/package.json @@ -67,9 +67,9 @@ "prop-types": "^15.5.10", "query-string": "^5.1.1", "raw-loader": "^0.5.1", - "react": "^16.14.0", + "react": "^16.0.0", "react-contextmenu": "^2.9.4", - "react-dom": "^16.14.0", + "react-dom": "^16.0.0", "react-draggable": "^3.0.5", "react-ga": "^2.5.3", "react-intl": "^2.9.0", @@ -106,6 +106,7 @@ "devDependencies": { "@babel/cli": "7.14.8", "@babel/core": "7.14.8", + "@babel/eslint-parser": "7.23.10", "@babel/plugin-proposal-object-rest-spread": "7.14.7", "@babel/plugin-syntax-dynamic-import": "7.2.0", "@babel/plugin-transform-async-to-generator": "7.14.5", @@ -114,9 +115,8 @@ "@commitlint/cli": "17.8.1", "@commitlint/config-conventional": "17.8.1", "babel-core": "7.0.0-bridge.0", - "@babel/eslint-parser": "7.23.10", "babel-loader": "8.3.0", - "chromedriver": "121.0.0", + "chromedriver": "119.0.1", "enzyme": "3.10.0", "enzyme-adapter-react-16": "1.15.7", "eslint": "8.56.0", From 9dd81cb3946410943860ee6f2c82d78f21c64993 Mon Sep 17 00:00:00 2001 From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com> Date: Fri, 16 Feb 2024 13:45:15 -0800 Subject: [PATCH 06/15] fix(deps): don't use NPM chromedriver package --- .github/workflows/ci-cd.yml | 1 - package-lock.json | 23 ----------------------- package.json | 1 - 3 files changed, 25 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 06397c9d50a..e030d9421ea 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -91,7 +91,6 @@ jobs: needs: [setup, test-unit] env: NODE_OPTIONS: --max-old-space-size=4000 - DETECT_CHROMEDRIVER_VERSION: "true" runs-on: ubuntu-latest steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 diff --git a/package-lock.json b/package-lock.json index 6ad38ba77d0..c3d3d969619 100644 --- a/package-lock.json +++ b/package-lock.json @@ -89,7 +89,6 @@ "@commitlint/config-conventional": "17.8.1", "babel-core": "7.0.0-bridge.0", "babel-loader": "8.3.0", - "chromedriver": "119.0.1", "enzyme": "3.10.0", "enzyme-adapter-react-16": "1.15.7", "eslint": "8.56.0", @@ -6281,28 +6280,6 @@ "node": ">=6.0" } }, - "node_modules/chromedriver": { - "version": "119.0.1", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-119.0.1.tgz", - "integrity": "sha512-lpCFFLaXPpvElTaUOWKdP74pFb/sJhWtWqMjn7Ju1YriWn8dT5JBk84BGXMPvZQs70WfCYWecxdMmwfIu1Mupg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@testim/chrome-version": "^1.1.4", - "axios": "^1.6.0", - "compare-versions": "^6.1.0", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.1", - "proxy-from-env": "^1.1.0", - "tcp-port-used": "^1.0.2" - }, - "bin": { - "chromedriver": "bin/chromedriver" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/ci-info": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", diff --git a/package.json b/package.json index 1afd40786f8..45cdf55df98 100644 --- a/package.json +++ b/package.json @@ -116,7 +116,6 @@ "@commitlint/config-conventional": "17.8.1", "babel-core": "7.0.0-bridge.0", "babel-loader": "8.3.0", - "chromedriver": "119.0.1", "enzyme": "3.10.0", "enzyme-adapter-react-16": "1.15.7", "eslint": "8.56.0", From c13dbc1b7254d27918a8c87a6ae42005c989963a Mon Sep 17 00:00:00 2001 From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com> Date: Fri, 16 Feb 2024 17:08:40 -0800 Subject: [PATCH 07/15] ci: use preinstalled Chrome/ium + driver --- .github/workflows/ci-cd.yml | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index e030d9421ea..671feb94da0 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -13,7 +13,6 @@ permissions: issues: write # comment on released issues pull-requests: write # comment on released pull requests - jobs: setup: runs-on: ubuntu-latest @@ -150,10 +149,6 @@ jobs: JEST_JUNIT_OUTPUT_DIR: test-results/integration steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - - name: Install Chrome Dependencies - run: | - sudo apt-get update - sudo apt-get install -y libgconf-2-4 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libgbm-dev libnss3-dev libxss-dev libasound2 - name: Retrieve npm dependencies uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: @@ -166,13 +161,10 @@ jobs: path: ./build key: ${{ runner.os }}-build-${{ hashFiles('package-lock.json') }} - - uses: browser-actions/setup-chrome@97349de5c98094d4fc9412f31c524d7697115ad8 # v1 - with: - chrome-version: stable - id: setup-chrome - run: | - echo Installed chromium version: ${{ steps.setup-chrome.outputs.chrome-version }} - ${{ steps.setup-chrome.outputs.chrome-path }} --version + for F in chrome chromium chromedriver; do + which $F && $F --version || echo Not found: $F + done - name: Run Integration Tests run: npm run test:integration -- --reporters="default" --reporters="jest-junit" - name: Store Integration Test Results From 274efa392d8352ee181d3f199b513c6222d17bce Mon Sep 17 00:00:00 2001 From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com> Date: Fri, 16 Feb 2024 17:36:56 -0800 Subject: [PATCH 08/15] docs: update README.md re: chromedriver --- README.md | 91 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 61 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 77aeb5f0941..69b9b003680 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,40 @@ # scratch-gui -#### Scratch GUI is a set of React components that comprise the interface for creating and running Scratch 3.0 projects + +Scratch GUI is a set of React components that comprise the interface for creating and running Scratch 3.0 projects ## Installation + This requires you to have Git and Node.js installed. In your own node environment/application: + ```bash npm install https://github.com/LLK/scratch-gui.git ``` + If you want to edit/play yourself: + ```bash git clone https://github.com/LLK/scratch-gui.git cd scratch-gui npm install ``` -**You may want to add `--depth=1` to the `git clone` command because there are some [large files in the git repository history](https://github.com/LLK/scratch-gui/issues/5140).** +**You may want to add `--depth=1` to the `git clone` command because there are some [large files in the git repository +history](https://github.com/LLK/scratch-gui/issues/5140).** ## Getting started + Running the project requires Node.js to be installed. ## Running + Open a Command Prompt or Terminal in the repository and run: + ```bash npm start ``` + Then go to [http://localhost:8601/](http://localhost:8601/) - the playground outputs the default GUI component ## Developing alongside other Scratch repositories @@ -52,20 +62,28 @@ Here's how to link your local `scratch-gui` code to another project's `node_modu #### Using `npm run watch` -Instead of `BUILD_MODE=dist npm run build`, you can use `BUILD_MODE=dist npm run watch` instead. This will watch for changes to your `scratch-gui` code, and automatically rebuild when there are changes. Sometimes this has been unreliable; if you are having problems, try going back to `BUILD_MODE=dist npm run build` until you resolve them. +Instead of `BUILD_MODE=dist npm run build`, you can use `BUILD_MODE=dist npm run watch` instead. This will watch for +changes to your `scratch-gui` code, and automatically rebuild when there are changes. Sometimes this has been +unreliable; if you are having problems, try going back to `BUILD_MODE=dist npm run build` until you resolve them. #### Oh no! It didn't work! If you can't get linking to work right, try: -* Follow the recipe above step by step and don't change the order. It is especially important to run `npm install` _before_ `npm link` as installing after the linking will reset the linking. -* Make sure the repositories are siblings on your machine's file tree, like `.../.../MY_SCRATCH_DEV_DIRECTORY/scratch-gui/` and `.../.../MY_SCRATCH_DEV_DIRECTORY/scratch-www/`. -* Consistent node.js version: If you have multiple Terminal tabs or windows open for the different Scratch repositories, make sure to use the same node version in all of them. + +* Follow the recipe above step by step and don't change the order. It is especially important to run `npm install` + _before_ `npm link` as installing after the linking will reset the linking. +* Make sure the repositories are siblings on your machine's file tree, like + `.../.../MY_SCRATCH_DEV_DIRECTORY/scratch-gui/` and `.../.../MY_SCRATCH_DEV_DIRECTORY/scratch-www/`. +* Consistent node.js version: If you have multiple Terminal tabs or windows open for the different Scratch + repositories, make sure to use the same node version in all of them. * If nothing else works, unlink the repositories by running `npm unlink` in both, and start over. ## Testing + ### Documentation -You may want to review the documentation for [Jest](https://facebook.github.io/jest/docs/en/api.html) and [Enzyme](http://airbnb.io/enzyme/docs/api/) as you write your tests. +You may want to review the documentation for [Jest](https://facebook.github.io/jest/docs/en/api.html) and +[Enzyme](http://airbnb.io/enzyme/docs/api/) as you write your tests. See [jest cli docs](https://facebook.github.io/jest/docs/en/cli.html#content) for more options. @@ -78,6 +96,7 @@ Before running any tests, make sure you have run `npm install` from this (scratc #### Main testing command To run linter, unit tests, build, and integration tests, all at once: + ```bash npm test ``` @@ -85,11 +104,13 @@ npm test #### Running unit tests To run unit tests in isolation: + ```bash npm run test:unit ``` To run unit tests in watch mode (watches for code changes and continuously runs tests): + ```bash npm run test:unit -- --watch ``` @@ -105,6 +126,8 @@ $(npm bin)/jest --runInBand test/unit/components/button.test.jsx Integration tests use a headless browser to manipulate the actual HTML and javascript that the repo produces. You will not see this activity (though you can hear it when sounds are played!). +To run the integration tests, you'll first need to install Chrome, Chromium, or a variant, along with Chromedriver. + Note that integration tests require you to first create a build that can be loaded in a browser: ```bash @@ -129,26 +152,20 @@ If you want to watch the browser as it runs the test, rather than running headle USE_HEADLESS=no $(npm bin)/jest --runInBand test/integration/backpack.test.js ``` -_Note: If you are seeing failed tests related to `chromedriver` being incompatible with your version of Chrome, you may need to update `chromedriver` with:_ - -```bash -npm install chromedriver@{version} -``` - ## Troubleshooting ### Ignoring optional dependencies When running `npm install`, you can get warnings about optional dependencies: -``` +```text npm WARN optional Skipping failed optional dependency /chokidar/fsevents: npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.2.7 ``` You can suppress them by adding the `no-optional` switch: -``` +```bash npm install --no-optional ``` @@ -158,7 +175,7 @@ Further reading: [Stack Overflow](https://stackoverflow.com/questions/36725181/n When installing for the first time, you can get warnings that need to be resolved: -``` +```text npm WARN eslint-config-scratch@5.0.0 requires a peer of babel-eslint@^8.0.1 but none was installed. npm WARN eslint-config-scratch@5.0.0 requires a peer of eslint@^4.0 but none was installed. npm WARN scratch-paint@0.2.0-prerelease.20190318170811 requires a peer of react-intl-redux@^0.7 but none was installed. @@ -167,19 +184,19 @@ npm WARN scratch-paint@0.2.0-prerelease.20190318170811 requires a peer of react- You can check which versions are available: -``` +```bash npm view react-intl-redux@0.* version ``` You will need to install the required version: -``` +```bash npm install --no-optional --save-dev react-intl-redux@^0.7 ``` The dependency itself might have more missing dependencies, which will show up like this: -``` +```bash user@machine:~/sources/scratch/scratch-gui (491-translatable-library-objects)$ npm install --no-optional --save-dev react-intl-redux@^0.7 scratch-gui@0.1.0 /media/cuideigin/Linux/sources/scratch/scratch-gui ├── react-intl-redux@0.7.0 @@ -188,7 +205,7 @@ scratch-gui@0.1.0 /media/cuideigin/Linux/sources/scratch/scratch-gui You will need to install those as well: -``` +```bash npm install --no-optional --save-dev react-responsive@^5.0.0 ``` @@ -197,20 +214,25 @@ Further reading: [Stack Overflow](https://stackoverflow.com/questions/46602286/n ## Troubleshooting If you run into npm install errors, try these steps: + 1. run `npm cache clean --force` 2. Delete the node_modules directory 3. Delete package-lock.json 4. run `npm install` again ## Publishing to GitHub Pages + You can publish the GUI to github.io so that others on the Internet can view it. [Read the wiki for a step-by-step guide.](https://github.com/LLK/scratch-gui/wiki/Publishing-to-GitHub-Pages) ## Understanding the project state machine -Since so much code throughout scratch-gui depends on the state of the project, which goes through many different phases of loading, displaying and saving, we created a "finite state machine" to make it clear which state it is in at any moment. This is contained in the file src/reducers/project-state.js . +Since so much code throughout scratch-gui depends on the state of the project, which goes through many different +phases of loading, displaying and saving, we created a "finite state machine" to make it clear which state it is in at +any moment. This is contained in the file src/reducers/project-state.js . -It can be hard to understand the code in src/reducers/project-state.js . There are several types of data and functions used, which relate to each other: +It can be hard to understand the code in src/reducers/project-state.js . There are several types of data and functions +used, which relate to each other: ### Loading states @@ -237,7 +259,8 @@ These are names for the action which causes a state change. Some examples are: ### How transitions relate to loading states -Like this diagram of the project state machine shows, various transition actions can move us from one loading state to another: +Like this diagram of the project state machine shows, various transition actions can move us from one loading state to +another: ![Project state diagram](docs/project_state_diagram.svg) @@ -247,19 +270,27 @@ _Note: for clarity, the diagram above excludes states and transitions relating t Here's an example of how states transition. -Suppose a user clicks on a project, and the page starts to load with URL https://scratch.mit.edu/projects/123456 . +Suppose a user clicks on a project, and the page starts to load with URL `https://scratch.mit.edu/projects/123456`. Here's what will happen in the project state machine: ![Project state example](docs/project_state_example.png) 1. When the app first mounts, the project state is `NOT_LOADED`. -2. The `SET_PROJECT_ID` redux action is dispatched (from src/lib/project-fetcher-hoc.jsx), with `projectId` set to `123456`. This transitions the state from `NOT_LOADED` to `FETCHING_WITH_ID`. -3. The `FETCHING_WITH_ID` state. In src/lib/project-fetcher-hoc.jsx, the `projectId` value `123456` is used to request the data for that project from the server. -4. When the server responds with the data, src/lib/project-fetcher-hoc.jsx dispatches the `DONE_FETCHING_WITH_ID` action, with `projectData` set. This transitions the state from `FETCHING_WITH_ID` to `LOADING_VM_WITH_ID`. -5. The `LOADING_VM_WITH_ID` state. In src/lib/vm-manager-hoc.jsx, we load the `projectData` into Scratch's virtual machine ("the vm"). -6. When loading is done, src/lib/vm-manager-hoc.jsx dispatches the `DONE_LOADING_VM_WITH_ID` action. This transitions the state from `LOADING_VM_WITH_ID` to `SHOWING_WITH_ID` +2. The `SET_PROJECT_ID` redux action is dispatched (from src/lib/project-fetcher-hoc.jsx), with `projectId` set to + `123456`. This transitions the state from `NOT_LOADED` to `FETCHING_WITH_ID`. +3. The `FETCHING_WITH_ID` state. In src/lib/project-fetcher-hoc.jsx, the `projectId` value `123456` is used to request + the data for that project from the server. +4. When the server responds with the data, src/lib/project-fetcher-hoc.jsx dispatches the `DONE_FETCHING_WITH_ID` + action, with `projectData` set. This transitions the state from `FETCHING_WITH_ID` to `LOADING_VM_WITH_ID`. +5. The `LOADING_VM_WITH_ID` state. In src/lib/vm-manager-hoc.jsx, we load the `projectData` into Scratch's virtual + machine ("the vm"). +6. When loading is done, src/lib/vm-manager-hoc.jsx dispatches the `DONE_LOADING_VM_WITH_ID` action. This transitions + the state from `LOADING_VM_WITH_ID` to `SHOWING_WITH_ID`. 7. The `SHOWING_WITH_ID` state. Now the project appears normally and is playable and editable. ## Donate -We provide [Scratch](https://scratch.mit.edu) free of charge, and want to keep it that way! Please consider making a [donation](https://www.scratchfoundation.org/donate) to support our continued engineering, design, community, and resource development efforts. Donations of any size are appreciated. Thank you! + +We provide [Scratch](https://scratch.mit.edu) free of charge, and want to keep it that way! Please consider making a +[donation](https://www.scratchfoundation.org/donate) to support our continued engineering, design, community, and +resource development efforts. Donations of any size are appreciated. Thank you! From a5f81a884569a45b2968db03ba5db7e1eb0a803d Mon Sep 17 00:00:00 2001 From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com> Date: Fri, 16 Feb 2024 17:46:02 -0800 Subject: [PATCH 09/15] fix(deps): update dependency scratch-blocks to v1.1.6 --- package-lock.json | 197 +++------------------------------------------- package.json | 2 +- 2 files changed, 12 insertions(+), 187 deletions(-) diff --git a/package-lock.json b/package-lock.json index c3d3d969619..e183c6466fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,9 +44,9 @@ "prop-types": "^15.5.10", "query-string": "^5.1.1", "raw-loader": "^0.5.1", - "react": "^16.14.0", + "react": "^16.0.0", "react-contextmenu": "^2.9.4", - "react-dom": "^16.14.0", + "react-dom": "^16.0.0", "react-draggable": "^3.0.5", "react-ga": "^2.5.3", "react-intl": "^2.9.0", @@ -61,7 +61,7 @@ "redux": "^3.7.2", "redux-throttle": "^0.1.1", "scratch-audio": "^1.0.0", - "scratch-blocks": "^1.1.2", + "scratch-blocks": "^1.1.6", "scratch-l10n": "^3.18.3", "scratch-paint": "^2.2.2", "scratch-render": "^1.0.0", @@ -3602,11 +3602,6 @@ "node": ">=4" } }, - "node_modules/@testim/chrome-version": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.4.tgz", - "integrity": "sha512-kIhULpw9TrGYnHp/8VfdcneIcxKnLixmADtukQRtJUmsVlMg0niMkwV0xZmi8hqa57xqilIHjWFA0GKvEjVU5g==" - }, "node_modules/@transifex/api": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/@transifex/api/-/api-4.3.0.tgz", @@ -3800,15 +3795,6 @@ "integrity": "sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==", "dev": true }, - "node_modules/@types/yauzl": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.2.tgz", - "integrity": "sha512-Km7XAtUIduROw7QPgvcft0lIupeG8a8rdKL8RiSyKvlE7dYY31fEn41HVuQsRFDuROA8tA4K2UVL+WdfFmErBA==", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@typescript-eslint/experimental-utils": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz", @@ -4095,17 +4081,6 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -4749,16 +4724,6 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" }, - "node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", - "dependencies": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -6567,11 +6532,6 @@ "dot-prop": "^5.1.0" } }, - "node_modules/compare-versions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz", - "integrity": "sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==" - }, "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -9695,39 +9655,6 @@ "node": ">=0.10.0" } }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -10279,6 +10206,7 @@ "version": "1.15.5", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "dev": true, "funding": [ { "type": "individual", @@ -10331,19 +10259,6 @@ "node": "*" } }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/format-message": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/format-message/-/format-message-6.2.1.tgz", @@ -11677,18 +11592,6 @@ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==" }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/hull.js": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/hull.js/-/hull.js-0.2.10.tgz", @@ -12172,14 +12075,6 @@ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, - "node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "engines": { - "node": ">=8" - } - }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -12774,11 +12669,6 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" - }, "node_modules/is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -12835,19 +12725,6 @@ "node": ">=4" } }, - "node_modules/is2": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.9.tgz", - "integrity": "sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==", - "dependencies": { - "deep-is": "^0.1.3", - "ip-regex": "^4.1.0", - "is-url": "^1.2.4" - }, - "engines": { - "node": ">=v0.10.0" - } - }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -20740,11 +20617,6 @@ "node": ">= 0.10" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -22258,36 +22130,14 @@ } }, "node_modules/scratch-blocks": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-1.1.2.tgz", - "integrity": "sha512-QXZM9rGmYy9kBUkY0E938VXwJyLoLeFK39HQY0EtDKXckkyneSKG8AXZgD2HVc/7w9d7Tp8Wfe+rqoz285VOmw==", - "dependencies": { - "chromedriver": "^118.0.1", - "exports-loader": "0.7.0", - "google-closure-library": "20190301.0.0", - "imports-loader": "0.8.0", - "scratch-l10n": "3.18.3" - } - }, - "node_modules/scratch-blocks/node_modules/chromedriver": { - "version": "118.0.1", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-118.0.1.tgz", - "integrity": "sha512-GlGfyRE47IuSJnuadIiDy89EMDMQFBVWxUmiclLJKzQhFsiWAtcIr/mNOxjljZdsw9IwIOQEkrB9wympKYFPLw==", - "hasInstallScript": true, + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-1.1.6.tgz", + "integrity": "sha512-eTcS5Q65bIsQQGg9uQnEILxgaSf5RbE2m7rjUgEC8B9Uo0YucmLKM3CxORcd1NqYsakZFSMlg4IkB4RMXKdJLQ==", "dependencies": { - "@testim/chrome-version": "^1.1.3", - "axios": "^1.4.0", - "compare-versions": "^6.0.0", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.1", - "proxy-from-env": "^1.1.0", - "tcp-port-used": "^1.0.1" - }, - "bin": { - "chromedriver": "bin/chromedriver" - }, - "engines": { - "node": ">=18" + "exports-loader": "^0.7.0", + "google-closure-library": "^20190301.0.0", + "imports-loader": "^0.8.0", + "scratch-l10n": "^3.18.3" } }, "node_modules/scratch-blocks/node_modules/exports-loader": { @@ -24565,31 +24415,6 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/tcp-port-used": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", - "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", - "dependencies": { - "debug": "4.3.1", - "is2": "^2.0.6" - } - }, - "node_modules/tcp-port-used/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", diff --git a/package.json b/package.json index 45cdf55df98..19f7fc6597a 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "redux": "^3.7.2", "redux-throttle": "^0.1.1", "scratch-audio": "^1.0.0", - "scratch-blocks": "^1.1.2", + "scratch-blocks": "^1.1.6", "scratch-l10n": "^3.18.3", "scratch-paint": "^2.2.2", "scratch-render": "^1.0.0", From e3e69ed028b32398b01ada81cfea5eacb3438755 Mon Sep 17 00:00:00 2001 From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com> Date: Fri, 16 Feb 2024 18:03:44 -0800 Subject: [PATCH 10/15] test: don't import chromdriver helper --- test/helpers/selenium-helper.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/helpers/selenium-helper.js b/test/helpers/selenium-helper.js index debef3c0dd6..d9a297ebbea 100644 --- a/test/helpers/selenium-helper.js +++ b/test/helpers/selenium-helper.js @@ -1,7 +1,6 @@ jest.setTimeout(30000); // eslint-disable-line no-undef import bindAll from 'lodash.bindall'; -import 'chromedriver'; // register path import webdriver from 'selenium-webdriver'; const {Button, By, until} = webdriver; From 430adbdf85c7056dd998441e60b25467383fe03d Mon Sep 17 00:00:00 2001 From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com> Date: Fri, 16 Feb 2024 08:28:57 -0800 Subject: [PATCH 11/15] test: remove network dependency in menu-bar test --- src/playground/render-gui.jsx | 6 +++++- test/integration/menu-bar.test.js | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/playground/render-gui.jsx b/src/playground/render-gui.jsx index 0f15fbfa707..c862adece80 100644 --- a/src/playground/render-gui.jsx +++ b/src/playground/render-gui.jsx @@ -8,7 +8,11 @@ import HashParserHOC from '../lib/hash-parser-hoc.jsx'; import log from '../lib/log.js'; const onClickLogo = () => { - window.location = 'https://scratch.mit.edu'; + // Under normal circumstances, clicking the logo should navigate to our homepage. + // For the purposes of testing, we'll navigate to a special URL that: + // - does not depend on the network + // - can be detected by the menu-bar test + window.location = 'about:blank#onClickLogo'; }; const handleTelemetryModalCancel = () => { diff --git a/test/integration/menu-bar.test.js b/test/integration/menu-bar.test.js index 45d6ec4e7c9..d1f3ab8db0e 100644 --- a/test/integration/menu-bar.test.js +++ b/test/integration/menu-bar.test.js @@ -57,7 +57,7 @@ describe('Menu bar settings', () => { await loadUri(uri); await clickXpath('//img[@alt="Scratch"]'); const currentUrl = await driver.getCurrentUrl(); - await expect(currentUrl).toEqual('https://scratch.mit.edu/'); + expect(currentUrl).toEqual('about:blank#onClickLogo'); // see playground/render-gui.jsx }); test('(GH#4064) Project name should be editable', async () => { From 45a6350294ada375fdc18570a9d4fa6872c88906 Mon Sep 17 00:00:00 2001 From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com> Date: Fri, 16 Feb 2024 12:29:54 -0800 Subject: [PATCH 12/15] test: increase Jest timeout beyond server timeout --- test/helpers/selenium-helper.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/helpers/selenium-helper.js b/test/helpers/selenium-helper.js index d9a297ebbea..a2ae9ab8ba8 100644 --- a/test/helpers/selenium-helper.js +++ b/test/helpers/selenium-helper.js @@ -1,4 +1,6 @@ -jest.setTimeout(30000); // eslint-disable-line no-undef +// some server-side things don't fully fail until a 90-second timeout +// allow time for that so we get a more specific error message +jest.setTimeout(95000); // eslint-disable-line no-undef import bindAll from 'lodash.bindall'; import webdriver from 'selenium-webdriver'; From d14452ef4f16c1d7195eff74e9bd5a550a23832e Mon Sep 17 00:00:00 2001 From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com> Date: Fri, 16 Feb 2024 18:50:49 -0800 Subject: [PATCH 13/15] Revert "test: remove network dependency in menu-bar test" This reverts commit 430adbdf85c7056dd998441e60b25467383fe03d. Ideally this should come back at some point... --- src/playground/render-gui.jsx | 6 +----- test/integration/menu-bar.test.js | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/playground/render-gui.jsx b/src/playground/render-gui.jsx index c862adece80..0f15fbfa707 100644 --- a/src/playground/render-gui.jsx +++ b/src/playground/render-gui.jsx @@ -8,11 +8,7 @@ import HashParserHOC from '../lib/hash-parser-hoc.jsx'; import log from '../lib/log.js'; const onClickLogo = () => { - // Under normal circumstances, clicking the logo should navigate to our homepage. - // For the purposes of testing, we'll navigate to a special URL that: - // - does not depend on the network - // - can be detected by the menu-bar test - window.location = 'about:blank#onClickLogo'; + window.location = 'https://scratch.mit.edu'; }; const handleTelemetryModalCancel = () => { diff --git a/test/integration/menu-bar.test.js b/test/integration/menu-bar.test.js index d1f3ab8db0e..45d6ec4e7c9 100644 --- a/test/integration/menu-bar.test.js +++ b/test/integration/menu-bar.test.js @@ -57,7 +57,7 @@ describe('Menu bar settings', () => { await loadUri(uri); await clickXpath('//img[@alt="Scratch"]'); const currentUrl = await driver.getCurrentUrl(); - expect(currentUrl).toEqual('about:blank#onClickLogo'); // see playground/render-gui.jsx + await expect(currentUrl).toEqual('https://scratch.mit.edu/'); }); test('(GH#4064) Project name should be editable', async () => { From 17e11b4576d04a3a1447941aa1734d4728c357e9 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 17 Feb 2024 03:05:22 +0000 Subject: [PATCH 14/15] chore(release): 3.6.7 [skip ci] ## [3.6.7](https://github.com/LLK/scratch-gui/compare/v3.6.6...v3.6.7) (2024-02-17) ### Bug Fixes * **deps:** don't use NPM chromedriver package ([9dd81cb](https://github.com/LLK/scratch-gui/commit/9dd81cb3946410943860ee6f2c82d78f21c64993)) * **deps:** unpin non-dev dependencies ([f94b201](https://github.com/LLK/scratch-gui/commit/f94b20158ca9de96e36c3719dff0dd212b37273c)) * **deps:** update dependency scratch-blocks to v1.1.6 ([a5f81a8](https://github.com/LLK/scratch-gui/commit/a5f81a884569a45b2968db03ba5db7e1eb0a803d)) --- CHANGELOG.md | 9 +++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c79720ddae..b90305252a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.6.7](https://github.com/LLK/scratch-gui/compare/v3.6.6...v3.6.7) (2024-02-17) + + +### Bug Fixes + +* **deps:** don't use NPM chromedriver package ([9dd81cb](https://github.com/LLK/scratch-gui/commit/9dd81cb3946410943860ee6f2c82d78f21c64993)) +* **deps:** unpin non-dev dependencies ([f94b201](https://github.com/LLK/scratch-gui/commit/f94b20158ca9de96e36c3719dff0dd212b37273c)) +* **deps:** update dependency scratch-blocks to v1.1.6 ([a5f81a8](https://github.com/LLK/scratch-gui/commit/a5f81a884569a45b2968db03ba5db7e1eb0a803d)) + ## [3.6.6](https://github.com/LLK/scratch-gui/compare/v3.6.5...v3.6.6) (2024-01-29) diff --git a/package-lock.json b/package-lock.json index e183c6466fa..802e43b481c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "scratch-gui", - "version": "3.6.6", + "version": "3.6.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "scratch-gui", - "version": "3.6.6", + "version": "3.6.7", "license": "BSD-3-Clause", "dependencies": { "@microbit/microbit-universal-hex": "^0.2.2", diff --git a/package.json b/package.json index 19f7fc6597a..b346c0102c8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "scratch-gui", - "version": "3.6.6", + "version": "3.6.7", "description": "Graphical User Interface for creating and running Scratch 3.0 projects", "author": "Massachusetts Institute of Technology", "license": "BSD-3-Clause", From 3b02b466f22539a1dd6a10d8511d71564311a48f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 17 Feb 2024 03:06:36 +0000 Subject: [PATCH 15/15] chore(deps): update dependency enzyme-adapter-react-16 to v1.15.8 --- package-lock.json | 63 ++++++++++++++++++++--------------------------- package.json | 2 +- 2 files changed, 28 insertions(+), 37 deletions(-) diff --git a/package-lock.json b/package-lock.json index 802e43b481c..f2c4c8a7c75 100644 --- a/package-lock.json +++ b/package-lock.json @@ -90,7 +90,7 @@ "babel-core": "7.0.0-bridge.0", "babel-loader": "8.3.0", "enzyme": "3.10.0", - "enzyme-adapter-react-16": "1.15.7", + "enzyme-adapter-react-16": "1.15.8", "eslint": "8.56.0", "eslint-config-scratch": "9.0.3", "eslint-import-resolver-webpack": "0.11.1", @@ -8193,20 +8193,20 @@ } }, "node_modules/enzyme-adapter-react-16": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.7.tgz", - "integrity": "sha512-LtjKgvlTc/H7adyQcj+aq0P0H07LDL480WQl1gU512IUyaDo/sbOaNDdZsJXYW2XaoPqrLLE9KbZS+X2z6BASw==", + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.8.tgz", + "integrity": "sha512-uYGC31eGZBp5nGsr4nKhZKvxGQjyHGjS06BJsUlWgE29/hvnpgCsT1BJvnnyny7N3GIIVyxZ4O9GChr6hy2WQA==", "dev": true, "dependencies": { - "enzyme-adapter-utils": "^1.14.1", - "enzyme-shallow-equal": "^1.0.5", - "has": "^1.0.3", - "object.assign": "^4.1.4", - "object.values": "^1.1.5", + "enzyme-adapter-utils": "^1.14.2", + "enzyme-shallow-equal": "^1.0.7", + "hasown": "^2.0.0", + "object.assign": "^4.1.5", + "object.values": "^1.1.7", "prop-types": "^15.8.1", "react-is": "^16.13.1", "react-test-renderer": "^16.0.0-0", - "semver": "^5.7.0" + "semver": "^5.7.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8227,18 +8227,18 @@ } }, "node_modules/enzyme-adapter-utils": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.1.tgz", - "integrity": "sha512-JZgMPF1QOI7IzBj24EZoDpaeG/p8Os7WeBZWTJydpsH7JRStc7jYbHE4CmNQaLqazaGFyLM8ALWA3IIZvxW3PQ==", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.2.tgz", + "integrity": "sha512-1ZC++RlsYRaiOWE5NRaF5OgsMt7F5rn/VuaJIgc7eW/fmgg8eS1/Ut7EugSPPi7VMdWMLcymRnMF+mJUJ4B8KA==", "dev": true, "dependencies": { "airbnb-prop-types": "^2.16.0", - "function.prototype.name": "^1.1.5", - "has": "^1.0.3", - "object.assign": "^4.1.4", - "object.fromentries": "^2.0.5", + "function.prototype.name": "^1.1.6", + "hasown": "^2.0.0", + "object.assign": "^4.1.5", + "object.fromentries": "^2.0.7", "prop-types": "^15.8.1", - "semver": "^5.7.1" + "semver": "^6.3.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8247,22 +8247,13 @@ "react": "0.13.x || 0.14.x || ^15.0.0-0 || ^16.0.0-0" } }, - "node_modules/enzyme-adapter-utils/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/enzyme-shallow-equal": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.5.tgz", - "integrity": "sha512-i6cwm7hN630JXenxxJFBKzgLC3hMTafFQXflvzHgPmDhOBhxUWDe8AeRv1qp2/uWJ2Y8z5yLWMzmAfkTOiOCZg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.7.tgz", + "integrity": "sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg==", "dev": true, "dependencies": { - "has": "^1.0.3", + "hasown": "^2.0.0", "object-is": "^1.1.5" }, "funding": { @@ -19218,12 +19209,12 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, diff --git a/package.json b/package.json index b346c0102c8..71586a5a212 100644 --- a/package.json +++ b/package.json @@ -117,7 +117,7 @@ "babel-core": "7.0.0-bridge.0", "babel-loader": "8.3.0", "enzyme": "3.10.0", - "enzyme-adapter-react-16": "1.15.7", + "enzyme-adapter-react-16": "1.15.8", "eslint": "8.56.0", "eslint-config-scratch": "9.0.3", "eslint-import-resolver-webpack": "0.11.1",