From d49a5d7d64367192aa6b47ed604b3ee2e7163388 Mon Sep 17 00:00:00 2001 From: Muffin Date: Thu, 11 Jan 2024 17:27:11 -0600 Subject: [PATCH] Update scratch-* packages now that merge-upstream is approaching completion --- README.md | 9 +- package-lock.json | 202 +++++++++++++++------------ package.json | 12 +- src/scaffolding/scaffolding.js | 7 +- src/scaffolding/scratch-libraries.js | 15 ++ src/scaffolding/storage.js | 2 +- 6 files changed, 144 insertions(+), 103 deletions(-) create mode 100644 src/scaffolding/scratch-libraries.js diff --git a/README.md b/README.md index 0a2376c..ec446e3 100644 --- a/README.md +++ b/README.md @@ -44,9 +44,14 @@ We strive to make the packager easy to fork, even for mods that aren't based on ### Packages -If you want to change the VM/renderer/etc. used, just `npm install` or `npm link` a different scratch-vm/scratch-render/etc. and rebuild. You can even install a vanilla scratch-vm and all core functionality will still work (but optional features such as interpolation, high quality pen, stage size, etc. may not work) +If you want to change the scratch-vm/scratch-render/scratch-audio/scratch-storage/etc. used, this is simple: -If you encounter errors about dependencies missing, usually these will be fixed after running another `npm install`. + - `npm install` or `npm link` your package. The package name does not matter. + - Update src/scaffolding/scratch-libraries.js to import the packages with the name you have. (some of our packages are prefixed with `@turbowarp/` while others are still just `scratch-vm` -- just make sure they match yours) + +Then just rebuild. You can even install a vanilla scratch-vm and all core functionality will still work (but optional features such as interpolation, high quality pen, stage size, etc. may not work) + +Note that npm is a very buggy piece of software and our dependency tree is very large. Occasionally you might get errors about missing dependencies, which should go away if you run `npm install`. ### Deployment diff --git a/package-lock.json b/package-lock.json index 81695fc..3d92827 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,8 @@ "devDependencies": { "@babel/core": "^7.16.5", "@babel/preset-env": "^7.16.5", + "@turbowarp/scratch-storage": "^0.0.0-development-202401111301-7559569", + "@turbowarp/scratch-svg-renderer": "^1.0.0-202401111326-62c0f26", "babel-jest": "^27.4.5", "babel-loader": "^8.2.3", "comlink": "^4.3.1", @@ -30,12 +32,10 @@ "html-webpack-plugin": "^4.5.2", "jest": "^27.4.5", "rimraf": "^2.7.1", - "scratch-audio": "git+https://github.com/TurboWarp/scratch-audio.git", - "scratch-render": "git+https://github.com/TurboWarp/scratch-render.git#develop", - "scratch-render-fonts": "^1.0.0-prerelease.20210401210003", - "scratch-storage": "git+https://github.com/TurboWarp/scratch-storage.git#develop", - "scratch-svg-renderer": "git+https://github.com/TurboWarp/scratch-svg-renderer.git#develop", - "scratch-vm": "git+https://github.com/TurboWarp/scratch-vm.git#develop", + "scratch-audio": "github:TurboWarp/scratch-audio#develop", + "scratch-render": "github:TurboWarp/scratch-render#develop", + "scratch-render-fonts": "^1.0.0-prerelease.20231017225105", + "scratch-vm": "github:TurboWarp/scratch-vm#develop", "style-loader": "^2.0.0", "svelte": "^3.44.3", "svelte-loader": "^3.1.2", @@ -1639,12 +1639,12 @@ } }, "node_modules/@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" @@ -2785,6 +2785,81 @@ "node-fetch": "^2.6.12" } }, + "node_modules/@turbowarp/scratch-storage": { + "version": "0.0.0-development-202401111301-7559569", + "resolved": "https://registry.npmjs.org/@turbowarp/scratch-storage/-/scratch-storage-0.0.0-development-202401111301-7559569.tgz", + "integrity": "sha512-Qfx9zGKZQOHADOJ0iZst7IZc5iCnFgK4Gs9QpbU3pm2Nk6uLfSFinkImWkdzhtZoWhuPd3lAgdEvWJz6t4knhg==", + "dev": true, + "dependencies": { + "@babel/runtime": "7.21.0", + "arraybuffer-loader": "^1.0.3", + "base64-js": "1.3.0", + "cross-fetch": "3.1.5", + "fastestsmallesttextencoderdecoder": "^1.0.7", + "js-md5": "0.7.3", + "minilog": "3.1.0", + "worker-loader": "^2.0.0" + } + }, + "node_modules/@turbowarp/scratch-storage/node_modules/base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "dev": true + }, + "node_modules/@turbowarp/scratch-storage/node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/@turbowarp/scratch-storage/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@turbowarp/scratch-svg-renderer": { + "version": "1.0.0-202401111326-62c0f26", + "resolved": "https://registry.npmjs.org/@turbowarp/scratch-svg-renderer/-/scratch-svg-renderer-1.0.0-202401111326-62c0f26.tgz", + "integrity": "sha512-Kxj3mk4GJ0dFz4zJZ/PMoC6uNViqJjE5RnXWwDEiWOvTGY23n2qcsQgUopYOwtd/avQNNMbmAdFp3rsuq9gyWw==", + "dev": true, + "dependencies": { + "base64-js": "1.2.1", + "base64-loader": "1.0.0", + "css-tree": "1.1.3", + "dompurify": "2.2.7", + "fastestsmallesttextencoderdecoder": "^1.0.22", + "minilog": "3.1.0", + "transformation-matrix": "1.15.0" + }, + "peerDependencies": { + "scratch-render-fonts": "^1.0.0-prerelease" + } + }, + "node_modules/@turbowarp/scratch-svg-renderer/node_modules/base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", + "dev": true + }, "node_modules/@types/babel__core": { "version": "7.1.19", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", @@ -12201,9 +12276,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "dev": true }, "node_modules/regenerator-transform": { @@ -12534,9 +12609,9 @@ } }, "node_modules/scratch-audio": { + "name": "@turbowarp/scratch-audio", "version": "0.1.0", - "resolved": "git+ssh://git@github.com/TurboWarp/scratch-audio.git#30e31c4c5ea4b1c85fe4d579c7fef847fe64ff7b", - "integrity": "sha512-4ADm1kETomM45lS9hsHjgql3H/eZmJELPJCuSsJpNJ8zvsFkGuS/czFKwmGg9rjO8Pzhxv3PR3FNieaHaQqndQ==", + "resolved": "git+ssh://git@github.com/TurboWarp/scratch-audio.git#64de6b3e95d1bb39eb9ccf2fbc49473e5b0ad7e3", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -12634,18 +12709,18 @@ }, "node_modules/scratch-render": { "version": "0.1.0", - "resolved": "git+ssh://git@github.com/TurboWarp/scratch-render.git#68b71bcf2d1fc3aaee18478d846b0e435d720ef6", - "integrity": "sha512-PXftxSyg9LMG5hDxzH1AOHPIHW+BBfknQPPVYbEEGXxA0LOGQUcZVR3AoYrB5BWW+SMYhqyMeX/C8hF47dUnAg==", + "resolved": "git+ssh://git@github.com/TurboWarp/scratch-render.git#e3d64c72e5608d044335afdcc649443ecc191c81", "dev": true, "license": "BSD-3-Clause", "dependencies": { + "@turbowarp/scratch-svg-renderer": "^1.0.0-202312242305-12c360b", "grapheme-breaker": "0.3.2", "hull.js": "0.2.10", "ify-loader": "1.0.4", "linebreak": "0.3.0", "minilog": "3.1.0", "raw-loader": "^0.5.1", - "scratch-svg-renderer": "git+https://github.com/TurboWarp/scratch-svg-renderer.git", + "scratch-storage": "^1.0.0", "twgl.js": "4.4.0" }, "peerDependencies": { @@ -12653,37 +12728,32 @@ } }, "node_modules/scratch-render-fonts": { - "version": "1.0.0-prerelease.20221102164332", - "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20221102164332.tgz", - "integrity": "sha512-22MbRDGUSArVEoHatg5rt7f/H0wWhMrcyN6HD0OQJeDqdlO3qSSX9/qvdzNJGYWwZkhrdJWcI5JGD1YuJfefmw==", + "version": "1.0.0-prerelease.20231017225105", + "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20231017225105.tgz", + "integrity": "sha512-Ske5+x9OzfT7wf+eAnMQHutCzyle1er3ncywPMLPC6UDjKrlHYUFVNeTR3vJb3EoMdBNPl/yVKuJItGPQoUugg==", "dev": true, "dependencies": { "base64-loader": "1.0.0" } }, "node_modules/scratch-render/node_modules/base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", "dev": true }, - "node_modules/scratch-render/node_modules/scratch-svg-renderer": { - "version": "0.2.0", - "resolved": "git+ssh://git@github.com/TurboWarp/scratch-svg-renderer.git#edaf7588b6326f038de9b6a3b4ea247e2559ff6c", - "integrity": "sha512-Pv/lnqzXBtDgkwKvfe9hrFoPWiI8NryS2YiSF6ZH3imaHTlvQgW3AuKq71XcXXiUQf4ITVdOfJeFMF4Az/mgJA==", + "node_modules/scratch-render/node_modules/scratch-storage": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.6.tgz", + "integrity": "sha512-L/7z7SB7cGANsgjyiE+qZNaPEqFHK1yPbNomizkgN3WHGcKRogLvmheR57kOxHNpQzodUTbG+pVVH6fR2ZY1Sg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "base64-js": "1.2.1", - "base64-loader": "1.0.0", - "css-tree": "1.1.3", - "dompurify": "2.2.7", - "fastestsmallesttextencoderdecoder": "^1.0.22", + "arraybuffer-loader": "^1.0.3", + "base64-js": "1.3.0", + "fastestsmallesttextencoderdecoder": "^1.0.7", + "js-md5": "0.7.3", "minilog": "3.1.0", - "transformation-matrix": "1.15.0" - }, - "peerDependencies": { - "scratch-render-fonts": "^1.0.0-prerelease" + "worker-loader": "^2.0.0" } }, "node_modules/scratch-sb1-converter": { @@ -12697,52 +12767,6 @@ "text-encoding": "^0.7.0" } }, - "node_modules/scratch-storage": { - "version": "0.0.0-development", - "resolved": "git+ssh://git@github.com/TurboWarp/scratch-storage.git#81fe718894995cc5765e583a2f3d40408cc71cdd", - "integrity": "sha512-dFWliV1Hcs2FitEkUY8KcKUdt4yB3BPzyK8xqe72oKijZV98OMGtHq1NWpVedOlD6u+0uWOkhSHfO+Oj90J3/A==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "arraybuffer-loader": "^1.0.3", - "base64-js": "1.3.0", - "fastestsmallesttextencoderdecoder": "^1.0.7", - "js-md5": "0.7.3", - "minilog": "3.1.0", - "worker-loader": "^2.0.0" - } - }, - "node_modules/scratch-storage/node_modules/base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true - }, - "node_modules/scratch-svg-renderer": { - "version": "0.2.0", - "resolved": "git+ssh://git@github.com/TurboWarp/scratch-svg-renderer.git#edaf7588b6326f038de9b6a3b4ea247e2559ff6c", - "integrity": "sha512-Pv/lnqzXBtDgkwKvfe9hrFoPWiI8NryS2YiSF6ZH3imaHTlvQgW3AuKq71XcXXiUQf4ITVdOfJeFMF4Az/mgJA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "base64-js": "1.2.1", - "base64-loader": "1.0.0", - "css-tree": "1.1.3", - "dompurify": "2.2.7", - "fastestsmallesttextencoderdecoder": "^1.0.22", - "minilog": "3.1.0", - "transformation-matrix": "1.15.0" - }, - "peerDependencies": { - "scratch-render-fonts": "^1.0.0-prerelease" - } - }, - "node_modules/scratch-svg-renderer/node_modules/base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", - "dev": true - }, "node_modules/scratch-translate-extension-languages": { "version": "0.0.20191118205314", "resolved": "https://registry.npmjs.org/scratch-translate-extension-languages/-/scratch-translate-extension-languages-0.0.20191118205314.tgz", @@ -12750,9 +12774,8 @@ "dev": true }, "node_modules/scratch-vm": { - "version": "0.2.0", - "resolved": "git+ssh://git@github.com/TurboWarp/scratch-vm.git#bd0cf91d856693d72fdd7b8a6d027ac6c598217d", - "integrity": "sha512-jO8c50goE3GJJ8EzffR0awKREra6TOaUnGo3UqGNxKQ3I4eBI0ipMnsi1QIbWC8iXRHWSaOrHkcT8K89KNfNmw==", + "version": "2.1.46", + "resolved": "git+ssh://git@github.com/TurboWarp/scratch-vm.git#bb246c218fb8a9e5f1841d379924c7bcc7a3ecf8", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -12769,14 +12792,15 @@ "immutable": "3.8.2", "jszip": "^3.1.5", "minilog": "3.1.0", - "scratch-parser": "git+https://github.com/TurboWarp/scratch-parser.git#72f2cde00fc968ce40282e0392d3553963730748", + "scratch-parser": "github:TurboWarp/scratch-parser#master", "scratch-sb1-converter": "0.2.7", "scratch-translate-extension-languages": "0.0.20191118205314", "text-encoding": "0.7.0", + "uuid": "8.3.2", "worker-loader": "^1.1.1" }, "peerDependencies": { - "scratch-svg-renderer": "^0.2.0-prerelease" + "@turbowarp/scratch-svg-renderer": "^1.0.0-202312300007-62fe825" } }, "node_modules/scratch-vm/node_modules/dom-serializer": { diff --git a/package.json b/package.json index 5e97177..43d5f8d 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,8 @@ "devDependencies": { "@babel/core": "^7.16.5", "@babel/preset-env": "^7.16.5", + "@turbowarp/scratch-storage": "^0.0.0-development-202401111301-7559569", + "@turbowarp/scratch-svg-renderer": "^1.0.0-202401111326-62c0f26", "babel-jest": "^27.4.5", "babel-loader": "^8.2.3", "comlink": "^4.3.1", @@ -54,12 +56,10 @@ "html-webpack-plugin": "^4.5.2", "jest": "^27.4.5", "rimraf": "^2.7.1", - "scratch-audio": "git+https://github.com/TurboWarp/scratch-audio.git", - "scratch-render": "git+https://github.com/TurboWarp/scratch-render.git#develop", - "scratch-render-fonts": "^1.0.0-prerelease.20210401210003", - "scratch-storage": "git+https://github.com/TurboWarp/scratch-storage.git#develop", - "scratch-svg-renderer": "git+https://github.com/TurboWarp/scratch-svg-renderer.git#develop", - "scratch-vm": "git+https://github.com/TurboWarp/scratch-vm.git#develop", + "scratch-audio": "github:TurboWarp/scratch-audio#develop", + "scratch-render": "github:TurboWarp/scratch-render#develop", + "scratch-render-fonts": "^1.0.0-prerelease.20231017225105", + "scratch-vm": "github:TurboWarp/scratch-vm#develop", "style-loader": "^2.0.0", "svelte": "^3.44.3", "svelte-loader": "^3.1.2", diff --git a/src/scaffolding/scaffolding.js b/src/scaffolding/scaffolding.js index 1fff78b..c180429 100644 --- a/src/scaffolding/scaffolding.js +++ b/src/scaffolding/scaffolding.js @@ -1,10 +1,7 @@ -import VM from 'scratch-vm'; -import Renderer from 'scratch-render'; -import Storage from './storage'; -import AudioEngine from 'scratch-audio'; -import {BitmapAdapter} from 'scratch-svg-renderer'; import JSZip from 'jszip'; +import {VM, Renderer, AudioEngine, BitmapAdapter} from './scratch-libraries'; +import Storage from './storage'; import {EventTarget} from '../common/event-target'; import VideoProvider from './video'; import Cloud from './cloud'; diff --git a/src/scaffolding/scratch-libraries.js b/src/scaffolding/scratch-libraries.js new file mode 100644 index 0000000..75ca783 --- /dev/null +++ b/src/scaffolding/scratch-libraries.js @@ -0,0 +1,15 @@ +// If your package names don't match ours, just update them here and it will all just work + +import VM from 'scratch-vm'; +import Renderer from 'scratch-render'; +import ScratchStorage from '@turbowarp/scratch-storage'; +import AudioEngine from 'scratch-audio'; +import {BitmapAdapter} from '@turbowarp/scratch-svg-renderer'; + +export { + VM, + Renderer, + ScratchStorage, + AudioEngine, + BitmapAdapter +}; diff --git a/src/scaffolding/storage.js b/src/scaffolding/storage.js index 8327133..d48cc6b 100644 --- a/src/scaffolding/storage.js +++ b/src/scaffolding/storage.js @@ -1,4 +1,4 @@ -import ScratchStorage from 'scratch-storage'; +import {ScratchStorage} from './scratch-libraries'; class StorageWithProgress extends ScratchStorage { constructor () {