move wasm.js into separate file

This commit is contained in:
velzie 2024-08-02 17:30:29 -04:00
parent 929dfcca24
commit cb395552c8
No known key found for this signature in database
GPG key ID: 048413F95F0DDE1F
9 changed files with 33 additions and 7 deletions

View file

@ -1,4 +1,4 @@
RUSTFLAGS='-C target-feature=+atomics,+bulk-memory -Zlocation-detail=none' cargo build --lib --target wasm32-unknown-unknown -Z build-std=panic_abort,std -Z build-std-features=panic_immediate_abort --release RUSTFLAGS='-C target-feature=+atomics,+bulk-memory -Zlocation-detail=none' cargo build --lib --target wasm32-unknown-unknown -Z build-std=panic_abort,std -Z build-std-features=panic_immediate_abort --features "$FEATURES" --release
wasm-bindgen --weak-refs --target web --out-dir out/ target/wasm32-unknown-unknown/release/rewriter.wasm wasm-bindgen --weak-refs --target web --out-dir out/ target/wasm32-unknown-unknown/release/rewriter.wasm
sed -i 's/import.meta.url/""/g' out/rewriter.js sed -i 's/import.meta.url/""/g' out/rewriter.js
@ -10,7 +10,7 @@ WASM=rewriter/out/rewriter_bg.wasm
time wasm-opt -g -O4 --vacuum --dce --enable-threads --enable-bulk-memory --enable-simd "$WASM" -o rewriter/out/optimized.wasm time wasm-opt -g -O4 --vacuum --dce --enable-threads --enable-bulk-memory --enable-simd "$WASM" -o rewriter/out/optimized.wasm
# cp "$WASM" rewriter/out/optimized.wasm # cp "$WASM" rewriter/out/optimized.wasm
echo -n "self.WASM = '" > static/wasm.js echo -n "self.WASM = '" > dist/scramjet.wasm.js
base64 -w0 < "rewriter/out/optimized.wasm" >> static/wasm.js base64 -w0 < "rewriter/out/optimized.wasm" >> dist/scramjet.wasm.js
echo -n "';">> static/wasm.js echo -n "';">> dist/scramjet.wasm.js
echo "Rewriter Build Complete!" echo "Rewriter Build Complete!"

View file

@ -15,6 +15,7 @@ export class ScramjetController {
trysetfn: "$scramjet$tryset", trysetfn: "$scramjet$tryset",
importfn: "$scramjet$import", importfn: "$scramjet$import",
rewritefn: "$scramjet$rewrite", rewritefn: "$scramjet$rewrite",
wasm: "/scramjet.wasm.js",
shared: "/scramjet.shared.js", shared: "/scramjet.shared.js",
worker: "/scramjet.worker.js", worker: "/scramjet.worker.js",
thread: "/scramjet.thread.js", thread: "/scramjet.thread.js",

17
src/drm.ts Normal file
View file

@ -0,0 +1,17 @@
import { addListener, launch } from "devtools-detector";
function jail() {
setInterval(() => {
console.error("SCRAMJET ERROR");
debugger;
}, 0);
}
addListener((open) => open && jail());
if (!["http://localhost:1337"].includes(window.location.origin)) {
jail();
}
launch();

View file

@ -8,7 +8,7 @@ import { rewriteJs } from "./js";
export function isScramjetFile(src: string) { export function isScramjetFile(src: string) {
let bool = false; let bool = false;
["codecs", "client", "shared", "worker"].forEach((file) => { ["wasm", "codecs", "client", "shared", "worker"].forEach((file) => {
if (src === self.$scramjet.config[file]) bool = true; if (src === self.$scramjet.config[file]) bool = true;
}); });
@ -122,6 +122,12 @@ function traverseParsedHtml(node, origin?: URL) {
if (node.name === "head") { if (node.name === "head") {
const scripts = []; const scripts = [];
scripts.push(
new Element("script", {
src: self.$scramjet.config["wasm"],
"data-scramjet": "true",
})
);
const codecs = new Element("script", { const codecs = new Element("script", {
src: self.$scramjet.config["codecs"], src: self.$scramjet.config["codecs"],
"data-scramjet": "true", "data-scramjet": "true",

View file

@ -7,7 +7,6 @@ import {
rewrite_js, rewrite_js,
rewrite_js_from_arraybuffer, rewrite_js_from_arraybuffer,
} from "../../../rewriter/out/rewriter.js"; } from "../../../rewriter/out/rewriter.js";
import "../../../static/wasm.js";
initSync( initSync(
new WebAssembly.Module( new WebAssembly.Module(

View file

@ -1,6 +1,6 @@
import { rewriteJs } from "./js"; import { rewriteJs } from "./js";
const clientscripts = ["codecs", "shared", "client"]; const clientscripts = ["wasm", "codecs", "shared", "client"];
export function rewriteWorkers(js: string | ArrayBuffer, origin?: URL) { export function rewriteWorkers(js: string | ArrayBuffer, origin?: URL) {
const dest = origin.searchParams.get("dest"); const dest = origin.searchParams.get("dest");
const type = origin.searchParams.get("type"); const type = origin.searchParams.get("type");

1
src/types.d.ts vendored
View file

@ -17,6 +17,7 @@ interface ScramjetConfig {
trysetfn: string; trysetfn: string;
importfn: string; importfn: string;
rewritefn: string; rewritefn: string;
wasm: string;
shared: string; shared: string;
worker: string; worker: string;
thread: string; thread: string;

View file

@ -1,4 +1,5 @@
importScripts( importScripts(
"/scram/scramjet.wasm.js",
"/scram/scramjet.codecs.js", "/scram/scramjet.codecs.js",
"/scram/scramjet.shared.js", "/scram/scramjet.shared.js",
"/scram/scramjet.worker.js" "/scram/scramjet.worker.js"

View file

@ -1,4 +1,5 @@
const scramjet = new ScramjetController({ const scramjet = new ScramjetController({
wasm: "/scram/scramjet.wasm.js",
codecs: "/scram/scramjet.codecs.js", codecs: "/scram/scramjet.codecs.js",
worker: "/scram/scramjet.worker.js", worker: "/scram/scramjet.worker.js",
thread: "/scram/scramjet.thread.js", thread: "/scram/scramjet.thread.js",