({
+ session: state.session
+});
+
const WrappedExplore = injectIntl(Explore);
-render(
, document.getElementById('app'));
+const ConnectedExplore = connect(mapStateToProps)(injectIntl(Explore));
+render(
, document.getElementById('app'));
From 4e08e778fdbff9ee0acc1737252e9e51aac65137 Mon Sep 17 00:00:00 2001
From: Varun Biniwale
Date: Fri, 18 Jul 2025 17:46:16 +0200
Subject: [PATCH 044/129] explore: admin mode call endpoint
---
src/views/explore/explore.jsx | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/src/views/explore/explore.jsx b/src/views/explore/explore.jsx
index 57058f729a2..34010502ff8 100644
--- a/src/views/explore/explore.jsx
+++ b/src/views/explore/explore.jsx
@@ -30,6 +30,7 @@ class Explore extends React.Component {
'handleGetExploreMore',
'handleChangeSortMode',
'handleToggleRemoveButton',
+ 'handleRemove',
'getBubble'
]);
@@ -110,6 +111,24 @@ class Explore extends React.Component {
this.setState({showRemoveButton: e.target.checked});
}
+ handleRemove (item) {
+ // if (!window.confirm('Are you sure you want to remove this item from the search index?')) return;
+
+ // TODO: don't slice the itemType
+ api({
+ uri: `/admin/search/${this.state.itemType.slice(0, -1)}/${item.id}`,
+ method: 'DELETE'
+ }, (err, res) => {
+ if (err) {
+ alert('Error removing project.');
+ console.error(err);
+ } else {
+ const updated = this.state.loaded.filter(p => p.id !== item.id);
+ this.setState({loaded: updated});
+ }
+ });
+ }
+
getBubble (type) {
const classes = classNames({
active: (this.state.category === type)
@@ -249,7 +268,7 @@ class Explore extends React.Component {
showLoves={false}
showViews={false}
showRemoveButton={this.state.showRemoveButton}
- onRemove={(item) => { console.log(item) }}
+ onRemove={this.handleRemove}
/>
Date: Sat, 19 Jul 2025 09:14:42 +0000
Subject: [PATCH 045/129] fix(deps): update dependency scratch-l10n to v6.0.6
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 7e2ae8cf788..e04016b144c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.4",
+ "scratch-l10n": "6.0.6",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23372,9 +23372,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.4.tgz",
- "integrity": "sha512-DhgCHZWmjZiWKvboFBYvqq7qb1gM3up68XOD97UP+oAxk3ZB7oFxMePMZAlcyZxXxP/SQGqSqP6Y/Zvc/0Np3A==",
+ "version": "6.0.6",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.6.tgz",
+ "integrity": "sha512-nu6kvjYdhLegpo20k7uh15U8LpbmSa5Pha3Qu2jx4jSVLr2XGTu4OCTEhQdK09PAgOqqCn0KFZYsWRjNbVVpWw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 2d24644084d..c349afad637 100644
--- a/package.json
+++ b/package.json
@@ -147,7 +147,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.4",
+ "scratch-l10n": "6.0.6",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From b8d35a93685c661ee6c423bfc10cdf2946af52ec Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 19 Jul 2025 13:49:52 +0000
Subject: [PATCH 046/129] fix(deps): update dependency scratch-storage to
^4.0.192
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index e04016b144c..d75cd224a2d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.190"
+ "scratch-storage": "^4.0.192"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -23535,9 +23535,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.192",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.192.tgz",
- "integrity": "sha512-qnFjL5ZaMR20I6FcGj7fOYGPe/qUTedawHwtWBfNQDtV/Lb35dEr8YZnpGZXmDOxjjhwz5ARgDM5e+jc1crlhg==",
+ "version": "4.0.193",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.193.tgz",
+ "integrity": "sha512-t9/i9FLWR6EbGNnNMc7YAF/8OBODk3Ev/81bctuxBrpKT/xUV67NrWn8ngsLs5OuoRWfcxUYJOoQATrJh7DuyA==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index c349afad637..a15f5236895 100644
--- a/package.json
+++ b/package.json
@@ -58,7 +58,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.190"
+ "scratch-storage": "^4.0.192"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From 1978ed711384128dc9272dd483cabd62250d3377 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 20 Jul 2025 09:35:47 +0000
Subject: [PATCH 047/129] fix(deps): update dependency scratch-l10n to v6.0.7
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index d75cd224a2d..eb7a7deef3c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.6",
+ "scratch-l10n": "6.0.7",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23372,9 +23372,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.6",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.6.tgz",
- "integrity": "sha512-nu6kvjYdhLegpo20k7uh15U8LpbmSa5Pha3Qu2jx4jSVLr2XGTu4OCTEhQdK09PAgOqqCn0KFZYsWRjNbVVpWw==",
+ "version": "6.0.7",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.7.tgz",
+ "integrity": "sha512-3zAhVFlvHbNhkgjweqUK0in5pSr8AANhQzxFNtgutfNKzCzFpA1dnQ4JAuJawGLphER/FC3vuB0abbHjSzDUWQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index a15f5236895..c4ad7702765 100644
--- a/package.json
+++ b/package.json
@@ -147,7 +147,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.6",
+ "scratch-l10n": "6.0.7",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From 8f82de8b4fccbb81300594f2a5658f21c02e301f Mon Sep 17 00:00:00 2001
From: Kaloyan Manolov
Date: Mon, 21 Jul 2025 16:32:37 +0300
Subject: [PATCH 048/129] Add success and error alerts on manual thumbnail
update
---
src/redux/preview.js | 4 +++-
src/views/preview/l10n.json | 4 +++-
src/views/preview/preview.jsx | 5 ++++-
src/views/preview/project-view.jsx | 27 ++++++++++++++++++++++++---
4 files changed, 34 insertions(+), 6 deletions(-)
diff --git a/src/redux/preview.js b/src/redux/preview.js
index 6c81a0095bc..220c0ccf690 100644
--- a/src/redux/preview.js
+++ b/src/redux/preview.js
@@ -686,7 +686,7 @@ module.exports.reportProject = (id, jsonData, token) => (dispatch => {
});
});
-module.exports.updateProjectThumbnail = (id, blob) => (dispatch => {
+module.exports.updateProjectThumbnail = (id, blob, onSuccess, onError) => (dispatch => {
dispatch(module.exports.setFetchStatus('project-thumbnail', module.exports.Status.FETCHING));
api({
uri: `${process.env.THUMBNAIL_URI.replace('{}', id)}`,
@@ -701,9 +701,11 @@ module.exports.updateProjectThumbnail = (id, blob) => (dispatch => {
}, (err, body, res) => {
if (err || res.statusCode !== 200) {
dispatch(module.exports.setFetchStatus('project-thumbnail', module.exports.Status.ERROR));
+ onError?.();
return;
}
dispatch(module.exports.setFetchStatus('project-thumbnail', module.exports.Status.FETCHED));
+ onSuccess?.();
});
});
diff --git a/src/views/preview/l10n.json b/src/views/preview/l10n.json
index 29992dcda56..808efc91cbb 100644
--- a/src/views/preview/l10n.json
+++ b/src/views/preview/l10n.json
@@ -71,5 +71,7 @@
"project.updateThumbnailTooltip": "Hi! Try out our new feature.",
"project.updateThumbnailInfoModal.title": "Set Thumbnail",
"project.updateThumbnailInfoModal.description": "When you press the button, a snapshot of your project canvas is taken and saved as the project thumbnail. You can also use it while the project is playing.",
- "project.updateThumbnailInfoModal.button": "Okay, I got it"
+ "project.updateThumbnailInfoModal.button": "Okay, I got it",
+ "project.updateThumbnail.success": "Thumbnail updated successfully.",
+ "project.updateThumbnail.error": "Couldn't set thumbnail. Please try again later."
}
diff --git a/src/views/preview/preview.jsx b/src/views/preview/preview.jsx
index 20c042bac40..98d323115e3 100644
--- a/src/views/preview/preview.jsx
+++ b/src/views/preview/preview.jsx
@@ -3,6 +3,7 @@
const React = require('react');
const Page = require('../../components/page/www/page.jsx');
const render = require('../../lib/render.jsx');
+const AlertProvider = require('../../components/alert/alert-provider.jsx').default;
const previewActions = require('../../redux/preview.js');
const commentActions = require('../../redux/comments.js');
@@ -14,7 +15,9 @@ const {feedbackReducer} = require('../../redux/qualitative-feedback.js');
if (isSupportedBrowser()) {
const ProjectView = require('./project-view.jsx');
render(
- ,
+
+
+ ,
document.getElementById('app'),
{
preview: previewActions.previewReducer,
diff --git a/src/views/preview/project-view.jsx b/src/views/preview/project-view.jsx
index bdcdd1ac96d..3fdf6e37bec 100644
--- a/src/views/preview/project-view.jsx
+++ b/src/views/preview/project-view.jsx
@@ -25,6 +25,8 @@ const Scratch3Registration = require('../../components/registration/scratch3-reg
const ConnectedLogin = require('../../components/login/connected-login.jsx');
const CanceledDeletionModal = require('../../components/login/canceled-deletion-modal.jsx');
const NotAvailable = require('../../components/not-available/not-available.jsx');
+const Alert = require('../../components/alert/alert.jsx').default;
+const AlertContext = require('../../components/alert/alert-context.js').default;
const Meta = require('./meta.jsx');
const {UpdateThumbnailInfoModal} = require('./update-thumbnail-info-modal.jsx');
const {driver} = require('driver.js');
@@ -145,6 +147,8 @@ IntlGUIWithProjectHandler.propTypes = {
};
class Preview extends React.Component {
+ static contextType = AlertContext;
+
constructor (props) {
super(props);
bindAll(this, [
@@ -856,12 +860,20 @@ class Preview extends React.Component {
);
}
handleManualThumbnailUpdate (id, blob) {
+ const onSuccess = () => this.context.successAlert({
+ id: 'project.updateThumbnail.success',
+ });
+ const onError = () => this.context.errorAlert({
+ id: 'project.updateThumbnail.error',
+ });
return this.props.handleUpdateProjectThumbnail(
id,
blob,
true, // isManualUpdate
this.hideThumbnailUpdateInfoTooltip,
- this.showThumbnailUpdateInfoModal
+ this.showThumbnailUpdateInfoModal,
+ onSuccess,
+ onError
);
}
showThumbnailUpdateInfoModal () {
@@ -961,6 +973,7 @@ class Preview extends React.Component {
'admin-panel-open': this.state.adminPanelOpen
})}
>
+
({
dispatch(projectCommentActions.getTopLevelComments(id, 0, ownerUsername, isAdmin, token));
},
handleUpdateProjectThumbnail:
- (id, blob, isManualUpdate, hideThumbnailUpdateInfoTooltip, showThumbnailUpdateInfoModal) => {
+ (
+ id,
+ blob,
+ isManualUpdate,
+ hideThumbnailUpdateInfoTooltip,
+ showThumbnailUpdateInfoModal,
+ onSuccess,
+ onError
+ ) => {
// If this is the first manual thumbnail update, show an
// information modal to introduce the new feature.
// Otherwise, just update the thumbnail.
@@ -1388,7 +1409,7 @@ const mapDispatchToProps = dispatch => ({
showThumbnailUpdateInfoModal();
localStorage.setItem('isFirstManualThumbnailUpdate', 'false');
} else {
- dispatch(previewActions.updateProjectThumbnail(id, blob));
+ dispatch(previewActions.updateProjectThumbnail(id, blob, onSuccess, onError));
}
},
getOriginalInfo: id => {
From f84282250d5019ec11173dc4a0d8004949f010ef Mon Sep 17 00:00:00 2001
From: Kaloyan Manolov
Date: Mon, 21 Jul 2025 16:35:18 +0300
Subject: [PATCH 049/129] fix: lint errors
---
src/views/preview/project-view.jsx | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/views/preview/project-view.jsx b/src/views/preview/project-view.jsx
index 3fdf6e37bec..634eba0cb44 100644
--- a/src/views/preview/project-view.jsx
+++ b/src/views/preview/project-view.jsx
@@ -147,8 +147,6 @@ IntlGUIWithProjectHandler.propTypes = {
};
class Preview extends React.Component {
- static contextType = AlertContext;
-
constructor (props) {
super(props);
bindAll(this, [
@@ -354,6 +352,9 @@ class Preview extends React.Component {
componentWillUnmount () {
this.removeEventListeners();
}
+
+ static contextType = AlertContext;
+
addEventListeners () {
window.addEventListener('popstate', this.handlePopState);
window.addEventListener('orientationchange', this.setScreenFromOrientation);
@@ -861,10 +862,10 @@ class Preview extends React.Component {
}
handleManualThumbnailUpdate (id, blob) {
const onSuccess = () => this.context.successAlert({
- id: 'project.updateThumbnail.success',
+ id: 'project.updateThumbnail.success'
});
const onError = () => this.context.errorAlert({
- id: 'project.updateThumbnail.error',
+ id: 'project.updateThumbnail.error'
});
return this.props.handleUpdateProjectThumbnail(
id,
From b94d2207f003da3cba89c7718c938a1614ef8999 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 22 Jul 2025 08:57:33 +0000
Subject: [PATCH 050/129] fix(deps): update dependency scratch-storage to
^4.0.193
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index eb7a7deef3c..40c43f01ad1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.192"
+ "scratch-storage": "^4.0.193"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -23535,9 +23535,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.193",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.193.tgz",
- "integrity": "sha512-t9/i9FLWR6EbGNnNMc7YAF/8OBODk3Ev/81bctuxBrpKT/xUV67NrWn8ngsLs5OuoRWfcxUYJOoQATrJh7DuyA==",
+ "version": "4.0.194",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.194.tgz",
+ "integrity": "sha512-3tcoBhi/v5VANtKAgR14rr6ox7eN3+jI6cEzFh0JURF043+BfZ/wVqLPyT4DqytqZ/B3Qv/ClvqTZLEpt17I3w==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index c4ad7702765..1ee6b31efbd 100644
--- a/package.json
+++ b/package.json
@@ -58,7 +58,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.192"
+ "scratch-storage": "^4.0.193"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From 9891d58516eb00e60e247f643d10a236a21680d0 Mon Sep 17 00:00:00 2001
From: Kaloyan Manolov
Date: Tue, 22 Jul 2025 16:04:54 +0300
Subject: [PATCH 051/129] chore: update scratch-gui version
---
package-lock.json | 893 ++++++++++++++++++++++++++++++++++++++--------
package.json | 2 +-
2 files changed, 749 insertions(+), 146 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index d848a8c7b55..458e0faf438 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -39,7 +39,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.3.0",
+ "@scratch/scratch-gui": "11.4.0",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
@@ -146,6 +146,7 @@
"resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
"integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@csstools/css-calc": "^2.1.3",
"@csstools/css-color-parser": "^3.0.9",
@@ -158,7 +159,8 @@
"version": "10.4.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/@babel/cli": {
"version": "7.28.0",
@@ -2129,6 +2131,7 @@
"url": "https://opencollective.com/csstools"
}
],
+ "license": "MIT-0",
"engines": {
"node": ">=18"
}
@@ -2148,6 +2151,7 @@
"url": "https://opencollective.com/csstools"
}
],
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -2171,6 +2175,7 @@
"url": "https://opencollective.com/csstools"
}
],
+ "license": "MIT",
"dependencies": {
"@csstools/color-helpers": "^5.0.2",
"@csstools/css-calc": "^2.1.4"
@@ -2188,50 +2193,494 @@
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
"integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
+ "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@discoveryjs/json-ext": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
+ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz",
+ "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz",
+ "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz",
+ "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz",
+ "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz",
+ "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz",
+ "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz",
+ "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz",
+ "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz",
+ "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz",
+ "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz",
+ "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz",
+ "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz",
+ "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz",
+ "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz",
+ "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz",
+ "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz",
+ "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz",
+ "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz",
+ "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz",
+ "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz",
+ "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz",
+ "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz",
+ "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz",
+ "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
],
"engines": {
"node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-tokenizer": "^3.0.4"
}
},
- "node_modules/@csstools/css-tokenizer": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
- "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz",
+ "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==",
+ "cpu": [
+ "ia32"
+ ],
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
],
"engines": {
"node": ">=18"
}
},
- "node_modules/@discoveryjs/json-ext": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
- "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz",
+ "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
"license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">=10.0.0"
+ "node": ">=18"
}
},
"node_modules/@eslint-community/eslint-utils": {
@@ -3884,21 +4333,22 @@
"resolved": "https://registry.npmjs.org/@scratch/paper/-/paper-0.11.20221201200345.tgz",
"integrity": "sha512-I3BZNrHeaQJt2H6TD7HGsuBKJPDDF/BIDOaRvnN7Gj/QBRvpSaRK8JAmzcrRHZ+AqNtKrG50eOkS/acMjTw3rw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@scratch/scratch-gui": {
- "version": "11.3.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.3.0.tgz",
- "integrity": "sha512-WLg7qtBNm+KRU6+AlIDg/qUBOiraKxT44UA1MSEbUCGvnjs+2AhLTWh6mRjqSAIytem06u0xyyI6lDGpQXknvw==",
+ "version": "11.4.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.4.0.tgz",
+ "integrity": "sha512-3/1SPSf917JM9pJc01mpvFSAujqSYl61C/IPozF2XlxMhrTiTAVnTBnVrpLntDwTMwWHOf5ibsaoGX29jBdPRQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
"@microbit/microbit-universal-hex": "0.2.2",
- "@scratch/scratch-render": "11.3.0",
- "@scratch/scratch-svg-renderer": "11.3.0",
- "@scratch/scratch-vm": "11.3.0",
+ "@scratch/scratch-render": "11.4.0",
+ "@scratch/scratch-svg-renderer": "11.4.0",
+ "@scratch/scratch-vm": "11.4.0",
"arraybuffer-loader": "1.0.8",
"autoprefixer": "9.8.8",
"balance-text": "3.3.1",
@@ -3947,12 +4397,12 @@
"react-virtualized": "9.22.6",
"react-visibility-sensor": "5.1.1",
"redux-throttle": "0.1.1",
- "scratch-audio": "2.0.179",
+ "scratch-audio": "2.0.193",
"scratch-blocks": "1.1.210",
- "scratch-l10n": "5.0.293",
- "scratch-paint": "3.0.314",
- "scratch-render-fonts": "1.0.209",
- "scratch-storage": "4.0.178",
+ "scratch-l10n": "6.0.7",
+ "scratch-paint": "3.0.335",
+ "scratch-render-fonts": "1.0.216",
+ "scratch-storage": "4.0.193",
"startaudiocontext": "1.2.1",
"style-loader": "4.0.0",
"text-encoding": "0.7.0",
@@ -4010,6 +4460,28 @@
"node": ">=0.10"
}
},
+ "node_modules/@scratch/scratch-gui/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/@scratch/scratch-gui/node_modules/intl-messageformat": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz",
@@ -4055,6 +4527,22 @@
"microee": "0.0.6"
}
},
+ "node_modules/@scratch/scratch-gui/node_modules/mkdirp": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
+ "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mkdirp": "dist/cjs/src/bin.js"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/@scratch/scratch-gui/node_modules/picocolors": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
@@ -4132,46 +4620,34 @@
}
},
"node_modules/@scratch/scratch-gui/node_modules/scratch-l10n": {
- "version": "5.0.293",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-5.0.293.tgz",
- "integrity": "sha512-aeIwlQG8gUAL8A9zmsBq4GcS4R5N7ZDg6xY9oNU9jTejcNUtWpLlmEnstWm0PZHeuySTdOjToCC7sIsLZY0Uog==",
+ "version": "6.0.7",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.7.tgz",
+ "integrity": "sha512-3zAhVFlvHbNhkgjweqUK0in5pSr8AANhQzxFNtgutfNKzCzFpA1dnQ4JAuJawGLphER/FC3vuB0abbHjSzDUWQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
"@transifex/api": "7.1.4",
- "download": "8.0.0",
- "transifex": "1.6.6"
+ "async": "3.2.6",
+ "format-message-parse": "6.2.4",
+ "glob": "7.2.3",
+ "lodash.defaultsdeep": "4.6.1",
+ "mkdirp": "3.0.1",
+ "transifex": "1.6.6",
+ "tsx": "4.20.3"
},
"bin": {
- "build-i18n-src": "scripts/build-i18n-src.js",
- "tx-push-src": "scripts/tx-push-src.js"
- }
- },
- "node_modules/@scratch/scratch-gui/node_modules/scratch-storage": {
- "version": "4.0.178",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.178.tgz",
- "integrity": "sha512-twZ6yidoaKjoO9yCzYK4D7wwqr8zbafYhCeuzpOoEUaRmiPKuMnPlFNYDLt6FEFpXcXglpkhinmsB0d92hZj1w==",
- "dev": true,
- "license": "AGPL-3.0-only",
- "dependencies": {
- "@babel/runtime": "^7.21.0",
- "arraybuffer-loader": "^1.0.3",
- "base64-js": "^1.3.0",
- "buffer": "6.0.3",
- "cross-fetch": "^4.1.0",
- "fastestsmallesttextencoderdecoder": "^1.0.7",
- "js-md5": "^0.7.3",
- "minilog": "^3.1.0"
+ "build-i18n-src": "scripts/build-i18n-src.mts",
+ "tx-push-src": "scripts/tx-push-src.mts"
}
},
"node_modules/@scratch/scratch-render": {
- "version": "11.3.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.3.0.tgz",
- "integrity": "sha512-Nj2hH5+HKorxTB5ikQLUXbFgsSOu2WmjqBE+pnt2+TZZW5F0IAJzDUSvCz+sBRlDlvopSP6hp0Blg3XzZap5jw==",
+ "version": "11.4.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.4.0.tgz",
+ "integrity": "sha512-w1bVCNPlvuJsqXgdgSs2SzWFnmc/MdSXuAWcjBQezUP8VrBXBAaQ2MoH2gTGpjo7VBBIBix3OprSnT+PS3nuxg==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-svg-renderer": "11.3.0",
+ "@scratch/scratch-svg-renderer": "11.4.0",
"grapheme-breaker": "0.3.2",
"hull.js": "0.2.10",
"ify-loader": "1.1.0",
@@ -4208,9 +4684,9 @@
"dev": true
},
"node_modules/@scratch/scratch-svg-renderer": {
- "version": "11.3.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.3.0.tgz",
- "integrity": "sha512-/oy7oIg6ouB+qJWTQ39hhlTDU3iAuJiIPETr2Fdm+p9lU9fm53aEWzvUne8CN7ikm79mx5kEJ5wed4IyMAPwHQ==",
+ "version": "11.4.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.4.0.tgz",
+ "integrity": "sha512-4gpmkL9Vo9Wmanpf98K5UMkD8CqIvL7m/o0JzZefWvq/eGSv13k/c+xl22Cx2Jkl03KqquEKfVqA3/eGxlDwTA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4218,7 +4694,7 @@
"base64-loader": "1.0.0",
"css-tree": "1.1.3",
"fastestsmallesttextencoderdecoder": "1.0.22",
- "isomorphic-dompurify": "2.25.0",
+ "isomorphic-dompurify": "2.26.0",
"minilog": "3.1.0",
"transformation-matrix": "1.15.3"
},
@@ -4244,14 +4720,14 @@
}
},
"node_modules/@scratch/scratch-vm": {
- "version": "11.3.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.3.0.tgz",
- "integrity": "sha512-4dqsmpeGRsb3iHqi0gm1CcKz7OobPg5oMCPXbsuN5pJFR1ZKh/OyjkGRo8P8yWg2MDqbDKgrqj3ghmsuE/SJHA==",
+ "version": "11.4.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.4.0.tgz",
+ "integrity": "sha512-RgMrX2o72GAd4K4vDhFiCwBgm4r4yqyuWM1YY4BARAbiNh4SYznptWKRFLf0SfJxWHoZoM8Ks3KaBIC+7u+MXw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-render": "11.3.0",
- "@scratch/scratch-svg-renderer": "11.3.0",
+ "@scratch/scratch-render": "11.4.0",
+ "@scratch/scratch-svg-renderer": "11.4.0",
"@vernier/godirect": "1.8.3",
"arraybuffer-loader": "1.0.8",
"atob": "2.1.2",
@@ -4264,10 +4740,10 @@
"immutable": "3.8.2",
"jszip": "3.10.1",
"minilog": "3.1.0",
- "scratch-audio": "2.0.179",
+ "scratch-audio": "2.0.193",
"scratch-parser": "6.0.0",
- "scratch-sb1-converter": "2.0.177",
- "scratch-storage": "4.0.178",
+ "scratch-sb1-converter": "2.0.193",
+ "scratch-storage": "4.0.193",
"scratch-translate-extension-languages": "1.0.7",
"text-encoding": "0.7.0",
"uuid": "8.3.2",
@@ -4291,23 +4767,6 @@
"microee": "0.0.6"
}
},
- "node_modules/@scratch/scratch-vm/node_modules/scratch-storage": {
- "version": "4.0.178",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.178.tgz",
- "integrity": "sha512-twZ6yidoaKjoO9yCzYK4D7wwqr8zbafYhCeuzpOoEUaRmiPKuMnPlFNYDLt6FEFpXcXglpkhinmsB0d92hZj1w==",
- "dev": true,
- "license": "AGPL-3.0-only",
- "dependencies": {
- "@babel/runtime": "^7.21.0",
- "arraybuffer-loader": "^1.0.3",
- "base64-js": "^1.3.0",
- "buffer": "6.0.3",
- "cross-fetch": "^4.1.0",
- "fastestsmallesttextencoderdecoder": "^1.0.7",
- "js-md5": "^0.7.3",
- "minilog": "^3.1.0"
- }
- },
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
@@ -4640,6 +5099,7 @@
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
"dev": true,
+ "license": "MIT",
"optional": true
},
"node_modules/@types/usb": {
@@ -4831,7 +5291,8 @@
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@vernier/godirect/-/godirect-1.8.3.tgz",
"integrity": "sha512-poS0LZ3jAjH36gIAI0aNBBdsGGbmt11VFbLO+eGDJ/JDSPtMu1iUStvOi0UM/ZH6Jyh34SjVd8Cnxu/Wmcb8iQ==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/@webassemblyjs/ast": {
"version": "1.14.1",
@@ -5826,6 +6287,7 @@
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
"dev": true,
+ "license": "(MIT OR Apache-2.0)",
"bin": {
"atob": "bin/atob.js"
},
@@ -6217,7 +6679,8 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/base64-loader/-/base64-loader-1.0.0.tgz",
"integrity": "sha512-p32+F8dg+ANGx7s8QsZS74ZPHfIycmC2yZcoerzFgbersIYWitPbbF39G6SBx3gyvzyLH5nt1ooocxr0IHuWKA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/bcrypt-pbkdf": {
"version": "1.0.2",
@@ -6529,6 +6992,7 @@
"resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz",
"integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==",
"dev": true,
+ "license": "(MIT OR Apache-2.0)",
"bin": {
"btoa": "bin/btoa.js"
},
@@ -7105,7 +7569,8 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/canvas-toBlob/-/canvas-toBlob-1.0.0.tgz",
"integrity": "sha512-oU5bawygt/Nef9F+C49eTFmzXzz6yKdGqn6J1wn/LZQF5ulnnZVm0KIZzik85I6tjCbZFH6aa47j4bU2tkHxRw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/cardinal": {
"version": "0.4.4",
@@ -8366,6 +8831,7 @@
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
"integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@asamuzakjp/css-color": "^3.2.0",
"rrweb-cssom": "^0.8.0"
@@ -8819,6 +9285,7 @@
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
"integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"whatwg-mimetype": "^4.0.0",
"whatwg-url": "^14.0.0"
@@ -8924,7 +9391,8 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/decode-html/-/decode-html-2.0.0.tgz",
"integrity": "sha512-lVJ+EBozhAXA2nSQG+xAgcD0P5K3uejnIIvM09uoQfS8AALkQ+HhHcEUvKovXi0EIpIZWjm0y8X7ULjaJpgY9w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/decode-uri-component": {
"version": "0.4.1",
@@ -9359,7 +9827,8 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz",
"integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==",
- "dev": true
+ "dev": true,
+ "license": "Apache-2.0"
},
"node_modules/diff-sequences": {
"version": "29.6.3",
@@ -9478,6 +9947,7 @@
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz",
"integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==",
"dev": true,
+ "license": "(MPL-2.0 OR Apache-2.0)",
"optionalDependencies": {
"@types/trusted-types": "^2.0.7"
}
@@ -10296,6 +10766,48 @@
"es6-symbol": "^3.1.1"
}
},
+ "node_modules/esbuild": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz",
+ "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.8",
+ "@esbuild/android-arm": "0.25.8",
+ "@esbuild/android-arm64": "0.25.8",
+ "@esbuild/android-x64": "0.25.8",
+ "@esbuild/darwin-arm64": "0.25.8",
+ "@esbuild/darwin-x64": "0.25.8",
+ "@esbuild/freebsd-arm64": "0.25.8",
+ "@esbuild/freebsd-x64": "0.25.8",
+ "@esbuild/linux-arm": "0.25.8",
+ "@esbuild/linux-arm64": "0.25.8",
+ "@esbuild/linux-ia32": "0.25.8",
+ "@esbuild/linux-loong64": "0.25.8",
+ "@esbuild/linux-mips64el": "0.25.8",
+ "@esbuild/linux-ppc64": "0.25.8",
+ "@esbuild/linux-riscv64": "0.25.8",
+ "@esbuild/linux-s390x": "0.25.8",
+ "@esbuild/linux-x64": "0.25.8",
+ "@esbuild/netbsd-arm64": "0.25.8",
+ "@esbuild/netbsd-x64": "0.25.8",
+ "@esbuild/openbsd-arm64": "0.25.8",
+ "@esbuild/openbsd-x64": "0.25.8",
+ "@esbuild/openharmony-arm64": "0.25.8",
+ "@esbuild/sunos-x64": "0.25.8",
+ "@esbuild/win32-arm64": "0.25.8",
+ "@esbuild/win32-ia32": "0.25.8",
+ "@esbuild/win32-x64": "0.25.8"
+ }
+ },
"node_modules/escalade": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
@@ -11745,6 +12257,7 @@
"resolved": "https://registry.npmjs.org/format-message/-/format-message-6.2.4.tgz",
"integrity": "sha512-/24zYeSRy2ZlEO2OIctm7jOHvMpoWf+uhqFCaqqyZKi1C229zAAy2E5vF4lSSaMH0a2kewPrOzq6xN4Yy7cQrw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"format-message-formats": "^6.2.4",
"format-message-interpret": "^6.2.4",
@@ -11756,13 +12269,15 @@
"version": "6.2.4",
"resolved": "https://registry.npmjs.org/format-message-formats/-/format-message-formats-6.2.4.tgz",
"integrity": "sha512-smT/fAqBLqusWfWCKRAx6QBDAAbmYznWsIyTyk66COmvwt2Byiqd7SJe2ma9a5oV0kwRaOJpN/F4lr4YK/n6qQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/format-message-interpret": {
"version": "6.2.4",
"resolved": "https://registry.npmjs.org/format-message-interpret/-/format-message-interpret-6.2.4.tgz",
"integrity": "sha512-dRvz9mXhITApyOtfuFEb/XqvCe1u6RMkQW49UJHXS8w2S8cAHCqq5LNDFK+QK6XVzcofROycLb/k1uybTAKt2w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"format-message-formats": "^6.2.4",
"lookup-closest-locale": "^6.2.0"
@@ -11772,7 +12287,8 @@
"version": "6.2.4",
"resolved": "https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.2.4.tgz",
"integrity": "sha512-k7WqXkEzgXkW4wkHdS6Cv2Ou0rIFtiDelZjgoe1saW4p7FT7zS8OeAUpAekhormqzpeecR97e4vBft1zMsfFOQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/formik": {
"version": "1.5.8",
@@ -11880,6 +12396,7 @@
"resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz",
"integrity": "sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"from2": "^2.0.3"
}
@@ -12224,6 +12741,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-tsconfig": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
+ "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve-pkg-maps": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ }
+ },
"node_modules/get-user-media-promise": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/get-user-media-promise/-/get-user-media-promise-1.1.4.tgz",
@@ -13234,6 +13764,7 @@
"resolved": "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz",
"integrity": "sha512-mB6rwkw1Z7z4z2RkFFTd/+q6Ug1gnCgjKAervAKgBeNI1mSr8E5EUWoYzFNOZsLHFArLfpk+O8X8qXC7uvuawQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"brfs": "^1.2.0",
"unicode-trie": "^0.3.1"
@@ -13619,6 +14150,7 @@
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
"integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"whatwg-encoding": "^3.1.1"
},
@@ -13741,6 +14273,7 @@
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
"integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"agent-base": "^7.1.0",
"debug": "^4.3.4"
@@ -13750,10 +14283,11 @@
}
},
"node_modules/http-proxy-agent/node_modules/agent-base": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
- "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 14"
}
@@ -13793,7 +14327,8 @@
"resolved": "https://registry.npmjs.org/hull.js/-/hull.js-0.2.10.tgz",
"integrity": "sha512-UO3W30HxhWgeSpNKCdXt00xkwjRTGmhQaoZNP8ll509Nl+DP9juXE3wRGizihuop08FSB4xtAWIbWSe+RxEoog==",
"deprecated": "This package is unmaintained and vulnerable. Do not use it.",
- "dev": true
+ "dev": true,
+ "license": "BSD"
},
"node_modules/human-signals": {
"version": "2.1.0",
@@ -13861,6 +14396,7 @@
"resolved": "https://registry.npmjs.org/ify-loader/-/ify-loader-1.1.0.tgz",
"integrity": "sha512-EiyC45FRIs+z4g98+jBzuYCfoM6TKG9p7Ek5YZUeM7rucNucaMZIseRj/5Q3I4ypkZXyC2wnU1RcYrVmshe2xw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"bl": "^1.0.0",
"findup": "^0.1.5",
@@ -13892,6 +14428,7 @@
"resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz",
"integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -14868,10 +15405,11 @@
}
},
"node_modules/isomorphic-dompurify": {
- "version": "2.25.0",
- "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.25.0.tgz",
- "integrity": "sha512-bcpJzu9DOjN21qaCVpcoCwUX1ytpvA6EFqCK5RNtPg5+F0Jz9PX50jl6jbEicBNeO87eDDfC7XtPs4zjDClZJg==",
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.26.0.tgz",
+ "integrity": "sha512-nZmoK4wKdzPs5USq4JHBiimjdKSVAOm2T1KyDoadtMPNXYHxiENd19ou4iU/V4juFM6LVgYQnpxCYmxqNP4Obw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"dompurify": "^3.2.6",
"jsdom": "^26.1.0"
@@ -16326,6 +16864,7 @@
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz",
"integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cssstyle": "^4.2.1",
"data-urls": "^5.0.0",
@@ -16361,10 +16900,11 @@
}
},
"node_modules/jsdom/node_modules/agent-base": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
- "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 14"
}
@@ -16374,6 +16914,7 @@
"resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
"integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
},
@@ -16386,6 +16927,7 @@
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
"integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"agent-base": "^7.1.2",
"debug": "4"
@@ -16399,6 +16941,7 @@
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
"integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"entities": "^6.0.0"
},
@@ -16711,6 +17254,7 @@
"resolved": "https://registry.npmjs.org/linebreak/-/linebreak-0.3.0.tgz",
"integrity": "sha512-zt8pzlM3oq4moDN8U5mP1SbZ44yKV6dXCu44Ez6iTXmxUl8/jRFWeho2SDqL5YDBv0TBKPgU/XGovZwnXAKlOQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"base64-js": "0.0.8",
"brfs": "^1.3.0",
@@ -16722,6 +17266,7 @@
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz",
"integrity": "sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
}
@@ -17121,7 +17666,8 @@
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz",
"integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/loose-envify": {
"version": "1.4.0",
@@ -17958,6 +18504,7 @@
"resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.3.1.tgz",
"integrity": "sha512-ZUcepNdMeKBRn/ksm2XTxFnhBaqnBJSZNqwajmiem6b7Rp3fNAAq+twYn3kqw9YMY7HJuc7I7OObX9cMgB1ANg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"duplexer2": "^0.1.2"
}
@@ -18485,7 +19032,8 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
"integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/npm-run-path": {
"version": "4.0.1",
@@ -19506,6 +20054,7 @@
"resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz",
"integrity": "sha512-fuDHYgFHJGbpGMgw9skY/bj3HL/Jrn4l/5rSspy00DoT4RyLnDcRvPxdZ+r6OFwIsgAuhDh4I09tAId4mI12bw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "~0.5.0"
}
@@ -21345,6 +21894,7 @@
"integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==",
"deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.",
"dev": true,
+ "license": "ISC",
"dependencies": {
"glob": "^7.1.1",
"json-parse-even-better-errors": "^2.3.0",
@@ -21358,6 +21908,7 @@
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"deprecated": "Glob versions prior to v9 are no longer supported",
"dev": true,
+ "license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -22173,6 +22724,16 @@
"integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==",
"license": "MIT"
},
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ }
+ },
"node_modules/resolve-protobuf-schema": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz",
@@ -22400,7 +22961,8 @@
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
"integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/rst-selector-parser": {
"version": "2.2.3",
@@ -22731,9 +23293,9 @@
}
},
"node_modules/scratch-audio": {
- "version": "2.0.179",
- "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-2.0.179.tgz",
- "integrity": "sha512-OpanST4r6AQOeJJU9x0fwgRekPdTuUSRKGHrYB2djZ+OZN4m+48Pk4T9Mg4uLoXmB2rYKdlT3dgBYSr1MHWNnw==",
+ "version": "2.0.193",
+ "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-2.0.193.tgz",
+ "integrity": "sha512-V/XGDWlzCpHRfHie0Jr+Tw/VdU7x/HZZu1D+574cC/+E7TcntLl4AOFwM4CpLFKms06pD9pMJHUUrhJuvqZAcw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -22868,9 +23430,9 @@
}
},
"node_modules/scratch-paint": {
- "version": "3.0.314",
- "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-3.0.314.tgz",
- "integrity": "sha512-bTEDUddeA7iyB6uhtkLKlZDOGKo7m9fHcZh9cN2wc57kPJ4lLoCNsajGLHlvPmSDrnQNLJwu4ZT62i9nBw0LCA==",
+ "version": "3.0.335",
+ "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-3.0.335.tgz",
+ "integrity": "sha512-GIL1aiWI7GK6fXEgkjnnDEaZte9EJTewtQFJ5tVmh86Mlt01LsbzL9Oq29BlIThkvfl8eE6p7ggW0/MYLp4whw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -22902,19 +23464,22 @@
"resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
"integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==",
"deprecated": "This package is deprecated. Use destructuring assignment syntax instead.",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/scratch-paint/node_modules/microee": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/microee/-/microee-0.0.6.tgz",
"integrity": "sha512-/LdL3jiBWDJ3oQIRLgRhfeCZNE3patM1LiwCC124+/HHn10sI/G2OAyiMfTNzH5oYWoZBk0tRZADAUOv+0Wt0A==",
- "dev": true
+ "dev": true,
+ "license": "BSD"
},
"node_modules/scratch-paint/node_modules/minilog": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/minilog/-/minilog-3.1.0.tgz",
"integrity": "sha512-Xfm4jWjWzSAduvEWtuZX/8TMkxfJlCfH7XvikCZe3ptojYTBq1eoEs3rh9/3LNLOckUP86m+8l8+Iw5NU/pBww==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"microee": "0.0.6"
}
@@ -22934,18 +23499,18 @@
}
},
"node_modules/scratch-render-fonts": {
- "version": "1.0.209",
- "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.209.tgz",
- "integrity": "sha512-twrPr+4G8/Xn0vlJICr/9sNGTUOx6XL/RFlrmsnD5l9IXpMCAIkU+1rjhJnHdR16TKSwAwtLVrFEAvG+Orr+nA==",
+ "version": "1.0.216",
+ "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.216.tgz",
+ "integrity": "sha512-FaoXSGyqMxvDsD7XnROkhtiI54F9YlxgD2Y11C38LY2ujLLt3Ra3tsmlh/j8ZABvepLyLsWhTZDQdY4U0+19Bg==",
"dev": true,
"dependencies": {
"base64-loader": "^1.0.0"
}
},
"node_modules/scratch-sb1-converter": {
- "version": "2.0.177",
- "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-2.0.177.tgz",
- "integrity": "sha512-eGUdqM7lk266E74sDynN4alUOxmtP3OmqSesiQCT2CLAKv1XgxXgWvqmCNiyZ/1oA47yca0niKsWhp9lWBOy4A==",
+ "version": "2.0.193",
+ "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-2.0.193.tgz",
+ "integrity": "sha512-no+a+ehrRbNQA8Sp7ZvG4pVt68audfpzJsfdpK1dwcuy+1uXBMBw3HMoU+EQ6cpRxsJCgBygBjE4EQaFkTTFiw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -22972,9 +23537,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.182",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.182.tgz",
- "integrity": "sha512-4bbgQKbR/dQ5D+/26zj+gyRL9J0vFKvqkNjhIEtnVNttS4pt3iyG4NFWd/KoQY2sREBtNrlMyw+6KckE3bzHjw==",
+ "version": "4.0.193",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.193.tgz",
+ "integrity": "sha512-t9/i9FLWR6EbGNnNMc7YAF/8OBODk3Ev/81bctuxBrpKT/xUV67NrWn8ngsLs5OuoRWfcxUYJOoQATrJh7DuyA==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
@@ -23006,7 +23571,8 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/scratch-translate-extension-languages/-/scratch-translate-extension-languages-1.0.7.tgz",
"integrity": "sha512-6+bQU9iVYv23T8J0SjpV6MTugm0y8myh/4DPgu1BGfccysdkaWzu3MkNGQyQRUlbqAiW9wM7ctfv3USPEkzTgg==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/screenfull": {
"version": "5.2.0",
@@ -24058,7 +24624,8 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/startaudiocontext/-/startaudiocontext-1.2.1.tgz",
"integrity": "sha512-ooOQhOAoCwzMIRwWd9j7xF8kAMo1Wv7Zfw+q6dWDW5gxJUKx15HJXWDg89GMDqfdle9xsqPv+uioneX+bI643g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/static-eval": {
"version": "2.1.1",
@@ -26826,7 +27393,8 @@
"resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz",
"integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==",
"deprecated": "no longer maintained",
- "dev": true
+ "dev": true,
+ "license": "(Unlicense OR Apache-2.0)"
},
"node_modules/text-table": {
"version": "0.2.0",
@@ -26916,7 +27484,8 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
"integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/tiny-invariant": {
"version": "1.3.3",
@@ -26956,6 +27525,7 @@
"resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz",
"integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"tldts-core": "^6.1.86"
},
@@ -26967,7 +27537,8 @@
"version": "6.1.86",
"resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz",
"integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/tmp": {
"version": "0.2.3",
@@ -27090,6 +27661,7 @@
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
"integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"tldts": "^6.1.32"
},
@@ -27102,6 +27674,7 @@
"resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
"integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"punycode": "^2.3.1"
},
@@ -27113,7 +27686,8 @@
"version": "1.15.3",
"resolved": "https://registry.npmjs.org/transformation-matrix/-/transformation-matrix-1.15.3.tgz",
"integrity": "sha512-ThJH58GNFKhCw3gIoOtwf3tNwuYjbyEeiGdeq4mNMYWdJctnI896KUqn6PVt7jmNVepqa1bcKQtnMB1HtjsDMA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/transifex": {
"version": "1.6.6",
@@ -27338,6 +27912,26 @@
"dev": true,
"license": "0BSD"
},
+ "node_modules/tsx": {
+ "version": "4.20.3",
+ "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.20.3.tgz",
+ "integrity": "sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "~0.25.0",
+ "get-tsconfig": "^4.7.5"
+ },
+ "bin": {
+ "tsx": "dist/cli.mjs"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ }
+ },
"node_modules/tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
@@ -27380,7 +27974,8 @@
"version": "4.24.0",
"resolved": "https://registry.npmjs.org/twgl.js/-/twgl.js-4.24.0.tgz",
"integrity": "sha512-JGVTxuV9dqaBmajXyvuZIlhCHrTbIaoNjQvtdoLHyK74OtbmNwZUj6rfdp+pz9htitI/tVxiVQ2nuw+KmD29vg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/two-product": {
"version": "1.0.2",
@@ -27788,6 +28383,7 @@
"resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz",
"integrity": "sha512-WgVuO0M2jDl7hVfbPgXv2LUrD81HM0bQj/bvLGiw6fJ4Zo8nNFnDrA0/hU2Te/wz6pjxCm5cxJwtLjo2eyV51Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"pako": "^0.2.5",
"tiny-inflate": "^1.0.0"
@@ -28199,6 +28795,7 @@
"resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
"integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"xml-name-validator": "^5.0.0"
},
@@ -28264,7 +28861,8 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.3.0.tgz",
"integrity": "sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==",
- "dev": true
+ "dev": true,
+ "license": "Apache-2.0"
},
"node_modules/webgl-context": {
"version": "2.2.0",
@@ -28635,6 +29233,7 @@
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
"integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"iconv-lite": "0.6.3"
},
@@ -28647,6 +29246,7 @@
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
},
@@ -28666,6 +29266,7 @@
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
"integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
}
@@ -28675,6 +29276,7 @@
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
"integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"tr46": "^5.1.0",
"webidl-conversions": "^7.0.0"
@@ -28933,6 +29535,7 @@
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
"integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=18"
}
diff --git a/package.json b/package.json
index 7f2d94e02f6..a90247fb36f 100644
--- a/package.json
+++ b/package.json
@@ -74,7 +74,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.3.0",
+ "@scratch/scratch-gui": "11.4.0",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
From b1ebe6c9fab0ddb28e43dd4f1f5f7d59ec257d55 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 22 Jul 2025 13:07:28 +0000
Subject: [PATCH 052/129] feat(deps): update dependency @scratch/scratch-gui to
v11.4.0
---
package-lock.json | 163 +++++++++++++++++++++++++---------------------
package.json | 2 +-
2 files changed, 90 insertions(+), 75 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 40c43f01ad1..e7aeedc060c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -39,7 +39,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.3.0",
+ "@scratch/scratch-gui": "11.4.0",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
@@ -146,6 +146,7 @@
"resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
"integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@csstools/css-calc": "^2.1.3",
"@csstools/css-color-parser": "^3.0.9",
@@ -158,7 +159,8 @@
"version": "10.4.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/@babel/cli": {
"version": "7.28.0",
@@ -2129,6 +2131,7 @@
"url": "https://opencollective.com/csstools"
}
],
+ "license": "MIT-0",
"engines": {
"node": ">=18"
}
@@ -2148,6 +2151,7 @@
"url": "https://opencollective.com/csstools"
}
],
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -2171,6 +2175,7 @@
"url": "https://opencollective.com/csstools"
}
],
+ "license": "MIT",
"dependencies": {
"@csstools/color-helpers": "^5.0.2",
"@csstools/css-calc": "^2.1.4"
@@ -2198,6 +2203,7 @@
"url": "https://opencollective.com/csstools"
}
],
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -2220,6 +2226,7 @@
"url": "https://opencollective.com/csstools"
}
],
+ "license": "MIT",
"engines": {
"node": ">=18"
}
@@ -4331,16 +4338,16 @@
}
},
"node_modules/@scratch/scratch-gui": {
- "version": "11.3.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.3.0.tgz",
- "integrity": "sha512-WLg7qtBNm+KRU6+AlIDg/qUBOiraKxT44UA1MSEbUCGvnjs+2AhLTWh6mRjqSAIytem06u0xyyI6lDGpQXknvw==",
+ "version": "11.4.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.4.0.tgz",
+ "integrity": "sha512-3/1SPSf917JM9pJc01mpvFSAujqSYl61C/IPozF2XlxMhrTiTAVnTBnVrpLntDwTMwWHOf5ibsaoGX29jBdPRQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
"@microbit/microbit-universal-hex": "0.2.2",
- "@scratch/scratch-render": "11.3.0",
- "@scratch/scratch-svg-renderer": "11.3.0",
- "@scratch/scratch-vm": "11.3.0",
+ "@scratch/scratch-render": "11.4.0",
+ "@scratch/scratch-svg-renderer": "11.4.0",
+ "@scratch/scratch-vm": "11.4.0",
"arraybuffer-loader": "1.0.8",
"autoprefixer": "9.8.8",
"balance-text": "3.3.1",
@@ -4389,12 +4396,12 @@
"react-virtualized": "9.22.6",
"react-visibility-sensor": "5.1.1",
"redux-throttle": "0.1.1",
- "scratch-audio": "2.0.179",
+ "scratch-audio": "2.0.193",
"scratch-blocks": "1.1.210",
- "scratch-l10n": "5.0.293",
- "scratch-paint": "3.0.314",
- "scratch-render-fonts": "1.0.209",
- "scratch-storage": "4.0.178",
+ "scratch-l10n": "6.0.7",
+ "scratch-paint": "3.0.335",
+ "scratch-render-fonts": "1.0.216",
+ "scratch-storage": "4.0.193",
"startaudiocontext": "1.2.1",
"style-loader": "4.0.0",
"text-encoding": "0.7.0",
@@ -4573,26 +4580,10 @@
"react": "^16.0.0"
}
},
- "node_modules/@scratch/scratch-gui/node_modules/scratch-l10n": {
- "version": "5.0.293",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-5.0.293.tgz",
- "integrity": "sha512-aeIwlQG8gUAL8A9zmsBq4GcS4R5N7ZDg6xY9oNU9jTejcNUtWpLlmEnstWm0PZHeuySTdOjToCC7sIsLZY0Uog==",
- "dev": true,
- "license": "AGPL-3.0-only",
- "dependencies": {
- "@transifex/api": "7.1.4",
- "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/scratch-gui/node_modules/scratch-storage": {
- "version": "4.0.178",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.178.tgz",
- "integrity": "sha512-twZ6yidoaKjoO9yCzYK4D7wwqr8zbafYhCeuzpOoEUaRmiPKuMnPlFNYDLt6FEFpXcXglpkhinmsB0d92hZj1w==",
+ "version": "4.0.193",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.193.tgz",
+ "integrity": "sha512-t9/i9FLWR6EbGNnNMc7YAF/8OBODk3Ev/81bctuxBrpKT/xUV67NrWn8ngsLs5OuoRWfcxUYJOoQATrJh7DuyA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4607,13 +4598,13 @@
}
},
"node_modules/@scratch/scratch-render": {
- "version": "11.3.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.3.0.tgz",
- "integrity": "sha512-Nj2hH5+HKorxTB5ikQLUXbFgsSOu2WmjqBE+pnt2+TZZW5F0IAJzDUSvCz+sBRlDlvopSP6hp0Blg3XzZap5jw==",
+ "version": "11.4.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.4.0.tgz",
+ "integrity": "sha512-w1bVCNPlvuJsqXgdgSs2SzWFnmc/MdSXuAWcjBQezUP8VrBXBAaQ2MoH2gTGpjo7VBBIBix3OprSnT+PS3nuxg==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-svg-renderer": "11.3.0",
+ "@scratch/scratch-svg-renderer": "11.4.0",
"grapheme-breaker": "0.3.2",
"hull.js": "0.2.10",
"ify-loader": "1.1.0",
@@ -4650,9 +4641,9 @@
"dev": true
},
"node_modules/@scratch/scratch-svg-renderer": {
- "version": "11.3.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.3.0.tgz",
- "integrity": "sha512-/oy7oIg6ouB+qJWTQ39hhlTDU3iAuJiIPETr2Fdm+p9lU9fm53aEWzvUne8CN7ikm79mx5kEJ5wed4IyMAPwHQ==",
+ "version": "11.4.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.4.0.tgz",
+ "integrity": "sha512-4gpmkL9Vo9Wmanpf98K5UMkD8CqIvL7m/o0JzZefWvq/eGSv13k/c+xl22Cx2Jkl03KqquEKfVqA3/eGxlDwTA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4660,7 +4651,7 @@
"base64-loader": "1.0.0",
"css-tree": "1.1.3",
"fastestsmallesttextencoderdecoder": "1.0.22",
- "isomorphic-dompurify": "2.25.0",
+ "isomorphic-dompurify": "2.26.0",
"minilog": "3.1.0",
"transformation-matrix": "1.15.3"
},
@@ -4686,14 +4677,14 @@
}
},
"node_modules/@scratch/scratch-vm": {
- "version": "11.3.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.3.0.tgz",
- "integrity": "sha512-4dqsmpeGRsb3iHqi0gm1CcKz7OobPg5oMCPXbsuN5pJFR1ZKh/OyjkGRo8P8yWg2MDqbDKgrqj3ghmsuE/SJHA==",
+ "version": "11.4.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.4.0.tgz",
+ "integrity": "sha512-RgMrX2o72GAd4K4vDhFiCwBgm4r4yqyuWM1YY4BARAbiNh4SYznptWKRFLf0SfJxWHoZoM8Ks3KaBIC+7u+MXw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-render": "11.3.0",
- "@scratch/scratch-svg-renderer": "11.3.0",
+ "@scratch/scratch-render": "11.4.0",
+ "@scratch/scratch-svg-renderer": "11.4.0",
"@vernier/godirect": "1.8.3",
"arraybuffer-loader": "1.0.8",
"atob": "2.1.2",
@@ -4706,10 +4697,10 @@
"immutable": "3.8.2",
"jszip": "3.10.1",
"minilog": "3.1.0",
- "scratch-audio": "2.0.179",
+ "scratch-audio": "2.0.193",
"scratch-parser": "6.0.0",
- "scratch-sb1-converter": "2.0.177",
- "scratch-storage": "4.0.178",
+ "scratch-sb1-converter": "2.0.193",
+ "scratch-storage": "4.0.193",
"scratch-translate-extension-languages": "1.0.7",
"text-encoding": "0.7.0",
"uuid": "8.3.2",
@@ -4734,9 +4725,9 @@
}
},
"node_modules/@scratch/scratch-vm/node_modules/scratch-storage": {
- "version": "4.0.178",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.178.tgz",
- "integrity": "sha512-twZ6yidoaKjoO9yCzYK4D7wwqr8zbafYhCeuzpOoEUaRmiPKuMnPlFNYDLt6FEFpXcXglpkhinmsB0d92hZj1w==",
+ "version": "4.0.193",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.193.tgz",
+ "integrity": "sha512-t9/i9FLWR6EbGNnNMc7YAF/8OBODk3Ev/81bctuxBrpKT/xUV67NrWn8ngsLs5OuoRWfcxUYJOoQATrJh7DuyA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -5082,6 +5073,7 @@
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
"dev": true,
+ "license": "MIT",
"optional": true
},
"node_modules/@types/usb": {
@@ -8821,6 +8813,7 @@
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
"integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@asamuzakjp/css-color": "^3.2.0",
"rrweb-cssom": "^0.8.0"
@@ -9274,6 +9267,7 @@
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
"integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"whatwg-mimetype": "^4.0.0",
"whatwg-url": "^14.0.0"
@@ -9933,6 +9927,7 @@
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz",
"integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==",
"dev": true,
+ "license": "(MPL-2.0 OR Apache-2.0)",
"optionalDependencies": {
"@types/trusted-types": "^2.0.7"
}
@@ -14129,6 +14124,7 @@
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
"integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"whatwg-encoding": "^3.1.1"
},
@@ -14251,6 +14247,7 @@
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
"integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"agent-base": "^7.1.0",
"debug": "^4.3.4"
@@ -14260,10 +14257,11 @@
}
},
"node_modules/http-proxy-agent/node_modules/agent-base": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
- "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 14"
}
@@ -15378,10 +15376,11 @@
}
},
"node_modules/isomorphic-dompurify": {
- "version": "2.25.0",
- "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.25.0.tgz",
- "integrity": "sha512-bcpJzu9DOjN21qaCVpcoCwUX1ytpvA6EFqCK5RNtPg5+F0Jz9PX50jl6jbEicBNeO87eDDfC7XtPs4zjDClZJg==",
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.26.0.tgz",
+ "integrity": "sha512-nZmoK4wKdzPs5USq4JHBiimjdKSVAOm2T1KyDoadtMPNXYHxiENd19ou4iU/V4juFM6LVgYQnpxCYmxqNP4Obw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"dompurify": "^3.2.6",
"jsdom": "^26.1.0"
@@ -16836,6 +16835,7 @@
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz",
"integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cssstyle": "^4.2.1",
"data-urls": "^5.0.0",
@@ -16871,10 +16871,11 @@
}
},
"node_modules/jsdom/node_modules/agent-base": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
- "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 14"
}
@@ -16884,6 +16885,7 @@
"resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
"integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
},
@@ -16896,6 +16898,7 @@
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
"integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"agent-base": "^7.1.2",
"debug": "4"
@@ -16909,6 +16912,7 @@
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
"integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"entities": "^6.0.0"
},
@@ -22920,7 +22924,8 @@
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
"integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/rst-selector-parser": {
"version": "2.2.3",
@@ -23251,9 +23256,9 @@
}
},
"node_modules/scratch-audio": {
- "version": "2.0.179",
- "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-2.0.179.tgz",
- "integrity": "sha512-OpanST4r6AQOeJJU9x0fwgRekPdTuUSRKGHrYB2djZ+OZN4m+48Pk4T9Mg4uLoXmB2rYKdlT3dgBYSr1MHWNnw==",
+ "version": "2.0.193",
+ "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-2.0.193.tgz",
+ "integrity": "sha512-V/XGDWlzCpHRfHie0Jr+Tw/VdU7x/HZZu1D+574cC/+E7TcntLl4AOFwM4CpLFKms06pD9pMJHUUrhJuvqZAcw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -23431,9 +23436,9 @@
}
},
"node_modules/scratch-paint": {
- "version": "3.0.314",
- "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-3.0.314.tgz",
- "integrity": "sha512-bTEDUddeA7iyB6uhtkLKlZDOGKo7m9fHcZh9cN2wc57kPJ4lLoCNsajGLHlvPmSDrnQNLJwu4ZT62i9nBw0LCA==",
+ "version": "3.0.335",
+ "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-3.0.335.tgz",
+ "integrity": "sha512-GIL1aiWI7GK6fXEgkjnnDEaZte9EJTewtQFJ5tVmh86Mlt01LsbzL9Oq29BlIThkvfl8eE6p7ggW0/MYLp4whw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -23497,18 +23502,18 @@
}
},
"node_modules/scratch-render-fonts": {
- "version": "1.0.209",
- "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.209.tgz",
- "integrity": "sha512-twrPr+4G8/Xn0vlJICr/9sNGTUOx6XL/RFlrmsnD5l9IXpMCAIkU+1rjhJnHdR16TKSwAwtLVrFEAvG+Orr+nA==",
+ "version": "1.0.216",
+ "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.216.tgz",
+ "integrity": "sha512-FaoXSGyqMxvDsD7XnROkhtiI54F9YlxgD2Y11C38LY2ujLLt3Ra3tsmlh/j8ZABvepLyLsWhTZDQdY4U0+19Bg==",
"dev": true,
"dependencies": {
"base64-loader": "^1.0.0"
}
},
"node_modules/scratch-sb1-converter": {
- "version": "2.0.177",
- "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-2.0.177.tgz",
- "integrity": "sha512-eGUdqM7lk266E74sDynN4alUOxmtP3OmqSesiQCT2CLAKv1XgxXgWvqmCNiyZ/1oA47yca0niKsWhp9lWBOy4A==",
+ "version": "2.0.193",
+ "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-2.0.193.tgz",
+ "integrity": "sha512-no+a+ehrRbNQA8Sp7ZvG4pVt68audfpzJsfdpK1dwcuy+1uXBMBw3HMoU+EQ6cpRxsJCgBygBjE4EQaFkTTFiw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -27519,6 +27524,7 @@
"resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz",
"integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"tldts-core": "^6.1.86"
},
@@ -27530,7 +27536,8 @@
"version": "6.1.86",
"resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz",
"integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/tmp": {
"version": "0.2.3",
@@ -27653,6 +27660,7 @@
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
"integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"tldts": "^6.1.32"
},
@@ -27665,6 +27673,7 @@
"resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
"integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"punycode": "^2.3.1"
},
@@ -28782,6 +28791,7 @@
"resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
"integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"xml-name-validator": "^5.0.0"
},
@@ -29219,6 +29229,7 @@
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
"integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"iconv-lite": "0.6.3"
},
@@ -29231,6 +29242,7 @@
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
},
@@ -29250,6 +29262,7 @@
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
"integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
}
@@ -29259,6 +29272,7 @@
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
"integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"tr46": "^5.1.0",
"webidl-conversions": "^7.0.0"
@@ -29517,6 +29531,7 @@
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
"integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=18"
}
diff --git a/package.json b/package.json
index 1ee6b31efbd..d42ad70f748 100644
--- a/package.json
+++ b/package.json
@@ -74,7 +74,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.3.0",
+ "@scratch/scratch-gui": "11.4.0",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
From 9e6cb1b3a69ae2261219d047da85b91c0b2964f2 Mon Sep 17 00:00:00 2001
From: Kaloyan Manolov
Date: Tue, 22 Jul 2025 16:10:57 +0300
Subject: [PATCH 053/129] Revert "chore: update scratch-gui version"
This reverts commit 9891d58516eb00e60e247f643d10a236a21680d0.
---
package-lock.json | 905 ++++++++--------------------------------------
package.json | 2 +-
2 files changed, 152 insertions(+), 755 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 458e0faf438..d848a8c7b55 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -39,7 +39,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.4.0",
+ "@scratch/scratch-gui": "11.3.0",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
@@ -146,7 +146,6 @@
"resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
"integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@csstools/css-calc": "^2.1.3",
"@csstools/css-color-parser": "^3.0.9",
@@ -159,8 +158,7 @@
"version": "10.4.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true,
- "license": "ISC"
+ "dev": true
},
"node_modules/@babel/cli": {
"version": "7.28.0",
@@ -2131,7 +2129,6 @@
"url": "https://opencollective.com/csstools"
}
],
- "license": "MIT-0",
"engines": {
"node": ">=18"
}
@@ -2151,7 +2148,6 @@
"url": "https://opencollective.com/csstools"
}
],
- "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -2175,7 +2171,6 @@
"url": "https://opencollective.com/csstools"
}
],
- "license": "MIT",
"dependencies": {
"@csstools/color-helpers": "^5.0.2",
"@csstools/css-calc": "^2.1.4"
@@ -2186,501 +2181,57 @@
"peerDependencies": {
"@csstools/css-parser-algorithms": "^3.0.5",
"@csstools/css-tokenizer": "^3.0.4"
- }
- },
- "node_modules/@csstools/css-parser-algorithms": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
- "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-tokenizer": "^3.0.4"
- }
- },
- "node_modules/@csstools/css-tokenizer": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
- "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@discoveryjs/json-ext": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
- "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz",
- "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-arm": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz",
- "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz",
- "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz",
- "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz",
- "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz",
- "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz",
- "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz",
- "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz",
- "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz",
- "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz",
- "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz",
- "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz",
- "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz",
- "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz",
- "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz",
- "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz",
- "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/netbsd-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz",
- "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz",
- "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz",
- "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz",
- "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openharmony-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz",
- "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz",
- "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz",
- "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==",
- "cpu": [
- "arm64"
- ],
+ }
+ },
+ "node_modules/@csstools/css-parser-algorithms": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
+ "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-tokenizer": "^3.0.4"
}
},
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz",
- "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==",
- "cpu": [
- "ia32"
- ],
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
+ "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
"engines": {
"node": ">=18"
}
},
- "node_modules/@esbuild/win32-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz",
- "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@discoveryjs/json-ext": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
+ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
"engines": {
- "node": ">=18"
+ "node": ">=10.0.0"
}
},
"node_modules/@eslint-community/eslint-utils": {
@@ -4333,22 +3884,21 @@
"resolved": "https://registry.npmjs.org/@scratch/paper/-/paper-0.11.20221201200345.tgz",
"integrity": "sha512-I3BZNrHeaQJt2H6TD7HGsuBKJPDDF/BIDOaRvnN7Gj/QBRvpSaRK8JAmzcrRHZ+AqNtKrG50eOkS/acMjTw3rw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@scratch/scratch-gui": {
- "version": "11.4.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.4.0.tgz",
- "integrity": "sha512-3/1SPSf917JM9pJc01mpvFSAujqSYl61C/IPozF2XlxMhrTiTAVnTBnVrpLntDwTMwWHOf5ibsaoGX29jBdPRQ==",
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.3.0.tgz",
+ "integrity": "sha512-WLg7qtBNm+KRU6+AlIDg/qUBOiraKxT44UA1MSEbUCGvnjs+2AhLTWh6mRjqSAIytem06u0xyyI6lDGpQXknvw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
"@microbit/microbit-universal-hex": "0.2.2",
- "@scratch/scratch-render": "11.4.0",
- "@scratch/scratch-svg-renderer": "11.4.0",
- "@scratch/scratch-vm": "11.4.0",
+ "@scratch/scratch-render": "11.3.0",
+ "@scratch/scratch-svg-renderer": "11.3.0",
+ "@scratch/scratch-vm": "11.3.0",
"arraybuffer-loader": "1.0.8",
"autoprefixer": "9.8.8",
"balance-text": "3.3.1",
@@ -4397,12 +3947,12 @@
"react-virtualized": "9.22.6",
"react-visibility-sensor": "5.1.1",
"redux-throttle": "0.1.1",
- "scratch-audio": "2.0.193",
+ "scratch-audio": "2.0.179",
"scratch-blocks": "1.1.210",
- "scratch-l10n": "6.0.7",
- "scratch-paint": "3.0.335",
- "scratch-render-fonts": "1.0.216",
- "scratch-storage": "4.0.193",
+ "scratch-l10n": "5.0.293",
+ "scratch-paint": "3.0.314",
+ "scratch-render-fonts": "1.0.209",
+ "scratch-storage": "4.0.178",
"startaudiocontext": "1.2.1",
"style-loader": "4.0.0",
"text-encoding": "0.7.0",
@@ -4460,28 +4010,6 @@
"node": ">=0.10"
}
},
- "node_modules/@scratch/scratch-gui/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@scratch/scratch-gui/node_modules/intl-messageformat": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz",
@@ -4527,22 +4055,6 @@
"microee": "0.0.6"
}
},
- "node_modules/@scratch/scratch-gui/node_modules/mkdirp": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
- "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "mkdirp": "dist/cjs/src/bin.js"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@scratch/scratch-gui/node_modules/picocolors": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
@@ -4620,34 +4132,46 @@
}
},
"node_modules/@scratch/scratch-gui/node_modules/scratch-l10n": {
- "version": "6.0.7",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.7.tgz",
- "integrity": "sha512-3zAhVFlvHbNhkgjweqUK0in5pSr8AANhQzxFNtgutfNKzCzFpA1dnQ4JAuJawGLphER/FC3vuB0abbHjSzDUWQ==",
+ "version": "5.0.293",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-5.0.293.tgz",
+ "integrity": "sha512-aeIwlQG8gUAL8A9zmsBq4GcS4R5N7ZDg6xY9oNU9jTejcNUtWpLlmEnstWm0PZHeuySTdOjToCC7sIsLZY0Uog==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
"@transifex/api": "7.1.4",
- "async": "3.2.6",
- "format-message-parse": "6.2.4",
- "glob": "7.2.3",
- "lodash.defaultsdeep": "4.6.1",
- "mkdirp": "3.0.1",
- "transifex": "1.6.6",
- "tsx": "4.20.3"
+ "download": "8.0.0",
+ "transifex": "1.6.6"
},
"bin": {
- "build-i18n-src": "scripts/build-i18n-src.mts",
- "tx-push-src": "scripts/tx-push-src.mts"
+ "build-i18n-src": "scripts/build-i18n-src.js",
+ "tx-push-src": "scripts/tx-push-src.js"
+ }
+ },
+ "node_modules/@scratch/scratch-gui/node_modules/scratch-storage": {
+ "version": "4.0.178",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.178.tgz",
+ "integrity": "sha512-twZ6yidoaKjoO9yCzYK4D7wwqr8zbafYhCeuzpOoEUaRmiPKuMnPlFNYDLt6FEFpXcXglpkhinmsB0d92hZj1w==",
+ "dev": true,
+ "license": "AGPL-3.0-only",
+ "dependencies": {
+ "@babel/runtime": "^7.21.0",
+ "arraybuffer-loader": "^1.0.3",
+ "base64-js": "^1.3.0",
+ "buffer": "6.0.3",
+ "cross-fetch": "^4.1.0",
+ "fastestsmallesttextencoderdecoder": "^1.0.7",
+ "js-md5": "^0.7.3",
+ "minilog": "^3.1.0"
}
},
"node_modules/@scratch/scratch-render": {
- "version": "11.4.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.4.0.tgz",
- "integrity": "sha512-w1bVCNPlvuJsqXgdgSs2SzWFnmc/MdSXuAWcjBQezUP8VrBXBAaQ2MoH2gTGpjo7VBBIBix3OprSnT+PS3nuxg==",
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.3.0.tgz",
+ "integrity": "sha512-Nj2hH5+HKorxTB5ikQLUXbFgsSOu2WmjqBE+pnt2+TZZW5F0IAJzDUSvCz+sBRlDlvopSP6hp0Blg3XzZap5jw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-svg-renderer": "11.4.0",
+ "@scratch/scratch-svg-renderer": "11.3.0",
"grapheme-breaker": "0.3.2",
"hull.js": "0.2.10",
"ify-loader": "1.1.0",
@@ -4684,9 +4208,9 @@
"dev": true
},
"node_modules/@scratch/scratch-svg-renderer": {
- "version": "11.4.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.4.0.tgz",
- "integrity": "sha512-4gpmkL9Vo9Wmanpf98K5UMkD8CqIvL7m/o0JzZefWvq/eGSv13k/c+xl22Cx2Jkl03KqquEKfVqA3/eGxlDwTA==",
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.3.0.tgz",
+ "integrity": "sha512-/oy7oIg6ouB+qJWTQ39hhlTDU3iAuJiIPETr2Fdm+p9lU9fm53aEWzvUne8CN7ikm79mx5kEJ5wed4IyMAPwHQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4694,7 +4218,7 @@
"base64-loader": "1.0.0",
"css-tree": "1.1.3",
"fastestsmallesttextencoderdecoder": "1.0.22",
- "isomorphic-dompurify": "2.26.0",
+ "isomorphic-dompurify": "2.25.0",
"minilog": "3.1.0",
"transformation-matrix": "1.15.3"
},
@@ -4720,14 +4244,14 @@
}
},
"node_modules/@scratch/scratch-vm": {
- "version": "11.4.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.4.0.tgz",
- "integrity": "sha512-RgMrX2o72GAd4K4vDhFiCwBgm4r4yqyuWM1YY4BARAbiNh4SYznptWKRFLf0SfJxWHoZoM8Ks3KaBIC+7u+MXw==",
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.3.0.tgz",
+ "integrity": "sha512-4dqsmpeGRsb3iHqi0gm1CcKz7OobPg5oMCPXbsuN5pJFR1ZKh/OyjkGRo8P8yWg2MDqbDKgrqj3ghmsuE/SJHA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-render": "11.4.0",
- "@scratch/scratch-svg-renderer": "11.4.0",
+ "@scratch/scratch-render": "11.3.0",
+ "@scratch/scratch-svg-renderer": "11.3.0",
"@vernier/godirect": "1.8.3",
"arraybuffer-loader": "1.0.8",
"atob": "2.1.2",
@@ -4740,10 +4264,10 @@
"immutable": "3.8.2",
"jszip": "3.10.1",
"minilog": "3.1.0",
- "scratch-audio": "2.0.193",
+ "scratch-audio": "2.0.179",
"scratch-parser": "6.0.0",
- "scratch-sb1-converter": "2.0.193",
- "scratch-storage": "4.0.193",
+ "scratch-sb1-converter": "2.0.177",
+ "scratch-storage": "4.0.178",
"scratch-translate-extension-languages": "1.0.7",
"text-encoding": "0.7.0",
"uuid": "8.3.2",
@@ -4767,6 +4291,23 @@
"microee": "0.0.6"
}
},
+ "node_modules/@scratch/scratch-vm/node_modules/scratch-storage": {
+ "version": "4.0.178",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.178.tgz",
+ "integrity": "sha512-twZ6yidoaKjoO9yCzYK4D7wwqr8zbafYhCeuzpOoEUaRmiPKuMnPlFNYDLt6FEFpXcXglpkhinmsB0d92hZj1w==",
+ "dev": true,
+ "license": "AGPL-3.0-only",
+ "dependencies": {
+ "@babel/runtime": "^7.21.0",
+ "arraybuffer-loader": "^1.0.3",
+ "base64-js": "^1.3.0",
+ "buffer": "6.0.3",
+ "cross-fetch": "^4.1.0",
+ "fastestsmallesttextencoderdecoder": "^1.0.7",
+ "js-md5": "^0.7.3",
+ "minilog": "^3.1.0"
+ }
+ },
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
@@ -5099,7 +4640,6 @@
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
"dev": true,
- "license": "MIT",
"optional": true
},
"node_modules/@types/usb": {
@@ -5291,8 +4831,7 @@
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@vernier/godirect/-/godirect-1.8.3.tgz",
"integrity": "sha512-poS0LZ3jAjH36gIAI0aNBBdsGGbmt11VFbLO+eGDJ/JDSPtMu1iUStvOi0UM/ZH6Jyh34SjVd8Cnxu/Wmcb8iQ==",
- "dev": true,
- "license": "BSD-3-Clause"
+ "dev": true
},
"node_modules/@webassemblyjs/ast": {
"version": "1.14.1",
@@ -6287,7 +5826,6 @@
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
"dev": true,
- "license": "(MIT OR Apache-2.0)",
"bin": {
"atob": "bin/atob.js"
},
@@ -6679,8 +6217,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/base64-loader/-/base64-loader-1.0.0.tgz",
"integrity": "sha512-p32+F8dg+ANGx7s8QsZS74ZPHfIycmC2yZcoerzFgbersIYWitPbbF39G6SBx3gyvzyLH5nt1ooocxr0IHuWKA==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/bcrypt-pbkdf": {
"version": "1.0.2",
@@ -6992,7 +6529,6 @@
"resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz",
"integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==",
"dev": true,
- "license": "(MIT OR Apache-2.0)",
"bin": {
"btoa": "bin/btoa.js"
},
@@ -7569,8 +7105,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/canvas-toBlob/-/canvas-toBlob-1.0.0.tgz",
"integrity": "sha512-oU5bawygt/Nef9F+C49eTFmzXzz6yKdGqn6J1wn/LZQF5ulnnZVm0KIZzik85I6tjCbZFH6aa47j4bU2tkHxRw==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/cardinal": {
"version": "0.4.4",
@@ -8831,7 +8366,6 @@
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
"integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@asamuzakjp/css-color": "^3.2.0",
"rrweb-cssom": "^0.8.0"
@@ -9285,7 +8819,6 @@
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
"integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"whatwg-mimetype": "^4.0.0",
"whatwg-url": "^14.0.0"
@@ -9391,8 +8924,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/decode-html/-/decode-html-2.0.0.tgz",
"integrity": "sha512-lVJ+EBozhAXA2nSQG+xAgcD0P5K3uejnIIvM09uoQfS8AALkQ+HhHcEUvKovXi0EIpIZWjm0y8X7ULjaJpgY9w==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/decode-uri-component": {
"version": "0.4.1",
@@ -9827,8 +9359,7 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz",
"integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==",
- "dev": true,
- "license": "Apache-2.0"
+ "dev": true
},
"node_modules/diff-sequences": {
"version": "29.6.3",
@@ -9947,7 +9478,6 @@
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz",
"integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==",
"dev": true,
- "license": "(MPL-2.0 OR Apache-2.0)",
"optionalDependencies": {
"@types/trusted-types": "^2.0.7"
}
@@ -10766,48 +10296,6 @@
"es6-symbol": "^3.1.1"
}
},
- "node_modules/esbuild": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz",
- "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.25.8",
- "@esbuild/android-arm": "0.25.8",
- "@esbuild/android-arm64": "0.25.8",
- "@esbuild/android-x64": "0.25.8",
- "@esbuild/darwin-arm64": "0.25.8",
- "@esbuild/darwin-x64": "0.25.8",
- "@esbuild/freebsd-arm64": "0.25.8",
- "@esbuild/freebsd-x64": "0.25.8",
- "@esbuild/linux-arm": "0.25.8",
- "@esbuild/linux-arm64": "0.25.8",
- "@esbuild/linux-ia32": "0.25.8",
- "@esbuild/linux-loong64": "0.25.8",
- "@esbuild/linux-mips64el": "0.25.8",
- "@esbuild/linux-ppc64": "0.25.8",
- "@esbuild/linux-riscv64": "0.25.8",
- "@esbuild/linux-s390x": "0.25.8",
- "@esbuild/linux-x64": "0.25.8",
- "@esbuild/netbsd-arm64": "0.25.8",
- "@esbuild/netbsd-x64": "0.25.8",
- "@esbuild/openbsd-arm64": "0.25.8",
- "@esbuild/openbsd-x64": "0.25.8",
- "@esbuild/openharmony-arm64": "0.25.8",
- "@esbuild/sunos-x64": "0.25.8",
- "@esbuild/win32-arm64": "0.25.8",
- "@esbuild/win32-ia32": "0.25.8",
- "@esbuild/win32-x64": "0.25.8"
- }
- },
"node_modules/escalade": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
@@ -12257,7 +11745,6 @@
"resolved": "https://registry.npmjs.org/format-message/-/format-message-6.2.4.tgz",
"integrity": "sha512-/24zYeSRy2ZlEO2OIctm7jOHvMpoWf+uhqFCaqqyZKi1C229zAAy2E5vF4lSSaMH0a2kewPrOzq6xN4Yy7cQrw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"format-message-formats": "^6.2.4",
"format-message-interpret": "^6.2.4",
@@ -12269,15 +11756,13 @@
"version": "6.2.4",
"resolved": "https://registry.npmjs.org/format-message-formats/-/format-message-formats-6.2.4.tgz",
"integrity": "sha512-smT/fAqBLqusWfWCKRAx6QBDAAbmYznWsIyTyk66COmvwt2Byiqd7SJe2ma9a5oV0kwRaOJpN/F4lr4YK/n6qQ==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/format-message-interpret": {
"version": "6.2.4",
"resolved": "https://registry.npmjs.org/format-message-interpret/-/format-message-interpret-6.2.4.tgz",
"integrity": "sha512-dRvz9mXhITApyOtfuFEb/XqvCe1u6RMkQW49UJHXS8w2S8cAHCqq5LNDFK+QK6XVzcofROycLb/k1uybTAKt2w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"format-message-formats": "^6.2.4",
"lookup-closest-locale": "^6.2.0"
@@ -12287,8 +11772,7 @@
"version": "6.2.4",
"resolved": "https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.2.4.tgz",
"integrity": "sha512-k7WqXkEzgXkW4wkHdS6Cv2Ou0rIFtiDelZjgoe1saW4p7FT7zS8OeAUpAekhormqzpeecR97e4vBft1zMsfFOQ==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/formik": {
"version": "1.5.8",
@@ -12396,7 +11880,6 @@
"resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz",
"integrity": "sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"from2": "^2.0.3"
}
@@ -12741,19 +12224,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/get-tsconfig": {
- "version": "4.10.1",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
- "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "resolve-pkg-maps": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
- }
- },
"node_modules/get-user-media-promise": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/get-user-media-promise/-/get-user-media-promise-1.1.4.tgz",
@@ -13764,7 +13234,6 @@
"resolved": "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz",
"integrity": "sha512-mB6rwkw1Z7z4z2RkFFTd/+q6Ug1gnCgjKAervAKgBeNI1mSr8E5EUWoYzFNOZsLHFArLfpk+O8X8qXC7uvuawQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"brfs": "^1.2.0",
"unicode-trie": "^0.3.1"
@@ -14150,7 +13619,6 @@
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
"integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"whatwg-encoding": "^3.1.1"
},
@@ -14273,7 +13741,6 @@
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
"integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
- "license": "MIT",
"dependencies": {
"agent-base": "^7.1.0",
"debug": "^4.3.4"
@@ -14283,11 +13750,10 @@
}
},
"node_modules/http-proxy-agent/node_modules/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
+ "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 14"
}
@@ -14327,8 +13793,7 @@
"resolved": "https://registry.npmjs.org/hull.js/-/hull.js-0.2.10.tgz",
"integrity": "sha512-UO3W30HxhWgeSpNKCdXt00xkwjRTGmhQaoZNP8ll509Nl+DP9juXE3wRGizihuop08FSB4xtAWIbWSe+RxEoog==",
"deprecated": "This package is unmaintained and vulnerable. Do not use it.",
- "dev": true,
- "license": "BSD"
+ "dev": true
},
"node_modules/human-signals": {
"version": "2.1.0",
@@ -14396,7 +13861,6 @@
"resolved": "https://registry.npmjs.org/ify-loader/-/ify-loader-1.1.0.tgz",
"integrity": "sha512-EiyC45FRIs+z4g98+jBzuYCfoM6TKG9p7Ek5YZUeM7rucNucaMZIseRj/5Q3I4ypkZXyC2wnU1RcYrVmshe2xw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"bl": "^1.0.0",
"findup": "^0.1.5",
@@ -14428,7 +13892,6 @@
"resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz",
"integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -15405,11 +14868,10 @@
}
},
"node_modules/isomorphic-dompurify": {
- "version": "2.26.0",
- "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.26.0.tgz",
- "integrity": "sha512-nZmoK4wKdzPs5USq4JHBiimjdKSVAOm2T1KyDoadtMPNXYHxiENd19ou4iU/V4juFM6LVgYQnpxCYmxqNP4Obw==",
+ "version": "2.25.0",
+ "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.25.0.tgz",
+ "integrity": "sha512-bcpJzu9DOjN21qaCVpcoCwUX1ytpvA6EFqCK5RNtPg5+F0Jz9PX50jl6jbEicBNeO87eDDfC7XtPs4zjDClZJg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"dompurify": "^3.2.6",
"jsdom": "^26.1.0"
@@ -16864,7 +16326,6 @@
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz",
"integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"cssstyle": "^4.2.1",
"data-urls": "^5.0.0",
@@ -16900,11 +16361,10 @@
}
},
"node_modules/jsdom/node_modules/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
+ "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 14"
}
@@ -16914,7 +16374,6 @@
"resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
"integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
"dev": true,
- "license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
},
@@ -16927,7 +16386,6 @@
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
"integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"agent-base": "^7.1.2",
"debug": "4"
@@ -16941,7 +16399,6 @@
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
"integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"entities": "^6.0.0"
},
@@ -17254,7 +16711,6 @@
"resolved": "https://registry.npmjs.org/linebreak/-/linebreak-0.3.0.tgz",
"integrity": "sha512-zt8pzlM3oq4moDN8U5mP1SbZ44yKV6dXCu44Ez6iTXmxUl8/jRFWeho2SDqL5YDBv0TBKPgU/XGovZwnXAKlOQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"base64-js": "0.0.8",
"brfs": "^1.3.0",
@@ -17266,7 +16722,6 @@
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz",
"integrity": "sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 0.4"
}
@@ -17666,8 +17121,7 @@
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz",
"integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/loose-envify": {
"version": "1.4.0",
@@ -18504,7 +17958,6 @@
"resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.3.1.tgz",
"integrity": "sha512-ZUcepNdMeKBRn/ksm2XTxFnhBaqnBJSZNqwajmiem6b7Rp3fNAAq+twYn3kqw9YMY7HJuc7I7OObX9cMgB1ANg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"duplexer2": "^0.1.2"
}
@@ -19032,8 +18485,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
"integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
- "dev": true,
- "license": "ISC"
+ "dev": true
},
"node_modules/npm-run-path": {
"version": "4.0.1",
@@ -20054,7 +19506,6 @@
"resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz",
"integrity": "sha512-fuDHYgFHJGbpGMgw9skY/bj3HL/Jrn4l/5rSspy00DoT4RyLnDcRvPxdZ+r6OFwIsgAuhDh4I09tAId4mI12bw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"color-convert": "~0.5.0"
}
@@ -21894,7 +21345,6 @@
"integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==",
"deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.",
"dev": true,
- "license": "ISC",
"dependencies": {
"glob": "^7.1.1",
"json-parse-even-better-errors": "^2.3.0",
@@ -21908,7 +21358,6 @@
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"deprecated": "Glob versions prior to v9 are no longer supported",
"dev": true,
- "license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -22724,16 +22173,6 @@
"integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==",
"license": "MIT"
},
- "node_modules/resolve-pkg-maps": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
- "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
- }
- },
"node_modules/resolve-protobuf-schema": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz",
@@ -22961,8 +22400,7 @@
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
"integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/rst-selector-parser": {
"version": "2.2.3",
@@ -23293,9 +22731,9 @@
}
},
"node_modules/scratch-audio": {
- "version": "2.0.193",
- "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-2.0.193.tgz",
- "integrity": "sha512-V/XGDWlzCpHRfHie0Jr+Tw/VdU7x/HZZu1D+574cC/+E7TcntLl4AOFwM4CpLFKms06pD9pMJHUUrhJuvqZAcw==",
+ "version": "2.0.179",
+ "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-2.0.179.tgz",
+ "integrity": "sha512-OpanST4r6AQOeJJU9x0fwgRekPdTuUSRKGHrYB2djZ+OZN4m+48Pk4T9Mg4uLoXmB2rYKdlT3dgBYSr1MHWNnw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -23430,9 +22868,9 @@
}
},
"node_modules/scratch-paint": {
- "version": "3.0.335",
- "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-3.0.335.tgz",
- "integrity": "sha512-GIL1aiWI7GK6fXEgkjnnDEaZte9EJTewtQFJ5tVmh86Mlt01LsbzL9Oq29BlIThkvfl8eE6p7ggW0/MYLp4whw==",
+ "version": "3.0.314",
+ "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-3.0.314.tgz",
+ "integrity": "sha512-bTEDUddeA7iyB6uhtkLKlZDOGKo7m9fHcZh9cN2wc57kPJ4lLoCNsajGLHlvPmSDrnQNLJwu4ZT62i9nBw0LCA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -23464,22 +22902,19 @@
"resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
"integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==",
"deprecated": "This package is deprecated. Use destructuring assignment syntax instead.",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/scratch-paint/node_modules/microee": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/microee/-/microee-0.0.6.tgz",
"integrity": "sha512-/LdL3jiBWDJ3oQIRLgRhfeCZNE3patM1LiwCC124+/HHn10sI/G2OAyiMfTNzH5oYWoZBk0tRZADAUOv+0Wt0A==",
- "dev": true,
- "license": "BSD"
+ "dev": true
},
"node_modules/scratch-paint/node_modules/minilog": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/minilog/-/minilog-3.1.0.tgz",
"integrity": "sha512-Xfm4jWjWzSAduvEWtuZX/8TMkxfJlCfH7XvikCZe3ptojYTBq1eoEs3rh9/3LNLOckUP86m+8l8+Iw5NU/pBww==",
"dev": true,
- "license": "MIT",
"dependencies": {
"microee": "0.0.6"
}
@@ -23499,18 +22934,18 @@
}
},
"node_modules/scratch-render-fonts": {
- "version": "1.0.216",
- "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.216.tgz",
- "integrity": "sha512-FaoXSGyqMxvDsD7XnROkhtiI54F9YlxgD2Y11C38LY2ujLLt3Ra3tsmlh/j8ZABvepLyLsWhTZDQdY4U0+19Bg==",
+ "version": "1.0.209",
+ "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.209.tgz",
+ "integrity": "sha512-twrPr+4G8/Xn0vlJICr/9sNGTUOx6XL/RFlrmsnD5l9IXpMCAIkU+1rjhJnHdR16TKSwAwtLVrFEAvG+Orr+nA==",
"dev": true,
"dependencies": {
"base64-loader": "^1.0.0"
}
},
"node_modules/scratch-sb1-converter": {
- "version": "2.0.193",
- "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-2.0.193.tgz",
- "integrity": "sha512-no+a+ehrRbNQA8Sp7ZvG4pVt68audfpzJsfdpK1dwcuy+1uXBMBw3HMoU+EQ6cpRxsJCgBygBjE4EQaFkTTFiw==",
+ "version": "2.0.177",
+ "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-2.0.177.tgz",
+ "integrity": "sha512-eGUdqM7lk266E74sDynN4alUOxmtP3OmqSesiQCT2CLAKv1XgxXgWvqmCNiyZ/1oA47yca0niKsWhp9lWBOy4A==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -23537,9 +22972,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.193",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.193.tgz",
- "integrity": "sha512-t9/i9FLWR6EbGNnNMc7YAF/8OBODk3Ev/81bctuxBrpKT/xUV67NrWn8ngsLs5OuoRWfcxUYJOoQATrJh7DuyA==",
+ "version": "4.0.182",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.182.tgz",
+ "integrity": "sha512-4bbgQKbR/dQ5D+/26zj+gyRL9J0vFKvqkNjhIEtnVNttS4pt3iyG4NFWd/KoQY2sREBtNrlMyw+6KckE3bzHjw==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
@@ -23571,8 +23006,7 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/scratch-translate-extension-languages/-/scratch-translate-extension-languages-1.0.7.tgz",
"integrity": "sha512-6+bQU9iVYv23T8J0SjpV6MTugm0y8myh/4DPgu1BGfccysdkaWzu3MkNGQyQRUlbqAiW9wM7ctfv3USPEkzTgg==",
- "dev": true,
- "license": "BSD-3-Clause"
+ "dev": true
},
"node_modules/screenfull": {
"version": "5.2.0",
@@ -24624,8 +24058,7 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/startaudiocontext/-/startaudiocontext-1.2.1.tgz",
"integrity": "sha512-ooOQhOAoCwzMIRwWd9j7xF8kAMo1Wv7Zfw+q6dWDW5gxJUKx15HJXWDg89GMDqfdle9xsqPv+uioneX+bI643g==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/static-eval": {
"version": "2.1.1",
@@ -27393,8 +26826,7 @@
"resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz",
"integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==",
"deprecated": "no longer maintained",
- "dev": true,
- "license": "(Unlicense OR Apache-2.0)"
+ "dev": true
},
"node_modules/text-table": {
"version": "0.2.0",
@@ -27484,8 +26916,7 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
"integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/tiny-invariant": {
"version": "1.3.3",
@@ -27525,7 +26956,6 @@
"resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz",
"integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"tldts-core": "^6.1.86"
},
@@ -27537,8 +26967,7 @@
"version": "6.1.86",
"resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz",
"integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/tmp": {
"version": "0.2.3",
@@ -27661,7 +27090,6 @@
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
"integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"tldts": "^6.1.32"
},
@@ -27674,7 +27102,6 @@
"resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
"integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"punycode": "^2.3.1"
},
@@ -27686,8 +27113,7 @@
"version": "1.15.3",
"resolved": "https://registry.npmjs.org/transformation-matrix/-/transformation-matrix-1.15.3.tgz",
"integrity": "sha512-ThJH58GNFKhCw3gIoOtwf3tNwuYjbyEeiGdeq4mNMYWdJctnI896KUqn6PVt7jmNVepqa1bcKQtnMB1HtjsDMA==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/transifex": {
"version": "1.6.6",
@@ -27912,26 +27338,6 @@
"dev": true,
"license": "0BSD"
},
- "node_modules/tsx": {
- "version": "4.20.3",
- "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.20.3.tgz",
- "integrity": "sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "esbuild": "~0.25.0",
- "get-tsconfig": "^4.7.5"
- },
- "bin": {
- "tsx": "dist/cli.mjs"
- },
- "engines": {
- "node": ">=18.0.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- }
- },
"node_modules/tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
@@ -27974,8 +27380,7 @@
"version": "4.24.0",
"resolved": "https://registry.npmjs.org/twgl.js/-/twgl.js-4.24.0.tgz",
"integrity": "sha512-JGVTxuV9dqaBmajXyvuZIlhCHrTbIaoNjQvtdoLHyK74OtbmNwZUj6rfdp+pz9htitI/tVxiVQ2nuw+KmD29vg==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/two-product": {
"version": "1.0.2",
@@ -28383,7 +27788,6 @@
"resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz",
"integrity": "sha512-WgVuO0M2jDl7hVfbPgXv2LUrD81HM0bQj/bvLGiw6fJ4Zo8nNFnDrA0/hU2Te/wz6pjxCm5cxJwtLjo2eyV51Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"pako": "^0.2.5",
"tiny-inflate": "^1.0.0"
@@ -28795,7 +28199,6 @@
"resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
"integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"xml-name-validator": "^5.0.0"
},
@@ -28861,8 +28264,7 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.3.0.tgz",
"integrity": "sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==",
- "dev": true,
- "license": "Apache-2.0"
+ "dev": true
},
"node_modules/webgl-context": {
"version": "2.2.0",
@@ -29233,7 +28635,6 @@
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
"integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"iconv-lite": "0.6.3"
},
@@ -29246,7 +28647,6 @@
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
},
@@ -29266,7 +28666,6 @@
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
"integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=18"
}
@@ -29276,7 +28675,6 @@
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
"integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"tr46": "^5.1.0",
"webidl-conversions": "^7.0.0"
@@ -29535,7 +28933,6 @@
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
"integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": ">=18"
}
diff --git a/package.json b/package.json
index a90247fb36f..7f2d94e02f6 100644
--- a/package.json
+++ b/package.json
@@ -74,7 +74,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.4.0",
+ "@scratch/scratch-gui": "11.3.0",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
From a74537d89d384ff795973d87c89874f6ebd93532 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 22 Jul 2025 13:22:31 +0000
Subject: [PATCH 054/129] fix(deps): lock file maintenance
---
package-lock.json | 636 ++++++++++++++++++++++++----------------------
1 file changed, 329 insertions(+), 307 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index e7aeedc060c..2aef5f7cd11 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1639,9 +1639,9 @@
}
},
"node_modules/@babel/plugin-transform-react-display-name": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz",
- "integrity": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==",
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz",
+ "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1708,9 +1708,9 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.0.tgz",
- "integrity": "sha512-LOAozRVbqxEVjSKfhGnuLoE4Kz4Oc5UJzuvFUhSsQzdCdaAQu06mG8zDv2GFSerM62nImUZ7K92vxnQcLSDlCQ==",
+ "version": "7.28.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.1.tgz",
+ "integrity": "sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2069,9 +2069,9 @@
}
},
"node_modules/@babel/types": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz",
- "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==",
+ "version": "7.28.1",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz",
+ "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2242,9 +2242,9 @@
}
},
"node_modules/@esbuild/aix-ppc64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.6.tgz",
- "integrity": "sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz",
+ "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==",
"cpu": [
"ppc64"
],
@@ -2259,9 +2259,9 @@
}
},
"node_modules/@esbuild/android-arm": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.6.tgz",
- "integrity": "sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz",
+ "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==",
"cpu": [
"arm"
],
@@ -2276,9 +2276,9 @@
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.6.tgz",
- "integrity": "sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz",
+ "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==",
"cpu": [
"arm64"
],
@@ -2293,9 +2293,9 @@
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.6.tgz",
- "integrity": "sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz",
+ "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==",
"cpu": [
"x64"
],
@@ -2310,9 +2310,9 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.6.tgz",
- "integrity": "sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz",
+ "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==",
"cpu": [
"arm64"
],
@@ -2327,9 +2327,9 @@
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.6.tgz",
- "integrity": "sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz",
+ "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==",
"cpu": [
"x64"
],
@@ -2344,9 +2344,9 @@
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.6.tgz",
- "integrity": "sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz",
+ "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==",
"cpu": [
"arm64"
],
@@ -2361,9 +2361,9 @@
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.6.tgz",
- "integrity": "sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz",
+ "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==",
"cpu": [
"x64"
],
@@ -2378,9 +2378,9 @@
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.6.tgz",
- "integrity": "sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz",
+ "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==",
"cpu": [
"arm"
],
@@ -2395,9 +2395,9 @@
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.6.tgz",
- "integrity": "sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz",
+ "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==",
"cpu": [
"arm64"
],
@@ -2412,9 +2412,9 @@
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.6.tgz",
- "integrity": "sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz",
+ "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==",
"cpu": [
"ia32"
],
@@ -2429,9 +2429,9 @@
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.6.tgz",
- "integrity": "sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz",
+ "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==",
"cpu": [
"loong64"
],
@@ -2446,9 +2446,9 @@
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.6.tgz",
- "integrity": "sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz",
+ "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==",
"cpu": [
"mips64el"
],
@@ -2463,9 +2463,9 @@
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.6.tgz",
- "integrity": "sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz",
+ "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==",
"cpu": [
"ppc64"
],
@@ -2480,9 +2480,9 @@
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.6.tgz",
- "integrity": "sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz",
+ "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==",
"cpu": [
"riscv64"
],
@@ -2497,9 +2497,9 @@
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.6.tgz",
- "integrity": "sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz",
+ "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==",
"cpu": [
"s390x"
],
@@ -2514,9 +2514,9 @@
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.6.tgz",
- "integrity": "sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz",
+ "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==",
"cpu": [
"x64"
],
@@ -2531,9 +2531,9 @@
}
},
"node_modules/@esbuild/netbsd-arm64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.6.tgz",
- "integrity": "sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz",
+ "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==",
"cpu": [
"arm64"
],
@@ -2548,9 +2548,9 @@
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.6.tgz",
- "integrity": "sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz",
+ "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==",
"cpu": [
"x64"
],
@@ -2565,9 +2565,9 @@
}
},
"node_modules/@esbuild/openbsd-arm64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.6.tgz",
- "integrity": "sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz",
+ "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==",
"cpu": [
"arm64"
],
@@ -2582,9 +2582,9 @@
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.6.tgz",
- "integrity": "sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz",
+ "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==",
"cpu": [
"x64"
],
@@ -2599,9 +2599,9 @@
}
},
"node_modules/@esbuild/openharmony-arm64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.6.tgz",
- "integrity": "sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz",
+ "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==",
"cpu": [
"arm64"
],
@@ -2616,9 +2616,9 @@
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.6.tgz",
- "integrity": "sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz",
+ "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==",
"cpu": [
"x64"
],
@@ -2633,9 +2633,9 @@
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.6.tgz",
- "integrity": "sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz",
+ "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==",
"cpu": [
"arm64"
],
@@ -2650,9 +2650,9 @@
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.6.tgz",
- "integrity": "sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz",
+ "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==",
"cpu": [
"ia32"
],
@@ -2667,9 +2667,9 @@
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.6.tgz",
- "integrity": "sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz",
+ "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==",
"cpu": [
"x64"
],
@@ -2749,35 +2749,6 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/@eslint/js": {
"version": "8.57.1",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
@@ -3681,9 +3652,9 @@
}
},
"node_modules/@jridgewell/source-map": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
- "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
+ "version": "0.3.10",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.10.tgz",
+ "integrity": "sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3692,9 +3663,9 @@
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz",
+ "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==",
"license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
@@ -4333,6 +4304,7 @@
"resolved": "https://registry.npmjs.org/@scratch/paper/-/paper-0.11.20221201200345.tgz",
"integrity": "sha512-I3BZNrHeaQJt2H6TD7HGsuBKJPDDF/BIDOaRvnN7Gj/QBRvpSaRK8JAmzcrRHZ+AqNtKrG50eOkS/acMjTw3rw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.0.0"
}
@@ -4793,6 +4765,7 @@
"resolved": "https://registry.npmjs.org/@transifex/api/-/api-7.1.4.tgz",
"integrity": "sha512-oRWw10V+YPFl1WJuORcQHcjtvqd70lFXxpmXQ/yUn3KE7cLtBMkFeC+2kULw3Rk17hD6EEO2HQLkvpR7NY/Zsw==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"core-js": "^3.35.0"
},
@@ -4801,11 +4774,12 @@
}
},
"node_modules/@transifex/api/node_modules/core-js": {
- "version": "3.43.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.43.0.tgz",
- "integrity": "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA==",
+ "version": "3.44.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.44.0.tgz",
+ "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
@@ -4896,14 +4870,16 @@
}
},
"node_modules/@types/hoist-non-react-statics": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz",
- "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.7.tgz",
+ "integrity": "sha512-PQTyIulDkIDro8P+IHbKCsw7U2xxBYflVzW/FgWdCAePD9xGSidgA76/GeJ6lBKoblyhf9pBY763gbrN+1dI8g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@types/react": "*",
"hoist-non-react-statics": "^3.3.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*"
}
},
"node_modules/@types/html-minifier-terser": {
@@ -5003,9 +4979,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "24.0.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.3.tgz",
- "integrity": "sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz",
+ "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5265,7 +5241,8 @@
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@vernier/godirect/-/godirect-1.8.3.tgz",
"integrity": "sha512-poS0LZ3jAjH36gIAI0aNBBdsGGbmt11VFbLO+eGDJ/JDSPtMu1iUStvOi0UM/ZH6Jyh34SjVd8Cnxu/Wmcb8iQ==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/@webassemblyjs/ast": {
"version": "1.14.1",
@@ -5590,9 +5567,9 @@
}
},
"node_modules/acorn-import-phases": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.3.tgz",
- "integrity": "sha512-jtKLnfoOzm28PazuQ4dVBcE9Jeo6ha1GAJvq3N0LlNOszmTfx+wSycBehn+FN0RnyeR77IBxN/qVYMw0Rlj0Xw==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz",
+ "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5840,6 +5817,19 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/ansi-escapes/node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
@@ -5901,9 +5891,9 @@
}
},
"node_modules/aproba": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
- "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.1.0.tgz",
+ "integrity": "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==",
"dev": true,
"license": "ISC"
},
@@ -6273,6 +6263,7 @@
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
"dev": true,
+ "license": "(MIT OR Apache-2.0)",
"bin": {
"atob": "bin/atob.js"
},
@@ -6664,7 +6655,8 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/base64-loader/-/base64-loader-1.0.0.tgz",
"integrity": "sha512-p32+F8dg+ANGx7s8QsZS74ZPHfIycmC2yZcoerzFgbersIYWitPbbF39G6SBx3gyvzyLH5nt1ooocxr0IHuWKA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/bcrypt-pbkdf": {
"version": "1.0.2",
@@ -6929,9 +6921,9 @@
"license": "ISC"
},
"node_modules/browserslist": {
- "version": "4.25.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz",
- "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==",
+ "version": "4.25.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz",
+ "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==",
"dev": true,
"funding": [
{
@@ -6949,8 +6941,8 @@
],
"license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001718",
- "electron-to-chromium": "^1.5.160",
+ "caniuse-lite": "^1.0.30001726",
+ "electron-to-chromium": "^1.5.173",
"node-releases": "^2.0.19",
"update-browserslist-db": "^1.1.3"
},
@@ -6976,6 +6968,7 @@
"resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz",
"integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==",
"dev": true,
+ "license": "(MIT OR Apache-2.0)",
"bin": {
"btoa": "bin/btoa.js"
},
@@ -7502,9 +7495,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001724",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001724.tgz",
- "integrity": "sha512-WqJo7p0TbHDOythNTqYujmaJTvtYRZrjpP8TCvH6Vb9CYJerJNKamKzIWOM4BkQatWj9H2lYulpdAQNBe7QhNA==",
+ "version": "1.0.30001727",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz",
+ "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==",
"dev": true,
"funding": [
{
@@ -7552,7 +7545,8 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/canvas-toBlob/-/canvas-toBlob-1.0.0.tgz",
"integrity": "sha512-oU5bawygt/Nef9F+C49eTFmzXzz6yKdGqn6J1wn/LZQF5ulnnZVm0KIZzik85I6tjCbZFH6aa47j4bU2tkHxRw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/cardinal": {
"version": "0.4.4",
@@ -7880,6 +7874,16 @@
"mimic-response": "^1.0.0"
}
},
+ "node_modules/clone-response/node_modules/mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/clsx": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
@@ -8308,13 +8312,13 @@
"license": "MIT"
},
"node_modules/core-js-compat": {
- "version": "3.43.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz",
- "integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==",
+ "version": "3.44.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.44.0.tgz",
+ "integrity": "sha512-JepmAj2zfl6ogy34qfWtcE7nHKAJnKsQFRn++scjVS2bZFllwptzw61BZcZFYBPpUznLfAvh0LGhxKppk04ClA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.25.0"
+ "browserslist": "^4.25.1"
},
"funding": {
"type": "opencollective",
@@ -9363,9 +9367,9 @@
}
},
"node_modules/decimal.js": {
- "version": "10.5.0",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz",
- "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==",
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
+ "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
"dev": true,
"license": "MIT"
},
@@ -9373,7 +9377,8 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/decode-html/-/decode-html-2.0.0.tgz",
"integrity": "sha512-lVJ+EBozhAXA2nSQG+xAgcD0P5K3uejnIIvM09uoQfS8AALkQ+HhHcEUvKovXi0EIpIZWjm0y8X7ULjaJpgY9w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/decode-uri-component": {
"version": "0.4.1",
@@ -9406,16 +9411,16 @@
}
},
"node_modules/decompress-response": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
+ "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "mimic-response": "^1.0.0"
+ "mimic-response": "^2.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
"node_modules/decompress-tar": {
@@ -9808,7 +9813,8 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz",
"integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==",
- "dev": true
+ "dev": true,
+ "license": "Apache-2.0"
},
"node_modules/diff-sequences": {
"version": "29.6.3",
@@ -10210,9 +10216,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.171",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.171.tgz",
- "integrity": "sha512-scWpzXEJEMrGJa4Y6m/tVotb0WuvNmasv3wWVzUAeCgKU0ToFOhUW6Z+xWnRQANMYGxN4ngJXIThgBJOqzVPCQ==",
+ "version": "1.5.189",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.189.tgz",
+ "integrity": "sha512-y9D1ntS1ruO/pZ/V2FtLE+JXLQe28XoRpZ7QCCo0T8LdQladzdcOVQZH/IWLVJvCw12OGMb6hYOeOAjntCmJRQ==",
"dev": true,
"license": "ISC"
},
@@ -10325,9 +10331,9 @@
}
},
"node_modules/enhanced-resolve": {
- "version": "5.18.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
- "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
+ "version": "5.18.2",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz",
+ "integrity": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10747,9 +10753,9 @@
}
},
"node_modules/esbuild": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.6.tgz",
- "integrity": "sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==",
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz",
+ "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -10760,32 +10766,32 @@
"node": ">=18"
},
"optionalDependencies": {
- "@esbuild/aix-ppc64": "0.25.6",
- "@esbuild/android-arm": "0.25.6",
- "@esbuild/android-arm64": "0.25.6",
- "@esbuild/android-x64": "0.25.6",
- "@esbuild/darwin-arm64": "0.25.6",
- "@esbuild/darwin-x64": "0.25.6",
- "@esbuild/freebsd-arm64": "0.25.6",
- "@esbuild/freebsd-x64": "0.25.6",
- "@esbuild/linux-arm": "0.25.6",
- "@esbuild/linux-arm64": "0.25.6",
- "@esbuild/linux-ia32": "0.25.6",
- "@esbuild/linux-loong64": "0.25.6",
- "@esbuild/linux-mips64el": "0.25.6",
- "@esbuild/linux-ppc64": "0.25.6",
- "@esbuild/linux-riscv64": "0.25.6",
- "@esbuild/linux-s390x": "0.25.6",
- "@esbuild/linux-x64": "0.25.6",
- "@esbuild/netbsd-arm64": "0.25.6",
- "@esbuild/netbsd-x64": "0.25.6",
- "@esbuild/openbsd-arm64": "0.25.6",
- "@esbuild/openbsd-x64": "0.25.6",
- "@esbuild/openharmony-arm64": "0.25.6",
- "@esbuild/sunos-x64": "0.25.6",
- "@esbuild/win32-arm64": "0.25.6",
- "@esbuild/win32-ia32": "0.25.6",
- "@esbuild/win32-x64": "0.25.6"
+ "@esbuild/aix-ppc64": "0.25.8",
+ "@esbuild/android-arm": "0.25.8",
+ "@esbuild/android-arm64": "0.25.8",
+ "@esbuild/android-x64": "0.25.8",
+ "@esbuild/darwin-arm64": "0.25.8",
+ "@esbuild/darwin-x64": "0.25.8",
+ "@esbuild/freebsd-arm64": "0.25.8",
+ "@esbuild/freebsd-x64": "0.25.8",
+ "@esbuild/linux-arm": "0.25.8",
+ "@esbuild/linux-arm64": "0.25.8",
+ "@esbuild/linux-ia32": "0.25.8",
+ "@esbuild/linux-loong64": "0.25.8",
+ "@esbuild/linux-mips64el": "0.25.8",
+ "@esbuild/linux-ppc64": "0.25.8",
+ "@esbuild/linux-riscv64": "0.25.8",
+ "@esbuild/linux-s390x": "0.25.8",
+ "@esbuild/linux-x64": "0.25.8",
+ "@esbuild/netbsd-arm64": "0.25.8",
+ "@esbuild/netbsd-x64": "0.25.8",
+ "@esbuild/openbsd-arm64": "0.25.8",
+ "@esbuild/openbsd-x64": "0.25.8",
+ "@esbuild/openharmony-arm64": "0.25.8",
+ "@esbuild/sunos-x64": "0.25.8",
+ "@esbuild/win32-arm64": "0.25.8",
+ "@esbuild/win32-ia32": "0.25.8",
+ "@esbuild/win32-x64": "0.25.8"
}
},
"node_modules/escalade": {
@@ -11118,35 +11124,6 @@
"node": ">=10.13.0"
}
},
- "node_modules/eslint/node_modules/globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/esm": {
"version": "3.2.25",
"resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
@@ -12070,13 +12047,13 @@
}
},
"node_modules/flow-remove-types": {
- "version": "2.273.1",
- "resolved": "https://registry.npmjs.org/flow-remove-types/-/flow-remove-types-2.273.1.tgz",
- "integrity": "sha512-OsiyA6URBPkG0Ns5DYH556uFtTFfyQ9kg4PfMi8l5DfSieHAtxKnlCgZFPu0lC+37sWkQtnyVCYTFbQcHxOwZg==",
+ "version": "2.276.0",
+ "resolved": "https://registry.npmjs.org/flow-remove-types/-/flow-remove-types-2.276.0.tgz",
+ "integrity": "sha512-8OQocuUOEGFP08J3ItfF5w9exWfmrdR1oAiBjPeAEQenDuFTSMb9M+IZU/qIoEiz+fekUqwQbzx7IDJWWE2Lfg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "hermes-parser": "0.28.0",
+ "hermes-parser": "0.29.1",
"pirates": "^3.0.2",
"vlq": "^0.2.1"
},
@@ -12237,6 +12214,7 @@
"resolved": "https://registry.npmjs.org/format-message/-/format-message-6.2.4.tgz",
"integrity": "sha512-/24zYeSRy2ZlEO2OIctm7jOHvMpoWf+uhqFCaqqyZKi1C229zAAy2E5vF4lSSaMH0a2kewPrOzq6xN4Yy7cQrw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"format-message-formats": "^6.2.4",
"format-message-interpret": "^6.2.4",
@@ -12248,13 +12226,15 @@
"version": "6.2.4",
"resolved": "https://registry.npmjs.org/format-message-formats/-/format-message-formats-6.2.4.tgz",
"integrity": "sha512-smT/fAqBLqusWfWCKRAx6QBDAAbmYznWsIyTyk66COmvwt2Byiqd7SJe2ma9a5oV0kwRaOJpN/F4lr4YK/n6qQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/format-message-interpret": {
"version": "6.2.4",
"resolved": "https://registry.npmjs.org/format-message-interpret/-/format-message-interpret-6.2.4.tgz",
"integrity": "sha512-dRvz9mXhITApyOtfuFEb/XqvCe1u6RMkQW49UJHXS8w2S8cAHCqq5LNDFK+QK6XVzcofROycLb/k1uybTAKt2w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"format-message-formats": "^6.2.4",
"lookup-closest-locale": "^6.2.0"
@@ -12264,7 +12244,8 @@
"version": "6.2.4",
"resolved": "https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.2.4.tgz",
"integrity": "sha512-k7WqXkEzgXkW4wkHdS6Cv2Ou0rIFtiDelZjgoe1saW4p7FT7zS8OeAUpAekhormqzpeecR97e4vBft1zMsfFOQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/formik": {
"version": "1.5.8",
@@ -12372,6 +12353,7 @@
"resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz",
"integrity": "sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"from2": "^2.0.3"
}
@@ -12459,9 +12441,9 @@
}
},
"node_modules/fs-monkey": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz",
- "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz",
+ "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==",
"dev": true,
"license": "Unlicense"
},
@@ -13287,6 +13269,22 @@
"process": "^0.11.10"
}
},
+ "node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/globalthis": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
@@ -13707,6 +13705,19 @@
"node": ">=4"
}
},
+ "node_modules/got/node_modules/decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/got/node_modules/get-stream": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
@@ -13717,6 +13728,16 @@
"node": ">=4"
}
},
+ "node_modules/got/node_modules/mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/got/node_modules/pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
@@ -13739,6 +13760,7 @@
"resolved": "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz",
"integrity": "sha512-mB6rwkw1Z7z4z2RkFFTd/+q6Ug1gnCgjKAervAKgBeNI1mSr8E5EUWoYzFNOZsLHFArLfpk+O8X8qXC7uvuawQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"brfs": "^1.2.0",
"unicode-trie": "^0.3.1"
@@ -14059,20 +14081,20 @@
}
},
"node_modules/hermes-estree": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.28.0.tgz",
- "integrity": "sha512-M5IFfnP4RCA2/Hv7VTIlZ1FV4qW33gresbv0SDaSBS/6lax23oV2sg4iE0fhYnpMeQL7Inob+jAeO+mV2T3bKA==",
+ "version": "0.29.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz",
+ "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==",
"dev": true,
"license": "MIT"
},
"node_modules/hermes-parser": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.28.0.tgz",
- "integrity": "sha512-PPtmoqyz4vv5SqVCYuvJLPKZt+SqCMviICVEygi6jHyfAvDd0cQTV2MfikDd8YXPOszR/9QvauWcGyluxej+rg==",
+ "version": "0.29.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz",
+ "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "hermes-estree": "0.28.0"
+ "hermes-estree": "0.29.1"
}
},
"node_modules/history": {
@@ -14301,7 +14323,8 @@
"resolved": "https://registry.npmjs.org/hull.js/-/hull.js-0.2.10.tgz",
"integrity": "sha512-UO3W30HxhWgeSpNKCdXt00xkwjRTGmhQaoZNP8ll509Nl+DP9juXE3wRGizihuop08FSB4xtAWIbWSe+RxEoog==",
"deprecated": "This package is unmaintained and vulnerable. Do not use it.",
- "dev": true
+ "dev": true,
+ "license": "BSD"
},
"node_modules/human-signals": {
"version": "2.1.0",
@@ -14369,6 +14392,7 @@
"resolved": "https://registry.npmjs.org/ify-loader/-/ify-loader-1.1.0.tgz",
"integrity": "sha512-EiyC45FRIs+z4g98+jBzuYCfoM6TKG9p7Ek5YZUeM7rucNucaMZIseRj/5Q3I4ypkZXyC2wnU1RcYrVmshe2xw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"bl": "^1.0.0",
"findup": "^0.1.5",
@@ -14400,6 +14424,7 @@
"resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz",
"integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -16083,9 +16108,9 @@
}
},
"node_modules/jest-environment-jsdom/node_modules/form-data": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz",
- "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+ "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -17225,6 +17250,7 @@
"resolved": "https://registry.npmjs.org/linebreak/-/linebreak-0.3.0.tgz",
"integrity": "sha512-zt8pzlM3oq4moDN8U5mP1SbZ44yKV6dXCu44Ez6iTXmxUl8/jRFWeho2SDqL5YDBv0TBKPgU/XGovZwnXAKlOQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"base64-js": "0.0.8",
"brfs": "^1.3.0",
@@ -17236,6 +17262,7 @@
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz",
"integrity": "sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
}
@@ -17635,7 +17662,8 @@
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz",
"integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/loose-envify": {
"version": "1.4.0",
@@ -18029,13 +18057,16 @@
}
},
"node_modules/mimic-response": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
+ "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/min-document": {
@@ -18472,6 +18503,7 @@
"resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.3.1.tgz",
"integrity": "sha512-ZUcepNdMeKBRn/ksm2XTxFnhBaqnBJSZNqwajmiem6b7Rp3fNAAq+twYn3kqw9YMY7HJuc7I7OObX9cMgB1ANg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"duplexer2": "^0.1.2"
}
@@ -18544,9 +18576,9 @@
}
},
"node_modules/nan": {
- "version": "2.22.2",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz",
- "integrity": "sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==",
+ "version": "2.23.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.23.0.tgz",
+ "integrity": "sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==",
"devOptional": true,
"license": "MIT"
},
@@ -18999,7 +19031,8 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
"integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/npm-run-path": {
"version": "4.0.1",
@@ -19982,7 +20015,8 @@
"version": "5.5.3",
"resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.3.tgz",
"integrity": "sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/param-case": {
"version": "3.0.4",
@@ -20020,6 +20054,7 @@
"resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz",
"integrity": "sha512-fuDHYgFHJGbpGMgw9skY/bj3HL/Jrn4l/5rSspy00DoT4RyLnDcRvPxdZ+r6OFwIsgAuhDh4I09tAId4mI12bw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "~0.5.0"
}
@@ -21859,6 +21894,7 @@
"integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==",
"deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.",
"dev": true,
+ "license": "ISC",
"dependencies": {
"glob": "^7.1.1",
"json-parse-even-better-errors": "^2.3.0",
@@ -21872,6 +21908,7 @@
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"deprecated": "Glob versions prior to v9 are no longer supported",
"dev": true,
+ "license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -22397,9 +22434,9 @@
}
},
"node_modules/renderkid/node_modules/css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz",
+ "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
@@ -23311,9 +23348,9 @@
}
},
"node_modules/scratch-blocks/node_modules/core-js": {
- "version": "3.43.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.43.0.tgz",
- "integrity": "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA==",
+ "version": "3.44.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.44.0.tgz",
+ "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -23470,19 +23507,22 @@
"resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
"integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==",
"deprecated": "This package is deprecated. Use destructuring assignment syntax instead.",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/scratch-paint/node_modules/microee": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/microee/-/microee-0.0.6.tgz",
"integrity": "sha512-/LdL3jiBWDJ3oQIRLgRhfeCZNE3patM1LiwCC124+/HHn10sI/G2OAyiMfTNzH5oYWoZBk0tRZADAUOv+0Wt0A==",
- "dev": true
+ "dev": true,
+ "license": "BSD"
},
"node_modules/scratch-paint/node_modules/minilog": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/minilog/-/minilog-3.1.0.tgz",
"integrity": "sha512-Xfm4jWjWzSAduvEWtuZX/8TMkxfJlCfH7XvikCZe3ptojYTBq1eoEs3rh9/3LNLOckUP86m+8l8+Iw5NU/pBww==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"microee": "0.0.6"
}
@@ -23574,7 +23614,8 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/scratch-translate-extension-languages/-/scratch-translate-extension-languages-1.0.7.tgz",
"integrity": "sha512-6+bQU9iVYv23T8J0SjpV6MTugm0y8myh/4DPgu1BGfccysdkaWzu3MkNGQyQRUlbqAiW9wM7ctfv3USPEkzTgg==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/screenfull": {
"version": "5.2.0",
@@ -24074,32 +24115,6 @@
"simple-concat": "^1.0.0"
}
},
- "node_modules/simple-get/node_modules/decompress-response": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
- "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mimic-response": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/simple-get/node_modules/mimic-response": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
- "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/simplicial-complex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/simplicial-complex/-/simplicial-complex-1.0.0.tgz",
@@ -24626,7 +24641,8 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/startaudiocontext/-/startaudiocontext-1.2.1.tgz",
"integrity": "sha512-ooOQhOAoCwzMIRwWd9j7xF8kAMo1Wv7Zfw+q6dWDW5gxJUKx15HJXWDg89GMDqfdle9xsqPv+uioneX+bI643g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/static-eval": {
"version": "2.1.1",
@@ -27394,7 +27410,8 @@
"resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz",
"integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==",
"deprecated": "no longer maintained",
- "dev": true
+ "dev": true,
+ "license": "(Unlicense OR Apache-2.0)"
},
"node_modules/text-table": {
"version": "0.2.0",
@@ -27484,7 +27501,8 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
"integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/tiny-invariant": {
"version": "1.3.3",
@@ -27685,7 +27703,8 @@
"version": "1.15.3",
"resolved": "https://registry.npmjs.org/transformation-matrix/-/transformation-matrix-1.15.3.tgz",
"integrity": "sha512-ThJH58GNFKhCw3gIoOtwf3tNwuYjbyEeiGdeq4mNMYWdJctnI896KUqn6PVt7jmNVepqa1bcKQtnMB1HtjsDMA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/transifex": {
"version": "1.6.6",
@@ -27972,7 +27991,8 @@
"version": "4.24.0",
"resolved": "https://registry.npmjs.org/twgl.js/-/twgl.js-4.24.0.tgz",
"integrity": "sha512-JGVTxuV9dqaBmajXyvuZIlhCHrTbIaoNjQvtdoLHyK74OtbmNwZUj6rfdp+pz9htitI/tVxiVQ2nuw+KmD29vg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/two-product": {
"version": "1.0.2",
@@ -28019,9 +28039,9 @@
}
},
"node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true,
"license": "(MIT OR CC0-1.0)",
"engines": {
@@ -28380,6 +28400,7 @@
"resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz",
"integrity": "sha512-WgVuO0M2jDl7hVfbPgXv2LUrD81HM0bQj/bvLGiw6fJ4Zo8nNFnDrA0/hU2Te/wz6pjxCm5cxJwtLjo2eyV51Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"pako": "^0.2.5",
"tiny-inflate": "^1.0.0"
@@ -28857,7 +28878,8 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.3.0.tgz",
"integrity": "sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==",
- "dev": true
+ "dev": true,
+ "license": "Apache-2.0"
},
"node_modules/webgl-context": {
"version": "2.2.0",
@@ -29436,9 +29458,9 @@
}
},
"node_modules/world-calendars": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz",
- "integrity": "sha512-sAjLZkBnsbHkHWVhrsCU5Sa/EVuf9QqgvrN8zyJ2L/F9FR9Oc6CvVK0674+PGAtmmmYQMH98tCUSO4QLQv3/TQ==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.4.tgz",
+ "integrity": "sha512-VGRnLJS+xJmGDPodgJRnGIDwGu0s+Cr9V2HB3EzlDZ5n0qb8h5SJtGUEkjrphZYAglEiXZ6kiXdmk0H/h/uu/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -29485,9 +29507,9 @@
}
},
"node_modules/ws": {
- "version": "8.18.2",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz",
- "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==",
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
"dev": true,
"license": "MIT",
"engines": {
From 89a2b585e43fa303bb809e13d8fe81d6febb90ba Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 23 Jul 2025 06:15:58 +0000
Subject: [PATCH 055/129] fix(deps): update dependency scratch-l10n to v6.0.8
---
package-lock.json | 67 ++++++++++++++++++++++++++++++++++++++++++++---
package.json | 2 +-
2 files changed, 64 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 2aef5f7cd11..2a7133d494f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.7",
+ "scratch-l10n": "6.0.8",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -4431,6 +4431,28 @@
"node": ">=0.10"
}
},
+ "node_modules/@scratch/scratch-gui/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/@scratch/scratch-gui/node_modules/intl-messageformat": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz",
@@ -4476,6 +4498,22 @@
"microee": "0.0.6"
}
},
+ "node_modules/@scratch/scratch-gui/node_modules/mkdirp": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
+ "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mkdirp": "dist/cjs/src/bin.js"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/@scratch/scratch-gui/node_modules/picocolors": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
@@ -4552,6 +4590,27 @@
"react": "^16.0.0"
}
},
+ "node_modules/@scratch/scratch-gui/node_modules/scratch-l10n": {
+ "version": "6.0.7",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.7.tgz",
+ "integrity": "sha512-3zAhVFlvHbNhkgjweqUK0in5pSr8AANhQzxFNtgutfNKzCzFpA1dnQ4JAuJawGLphER/FC3vuB0abbHjSzDUWQ==",
+ "dev": true,
+ "license": "AGPL-3.0-only",
+ "dependencies": {
+ "@transifex/api": "7.1.4",
+ "async": "3.2.6",
+ "format-message-parse": "6.2.4",
+ "glob": "7.2.3",
+ "lodash.defaultsdeep": "4.6.1",
+ "mkdirp": "3.0.1",
+ "transifex": "1.6.6",
+ "tsx": "4.20.3"
+ },
+ "bin": {
+ "build-i18n-src": "scripts/build-i18n-src.mts",
+ "tx-push-src": "scripts/tx-push-src.mts"
+ }
+ },
"node_modules/@scratch/scratch-gui/node_modules/scratch-storage": {
"version": "4.0.193",
"resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.193.tgz",
@@ -23414,9 +23473,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.7",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.7.tgz",
- "integrity": "sha512-3zAhVFlvHbNhkgjweqUK0in5pSr8AANhQzxFNtgutfNKzCzFpA1dnQ4JAuJawGLphER/FC3vuB0abbHjSzDUWQ==",
+ "version": "6.0.8",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.8.tgz",
+ "integrity": "sha512-KzU85/C2dzm6j0IEiayMKewkoSfoC5Mkfo7eDwZ4xQYCEh3UM9/AkofwvfdKBn/auWVVtnFydMdeL/Liu7i66Q==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index d42ad70f748..d876c6b93ed 100644
--- a/package.json
+++ b/package.json
@@ -147,7 +147,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.7",
+ "scratch-l10n": "6.0.8",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From 1601f81e95870009bc4bdae148647435b57363fc Mon Sep 17 00:00:00 2001
From: MiroslavDionisiev
Date: Wed, 23 Jul 2025 14:43:32 +0300
Subject: [PATCH 056/129] feat: [UEPR-289] face sensing extension chip and
updated privacy warning
---
src/lib/extensions.js | 4 ++++
src/lib/project-info.js | 3 ++-
src/views/preview/l10n.json | 3 ++-
src/views/preview/presentation.jsx | 8 ++++----
src/views/preview/project-view.jsx | 11 +++++++----
static/svgs/project/extension-facesensing.svg | 10 ++++++++++
6 files changed, 29 insertions(+), 10 deletions(-)
create mode 100644 static/svgs/project/extension-facesensing.svg
diff --git a/src/lib/extensions.js b/src/lib/extensions.js
index 94e7b021b19..2254371924e 100644
--- a/src/lib/extensions.js
+++ b/src/lib/extensions.js
@@ -16,6 +16,10 @@ const EXTENSION_INFO = {
l10nId: 'project.videoSensingChip',
icon: 'extension-videosensing.svg'
},
+ faceSensing: {
+ l10nId: 'project.faceSensingChip',
+ icon: 'extension-facesensing.svg'
+ },
text2speech: {
l10nId: 'project.text2SpeechChip',
icon: 'extension-text2speech.svg'
diff --git a/src/lib/project-info.js b/src/lib/project-info.js
index 30b82e777cb..27485e5a13c 100644
--- a/src/lib/project-info.js
+++ b/src/lib/project-info.js
@@ -21,7 +21,8 @@ module.exports = {
return Object.values(stage.variables)
.some(variable => variable.length === 3); // 3 entries if cloud var
},
- videoSensing: project => (project.extensions || []).includes('videoSensing')
+ videoSensing: project => (project.extensions || []).includes('videoSensing'),
+ faceSensing: project => (project.extensions || []).includes('faceSensing')
},
2: {
extensions: () => [], // Showing extension chip not implemented for scratch2 projects
diff --git a/src/views/preview/l10n.json b/src/views/preview/l10n.json
index 808efc91cbb..545c190faf5 100644
--- a/src/views/preview/l10n.json
+++ b/src/views/preview/l10n.json
@@ -8,6 +8,7 @@
"project.text2SpeechChip": "Text to Speech",
"project.translateChip": "Translate",
"project.videoSensingChip": "Video Sensing",
+ "project.faceSensingChip": "Face Sensing",
"project.needsConnection": "Needs Connection",
"project.comments.header": "Comments",
"project.comments.toggleOff": "Commenting off",
@@ -48,7 +49,7 @@
"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.cloudDataAndVideoAlert": "For privacy reasons, cloud variables have been disabled in this project because it contains video sensing blocks.",
+ "project.cloudDataDisabledForPrivacy": "For privacy reasons, cloud variables have been disabled in this project because it contains video sensing or face sensing blocks.",
"project.journey.controls.create": "Create",
"project.journey.controls.choose.projectGenre": "What do you want to create?",
"project.journey.controls.choose.type": "Which type?",
diff --git a/src/views/preview/presentation.jsx b/src/views/preview/presentation.jsx
index 759c64b10db..7370b1002a2 100644
--- a/src/views/preview/presentation.jsx
+++ b/src/views/preview/presentation.jsx
@@ -131,7 +131,7 @@ const PreviewPresentation = ({
originalInfo,
parentInfo,
showCloudDataAlert,
- showCloudDataAndVideoAlert,
+ cloudDataDisabledForPrivacy,
showUsernameBlockAlert,
permissions,
projectHost,
@@ -379,9 +379,9 @@ const PreviewPresentation = ({
)}
- {showCloudDataAndVideoAlert && (
+ {cloudDataDisabledForPrivacy && (
-
+
)}
{showUsernameBlockAlert && (
@@ -836,7 +836,7 @@ PreviewPresentation.propTypes = {
reportOpen: PropTypes.bool,
showAdminPanel: PropTypes.bool,
showCloudDataAlert: PropTypes.bool,
- showCloudDataAndVideoAlert: PropTypes.bool,
+ cloudDataDisabledForPrivacy: PropTypes.bool,
showEmailConfirmationModal: PropTypes.bool,
showEmailConfirmationBanner: PropTypes.bool,
showModInfo: PropTypes.bool,
diff --git a/src/views/preview/project-view.jsx b/src/views/preview/project-view.jsx
index 634eba0cb44..238e92d64a4 100644
--- a/src/views/preview/project-view.jsx
+++ b/src/views/preview/project-view.jsx
@@ -528,7 +528,10 @@ class Preview extends React.Component {
// Check for username and video blocks only if user is logged in
if (this.props.isLoggedIn) {
newState.showUsernameBlockAlert = helpers.usernameBlock(projectData[0]);
- newState.showCloudDataAndVideoAlert = hasCloudData && helpers.videoSensing(projectData[0]);
+ newState.cloudDataDisabledForPrivacy =
+ hasCloudData &&
+ (helpers.videoSensing(projectData[0]) ||
+ helpers.faceSensing(projectData[0]));
} else { // Check for cloud vars only if user is logged out
newState.showCloudDataAlert = hasCloudData;
}
@@ -648,7 +651,7 @@ class Preview extends React.Component {
this.setState({
showUsernameBlockAlert: false,
showCloudDataAlert: false,
- showCloudDataAndVideoAlert: false,
+ cloudDataDisabledForPrivacy: false,
greenFlagRecorded: true
});
}
@@ -773,7 +776,7 @@ class Preview extends React.Component {
this.setState({ // Remove any project alerts so they don't show up later
showUsernameBlockAlert: false,
showCloudDataAlert: false,
- showCloudDataAndVideoAlert: false
+ cloudDataDisabledForPrivacy: false
});
this.props.setPlayer(false);
if (this.state.justRemixed || this.state.justShared) {
@@ -1033,7 +1036,7 @@ class Preview extends React.Component {
reportOpen={this.state.reportOpen}
showAdminPanel={this.props.isAdmin}
showCloudDataAlert={this.state.showCloudDataAlert}
- showCloudDataAndVideoAlert={this.state.showCloudDataAndVideoAlert}
+ cloudDataDisabledForPrivacy={this.state.cloudDataDisabledForPrivacy}
showModInfo={this.props.isAdmin}
showEmailConfirmationModal={this.state.showEmailConfirmationModal}
showEmailConfirmationBanner={this.props.showEmailConfirmationBanner}
diff --git a/static/svgs/project/extension-facesensing.svg b/static/svgs/project/extension-facesensing.svg
new file mode 100644
index 00000000000..86b6f51f6d9
--- /dev/null
+++ b/static/svgs/project/extension-facesensing.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
From 4191fd85d60f2bb3c6f6fd5741844623c32289d8 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 23 Jul 2025 14:52:44 +0000
Subject: [PATCH 057/129] fix(deps): update dependency scratch-storage to
^4.0.194
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 2a7133d494f..0aa1d51666d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.193"
+ "scratch-storage": "^4.0.194"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -23639,9 +23639,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.194",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.194.tgz",
- "integrity": "sha512-3tcoBhi/v5VANtKAgR14rr6ox7eN3+jI6cEzFh0JURF043+BfZ/wVqLPyT4DqytqZ/B3Qv/ClvqTZLEpt17I3w==",
+ "version": "4.0.195",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.195.tgz",
+ "integrity": "sha512-oZIMHreabmsZ4vewXvDjtbtHM6R3OnR9wCiW/DWT0cUwrCEtyUgl5eJuKMntyZ+CdiYgvPveEJ9zZzMoMGrFTQ==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index d876c6b93ed..6a73d962f1c 100644
--- a/package.json
+++ b/package.json
@@ -58,7 +58,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.193"
+ "scratch-storage": "^4.0.194"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From e09e844e2363c8bb3d2fc9d2aff109b782a895af Mon Sep 17 00:00:00 2001
From: Kaloyan Manolov
Date: Thu, 24 Jul 2025 16:36:57 +0300
Subject: [PATCH 058/129] fix: manual thumbnail save fixes
---
src/redux/preview.js | 6 +++++-
src/views/preview/project-view.jsx | 20 +++++++++++++------
src/views/preview/project-view.scss | 7 +++++++
.../preview/update-thumbnail-info-modal.scss | 5 ++---
4 files changed, 28 insertions(+), 10 deletions(-)
diff --git a/src/redux/preview.js b/src/redux/preview.js
index 220c0ccf690..e7cd21f3f26 100644
--- a/src/redux/preview.js
+++ b/src/redux/preview.js
@@ -697,7 +697,11 @@ module.exports.updateProjectThumbnail = (id, blob, onSuccess, onError) => (dispa
withCredentials: true,
useCsrf: true,
body: blob,
- host: process.env.THUMBNAIL_HOST
+ host: process.env.THUMBNAIL_HOST,
+ // The responseType is `json` on success, but on error it returns HTML,
+ // and passing `json` in that case causes an error in xhr, that doesn't bubble up.
+ // Currently we don't use the body anyways, so it should be okay if it's unparsed.
+ responseType: 'text/html',
}, (err, body, res) => {
if (err || res.statusCode !== 200) {
dispatch(module.exports.setFetchStatus('project-thumbnail', module.exports.Status.ERROR));
diff --git a/src/views/preview/project-view.jsx b/src/views/preview/project-view.jsx
index 634eba0cb44..3e1cef08ed3 100644
--- a/src/views/preview/project-view.jsx
+++ b/src/views/preview/project-view.jsx
@@ -246,7 +246,7 @@ class Preview extends React.Component {
componentDidMount () {
this.addEventListeners();
if (this.props.playerMode && isFirstManualThumbnailUpdate()) {
- this.showThumbnailUpdateInfoTooltip();
+ this.showThumbnailUpdateInfoTooltip(true);
}
}
componentDidUpdate (prevProps, prevState) {
@@ -317,6 +317,12 @@ class Preview extends React.Component {
this.hideThumbnailUpdateInfoTooltip();
}
+ if ((this.props.playerMode && !prevProps.playerMode ||
+ this.props.playerMode && !this.props.fullScreen && prevProps.fullScreen) &&
+ !this.state.tooltipDriver && isFirstManualThumbnailUpdate()) {
+ this.showThumbnailUpdateInfoTooltip();
+ }
+
// Switching out of editor mode, refresh data that comes from project json
if (this.props.playerMode && !prevProps.playerMode) {
storage.setProjectToken(this.props.projectInfo.project_token);
@@ -887,7 +893,7 @@ class Preview extends React.Component {
isThumbnailUpdateInfoModalOpen: false
});
}
- showThumbnailUpdateInfoTooltip () {
+ showThumbnailUpdateInfoTooltip (isFirstLoad = false) {
this.setState({
tooltipDriver: driver({
allowClose: false,
@@ -906,11 +912,13 @@ class Preview extends React.Component {
})});
const showThumbnailUpdateInfoTooltipWhenGuiReady = () => {
- const el = document.querySelector('span[class*="stage-header_setThumbnailButton"]');
- if (el) {
+ const setThumbnailButton = document.querySelector('span[class*="stage-header_setThumbnailButton"]');
+ const greenFlag = document.querySelector('div[class*="stage_green-flag-overlay"] img');
+ // Has the project loaded?
+ if (setThumbnailButton && this.state.tooltipDriver && (!isFirstLoad || greenFlag)) {
this.state.tooltipDriver.drive();
} else {
- setTimeout(showThumbnailUpdateInfoTooltipWhenGuiReady, 1000);
+ setTimeout(showThumbnailUpdateInfoTooltipWhenGuiReady, 500);
}
};
showThumbnailUpdateInfoTooltipWhenGuiReady();
@@ -974,7 +982,7 @@ class Preview extends React.Component {
'admin-panel-open': this.state.adminPanelOpen
})}
>
-
+
Date: Thu, 24 Jul 2025 16:43:47 +0300
Subject: [PATCH 059/129] fix: lint errors
---
src/redux/preview.js | 6 +++---
src/views/preview/project-view.jsx | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/redux/preview.js b/src/redux/preview.js
index e7cd21f3f26..df6cd184f92 100644
--- a/src/redux/preview.js
+++ b/src/redux/preview.js
@@ -698,10 +698,10 @@ module.exports.updateProjectThumbnail = (id, blob, onSuccess, onError) => (dispa
useCsrf: true,
body: blob,
host: process.env.THUMBNAIL_HOST,
- // The responseType is `json` on success, but on error it returns HTML,
- // and passing `json` in that case causes an error in xhr, that doesn't bubble up.
+ // The responseType is `json` on success, but on error it returns `text/html`.
+ // Passing `json` causes an internal error in xhr when `text/html` is returned, that doesn't bubble up.
// Currently we don't use the body anyways, so it should be okay if it's unparsed.
- responseType: 'text/html',
+ responseType: 'text/html'
}, (err, body, res) => {
if (err || res.statusCode !== 200) {
dispatch(module.exports.setFetchStatus('project-thumbnail', module.exports.Status.ERROR));
diff --git a/src/views/preview/project-view.jsx b/src/views/preview/project-view.jsx
index 3e1cef08ed3..8a7f938a0f1 100644
--- a/src/views/preview/project-view.jsx
+++ b/src/views/preview/project-view.jsx
@@ -317,8 +317,8 @@ class Preview extends React.Component {
this.hideThumbnailUpdateInfoTooltip();
}
- if ((this.props.playerMode && !prevProps.playerMode ||
- this.props.playerMode && !this.props.fullScreen && prevProps.fullScreen) &&
+ if (((this.props.playerMode && !prevProps.playerMode) ||
+ (this.props.playerMode && !this.props.fullScreen && prevProps.fullScreen)) &&
!this.state.tooltipDriver && isFirstManualThumbnailUpdate()) {
this.showThumbnailUpdateInfoTooltip();
}
@@ -982,7 +982,7 @@ class Preview extends React.Component {
'admin-panel-open': this.state.adminPanelOpen
})}
>
-
+
Date: Thu, 24 Jul 2025 14:08:04 +0000
Subject: [PATCH 060/129] fix(deps): update dependency scratch-l10n to v6.0.9
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 0aa1d51666d..f4d16dd59b6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.8",
+ "scratch-l10n": "6.0.9",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23473,9 +23473,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.8",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.8.tgz",
- "integrity": "sha512-KzU85/C2dzm6j0IEiayMKewkoSfoC5Mkfo7eDwZ4xQYCEh3UM9/AkofwvfdKBn/auWVVtnFydMdeL/Liu7i66Q==",
+ "version": "6.0.9",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.9.tgz",
+ "integrity": "sha512-arj5gdSVauiYHyY9NMmuTl7wMNmjgjcsIAkGYVPvtczghurAeBLV6fCWpm4weByJW61+MavoJT5dpw8zl50XEg==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 6a73d962f1c..ae5474aae5e 100644
--- a/package.json
+++ b/package.json
@@ -147,7 +147,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.8",
+ "scratch-l10n": "6.0.9",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From 181679048723fa6c49e84db8042fa03dcc934ae2 Mon Sep 17 00:00:00 2001
From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date: Thu, 24 Jul 2025 12:12:34 -0700
Subject: [PATCH 061/129] style: fix indenting error
---
src/views/faq/faq.jsx | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/views/faq/faq.jsx b/src/views/faq/faq.jsx
index bd5a90f728b..98dcfdaaced 100644
--- a/src/views/faq/faq.jsx
+++ b/src/views/faq/faq.jsx
@@ -43,8 +43,7 @@ const Faq = injectIntl(props => (
-
-
+
Date: Thu, 24 Jul 2025 19:33:18 +0000
Subject: [PATCH 062/129] fix(deps): update dependency scratch-storage to
^4.0.195
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index f4d16dd59b6..eb9a6bddf64 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.194"
+ "scratch-storage": "^4.0.195"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -23639,9 +23639,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.195",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.195.tgz",
- "integrity": "sha512-oZIMHreabmsZ4vewXvDjtbtHM6R3OnR9wCiW/DWT0cUwrCEtyUgl5eJuKMntyZ+CdiYgvPveEJ9zZzMoMGrFTQ==",
+ "version": "4.0.196",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.196.tgz",
+ "integrity": "sha512-rgOHVYpJiAb0PQSDXph1V9qIT4T+UOdpQlnr1MrvDAZrHmGR9MO365lnXFpJ7b3004N+EsI/KyF1IlfPIAytFA==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index ae5474aae5e..ec38e66c9e4 100644
--- a/package.json
+++ b/package.json
@@ -58,7 +58,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.194"
+ "scratch-storage": "^4.0.195"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From 5fb12b14def1aed06ec3fc812a0576a0b2fa937a Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 25 Jul 2025 00:35:04 +0000
Subject: [PATCH 063/129] feat(deps): update dependency @scratch/scratch-gui to
v11.5.0
---
package-lock.json | 86 +++++++++++++++++++++++------------------------
package.json | 2 +-
2 files changed, 44 insertions(+), 44 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index eb9a6bddf64..6f334a81bf6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -39,7 +39,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.4.0",
+ "@scratch/scratch-gui": "11.5.0",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
@@ -4310,16 +4310,16 @@
}
},
"node_modules/@scratch/scratch-gui": {
- "version": "11.4.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.4.0.tgz",
- "integrity": "sha512-3/1SPSf917JM9pJc01mpvFSAujqSYl61C/IPozF2XlxMhrTiTAVnTBnVrpLntDwTMwWHOf5ibsaoGX29jBdPRQ==",
+ "version": "11.5.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.5.0.tgz",
+ "integrity": "sha512-YPwy+oRZFCYcG8uruqO20bh7w01mOfbR54a2XdBB2CkSsB1R/Y5RIAB74s34lwifsmS6CkufC1ONo4125EHkMQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
"@microbit/microbit-universal-hex": "0.2.2",
- "@scratch/scratch-render": "11.4.0",
- "@scratch/scratch-svg-renderer": "11.4.0",
- "@scratch/scratch-vm": "11.4.0",
+ "@scratch/scratch-render": "11.5.0",
+ "@scratch/scratch-svg-renderer": "11.5.0",
+ "@scratch/scratch-vm": "11.5.0",
"arraybuffer-loader": "1.0.8",
"autoprefixer": "9.8.8",
"balance-text": "3.3.1",
@@ -4370,10 +4370,10 @@
"redux-throttle": "0.1.1",
"scratch-audio": "2.0.193",
"scratch-blocks": "1.1.210",
- "scratch-l10n": "6.0.7",
- "scratch-paint": "3.0.335",
- "scratch-render-fonts": "1.0.216",
- "scratch-storage": "4.0.193",
+ "scratch-l10n": "6.0.8",
+ "scratch-paint": "3.0.336",
+ "scratch-render-fonts": "1.0.217",
+ "scratch-storage": "4.0.194",
"startaudiocontext": "1.2.1",
"style-loader": "4.0.0",
"text-encoding": "0.7.0",
@@ -4591,9 +4591,9 @@
}
},
"node_modules/@scratch/scratch-gui/node_modules/scratch-l10n": {
- "version": "6.0.7",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.7.tgz",
- "integrity": "sha512-3zAhVFlvHbNhkgjweqUK0in5pSr8AANhQzxFNtgutfNKzCzFpA1dnQ4JAuJawGLphER/FC3vuB0abbHjSzDUWQ==",
+ "version": "6.0.8",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.8.tgz",
+ "integrity": "sha512-KzU85/C2dzm6j0IEiayMKewkoSfoC5Mkfo7eDwZ4xQYCEh3UM9/AkofwvfdKBn/auWVVtnFydMdeL/Liu7i66Q==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4612,9 +4612,9 @@
}
},
"node_modules/@scratch/scratch-gui/node_modules/scratch-storage": {
- "version": "4.0.193",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.193.tgz",
- "integrity": "sha512-t9/i9FLWR6EbGNnNMc7YAF/8OBODk3Ev/81bctuxBrpKT/xUV67NrWn8ngsLs5OuoRWfcxUYJOoQATrJh7DuyA==",
+ "version": "4.0.194",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.194.tgz",
+ "integrity": "sha512-3tcoBhi/v5VANtKAgR14rr6ox7eN3+jI6cEzFh0JURF043+BfZ/wVqLPyT4DqytqZ/B3Qv/ClvqTZLEpt17I3w==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4629,13 +4629,13 @@
}
},
"node_modules/@scratch/scratch-render": {
- "version": "11.4.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.4.0.tgz",
- "integrity": "sha512-w1bVCNPlvuJsqXgdgSs2SzWFnmc/MdSXuAWcjBQezUP8VrBXBAaQ2MoH2gTGpjo7VBBIBix3OprSnT+PS3nuxg==",
+ "version": "11.5.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.5.0.tgz",
+ "integrity": "sha512-Ypu4msdzyRa5kfBdvWD+GoyepnsY55xF91GzDRnZN1ax6Bk7hgX2vSqiLy6RN1Jnzt+MA1B3VUBFF0ruFHtesg==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-svg-renderer": "11.4.0",
+ "@scratch/scratch-svg-renderer": "11.5.0",
"grapheme-breaker": "0.3.2",
"hull.js": "0.2.10",
"ify-loader": "1.1.0",
@@ -4672,9 +4672,9 @@
"dev": true
},
"node_modules/@scratch/scratch-svg-renderer": {
- "version": "11.4.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.4.0.tgz",
- "integrity": "sha512-4gpmkL9Vo9Wmanpf98K5UMkD8CqIvL7m/o0JzZefWvq/eGSv13k/c+xl22Cx2Jkl03KqquEKfVqA3/eGxlDwTA==",
+ "version": "11.5.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.5.0.tgz",
+ "integrity": "sha512-edkrIEkTtGHmB9xwBJFZgu5MC1ysaDXRbZIKGJpBcg4XACSveIiGsul09AsdbWQwboGxUGrlvcl2IoRkYnVDNg==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4708,14 +4708,14 @@
}
},
"node_modules/@scratch/scratch-vm": {
- "version": "11.4.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.4.0.tgz",
- "integrity": "sha512-RgMrX2o72GAd4K4vDhFiCwBgm4r4yqyuWM1YY4BARAbiNh4SYznptWKRFLf0SfJxWHoZoM8Ks3KaBIC+7u+MXw==",
+ "version": "11.5.0",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.5.0.tgz",
+ "integrity": "sha512-IV6fD/wDGTetIUCBlt8Xpeguro/fAZSzjTTc6uIYqNwlHfh5Zst1BU66R1H+eobWPEWb39C5qrPxmj9kDkCxng==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-render": "11.4.0",
- "@scratch/scratch-svg-renderer": "11.4.0",
+ "@scratch/scratch-render": "11.5.0",
+ "@scratch/scratch-svg-renderer": "11.5.0",
"@vernier/godirect": "1.8.3",
"arraybuffer-loader": "1.0.8",
"atob": "2.1.2",
@@ -4730,8 +4730,8 @@
"minilog": "3.1.0",
"scratch-audio": "2.0.193",
"scratch-parser": "6.0.0",
- "scratch-sb1-converter": "2.0.193",
- "scratch-storage": "4.0.193",
+ "scratch-sb1-converter": "2.0.194",
+ "scratch-storage": "4.0.194",
"scratch-translate-extension-languages": "1.0.7",
"text-encoding": "0.7.0",
"uuid": "8.3.2",
@@ -4756,9 +4756,9 @@
}
},
"node_modules/@scratch/scratch-vm/node_modules/scratch-storage": {
- "version": "4.0.193",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.193.tgz",
- "integrity": "sha512-t9/i9FLWR6EbGNnNMc7YAF/8OBODk3Ev/81bctuxBrpKT/xUV67NrWn8ngsLs5OuoRWfcxUYJOoQATrJh7DuyA==",
+ "version": "4.0.194",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.194.tgz",
+ "integrity": "sha512-3tcoBhi/v5VANtKAgR14rr6ox7eN3+jI6cEzFh0JURF043+BfZ/wVqLPyT4DqytqZ/B3Qv/ClvqTZLEpt17I3w==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -23532,9 +23532,9 @@
}
},
"node_modules/scratch-paint": {
- "version": "3.0.335",
- "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-3.0.335.tgz",
- "integrity": "sha512-GIL1aiWI7GK6fXEgkjnnDEaZte9EJTewtQFJ5tVmh86Mlt01LsbzL9Oq29BlIThkvfl8eE6p7ggW0/MYLp4whw==",
+ "version": "3.0.336",
+ "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-3.0.336.tgz",
+ "integrity": "sha512-cZ2fGw8WbnG+Nbhoqzqe3e5D8Zmgi+Cb8xLXRX+ybMUzQTle+rcx9mkeYEYzcdJWdrSTygcaYGfIbTRxcpFjwQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -23601,18 +23601,18 @@
}
},
"node_modules/scratch-render-fonts": {
- "version": "1.0.216",
- "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.216.tgz",
- "integrity": "sha512-FaoXSGyqMxvDsD7XnROkhtiI54F9YlxgD2Y11C38LY2ujLLt3Ra3tsmlh/j8ZABvepLyLsWhTZDQdY4U0+19Bg==",
+ "version": "1.0.217",
+ "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.217.tgz",
+ "integrity": "sha512-YuB2cVFfa4Rp6BT+c/KuR7TyXFT6LUeQVQmElsSPNYr+X+TFyvzSJS2vhWdeT0tdAaf6r+1sfoexB9Os+VBOPw==",
"dev": true,
"dependencies": {
"base64-loader": "^1.0.0"
}
},
"node_modules/scratch-sb1-converter": {
- "version": "2.0.193",
- "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-2.0.193.tgz",
- "integrity": "sha512-no+a+ehrRbNQA8Sp7ZvG4pVt68audfpzJsfdpK1dwcuy+1uXBMBw3HMoU+EQ6cpRxsJCgBygBjE4EQaFkTTFiw==",
+ "version": "2.0.194",
+ "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-2.0.194.tgz",
+ "integrity": "sha512-gF1QwO+rd5dYYTFViCBMEkzvbmHXQYk1QZ5he/RYwtYPNkCs2VKVKAF7lPb2+C+EAdo6qI9x727Oj51P72K6dw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index ec38e66c9e4..3927b8e8479 100644
--- a/package.json
+++ b/package.json
@@ -74,7 +74,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.4.0",
+ "@scratch/scratch-gui": "11.5.0",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
From 65dcde639c52cabe3bf135f7dec411e6193c3a33 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 25 Jul 2025 12:49:21 +0000
Subject: [PATCH 064/129] fix(deps): update dependency scratch-storage to
^4.0.196
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 6f334a81bf6..6de94384c21 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.195"
+ "scratch-storage": "^4.0.196"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -23639,9 +23639,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.196",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.196.tgz",
- "integrity": "sha512-rgOHVYpJiAb0PQSDXph1V9qIT4T+UOdpQlnr1MrvDAZrHmGR9MO365lnXFpJ7b3004N+EsI/KyF1IlfPIAytFA==",
+ "version": "4.0.197",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.197.tgz",
+ "integrity": "sha512-JmstR0ULCAX2VAM79ejiiVuxsSvsH+vBsMFWtmhiXuH01F8NlrySOc4lWiXSdospungBAz6B4Y+rJA5yJV5bCg==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index 3927b8e8479..53641dc911c 100644
--- a/package.json
+++ b/package.json
@@ -58,7 +58,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.195"
+ "scratch-storage": "^4.0.196"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From 178ef127bbf1254a8929158e4bd14e1767684901 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 26 Jul 2025 08:53:21 +0000
Subject: [PATCH 065/129] fix(deps): update dependency scratch-storage to
^4.0.197
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 6de94384c21..2819605bbf5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.196"
+ "scratch-storage": "^4.0.197"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -23639,9 +23639,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.197",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.197.tgz",
- "integrity": "sha512-JmstR0ULCAX2VAM79ejiiVuxsSvsH+vBsMFWtmhiXuH01F8NlrySOc4lWiXSdospungBAz6B4Y+rJA5yJV5bCg==",
+ "version": "4.0.198",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.198.tgz",
+ "integrity": "sha512-Q55FcVODDiLrTIH2WUB+1hsffhcpkBsORovwBAmprECOi8UF06ZdyF5LA9WvI48PP/JLhHNNv2Yo1uo81M23uQ==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index 53641dc911c..150e06db646 100644
--- a/package.json
+++ b/package.json
@@ -58,7 +58,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.196"
+ "scratch-storage": "^4.0.197"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From 2ab39da93f5ae18add2d62f3a366cc9a3ede4811 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 26 Jul 2025 12:28:34 +0000
Subject: [PATCH 066/129] fix(deps): update dependency scratch-l10n to v6.0.11
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 2819605bbf5..39b4102af76 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.9",
+ "scratch-l10n": "6.0.11",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23473,9 +23473,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.9",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.9.tgz",
- "integrity": "sha512-arj5gdSVauiYHyY9NMmuTl7wMNmjgjcsIAkGYVPvtczghurAeBLV6fCWpm4weByJW61+MavoJT5dpw8zl50XEg==",
+ "version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.11.tgz",
+ "integrity": "sha512-L6I3Eh2zE6/R2C04V+CG1Nu8/5eKdFWC/tRz21hJZ6nTDzeeeis2hAbcZW+yOyug3Okwd1nWlZhj4ToNUDcJFw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 150e06db646..2c5ef404a84 100644
--- a/package.json
+++ b/package.json
@@ -147,7 +147,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.9",
+ "scratch-l10n": "6.0.11",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From 649545dc9cfb2ddd5fd7d2dd7a2514e264d6dc15 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 26 Jul 2025 18:11:40 +0000
Subject: [PATCH 067/129] fix(deps): lock file maintenance
---
package-lock.json | 38 +++++++++++++++++++-------------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 39b4102af76..36aa8194654 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -568,14 +568,14 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.27.6",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz",
- "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==",
+ "version": "7.28.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.2.tgz",
+ "integrity": "sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/template": "^7.27.2",
- "@babel/types": "^7.27.6"
+ "@babel/types": "^7.28.2"
},
"engines": {
"node": ">=6.9.0"
@@ -2026,9 +2026,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.27.6",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz",
- "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==",
+ "version": "7.28.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz",
+ "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -2069,9 +2069,9 @@
}
},
"node_modules/@babel/types": {
- "version": "7.28.1",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz",
- "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==",
+ "version": "7.28.2",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz",
+ "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10275,9 +10275,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.189",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.189.tgz",
- "integrity": "sha512-y9D1ntS1ruO/pZ/V2FtLE+JXLQe28XoRpZ7QCCo0T8LdQladzdcOVQZH/IWLVJvCw12OGMb6hYOeOAjntCmJRQ==",
+ "version": "1.5.191",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.191.tgz",
+ "integrity": "sha512-xcwe9ELcuxYLUFqZZxL19Z6HVKcvNkIwhbHUz7L3us6u12yR+7uY89dSl570f/IqNthx8dAw3tojG7i4Ni4tDA==",
"dev": true,
"license": "ISC"
},
@@ -12106,9 +12106,9 @@
}
},
"node_modules/flow-remove-types": {
- "version": "2.276.0",
- "resolved": "https://registry.npmjs.org/flow-remove-types/-/flow-remove-types-2.276.0.tgz",
- "integrity": "sha512-8OQocuUOEGFP08J3ItfF5w9exWfmrdR1oAiBjPeAEQenDuFTSMb9M+IZU/qIoEiz+fekUqwQbzx7IDJWWE2Lfg==",
+ "version": "2.277.1",
+ "resolved": "https://registry.npmjs.org/flow-remove-types/-/flow-remove-types-2.277.1.tgz",
+ "integrity": "sha512-xg4n6tHaRIocPNwrX3rN622kpWs1c97uV1J+oYAfIQmbZRGL/HrEdS1zenfYUv5PuZ3Ch4UGKFn8KS/EhfG/Fg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -19157,9 +19157,9 @@
"dev": true
},
"node_modules/nwsapi": {
- "version": "2.2.20",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz",
- "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==",
+ "version": "2.2.21",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.21.tgz",
+ "integrity": "sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==",
"dev": true,
"license": "MIT"
},
From 1ad0392782ead05a3039aecdfd405e0943f739f4 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 29 Jul 2025 09:43:00 +0000
Subject: [PATCH 068/129] fix(deps): update dependency scratch-storage to
^4.0.198
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 36aa8194654..19b5c068018 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.197"
+ "scratch-storage": "^4.0.198"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -23639,9 +23639,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.198",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.198.tgz",
- "integrity": "sha512-Q55FcVODDiLrTIH2WUB+1hsffhcpkBsORovwBAmprECOi8UF06ZdyF5LA9WvI48PP/JLhHNNv2Yo1uo81M23uQ==",
+ "version": "4.0.200",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.200.tgz",
+ "integrity": "sha512-oLCvAyKO4K9QhW2FKIiVFzVp94pSYiCsa8BdrgjMK9inoKNdcS7YoX7XSOUYqWp38JAkB4HULWy2Ic69tDKJ2A==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index 2c5ef404a84..80171374301 100644
--- a/package.json
+++ b/package.json
@@ -58,7 +58,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.197"
+ "scratch-storage": "^4.0.198"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From 2a0065569617c93fd8dd15701ce65aa3db38cbaf Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 30 Jul 2025 12:59:35 +0000
Subject: [PATCH 069/129] fix(deps): update dependency scratch-l10n to v6.0.12
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 19b5c068018..fc20b5144eb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.11",
+ "scratch-l10n": "6.0.12",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23473,9 +23473,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.11",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.11.tgz",
- "integrity": "sha512-L6I3Eh2zE6/R2C04V+CG1Nu8/5eKdFWC/tRz21hJZ6nTDzeeeis2hAbcZW+yOyug3Okwd1nWlZhj4ToNUDcJFw==",
+ "version": "6.0.12",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.12.tgz",
+ "integrity": "sha512-w6uLfw6hQMw2KFbU9j1jZjoZcC6DDT3AIMnLINwLOd0JpAEUlccQphfcXHlm9x1pJ9hY1U4IE2O8lOiN7itNPQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 80171374301..9fc94d36844 100644
--- a/package.json
+++ b/package.json
@@ -147,7 +147,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.11",
+ "scratch-l10n": "6.0.12",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From 00b1c6259fa552cb15c6a245bea3db83547076d2 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 31 Jul 2025 05:48:53 +0000
Subject: [PATCH 070/129] fix(deps): update dependency scratch-storage to
^4.0.200
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index fc20b5144eb..da7ac7b57ae 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.198"
+ "scratch-storage": "^4.0.200"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -23639,9 +23639,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.200",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.200.tgz",
- "integrity": "sha512-oLCvAyKO4K9QhW2FKIiVFzVp94pSYiCsa8BdrgjMK9inoKNdcS7YoX7XSOUYqWp38JAkB4HULWy2Ic69tDKJ2A==",
+ "version": "4.0.201",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.201.tgz",
+ "integrity": "sha512-wexsLsewAjpARvP3wUR43zM5TE+LM4hm9blGoy2cC7m39UGzhrZCjsbDfRX26JwQBHI33RhBU7NjAFdT+WmZvQ==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index 9fc94d36844..758244cfcff 100644
--- a/package.json
+++ b/package.json
@@ -58,7 +58,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.198"
+ "scratch-storage": "^4.0.200"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From ee38609cfaf7d5497af599848c55925cd7d6e608 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 31 Jul 2025 16:47:50 +0000
Subject: [PATCH 071/129] fix(deps): update dependency scratch-l10n to v6.0.13
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index da7ac7b57ae..b19b4731b8f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.12",
+ "scratch-l10n": "6.0.13",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23473,9 +23473,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.12",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.12.tgz",
- "integrity": "sha512-w6uLfw6hQMw2KFbU9j1jZjoZcC6DDT3AIMnLINwLOd0JpAEUlccQphfcXHlm9x1pJ9hY1U4IE2O8lOiN7itNPQ==",
+ "version": "6.0.13",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.13.tgz",
+ "integrity": "sha512-uQyGFxd8eM9tn9dlxWLE7SGa5wBNVcIrR4YZaYLinzIysp563tsWxM/ucvvvcfo7PiNy7AOcQvy6C/IgcsJYig==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 758244cfcff..59182e95f00 100644
--- a/package.json
+++ b/package.json
@@ -147,7 +147,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.12",
+ "scratch-l10n": "6.0.13",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From 1eaf914d801b12baf81916c2eea468aadf9a3467 Mon Sep 17 00:00:00 2001
From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date: Thu, 31 Jul 2025 09:57:44 -0700
Subject: [PATCH 072/129] chore: remove ChromeAndroid from browserslist
The `ChromeAndroid` entry is likely to cause more problems than it
solves. This change removes it in favor of the `Chrome` entry, which
should effectively cover both cases.
See also browserslist/browserslist#895 and Fyrd/caniuse#2413
---
package.json | 1 -
1 file changed, 1 deletion(-)
diff --git a/package.json b/package.json
index 122365eb8a1..9d99e24bc2c 100644
--- a/package.json
+++ b/package.json
@@ -190,7 +190,6 @@
"Firefox >= 0 and last 3 years and not dead",
"Edge >= 0 and last 3 years and not dead",
"Safari >= 0 and last 3 years and not dead",
- "ChromeAndroid >= 0 and last 3 years and not dead",
"ios_saf >= 0 and last 3 years and not dead"
]
}
From 451f106ef00262ab5dbebc39e4ae8757db14584e Mon Sep 17 00:00:00 2001
From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date: Thu, 31 Jul 2025 10:06:40 -0700
Subject: [PATCH 073/129] docs: add browserslist.html to build output
---
bin/browserslist-to-html.cjs | 95 ++++++++++++++++++++++++++++++++++++
package.json | 3 +-
2 files changed, 97 insertions(+), 1 deletion(-)
create mode 100755 bin/browserslist-to-html.cjs
diff --git a/bin/browserslist-to-html.cjs b/bin/browserslist-to-html.cjs
new file mode 100755
index 00000000000..b83aff67be4
--- /dev/null
+++ b/bin/browserslist-to-html.cjs
@@ -0,0 +1,95 @@
+#!/usr/bin/env node
+
+const readline = require('node:readline');
+
+const friendlyBrowsers = {
+ and_chr: 'Android Chrome',
+ chrome: 'Chrome',
+ edge: 'Edge',
+ firefox: 'Firefox',
+ ios_saf: 'iOS Safari',
+ safari: 'Safari'
+};
+
+/**
+ * Zips together multiple iterables. Most implementations stop as soon as one iterable is exhausted,
+ * but this implementation continues until all iterables are exhausted, filling in `undefined` for
+ * any missing values.
+ * @param {...Iterable} iterables The iterables to zip together.
+ * @yields {Array} An array containing the next value from each iterable, or `undefined` if an iterable is exhausted.
+ * @example
+ * const zipped = zipAll([1, 2], ['a', 'b', 'c'], [true]);
+ * console.log([...zipped]); // [[1, 'a', true], [2, 'b', undefined], [undefined, 'c', undefined]]
+ */
+const zipAll = function*(...iterables) {
+ const iterators = iterables.map(iterable => iterable[Symbol.iterator]());
+ while (true) {
+ const results = iterators.map(iterator => iterator.next());
+ if (results.every(result => result.done)) {
+ return;
+ }
+ yield results.map(result => result.value);
+ }
+};
+
+const main = async () => {
+ const input = readline.createInterface({
+ input: process.stdin
+ });
+
+ const browsers = {};
+
+ for await (const line of input) {
+ const [browser, version] = line.split(' ');
+ if (!browsers[browser]) {
+ browsers[browser] = [];
+ }
+ browsers[browser].unshift(version);
+ }
+
+ process.stdout.write([
+ '',
+ '',
+ ' ',
+ ' Scratch: Supported Browsers ',
+ ' ',
+ ' ',
+ ' ',
+ ' ',
+ ' ',
+ ' Supported Browsers ',
+ ' ',
+ ' ',
+ ''
+ ].join('\n'));
+
+ const browserIds = Object.keys(browsers).sort();
+ for (const browserId of browserIds) {
+ process.stdout.write(` ${friendlyBrowsers[browserId] || browserId} \n`);
+ }
+ process.stdout.write([
+ ' ',
+ ' ',
+ ' ',
+ ''
+ ].join('\n'));
+ for (const versions of zipAll(...Object.values(browsers))) {
+ process.stdout.write(' \n');
+ for (const version of versions) {
+ process.stdout.write(` ${version || ''} \n`);
+ }
+ process.stdout.write(' \n');
+ }
+ process.stdout.write([
+ ' ',
+ '
',
+ ' ',
+ '',
+ ''
+ ].join('\n'));
+};
+
+main();
diff --git a/package.json b/package.json
index 9d99e24bc2c..9a1d5f2fb35 100644
--- a/package.json
+++ b/package.json
@@ -16,8 +16,9 @@
"test:unit:tap": "tap ./test/{unit-legacy,localization-legacy}/ --no-coverage -R classic",
"test:unit:convertReportToXunit": "tap ./test/results/unit-raw.tap --no-coverage -R xunit > ./test/results/unit-tap-results.xml",
"test:coverage": "tap ./test/{unit-legacy,localization-legacy}/ --coverage --coverage-report=lcov",
- "build": "npm run clean && npm run translate && NODE_OPTIONS=--max_old_space_size=8000 webpack --bail",
+ "build": "npm run clean && npm run translate && npm run build:browserslist && NODE_OPTIONS=--max_old_space_size=8000 webpack --bail",
"build:analyze": "ANALYZE_BUNDLE=true npm run build",
+ "build:browserslist": "browserslist | node ./bin/browserslist-to-html.cjs > ./build/browserslist.html",
"clean": "rm -rf ./build && rm -rf ./intl && mkdir -p build && mkdir -p intl",
"deploy": "npm run deploy:s3 && npm run deploy:fastly && npm run deploy:announce",
"deploy:fastly": "node ./bin/configure-fastly.js",
From c88a295b28f27e8f16da66e58cd9e7a5b10ec3b1 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 31 Jul 2025 18:02:34 +0000
Subject: [PATCH 074/129] chore(deps): update dependency webpack to v5.101.0
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index b19b4731b8f..9fcff3a4d25 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -120,7 +120,7 @@
"tap": "14.11.0",
"url-loader": "3.0.0",
"use-onclickoutside": "0.4.1",
- "webpack": "5.100.2",
+ "webpack": "5.101.0",
"webpack-bundle-analyzer": "4.10.2",
"webpack-cli": "5.1.4",
"webpack-dev-middleware": "5.3.4",
@@ -28961,9 +28961,9 @@
}
},
"node_modules/webpack": {
- "version": "5.100.2",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.100.2.tgz",
- "integrity": "sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw==",
+ "version": "5.101.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.0.tgz",
+ "integrity": "sha512-B4t+nJqytPeuZlHuIKTbalhljIFXeNRqrUGAQgTGlfOl2lXXKXw+yZu6bicycP+PUlM44CxBjCFD6aciKFT3LQ==",
"dev": true,
"license": "MIT",
"dependencies": {
diff --git a/package.json b/package.json
index fa96b96dba6..b95c3dc2250 100644
--- a/package.json
+++ b/package.json
@@ -156,7 +156,7 @@
"tap": "14.11.0",
"url-loader": "3.0.0",
"use-onclickoutside": "0.4.1",
- "webpack": "5.100.2",
+ "webpack": "5.101.0",
"webpack-bundle-analyzer": "4.10.2",
"webpack-cli": "5.1.4",
"webpack-dev-middleware": "5.3.4",
From bb8864e9adddc4f43564732c3bec699dcc3acc40 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 1 Aug 2025 10:32:45 +0000
Subject: [PATCH 075/129] fix(deps): update dependency scratch-l10n to v6.0.14
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 9fcff3a4d25..9d17c1b35a4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.13",
+ "scratch-l10n": "6.0.14",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23473,9 +23473,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.13",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.13.tgz",
- "integrity": "sha512-uQyGFxd8eM9tn9dlxWLE7SGa5wBNVcIrR4YZaYLinzIysp563tsWxM/ucvvvcfo7PiNy7AOcQvy6C/IgcsJYig==",
+ "version": "6.0.14",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.14.tgz",
+ "integrity": "sha512-sfdwCUfkYiCR5KdJ2eUQD80fPyWpgHDmWHgzoPJ+nCsQ0IH3q74xoCbR0csZ2rz71J1rLysTmCjQMANZOhXZjg==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index b95c3dc2250..f67636f0436 100644
--- a/package.json
+++ b/package.json
@@ -148,7 +148,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.13",
+ "scratch-l10n": "6.0.14",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From 7132917fca4cce17f5324d9cead1aa93e73b2587 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 1 Aug 2025 14:55:44 +0000
Subject: [PATCH 076/129] fix(deps): update dependency scratch-storage to
^4.0.201
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 9d17c1b35a4..52df70beeb2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.200"
+ "scratch-storage": "^4.0.201"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -23639,9 +23639,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.201",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.201.tgz",
- "integrity": "sha512-wexsLsewAjpARvP3wUR43zM5TE+LM4hm9blGoy2cC7m39UGzhrZCjsbDfRX26JwQBHI33RhBU7NjAFdT+WmZvQ==",
+ "version": "4.0.202",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.202.tgz",
+ "integrity": "sha512-KzTH+LVrgSzXDBb6HIxvBTd4Du57raNaRm5ZH6C4Z5xDEag5AolNmz39CFCeDBNy2+sDhPcqtLsKuXkR1K6FlQ==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index f67636f0436..14e9006b5e5 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.200"
+ "scratch-storage": "^4.0.201"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From 636d8e084bdee24c5e41aff0789862ffc2210a40 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 2 Aug 2025 11:11:32 +0000
Subject: [PATCH 077/129] fix(deps): update dependency scratch-l10n to v6.0.15
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 52df70beeb2..0f6480fde69 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.14",
+ "scratch-l10n": "6.0.15",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23473,9 +23473,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.14",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.14.tgz",
- "integrity": "sha512-sfdwCUfkYiCR5KdJ2eUQD80fPyWpgHDmWHgzoPJ+nCsQ0IH3q74xoCbR0csZ2rz71J1rLysTmCjQMANZOhXZjg==",
+ "version": "6.0.15",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.15.tgz",
+ "integrity": "sha512-GniGiCxVs37sWTWyylg7ItGZvwd1rbCW9pwr7Lh7SHZcjdzyOH2MA9Bk1ktJJlW8mt//A4r1Kf+zFxwyhNXCLA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 14e9006b5e5..178246f5b26 100644
--- a/package.json
+++ b/package.json
@@ -148,7 +148,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.14",
+ "scratch-l10n": "6.0.15",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From c8321e2da5e29eb223b53c0f19526dd9aba4523e Mon Sep 17 00:00:00 2001
From: Kaloyan Manolov
Date: Mon, 4 Aug 2025 17:05:17 +0300
Subject: [PATCH 078/129] chore: use face sensing pre-release version
---
package-lock.json | 477 +++++++++++++++++++++++++++++++++++++++++-----
package.json | 2 +-
2 files changed, 430 insertions(+), 49 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 0f6480fde69..c3a36b6b93c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -39,7 +39,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.5.0",
+ "@scratch/scratch-gui": "11.6.0-face-sensing",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
@@ -4310,16 +4310,18 @@
}
},
"node_modules/@scratch/scratch-gui": {
- "version": "11.5.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.5.0.tgz",
- "integrity": "sha512-YPwy+oRZFCYcG8uruqO20bh7w01mOfbR54a2XdBB2CkSsB1R/Y5RIAB74s34lwifsmS6CkufC1ONo4125EHkMQ==",
+ "version": "11.6.0-face-sensing",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.6.0-face-sensing.tgz",
+ "integrity": "sha512-SAEQAPREgkIoBoiyZHEhNNIgoiOmWbe/Bwhc5/nHh5zIfrtEZH4u6JNDBqaZmfFiVb/PKBqkLFW7gtlSIZ1tbw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
"@microbit/microbit-universal-hex": "0.2.2",
- "@scratch/scratch-render": "11.5.0",
- "@scratch/scratch-svg-renderer": "11.5.0",
- "@scratch/scratch-vm": "11.5.0",
+ "@scratch/scratch-render": "11.6.0-face-sensing",
+ "@scratch/scratch-svg-renderer": "11.6.0-face-sensing",
+ "@scratch/scratch-vm": "11.6.0-face-sensing",
+ "@tensorflow-models/face-detection": "^1.0.3",
+ "@tensorflow/tfjs": "^4.22.0",
"arraybuffer-loader": "1.0.8",
"autoprefixer": "9.8.8",
"balance-text": "3.3.1",
@@ -4368,12 +4370,12 @@
"react-virtualized": "9.22.6",
"react-visibility-sensor": "5.1.1",
"redux-throttle": "0.1.1",
- "scratch-audio": "2.0.193",
+ "scratch-audio": "2.0.199",
"scratch-blocks": "1.1.210",
- "scratch-l10n": "6.0.8",
- "scratch-paint": "3.0.336",
- "scratch-render-fonts": "1.0.217",
- "scratch-storage": "4.0.194",
+ "scratch-l10n": "6.0.13",
+ "scratch-paint": "3.0.339",
+ "scratch-render-fonts": "1.0.218",
+ "scratch-storage": "4.0.201",
"startaudiocontext": "1.2.1",
"style-loader": "4.0.0",
"text-encoding": "0.7.0",
@@ -4591,9 +4593,9 @@
}
},
"node_modules/@scratch/scratch-gui/node_modules/scratch-l10n": {
- "version": "6.0.8",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.8.tgz",
- "integrity": "sha512-KzU85/C2dzm6j0IEiayMKewkoSfoC5Mkfo7eDwZ4xQYCEh3UM9/AkofwvfdKBn/auWVVtnFydMdeL/Liu7i66Q==",
+ "version": "6.0.13",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.13.tgz",
+ "integrity": "sha512-uQyGFxd8eM9tn9dlxWLE7SGa5wBNVcIrR4YZaYLinzIysp563tsWxM/ucvvvcfo7PiNy7AOcQvy6C/IgcsJYig==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4612,9 +4614,9 @@
}
},
"node_modules/@scratch/scratch-gui/node_modules/scratch-storage": {
- "version": "4.0.194",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.194.tgz",
- "integrity": "sha512-3tcoBhi/v5VANtKAgR14rr6ox7eN3+jI6cEzFh0JURF043+BfZ/wVqLPyT4DqytqZ/B3Qv/ClvqTZLEpt17I3w==",
+ "version": "4.0.201",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.201.tgz",
+ "integrity": "sha512-wexsLsewAjpARvP3wUR43zM5TE+LM4hm9blGoy2cC7m39UGzhrZCjsbDfRX26JwQBHI33RhBU7NjAFdT+WmZvQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4629,13 +4631,13 @@
}
},
"node_modules/@scratch/scratch-render": {
- "version": "11.5.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.5.0.tgz",
- "integrity": "sha512-Ypu4msdzyRa5kfBdvWD+GoyepnsY55xF91GzDRnZN1ax6Bk7hgX2vSqiLy6RN1Jnzt+MA1B3VUBFF0ruFHtesg==",
+ "version": "11.6.0-face-sensing",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.6.0-face-sensing.tgz",
+ "integrity": "sha512-wUPqUwm0PQUUwHQDoyMN7+xlwA23nbvMc8Ua+lW2+UV9Q7XrGityIwevYiYPBavk/WiTjnGM+znQ8bdSfJG3Bg==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-svg-renderer": "11.5.0",
+ "@scratch/scratch-svg-renderer": "11.6.0-face-sensing",
"grapheme-breaker": "0.3.2",
"hull.js": "0.2.10",
"ify-loader": "1.1.0",
@@ -4672,9 +4674,9 @@
"dev": true
},
"node_modules/@scratch/scratch-svg-renderer": {
- "version": "11.5.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.5.0.tgz",
- "integrity": "sha512-edkrIEkTtGHmB9xwBJFZgu5MC1ysaDXRbZIKGJpBcg4XACSveIiGsul09AsdbWQwboGxUGrlvcl2IoRkYnVDNg==",
+ "version": "11.6.0-face-sensing",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.6.0-face-sensing.tgz",
+ "integrity": "sha512-a9Yr4NbpuhYonsU7sNSwVgKoEH8mQA9S02BDyCc7soBU6W67I1QOZgWL+J2eunE2G8qyS7IDhTwdkURMmqYnWQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4708,14 +4710,14 @@
}
},
"node_modules/@scratch/scratch-vm": {
- "version": "11.5.0",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.5.0.tgz",
- "integrity": "sha512-IV6fD/wDGTetIUCBlt8Xpeguro/fAZSzjTTc6uIYqNwlHfh5Zst1BU66R1H+eobWPEWb39C5qrPxmj9kDkCxng==",
+ "version": "11.6.0-face-sensing",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.6.0-face-sensing.tgz",
+ "integrity": "sha512-is+pyVkB/vuIFgToVS4tJj37agVIqgmwhnLYiKxl9pSwNNyYvvfksXS9bfR79Z3oz/fV03yXm+OKqWrtPVwdgg==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-render": "11.5.0",
- "@scratch/scratch-svg-renderer": "11.5.0",
+ "@scratch/scratch-render": "11.6.0-face-sensing",
+ "@scratch/scratch-svg-renderer": "11.6.0-face-sensing",
"@vernier/godirect": "1.8.3",
"arraybuffer-loader": "1.0.8",
"atob": "2.1.2",
@@ -4728,10 +4730,10 @@
"immutable": "3.8.2",
"jszip": "3.10.1",
"minilog": "3.1.0",
- "scratch-audio": "2.0.193",
+ "scratch-audio": "2.0.199",
"scratch-parser": "6.0.0",
- "scratch-sb1-converter": "2.0.194",
- "scratch-storage": "4.0.194",
+ "scratch-sb1-converter": "2.0.199",
+ "scratch-storage": "4.0.201",
"scratch-translate-extension-languages": "1.0.7",
"text-encoding": "0.7.0",
"uuid": "8.3.2",
@@ -4756,9 +4758,9 @@
}
},
"node_modules/@scratch/scratch-vm/node_modules/scratch-storage": {
- "version": "4.0.194",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.194.tgz",
- "integrity": "sha512-3tcoBhi/v5VANtKAgR14rr6ox7eN3+jI6cEzFh0JURF043+BfZ/wVqLPyT4DqytqZ/B3Qv/ClvqTZLEpt17I3w==",
+ "version": "4.0.201",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.201.tgz",
+ "integrity": "sha512-wexsLsewAjpARvP3wUR43zM5TE+LM4hm9blGoy2cC7m39UGzhrZCjsbDfRX26JwQBHI33RhBU7NjAFdT+WmZvQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4809,6 +4811,322 @@
"@sinonjs/commons": "^3.0.0"
}
},
+ "node_modules/@tensorflow-models/face-detection": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tensorflow-models/face-detection/-/face-detection-1.0.3.tgz",
+ "integrity": "sha512-4Ld/vFF8MrdFdrMWhlLKZD4hMW0PNY9OkYeqoCPNZ+LwFyenxAqVaNaWrR8JKp37vw9Nuzp4ILbkal5zPUnA0g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "rimraf": "^3.0.2",
+ "tslib": "2.4.0"
+ },
+ "peerDependencies": {
+ "@mediapipe/face_detection": "~0.4.0",
+ "@tensorflow/tfjs-backend-webgl": "^4.21.0",
+ "@tensorflow/tfjs-converter": "^4.21.0",
+ "@tensorflow/tfjs-core": "^4.21.0"
+ }
+ },
+ "node_modules/@tensorflow-models/face-detection/node_modules/tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/@tensorflow/tfjs": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-4.22.0.tgz",
+ "integrity": "sha512-0TrIrXs6/b7FLhLVNmfh8Sah6JgjBPH4mZ8JGb7NU6WW+cx00qK5BcAZxw7NCzxj6N8MRAIfHq+oNbPUNG5VAg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@tensorflow/tfjs-backend-cpu": "4.22.0",
+ "@tensorflow/tfjs-backend-webgl": "4.22.0",
+ "@tensorflow/tfjs-converter": "4.22.0",
+ "@tensorflow/tfjs-core": "4.22.0",
+ "@tensorflow/tfjs-data": "4.22.0",
+ "@tensorflow/tfjs-layers": "4.22.0",
+ "argparse": "^1.0.10",
+ "chalk": "^4.1.0",
+ "core-js": "3.29.1",
+ "regenerator-runtime": "^0.13.5",
+ "yargs": "^16.0.3"
+ },
+ "bin": {
+ "tfjs-custom-module": "dist/tools/custom_module/cli.js"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-backend-cpu": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-4.22.0.tgz",
+ "integrity": "sha512-1u0FmuLGuRAi8D2c3cocHTASGXOmHc/4OvoVDENJayjYkS119fcTcQf4iHrtLthWyDIPy3JiPhRrZQC9EwnhLw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/seedrandom": "^2.4.28",
+ "seedrandom": "^3.0.5"
+ },
+ "engines": {
+ "yarn": ">= 1.3.2"
+ },
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "4.22.0"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
+ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tensorflow/tfjs-backend-webgl": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-4.22.0.tgz",
+ "integrity": "sha512-H535XtZWnWgNwSzv538czjVlbJebDl5QTMOth4RXr2p/kJ1qSIXE0vZvEtO+5EC9b00SvhplECny2yDewQb/Yg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@tensorflow/tfjs-backend-cpu": "4.22.0",
+ "@types/offscreencanvas": "~2019.3.0",
+ "@types/seedrandom": "^2.4.28",
+ "seedrandom": "^3.0.5"
+ },
+ "engines": {
+ "yarn": ">= 1.3.2"
+ },
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "4.22.0"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-backend-webgl/node_modules/seedrandom": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
+ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tensorflow/tfjs-converter": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-4.22.0.tgz",
+ "integrity": "sha512-PT43MGlnzIo+YfbsjM79Lxk9lOq6uUwZuCc8rrp0hfpLjF6Jv8jS84u2jFb+WpUeuF4K33ZDNx8CjiYrGQ2trQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "4.22.0"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-core": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-4.22.0.tgz",
+ "integrity": "sha512-LEkOyzbknKFoWUwfkr59vSB68DMJ4cjwwHgicXN0DUi3a0Vh1Er3JQqCI1Hl86GGZQvY8ezVrtDIvqR1ZFW55A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/long": "^4.0.1",
+ "@types/offscreencanvas": "~2019.7.0",
+ "@types/seedrandom": "^2.4.28",
+ "@webgpu/types": "0.1.38",
+ "long": "4.0.0",
+ "node-fetch": "~2.6.1",
+ "seedrandom": "^3.0.5"
+ },
+ "engines": {
+ "yarn": ">= 1.3.2"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-core/node_modules/@types/offscreencanvas": {
+ "version": "2019.7.3",
+ "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz",
+ "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tensorflow/tfjs-core/node_modules/node-fetch": {
+ "version": "2.6.13",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz",
+ "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@tensorflow/tfjs-core/node_modules/seedrandom": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
+ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tensorflow/tfjs-core/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tensorflow/tfjs-core/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/@tensorflow/tfjs-core/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-data": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-4.22.0.tgz",
+ "integrity": "sha512-dYmF3LihQIGvtgJrt382hSRH4S0QuAp2w1hXJI2+kOaEqo5HnUPG0k5KA6va+S1yUhx7UBToUKCBHeLHFQRV4w==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/node-fetch": "^2.1.2",
+ "node-fetch": "~2.6.1",
+ "string_decoder": "^1.3.0"
+ },
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "4.22.0",
+ "seedrandom": "^3.0.5"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-data/node_modules/node-fetch": {
+ "version": "2.6.13",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz",
+ "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@tensorflow/tfjs-data/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tensorflow/tfjs-data/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/@tensorflow/tfjs-data/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-layers": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-4.22.0.tgz",
+ "integrity": "sha512-lybPj4ZNj9iIAPUj7a8ZW1hg8KQGfqWLlCZDi9eM/oNKCCAgchiyzx8OrYoWmRrB+AM6VNEeIT+2gZKg5ReihA==",
+ "dev": true,
+ "license": "Apache-2.0 AND MIT",
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "4.22.0"
+ }
+ },
+ "node_modules/@tensorflow/tfjs/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/@tensorflow/tfjs/node_modules/core-js": {
+ "version": "3.29.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz",
+ "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/@tensorflow/tfjs/node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@tensorflow/tfjs/node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@tensorflow/tfjs/node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/@tootallnate/once": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
@@ -5037,6 +5355,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/long": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
+ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/node": {
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz",
@@ -5047,6 +5372,34 @@
"undici-types": "~7.8.0"
}
},
+ "node_modules/@types/node-fetch": {
+ "version": "2.6.13",
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.13.tgz",
+ "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "form-data": "^4.0.4"
+ }
+ },
+ "node_modules/@types/node-fetch/node_modules/form-data": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+ "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "hasown": "^2.0.2",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/@types/node-hid": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/@types/node-hid/-/node-hid-1.3.4.tgz",
@@ -5057,6 +5410,13 @@
"@types/node": "*"
}
},
+ "node_modules/@types/offscreencanvas": {
+ "version": "2019.3.0",
+ "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz",
+ "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/parse-json": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
@@ -5082,6 +5442,13 @@
"csstype": "^3.0.2"
}
},
+ "node_modules/@types/seedrandom": {
+ "version": "2.4.34",
+ "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.34.tgz",
+ "integrity": "sha512-ytDiArvrn/3Xk6/vtylys5tlY6eo7Ane0hvcx++TKo6RxQXuVfW0AF/oeWqAj9dN29SyhtawuXstgmPlwNcv/A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/semver": {
"version": "7.7.0",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz",
@@ -5464,6 +5831,13 @@
"@xtuc/long": "4.2.2"
}
},
+ "node_modules/@webgpu/types": {
+ "version": "0.1.38",
+ "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.38.tgz",
+ "integrity": "sha512-7LrhVKz2PRh+DD7+S+PVaFd5HxaWQvoMqBbsV9fNJO1pjUs1P8bM2vQVNfk+3URTqbuTI7gkXi0rfsN0IadoBA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
"node_modules/@webpack-cli/configtest": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
@@ -17707,6 +18081,13 @@
"node": ">=0.8.6"
}
},
+ "node_modules/long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
@@ -23352,9 +23733,9 @@
}
},
"node_modules/scratch-audio": {
- "version": "2.0.193",
- "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-2.0.193.tgz",
- "integrity": "sha512-V/XGDWlzCpHRfHie0Jr+Tw/VdU7x/HZZu1D+574cC/+E7TcntLl4AOFwM4CpLFKms06pD9pMJHUUrhJuvqZAcw==",
+ "version": "2.0.199",
+ "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-2.0.199.tgz",
+ "integrity": "sha512-I7UqcObjH5eOc6Cm3gSA1GBO2KzpTPE5pnq3kn1EmdTlR2tvRCubo3ArbP2zW5Xzs8ejlhBm9+V5sLd2wKLCVQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -23532,9 +23913,9 @@
}
},
"node_modules/scratch-paint": {
- "version": "3.0.336",
- "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-3.0.336.tgz",
- "integrity": "sha512-cZ2fGw8WbnG+Nbhoqzqe3e5D8Zmgi+Cb8xLXRX+ybMUzQTle+rcx9mkeYEYzcdJWdrSTygcaYGfIbTRxcpFjwQ==",
+ "version": "3.0.339",
+ "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-3.0.339.tgz",
+ "integrity": "sha512-nOEDjEZ1lpTsaKcCq2CRcv/mTqCQN6DYPw2t7ZPy1B79dAi1c7vyPfsObbRaN07BTSpqH/2O5/4UmJi1TKr3tQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -23601,18 +23982,18 @@
}
},
"node_modules/scratch-render-fonts": {
- "version": "1.0.217",
- "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.217.tgz",
- "integrity": "sha512-YuB2cVFfa4Rp6BT+c/KuR7TyXFT6LUeQVQmElsSPNYr+X+TFyvzSJS2vhWdeT0tdAaf6r+1sfoexB9Os+VBOPw==",
+ "version": "1.0.218",
+ "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.218.tgz",
+ "integrity": "sha512-zP2Ka0tMQGMwCtOsU87qEVR0auIT+1dffEDFdAeLEnHUQ7eYEECvKwWowPIlqoRsCusX8EALatSLSnvPx2oqcw==",
"dev": true,
"dependencies": {
"base64-loader": "^1.0.0"
}
},
"node_modules/scratch-sb1-converter": {
- "version": "2.0.194",
- "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-2.0.194.tgz",
- "integrity": "sha512-gF1QwO+rd5dYYTFViCBMEkzvbmHXQYk1QZ5he/RYwtYPNkCs2VKVKAF7lPb2+C+EAdo6qI9x727Oj51P72K6dw==",
+ "version": "2.0.199",
+ "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-2.0.199.tgz",
+ "integrity": "sha512-9TQGtteLrEMhF2GElAHyIHm/vEtW5QqmayuQ2O9lhlT8LinUqfuDaPgKIG6qtNMHVhLrm1zFnf7yXBypZg1KRA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 178246f5b26..2ef10d454e3 100644
--- a/package.json
+++ b/package.json
@@ -75,7 +75,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.5.0",
+ "@scratch/scratch-gui": "11.6.0-face-sensing",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
From 01dde6c1e241125772bf86021bad5176085ea2d4 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 4 Aug 2025 14:12:29 +0000
Subject: [PATCH 079/129] fix(deps): update dependency @scratch/scratch-gui to
v11.6.0-gui-standalone
---
package-lock.json | 427 +++-------------------------------------------
package.json | 2 +-
2 files changed, 24 insertions(+), 405 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index c3a36b6b93c..0d987f89b01 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -39,7 +39,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.6.0-face-sensing",
+ "@scratch/scratch-gui": "11.6.0-gui-standalone",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
@@ -4310,18 +4310,16 @@
}
},
"node_modules/@scratch/scratch-gui": {
- "version": "11.6.0-face-sensing",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.6.0-face-sensing.tgz",
- "integrity": "sha512-SAEQAPREgkIoBoiyZHEhNNIgoiOmWbe/Bwhc5/nHh5zIfrtEZH4u6JNDBqaZmfFiVb/PKBqkLFW7gtlSIZ1tbw==",
+ "version": "11.6.0-gui-standalone",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.6.0-gui-standalone.tgz",
+ "integrity": "sha512-h5zTh7OkXsRme55/DrLO5L5fgeS+v4/M6UEJTxMS/cyxq6KnEQgwEPTQObMkVF7e15zkwWANScACpK53XtWaVg==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
"@microbit/microbit-universal-hex": "0.2.2",
- "@scratch/scratch-render": "11.6.0-face-sensing",
- "@scratch/scratch-svg-renderer": "11.6.0-face-sensing",
- "@scratch/scratch-vm": "11.6.0-face-sensing",
- "@tensorflow-models/face-detection": "^1.0.3",
- "@tensorflow/tfjs": "^4.22.0",
+ "@scratch/scratch-render": "11.6.0-gui-standalone",
+ "@scratch/scratch-svg-renderer": "11.6.0-gui-standalone",
+ "@scratch/scratch-vm": "11.6.0-gui-standalone",
"arraybuffer-loader": "1.0.8",
"autoprefixer": "9.8.8",
"balance-text": "3.3.1",
@@ -4372,7 +4370,7 @@
"redux-throttle": "0.1.1",
"scratch-audio": "2.0.199",
"scratch-blocks": "1.1.210",
- "scratch-l10n": "6.0.13",
+ "scratch-l10n": "6.0.12",
"scratch-paint": "3.0.339",
"scratch-render-fonts": "1.0.218",
"scratch-storage": "4.0.201",
@@ -4593,9 +4591,9 @@
}
},
"node_modules/@scratch/scratch-gui/node_modules/scratch-l10n": {
- "version": "6.0.13",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.13.tgz",
- "integrity": "sha512-uQyGFxd8eM9tn9dlxWLE7SGa5wBNVcIrR4YZaYLinzIysp563tsWxM/ucvvvcfo7PiNy7AOcQvy6C/IgcsJYig==",
+ "version": "6.0.12",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.12.tgz",
+ "integrity": "sha512-w6uLfw6hQMw2KFbU9j1jZjoZcC6DDT3AIMnLINwLOd0JpAEUlccQphfcXHlm9x1pJ9hY1U4IE2O8lOiN7itNPQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4631,13 +4629,13 @@
}
},
"node_modules/@scratch/scratch-render": {
- "version": "11.6.0-face-sensing",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.6.0-face-sensing.tgz",
- "integrity": "sha512-wUPqUwm0PQUUwHQDoyMN7+xlwA23nbvMc8Ua+lW2+UV9Q7XrGityIwevYiYPBavk/WiTjnGM+znQ8bdSfJG3Bg==",
+ "version": "11.6.0-gui-standalone",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.6.0-gui-standalone.tgz",
+ "integrity": "sha512-o+6yWnByZIU1Nujstm0sWAQV9ywS60C1SFxcVJFfe+TTUBWEWZ75VQa6IPuSR1r5OPGDGOOJ/gqGNrJtJGnLmA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-svg-renderer": "11.6.0-face-sensing",
+ "@scratch/scratch-svg-renderer": "11.6.0-gui-standalone",
"grapheme-breaker": "0.3.2",
"hull.js": "0.2.10",
"ify-loader": "1.1.0",
@@ -4674,9 +4672,9 @@
"dev": true
},
"node_modules/@scratch/scratch-svg-renderer": {
- "version": "11.6.0-face-sensing",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.6.0-face-sensing.tgz",
- "integrity": "sha512-a9Yr4NbpuhYonsU7sNSwVgKoEH8mQA9S02BDyCc7soBU6W67I1QOZgWL+J2eunE2G8qyS7IDhTwdkURMmqYnWQ==",
+ "version": "11.6.0-gui-standalone",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.6.0-gui-standalone.tgz",
+ "integrity": "sha512-4LEvV9xfmI+yDfwDd1o6ieGOFznLuVPeciTQQccd0y4GiztCSuNOKdYF+htTFnmR0Nxz45Bpl6SCSJVictXtaA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4710,14 +4708,14 @@
}
},
"node_modules/@scratch/scratch-vm": {
- "version": "11.6.0-face-sensing",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.6.0-face-sensing.tgz",
- "integrity": "sha512-is+pyVkB/vuIFgToVS4tJj37agVIqgmwhnLYiKxl9pSwNNyYvvfksXS9bfR79Z3oz/fV03yXm+OKqWrtPVwdgg==",
+ "version": "11.6.0-gui-standalone",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.6.0-gui-standalone.tgz",
+ "integrity": "sha512-5GUy1jz/GOo05QtJhbFyJ6AX5ar9oIoZBp8rdHQnhzhZ5ICDGRnl42abBvFsm1cyq84CTO2ogvyuRsj1duwN/A==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-render": "11.6.0-face-sensing",
- "@scratch/scratch-svg-renderer": "11.6.0-face-sensing",
+ "@scratch/scratch-render": "11.6.0-gui-standalone",
+ "@scratch/scratch-svg-renderer": "11.6.0-gui-standalone",
"@vernier/godirect": "1.8.3",
"arraybuffer-loader": "1.0.8",
"atob": "2.1.2",
@@ -4811,322 +4809,6 @@
"@sinonjs/commons": "^3.0.0"
}
},
- "node_modules/@tensorflow-models/face-detection": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tensorflow-models/face-detection/-/face-detection-1.0.3.tgz",
- "integrity": "sha512-4Ld/vFF8MrdFdrMWhlLKZD4hMW0PNY9OkYeqoCPNZ+LwFyenxAqVaNaWrR8JKp37vw9Nuzp4ILbkal5zPUnA0g==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "rimraf": "^3.0.2",
- "tslib": "2.4.0"
- },
- "peerDependencies": {
- "@mediapipe/face_detection": "~0.4.0",
- "@tensorflow/tfjs-backend-webgl": "^4.21.0",
- "@tensorflow/tfjs-converter": "^4.21.0",
- "@tensorflow/tfjs-core": "^4.21.0"
- }
- },
- "node_modules/@tensorflow-models/face-detection/node_modules/tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
- "dev": true,
- "license": "0BSD"
- },
- "node_modules/@tensorflow/tfjs": {
- "version": "4.22.0",
- "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-4.22.0.tgz",
- "integrity": "sha512-0TrIrXs6/b7FLhLVNmfh8Sah6JgjBPH4mZ8JGb7NU6WW+cx00qK5BcAZxw7NCzxj6N8MRAIfHq+oNbPUNG5VAg==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@tensorflow/tfjs-backend-cpu": "4.22.0",
- "@tensorflow/tfjs-backend-webgl": "4.22.0",
- "@tensorflow/tfjs-converter": "4.22.0",
- "@tensorflow/tfjs-core": "4.22.0",
- "@tensorflow/tfjs-data": "4.22.0",
- "@tensorflow/tfjs-layers": "4.22.0",
- "argparse": "^1.0.10",
- "chalk": "^4.1.0",
- "core-js": "3.29.1",
- "regenerator-runtime": "^0.13.5",
- "yargs": "^16.0.3"
- },
- "bin": {
- "tfjs-custom-module": "dist/tools/custom_module/cli.js"
- }
- },
- "node_modules/@tensorflow/tfjs-backend-cpu": {
- "version": "4.22.0",
- "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-4.22.0.tgz",
- "integrity": "sha512-1u0FmuLGuRAi8D2c3cocHTASGXOmHc/4OvoVDENJayjYkS119fcTcQf4iHrtLthWyDIPy3JiPhRrZQC9EwnhLw==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@types/seedrandom": "^2.4.28",
- "seedrandom": "^3.0.5"
- },
- "engines": {
- "yarn": ">= 1.3.2"
- },
- "peerDependencies": {
- "@tensorflow/tfjs-core": "4.22.0"
- }
- },
- "node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
- "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tensorflow/tfjs-backend-webgl": {
- "version": "4.22.0",
- "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-4.22.0.tgz",
- "integrity": "sha512-H535XtZWnWgNwSzv538czjVlbJebDl5QTMOth4RXr2p/kJ1qSIXE0vZvEtO+5EC9b00SvhplECny2yDewQb/Yg==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@tensorflow/tfjs-backend-cpu": "4.22.0",
- "@types/offscreencanvas": "~2019.3.0",
- "@types/seedrandom": "^2.4.28",
- "seedrandom": "^3.0.5"
- },
- "engines": {
- "yarn": ">= 1.3.2"
- },
- "peerDependencies": {
- "@tensorflow/tfjs-core": "4.22.0"
- }
- },
- "node_modules/@tensorflow/tfjs-backend-webgl/node_modules/seedrandom": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
- "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tensorflow/tfjs-converter": {
- "version": "4.22.0",
- "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-4.22.0.tgz",
- "integrity": "sha512-PT43MGlnzIo+YfbsjM79Lxk9lOq6uUwZuCc8rrp0hfpLjF6Jv8jS84u2jFb+WpUeuF4K33ZDNx8CjiYrGQ2trQ==",
- "dev": true,
- "license": "Apache-2.0",
- "peerDependencies": {
- "@tensorflow/tfjs-core": "4.22.0"
- }
- },
- "node_modules/@tensorflow/tfjs-core": {
- "version": "4.22.0",
- "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-4.22.0.tgz",
- "integrity": "sha512-LEkOyzbknKFoWUwfkr59vSB68DMJ4cjwwHgicXN0DUi3a0Vh1Er3JQqCI1Hl86GGZQvY8ezVrtDIvqR1ZFW55A==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@types/long": "^4.0.1",
- "@types/offscreencanvas": "~2019.7.0",
- "@types/seedrandom": "^2.4.28",
- "@webgpu/types": "0.1.38",
- "long": "4.0.0",
- "node-fetch": "~2.6.1",
- "seedrandom": "^3.0.5"
- },
- "engines": {
- "yarn": ">= 1.3.2"
- }
- },
- "node_modules/@tensorflow/tfjs-core/node_modules/@types/offscreencanvas": {
- "version": "2019.7.3",
- "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz",
- "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tensorflow/tfjs-core/node_modules/node-fetch": {
- "version": "2.6.13",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz",
- "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/@tensorflow/tfjs-core/node_modules/seedrandom": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
- "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tensorflow/tfjs-core/node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tensorflow/tfjs-core/node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true,
- "license": "BSD-2-Clause"
- },
- "node_modules/@tensorflow/tfjs-core/node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/@tensorflow/tfjs-data": {
- "version": "4.22.0",
- "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-4.22.0.tgz",
- "integrity": "sha512-dYmF3LihQIGvtgJrt382hSRH4S0QuAp2w1hXJI2+kOaEqo5HnUPG0k5KA6va+S1yUhx7UBToUKCBHeLHFQRV4w==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@types/node-fetch": "^2.1.2",
- "node-fetch": "~2.6.1",
- "string_decoder": "^1.3.0"
- },
- "peerDependencies": {
- "@tensorflow/tfjs-core": "4.22.0",
- "seedrandom": "^3.0.5"
- }
- },
- "node_modules/@tensorflow/tfjs-data/node_modules/node-fetch": {
- "version": "2.6.13",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz",
- "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/@tensorflow/tfjs-data/node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tensorflow/tfjs-data/node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true,
- "license": "BSD-2-Clause"
- },
- "node_modules/@tensorflow/tfjs-data/node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/@tensorflow/tfjs-layers": {
- "version": "4.22.0",
- "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-4.22.0.tgz",
- "integrity": "sha512-lybPj4ZNj9iIAPUj7a8ZW1hg8KQGfqWLlCZDi9eM/oNKCCAgchiyzx8OrYoWmRrB+AM6VNEeIT+2gZKg5ReihA==",
- "dev": true,
- "license": "Apache-2.0 AND MIT",
- "peerDependencies": {
- "@tensorflow/tfjs-core": "4.22.0"
- }
- },
- "node_modules/@tensorflow/tfjs/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/@tensorflow/tfjs/node_modules/core-js": {
- "version": "3.29.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz",
- "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/@tensorflow/tfjs/node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true,
- "license": "BSD-3-Clause"
- },
- "node_modules/@tensorflow/tfjs/node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@tensorflow/tfjs/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/@tootallnate/once": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
@@ -5355,13 +5037,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@types/long": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
- "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@types/node": {
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz",
@@ -5372,34 +5047,6 @@
"undici-types": "~7.8.0"
}
},
- "node_modules/@types/node-fetch": {
- "version": "2.6.13",
- "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.13.tgz",
- "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "form-data": "^4.0.4"
- }
- },
- "node_modules/@types/node-fetch/node_modules/form-data": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
- "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "es-set-tostringtag": "^2.1.0",
- "hasown": "^2.0.2",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/@types/node-hid": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/@types/node-hid/-/node-hid-1.3.4.tgz",
@@ -5410,13 +5057,6 @@
"@types/node": "*"
}
},
- "node_modules/@types/offscreencanvas": {
- "version": "2019.3.0",
- "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz",
- "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@types/parse-json": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
@@ -5442,13 +5082,6 @@
"csstype": "^3.0.2"
}
},
- "node_modules/@types/seedrandom": {
- "version": "2.4.34",
- "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.34.tgz",
- "integrity": "sha512-ytDiArvrn/3Xk6/vtylys5tlY6eo7Ane0hvcx++TKo6RxQXuVfW0AF/oeWqAj9dN29SyhtawuXstgmPlwNcv/A==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@types/semver": {
"version": "7.7.0",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz",
@@ -5831,13 +5464,6 @@
"@xtuc/long": "4.2.2"
}
},
- "node_modules/@webgpu/types": {
- "version": "0.1.38",
- "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.38.tgz",
- "integrity": "sha512-7LrhVKz2PRh+DD7+S+PVaFd5HxaWQvoMqBbsV9fNJO1pjUs1P8bM2vQVNfk+3URTqbuTI7gkXi0rfsN0IadoBA==",
- "dev": true,
- "license": "BSD-3-Clause"
- },
"node_modules/@webpack-cli/configtest": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
@@ -18081,13 +17707,6 @@
"node": ">=0.8.6"
}
},
- "node_modules/long": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
- "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
- "dev": true,
- "license": "Apache-2.0"
- },
"node_modules/longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
diff --git a/package.json b/package.json
index 2ef10d454e3..280439fd57c 100644
--- a/package.json
+++ b/package.json
@@ -75,7 +75,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.6.0-face-sensing",
+ "@scratch/scratch-gui": "11.6.0-gui-standalone",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
From 24bf9d3bd5ca3f31a3821a9404808651fe8f1079 Mon Sep 17 00:00:00 2001
From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date: Mon, 4 Aug 2025 12:08:09 -0700
Subject: [PATCH 080/129] chore(deps): tell Renovate to track face sensing tag
for GUI
---
renovate.json5 | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/renovate.json5 b/renovate.json5
index ea288a16745..c9ca1cafe93 100644
--- a/renovate.json5
+++ b/renovate.json5
@@ -3,5 +3,13 @@
"extends": [
"github>scratchfoundation/scratch-renovate-config:js-app"
+ ],
+
+ "packageRules": [
+ {
+ "description": "Force scratch-gui to follow a specific NPM tag. Use `latest` to stick to normal releases.",
+ "matchPackageNames": ["@scratch/scratch-gui"],
+ "followTag": "UEPR-282-face-sensing"
+ }
]
}
From 53235025dd9f2740d333fc3c708a56855ab21d81 Mon Sep 17 00:00:00 2001
From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date: Mon, 4 Aug 2025 12:17:28 -0700
Subject: [PATCH 081/129] chore(deps): go back to scratch-gui@face-sensing
---
package-lock.json | 427 +++++++++++++++++++++++++++++++++++++++++++---
package.json | 2 +-
2 files changed, 405 insertions(+), 24 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 0d987f89b01..c3a36b6b93c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -39,7 +39,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.6.0-gui-standalone",
+ "@scratch/scratch-gui": "11.6.0-face-sensing",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
@@ -4310,16 +4310,18 @@
}
},
"node_modules/@scratch/scratch-gui": {
- "version": "11.6.0-gui-standalone",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.6.0-gui-standalone.tgz",
- "integrity": "sha512-h5zTh7OkXsRme55/DrLO5L5fgeS+v4/M6UEJTxMS/cyxq6KnEQgwEPTQObMkVF7e15zkwWANScACpK53XtWaVg==",
+ "version": "11.6.0-face-sensing",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.6.0-face-sensing.tgz",
+ "integrity": "sha512-SAEQAPREgkIoBoiyZHEhNNIgoiOmWbe/Bwhc5/nHh5zIfrtEZH4u6JNDBqaZmfFiVb/PKBqkLFW7gtlSIZ1tbw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
"@microbit/microbit-universal-hex": "0.2.2",
- "@scratch/scratch-render": "11.6.0-gui-standalone",
- "@scratch/scratch-svg-renderer": "11.6.0-gui-standalone",
- "@scratch/scratch-vm": "11.6.0-gui-standalone",
+ "@scratch/scratch-render": "11.6.0-face-sensing",
+ "@scratch/scratch-svg-renderer": "11.6.0-face-sensing",
+ "@scratch/scratch-vm": "11.6.0-face-sensing",
+ "@tensorflow-models/face-detection": "^1.0.3",
+ "@tensorflow/tfjs": "^4.22.0",
"arraybuffer-loader": "1.0.8",
"autoprefixer": "9.8.8",
"balance-text": "3.3.1",
@@ -4370,7 +4372,7 @@
"redux-throttle": "0.1.1",
"scratch-audio": "2.0.199",
"scratch-blocks": "1.1.210",
- "scratch-l10n": "6.0.12",
+ "scratch-l10n": "6.0.13",
"scratch-paint": "3.0.339",
"scratch-render-fonts": "1.0.218",
"scratch-storage": "4.0.201",
@@ -4591,9 +4593,9 @@
}
},
"node_modules/@scratch/scratch-gui/node_modules/scratch-l10n": {
- "version": "6.0.12",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.12.tgz",
- "integrity": "sha512-w6uLfw6hQMw2KFbU9j1jZjoZcC6DDT3AIMnLINwLOd0JpAEUlccQphfcXHlm9x1pJ9hY1U4IE2O8lOiN7itNPQ==",
+ "version": "6.0.13",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.13.tgz",
+ "integrity": "sha512-uQyGFxd8eM9tn9dlxWLE7SGa5wBNVcIrR4YZaYLinzIysp563tsWxM/ucvvvcfo7PiNy7AOcQvy6C/IgcsJYig==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4629,13 +4631,13 @@
}
},
"node_modules/@scratch/scratch-render": {
- "version": "11.6.0-gui-standalone",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.6.0-gui-standalone.tgz",
- "integrity": "sha512-o+6yWnByZIU1Nujstm0sWAQV9ywS60C1SFxcVJFfe+TTUBWEWZ75VQa6IPuSR1r5OPGDGOOJ/gqGNrJtJGnLmA==",
+ "version": "11.6.0-face-sensing",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.6.0-face-sensing.tgz",
+ "integrity": "sha512-wUPqUwm0PQUUwHQDoyMN7+xlwA23nbvMc8Ua+lW2+UV9Q7XrGityIwevYiYPBavk/WiTjnGM+znQ8bdSfJG3Bg==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-svg-renderer": "11.6.0-gui-standalone",
+ "@scratch/scratch-svg-renderer": "11.6.0-face-sensing",
"grapheme-breaker": "0.3.2",
"hull.js": "0.2.10",
"ify-loader": "1.1.0",
@@ -4672,9 +4674,9 @@
"dev": true
},
"node_modules/@scratch/scratch-svg-renderer": {
- "version": "11.6.0-gui-standalone",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.6.0-gui-standalone.tgz",
- "integrity": "sha512-4LEvV9xfmI+yDfwDd1o6ieGOFznLuVPeciTQQccd0y4GiztCSuNOKdYF+htTFnmR0Nxz45Bpl6SCSJVictXtaA==",
+ "version": "11.6.0-face-sensing",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.6.0-face-sensing.tgz",
+ "integrity": "sha512-a9Yr4NbpuhYonsU7sNSwVgKoEH8mQA9S02BDyCc7soBU6W67I1QOZgWL+J2eunE2G8qyS7IDhTwdkURMmqYnWQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4708,14 +4710,14 @@
}
},
"node_modules/@scratch/scratch-vm": {
- "version": "11.6.0-gui-standalone",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.6.0-gui-standalone.tgz",
- "integrity": "sha512-5GUy1jz/GOo05QtJhbFyJ6AX5ar9oIoZBp8rdHQnhzhZ5ICDGRnl42abBvFsm1cyq84CTO2ogvyuRsj1duwN/A==",
+ "version": "11.6.0-face-sensing",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.6.0-face-sensing.tgz",
+ "integrity": "sha512-is+pyVkB/vuIFgToVS4tJj37agVIqgmwhnLYiKxl9pSwNNyYvvfksXS9bfR79Z3oz/fV03yXm+OKqWrtPVwdgg==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-render": "11.6.0-gui-standalone",
- "@scratch/scratch-svg-renderer": "11.6.0-gui-standalone",
+ "@scratch/scratch-render": "11.6.0-face-sensing",
+ "@scratch/scratch-svg-renderer": "11.6.0-face-sensing",
"@vernier/godirect": "1.8.3",
"arraybuffer-loader": "1.0.8",
"atob": "2.1.2",
@@ -4809,6 +4811,322 @@
"@sinonjs/commons": "^3.0.0"
}
},
+ "node_modules/@tensorflow-models/face-detection": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tensorflow-models/face-detection/-/face-detection-1.0.3.tgz",
+ "integrity": "sha512-4Ld/vFF8MrdFdrMWhlLKZD4hMW0PNY9OkYeqoCPNZ+LwFyenxAqVaNaWrR8JKp37vw9Nuzp4ILbkal5zPUnA0g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "rimraf": "^3.0.2",
+ "tslib": "2.4.0"
+ },
+ "peerDependencies": {
+ "@mediapipe/face_detection": "~0.4.0",
+ "@tensorflow/tfjs-backend-webgl": "^4.21.0",
+ "@tensorflow/tfjs-converter": "^4.21.0",
+ "@tensorflow/tfjs-core": "^4.21.0"
+ }
+ },
+ "node_modules/@tensorflow-models/face-detection/node_modules/tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/@tensorflow/tfjs": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-4.22.0.tgz",
+ "integrity": "sha512-0TrIrXs6/b7FLhLVNmfh8Sah6JgjBPH4mZ8JGb7NU6WW+cx00qK5BcAZxw7NCzxj6N8MRAIfHq+oNbPUNG5VAg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@tensorflow/tfjs-backend-cpu": "4.22.0",
+ "@tensorflow/tfjs-backend-webgl": "4.22.0",
+ "@tensorflow/tfjs-converter": "4.22.0",
+ "@tensorflow/tfjs-core": "4.22.0",
+ "@tensorflow/tfjs-data": "4.22.0",
+ "@tensorflow/tfjs-layers": "4.22.0",
+ "argparse": "^1.0.10",
+ "chalk": "^4.1.0",
+ "core-js": "3.29.1",
+ "regenerator-runtime": "^0.13.5",
+ "yargs": "^16.0.3"
+ },
+ "bin": {
+ "tfjs-custom-module": "dist/tools/custom_module/cli.js"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-backend-cpu": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-4.22.0.tgz",
+ "integrity": "sha512-1u0FmuLGuRAi8D2c3cocHTASGXOmHc/4OvoVDENJayjYkS119fcTcQf4iHrtLthWyDIPy3JiPhRrZQC9EwnhLw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/seedrandom": "^2.4.28",
+ "seedrandom": "^3.0.5"
+ },
+ "engines": {
+ "yarn": ">= 1.3.2"
+ },
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "4.22.0"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
+ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tensorflow/tfjs-backend-webgl": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-4.22.0.tgz",
+ "integrity": "sha512-H535XtZWnWgNwSzv538czjVlbJebDl5QTMOth4RXr2p/kJ1qSIXE0vZvEtO+5EC9b00SvhplECny2yDewQb/Yg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@tensorflow/tfjs-backend-cpu": "4.22.0",
+ "@types/offscreencanvas": "~2019.3.0",
+ "@types/seedrandom": "^2.4.28",
+ "seedrandom": "^3.0.5"
+ },
+ "engines": {
+ "yarn": ">= 1.3.2"
+ },
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "4.22.0"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-backend-webgl/node_modules/seedrandom": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
+ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tensorflow/tfjs-converter": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-4.22.0.tgz",
+ "integrity": "sha512-PT43MGlnzIo+YfbsjM79Lxk9lOq6uUwZuCc8rrp0hfpLjF6Jv8jS84u2jFb+WpUeuF4K33ZDNx8CjiYrGQ2trQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "4.22.0"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-core": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-4.22.0.tgz",
+ "integrity": "sha512-LEkOyzbknKFoWUwfkr59vSB68DMJ4cjwwHgicXN0DUi3a0Vh1Er3JQqCI1Hl86GGZQvY8ezVrtDIvqR1ZFW55A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/long": "^4.0.1",
+ "@types/offscreencanvas": "~2019.7.0",
+ "@types/seedrandom": "^2.4.28",
+ "@webgpu/types": "0.1.38",
+ "long": "4.0.0",
+ "node-fetch": "~2.6.1",
+ "seedrandom": "^3.0.5"
+ },
+ "engines": {
+ "yarn": ">= 1.3.2"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-core/node_modules/@types/offscreencanvas": {
+ "version": "2019.7.3",
+ "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz",
+ "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tensorflow/tfjs-core/node_modules/node-fetch": {
+ "version": "2.6.13",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz",
+ "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@tensorflow/tfjs-core/node_modules/seedrandom": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
+ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tensorflow/tfjs-core/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tensorflow/tfjs-core/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/@tensorflow/tfjs-core/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-data": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-4.22.0.tgz",
+ "integrity": "sha512-dYmF3LihQIGvtgJrt382hSRH4S0QuAp2w1hXJI2+kOaEqo5HnUPG0k5KA6va+S1yUhx7UBToUKCBHeLHFQRV4w==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/node-fetch": "^2.1.2",
+ "node-fetch": "~2.6.1",
+ "string_decoder": "^1.3.0"
+ },
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "4.22.0",
+ "seedrandom": "^3.0.5"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-data/node_modules/node-fetch": {
+ "version": "2.6.13",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz",
+ "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@tensorflow/tfjs-data/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tensorflow/tfjs-data/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/@tensorflow/tfjs-data/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-layers": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-4.22.0.tgz",
+ "integrity": "sha512-lybPj4ZNj9iIAPUj7a8ZW1hg8KQGfqWLlCZDi9eM/oNKCCAgchiyzx8OrYoWmRrB+AM6VNEeIT+2gZKg5ReihA==",
+ "dev": true,
+ "license": "Apache-2.0 AND MIT",
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "4.22.0"
+ }
+ },
+ "node_modules/@tensorflow/tfjs/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/@tensorflow/tfjs/node_modules/core-js": {
+ "version": "3.29.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz",
+ "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/@tensorflow/tfjs/node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@tensorflow/tfjs/node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@tensorflow/tfjs/node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/@tootallnate/once": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
@@ -5037,6 +5355,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/long": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
+ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/node": {
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz",
@@ -5047,6 +5372,34 @@
"undici-types": "~7.8.0"
}
},
+ "node_modules/@types/node-fetch": {
+ "version": "2.6.13",
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.13.tgz",
+ "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "form-data": "^4.0.4"
+ }
+ },
+ "node_modules/@types/node-fetch/node_modules/form-data": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+ "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "hasown": "^2.0.2",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/@types/node-hid": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/@types/node-hid/-/node-hid-1.3.4.tgz",
@@ -5057,6 +5410,13 @@
"@types/node": "*"
}
},
+ "node_modules/@types/offscreencanvas": {
+ "version": "2019.3.0",
+ "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz",
+ "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/parse-json": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
@@ -5082,6 +5442,13 @@
"csstype": "^3.0.2"
}
},
+ "node_modules/@types/seedrandom": {
+ "version": "2.4.34",
+ "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.34.tgz",
+ "integrity": "sha512-ytDiArvrn/3Xk6/vtylys5tlY6eo7Ane0hvcx++TKo6RxQXuVfW0AF/oeWqAj9dN29SyhtawuXstgmPlwNcv/A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/semver": {
"version": "7.7.0",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz",
@@ -5464,6 +5831,13 @@
"@xtuc/long": "4.2.2"
}
},
+ "node_modules/@webgpu/types": {
+ "version": "0.1.38",
+ "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.38.tgz",
+ "integrity": "sha512-7LrhVKz2PRh+DD7+S+PVaFd5HxaWQvoMqBbsV9fNJO1pjUs1P8bM2vQVNfk+3URTqbuTI7gkXi0rfsN0IadoBA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
"node_modules/@webpack-cli/configtest": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
@@ -17707,6 +18081,13 @@
"node": ">=0.8.6"
}
},
+ "node_modules/long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
diff --git a/package.json b/package.json
index 280439fd57c..2ef10d454e3 100644
--- a/package.json
+++ b/package.json
@@ -75,7 +75,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.6.0-gui-standalone",
+ "@scratch/scratch-gui": "11.6.0-face-sensing",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
From 71dcfa0f75e9c59bc08900ceea2bc75c667698a2 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 4 Aug 2025 19:18:34 +0000
Subject: [PATCH 082/129] fix(deps): update dependency scratch-l10n to v6.0.16
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index c3a36b6b93c..48d91dd7237 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.15",
+ "scratch-l10n": "6.0.16",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23854,9 +23854,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.15",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.15.tgz",
- "integrity": "sha512-GniGiCxVs37sWTWyylg7ItGZvwd1rbCW9pwr7Lh7SHZcjdzyOH2MA9Bk1ktJJlW8mt//A4r1Kf+zFxwyhNXCLA==",
+ "version": "6.0.16",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.16.tgz",
+ "integrity": "sha512-goGW5nlg0q8P8ZzP/Mpf4K+zAThCqEvKh//5PayQAWoTvH3j5YhKNr8xnioMARPi53/J7hPE3Tdd5UyeBRQDhg==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 2ef10d454e3..f41c5140672 100644
--- a/package.json
+++ b/package.json
@@ -148,7 +148,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.15",
+ "scratch-l10n": "6.0.16",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From e96b79a17df478949dda03209e27579c1e55b198 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 5 Aug 2025 13:30:08 +0000
Subject: [PATCH 083/129] fix(deps): update dependency scratch-l10n to v6.0.17
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 48d91dd7237..ca868422953 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.16",
+ "scratch-l10n": "6.0.17",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23854,9 +23854,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.16",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.16.tgz",
- "integrity": "sha512-goGW5nlg0q8P8ZzP/Mpf4K+zAThCqEvKh//5PayQAWoTvH3j5YhKNr8xnioMARPi53/J7hPE3Tdd5UyeBRQDhg==",
+ "version": "6.0.17",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.17.tgz",
+ "integrity": "sha512-P0+M1PLZkvV429pjt9w5G9hYs58Zz3MKk7mQFUoKd2pb1RZJAPcV4H5D2CnUHeu8Ykk0CK/D5kDmg7sim8W6nQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index f41c5140672..08b4f4bd7f8 100644
--- a/package.json
+++ b/package.json
@@ -148,7 +148,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.16",
+ "scratch-l10n": "6.0.17",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From 0ca80d864f896071d3bd40d03db1fab0c15cd4c5 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 5 Aug 2025 19:40:48 +0000
Subject: [PATCH 084/129] fix(deps): update dependency scratch-storage to
^4.0.202
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index ca868422953..d3259579a37 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.201"
+ "scratch-storage": "^4.0.202"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -24020,9 +24020,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.202",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.202.tgz",
- "integrity": "sha512-KzTH+LVrgSzXDBb6HIxvBTd4Du57raNaRm5ZH6C4Z5xDEag5AolNmz39CFCeDBNy2+sDhPcqtLsKuXkR1K6FlQ==",
+ "version": "4.0.203",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.203.tgz",
+ "integrity": "sha512-bdAL0ImEL+A+DlFjO+Wo3uscor8P/XP4h9mHUisaXIhl/mPTrkmkgGRuOiF0cRtM5ONxJ4cbgrSMN1Tjj6TMfw==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index 08b4f4bd7f8..6c5df9af997 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.201"
+ "scratch-storage": "^4.0.202"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From 1c432c8ec9cb256cf875c2c92670e9cd4a671fe0 Mon Sep 17 00:00:00 2001
From: Varun Biniwale
Date: Tue, 5 Aug 2025 22:42:15 +0200
Subject: [PATCH 085/129] explore: address lint issues
---
src/components/grid/grid.jsx | 89 +++++++++++--------
.../thumbnail/thumbnail-remove-button.jsx | 7 +-
src/views/explore/explore.jsx | 10 +--
src/views/search/search.jsx | 10 +--
4 files changed, 63 insertions(+), 53 deletions(-)
diff --git a/src/components/grid/grid.jsx b/src/components/grid/grid.jsx
index 5f1a8a00db5..7c02b306227 100644
--- a/src/components/grid/grid.jsx
+++ b/src/components/grid/grid.jsx
@@ -1,6 +1,7 @@
const classNames = require('classnames');
const PropTypes = require('prop-types');
const React = require('react');
+const {useCallback} = require('react');
const Thumbnail = require('../thumbnail/thumbnail.jsx');
const FlexRow = require('../flex-row/flex-row.jsx');
@@ -8,53 +9,63 @@ const thumbnailUrl = require('../../lib/user-thumbnail');
require('./grid.scss');
-const Grid = props => (
-
-
- {props.items.map((item, key) => {
- const href = `/${props.itemType}/${item.id}/`;
- if (props.itemType === 'projects') {
+const Grid = props => {
+ const handleRemove = useCallback(
+ item => () => {
+ if (props.onRemove) {
+ props.onRemove(item);
+ }
+ },
+ [props.onRemove]
+ );
+ return (
+
+
+ {props.items.map((item, key) => {
+ const href = `/${props.itemType}/${item.id}/`;
+ if (props.itemType === 'projects') {
+ return (
+
+ );
+ }
return (
props.onRemove(item)}
+ title={item.title}
+ type={'gallery'}
+ showRemoveButton={props.showRemoveButton}
+ onRemove={handleRemove(item)}
/>
);
- }
- return (
- props.onRemove(item)}
- />
- );
- })}
-
-
-);
+ })}
+
+
+ );
+};
Grid.propTypes = {
className: PropTypes.string,
diff --git a/src/components/thumbnail/thumbnail-remove-button.jsx b/src/components/thumbnail/thumbnail-remove-button.jsx
index a01d03a2cd9..922cde7f838 100644
--- a/src/components/thumbnail/thumbnail-remove-button.jsx
+++ b/src/components/thumbnail/thumbnail-remove-button.jsx
@@ -1,8 +1,8 @@
const React = require('react');
-const PropTypes = require('prop-types');
require('./thumbnail-remove-button.scss');
+const PropTypes = require('prop-types');
-const ThumbnailRemoveButton = ({ onClick }) => (
+const ThumbnailRemoveButton = ({onClick}) => (
(
);
+ThumbnailRemoveButton.propTypes = {
+ onClick: PropTypes.func
+};
module.exports = ThumbnailRemoveButton;
diff --git a/src/views/explore/explore.jsx b/src/views/explore/explore.jsx
index 34010502ff8..d485bac82cf 100644
--- a/src/views/explore/explore.jsx
+++ b/src/views/explore/explore.jsx
@@ -112,15 +112,13 @@ class Explore extends React.Component {
}
handleRemove (item) {
- // if (!window.confirm('Are you sure you want to remove this item from the search index?')) return;
-
- // TODO: don't slice the itemType
+ // TODO: don't slice the itemType (this was a hacky way to turn 'projects' --> 'project')
api({
uri: `/admin/search/${this.state.itemType.slice(0, -1)}/${item.id}`,
method: 'DELETE'
- }, (err, res) => {
+ }, err => {
if (err) {
- alert('Error removing project.');
+ alert('Error removing project.'); // eslint-disable-line no-alert
console.error(err);
} else {
const updated = this.state.loaded.filter(p => p.id !== item.id);
@@ -292,7 +290,5 @@ const mapStateToProps = state => ({
session: state.session
});
-const WrappedExplore = injectIntl(Explore);
-
const ConnectedExplore = connect(mapStateToProps)(injectIntl(Explore));
render( , document.getElementById('app'));
diff --git a/src/views/search/search.jsx b/src/views/search/search.jsx
index be10cd2a3b4..73ba2f392ac 100644
--- a/src/views/search/search.jsx
+++ b/src/views/search/search.jsx
@@ -91,7 +91,7 @@ class Search extends React.Component {
this.props.dispatch(navigationActions.setSearchTerm(term));
}
componentDidUpdate (prevProps) {
- const sessionLoaded = this.props.session.status === sessionActions.Status.FETCHED;
+ const sessionLoaded = this.props.session.status === sessionActions.Status.FETCHED;
const wasSessionLoaded = prevProps.session.status === sessionActions.Status.FETCHED;
const becameAuthenticated = !wasSessionLoaded && sessionLoaded;
@@ -141,12 +141,12 @@ class Search extends React.Component {
queryString += `&q=${termText}`;
}
- const isAdmin = this.props.session?.session?.permissions?.admin
- const token = this.props.session?.session?.user?.token
+ const isAdmin = this.props.session?.session?.permissions?.admin;
+ const token = this.props.session?.session?.user?.token;
api({
uri: `${isAdmin ? '/admin' : ''}/search/${this.state.tab}?${queryString}`,
- ...(isAdmin && token ? { authentication: token } : {})
+ ...(isAdmin && token ? {authentication: token} : {})
}, (err, body) => {
const loadedSoFar = this.state.loaded;
Array.prototype.push.apply(loadedSoFar, body);
@@ -297,7 +297,7 @@ Search.propTypes = {
intl: intlShape,
searchTerm: PropTypes.string,
session: PropTypes.object,
- isTotallyNormal: PropTypes.bool, // eslint-disable-line react/no-unused-prop-types
+ isTotallyNormal: PropTypes.bool // eslint-disable-line react/no-unused-prop-types
};
const mapStateToProps = state => ({
From 6acf36b7812b449be16ade4179d842d546509f28 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 6 Aug 2025 12:41:07 +0000
Subject: [PATCH 086/129] fix(deps): update dependency scratch-l10n to v6.0.19
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index d3259579a37..755304d5d64 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.17",
+ "scratch-l10n": "6.0.19",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23854,9 +23854,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.17",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.17.tgz",
- "integrity": "sha512-P0+M1PLZkvV429pjt9w5G9hYs58Zz3MKk7mQFUoKd2pb1RZJAPcV4H5D2CnUHeu8Ykk0CK/D5kDmg7sim8W6nQ==",
+ "version": "6.0.19",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.19.tgz",
+ "integrity": "sha512-jboFSZ5us8ZStAijtakbiThPPnrLjGoZAzFj7KS4QZdAR90gFUzIXyvqS3NhkW5NUN0Xwt2pGW5sVd7SVSX83g==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 6c5df9af997..8f7f3005794 100644
--- a/package.json
+++ b/package.json
@@ -148,7 +148,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.17",
+ "scratch-l10n": "6.0.19",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From e6da01be9a46cf0b4440d776b2f1ba47bf794415 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 6 Aug 2025 18:48:27 +0000
Subject: [PATCH 087/129] fix(deps): update dependency scratch-storage to
^4.0.203
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 755304d5d64..b450ffda9f9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.202"
+ "scratch-storage": "^4.0.203"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -24020,9 +24020,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.203",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.203.tgz",
- "integrity": "sha512-bdAL0ImEL+A+DlFjO+Wo3uscor8P/XP4h9mHUisaXIhl/mPTrkmkgGRuOiF0cRtM5ONxJ4cbgrSMN1Tjj6TMfw==",
+ "version": "4.0.204",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.204.tgz",
+ "integrity": "sha512-IfYSZLSGLb5p2AQ2xYdYK3db70lRA3w3rWq/7NfSrqdqo/9j1mS9zC8Tq3pAhqHg08QSmtiWK9b9dZPQKNUdAg==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index 8f7f3005794..7b4559064c2 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.202"
+ "scratch-storage": "^4.0.203"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From 63b3dcce0059e502fbb35e1f992b0d08adf29836 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 7 Aug 2025 12:39:27 +0000
Subject: [PATCH 088/129] fix(deps): update dependency scratch-l10n to v6.0.20
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index b450ffda9f9..7450d6719fd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.19",
+ "scratch-l10n": "6.0.20",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23854,9 +23854,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.19",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.19.tgz",
- "integrity": "sha512-jboFSZ5us8ZStAijtakbiThPPnrLjGoZAzFj7KS4QZdAR90gFUzIXyvqS3NhkW5NUN0Xwt2pGW5sVd7SVSX83g==",
+ "version": "6.0.20",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.20.tgz",
+ "integrity": "sha512-Nc/Va2OQuS+ZxEmYV6SjZqRuoo10DDh3kyhAcKsRnkd68mSl3sV+XcJFGpLnX6YCapjqnuB09j8oweprd2hE/w==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 7b4559064c2..38d5ab31dbb 100644
--- a/package.json
+++ b/package.json
@@ -148,7 +148,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.19",
+ "scratch-l10n": "6.0.20",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From 3bfa421e3124bdb713e8946f533820366234755c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 7 Aug 2025 16:52:27 +0000
Subject: [PATCH 089/129] fix(deps): update dependency scratch-storage to
^4.0.204
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 7450d6719fd..9b5a7bba748 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.203"
+ "scratch-storage": "^4.0.204"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -24020,9 +24020,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.204",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.204.tgz",
- "integrity": "sha512-IfYSZLSGLb5p2AQ2xYdYK3db70lRA3w3rWq/7NfSrqdqo/9j1mS9zC8Tq3pAhqHg08QSmtiWK9b9dZPQKNUdAg==",
+ "version": "4.0.206",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.206.tgz",
+ "integrity": "sha512-VThdQY73qZDwnvBMNVs2jy0iSLi6RcCgiNHLuOQyz14fsi5YSddpqAKVEKBohUZQe+16I+h9GTrFuIcmIemCtA==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index 38d5ab31dbb..86504548a5d 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.203"
+ "scratch-storage": "^4.0.204"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From dc004fd2cd479e09c46bf9932214672be366354c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 8 Aug 2025 09:11:21 +0000
Subject: [PATCH 090/129] fix(deps): update dependency scratch-l10n to v6.0.21
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 9b5a7bba748..0be97f64f9e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.20",
+ "scratch-l10n": "6.0.21",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23854,9 +23854,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.20",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.20.tgz",
- "integrity": "sha512-Nc/Va2OQuS+ZxEmYV6SjZqRuoo10DDh3kyhAcKsRnkd68mSl3sV+XcJFGpLnX6YCapjqnuB09j8oweprd2hE/w==",
+ "version": "6.0.21",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.21.tgz",
+ "integrity": "sha512-gvARUWCWQz+3zMIcQtvI/rKFzneTlpfiIVhrL+mO8THLFdSqYr3YTqtgMm1t1M/5WaVF2lWHjHot+tz4r/p1qA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 86504548a5d..532fdb6be3a 100644
--- a/package.json
+++ b/package.json
@@ -148,7 +148,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.89.2",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.20",
+ "scratch-l10n": "6.0.21",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From 4a9b73bed7efdaa73421fdd05b59274e4e58fd56 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 8 Aug 2025 13:38:46 +0000
Subject: [PATCH 091/129] fix(deps): update dependency scratch-storage to
^4.0.206
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 0be97f64f9e..f473bd260a0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.204"
+ "scratch-storage": "^4.0.206"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -24020,9 +24020,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.206",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.206.tgz",
- "integrity": "sha512-VThdQY73qZDwnvBMNVs2jy0iSLi6RcCgiNHLuOQyz14fsi5YSddpqAKVEKBohUZQe+16I+h9GTrFuIcmIemCtA==",
+ "version": "4.0.207",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.207.tgz",
+ "integrity": "sha512-aGU3pQ2EE51fDkIbmRVxze6IVOnMaIhUx4PJClRhlsIepXZEdyed7hRZ40CZ1+EA8H49tLzTjpd7lkWYmopsFA==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index 532fdb6be3a..825fcc0a4cb 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.204"
+ "scratch-storage": "^4.0.206"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From c424d3073705a8491648d5cb5e5c08266c19a496 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 9 Aug 2025 00:56:26 +0000
Subject: [PATCH 092/129] chore(deps): update dependency sass to v1.90.0
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index f473bd260a0..dac8f772d5f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -110,7 +110,7 @@
"redux-mock-store": "1.5.5",
"redux-thunk": "2.4.2",
"regenerator-runtime": "0.13.9",
- "sass": "1.89.2",
+ "sass": "1.90.0",
"sass-loader": "10.5.2",
"scratch-l10n": "6.0.21",
"selenium-webdriver": "4.34.0",
@@ -23548,9 +23548,9 @@
"license": "MIT"
},
"node_modules/sass": {
- "version": "1.89.2",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.2.tgz",
- "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==",
+ "version": "1.90.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.90.0.tgz",
+ "integrity": "sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==",
"dev": true,
"license": "MIT",
"dependencies": {
diff --git a/package.json b/package.json
index 825fcc0a4cb..6d98c8daf65 100644
--- a/package.json
+++ b/package.json
@@ -146,7 +146,7 @@
"redux-mock-store": "1.5.5",
"redux-thunk": "2.4.2",
"regenerator-runtime": "0.13.9",
- "sass": "1.89.2",
+ "sass": "1.90.0",
"sass-loader": "10.5.2",
"scratch-l10n": "6.0.21",
"selenium-webdriver": "4.34.0",
From 3a97163c5c77df7e98d4e342ae0675d0188c2464 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 9 Aug 2025 05:36:07 +0000
Subject: [PATCH 093/129] fix(deps): update dependency scratch-l10n to v6.0.22
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index dac8f772d5f..078ab3058a9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.90.0",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.21",
+ "scratch-l10n": "6.0.22",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23854,9 +23854,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.21",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.21.tgz",
- "integrity": "sha512-gvARUWCWQz+3zMIcQtvI/rKFzneTlpfiIVhrL+mO8THLFdSqYr3YTqtgMm1t1M/5WaVF2lWHjHot+tz4r/p1qA==",
+ "version": "6.0.22",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.22.tgz",
+ "integrity": "sha512-L7BT0HmkwQ4BlIBmWibosPS3y7hjc41rjM3c42pGra6GugM1uHXy61cvTF0whJHrMZPdqox8nW1y3rmVlYlhKA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 6d98c8daf65..8c85eb1b520 100644
--- a/package.json
+++ b/package.json
@@ -148,7 +148,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.90.0",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.21",
+ "scratch-l10n": "6.0.22",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From 84b92a67db4afac6cd9ed0194f91418cd45bd606 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 9 Aug 2025 09:07:45 +0000
Subject: [PATCH 094/129] fix(deps): update dependency scratch-storage to
^4.0.207
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 078ab3058a9..bcd0e5ac3c1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.206"
+ "scratch-storage": "^4.0.207"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -24020,9 +24020,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.207",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.207.tgz",
- "integrity": "sha512-aGU3pQ2EE51fDkIbmRVxze6IVOnMaIhUx4PJClRhlsIepXZEdyed7hRZ40CZ1+EA8H49tLzTjpd7lkWYmopsFA==",
+ "version": "4.0.209",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.209.tgz",
+ "integrity": "sha512-R0/mTnlCKxQTJohrceEvyIwpPywDI7OsRIieWbM7f838HLlT91c9MS11RndQzzckCAvRp5U+S8L5FP3Y1XyQTA==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index 8c85eb1b520..eb8896109b8 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.206"
+ "scratch-storage": "^4.0.207"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From 50382e17205c67c36900025bbeac0b14478e81a7 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 9 Aug 2025 12:46:33 +0000
Subject: [PATCH 095/129] fix(deps): update dependency scratch-l10n to v6.0.23
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index bcd0e5ac3c1..e400fa3b796 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.90.0",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.22",
+ "scratch-l10n": "6.0.23",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23854,9 +23854,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.22",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.22.tgz",
- "integrity": "sha512-L7BT0HmkwQ4BlIBmWibosPS3y7hjc41rjM3c42pGra6GugM1uHXy61cvTF0whJHrMZPdqox8nW1y3rmVlYlhKA==",
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.23.tgz",
+ "integrity": "sha512-LLMefea+EtW6X2zNYqnNfRfSDvQIV5QYEU7oLth/bY6TFBJlDYWI+C3SqoQh8itInyAdEfnSq4A5dghDH62dKg==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index eb8896109b8..12bedaa826a 100644
--- a/package.json
+++ b/package.json
@@ -148,7 +148,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.90.0",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.22",
+ "scratch-l10n": "6.0.23",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From 442d5bb0879888ba8ba810c681e13f8f2e762242 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 10 Aug 2025 09:35:10 +0000
Subject: [PATCH 096/129] fix(deps): update dependency scratch-l10n to v6.0.24
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index e400fa3b796..6bbc71d7f15 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.90.0",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.23",
+ "scratch-l10n": "6.0.24",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23854,9 +23854,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.23",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.23.tgz",
- "integrity": "sha512-LLMefea+EtW6X2zNYqnNfRfSDvQIV5QYEU7oLth/bY6TFBJlDYWI+C3SqoQh8itInyAdEfnSq4A5dghDH62dKg==",
+ "version": "6.0.24",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.24.tgz",
+ "integrity": "sha512-dzVxD3liRcZCs9Bo/SFNgB947/nolmFMm2YJPGBr3obbBJbWMk0PLxlRuWzqj6mPm9Cg0CH9NlN72w4Feh6/fQ==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 12bedaa826a..339912d23cc 100644
--- a/package.json
+++ b/package.json
@@ -148,7 +148,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.90.0",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.23",
+ "scratch-l10n": "6.0.24",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From 174fda4297a98f028299582552258c1aaafc1d7d Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 10 Aug 2025 15:04:17 +0000
Subject: [PATCH 097/129] fix(deps): update dependency scratch-storage to
^4.0.209
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 6bbc71d7f15..33338c2ff7e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.207"
+ "scratch-storage": "^4.0.209"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -24020,9 +24020,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.209",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.209.tgz",
- "integrity": "sha512-R0/mTnlCKxQTJohrceEvyIwpPywDI7OsRIieWbM7f838HLlT91c9MS11RndQzzckCAvRp5U+S8L5FP3Y1XyQTA==",
+ "version": "4.0.210",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.210.tgz",
+ "integrity": "sha512-Kr+kG3BqK/Xa1ZlkUDtwRsD5KPblP2Smy9U7TT9CyEKxBxvkeOjfyr2LNdEZi29tqpTL1cXZC/Olc+rH6SU2LA==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index 339912d23cc..8e5b7ec477b 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.207"
+ "scratch-storage": "^4.0.209"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From 10b0a8ec0e69574e49202c26367d3fd78e3f2f90 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 11 Aug 2025 12:54:21 +0000
Subject: [PATCH 098/129] fix(deps): update dependency scratch-l10n to v6.0.25
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 33338c2ff7e..b19ad05a143 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.90.0",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.24",
+ "scratch-l10n": "6.0.25",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23854,9 +23854,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.24",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.24.tgz",
- "integrity": "sha512-dzVxD3liRcZCs9Bo/SFNgB947/nolmFMm2YJPGBr3obbBJbWMk0PLxlRuWzqj6mPm9Cg0CH9NlN72w4Feh6/fQ==",
+ "version": "6.0.25",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.25.tgz",
+ "integrity": "sha512-DUfnxeH7p4hk0DIx3YGlG9OSochjVcZaMLxIVkH5KPMBr+zTYozAw6z9avEhSAJrIQr/isTRK6gvIY+/vpbExA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 8e5b7ec477b..c6c03cbcd05 100644
--- a/package.json
+++ b/package.json
@@ -148,7 +148,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.90.0",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.24",
+ "scratch-l10n": "6.0.25",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From 66c9a07365f9005ab8977df3b4e200dcdd98175a Mon Sep 17 00:00:00 2001
From: Ayshe Dzhindzhi
Date: Mon, 11 Aug 2025 17:49:37 +0300
Subject: [PATCH 099/129] feat: copy mediapipe files to the build folder to
enable local serving
---
webpack.config.js | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/webpack.config.js b/webpack.config.js
index 35320273697..4ceff985bad 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -243,6 +243,11 @@ module.exports = {
from: 'node_modules/@scratch/scratch-gui/dist/static/blocks-media',
to: 'static/blocks-media'
},
+ {
+ context: 'node_modules/@scratch/scratch-gui/dist/',
+ from: 'chunks/mediapipe/face_detection/face_detection_*.{js,wasm,tflite,binarypb}',
+ noErrorOnMissing: true
+ },
{
context: 'node_modules/@scratch/scratch-gui/dist/',
from: 'chunks/fetch-worker.*.{js,js.map}'
From e354cea4ab52d83d9fc4845edd1e80ed98c3ec26 Mon Sep 17 00:00:00 2001
From: Kaloyan Manolov
Date: Tue, 12 Aug 2025 11:39:12 +0300
Subject: [PATCH 100/129] feat: enhance manual thumbnail with modal on share
---
src/components/checkbox/simple-checkbox.jsx | 26 +++++
src/components/checkbox/simple-checkbox.scss | 40 +++++++
src/components/modal/share/modal.jsx | 115 +++++++++++++++++++
src/components/modal/share/modal.scss | 97 ++++++++++++++++
src/lib/local-storage.js | 32 ++++++
src/views/preview/l10n.json | 9 +-
src/views/preview/project-view.jsx | 115 ++++++++++++++++---
src/views/preview/project-view.scss | 9 +-
8 files changed, 421 insertions(+), 22 deletions(-)
create mode 100644 src/components/checkbox/simple-checkbox.jsx
create mode 100644 src/components/checkbox/simple-checkbox.scss
create mode 100644 src/components/modal/share/modal.jsx
create mode 100644 src/components/modal/share/modal.scss
create mode 100644 src/lib/local-storage.js
diff --git a/src/components/checkbox/simple-checkbox.jsx b/src/components/checkbox/simple-checkbox.jsx
new file mode 100644
index 00000000000..5e4b2ce23ce
--- /dev/null
+++ b/src/components/checkbox/simple-checkbox.jsx
@@ -0,0 +1,26 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import './simple-checkbox.scss';
+
+export const SimpleCheckbox = ({id, checked, onChange, label}) => (
+
+
+ {label}
+
+);
+
+SimpleCheckbox.propTypes = {
+ id: PropTypes.string.isRequired,
+ checked: PropTypes.bool.isRequired,
+ onChange: PropTypes.func.isRequired,
+ label: PropTypes.node.isRequired
+};
diff --git a/src/components/checkbox/simple-checkbox.scss b/src/components/checkbox/simple-checkbox.scss
new file mode 100644
index 00000000000..54a2958d5f9
--- /dev/null
+++ b/src/components/checkbox/simple-checkbox.scss
@@ -0,0 +1,40 @@
+@import "../../colors";
+@import "../../frameless";
+
+.checkbox-container {
+ display: flex;
+ cursor: pointer;
+ align-items: center;
+ color: $header-gray;
+ font-size: 0.75rem;
+ font-style: normal;
+ line-height: 1rem;
+
+ input {
+ &[type=checkbox] {
+ cursor: pointer;
+ appearance: none;
+ border: 2px solid $active-gray;
+ border-radius: 4px;
+ width: 1.25rem;
+ height: 1.25rem;
+
+ &:checked,
+ &:focus {
+ transition: all .25s ease;
+ }
+
+ &:checked {
+ background-color: $ui-blue;
+ text-align: center;
+ text-indent: .125rem;
+ line-height: 1.1rem;
+
+ &:after {
+ color: $type-white;
+ content: "\2714";
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/components/modal/share/modal.jsx b/src/components/modal/share/modal.jsx
new file mode 100644
index 00000000000..d77347375b6
--- /dev/null
+++ b/src/components/modal/share/modal.jsx
@@ -0,0 +1,115 @@
+import React, {useCallback, useState} from 'react';
+import PropTypes from 'prop-types';
+import Modal from '../base/modal.jsx';
+import ModalTitle from '../base/modal-title.jsx';
+import ModalInnerContent from '../base/modal-inner-content.jsx';
+import {SimpleCheckbox} from '../../checkbox/simple-checkbox.jsx';
+import {FormattedMessage, useIntl} from 'react-intl';
+import {setLocalStorageValue} from '../../../lib/local-storage.js';
+import './modal.scss';
+
+const updateLocalStorage = (username = 'guest', value) => {
+ if (value === false) {
+ return;
+ }
+
+ // `dontShowAgain` is true => we need to update the preference to false
+ setLocalStorageValue('shareModalPreference', username, false);
+};
+
+// This modal uses texts from preview/l10n.json
+// Parametrise texts if needed to be used outside of the preview context.
+const ShareModal = ({isOpen, onClose, onChangeThumbnail, onShare, projectThumbnailUrl, username}) => {
+ const intl = useIntl();
+ // TODO: Set local storage if submitted
+ const [dontShowAgain, setDontShowAgain] = useState(false);
+
+ const handleCheckboxChange = useCallback(e => {
+ setDontShowAgain(e.target.checked);
+ }, []);
+
+ const handleChangeThumbnail = useCallback(() => {
+ updateLocalStorage(username, dontShowAgain);
+ onChangeThumbnail();
+ }, [username, dontShowAgain, onChangeThumbnail]);
+
+ const handleShare = useCallback(() => {
+ updateLocalStorage(username, dontShowAgain);
+ onShare();
+ }, [username, dontShowAgain, onShare]);
+
+ return (
+
+ }
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+ShareModal.propTypes = {
+ isOpen: PropTypes.bool.isRequired,
+ onClose: PropTypes.func.isRequired,
+ onChangeThumbnail: PropTypes.func.isRequired,
+ onShare: PropTypes.func.isRequired,
+ projectThumbnailUrl: PropTypes.string,
+ username: PropTypes.string
+};
+
+export {ShareModal};
diff --git a/src/components/modal/share/modal.scss b/src/components/modal/share/modal.scss
new file mode 100644
index 00000000000..c71fc4f5f41
--- /dev/null
+++ b/src/components/modal/share/modal.scss
@@ -0,0 +1,97 @@
+@import "../../../colors";
+@import "../../../frameless";
+
+.share-modal {
+ margin-top: 15vh;
+ width: 40rem;
+ border-radius: .5rem;
+ overflow: hidden;
+
+ .title {
+ display: flex;
+ box-shadow: inset 0 -1px 0 0 $ui-blue;
+ background: $ui-blue;
+ padding-top: .75rem;
+ width: 100%;
+ height: 3rem;
+ padding-left: 12px;
+ }
+
+ .title-text {
+ text-align: center;
+ color: white;
+ font-size: 1rem;
+ font-weight: 700;
+ line-height: 1.25rem;
+ }
+
+ .share-modal-inner {
+ padding: 1.5rem;
+ padding-bottom: 1rem;
+ gap: 1.5rem;
+ background: white;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.75rem;
+ }
+
+ .thumbnail-container {
+ display: flex;
+ justify-content: center;
+ }
+
+ .thumbnail-img {
+ width: 300px;
+ height: 240px;
+ }
+
+ .footer {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ }
+
+ .divider {
+ width: 100%;
+ border-top: 1px solid $ui-blue-25percent;
+ }
+
+ .button-row {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ width: 100%;
+ }
+
+ .actions {
+ display: flex;
+ gap: 1rem;
+ }
+
+ .ok-button, .change-thumbnail-button {
+ border: none;
+ border-radius: 4px;
+ padding: 0.75rem 1rem;
+ font-size: 1rem;
+ font-weight: 700;
+ line-height: 1.25rem;
+ text-align: center;
+ cursor: pointer;
+ }
+
+ .ok-button {
+ background: $ui-blue;
+ color: $type-white;
+ border: none;
+ }
+
+ .change-thumbnail-button {
+ background: white;
+ color: $ui-blue;
+ border: 1px solid $ui-blue;
+ }
+}
+
+.share-modal-overlay {
+ background-color: $active-gray;
+}
diff --git a/src/lib/local-storage.js b/src/lib/local-storage.js
new file mode 100644
index 00000000000..568f7efdd94
--- /dev/null
+++ b/src/lib/local-storage.js
@@ -0,0 +1,32 @@
+/**
+ * Util functions for managing local storage entries as key-value pairs.
+ */
+
+const getMap = key => {
+ try {
+ const raw = localStorage.getItem(key);
+ return raw ? JSON.parse(raw) : {};
+ } catch (e) {
+ return {};
+ }
+};
+
+const setMap = (key, map) => {
+ localStorage.setItem(key, JSON.stringify(map));
+};
+
+const getLocalStorageValue = (key, id) => {
+ const map = getMap(key);
+ return map[id];
+};
+
+const setLocalStorageValue = (key, id, value) => {
+ const map = getMap(key);
+ map[id] = value;
+ setMap(key, map);
+};
+
+module.exports = {
+ getLocalStorageValue,
+ setLocalStorageValue
+};
diff --git a/src/views/preview/l10n.json b/src/views/preview/l10n.json
index 808efc91cbb..6748a40d467 100644
--- a/src/views/preview/l10n.json
+++ b/src/views/preview/l10n.json
@@ -73,5 +73,12 @@
"project.updateThumbnailInfoModal.description": "When you press the button, a snapshot of your project canvas is taken and saved as the project thumbnail. You can also use it while the project is playing.",
"project.updateThumbnailInfoModal.button": "Okay, I got it",
"project.updateThumbnail.success": "Thumbnail updated successfully.",
- "project.updateThumbnail.error": "Couldn't set thumbnail. Please try again later."
+ "project.updateThumbnail.error": "Couldn't set thumbnail. Please try again later.",
+ "project.shareModal.title": "Share Project",
+ "project.shareModal.description1": "You're about to share your project with this thumbnail:",
+ "project.shareModal.description2": "Project thumbnails act like the front cover of your project. This image will appear in places like search results and your profile page to show other Scratchers what your project is about. If you'd like to change your project thumbnail, you can do so by clicking the \"Set Thumbnail\" button on your project page.",
+ "project.shareModal.description3": "Are you sure you want to proceed with this thumbnail?",
+ "project.shareModal.changeThumbnail": "No, change thumbnail",
+ "project.shareModal.okay": "Yes, I am sure",
+ "project.shareModal.dontShowAgain": "Don't show this message again"
}
diff --git a/src/views/preview/project-view.jsx b/src/views/preview/project-view.jsx
index 8a7f938a0f1..93699b3c06d 100644
--- a/src/views/preview/project-view.jsx
+++ b/src/views/preview/project-view.jsx
@@ -29,6 +29,7 @@ const Alert = require('../../components/alert/alert.jsx').default;
const AlertContext = require('../../components/alert/alert-context.js').default;
const Meta = require('./meta.jsx');
const {UpdateThumbnailInfoModal} = require('./update-thumbnail-info-modal.jsx');
+const {ShareModal} = require('../../components/modal/share/modal.jsx');
const {driver} = require('driver.js');
const sessionActions = require('../../redux/session.js');
@@ -57,9 +58,18 @@ const {shouldDisplayFeedbackWidget, sendUserPropertiesForFeedback} = require('..
const {displayQualitativeFeedback} = require('../../redux/qualitative-feedback.js');
const {DebuggingFeedback} = require('../../components/modal/feedback/debugging-feedback.jsx');
const {TutorialsFeedback} = require('../../components/modal/feedback/tutorials-feedback.jsx');
+const {getLocalStorageValue, setLocalStorageValue} = require('../../lib/local-storage.js');
require('./project-view.scss');
-const isFirstManualThumbnailUpdate = () => localStorage.getItem('isFirstManualThumbnailUpdate') !== 'false';
+const shouldShowShareModal = (username = 'guest') =>
+ getLocalStorageValue('shareModalPreference', username) !== false;
+
+const isFirstManualThumbnailUpdate = (username = 'guest') =>
+ getLocalStorageValue('isFirstManualThumbnailUpdate', username) !== false;
+
+const setFirstManualThumbnailUpdate = (username = 'guest') => {
+ setLocalStorageValue('isFirstManualThumbnailUpdate', username, false);
+};
const IntlGUIWithProjectHandler = ({...props}) => {
const [showJourney, setShowJourney] = useState(false);
@@ -151,6 +161,7 @@ class Preview extends React.Component {
super(props);
bindAll(this, [
'addEventListeners',
+ 'doShare',
'fetchCommunityData',
'handleAddComment',
'handleClickLogo',
@@ -191,6 +202,10 @@ class Preview extends React.Component {
'handleToggleComments',
'showThumbnailUpdateInfoTooltip',
'hideThumbnailUpdateInfoTooltip',
+ 'showShareModal',
+ 'hideShareModal',
+ 'highlightChangeThumbnailButton',
+ 'hideHighlightChangeThumbnailButton',
'showThumbnailUpdateInfoModal',
'hideThumbnailUpdateInfoModal',
'initCounts',
@@ -223,6 +238,7 @@ class Preview extends React.Component {
isProjectLoaded: false,
isRemixing: false,
isThumbnailUpdateInfoModalOpen: false,
+ isShareModalOpen: false,
invalidProject: parts.length === 1,
justRemixed: false,
justShared: false,
@@ -238,16 +254,14 @@ class Preview extends React.Component {
reportOpen: false,
singleCommentId: singleCommentId,
greenFlagRecorded: false,
- tooltipDriver: null
+ tooltipDriver: null,
+ highlightDriver: null
};
/* In the beginning, if user is on mobile and landscape, go to fullscreen */
this.setScreenFromOrientation();
}
componentDidMount () {
this.addEventListeners();
- if (this.props.playerMode && isFirstManualThumbnailUpdate()) {
- this.showThumbnailUpdateInfoTooltip(true);
- }
}
componentDidUpdate (prevProps, prevState) {
if (this.state.projectId > 0 &&
@@ -310,16 +324,28 @@ class Preview extends React.Component {
this.pushHistory(history.state === null);
}
- // If we leave player mode or switch to fullscreen, hide the thumbnail tooltip
+ // eslint-disable-next-line no-undefined
+ if (prevProps.user.username !== this.props.user.username &&
+ this.props.user.username &&
+ this.props.playerMode &&
+ isFirstManualThumbnailUpdate(this.props.user.username)) {
+ this.showThumbnailUpdateInfoTooltip();
+ }
+
+ // Hide the tooltip in case of any absolute position element opened
if (((!this.props.playerMode && prevProps.playerMode) ||
- (this.props.fullScreen && !prevProps.fullScreen)) &&
+ (this.props.fullScreen && !prevProps.fullScreen) ||
+ this.state.isShareModalOpen ||
+ this.state.isThumbnailUpdateInfoModalOpen) &&
this.state.tooltipDriver) {
this.hideThumbnailUpdateInfoTooltip();
}
if (((this.props.playerMode && !prevProps.playerMode) ||
(this.props.playerMode && !this.props.fullScreen && prevProps.fullScreen)) &&
- !this.state.tooltipDriver && isFirstManualThumbnailUpdate()) {
+ !this.state.tooltipDriver &&
+ isFirstManualThumbnailUpdate(this.props.user.username) &&
+ !this.state.isShareModalOpen) {
this.showThumbnailUpdateInfoTooltip();
}
@@ -789,7 +815,7 @@ class Preview extends React.Component {
});
}
}
- handleShare () {
+ doShare () {
this.props.shareProject(
this.props.projectInfo.id,
this.props.user.token
@@ -799,6 +825,13 @@ class Preview extends React.Component {
justShared: true
});
}
+ handleShare () {
+ if (shouldShowShareModal(this.props.user.username)) {
+ this.showShareModal();
+ } else {
+ this.doShare();
+ }
+ }
handleShareAttempt () {
this.setState({
showEmailConfirmationModal: true
@@ -873,16 +906,47 @@ class Preview extends React.Component {
const onError = () => this.context.errorAlert({
id: 'project.updateThumbnail.error'
});
+ this.hideHighlightChangeThumbnailButton();
return this.props.handleUpdateProjectThumbnail(
id,
blob,
true, // isManualUpdate
- this.hideThumbnailUpdateInfoTooltip,
+ this.props.user.username,
this.showThumbnailUpdateInfoModal,
onSuccess,
onError
);
}
+ showShareModal () {
+ this.setState({
+ isShareModalOpen: true
+ });
+ }
+ hideShareModal () {
+ this.setState({
+ isShareModalOpen: false
+ });
+ }
+ highlightChangeThumbnailButton () {
+ const highlightDriver = driver({
+ popoverClass: 'driverjs-theme'
+ });
+ highlightDriver.highlight({
+ element: 'span[class*="stage-header_setThumbnailButton"]'
+ });
+
+ this.setState({
+ highlightDriver
+ });
+ }
+ hideHighlightChangeThumbnailButton () {
+ if (this.state.highlightDriver) {
+ this.state.highlightDriver.destroy();
+ this.setState({
+ highlightDriver: null
+ });
+ }
+ }
showThumbnailUpdateInfoModal () {
this.setState({
isThumbnailUpdateInfoModalOpen: true
@@ -893,7 +957,7 @@ class Preview extends React.Component {
isThumbnailUpdateInfoModalOpen: false
});
}
- showThumbnailUpdateInfoTooltip (isFirstLoad = false) {
+ showThumbnailUpdateInfoTooltip () {
this.setState({
tooltipDriver: driver({
allowClose: false,
@@ -913,12 +977,12 @@ class Preview extends React.Component {
const showThumbnailUpdateInfoTooltipWhenGuiReady = () => {
const setThumbnailButton = document.querySelector('span[class*="stage-header_setThumbnailButton"]');
- const greenFlag = document.querySelector('div[class*="stage_green-flag-overlay"] img');
+ const loadingProjectIndicator = document.querySelector('div[class*="loader_block-animation"]');
// Has the project loaded?
- if (setThumbnailButton && this.state.tooltipDriver && (!isFirstLoad || greenFlag)) {
+ if (setThumbnailButton && !loadingProjectIndicator && this.state.tooltipDriver) {
this.state.tooltipDriver.drive();
} else {
- setTimeout(showThumbnailUpdateInfoTooltipWhenGuiReady, 500);
+ setTimeout(showThumbnailUpdateInfoTooltipWhenGuiReady, 200);
}
};
showThumbnailUpdateInfoTooltipWhenGuiReady();
@@ -987,6 +1051,20 @@ class Preview extends React.Component {
isOpen={this.state.isThumbnailUpdateInfoModalOpen}
hideModal={this.hideThumbnailUpdateInfoModal}
/>
+ this.hideShareModal()}
+ onChangeThumbnail={() => {
+ this.hideShareModal();
+ this.highlightChangeThumbnailButton();
+ }}
+ onShare={() => {
+ this.hideShareModal();
+ this.doShare();
+ }}
+ projectThumbnailUrl={this.props.projectInfo.image}
+ username={this.props.user.username}
+ />
({
id,
blob,
isManualUpdate,
- hideThumbnailUpdateInfoTooltip,
+ username,
showThumbnailUpdateInfoModal,
onSuccess,
onError
) => {
- // If this is the first manual thumbnail update, show an
+ // If this is the first manual thumbnail update for this user, show an
// information modal to introduce the new feature.
// Otherwise, just update the thumbnail.
// TODO: Remove this after a few months.
- if (isManualUpdate && isFirstManualThumbnailUpdate()) {
- hideThumbnailUpdateInfoTooltip();
+ if (isManualUpdate && isFirstManualThumbnailUpdate(username)) {
showThumbnailUpdateInfoModal();
- localStorage.setItem('isFirstManualThumbnailUpdate', 'false');
+ setFirstManualThumbnailUpdate(username);
} else {
dispatch(previewActions.updateProjectThumbnail(id, blob, onSuccess, onError));
}
diff --git a/src/views/preview/project-view.scss b/src/views/preview/project-view.scss
index e611b1ce36a..737128cabf7 100644
--- a/src/views/preview/project-view.scss
+++ b/src/views/preview/project-view.scss
@@ -1,11 +1,15 @@
@import "../../colors";
@import "../../frameless";
-.driver-active *{
+// Below selectors are much hackier than I'd like, but we can't style the overlay
+// directly, and since we have two driverjs instances in the component requiring
+// different behaviors (one acts like a tooltip, the other like a highlight),
+// we need to be specific.
+.driver-active:has(.tooltip-set-thumbnail) * {
pointer-events: auto !important;
}
-.driver-overlay {
+.tooltip-set-thumbnail ~ .driver-overlay {
z-index: -1 !important;
}
@@ -14,6 +18,7 @@
background-color: $ui-blue;
color: white;
text-align: center;
+ z-index: 10;
}
.driver-popover.tooltip-set-thumbnail .driver-popover-title {
From c9a90d5de4f31e9027a69cabd91b1ab5bba48f65 Mon Sep 17 00:00:00 2001
From: Kaloyan Manolov
Date: Tue, 12 Aug 2025 11:50:29 +0300
Subject: [PATCH 101/129] fix: address comment
---
src/components/modal/share/modal.jsx | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/components/modal/share/modal.jsx b/src/components/modal/share/modal.jsx
index d77347375b6..3d0dfaf7886 100644
--- a/src/components/modal/share/modal.jsx
+++ b/src/components/modal/share/modal.jsx
@@ -8,8 +8,8 @@ import {FormattedMessage, useIntl} from 'react-intl';
import {setLocalStorageValue} from '../../../lib/local-storage.js';
import './modal.scss';
-const updateLocalStorage = (username = 'guest', value) => {
- if (value === false) {
+const updateLocalStorage = (username = 'guest', dontShowAgain) => {
+ if (dontShowAgain === false) {
return;
}
@@ -21,7 +21,6 @@ const updateLocalStorage = (username = 'guest', value) => {
// Parametrise texts if needed to be used outside of the preview context.
const ShareModal = ({isOpen, onClose, onChangeThumbnail, onShare, projectThumbnailUrl, username}) => {
const intl = useIntl();
- // TODO: Set local storage if submitted
const [dontShowAgain, setDontShowAgain] = useState(false);
const handleCheckboxChange = useCallback(e => {
From 60a4e97328db8c11864dbf543b1d27599708920a Mon Sep 17 00:00:00 2001
From: Kaloyan Manolov
Date: Tue, 12 Aug 2025 12:50:04 +0300
Subject: [PATCH 102/129] feat: move update thumbnail info modal to modal/
directory
---
.../modal/update-thumbnail-info/modal.jsx} | 8 ++++----
.../modal/update-thumbnail-info/modal.scss} | 4 ++--
src/views/preview/project-view.jsx | 2 +-
3 files changed, 7 insertions(+), 7 deletions(-)
rename src/{views/preview/update-thumbnail-info-modal.jsx => components/modal/update-thumbnail-info/modal.jsx} (83%)
rename src/{views/preview/update-thumbnail-info-modal.scss => components/modal/update-thumbnail-info/modal.scss} (96%)
diff --git a/src/views/preview/update-thumbnail-info-modal.jsx b/src/components/modal/update-thumbnail-info/modal.jsx
similarity index 83%
rename from src/views/preview/update-thumbnail-info-modal.jsx
rename to src/components/modal/update-thumbnail-info/modal.jsx
index 68c31f40145..c8329cf7aef 100644
--- a/src/views/preview/update-thumbnail-info-modal.jsx
+++ b/src/components/modal/update-thumbnail-info/modal.jsx
@@ -1,10 +1,10 @@
import React from 'react';
import PropTypes from 'prop-types';
-import Modal from '../../components/modal/base/modal.jsx';
-import ModalTitle from '../../components/modal/base/modal-title.jsx';
-import ModalInnerContent from '../../components/modal/base/modal-inner-content.jsx';
+import Modal from '../base/modal.jsx';
+import ModalTitle from '../base/modal-title.jsx';
+import ModalInnerContent from '../base/modal-inner-content.jsx';
import {FormattedMessage} from 'react-intl';
-import './update-thumbnail-info-modal.scss';
+import './modal.scss';
const UpdateThumbnailInfoModal = ({isOpen, hideModal}) => (
Date: Tue, 12 Aug 2025 12:55:56 +0300
Subject: [PATCH 103/129] fix: align modal title text vertically
---
src/components/modal/share/modal.scss | 2 +-
src/components/modal/update-thumbnail-info/modal.scss | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/components/modal/share/modal.scss b/src/components/modal/share/modal.scss
index c71fc4f5f41..17a8d2709eb 100644
--- a/src/components/modal/share/modal.scss
+++ b/src/components/modal/share/modal.scss
@@ -9,9 +9,9 @@
.title {
display: flex;
+ align-items: center;
box-shadow: inset 0 -1px 0 0 $ui-blue;
background: $ui-blue;
- padding-top: .75rem;
width: 100%;
height: 3rem;
padding-left: 12px;
diff --git a/src/components/modal/update-thumbnail-info/modal.scss b/src/components/modal/update-thumbnail-info/modal.scss
index 484f16fd8d8..f65b56a14e2 100644
--- a/src/components/modal/update-thumbnail-info/modal.scss
+++ b/src/components/modal/update-thumbnail-info/modal.scss
@@ -9,9 +9,9 @@
.update-thumbnail-info-modal-title {
display: flex;
+ align-items: center;
box-shadow: inset 0 -1px 0 0 $ui-blue;
background: $ui-blue;
- padding-top: .75rem;
width: 100%;
height: 3rem;
padding-left: 12px;
From 7e9960de7d81e3f10308724ad27c8e532f826f8f Mon Sep 17 00:00:00 2001
From: Ayshe Dzhindzhi
Date: Tue, 12 Aug 2025 14:48:12 +0300
Subject: [PATCH 104/129] fix: copy the whole mediapipe folder instead of
specific files
---
webpack.config.js | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/webpack.config.js b/webpack.config.js
index 4ceff985bad..01b4b81e2a7 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -244,9 +244,8 @@ module.exports = {
to: 'static/blocks-media'
},
{
- context: 'node_modules/@scratch/scratch-gui/dist/',
- from: 'chunks/mediapipe/face_detection/face_detection_*.{js,wasm,tflite,binarypb}',
- noErrorOnMissing: true
+ from: 'node_modules/@scratch/scratch-gui/dist/chunks/mediapipe/face_detection/',
+ to: 'chunks/mediapipe/face_detection'
},
{
context: 'node_modules/@scratch/scratch-gui/dist/',
From aecc75d0f56428b5ed086593ab2b34344a1a6898 Mon Sep 17 00:00:00 2001
From: Kaloyan Manolov
Date: Tue, 12 Aug 2025 15:28:56 +0300
Subject: [PATCH 105/129] feat: add MANUALLY_SAVE_THUMBNAILS env variable to
cicd workflow
---
.github/workflows/ci-cd.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml
index 6e574a60a00..39bce0edf18 100644
--- a/.github/workflows/ci-cd.yml
+++ b/.github/workflows/ci-cd.yml
@@ -107,6 +107,7 @@ jobs:
QUALITATIVE_FEEDBACK_TUTORIALS_USER_FREQUENCY: "${{ vars.QUALITATIVE_FEEDBACK_TUTORIALS_USER_FREQUENCY }}"
QUALITATIVE_FEEDBACK_ENDING_DATE: "${{ vars.QUALITATIVE_FEEDBACK_ENDING_DATE }}"
IDEAS_GENERATOR_SOURCE: "${{ vars.IDEAS_GENERATOR_SOURCE }}"
+ MANUALLY_SAVE_THUMBNAILS: "${{ vars.MANUALLY_SAVE_THUMBNAILS }}"
# used by src/template-config.js
GTM_ID: ${{ secrets.GTM_ID }}
From dc2b6234f0fffd31a94394073f3d7973023a69f2 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 13 Aug 2025 06:42:10 +0000
Subject: [PATCH 106/129] fix(deps): update dependency scratch-storage to
^4.0.210
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index b19ad05a143..574bf9948ed 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.209"
+ "scratch-storage": "^4.0.210"
},
"devDependencies": {
"@babel/cli": "7.28.0",
@@ -24020,9 +24020,9 @@
}
},
"node_modules/scratch-storage": {
- "version": "4.0.210",
- "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.210.tgz",
- "integrity": "sha512-Kr+kG3BqK/Xa1ZlkUDtwRsD5KPblP2Smy9U7TT9CyEKxBxvkeOjfyr2LNdEZi29tqpTL1cXZC/Olc+rH6SU2LA==",
+ "version": "4.0.211",
+ "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.0.211.tgz",
+ "integrity": "sha512-ZRCHBRHXvndc7UyywsZocBiWEypDL5XUJw2VyS1Wmyje9SBvuo9XNlmMYKyjkXL9ctRz7PQHsx8Lm9CGUos60A==",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/runtime": "^7.21.0",
diff --git a/package.json b/package.json
index c6c03cbcd05..0fc3ff1926c 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,7 @@
"react-twitter-embed": "3.0.3",
"react-use": "17.6.0",
"scratch-parser": "6.0.0",
- "scratch-storage": "^4.0.209"
+ "scratch-storage": "^4.0.210"
},
"devDependencies": {
"@babel/cli": "7.28.0",
From def51b8ce85d55e1bf37e51476b8b712f9c4ac60 Mon Sep 17 00:00:00 2001
From: Ayshe Dzhindzhi
Date: Wed, 13 Aug 2025 11:23:30 +0300
Subject: [PATCH 107/129] fix: change the icon displayed on the face sensing
extension chip to be black
---
static/svgs/project/extension-facesensing.svg | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/static/svgs/project/extension-facesensing.svg b/static/svgs/project/extension-facesensing.svg
index 86b6f51f6d9..c825b65ea5b 100644
--- a/static/svgs/project/extension-facesensing.svg
+++ b/static/svgs/project/extension-facesensing.svg
@@ -1,10 +1,10 @@
-
-
-
-
-
-
+
+
+
+
+
+
From 13c32868b62cac82569a58d19a518b5701027698 Mon Sep 17 00:00:00 2001
From: Ayshe Dzhindzhi
Date: Wed, 13 Aug 2025 16:04:48 +0300
Subject: [PATCH 108/129] chore: update scratch-gui version to face-sensing.2
---
package-lock.json | 46 +++++++++++++++++++++++++++-------------------
package.json | 2 +-
2 files changed, 28 insertions(+), 20 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index b450ffda9f9..c422e25b31e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -39,7 +39,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.6.0-face-sensing",
+ "@scratch/scratch-gui": "11.6.0-face-sensing.2",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
@@ -3827,6 +3827,13 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@mediapipe/face_detection": {
+ "version": "0.4.1646425229",
+ "resolved": "https://registry.npmjs.org/@mediapipe/face_detection/-/face_detection-0.4.1646425229.tgz",
+ "integrity": "sha512-aeCN+fRAojv9ch3NXorP6r5tcGVLR3/gC1HmtqB0WEZBRXrdP6/3W/sGR0dHr1iT6ueiK95G9PVjbzFosf/hrg==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/@microbit/microbit-universal-hex": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/@microbit/microbit-universal-hex/-/microbit-universal-hex-0.2.2.tgz",
@@ -4310,16 +4317,17 @@
}
},
"node_modules/@scratch/scratch-gui": {
- "version": "11.6.0-face-sensing",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.6.0-face-sensing.tgz",
- "integrity": "sha512-SAEQAPREgkIoBoiyZHEhNNIgoiOmWbe/Bwhc5/nHh5zIfrtEZH4u6JNDBqaZmfFiVb/PKBqkLFW7gtlSIZ1tbw==",
+ "version": "11.6.0-face-sensing.2",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-gui/-/scratch-gui-11.6.0-face-sensing.2.tgz",
+ "integrity": "sha512-TqlkOCr/WxGlD7T9YTXg8/5Ges0Pob/7qpllS5XNFoRiAE7JPmYNo8BdEmQumiUFGRWZbtTpyKJyvnBBzN+ZSA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
+ "@mediapipe/face_detection": "0.4.1646425229",
"@microbit/microbit-universal-hex": "0.2.2",
- "@scratch/scratch-render": "11.6.0-face-sensing",
- "@scratch/scratch-svg-renderer": "11.6.0-face-sensing",
- "@scratch/scratch-vm": "11.6.0-face-sensing",
+ "@scratch/scratch-render": "11.6.0-face-sensing.2",
+ "@scratch/scratch-svg-renderer": "11.6.0-face-sensing.2",
+ "@scratch/scratch-vm": "11.6.0-face-sensing.2",
"@tensorflow-models/face-detection": "^1.0.3",
"@tensorflow/tfjs": "^4.22.0",
"arraybuffer-loader": "1.0.8",
@@ -4631,13 +4639,13 @@
}
},
"node_modules/@scratch/scratch-render": {
- "version": "11.6.0-face-sensing",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.6.0-face-sensing.tgz",
- "integrity": "sha512-wUPqUwm0PQUUwHQDoyMN7+xlwA23nbvMc8Ua+lW2+UV9Q7XrGityIwevYiYPBavk/WiTjnGM+znQ8bdSfJG3Bg==",
+ "version": "11.6.0-face-sensing.2",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-render/-/scratch-render-11.6.0-face-sensing.2.tgz",
+ "integrity": "sha512-M7J105fwGHdVcc0DJjMYlf21xS3Fk0AI3hgzq5GAZm6WbnAPKHWITmWaotA8a1vQ6+kTG0OHd2xjNtkcaZR34A==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-svg-renderer": "11.6.0-face-sensing",
+ "@scratch/scratch-svg-renderer": "11.6.0-face-sensing.2",
"grapheme-breaker": "0.3.2",
"hull.js": "0.2.10",
"ify-loader": "1.1.0",
@@ -4674,9 +4682,9 @@
"dev": true
},
"node_modules/@scratch/scratch-svg-renderer": {
- "version": "11.6.0-face-sensing",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.6.0-face-sensing.tgz",
- "integrity": "sha512-a9Yr4NbpuhYonsU7sNSwVgKoEH8mQA9S02BDyCc7soBU6W67I1QOZgWL+J2eunE2G8qyS7IDhTwdkURMmqYnWQ==",
+ "version": "11.6.0-face-sensing.2",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-svg-renderer/-/scratch-svg-renderer-11.6.0-face-sensing.2.tgz",
+ "integrity": "sha512-T/V4FKki5JeO72EEHxpI+hwp9MqBU7ghRuXqvUt5miIVTLl0UlokEKS9UP9LOZ3nJTir7cUX9/YjizU6S9gtDw==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
@@ -4710,14 +4718,14 @@
}
},
"node_modules/@scratch/scratch-vm": {
- "version": "11.6.0-face-sensing",
- "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.6.0-face-sensing.tgz",
- "integrity": "sha512-is+pyVkB/vuIFgToVS4tJj37agVIqgmwhnLYiKxl9pSwNNyYvvfksXS9bfR79Z3oz/fV03yXm+OKqWrtPVwdgg==",
+ "version": "11.6.0-face-sensing.2",
+ "resolved": "https://registry.npmjs.org/@scratch/scratch-vm/-/scratch-vm-11.6.0-face-sensing.2.tgz",
+ "integrity": "sha512-8FPrELSZOz6jgq39DvTST6nuV1XaUMozI7w+MsfRIR6baloYQLKwarUKGBE8W4KU9qZGcMmLirQDM6LRfrT4KA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@scratch/scratch-render": "11.6.0-face-sensing",
- "@scratch/scratch-svg-renderer": "11.6.0-face-sensing",
+ "@scratch/scratch-render": "11.6.0-face-sensing.2",
+ "@scratch/scratch-svg-renderer": "11.6.0-face-sensing.2",
"@vernier/godirect": "1.8.3",
"arraybuffer-loader": "1.0.8",
"atob": "2.1.2",
diff --git a/package.json b/package.json
index 7b4559064c2..b9e9b8628bb 100644
--- a/package.json
+++ b/package.json
@@ -75,7 +75,7 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
- "@scratch/scratch-gui": "11.6.0-face-sensing",
+ "@scratch/scratch-gui": "11.6.0-face-sensing.2",
"@types/jest": "29.5.14",
"async": "3.2.6",
"autoprefixer": "10.4.21",
From 146d4b28506b972ce98dbcb3e967e85453024905 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 13 Aug 2025 13:18:13 +0000
Subject: [PATCH 109/129] fix(deps): update dependency scratch-l10n to v6.0.26
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index d8a36a83c37..51c381ab955 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.90.0",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.25",
+ "scratch-l10n": "6.0.26",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23862,9 +23862,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.25",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.25.tgz",
- "integrity": "sha512-DUfnxeH7p4hk0DIx3YGlG9OSochjVcZaMLxIVkH5KPMBr+zTYozAw6z9avEhSAJrIQr/isTRK6gvIY+/vpbExA==",
+ "version": "6.0.26",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.26.tgz",
+ "integrity": "sha512-YcnaEnESjM8kybbAA2moxlyeYJaDuKxR2EGuAwHp7/32NScLkblU/cs7tSK3URIiYnhnbNLUdra/8iHxTCS5EA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index d555c3ac381..9dbd41b3075 100644
--- a/package.json
+++ b/package.json
@@ -148,7 +148,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.90.0",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.25",
+ "scratch-l10n": "6.0.26",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From deee478fa635eaab2cc21ba74899335f3d17e79b Mon Sep 17 00:00:00 2001
From: Kaloyan Manolov
Date: Thu, 14 Aug 2025 15:08:12 +0300
Subject: [PATCH 110/129] fix: share preview modal fixes
---
src/components/checkbox/simple-checkbox.jsx | 1 -
src/components/checkbox/simple-checkbox.scss | 1 +
src/components/modal/share/modal.scss | 2 +-
src/views/preview/project-view.jsx | 48 +++++++++++++++-----
4 files changed, 38 insertions(+), 14 deletions(-)
diff --git a/src/components/checkbox/simple-checkbox.jsx b/src/components/checkbox/simple-checkbox.jsx
index 5e4b2ce23ce..ae0f3f32e6c 100644
--- a/src/components/checkbox/simple-checkbox.jsx
+++ b/src/components/checkbox/simple-checkbox.jsx
@@ -12,7 +12,6 @@ export const SimpleCheckbox = ({id, checked, onChange, label}) => (
type="checkbox"
checked={checked}
onChange={onChange}
- style={{marginRight: 8}}
/>
{label}
diff --git a/src/components/checkbox/simple-checkbox.scss b/src/components/checkbox/simple-checkbox.scss
index 54a2958d5f9..892614a3962 100644
--- a/src/components/checkbox/simple-checkbox.scss
+++ b/src/components/checkbox/simple-checkbox.scss
@@ -5,6 +5,7 @@
display: flex;
cursor: pointer;
align-items: center;
+ gap: 0.5rem;
color: $header-gray;
font-size: 0.75rem;
font-style: normal;
diff --git a/src/components/modal/share/modal.scss b/src/components/modal/share/modal.scss
index 17a8d2709eb..67f8e382cb8 100644
--- a/src/components/modal/share/modal.scss
+++ b/src/components/modal/share/modal.scss
@@ -3,7 +3,7 @@
.share-modal {
margin-top: 15vh;
- width: 40rem;
+ width: 39.25rem;
border-radius: .5rem;
overflow: hidden;
diff --git a/src/views/preview/project-view.jsx b/src/views/preview/project-view.jsx
index bdf370b59a8..f247b9b86f9 100644
--- a/src/views/preview/project-view.jsx
+++ b/src/views/preview/project-view.jsx
@@ -61,6 +61,12 @@ const {TutorialsFeedback} = require('../../components/modal/feedback/tutorials-f
const {getLocalStorageValue, setLocalStorageValue} = require('../../lib/local-storage.js');
require('./project-view.scss');
+const hasIntroducedShareModalFlow = (username = 'guest') =>
+ getLocalStorageValue('hasIntroducedShareModalFlow', username) === true;
+
+const setHasIntroducedShareModalFlow = (username = 'guest') =>
+ setLocalStorageValue('hasIntroducedShareModalFlow', username, true);
+
const shouldShowShareModal = (username = 'guest') =>
getLocalStorageValue('shareModalPreference', username) !== false;
@@ -163,6 +169,7 @@ class Preview extends React.Component {
'addEventListeners',
'doShare',
'fetchCommunityData',
+ 'fetchProjectInfo',
'handleAddComment',
'handleClickLogo',
'handleDeleteComment',
@@ -196,6 +203,7 @@ class Preview extends React.Component {
'handleSetProjectThumbnailer',
'handleShare',
'handleShareAttempt',
+ 'handleShareModalChangeThumbnailButton',
'handleUpdateProjectData',
'handleUpdateProjectId',
'handleUpdateProjectTitle',
@@ -204,8 +212,8 @@ class Preview extends React.Component {
'hideThumbnailUpdateInfoTooltip',
'showShareModal',
'hideShareModal',
- 'highlightChangeThumbnailButton',
- 'hideHighlightChangeThumbnailButton',
+ 'highlightSetThumbnailButton',
+ 'hidehighlightSetThumbnailButton',
'showThumbnailUpdateInfoModal',
'hideThumbnailUpdateInfoModal',
'initCounts',
@@ -411,6 +419,13 @@ class Preview extends React.Component {
this.props.getRemixes(this.state.projectId);
}
}
+ fetchProjectInfo () {
+ if (this.props.userPresent) {
+ this.props.getProjectInfo(this.state.projectId, this.props.user.token);
+ } else {
+ this.props.getProjectInfo(this.state.projectId);
+ }
+ }
// This is copy of what is in save-project-to-server in GUI that adds
// an extra get of the project info from api. We do this to wait for replication
@@ -900,13 +915,17 @@ class Preview extends React.Component {
);
}
handleManualThumbnailUpdate (id, blob) {
- const onSuccess = () => this.context.successAlert({
- id: 'project.updateThumbnail.success'
- });
+ const onSuccess = () => {
+ this.context.successAlert({
+ id: 'project.updateThumbnail.success'
+ });
+ // Reload the project info to get the new thumbnail
+ this.fetchProjectInfo();
+ };
const onError = () => this.context.errorAlert({
id: 'project.updateThumbnail.error'
});
- this.hideHighlightChangeThumbnailButton();
+ this.hidehighlightSetThumbnailButton();
return this.props.handleUpdateProjectThumbnail(
id,
blob,
@@ -917,6 +936,14 @@ class Preview extends React.Component {
onError
);
}
+ handleShareModalChangeThumbnailButton () {
+ this.hideShareModal();
+ // Only highlight the 'Set Thumbnail' button the first time
+ if (!hasIntroducedShareModalFlow(this.props.user.username)) {
+ this.highlightSetThumbnailButton();
+ setHasIntroducedShareModalFlow(this.props.user.username);
+ }
+ }
showShareModal () {
this.setState({
isShareModalOpen: true
@@ -927,7 +954,7 @@ class Preview extends React.Component {
isShareModalOpen: false
});
}
- highlightChangeThumbnailButton () {
+ highlightSetThumbnailButton () {
const highlightDriver = driver({
popoverClass: 'driverjs-theme'
});
@@ -939,7 +966,7 @@ class Preview extends React.Component {
highlightDriver
});
}
- hideHighlightChangeThumbnailButton () {
+ hidehighlightSetThumbnailButton () {
if (this.state.highlightDriver) {
this.state.highlightDriver.destroy();
this.setState({
@@ -1054,10 +1081,7 @@ class Preview extends React.Component {
this.hideShareModal()}
- onChangeThumbnail={() => {
- this.hideShareModal();
- this.highlightChangeThumbnailButton();
- }}
+ onChangeThumbnail={this.handleShareModalChangeThumbnailButton}
onShare={() => {
this.hideShareModal();
this.doShare();
From 864d4c6e260f983ac3ad2bf947bde668dcb7a2a5 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 14 Aug 2025 12:42:47 +0000
Subject: [PATCH 111/129] fix(deps): lock file maintenance
---
package-lock.json | 907 ++++++++++++++++++++--------------------------
1 file changed, 385 insertions(+), 522 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 51c381ab955..2029373f1d5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -290,14 +290,14 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz",
- "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz",
+ "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/parser": "^7.28.0",
- "@babel/types": "^7.28.0",
+ "@babel/parser": "^7.28.3",
+ "@babel/types": "^7.28.2",
"@jridgewell/gen-mapping": "^0.3.12",
"@jridgewell/trace-mapping": "^0.3.28",
"jsesc": "^3.0.2"
@@ -337,18 +337,18 @@
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz",
- "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz",
+ "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.1",
+ "@babel/helper-annotate-as-pure": "^7.27.3",
"@babel/helper-member-expression-to-functions": "^7.27.1",
"@babel/helper-optimise-call-expression": "^7.27.1",
"@babel/helper-replace-supers": "^7.27.1",
"@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
- "@babel/traverse": "^7.27.1",
+ "@babel/traverse": "^7.28.3",
"semver": "^6.3.1"
},
"engines": {
@@ -432,15 +432,15 @@
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.27.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz",
- "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz",
+ "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/helper-module-imports": "^7.27.1",
"@babel/helper-validator-identifier": "^7.27.1",
- "@babel/traverse": "^7.27.3"
+ "@babel/traverse": "^7.28.3"
},
"engines": {
"node": ">=6.9.0"
@@ -553,24 +553,24 @@
}
},
"node_modules/@babel/helper-wrap-function": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz",
- "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz",
+ "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/template": "^7.27.1",
- "@babel/traverse": "^7.27.1",
- "@babel/types": "^7.27.1"
+ "@babel/template": "^7.27.2",
+ "@babel/traverse": "^7.28.3",
+ "@babel/types": "^7.28.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.28.2",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.2.tgz",
- "integrity": "sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz",
+ "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -582,13 +582,13 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz",
- "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz",
+ "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.28.0"
+ "@babel/types": "^7.28.2"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -665,14 +665,14 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz",
- "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz",
+ "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1",
- "@babel/traverse": "^7.27.1"
+ "@babel/traverse": "^7.28.3"
},
"engines": {
"node": ">=6.9.0"
@@ -1081,13 +1081,13 @@
}
},
"node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz",
- "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz",
+ "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.27.1",
+ "@babel/helper-create-class-features-plugin": "^7.28.3",
"@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
@@ -1098,9 +1098,9 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz",
- "integrity": "sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.3.tgz",
+ "integrity": "sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1109,7 +1109,7 @@
"@babel/helper-globals": "^7.28.0",
"@babel/helper-plugin-utils": "^7.27.1",
"@babel/helper-replace-supers": "^7.27.1",
- "@babel/traverse": "^7.28.0"
+ "@babel/traverse": "^7.28.3"
},
"engines": {
"node": ">=6.9.0"
@@ -1708,9 +1708,9 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.28.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.1.tgz",
- "integrity": "sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.3.tgz",
+ "integrity": "sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2026,9 +2026,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.28.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz",
- "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz",
+ "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -2050,18 +2050,18 @@
}
},
"node_modules/@babel/traverse": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz",
- "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz",
+ "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.27.1",
- "@babel/generator": "^7.28.0",
+ "@babel/generator": "^7.28.3",
"@babel/helper-globals": "^7.28.0",
- "@babel/parser": "^7.28.0",
+ "@babel/parser": "^7.28.3",
"@babel/template": "^7.27.2",
- "@babel/types": "^7.28.0",
+ "@babel/types": "^7.28.2",
"debug": "^4.3.1"
},
"engines": {
@@ -2242,9 +2242,9 @@
}
},
"node_modules/@esbuild/aix-ppc64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz",
- "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz",
+ "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==",
"cpu": [
"ppc64"
],
@@ -2259,9 +2259,9 @@
}
},
"node_modules/@esbuild/android-arm": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz",
- "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz",
+ "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==",
"cpu": [
"arm"
],
@@ -2276,9 +2276,9 @@
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz",
- "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz",
+ "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==",
"cpu": [
"arm64"
],
@@ -2293,9 +2293,9 @@
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz",
- "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz",
+ "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==",
"cpu": [
"x64"
],
@@ -2310,9 +2310,9 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz",
- "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz",
+ "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==",
"cpu": [
"arm64"
],
@@ -2327,9 +2327,9 @@
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz",
- "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz",
+ "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==",
"cpu": [
"x64"
],
@@ -2344,9 +2344,9 @@
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz",
- "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz",
+ "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==",
"cpu": [
"arm64"
],
@@ -2361,9 +2361,9 @@
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz",
- "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz",
+ "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==",
"cpu": [
"x64"
],
@@ -2378,9 +2378,9 @@
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz",
- "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz",
+ "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==",
"cpu": [
"arm"
],
@@ -2395,9 +2395,9 @@
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz",
- "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz",
+ "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==",
"cpu": [
"arm64"
],
@@ -2412,9 +2412,9 @@
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz",
- "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz",
+ "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==",
"cpu": [
"ia32"
],
@@ -2429,9 +2429,9 @@
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz",
- "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz",
+ "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==",
"cpu": [
"loong64"
],
@@ -2446,9 +2446,9 @@
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz",
- "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz",
+ "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==",
"cpu": [
"mips64el"
],
@@ -2463,9 +2463,9 @@
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz",
- "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz",
+ "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==",
"cpu": [
"ppc64"
],
@@ -2480,9 +2480,9 @@
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz",
- "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz",
+ "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==",
"cpu": [
"riscv64"
],
@@ -2497,9 +2497,9 @@
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz",
- "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz",
+ "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==",
"cpu": [
"s390x"
],
@@ -2514,9 +2514,9 @@
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz",
- "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz",
+ "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==",
"cpu": [
"x64"
],
@@ -2531,9 +2531,9 @@
}
},
"node_modules/@esbuild/netbsd-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz",
- "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz",
+ "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==",
"cpu": [
"arm64"
],
@@ -2548,9 +2548,9 @@
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz",
- "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz",
+ "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==",
"cpu": [
"x64"
],
@@ -2565,9 +2565,9 @@
}
},
"node_modules/@esbuild/openbsd-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz",
- "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz",
+ "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==",
"cpu": [
"arm64"
],
@@ -2582,9 +2582,9 @@
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz",
- "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz",
+ "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==",
"cpu": [
"x64"
],
@@ -2599,9 +2599,9 @@
}
},
"node_modules/@esbuild/openharmony-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz",
- "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz",
+ "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==",
"cpu": [
"arm64"
],
@@ -2616,9 +2616,9 @@
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz",
- "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz",
+ "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==",
"cpu": [
"x64"
],
@@ -2633,9 +2633,9 @@
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz",
- "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz",
+ "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==",
"cpu": [
"arm64"
],
@@ -2650,9 +2650,9 @@
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz",
- "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz",
+ "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==",
"cpu": [
"ia32"
],
@@ -2667,9 +2667,9 @@
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz",
- "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz",
+ "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==",
"cpu": [
"x64"
],
@@ -3145,16 +3145,6 @@
"node": ">=8"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
"node_modules/@istanbuljs/load-nyc-config/node_modules/esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
@@ -3249,13 +3239,6 @@
"node": ">=8"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true,
- "license": "BSD-3-Clause"
- },
"node_modules/@istanbuljs/schema": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
@@ -3631,9 +3614,9 @@
}
},
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.12",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz",
- "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==",
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3652,9 +3635,9 @@
}
},
"node_modules/@jridgewell/source-map": {
- "version": "0.3.10",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.10.tgz",
- "integrity": "sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==",
+ "version": "0.3.11",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz",
+ "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3663,15 +3646,15 @@
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz",
- "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==",
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
"license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.29",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz",
- "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==",
+ "version": "0.3.30",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz",
+ "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4883,13 +4866,6 @@
"@tensorflow/tfjs-core": "4.22.0"
}
},
- "node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
- "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@tensorflow/tfjs-backend-webgl": {
"version": "4.22.0",
"resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-4.22.0.tgz",
@@ -4909,13 +4885,6 @@
"@tensorflow/tfjs-core": "4.22.0"
}
},
- "node_modules/@tensorflow/tfjs-backend-webgl/node_modules/seedrandom": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
- "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@tensorflow/tfjs-converter": {
"version": "4.22.0",
"resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-4.22.0.tgz",
@@ -4952,59 +4921,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@tensorflow/tfjs-core/node_modules/node-fetch": {
- "version": "2.6.13",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz",
- "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/@tensorflow/tfjs-core/node_modules/seedrandom": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
- "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tensorflow/tfjs-core/node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tensorflow/tfjs-core/node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true,
- "license": "BSD-2-Clause"
- },
- "node_modules/@tensorflow/tfjs-core/node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
"node_modules/@tensorflow/tfjs-data": {
"version": "4.22.0",
"resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-4.22.0.tgz",
@@ -5021,52 +4937,6 @@
"seedrandom": "^3.0.5"
}
},
- "node_modules/@tensorflow/tfjs-data/node_modules/node-fetch": {
- "version": "2.6.13",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz",
- "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/@tensorflow/tfjs-data/node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tensorflow/tfjs-data/node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true,
- "license": "BSD-2-Clause"
- },
- "node_modules/@tensorflow/tfjs-data/node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
"node_modules/@tensorflow/tfjs-layers": {
"version": "4.22.0",
"resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-4.22.0.tgz",
@@ -5077,16 +4947,6 @@
"@tensorflow/tfjs-core": "4.22.0"
}
},
- "node_modules/@tensorflow/tfjs/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
"node_modules/@tensorflow/tfjs/node_modules/core-js": {
"version": "3.29.1",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz",
@@ -5099,42 +4959,6 @@
"url": "https://opencollective.com/core-js"
}
},
- "node_modules/@tensorflow/tfjs/node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true,
- "license": "BSD-3-Clause"
- },
- "node_modules/@tensorflow/tfjs/node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@tensorflow/tfjs/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/@tootallnate/once": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
@@ -5159,9 +4983,9 @@
}
},
"node_modules/@transifex/api/node_modules/core-js": {
- "version": "3.44.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.44.0.tgz",
- "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==",
+ "version": "3.45.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.0.tgz",
+ "integrity": "sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -5206,13 +5030,13 @@
}
},
"node_modules/@types/babel__traverse": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz",
- "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==",
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.20.7"
+ "@babel/types": "^7.28.2"
}
},
"node_modules/@types/eslint": {
@@ -5371,13 +5195,13 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "24.1.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz",
- "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==",
+ "version": "24.2.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.2.1.tgz",
+ "integrity": "sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "undici-types": "~7.8.0"
+ "undici-types": "~7.10.0"
}
},
"node_modules/@types/node-fetch": {
@@ -5391,23 +5215,6 @@
"form-data": "^4.0.4"
}
},
- "node_modules/@types/node-fetch/node_modules/form-data": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
- "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "es-set-tostringtag": "^2.1.0",
- "hasown": "^2.0.2",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/@types/node-hid": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/@types/node-hid/-/node-hid-1.3.4.tgz",
@@ -6398,11 +6205,14 @@
"license": "MIT"
},
"node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
- "license": "Python-2.0"
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
},
"node_modules/array-bounds": {
"version": "1.0.1",
@@ -7006,9 +6816,9 @@
}
},
"node_modules/babel-preset-current-node-syntax": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz",
- "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz",
+ "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7029,7 +6839,7 @@
"@babel/plugin-syntax-top-level-await": "^7.14.5"
},
"peerDependencies": {
- "@babel/core": "^7.0.0"
+ "@babel/core": "^7.0.0 || ^8.0.0-0"
}
},
"node_modules/babel-preset-jest": {
@@ -7362,9 +7172,9 @@
"license": "ISC"
},
"node_modules/browserslist": {
- "version": "4.25.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz",
- "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==",
+ "version": "4.25.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.2.tgz",
+ "integrity": "sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==",
"dev": true,
"funding": [
{
@@ -7382,8 +7192,8 @@
],
"license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001726",
- "electron-to-chromium": "^1.5.173",
+ "caniuse-lite": "^1.0.30001733",
+ "electron-to-chromium": "^1.5.199",
"node-releases": "^2.0.19",
"update-browserslist-db": "^1.1.3"
},
@@ -7936,9 +7746,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001727",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz",
- "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==",
+ "version": "1.0.30001735",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001735.tgz",
+ "integrity": "sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==",
"dev": true,
"funding": [
{
@@ -8753,9 +8563,9 @@
"license": "MIT"
},
"node_modules/core-js-compat": {
- "version": "3.44.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.44.0.tgz",
- "integrity": "sha512-JepmAj2zfl6ogy34qfWtcE7nHKAJnKsQFRn++scjVS2bZFllwptzw61BZcZFYBPpUznLfAvh0LGhxKppk04ClA==",
+ "version": "3.45.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.45.0.tgz",
+ "integrity": "sha512-gRoVMBawZg0OnxaVv3zpqLLxaHmsubEGyTnqdpI/CEBvX4JadI1dMSHxagThprYRtSVbuQxvi6iUatdPxohHpA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8823,16 +8633,6 @@
"node": ">=6"
}
},
- "node_modules/coveralls/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
"node_modules/coveralls/node_modules/esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
@@ -8847,6 +8647,21 @@
"node": ">=4"
}
},
+ "node_modules/coveralls/node_modules/form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 0.12"
+ }
+ },
"node_modules/coveralls/node_modules/js-yaml": {
"version": "3.14.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
@@ -8904,13 +8719,6 @@
"node": ">= 6"
}
},
- "node_modules/coveralls/node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true,
- "license": "BSD-3-Clause"
- },
"node_modules/coveralls/node_modules/tough-cookie": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
@@ -9006,6 +8814,48 @@
"node-fetch": "^2.7.0"
}
},
+ "node_modules/cross-fetch/node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/cross-fetch/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "license": "MIT"
+ },
+ "node_modules/cross-fetch/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/cross-fetch/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
"node_modules/cross-spawn": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
@@ -10657,9 +10507,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.191",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.191.tgz",
- "integrity": "sha512-xcwe9ELcuxYLUFqZZxL19Z6HVKcvNkIwhbHUz7L3us6u12yR+7uY89dSl570f/IqNthx8dAw3tojG7i4Ni4tDA==",
+ "version": "1.5.200",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.200.tgz",
+ "integrity": "sha512-rFCxROw7aOe4uPTfIAx+rXv9cEcGx+buAF4npnhtTqCJk5KDFRnh3+KYj7rdVh6lsFt5/aPs+Irj9rZ33WMA7w==",
"dev": true,
"license": "ISC"
},
@@ -10772,9 +10622,9 @@
}
},
"node_modules/enhanced-resolve": {
- "version": "5.18.2",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz",
- "integrity": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==",
+ "version": "5.18.3",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz",
+ "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11194,9 +11044,9 @@
}
},
"node_modules/esbuild": {
- "version": "0.25.8",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz",
- "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz",
+ "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -11207,32 +11057,32 @@
"node": ">=18"
},
"optionalDependencies": {
- "@esbuild/aix-ppc64": "0.25.8",
- "@esbuild/android-arm": "0.25.8",
- "@esbuild/android-arm64": "0.25.8",
- "@esbuild/android-x64": "0.25.8",
- "@esbuild/darwin-arm64": "0.25.8",
- "@esbuild/darwin-x64": "0.25.8",
- "@esbuild/freebsd-arm64": "0.25.8",
- "@esbuild/freebsd-x64": "0.25.8",
- "@esbuild/linux-arm": "0.25.8",
- "@esbuild/linux-arm64": "0.25.8",
- "@esbuild/linux-ia32": "0.25.8",
- "@esbuild/linux-loong64": "0.25.8",
- "@esbuild/linux-mips64el": "0.25.8",
- "@esbuild/linux-ppc64": "0.25.8",
- "@esbuild/linux-riscv64": "0.25.8",
- "@esbuild/linux-s390x": "0.25.8",
- "@esbuild/linux-x64": "0.25.8",
- "@esbuild/netbsd-arm64": "0.25.8",
- "@esbuild/netbsd-x64": "0.25.8",
- "@esbuild/openbsd-arm64": "0.25.8",
- "@esbuild/openbsd-x64": "0.25.8",
- "@esbuild/openharmony-arm64": "0.25.8",
- "@esbuild/sunos-x64": "0.25.8",
- "@esbuild/win32-arm64": "0.25.8",
- "@esbuild/win32-ia32": "0.25.8",
- "@esbuild/win32-x64": "0.25.8"
+ "@esbuild/aix-ppc64": "0.25.9",
+ "@esbuild/android-arm": "0.25.9",
+ "@esbuild/android-arm64": "0.25.9",
+ "@esbuild/android-x64": "0.25.9",
+ "@esbuild/darwin-arm64": "0.25.9",
+ "@esbuild/darwin-x64": "0.25.9",
+ "@esbuild/freebsd-arm64": "0.25.9",
+ "@esbuild/freebsd-x64": "0.25.9",
+ "@esbuild/linux-arm": "0.25.9",
+ "@esbuild/linux-arm64": "0.25.9",
+ "@esbuild/linux-ia32": "0.25.9",
+ "@esbuild/linux-loong64": "0.25.9",
+ "@esbuild/linux-mips64el": "0.25.9",
+ "@esbuild/linux-ppc64": "0.25.9",
+ "@esbuild/linux-riscv64": "0.25.9",
+ "@esbuild/linux-s390x": "0.25.9",
+ "@esbuild/linux-x64": "0.25.9",
+ "@esbuild/netbsd-arm64": "0.25.9",
+ "@esbuild/netbsd-x64": "0.25.9",
+ "@esbuild/openbsd-arm64": "0.25.9",
+ "@esbuild/openbsd-x64": "0.25.9",
+ "@esbuild/openharmony-arm64": "0.25.9",
+ "@esbuild/sunos-x64": "0.25.9",
+ "@esbuild/win32-arm64": "0.25.9",
+ "@esbuild/win32-ia32": "0.25.9",
+ "@esbuild/win32-x64": "0.25.9"
}
},
"node_modules/escalade": {
@@ -12488,9 +12338,9 @@
}
},
"node_modules/flow-remove-types": {
- "version": "2.277.1",
- "resolved": "https://registry.npmjs.org/flow-remove-types/-/flow-remove-types-2.277.1.tgz",
- "integrity": "sha512-xg4n6tHaRIocPNwrX3rN622kpWs1c97uV1J+oYAfIQmbZRGL/HrEdS1zenfYUv5PuZ3Ch4UGKFn8KS/EhfG/Fg==",
+ "version": "2.278.0",
+ "resolved": "https://registry.npmjs.org/flow-remove-types/-/flow-remove-types-2.278.0.tgz",
+ "integrity": "sha512-0tqh3y8wGoTrgqGR9dT4UJdlmrE2IfzgTiuZyH+bUIfNdZcJ3ZagBW82+4BINftGlWiAf2eY+n7FKhx1spdmBg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12629,18 +12479,20 @@
}
},
"node_modules/form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+ "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
"dev": true,
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "hasown": "^2.0.2",
"mime-types": "^2.1.12"
},
"engines": {
- "node": ">= 0.12"
+ "node": ">= 6"
}
},
"node_modules/form-data-to-object": {
@@ -14230,16 +14082,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/gray-matter/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
"node_modules/gray-matter/node_modules/esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
@@ -14268,13 +14110,6 @@
"js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/gray-matter/node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true,
- "license": "BSD-3-Clause"
- },
"node_modules/grid-index": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz",
@@ -16338,6 +16173,50 @@
}
}
},
+ "node_modules/jest-cli/node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/jest-cli/node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/jest-cli/node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/jest-config": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
@@ -16548,23 +16427,6 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
- "node_modules/jest-environment-jsdom/node_modules/form-data": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
- "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "es-set-tostringtag": "^2.1.0",
- "hasown": "^2.0.2",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/jest-environment-jsdom/node_modules/html-encoding-sniffer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
@@ -17289,6 +17151,13 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/js-yaml/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
"node_modules/jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
@@ -19297,9 +19166,10 @@
"optional": true
},
"node_modules/node-fetch": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
- "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "version": "2.6.13",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz",
+ "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"whatwg-url": "^5.0.0"
@@ -19320,18 +19190,21 @@
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true,
"license": "MIT"
},
"node_modules/node-fetch/node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true,
"license": "BSD-2-Clause"
},
"node_modules/node-fetch/node_modules/whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"tr46": "~0.0.3",
@@ -19615,16 +19488,6 @@
"node": ">=4"
}
},
- "node_modules/nyc/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
"node_modules/nyc/node_modules/cliui": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
@@ -19930,13 +19793,6 @@
"rimraf": "bin.js"
}
},
- "node_modules/nyc/node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true,
- "license": "BSD-3-Clause"
- },
"node_modules/nyc/node_modules/string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
@@ -23796,9 +23652,9 @@
}
},
"node_modules/scratch-blocks/node_modules/core-js": {
- "version": "3.44.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.44.0.tgz",
- "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==",
+ "version": "3.45.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.0.tgz",
+ "integrity": "sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -24084,9 +23940,9 @@
"license": "MIT"
},
"node_modules/seedrandom": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.4.tgz",
- "integrity": "sha512-9A+PDmgm+2du77B5i0Ip2cxOqqHjgNxnBgglxLcX78A2D6c2rTo61z4jnVABpF4cKeDMDG+cmXXvdnqse2VqMA==",
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
+ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
"dev": true,
"license": "MIT"
},
@@ -24444,6 +24300,13 @@
"seedrandom": "^2.4.2"
}
},
+ "node_modules/shuffle-seed/node_modules/seedrandom": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.4.tgz",
+ "integrity": "sha512-9A+PDmgm+2du77B5i0Ip2cxOqqHjgNxnBgglxLcX78A2D6c2rTo61z4jnVABpF4cKeDMDG+cmXXvdnqse2VqMA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/side-channel": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
@@ -24920,9 +24783,9 @@
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.21",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz",
- "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==",
+ "version": "3.0.22",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz",
+ "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==",
"dev": true,
"license": "CC0-1.0"
},
@@ -24963,9 +24826,9 @@
}
},
"node_modules/sprintf-js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
- "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
"dev": true,
"license": "BSD-3-Clause"
},
@@ -28006,9 +27869,9 @@
"license": "MIT"
},
"node_modules/tmp": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
- "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz",
+ "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==",
"dev": true,
"license": "MIT",
"engines": {
@@ -28182,6 +28045,21 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/transifex/node_modules/form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 0.12"
+ }
+ },
"node_modules/transifex/node_modules/qs": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
@@ -28783,9 +28661,9 @@
}
},
"node_modules/undici-types": {
- "version": "7.8.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz",
- "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==",
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz",
+ "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==",
"dev": true,
"license": "MIT"
},
@@ -30058,22 +29936,22 @@
"license": "ISC"
},
"node_modules/yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "cliui": "^8.0.1",
+ "cliui": "^7.0.2",
"escalade": "^3.1.1",
"get-caller-file": "^2.0.5",
"require-directory": "^2.1.1",
- "string-width": "^4.2.3",
+ "string-width": "^4.2.0",
"y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
+ "yargs-parser": "^20.2.2"
},
"engines": {
- "node": ">=12"
+ "node": ">=10"
}
},
"node_modules/yargs-parser": {
@@ -30087,29 +29965,14 @@
"decamelize": "^1.2.0"
}
},
- "node_modules/yargs/node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/yargs/node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"dev": true,
"license": "ISC",
"engines": {
- "node": ">=12"
+ "node": ">=10"
}
},
"node_modules/yauzl": {
From 384ec3de6bb682e056a0470a26f9428906b00e02 Mon Sep 17 00:00:00 2001
From: Kaloyan Manolov
Date: Thu, 14 Aug 2025 16:25:12 +0300
Subject: [PATCH 112/129] fix: ensure thumbnail is refetched upon successful
thumbnail update
---
src/components/modal/share/modal.jsx | 13 +++++++++++--
src/components/modal/share/modal.scss | 1 +
src/views/preview/project-view.jsx | 18 +++++++-----------
3 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/src/components/modal/share/modal.jsx b/src/components/modal/share/modal.jsx
index 3d0dfaf7886..9cde43596b5 100644
--- a/src/components/modal/share/modal.jsx
+++ b/src/components/modal/share/modal.jsx
@@ -19,7 +19,15 @@ const updateLocalStorage = (username = 'guest', dontShowAgain) => {
// This modal uses texts from preview/l10n.json
// Parametrise texts if needed to be used outside of the preview context.
-const ShareModal = ({isOpen, onClose, onChangeThumbnail, onShare, projectThumbnailUrl, username}) => {
+const ShareModal = ({
+ isOpen,
+ onClose,
+ onChangeThumbnail,
+ onShare,
+ projectThumbnailUrl,
+ thumbnailRefreshKey = '',
+ username
+}) => {
const intl = useIntl();
const [dontShowAgain, setDontShowAgain] = useState(false);
@@ -54,7 +62,7 @@ const ShareModal = ({isOpen, onClose, onChangeThumbnail, onShare, projectThumbna
@@ -108,6 +116,7 @@ ShareModal.propTypes = {
onChangeThumbnail: PropTypes.func.isRequired,
onShare: PropTypes.func.isRequired,
projectThumbnailUrl: PropTypes.string,
+ thumbnailRefreshKey: PropTypes.string,
username: PropTypes.string
};
diff --git a/src/components/modal/share/modal.scss b/src/components/modal/share/modal.scss
index 67f8e382cb8..0f7e5fcc9ad 100644
--- a/src/components/modal/share/modal.scss
+++ b/src/components/modal/share/modal.scss
@@ -28,6 +28,7 @@
.share-modal-inner {
padding: 1.5rem;
padding-bottom: 1rem;
+ border-radius: .5rem;
gap: 1.5rem;
background: white;
font-size: 1rem;
diff --git a/src/views/preview/project-view.jsx b/src/views/preview/project-view.jsx
index f247b9b86f9..73e518c2fec 100644
--- a/src/views/preview/project-view.jsx
+++ b/src/views/preview/project-view.jsx
@@ -169,7 +169,6 @@ class Preview extends React.Component {
'addEventListeners',
'doShare',
'fetchCommunityData',
- 'fetchProjectInfo',
'handleAddComment',
'handleClickLogo',
'handleDeleteComment',
@@ -263,7 +262,8 @@ class Preview extends React.Component {
singleCommentId: singleCommentId,
greenFlagRecorded: false,
tooltipDriver: null,
- highlightDriver: null
+ highlightDriver: null,
+ thumbnailUrlRefreshKey: Date.now()
};
/* In the beginning, if user is on mobile and landscape, go to fullscreen */
this.setScreenFromOrientation();
@@ -419,13 +419,6 @@ class Preview extends React.Component {
this.props.getRemixes(this.state.projectId);
}
}
- fetchProjectInfo () {
- if (this.props.userPresent) {
- this.props.getProjectInfo(this.state.projectId, this.props.user.token);
- } else {
- this.props.getProjectInfo(this.state.projectId);
- }
- }
// This is copy of what is in save-project-to-server in GUI that adds
// an extra get of the project info from api. We do this to wait for replication
@@ -919,8 +912,10 @@ class Preview extends React.Component {
this.context.successAlert({
id: 'project.updateThumbnail.success'
});
- // Reload the project info to get the new thumbnail
- this.fetchProjectInfo();
+ // Force the thumbnail to be refetched on places where it is used
+ this.setState({
+ thumbnailUrlRefreshKey: Date.now()
+ });
};
const onError = () => this.context.errorAlert({
id: 'project.updateThumbnail.error'
@@ -1087,6 +1082,7 @@ class Preview extends React.Component {
this.doShare();
}}
projectThumbnailUrl={this.props.projectInfo.image}
+ thumbnailRefreshKey={this.state.thumbnailUrlRefreshKey}
username={this.props.user.username}
/>
Date: Fri, 15 Aug 2025 10:10:45 +0000
Subject: [PATCH 113/129] fix(deps): update dependency scratch-l10n to v6.0.27
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 2029373f1d5..195b0d0d554 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,7 +112,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.90.0",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.26",
+ "scratch-l10n": "6.0.27",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
@@ -23718,9 +23718,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "6.0.26",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.26.tgz",
- "integrity": "sha512-YcnaEnESjM8kybbAA2moxlyeYJaDuKxR2EGuAwHp7/32NScLkblU/cs7tSK3URIiYnhnbNLUdra/8iHxTCS5EA==",
+ "version": "6.0.27",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-6.0.27.tgz",
+ "integrity": "sha512-3Cv7Sv3OFgK9aQCMNWuLHmFXG0cpMvBuwyWVaeJ3zJPjJWxroUL2LXHemmfZw1/1NjlLNEJrev3T44mU3cY5yA==",
"dev": true,
"license": "AGPL-3.0-only",
"dependencies": {
diff --git a/package.json b/package.json
index 9dbd41b3075..a4ff2a4b0e1 100644
--- a/package.json
+++ b/package.json
@@ -148,7 +148,7 @@
"regenerator-runtime": "0.13.9",
"sass": "1.90.0",
"sass-loader": "10.5.2",
- "scratch-l10n": "6.0.26",
+ "scratch-l10n": "6.0.27",
"selenium-webdriver": "4.34.0",
"slick-carousel": "1.8.1",
"stream-browserify": "3.0.0",
From f3dae5baf93b04cda584678ab5128b808543d92b Mon Sep 17 00:00:00 2001
From: Kaloyan Manolov
Date: Fri, 15 Aug 2025 15:13:15 +0300
Subject: [PATCH 114/129] feat: update thumbnail preview modal texts
---
src/views/preview/l10n.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/views/preview/l10n.json b/src/views/preview/l10n.json
index 6748a40d467..aefcfb2864a 100644
--- a/src/views/preview/l10n.json
+++ b/src/views/preview/l10n.json
@@ -78,7 +78,7 @@
"project.shareModal.description1": "You're about to share your project with this thumbnail:",
"project.shareModal.description2": "Project thumbnails act like the front cover of your project. This image will appear in places like search results and your profile page to show other Scratchers what your project is about. If you'd like to change your project thumbnail, you can do so by clicking the \"Set Thumbnail\" button on your project page.",
"project.shareModal.description3": "Are you sure you want to proceed with this thumbnail?",
- "project.shareModal.changeThumbnail": "No, change thumbnail",
- "project.shareModal.okay": "Yes, I am sure",
+ "project.shareModal.setNewThumbnail": "Set new thumbnail",
+ "project.shareModal.proceed": "Proceed with share",
"project.shareModal.dontShowAgain": "Don't show this message again"
}
From 50714900cd5ed2c1c476839707acec94ab45ff4e Mon Sep 17 00:00:00 2001
From: Kaloyan Manolov
Date: Fri, 15 Aug 2025 15:13:56 +0300
Subject: [PATCH 115/129] feat: use local blob on page when updating thumbnail
instead of refetching
---
src/components/modal/share/modal.jsx | 17 +++++++++-----
src/views/preview/project-view.jsx | 34 +++++++++++++++++++++-------
2 files changed, 37 insertions(+), 14 deletions(-)
diff --git a/src/components/modal/share/modal.jsx b/src/components/modal/share/modal.jsx
index 9cde43596b5..5f0955758fa 100644
--- a/src/components/modal/share/modal.jsx
+++ b/src/components/modal/share/modal.jsx
@@ -1,4 +1,4 @@
-import React, {useCallback, useState} from 'react';
+import React, {useCallback, useState, useEffect} from 'react';
import PropTypes from 'prop-types';
import Modal from '../base/modal.jsx';
import ModalTitle from '../base/modal-title.jsx';
@@ -25,7 +25,6 @@ const ShareModal = ({
onChangeThumbnail,
onShare,
projectThumbnailUrl,
- thumbnailRefreshKey = '',
username
}) => {
const intl = useIntl();
@@ -45,6 +44,13 @@ const ShareModal = ({
onShare();
}, [username, dontShowAgain, onShare]);
+ // Preload the project thumbnail image to ensure it is ready when the modal opens.
+ useEffect(() => {
+ if (projectThumbnailUrl) {
+ new Image().src = projectThumbnailUrl;
+ }
+ }, [projectThumbnailUrl]);
+
return (
@@ -94,13 +100,13 @@ const ShareModal = ({
className="change-thumbnail-button"
onClick={handleChangeThumbnail}
>
-
+
-
+
@@ -116,7 +122,6 @@ ShareModal.propTypes = {
onChangeThumbnail: PropTypes.func.isRequired,
onShare: PropTypes.func.isRequired,
projectThumbnailUrl: PropTypes.string,
- thumbnailRefreshKey: PropTypes.string,
username: PropTypes.string
};
diff --git a/src/views/preview/project-view.jsx b/src/views/preview/project-view.jsx
index 73e518c2fec..f5bd2702b0e 100644
--- a/src/views/preview/project-view.jsx
+++ b/src/views/preview/project-view.jsx
@@ -218,7 +218,8 @@ class Preview extends React.Component {
'initCounts',
'pushHistory',
'renderLogin',
- 'setScreenFromOrientation'
+ 'setScreenFromOrientation',
+ 'updateLocalThumbnailFromBlob'
]);
const pathname = window.location.pathname.toLowerCase();
const parts = pathname.split('/').filter(Boolean);
@@ -263,7 +264,7 @@ class Preview extends React.Component {
greenFlagRecorded: false,
tooltipDriver: null,
highlightDriver: null,
- thumbnailUrlRefreshKey: Date.now()
+ projectThumbnailUrl: ''
};
/* In the beginning, if user is on mobile and landscape, go to fullscreen */
this.setScreenFromOrientation();
@@ -321,6 +322,12 @@ class Preview extends React.Component {
}
}
}
+ if (this.props.projectInfo.image !== prevProps.projectInfo.image &&
+ this.props.projectInfo.image !== this.state.projectThumbnailUrl) {
+ this.setState({
+ projectThumbnailUrl: this.props.projectInfo.image
+ });
+ }
if (this.props.faved !== prevProps.faved || this.props.loved !== prevProps.loved) {
this.setState({ // eslint-disable-line react/no-did-update-set-state
clientFaved: this.props.faved,
@@ -420,6 +427,18 @@ class Preview extends React.Component {
}
}
+ updateLocalThumbnailFromBlob (blob) {
+ const reader = new FileReader();
+
+ reader.readAsDataURL(blob);
+ reader.onload = () => {
+ const dataUri = reader.result;
+ this.setState({
+ projectThumbnailUrl: dataUri
+ });
+ };
+ }
+
// This is copy of what is in save-project-to-server in GUI that adds
// an extra get of the project info from api. We do this to wait for replication
// lag to pass. This is intended to be a temporary fix until we use the data
@@ -912,10 +931,10 @@ class Preview extends React.Component {
this.context.successAlert({
id: 'project.updateThumbnail.success'
});
- // Force the thumbnail to be refetched on places where it is used
- this.setState({
- thumbnailUrlRefreshKey: Date.now()
- });
+ // Update the thumbnail to point to the blob,
+ // to avoid having to make another request to
+ // refetch the thumbnail.
+ this.updateLocalThumbnailFromBlob(blob);
};
const onError = () => this.context.errorAlert({
id: 'project.updateThumbnail.error'
@@ -1081,8 +1100,7 @@ class Preview extends React.Component {
this.hideShareModal();
this.doShare();
}}
- projectThumbnailUrl={this.props.projectInfo.image}
- thumbnailRefreshKey={this.state.thumbnailUrlRefreshKey}
+ projectThumbnailUrl={this.state.projectThumbnailUrl}
username={this.props.user.username}
/>