Jointly rename the bundled renderer, Drawable and Skin methods and internal fields.
Use private Target state keys with prototype branding and receiver-aware access
adapters, preserving SB3 data loading, serialization, cloning and native objects.
Cover reflection, optional access, clone restart and renderer property mapping.
Run the aggressive CPU gate in CI and lengthen the pen benchmark workload.
Expose aggressiveRenaming in the website and Node API with a default-off setting.
Extend the seeded mapping to VM methods, internal fields and core block packages.
Scope thread status separately from external response status and reserve native
platform properties. Add differential and browser coverage for the new mode.
Build offline specialized players from the matching Scratch VM, with audited linking, pruning and scheduling-property renaming across browser, Node and standalone outputs.
- promote compiled packaging as a primary product feature
- add VM access and configurable JavaScript obfuscation
- support global debug protection and self-defending options
- package compiled artifacts with integrity verification
- update SB3C branding, documentation, and dependency URLs
- fix standalone builds and production service worker caching
- configure GitHub Pages deployment workflow
Actually fixes https://github.com/TurboWarp/packager/issues/528https://github.com/TurboWarp/packager/pull/861 fixed running large projects
in Chrome, but packaging still used string concatenation so it remained broken.
Now the concatenation part is done using TextEncoder & Uint8Arrays and a
template tag function to keep it readable.
This time I have actually tested it with a 1.0GB sb3.
Breaking Node API change: The data property returned by Packager#package() is
now always a Uint8Array instead of sometimes string and sometimes ArrayBuffer.
Data is now decoded progressively into a big pre-allocated buffer.
This fixes errors in Chrome when the project gets really big.
Also fixed errors on big endian systems (probably).
Support added to unpackager already.
Due to serialization bugs, an array of objects is always saved, which will cause the extension list to not be read properly on future visits.
This is backwards incompatible, but really no one should be customizing this anyways.
We ony looked at the values anyways, so there's no reason for it to be a dict-like object
This fixes tests that used to rely on exact IDs, which are no longer guaranteed to be consistent
* Separate "p4" and "packager"
* Continue p4, packager, common refactoring
* Plist does not need to be a class
* Document what the `common` folder is for
* Fix typo in "uril-utils"
* Move more p4 JS to the p4 folder
* Move everything from packager/lib to just packager
* Fix imports in tests