@wasm-oj/browser 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,7 @@ let e,t=null;function n(){return t!==null&&t.buffer===e.memory.buffer||(t=new Ui
14
14
  let result = Atomics.wait(ia, index, value);
15
15
  postMessage(result);
16
16
  };
17
- `],{type:`text/javascript`})),e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;u().setInt32(t+4,r,!0),u().setInt32(t+0,n,!0)},t.wbg.__wbindgen_lt=function(e,t){return e<t},t.wbg.__wbindgen_memory=function(){return e.memory},t.wbg.__wbindgen_module=function(){return je.__wbindgen_wasm_module},t.wbg.__wbindgen_neg=function(e){return-e},t.wbg.__wbindgen_number_get=function(e,t){let n=typeof t==`number`?t:void 0;u().setFloat64(e+8,d(n)?0:n,!0),u().setInt32(e+0,!d(n),!0)},t.wbg.__wbindgen_number_new=function(e){return e},t.wbg.__wbindgen_rethrow=function(e){throw e},t.wbg.__wbindgen_shr=function(e,t){return e>>t},t.wbg.__wbindgen_string_get=function(t,n){let r=typeof n==`string`?n:void 0;var i=d(r)?0:c(r,e.__wbindgen_malloc,e.__wbindgen_realloc),a=o;u().setInt32(t+4,a,!0),u().setInt32(t+0,i,!0)},t.wbg.__wbindgen_string_new=function(e,t){return a(e,t)},t.wbg.__wbindgen_throw=function(e,t){throw Error(a(e,t))},t}function ke(e,t){e.wbg.memory=t||new WebAssembly.Memory({initial:34,maximum:16384,shared:!0})}function Ae(n,r,i){if(e=n.exports,je.__wbindgen_wasm_module=r,l=null,t=null,i!==void 0&&(typeof i!=`number`||i===0||i%65536!=0))throw`invalid stack size`;return e.__wbindgen_start(i),e}async function je(t,n){if(e!==void 0)return e;let r;t!==void 0&&(Object.getPrototypeOf(t)===Object.prototype?{module_or_path:t,memory:n,thread_stack_size:r}=t:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`)),t===void 0&&(t=new URL(``+new URL(`wasmer_js_bg-lccPpAdN.wasm`,import.meta.url).href,``+import.meta.url));let i=Oe();(typeof t==`string`||typeof Request==`function`&&t instanceof Request||typeof URL==`function`&&t instanceof URL)&&(t=fetch(t)),ke(i,n);let{instance:a,module:o}=await async function(e,t){if(typeof Response==`function`&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(!e.ok||!De.has(e.type)||e.headers.get(`Content-Type`)===`application/wasm`)throw t;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",t)}let n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}(await t,i);return Ae(a,o,r)}const Me=async(e,t)=>{e?(e instanceof WebAssembly.Module||e instanceof URL||e instanceof WebAssembly.Module)&&(t?(console.info("Passing the module and memory as first arguments to the init function is deprecated, please use: `init({module: WASM_MODULE, memory: WASM_MEMORY})`"),e={module:e,memory:t}):(console.info("Passing the module as first argument to the init function is deprecated, please use: `init({module: WASM_MODULE})`"),e={module:e})):e={},Ne(e);let n=await je(e.module,e.memory);return e.log&&x(e.log),e.workerUrl&&te(e.workerUrl.toString()),e.sdkUrl?ee(e.sdkUrl.toString()):ee(new URL(``+new URL(`index-CMYYN-aK.mjs`,import.meta.url).href,``+import.meta.url).toString()),n},Ne=e=>{globalThis.__WASMER_REGISTRY__={registryUrl:e.registryUrl,token:e.token}};var Pe=``+new URL(`wasmer_js_bg-lccPpAdN.wasm`,import.meta.url).href;const A=`wasm-oj-v2`,j=Object.freeze({clangPins:`${A}/clang-pins`,clangLibcxxPch:`${A}/clang-libcxx-pch`,clangToolchain:`${A}/clang-toolchain`,compileBatch:`${A}/compile-batch`,compileTrace:`${A}/compile-trace`,conformance:`${A}/conformance`,conformanceEvidence:`${A}/conformance-evidence`,conformanceMatrix:`${A}/conformance-matrix`,cppDependencyLock:`${A}/cpp-dependency-lock`,dependencyLock:`${A}/dependency-lock`,dependencyOfflineBundle:`${A}/dependency-offline-bundle`,incrementalBuildGraph:`${A}/incremental-build-graph`,interactiveRequest:`${A}/interactive-request`,goToolchain:`${A}/go-toolchain`,objectCache:`${A}/object-cache`,pythonToolchain:`${A}/python-toolchain`,replayBundle:`${A}/replay-bundle`,rustToolchain:`${A}/rust-toolchain`,runRequest:`${A}/run-request`,runtimeBundle:`${A}/runtime-bundle`,runtimeCoreLicenses:`${A}/runtime-core-licenses`,thirdPartyComponents:`${A}/third-party-components`,wasmerSdkLicenses:`${A}/wasmer-sdk-licenses`,toolchainPackage:`${A}/toolchain-package`}),Fe=Object.freeze({database:`${A}:storage`,databaseVersion:2,dependencyCache:`${A}:dependencies`,incrementalBuildCache:`${A}:incremental-build-cache`,runtimeFilesCache:`${A}:runtime-files`,toolchainCache:`${A}:toolchains`}),Ie=Object.freeze([`c`,`cpp`,`rust`,`python`,`javascript`,`typescript`,`go`]);function M(e){if(typeof e!=`string`||!e||e!==e.trim()||e.length>128)throw Error(`Language identifiers must be non-empty, trimmed, and at most 128 characters.`)}function Le(e){return Ie.includes(e)}Object.freeze([`cargo`,`npm`,`pypi`,`go`,`cpp`]);const N=`22.0.0-git20542-10`,Re=`wasm-oj/clang@${N}`,ze=`/toolchains/clang-${N}.webc.gz.bin`,Be=`/toolchains/clang-${N}.cc1-pins.json`,Ve=`/toolchains/clang-${N}.manifest.json`,He=`/toolchains/clang-${N}.libcxx-pch.json`,Ue=`/toolchains/clang-${N}.cpp-debug.pch.gz.bin`,We=`/toolchains/clang-${N}.cpp-release.pch.gz.bin`,Ge=`7f10d90b8e52b270f04874641a1d0bf9e94e85b4f6c7573a774cebbc6d32552a`,P=`21ded33b9c6d4e1aaad5528c940bdaf6c3e84be77ea8f522f018ca7289a2a224`,F=`895eee17c63b1112c84adcc4ddbcb38e0c18e53bff15f50a8689b9b82d87b1ff`,Ke=`6382dcdfb6a2da49032a0e08da3b1fb490eb24432be85c3c12e3e871a5065273`,qe=`9bbe41d77c786f1c36169369c909268530b05726e1581683f6edd9a2983eebd0`,Je=Object.freeze({"cpp-debug":Object.freeze({path:Ue,sha256:`c420c4643c48826643e75585d5bfdc281f11883d4bda28b283e3c706f3046b3a`,compressedSha256:`a3811351bae3289caf096f2d4bb6d2ee5db84b97e05514e87190d36b65c500cf`}),"cpp-release":Object.freeze({path:We,sha256:`c4b2132cc6d698e97dd1386431fdb54faaaf38b35b2528c7bc854f860d1f64b1`,compressedSha256:`ef004fc05ec50af697a37f7c9c814bf62e9676d0de162d6ac35305533939f93f`})}),Ye=`3.14.7`,Xe=`a42c98f5f00582638c8e445440c506bbf94d5e55b3415d1f8d82d11c56cd4b56`,Ze=`${`wasm-oj/cpython@${Ye}`}#sha256:${Xe}`,Qe=`/toolchains/python-${Ye}-wasip1.webc.gz.bin`,$e=`/toolchains/python-${Ye}-wasip1.manifest.json`,et=`10027f0e32c77dfa0ce1c413b6cb27307d6744fe5e18e6da8cea738bd020260c`,tt=`53a24b258363a8494af164121111a34b49c85fa0e054627fe131feba6f359cd5`,nt=`0.15.1`,rt=`wasm-oj/quickjs-ng@${nt}`,it=`/toolchains/quickjs-${nt}.wasm.gz.bin`,at=`dc6e02e8610269e61b341331661515616451cec929fd534fa96d1c4f47fbcc9a`,ot=`7.0.2`,st=`/toolchains/typescript-${ot}.wasm.gz.bin`,ct=`29c6ee0e46151e2644049ae96162b1b1d46dcb13310e2a928114bb9030c3ea92`,I=`1.91.1-dev`,lt=`/toolchains/rust-${I}.webc.gz.bin`,ut=`/toolchains/rust-${I}.manifest.json`,dt=`cfbdadc67be1315e735aa55bdf8a5a0d00171982a023fefcf7ba586127753887`,ft=`765de8d68d03078e79f69f49dec0dcab1ff96fe3bbe5e9eafebb2ce61a39d3ee`,pt=`d5bbdca994e61888679c5738cb9420649c0854ed0eb5d65468bc67d5d550bce1`,L=`1.26.5`,mt=`/toolchains/go-${L}-wasip1.webc.gz.bin`,ht=`/toolchains/go-${L}-wasip1.manifest.json`,gt=`/toolchains/go-${L}-wasip1.stdlib.gz.bin`,_t=`70a7e359884b09b2e1a622d6ac5cd6e31c334aab519e6dd80dff5e040a9e09e4`,vt=`c3a97934b6a83fefdea5c31f99141f70f76189eedc9ec0fa9ccd41302e50963b`,yt=`5d784e9ca640b9525e84b598c0beb97ca110ae908568ca45f6441a441d99a262`,bt=`aeffc384fdc624544f174ba5fc3c22395717fdbc3c4387d677d20855b6be80d8`,xt=`e1ec64b08efd02b35b7ffdaf3970875aaae98325fa4795eafca94ebae2d0d192`,St=`9e557f5b86961fd604217d7521461c5d2b7322e383fa30dead5669b77db12201`,Ct=`2eefca10af935a307ab7946447146bd30e0ea0fb5460be54dc1c55844d155580`,wt=`teavm-0.13.1-wasmgc-wasip1`,Tt=`wasm-oj/java-teavm@${wt}`,Et=`/toolchains/java-teavm-0.13.1.compiler.wasm`,Dt=`/toolchains/java-teavm-0.13.1.compile-classlib.bin`,Ot=`/toolchains/java-teavm-0.13.1.runtime-classlib.bin`,kt=`8c37bce1c6fceeaffeffe93e10834309b67c8b6fb58c6f8a24547afe8be67f5d`,At=`738a82b7d7e7ff8d98b07bb076785da7035847a166afb8446fd150c4efce6103`,jt=`0ed234b66cdde19cb29e6c2865a3636d792d3cf72f102e73a7b3fdede80b79e6`,Mt=Object.freeze({[ze]:Ge,[Be]:F,[Ve]:Ke,[He]:qe,[Ue]:Je[`cpp-debug`].compressedSha256,[We]:Je[`cpp-release`].compressedSha256,[Qe]:et,[$e]:tt,[it]:at,[st]:ct,[lt]:dt,[ut]:pt,[mt]:_t,[ht]:yt,[gt]:bt,[Et]:kt,[Dt]:At,[Ot]:jt}),Nt=Object.freeze({c:Object.freeze([Ge,P,F,Ke]),cpp:Object.freeze([Ge,P,F,Ke]),rust:Object.freeze([dt,ft,pt]),python:Object.freeze([et,Xe,tt,`c1acac884af1c86833db5b65f8cc0a2304fce74dea0a05d9b40bde0a4e3e7c0e`]),javascript:Object.freeze([ct,at]),typescript:Object.freeze([ct,at]),go:Object.freeze([_t,vt,yt,bt,xt,St,Ct])});function Pt(e){if(e===`java`)return[kt,At,jt].join(`.`);if(!Le(e))throw Error(`WASM-OJ has no built-in toolchain for '${e}'.`);return Nt[e].join(`.`)}function R(e){return Object.freeze({...e,compilerPackages:Object.freeze([...e.compilerPackages]),targets:Object.freeze([...e.targets])})}const Ft=Object.freeze({c:R({language:`c`,label:`Clang 22`,artifact:`wasm`,compilerPackages:[Re],targets:[`wasip1`,`wasix`],version:N,note:`Native wasip1 module via Clang and LLD; directly executable by WASI and WASIX runtimes.`}),cpp:R({language:`cpp`,label:`Clang++ 22 (C++20)`,artifact:`wasm`,compilerPackages:[Re],targets:[`wasip1`,`wasix`],version:N,note:`C++20/libc++ wasip1 module; directly executable by WASI and WASIX runtimes.`}),rust:R({language:`rust`,label:`Rust ${I}`,artifact:`wasm`,compilerPackages:[`rustc@${I}#sha256:${ft}`],targets:[`wasip1`],version:I,note:`Real rustc, its matching standard library, and a fresh deterministic wasm-ld stage execute as one pinned WebC under Wasmer.`}),python:R({language:`python`,label:`CPython ${Ye}`,artifact:`runtime-bundle`,compilerPackages:[Ze],runtimePackage:Ze,targets:[`wasip1`],version:Ye,note:`Python source files executed by the source-built CPython wasm32-wasip1 interpreter and standard library.`}),javascript:R({language:`javascript`,label:`QuickJS-ng`,artifact:`runtime-bundle`,compilerPackages:[`typescript@${ot}-wasi`],runtimePackage:rt,targets:[`wasip1`],version:nt,note:`JavaScript checked by TypeScript/WASI, then executed by the bundled QuickJS-ng/WASI runtime.`}),typescript:R({language:`typescript`,label:`TypeScript + QuickJS-ng`,artifact:`runtime-bundle`,compilerPackages:[`typescript@${ot}-wasi`],runtimePackage:rt,targets:[`wasip1`],version:ot,note:`The native TypeScript compiler and QuickJS-ng runtime both execute as local WASI modules.`}),go:R({language:`go`,label:`Go ${L}`,artifact:`wasm`,compilerPackages:[`go@${L}#sha256:${vt}`],targets:[`wasip1`],version:L,note:`The standard Go compiler, linker, and pinned wasip1 standard library execute locally as one WebC under Wasmer.`})});function z(e){if(e===`java`)return[Tt];if(!Le(e))throw Error(`WASM-OJ has no built-in toolchain for '${e}'.`);let t=Ft[e];return[...new Set([...t.compilerPackages,...t.runtimePackage?[t.runtimePackage]:[]])]}const B=Object.freeze({files:256,bytesPerFile:4194304,totalBytes:16777216}),It=new TextEncoder;function Lt(e,t){return e<t?-1:+(e>t)}function Rt(e,t=`Project path`){if(typeof e!=`string`||!e||e!==e.trim()||e.length>4096)throw Error(`${t} must be a non-empty, trimmed string of at most 4096 characters.`);if(e.startsWith(`/`)||e.includes(`\\`)||e.includes(`\0`)||e.split(`/`).some(e=>!e||e===`.`||e===`..`))throw Error(`${t} '${e}' must be a normalized relative path that cannot escape the project.`)}function zt(e){if(!Array.isArray(e)||e.length===0)throw Error(`A project must contain at least one source file.`);if(e.length>B.files)throw Error(`A project cannot contain more than ${B.files} source files.`);let t=new Set,n=0;return e.map((e,r)=>{if(!e||typeof e!=`object`)throw Error(`Project file ${r} is invalid.`);if(Rt(e.path,`Project file ${r} path`),M(e.language),typeof e.content!=`string`)throw Error(`Project file '${e.path}' content must be a string.`);if(e.content.length>B.bytesPerFile)throw Error(`Project file '${e.path}' exceeds the ${B.bytesPerFile} byte source limit.`);let i=It.encode(e.content).byteLength;if(i>B.bytesPerFile)throw Error(`Project file '${e.path}' exceeds the ${B.bytesPerFile} byte source limit.`);if(n+=i,n>B.totalBytes)throw Error(`Project sources exceed the ${B.totalBytes} byte total limit.`);if(t.has(e.path))throw Error(`Duplicate project path '${e.path}'.`);return t.add(e.path),{path:e.path,language:e.language,content:e.content}}).sort((e,t)=>Lt(e.path,t.path))}function Bt(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Runtime bundle files must be a record.`);return Object.entries(e).map(([e,t])=>(Rt(e,`Runtime bundle path`),[e,t])).sort(([e],[t])=>Lt(e,t))}function Vt(e){return Object.fromEntries(Bt(e))}async function V(e){let t=typeof e==`string`?new TextEncoder().encode(e):e,n=new Uint8Array(t.byteLength);n.set(t);let r=await crypto.subtle.digest(`SHA-256`,n);return Array.from(new Uint8Array(r),e=>e.toString(16).padStart(2,`0`)).join(``)}const H=1048576,Ht=Object.freeze({requirements:128,sourceFiles:128,sourceTextBytes:8*H,hosts:32,roots:512,packages:512,referencesPerPackage:512,concurrency:16,metadataBytes:8*H,packageBytes:256*H,totalDownloadBytes:512*H,archiveFiles:16384,unpackedBytes:512*H});Object.freeze({packages:Ht.packages,filesPerPackage:Ht.archiveFiles,bytesPerFile:64*H,totalBytes:Ht.unpackedBytes});const Ut=/^[a-f0-9]{64}$/,Wt=/^\/toolchains\/[A-Za-z0-9][A-Za-z0-9._+/-]*$/,Gt=new URL(`https://wasm-oj.invalid/`);function Kt(e,t){if(!Array.isArray(e)||e.length===0)throw Error(`At least one explicit WASM-OJ toolchain source is required.`);let n=t??e[0]?.kind;if(n!==`browser`&&n!==`server`)throw Error(`Toolchain sources must declare either the 'browser' or 'server' host kind.`);let r=new Set,i=new Set,a=new Set,o=new Set;for(let[t,s]of e.entries()){if(an(s,`Toolchain source ${t}`),s.kind!==n)throw Error(`Toolchain source ${t} has host kind '${String(s.kind)}'; expected '${n}'.`);n===`browser`?(on(s,[`kind`,`descriptor`,`baseUrl`],`Browser toolchain source ${t}`),$t(s.baseUrl,t)):(on(s,[`kind`,`descriptor`,`directory`],`Server toolchain source ${t}`),en(s.directory,t));let e=s.descriptor;if(Qt(e,t),r.has(e.id))throw Error(`Toolchain descriptor id '${e.id}' is registered more than once.`);r.add(e.id);for(let t of e.languages){if(i.has(t))throw Error(`Toolchain language '${t}' is owned by more than one descriptor.`);i.add(t)}for(let t of e.profiles){let e=nn(t.language,t.target,t.optimization);if(a.has(e))throw Error(`Toolchain profile '${e}' is registered more than once.`);a.add(e)}for(let t of e.assets){if(o.has(t.path))throw Error(`Toolchain asset '${t.path}' is owned by more than one descriptor.`);o.add(t.path)}}return e}function qt(e){return Kt(e,`browser`)}function Jt(e){qt(e);let t=e.map(e=>Object.freeze({kind:`browser`,baseUrl:e.baseUrl,descriptor:rn(e.descriptor)}));return Object.freeze(t)}function Yt(e,t){tn(t,`Requested toolchain asset path`);let n;for(let r of e){let e=r.descriptor.assets.find(e=>e.path===t);if(e){if(n)throw Error(`Toolchain asset '${t}' has more than one source.`);n={source:r,asset:e}}}if(!n)throw Error(`No explicit toolchain source declares asset '${t}'.`);return n}function Xt(e,t,n){let{source:r}=Yt(e,t),i=new URL(r.baseUrl,n);if(!i.pathname.endsWith(`/`))throw Error(`Browser toolchain base URL '${r.baseUrl}' must end with '/'.`);return i}function Zt(e,t,n){let{asset:r}=Yt(e,t),i=Xt(e,t,n),a=[...i.searchParams];i.search=``;let o=new URL(r.path.slice(r.path.lastIndexOf(`/`)+1),i);for(let[e,t]of a)o.searchParams.append(e,t);return o.searchParams.set(`sha256`,r.sha256),o}function Qt(e,t){let n=`Toolchain descriptor ${t}`;if(an(e,n),on(e,[`schema`,`id`,`version`,`wasmOjContract`,`languages`,`profiles`,`assets`],n),e.schema!==j.toolchainPackage)throw Error(`${n} schema '${String(e.schema)}' is unsupported; expected '${j.toolchainPackage}'.`);if(e.wasmOjContract!==2)throw Error(`${n} contract '${String(e.wasmOjContract)}' is unsupported; expected '2'.`);if(sn(e.id,`${n} id`,214),sn(e.version,`${n} version`,128),!Array.isArray(e.languages)||e.languages.length===0)throw Error(`${n} must declare at least one language.`);if(!Array.isArray(e.profiles)||e.profiles.length===0)throw Error(`${n} must declare at least one build profile.`);if(!Array.isArray(e.assets)||e.assets.length===0)throw Error(`${n} must declare at least one digest-pinned asset.`);let r=new Set;for(let t of e.languages){if(M(t),r.has(t))throw Error(`${n} repeats language '${t}'.`);r.add(t)}let i=new Set;for(let[t,a]of e.profiles.entries()){if(an(a,`${n} profile ${t}`),on(a,[`language`,`target`,`optimization`],`${n} profile ${t}`),M(a.language),!r.has(a.language))throw Error(`${n} profile ${t} references undeclared language '${a.language}'.`);if(a.target!==`wasip1`&&a.target!==`wasix`)throw Error(`${n} profile ${t} has unsupported target '${String(a.target)}'.`);if(a.optimization!==`debug`&&a.optimization!==`release`)throw Error(`${n} profile ${t} has unsupported optimization '${String(a.optimization)}'.`);let e=nn(a.language,a.target,a.optimization);if(i.has(e))throw Error(`${n} repeats profile '${e}'.`);i.add(e)}for(let t of r)if(!e.profiles.some(e=>e.language===t))throw Error(`${n} language '${t}' has no build profile.`);let a=new Set;for(let[t,r]of e.assets.entries()){let e=`${n} asset ${t}`;if(an(r,e),on(r,[`path`,`bytes`,`sha256`,`exportPath`],e),tn(r.path,`${e} path`),a.has(r.path))throw Error(`${n} repeats asset '${r.path}'.`);if(a.add(r.path),!Number.isSafeInteger(r.bytes)||r.bytes<=0)throw Error(`${e} bytes must be a positive safe integer.`);if(!Ut.test(r.sha256))throw Error(`${e} sha256 must be a lowercase hexadecimal SHA-256 digest.`);let i=Mt[r.path];if(i!==void 0&&r.sha256!==i)throw Error(`${e} digest '${r.sha256}' does not match the WASM-OJ pin '${i}'.`);let o=`./assets/${r.path.slice(r.path.lastIndexOf(`/`)+1)}`;if(r.exportPath!==o)throw Error(`${e} exportPath must be '${o}'.`)}}function $t(e,t){sn(e,`Browser toolchain source ${t} baseUrl`,4096);let n;try{n=e.startsWith(`/`)?new URL(e,Gt):new URL(e)}catch{throw Error(`Browser toolchain source ${t} baseUrl must be absolute or root-relative.`)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw Error(`Browser toolchain source ${t} baseUrl must use HTTP or HTTPS.`);if(n.username||n.password)throw Error(`Browser toolchain source ${t} baseUrl must not contain credentials.`);if(n.hash)throw Error(`Browser toolchain source ${t} baseUrl must not contain a fragment.`);if(!n.pathname.endsWith(`/`))throw Error(`Browser toolchain source ${t} baseUrl must identify a directory and end with '/'.`)}function en(e,t){if(!(e instanceof URL))throw Error(`Server toolchain source ${t} directory must be a URL.`);if(e.protocol!==`file:`)throw Error(`Server toolchain source ${t} directory must use the file: protocol.`);if(e.search||e.hash||!e.pathname.endsWith(`/`))throw Error(`Server toolchain source ${t} directory must be a query-free directory URL ending with '/'.`)}function tn(e,t){if(!Wt.test(e)||e.includes(`//`))throw Error(`${t} must be a canonical absolute path below '/toolchains/'.`);let n=e.split(`/`);if(n.includes(`.`)||n.includes(`..`))throw Error(`${t} must not contain traversal segments.`)}function nn(e,t,n){return`${e}/${t}/${n}`}function rn(e){return Object.freeze({...e,languages:Object.freeze([...e.languages]),profiles:Object.freeze(e.profiles.map(e=>Object.freeze({...e}))),assets:Object.freeze(e.assets.map(e=>Object.freeze({...e})))})}function an(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`${t} must be an object.`)}function on(e,t,n){let r=Object.keys(e).sort(),i=[...t].sort();if(r.length!==i.length||r.some((e,t)=>e!==i[t]))throw Error(`${n} must contain exactly: ${i.join(`, `)}.`)}function sn(e,t,n){if(typeof e!=`string`||e.length===0||e!==e.trim()||e.length>n)throw Error(`${t} must be a non-empty trimmed string of at most ${n} characters.`)}Object.freeze({instructionBudget:1e10,logicalTimeLimitMs:6e4,memoryLimitBytes:268435456,outputLimitBytes:4194304,filesystemWriteLimitBytes:67108864,filesystemEntryLimit:4096,wallTimeLimitMs:6e4}),new TextEncoder,Object.freeze({runtimeCoreWasmSha256:`1e297ad276694e9fb8a23afdc6ccc0b2ae56a223ced19d5cae26fe4661daa11e`,runtimeSourceRootSha256:`27c52cb1887aa8a7e0d8a238514fc8881cf86c68267e2a1691f110423692e2b6`,wasmerNativeVersion:`7.2.1`,wasmerSdkVersion:`0.10.0`,wasmerSdkWasmSha256:`49a6646209f5ab5e7c737eac33407d87d9a9959ac83e5ecaaab9261b2323589e`,wasmerWasixVersion:`0.702.1`});function cn(e,t,n){return M(e),[`wasm-oj-cost`,`contract-2`,encodeURIComponent(e),t,n]}function ln(e,t,n,r){let i=Le(e)?Pt(e):r;if(!i||!/^[A-Za-z0-9._-]+$/.test(i))throw Error(Le(e)?`WASM-OJ toolchain content identity is invalid for '${e}'.`:`Downstream language '${e}' requires an explicit content identity using letters, digits, '.', '_' or '-'.`);return[...cn(e,t,n),`content-${i}`,`runtime-d3e44cafdc1c17a7e6bd4591ef04ec8161af805a519b5bbff437b15e5accd442`,`weighted`].join(`:`)}new TextEncoder,Object.freeze({python:`python`,javascript:`qjs`,typescript:`qjs`});function un(e,t,n=16384){if(typeof e!=`string`||!e||e!==e.trim()||e.length>n)throw Error(`${t} must be a non-empty, trimmed string of at most ${n} characters.`)}function dn(e){return JSON.stringify({schema:j.runtimeBundle,version:2,name:e.name,target:e.target,language:e.language,runtime:{package:e.runtimePackage,command:e.command},execution:{deterministic:!0,contractVersion:2},entry:e.entry,files:[...e.files]},null,2)}function fn(e,t,n,r){return un(e.name,`Project name`),un(t,`Runtime package`),un(n,`Runtime command`,128),M(e.config.language),Rt(r,`Runtime bundle entry`),dn({name:e.name,target:e.config.target,language:e.config.language,runtimePackage:t,command:n,entry:r,files:zt(e.files).map(e=>e.path)})}function pn(e){return Vt(e)}function mn(e){return e===`warning`?`warning`:e===`note`||e===`info`?`info`:`error`}function hn(e){return e.replace(/^file:\/\//,``).replace(/^\/?(?:workspace|project|work)\//,``).replace(/^\.\//,``)}function gn(e){let t=[],n=/^(.*?):(\d+):(\d+):\s+(fatal error|error|warning|note):\s+(.+?)(?:\s+\[([^\]]+)\])?$/gm,r;for(;(r=n.exec(e))!==null;)t.push({file:hn(r[1]),line:Number(r[2]),column:Number(r[3]),severity:mn(r[4].replace(`fatal `,``)),message:r[5],source:`clang`,code:r[6]});return t}function _n(e){let t=[],n=/^(.*?)\((\d+),(\d+)\):\s+(error|warning|message)\s+TS(\d+):\s+(.+)$/gm,r;for(;(r=n.exec(e))!==null;)t.push({severity:mn(r[4]),message:r[6],file:hn(r[1]),line:Number(r[2]),column:Number(r[3]),source:`typescript`,code:`TS${r[5]}`});return t}function vn(e,t){return e.length>0?e:[{severity:`error`,file:hn(t.file),line:1,column:1,source:t.source,message:t.message}]}const yn=String.raw`
17
+ `],{type:`text/javascript`})),e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;u().setInt32(t+4,r,!0),u().setInt32(t+0,n,!0)},t.wbg.__wbindgen_lt=function(e,t){return e<t},t.wbg.__wbindgen_memory=function(){return e.memory},t.wbg.__wbindgen_module=function(){return je.__wbindgen_wasm_module},t.wbg.__wbindgen_neg=function(e){return-e},t.wbg.__wbindgen_number_get=function(e,t){let n=typeof t==`number`?t:void 0;u().setFloat64(e+8,d(n)?0:n,!0),u().setInt32(e+0,!d(n),!0)},t.wbg.__wbindgen_number_new=function(e){return e},t.wbg.__wbindgen_rethrow=function(e){throw e},t.wbg.__wbindgen_shr=function(e,t){return e>>t},t.wbg.__wbindgen_string_get=function(t,n){let r=typeof n==`string`?n:void 0;var i=d(r)?0:c(r,e.__wbindgen_malloc,e.__wbindgen_realloc),a=o;u().setInt32(t+4,a,!0),u().setInt32(t+0,i,!0)},t.wbg.__wbindgen_string_new=function(e,t){return a(e,t)},t.wbg.__wbindgen_throw=function(e,t){throw Error(a(e,t))},t}function ke(e,t){e.wbg.memory=t||new WebAssembly.Memory({initial:34,maximum:16384,shared:!0})}function Ae(n,r,i){if(e=n.exports,je.__wbindgen_wasm_module=r,l=null,t=null,i!==void 0&&(typeof i!=`number`||i===0||i%65536!=0))throw`invalid stack size`;return e.__wbindgen_start(i),e}async function je(t,n){if(e!==void 0)return e;let r;t!==void 0&&(Object.getPrototypeOf(t)===Object.prototype?{module_or_path:t,memory:n,thread_stack_size:r}=t:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`)),t===void 0&&(t=new URL(``+new URL(`wasmer_js_bg-lccPpAdN.wasm`,import.meta.url).href,``+import.meta.url));let i=Oe();(typeof t==`string`||typeof Request==`function`&&t instanceof Request||typeof URL==`function`&&t instanceof URL)&&(t=fetch(t)),ke(i,n);let{instance:a,module:o}=await async function(e,t){if(typeof Response==`function`&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(!e.ok||!De.has(e.type)||e.headers.get(`Content-Type`)===`application/wasm`)throw t;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",t)}let n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}(await t,i);return Ae(a,o,r)}const Me=async(e,t)=>{e?(e instanceof WebAssembly.Module||e instanceof URL||e instanceof WebAssembly.Module)&&(t?(console.info("Passing the module and memory as first arguments to the init function is deprecated, please use: `init({module: WASM_MODULE, memory: WASM_MEMORY})`"),e={module:e,memory:t}):(console.info("Passing the module as first argument to the init function is deprecated, please use: `init({module: WASM_MODULE})`"),e={module:e})):e={},Ne(e);let n=await je(e.module,e.memory);return e.log&&x(e.log),e.workerUrl&&te(e.workerUrl.toString()),e.sdkUrl?ee(e.sdkUrl.toString()):ee(new URL(``+new URL(`index-CMYYN-aK.mjs`,import.meta.url).href,``+import.meta.url).toString()),n},Ne=e=>{globalThis.__WASMER_REGISTRY__={registryUrl:e.registryUrl,token:e.token}};var Pe=``+new URL(`wasmer_js_bg-lccPpAdN.wasm`,import.meta.url).href;const A=`wasm-oj-v2`,j=Object.freeze({clangPins:`${A}/clang-pins`,clangLibcxxPch:`${A}/clang-libcxx-pch`,clangToolchain:`${A}/clang-toolchain`,compileBatch:`${A}/compile-batch`,compileTrace:`${A}/compile-trace`,conformance:`${A}/conformance`,conformanceEvidence:`${A}/conformance-evidence`,conformanceMatrix:`${A}/conformance-matrix`,cppDependencyLock:`${A}/cpp-dependency-lock`,dependencyLock:`${A}/dependency-lock`,dependencyOfflineBundle:`${A}/dependency-offline-bundle`,incrementalBuildGraph:`${A}/incremental-build-graph`,interactiveRequest:`${A}/interactive-request`,goToolchain:`${A}/go-toolchain`,objectCache:`${A}/object-cache`,pythonToolchain:`${A}/python-toolchain`,replayBundle:`${A}/replay-bundle`,rustToolchain:`${A}/rust-toolchain`,runRequest:`${A}/run-request`,runtimeBundle:`${A}/runtime-bundle`,runtimeCoreLicenses:`${A}/runtime-core-licenses`,thirdPartyComponents:`${A}/third-party-components`,wasmerSdkLicenses:`${A}/wasmer-sdk-licenses`,toolchainPackage:`${A}/toolchain-package`}),Fe=Object.freeze({database:`${A}:storage`,databaseVersion:2,dependencyCache:`${A}:dependencies`,incrementalBuildCache:`${A}:incremental-build-cache`,runtimeFilesCache:`${A}:runtime-files`,toolchainCache:`${A}:toolchains`}),Ie=Object.freeze([`c`,`cpp`,`rust`,`python`,`javascript`,`typescript`,`go`]);function M(e){if(typeof e!=`string`||!e||e!==e.trim()||e.length>128)throw Error(`Language identifiers must be non-empty, trimmed, and at most 128 characters.`)}function Le(e){return Ie.includes(e)}Object.freeze([`cargo`,`npm`,`pypi`,`go`,`cpp`]);const N=`22.0.0-git20542-10`,Re=`wasm-oj/clang@${N}`,ze=`/toolchains/clang-${N}.webc.gz.bin`,Be=`/toolchains/clang-${N}.cc1-pins.json`,Ve=`/toolchains/clang-${N}.manifest.json`,He=`/toolchains/clang-${N}.libcxx-pch.json`,Ue=`/toolchains/clang-${N}.cpp-debug.pch.gz.bin`,We=`/toolchains/clang-${N}.cpp-release.pch.gz.bin`,Ge=`7f10d90b8e52b270f04874641a1d0bf9e94e85b4f6c7573a774cebbc6d32552a`,P=`21ded33b9c6d4e1aaad5528c940bdaf6c3e84be77ea8f522f018ca7289a2a224`,F=`895eee17c63b1112c84adcc4ddbcb38e0c18e53bff15f50a8689b9b82d87b1ff`,Ke=`6382dcdfb6a2da49032a0e08da3b1fb490eb24432be85c3c12e3e871a5065273`,qe=`9bbe41d77c786f1c36169369c909268530b05726e1581683f6edd9a2983eebd0`,Je=Object.freeze({"cpp-debug":Object.freeze({path:Ue,sha256:`c420c4643c48826643e75585d5bfdc281f11883d4bda28b283e3c706f3046b3a`,compressedSha256:`a3811351bae3289caf096f2d4bb6d2ee5db84b97e05514e87190d36b65c500cf`}),"cpp-release":Object.freeze({path:We,sha256:`c4b2132cc6d698e97dd1386431fdb54faaaf38b35b2528c7bc854f860d1f64b1`,compressedSha256:`ef004fc05ec50af697a37f7c9c814bf62e9676d0de162d6ac35305533939f93f`})}),Ye=`3.14.7`,Xe=`a42c98f5f00582638c8e445440c506bbf94d5e55b3415d1f8d82d11c56cd4b56`,Ze=`${`wasm-oj/cpython@${Ye}`}#sha256:${Xe}`,Qe=`/toolchains/python-${Ye}-wasip1.webc.gz.bin`,$e=`/toolchains/python-${Ye}-wasip1.manifest.json`,et=`10027f0e32c77dfa0ce1c413b6cb27307d6744fe5e18e6da8cea738bd020260c`,tt=`53a24b258363a8494af164121111a34b49c85fa0e054627fe131feba6f359cd5`,nt=`0.15.1`,rt=`wasm-oj/quickjs-ng@${nt}`,it=`/toolchains/quickjs-${nt}.wasm.gz.bin`,at=`dc6e02e8610269e61b341331661515616451cec929fd534fa96d1c4f47fbcc9a`,ot=`7.0.2`,st=`/toolchains/typescript-${ot}.wasm.gz.bin`,ct=`29c6ee0e46151e2644049ae96162b1b1d46dcb13310e2a928114bb9030c3ea92`,I=`1.91.1-dev`,lt=`/toolchains/rust-${I}.webc.gz.bin`,ut=`/toolchains/rust-${I}.manifest.json`,dt=`cfbdadc67be1315e735aa55bdf8a5a0d00171982a023fefcf7ba586127753887`,ft=`765de8d68d03078e79f69f49dec0dcab1ff96fe3bbe5e9eafebb2ce61a39d3ee`,pt=`d5bbdca994e61888679c5738cb9420649c0854ed0eb5d65468bc67d5d550bce1`,L=`1.26.5`,mt=`/toolchains/go-${L}-wasip1.webc.gz.bin`,ht=`/toolchains/go-${L}-wasip1.manifest.json`,gt=`/toolchains/go-${L}-wasip1.stdlib.gz.bin`,_t=`70a7e359884b09b2e1a622d6ac5cd6e31c334aab519e6dd80dff5e040a9e09e4`,vt=`c3a97934b6a83fefdea5c31f99141f70f76189eedc9ec0fa9ccd41302e50963b`,yt=`5d784e9ca640b9525e84b598c0beb97ca110ae908568ca45f6441a441d99a262`,bt=`aeffc384fdc624544f174ba5fc3c22395717fdbc3c4387d677d20855b6be80d8`,xt=`e1ec64b08efd02b35b7ffdaf3970875aaae98325fa4795eafca94ebae2d0d192`,St=`9e557f5b86961fd604217d7521461c5d2b7322e383fa30dead5669b77db12201`,Ct=`2eefca10af935a307ab7946447146bd30e0ea0fb5460be54dc1c55844d155580`,wt=`teavm-0.13.1-wasmgc-wasip1`,Tt=`wasm-oj/java-teavm@${wt}`,Et=`/toolchains/java-teavm-0.13.1.compiler.wasm`,Dt=`/toolchains/java-teavm-0.13.1.compile-classlib.bin`,Ot=`/toolchains/java-teavm-0.13.1.runtime-classlib.bin`,kt=`8c37bce1c6fceeaffeffe93e10834309b67c8b6fb58c6f8a24547afe8be67f5d`,At=`738a82b7d7e7ff8d98b07bb076785da7035847a166afb8446fd150c4efce6103`,jt=`0ed234b66cdde19cb29e6c2865a3636d792d3cf72f102e73a7b3fdede80b79e6`,Mt=Object.freeze({[ze]:Ge,[Be]:F,[Ve]:Ke,[He]:qe,[Ue]:Je[`cpp-debug`].compressedSha256,[We]:Je[`cpp-release`].compressedSha256,[Qe]:et,[$e]:tt,[it]:at,[st]:ct,[lt]:dt,[ut]:pt,[mt]:_t,[ht]:yt,[gt]:bt,[Et]:kt,[Dt]:At,[Ot]:jt}),Nt=Object.freeze({c:Object.freeze([Ge,P,F,Ke]),cpp:Object.freeze([Ge,P,F,Ke]),rust:Object.freeze([dt,ft,pt]),python:Object.freeze([et,Xe,tt,`c1acac884af1c86833db5b65f8cc0a2304fce74dea0a05d9b40bde0a4e3e7c0e`]),javascript:Object.freeze([ct,at]),typescript:Object.freeze([ct,at]),go:Object.freeze([_t,vt,yt,bt,xt,St,Ct])});function Pt(e){if(e===`java`)return[kt,At,jt].join(`.`);if(!Le(e))throw Error(`WASM-OJ has no built-in toolchain for '${e}'.`);return Nt[e].join(`.`)}function R(e){return Object.freeze({...e,compilerPackages:Object.freeze([...e.compilerPackages]),targets:Object.freeze([...e.targets])})}const Ft=Object.freeze({c:R({language:`c`,label:`Clang 22`,artifact:`wasm`,compilerPackages:[Re],targets:[`wasip1`,`wasix`],version:N,note:`Native wasip1 module via Clang and LLD; directly executable by WASI and WASIX runtimes.`}),cpp:R({language:`cpp`,label:`Clang++ 22 (C++20)`,artifact:`wasm`,compilerPackages:[Re],targets:[`wasip1`,`wasix`],version:N,note:`C++20/libc++ wasip1 module; directly executable by WASI and WASIX runtimes.`}),rust:R({language:`rust`,label:`Rust ${I}`,artifact:`wasm`,compilerPackages:[`rustc@${I}#sha256:${ft}`],targets:[`wasip1`],version:I,note:`Real rustc, its matching standard library, and a fresh deterministic wasm-ld stage execute as one pinned WebC under Wasmer.`}),python:R({language:`python`,label:`CPython ${Ye}`,artifact:`runtime-bundle`,compilerPackages:[Ze],runtimePackage:Ze,targets:[`wasip1`],version:Ye,note:`Python source files executed by the source-built CPython wasm32-wasip1 interpreter and standard library.`}),javascript:R({language:`javascript`,label:`QuickJS-ng`,artifact:`runtime-bundle`,compilerPackages:[`typescript@${ot}-wasi`],runtimePackage:rt,targets:[`wasip1`],version:nt,note:`JavaScript checked by TypeScript/WASI, then executed by the bundled QuickJS-ng/WASI runtime.`}),typescript:R({language:`typescript`,label:`TypeScript + QuickJS-ng`,artifact:`runtime-bundle`,compilerPackages:[`typescript@${ot}-wasi`],runtimePackage:rt,targets:[`wasip1`],version:ot,note:`The native TypeScript compiler and QuickJS-ng runtime both execute as local WASI modules.`}),go:R({language:`go`,label:`Go ${L}`,artifact:`wasm`,compilerPackages:[`go@${L}#sha256:${vt}`],targets:[`wasip1`],version:L,note:`The standard Go compiler, linker, and pinned wasip1 standard library execute locally as one WebC under Wasmer.`})});function z(e){if(e===`java`)return[Tt];if(!Le(e))throw Error(`WASM-OJ has no built-in toolchain for '${e}'.`);let t=Ft[e];return[...new Set([...t.compilerPackages,...t.runtimePackage?[t.runtimePackage]:[]])]}const B=Object.freeze({files:256,bytesPerFile:4194304,totalBytes:16777216}),It=new TextEncoder;function Lt(e,t){return e<t?-1:+(e>t)}function Rt(e,t=`Project path`){if(typeof e!=`string`||!e||e!==e.trim()||e.length>4096)throw Error(`${t} must be a non-empty, trimmed string of at most 4096 characters.`);if(e.startsWith(`/`)||e.includes(`\\`)||e.includes(`\0`)||e.split(`/`).some(e=>!e||e===`.`||e===`..`))throw Error(`${t} '${e}' must be a normalized relative path that cannot escape the project.`)}function zt(e){if(!Array.isArray(e)||e.length===0)throw Error(`A project must contain at least one source file.`);if(e.length>B.files)throw Error(`A project cannot contain more than ${B.files} source files.`);let t=new Set,n=0;return e.map((e,r)=>{if(!e||typeof e!=`object`)throw Error(`Project file ${r} is invalid.`);if(Rt(e.path,`Project file ${r} path`),M(e.language),typeof e.content!=`string`)throw Error(`Project file '${e.path}' content must be a string.`);if(e.content.length>B.bytesPerFile)throw Error(`Project file '${e.path}' exceeds the ${B.bytesPerFile} byte source limit.`);let i=It.encode(e.content).byteLength;if(i>B.bytesPerFile)throw Error(`Project file '${e.path}' exceeds the ${B.bytesPerFile} byte source limit.`);if(n+=i,n>B.totalBytes)throw Error(`Project sources exceed the ${B.totalBytes} byte total limit.`);if(t.has(e.path))throw Error(`Duplicate project path '${e.path}'.`);return t.add(e.path),{path:e.path,language:e.language,content:e.content}}).sort((e,t)=>Lt(e.path,t.path))}function Bt(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Runtime bundle files must be a record.`);return Object.entries(e).map(([e,t])=>(Rt(e,`Runtime bundle path`),[e,t])).sort(([e],[t])=>Lt(e,t))}function Vt(e){return Object.fromEntries(Bt(e))}async function V(e){let t=typeof e==`string`?new TextEncoder().encode(e):e,n=new Uint8Array(t.byteLength);n.set(t);let r=await crypto.subtle.digest(`SHA-256`,n);return Array.from(new Uint8Array(r),e=>e.toString(16).padStart(2,`0`)).join(``)}const H=1048576,Ht=Object.freeze({requirements:128,sourceFiles:128,sourceTextBytes:8*H,hosts:32,roots:512,packages:512,referencesPerPackage:512,concurrency:16,metadataBytes:8*H,packageBytes:256*H,totalDownloadBytes:512*H,archiveFiles:16384,unpackedBytes:512*H});Object.freeze({packages:Ht.packages,filesPerPackage:Ht.archiveFiles,bytesPerFile:64*H,totalBytes:Ht.unpackedBytes});const Ut=/^[a-f0-9]{64}$/,Wt=/^\/toolchains\/[A-Za-z0-9][A-Za-z0-9._+/-]*$/,Gt=new URL(`https://wasm-oj.invalid/`);function Kt(e,t){if(!Array.isArray(e)||e.length===0)throw Error(`At least one explicit WASM-OJ toolchain source is required.`);let n=t??e[0]?.kind;if(n!==`browser`&&n!==`server`)throw Error(`Toolchain sources must declare either the 'browser' or 'server' host kind.`);let r=new Set,i=new Set,a=new Set,o=new Set;for(let[t,s]of e.entries()){if(an(s,`Toolchain source ${t}`),s.kind!==n)throw Error(`Toolchain source ${t} has host kind '${String(s.kind)}'; expected '${n}'.`);n===`browser`?(on(s,[`kind`,`descriptor`,`baseUrl`],`Browser toolchain source ${t}`),$t(s.baseUrl,t)):(on(s,[`kind`,`descriptor`,`directory`],`Server toolchain source ${t}`),en(s.directory,t));let e=s.descriptor;if(Qt(e,t),r.has(e.id))throw Error(`Toolchain descriptor id '${e.id}' is registered more than once.`);r.add(e.id);for(let t of e.languages){if(i.has(t))throw Error(`Toolchain language '${t}' is owned by more than one descriptor.`);i.add(t)}for(let t of e.profiles){let e=nn(t.language,t.target,t.optimization);if(a.has(e))throw Error(`Toolchain profile '${e}' is registered more than once.`);a.add(e)}for(let t of e.assets){if(o.has(t.path))throw Error(`Toolchain asset '${t.path}' is owned by more than one descriptor.`);o.add(t.path)}}return e}function qt(e){return Kt(e,`browser`)}function Jt(e){qt(e);let t=e.map(e=>Object.freeze({kind:`browser`,baseUrl:e.baseUrl,descriptor:rn(e.descriptor)}));return Object.freeze(t)}function Yt(e,t){tn(t,`Requested toolchain asset path`);let n;for(let r of e){let e=r.descriptor.assets.find(e=>e.path===t);if(e){if(n)throw Error(`Toolchain asset '${t}' has more than one source.`);n={source:r,asset:e}}}if(!n)throw Error(`No explicit toolchain source declares asset '${t}'.`);return n}function Xt(e,t,n){let{source:r}=Yt(e,t),i=new URL(r.baseUrl,n);if(!i.pathname.endsWith(`/`))throw Error(`Browser toolchain base URL '${r.baseUrl}' must end with '/'.`);return i}function Zt(e,t,n){let{asset:r}=Yt(e,t),i=Xt(e,t,n),a=[...i.searchParams];i.search=``;let o=new URL(r.path.slice(r.path.lastIndexOf(`/`)+1),i);for(let[e,t]of a)o.searchParams.append(e,t);return o.searchParams.set(`sha256`,r.sha256),o}function Qt(e,t){let n=`Toolchain descriptor ${t}`;if(an(e,n),on(e,[`schema`,`id`,`version`,`wasmOjContract`,`languages`,`profiles`,`assets`],n),e.schema!==j.toolchainPackage)throw Error(`${n} schema '${String(e.schema)}' is unsupported; expected '${j.toolchainPackage}'.`);if(e.wasmOjContract!==2)throw Error(`${n} contract '${String(e.wasmOjContract)}' is unsupported; expected '2'.`);if(sn(e.id,`${n} id`,214),sn(e.version,`${n} version`,128),!Array.isArray(e.languages)||e.languages.length===0)throw Error(`${n} must declare at least one language.`);if(!Array.isArray(e.profiles)||e.profiles.length===0)throw Error(`${n} must declare at least one build profile.`);if(!Array.isArray(e.assets)||e.assets.length===0)throw Error(`${n} must declare at least one digest-pinned asset.`);let r=new Set;for(let t of e.languages){if(M(t),r.has(t))throw Error(`${n} repeats language '${t}'.`);r.add(t)}let i=new Set;for(let[t,a]of e.profiles.entries()){if(an(a,`${n} profile ${t}`),on(a,[`language`,`target`,`optimization`],`${n} profile ${t}`),M(a.language),!r.has(a.language))throw Error(`${n} profile ${t} references undeclared language '${a.language}'.`);if(a.target!==`wasip1`&&a.target!==`wasix`)throw Error(`${n} profile ${t} has unsupported target '${String(a.target)}'.`);if(a.optimization!==`debug`&&a.optimization!==`release`)throw Error(`${n} profile ${t} has unsupported optimization '${String(a.optimization)}'.`);let e=nn(a.language,a.target,a.optimization);if(i.has(e))throw Error(`${n} repeats profile '${e}'.`);i.add(e)}for(let t of r)if(!e.profiles.some(e=>e.language===t))throw Error(`${n} language '${t}' has no build profile.`);let a=new Set;for(let[t,r]of e.assets.entries()){let e=`${n} asset ${t}`;if(an(r,e),on(r,[`path`,`bytes`,`sha256`,`exportPath`],e),tn(r.path,`${e} path`),a.has(r.path))throw Error(`${n} repeats asset '${r.path}'.`);if(a.add(r.path),!Number.isSafeInteger(r.bytes)||r.bytes<=0)throw Error(`${e} bytes must be a positive safe integer.`);if(!Ut.test(r.sha256))throw Error(`${e} sha256 must be a lowercase hexadecimal SHA-256 digest.`);let i=Mt[r.path];if(i!==void 0&&r.sha256!==i)throw Error(`${e} digest '${r.sha256}' does not match the WASM-OJ pin '${i}'.`);let o=`./assets/${r.path.slice(r.path.lastIndexOf(`/`)+1)}`;if(r.exportPath!==o)throw Error(`${e} exportPath must be '${o}'.`)}}function $t(e,t){sn(e,`Browser toolchain source ${t} baseUrl`,4096);let n;try{n=e.startsWith(`/`)?new URL(e,Gt):new URL(e)}catch{throw Error(`Browser toolchain source ${t} baseUrl must be absolute or root-relative.`)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw Error(`Browser toolchain source ${t} baseUrl must use HTTP or HTTPS.`);if(n.username||n.password)throw Error(`Browser toolchain source ${t} baseUrl must not contain credentials.`);if(n.hash)throw Error(`Browser toolchain source ${t} baseUrl must not contain a fragment.`);if(!n.pathname.endsWith(`/`))throw Error(`Browser toolchain source ${t} baseUrl must identify a directory and end with '/'.`)}function en(e,t){if(!(e instanceof URL))throw Error(`Server toolchain source ${t} directory must be a URL.`);if(e.protocol!==`file:`)throw Error(`Server toolchain source ${t} directory must use the file: protocol.`);if(e.search||e.hash||!e.pathname.endsWith(`/`))throw Error(`Server toolchain source ${t} directory must be a query-free directory URL ending with '/'.`)}function tn(e,t){if(!Wt.test(e)||e.includes(`//`))throw Error(`${t} must be a canonical absolute path below '/toolchains/'.`);let n=e.split(`/`);if(n.includes(`.`)||n.includes(`..`))throw Error(`${t} must not contain traversal segments.`)}function nn(e,t,n){return`${e}/${t}/${n}`}function rn(e){return Object.freeze({...e,languages:Object.freeze([...e.languages]),profiles:Object.freeze(e.profiles.map(e=>Object.freeze({...e}))),assets:Object.freeze(e.assets.map(e=>Object.freeze({...e})))})}function an(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`${t} must be an object.`)}function on(e,t,n){let r=Object.keys(e).sort(),i=[...t].sort();if(r.length!==i.length||r.some((e,t)=>e!==i[t]))throw Error(`${n} must contain exactly: ${i.join(`, `)}.`)}function sn(e,t,n){if(typeof e!=`string`||e.length===0||e!==e.trim()||e.length>n)throw Error(`${t} must be a non-empty trimmed string of at most ${n} characters.`)}async function cn(e,t,n={}){let r=n.idleGraceMs??2e3;await e.stdin?.close().catch(()=>void 0);let i=e.stdout.getReader(),a=e.stderr.getReader(),o=()=>i.read().then(({done:e,value:t})=>({source:`stdout`,chunk:e?void 0:t})),s=()=>a.read().then(({done:e,value:t})=>({source:`stderr`,chunk:e?void 0:t})).catch(()=>({source:`stderr`})),c=dn(),l=dn(),u=o(),d=s(),f;try{for(;;){let e=f!==void 0,i=(e?[n.collectStderr?d:void 0]:[u,d]).filter(e=>e!==void 0);if(i.length===0)break;let a;(e||i.length===1)&&i.push(new Promise(e=>{a=setTimeout(()=>e({source:`idle`}),r)}));let p=await Promise.race(i).finally(()=>clearTimeout(a));if(p.source===`idle`)break;if(p.source===`stdout`){if(!p.chunk){u=void 0;continue}c.append(p.chunk),f=t(c.bytes()),u=f===void 0?o():void 0}else p.chunk?(l.append(p.chunk),d=s()):d=void 0}}finally{await Promise.allSettled([i.cancel(),a.cancel()])}return{message:f,stderr:new TextDecoder().decode(l.bytes())}}const ln=new Set([9,10,13,32]);function un(e){let t=e.byteLength;for(;t>0&&ln.has(e[t-1]);)--t;if(t!==0&&e[t-1]===125)try{return JSON.parse(new TextDecoder().decode(e.subarray(0,t)))}catch{return}}function dn(){let e=new Uint8Array,t=0;return{append(n){if(t+n.byteLength>e.byteLength){let r=new Uint8Array(Math.max(t+n.byteLength,e.byteLength*2));r.set(e.subarray(0,t)),e=r}e.set(n,t),t+=n.byteLength},bytes:()=>e.subarray(0,t)}}Object.freeze({instructionBudget:1e10,logicalTimeLimitMs:6e4,memoryLimitBytes:268435456,outputLimitBytes:4194304,filesystemWriteLimitBytes:67108864,filesystemEntryLimit:4096,wallTimeLimitMs:6e4}),new TextEncoder,Object.freeze({runtimeCoreWasmSha256:`0ae00fc646f529aafb5d1a68758220e6428f6c565e8e621eeb6c8f14ac5d4a10`,runtimeSourceRootSha256:`a7e9071511d127e3b14920558c7c38c27a1fa19d98906c8476c1df8041a9c3bb`,wasmerNativeVersion:`7.2.1`,wasmerSdkVersion:`0.10.0`,wasmerSdkWasmSha256:`49a6646209f5ab5e7c737eac33407d87d9a9959ac83e5ecaaab9261b2323589e`,wasmerWasixVersion:`0.702.1`});function fn(e,t,n){return M(e),[`wasm-oj-cost`,`contract-2`,encodeURIComponent(e),t,n]}function pn(e,t,n,r){let i=Le(e)?Pt(e):r;if(!i||!/^[A-Za-z0-9._-]+$/.test(i))throw Error(Le(e)?`WASM-OJ toolchain content identity is invalid for '${e}'.`:`Downstream language '${e}' requires an explicit content identity using letters, digits, '.', '_' or '-'.`);return[...fn(e,t,n),`content-${i}`,`runtime-e5680beae9bd832ed2b679267250ce1efc7d104dd005bb155135664b40f961fb`,`weighted`].join(`:`)}new TextEncoder,Object.freeze({python:`python`,javascript:`qjs`,typescript:`qjs`});function mn(e,t,n=16384){if(typeof e!=`string`||!e||e!==e.trim()||e.length>n)throw Error(`${t} must be a non-empty, trimmed string of at most ${n} characters.`)}function hn(e){return JSON.stringify({schema:j.runtimeBundle,version:2,name:e.name,target:e.target,language:e.language,runtime:{package:e.runtimePackage,command:e.command},execution:{deterministic:!0,contractVersion:2},entry:e.entry,files:[...e.files]},null,2)}function gn(e,t,n,r){return mn(e.name,`Project name`),mn(t,`Runtime package`),mn(n,`Runtime command`,128),M(e.config.language),Rt(r,`Runtime bundle entry`),hn({name:e.name,target:e.config.target,language:e.config.language,runtimePackage:t,command:n,entry:r,files:zt(e.files).map(e=>e.path)})}function _n(e){return Vt(e)}function vn(e){return e===`warning`?`warning`:e===`note`||e===`info`?`info`:`error`}function yn(e){return e.replace(/^file:\/\//,``).replace(/^\/?(?:workspace|project|work)\//,``).replace(/^\.\//,``)}function bn(e){let t=[],n=/^(.*?):(\d+):(\d+):\s+(fatal error|error|warning|note):\s+(.+?)(?:\s+\[([^\]]+)\])?$/gm,r;for(;(r=n.exec(e))!==null;)t.push({file:yn(r[1]),line:Number(r[2]),column:Number(r[3]),severity:vn(r[4].replace(`fatal `,``)),message:r[5],source:`clang`,code:r[6]});return t}function xn(e){let t=[],n=/^(.*?)\((\d+),(\d+)\):\s+(error|warning|message)\s+TS(\d+):\s+(.+)$/gm,r;for(;(r=n.exec(e))!==null;)t.push({severity:vn(r[4]),message:r[6],file:yn(r[1]),line:Number(r[2]),column:Number(r[3]),source:`typescript`,code:`TS${r[5]}`});return t}function Sn(e,t){return e.length>0?e:[{severity:`error`,file:yn(t.file),line:1,column:1,source:t.source,message:t.message}]}const Cn=String.raw`
18
18
  declare module "std" {
19
19
  const std: {
20
20
  err: { puts(value: string): void };
@@ -27,7 +27,7 @@ declare module "std" {
27
27
  const input: typeof std.in;
28
28
  export { input as in };
29
29
  }
30
- `,bn=`declare module "buffer" {
30
+ `,wn=`declare module "buffer" {
31
31
  export class Buffer extends Uint8Array {
32
32
  length: number
33
33
  write(string: string, offset?: number, length?: number, encoding?: string): number;
@@ -285,12 +285,12 @@ declare module "readline" {
285
285
  export default readline;
286
286
  }
287
287
  declare module "node:readline" { export * from "readline"; export { default } from "readline"; }
288
- `,xn=String.raw`
288
+ `,Tn=String.raw`
289
289
  declare function require(name: "fs" | "node:fs"): typeof import("fs");
290
290
  declare function require(name: "readline" | "node:readline"): typeof import("readline");
291
291
  declare function require(name: "buffer" | "node:buffer"): typeof import("buffer");
292
292
  declare function require(name: "process" | "node:process"): NodeProcess;
293
- `;var Sn=class{drivers=new Map;ids=new Set;register(e){if(!e||typeof e!=`object`)throw TypeError(`Language drivers must be objects.`);if(typeof e.id!=`string`||!e.id||e.id!==e.id.trim()||e.id.length>128)throw Error(`Language driver IDs must be non-empty, trimmed, and at most 128 characters.`);if(this.ids.has(e.id))throw Error(`Language driver '${e.id}' is already registered.`);if(!Array.isArray(e.languages)||e.languages.length===0)throw Error(`Language driver '${e.id}' has no languages.`);if(typeof e.build!=`function`)throw TypeError(`Language driver '${e.id}' must implement build().`);let t=new Set;for(let n of e.languages){if(typeof n!=`string`)throw TypeError(`Language identifiers must be strings.`);if(M(n),t.has(n))throw Error(`Language '${n}' is duplicated in driver '${e.id}'.`);t.add(n);let r=this.drivers.get(n);if(r)throw Error(`Language '${n}' is already owned by driver '${r.id}'.`)}for(let n of t)this.drivers.set(n,e);this.ids.add(e.id)}driver(e){let t=this.drivers.get(e);if(!t)throw Error(`No language driver is registered for '${e}'.`);return t}languages(){return[...this.drivers.keys()]}};Object.freeze({randomSeed:1592594996,realtimeEpochMs:Date.UTC(2e3,0,1),clockStepNs:1e6});const Cn=`.wasm-oj/determinism.c`,wn=String.raw`
293
+ `;var En=class{drivers=new Map;ids=new Set;register(e){if(!e||typeof e!=`object`)throw TypeError(`Language drivers must be objects.`);if(typeof e.id!=`string`||!e.id||e.id!==e.id.trim()||e.id.length>128)throw Error(`Language driver IDs must be non-empty, trimmed, and at most 128 characters.`);if(this.ids.has(e.id))throw Error(`Language driver '${e.id}' is already registered.`);if(!Array.isArray(e.languages)||e.languages.length===0)throw Error(`Language driver '${e.id}' has no languages.`);if(typeof e.build!=`function`)throw TypeError(`Language driver '${e.id}' must implement build().`);let t=new Set;for(let n of e.languages){if(typeof n!=`string`)throw TypeError(`Language identifiers must be strings.`);if(M(n),t.has(n))throw Error(`Language '${n}' is duplicated in driver '${e.id}'.`);t.add(n);let r=this.drivers.get(n);if(r)throw Error(`Language '${n}' is already owned by driver '${r.id}'.`)}for(let n of t)this.drivers.set(n,e);this.ids.add(e.id)}driver(e){let t=this.drivers.get(e);if(!t)throw Error(`No language driver is registered for '${e}'.`);return t}languages(){return[...this.drivers.keys()]}};Object.freeze({randomSeed:1592594996,realtimeEpochMs:Date.UTC(2e3,0,1),clockStepNs:1e6});const Dn=`.wasm-oj/determinism.c`,On=String.raw`
294
294
  #include <stddef.h>
295
295
  #include <stdint.h>
296
296
  #include <stdlib.h>
@@ -345,7 +345,7 @@ uint32_t __imported_wasi_snapshot_preview1_random_get(uint8_t *buffer, size_t le
345
345
  #ifdef __cplusplus
346
346
  }
347
347
  #endif
348
- `,Tn=String.raw`
348
+ `,kn=String.raw`
349
349
  import os as _os
350
350
  import runpy as _runpy
351
351
  import sys as _sys
@@ -389,7 +389,7 @@ _entry = _sys.argv[1]
389
389
  _sys.argv = [_entry, *_sys.argv[2:]]
390
390
  _sys.path[0] = _os.path.dirname(_entry)
391
391
  _runpy.run_path(_entry, run_name="__main__")
392
- `,En=new TextDecoder;async function Dn(e){let t=await V(e);if(t!==`895eee17c63b1112c84adcc4ddbcb38e0c18e53bff15f50a8689b9b82d87b1ff`)throw Error(`The pinned cc1 manifest drifted from its contract: expected ${F}, received ${t}. Regenerate it with scripts/pin-clang-cc1-argv.mjs and update CLANG_CC1_PINS_SHA256.`);let n=JSON.parse(En.decode(e));if(n.schema!==j.clangPins)throw Error(`Unsupported cc1 pin schema '${n.schema}'.`);for(let e of[`input`,`output`,`mainFileName`,`objects`])if(typeof n.placeholders?.[e]!=`string`)throw Error(`The cc1 pin manifest is missing the '${e}' placeholder.`);if(!n.command||!n.linkerCommand)throw Error(`The cc1 pin manifest is missing a compiler or linker command.`);if(!n.source||!/^[a-f0-9]{64}$/.test(n.sourceSha256))throw Error(`The cc1 pin manifest is missing its source toolchain identity.`);for(let[e,t]of Object.entries(n.configs))if(!Array.isArray(t.cc1)||!Array.isArray(t.link)||t.cc1[0]!==`-cc1`)throw Error(`The cc1 pin manifest entry '${e}' is malformed.`);return n}function On(e,t,n,r){let i=n.slice(n.lastIndexOf(`/`)+1),a=n.startsWith(`/`)?n:`/project/${n}`;return e.map(e=>e===t.input?a:e===t.output?r:e===t.mainFileName?i:e)}function kn(e,t,n,r){return On(e.map(e=>e===`-emit-obj`?`-emit-pch`:e===`c++`?`c++-header`:e),t,n,r)}function An(e,t,n,r){let i=[];for(let a of e)a===t.objects?i.push(...n):a===t.output?i.push(r):i.push(a);return i}const jn=Object.freeze([`source`,`header`,`package`,`pch`,`object`,`link-result`]);var Mn=class{limitBytes;logical=new Map;nodes=new Map;blobs=new Map;storedBytes=0;generation=0;constructor(e){if(!Number.isSafeInteger(e)||e<=0)throw RangeError(`Incremental build graph limit must be a positive safe integer.`);this.limitBytes=e}async lookup(e,t){let n=this.logical.get(e);if(!n)return;let r=[];for(let e of n.dependencies){let n=t.get(e.identity);if(!n||n.kind!==e.kind)return;r.push(n)}return this.lookupExact(n.kind,e,r)}async lookupExact(e,t,n){let r=await Rn(e,t,(await this.internInputs(n)).map(e=>e.key)),i=this.nodes.get(r);if(!i)return;let a=this.blobs.get(i.digest);if(a)return this.blobs.delete(i.digest),this.blobs.set(i.digest,a),a.slice()}async store(e,t,n,r){if(r.byteLength>this.limitBytes)return!1;let i=Fn(n),a=await this.internInputs(i),o=await Rn(e,t,a.map(e=>e.key)),s=r.slice(),c=await V(s),l=this.logical.get(t),u=l?this.nodes.get(l.nodeKey):void 0,d=!1;if(u&&(u.key!==o||u.digest!==c)){if(this.logical.delete(t),this.nodes.delete(u.key),![...this.logical.values()].some(e=>this.nodes.get(e.nodeKey)?.digest===u.digest)){let e=this.blobs.get(u.digest);e&&(this.blobs.delete(u.digest),this.storedBytes-=e.byteLength)}d=!0}d=this.ensureCapacity(s.byteLength,c)||d,this.blobs.has(c)||(this.blobs.set(c,s),this.storedBytes+=s.byteLength,d=!0);let f={key:o,kind:e,identity:t,digest:c,dependencies:a.map(e=>e.key),byteLength:s.byteLength},p={kind:e,dependencies:i.map(({kind:e,identity:t})=>({kind:e,identity:t})),nodeKey:o},m=this.nodes.get(o),h=this.logical.get(t);return(!Nn(m,f)||!Pn(h,p))&&(d=!0),this.nodes.set(o,f),this.logical.set(t,p),d&&(this.generation+=1),!0}exportState(){let e=[],t=new Set;for(let[n,r]of this.logical){let i=this.nodes.get(r.nodeKey);if(!i)continue;let a=this.blobs.get(i.digest);if(!a)continue;let o=i.dependencies.map(e=>{let t=this.nodes.get(e);if(!t)throw Error(`Build graph dependency '${e}' is missing.`);return{kind:t.kind,identity:t.identity,digest:t.digest}});e.push({kind:r.kind,logicalKey:n,inputs:o,outputDigest:i.digest,outputByteLength:a.byteLength}),t.add(i.digest)}return{manifest:{schema:j.incrementalBuildGraph,version:2,generation:this.generation,entries:e.sort((e,t)=>In(e.logicalKey,t.logicalKey))},blobs:[...t].sort().map(e=>({digest:e,bytes:this.blobs.get(e)}))}}async restoreState(e){if(!e||typeof e!=`object`||Array.isArray(e)||Object.keys(e).sort().join(`,`)!==`blobs,manifest`)throw Error(`Incremental build graph state does not use the active WASM-OJ contract.`);let{manifest:t}=e;if(!t||typeof t!=`object`||Array.isArray(t)||Object.keys(t).sort().join(`,`)!==`entries,generation,schema,version`||t.schema!==j.incrementalBuildGraph||t.version!==2||!Number.isSafeInteger(t.generation)||t.generation<0||!Array.isArray(t.entries)||!Array.isArray(e.blobs))throw Error(`Incremental build graph manifest does not use the active WASM-OJ contract.`);let n=new Map,r=0,i=``;for(let t of e.blobs){if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`Incremental build graph state contains a malformed blob.`);let e=t;if(Object.keys(e).sort().join(`,`)!==`bytes,digest`||typeof e.digest!=`string`||!/^[0-9a-f]{64}$/.test(e.digest)||e.digest<=i||!(e.bytes instanceof Uint8Array)||await V(e.bytes)!==e.digest)throw Error(`Incremental build graph state contains an invalid content-addressed blob.`);if(i=e.digest,r+=e.bytes.byteLength,!Number.isSafeInteger(r)||r>this.limitBytes)throw Error(`Incremental build graph state exceeds its storage limit.`);n.set(e.digest,e.bytes)}let a=new Set,o=[],s=new Set,c=``;for(let e of t.entries){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Incremental build graph manifest contains a malformed entry.`);let t=e;if(Object.keys(t).sort().join(`,`)!==`inputs,kind,logicalKey,outputByteLength,outputDigest`)throw Error(`Incremental build graph manifest entry has an invalid shape.`);if(t.kind!==`pch`&&t.kind!==`object`&&t.kind!==`link-result`)throw Error(`Incremental build graph manifest entry has an invalid node kind.`);if(typeof t.logicalKey!=`string`||!t.logicalKey||t.logicalKey!==t.logicalKey.trim()||t.logicalKey.length>16384||c!==``&&In(c,t.logicalKey)>=0)throw Error(`Incremental build graph manifest has an invalid or non-canonical logical key.`);if(c=t.logicalKey,a.has(t.logicalKey))throw Error(`Incremental build graph manifest repeats '${t.logicalKey}'.`);if(a.add(t.logicalKey),typeof t.outputDigest!=`string`||!/^[0-9a-f]{64}$/.test(t.outputDigest)||!Number.isSafeInteger(t.outputByteLength)||t.outputByteLength<0)throw Error(`Incremental build graph output '${t.logicalKey}' has invalid metadata.`);let r=n.get(t.outputDigest);if(!r||r.byteLength!==t.outputByteLength)throw Error(`Incremental build graph output '${t.logicalKey}' is missing or has the wrong size.`);if(s.add(t.outputDigest),!Array.isArray(t.inputs))throw Error(`Incremental build graph entry '${t.logicalKey}' inputs must be an array.`);let i=t.inputs.map(e=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Incremental build graph entry '${t.logicalKey}' has a malformed input.`);let n=e;if(Object.keys(n).sort().join(`,`)!==`digest,identity,kind`||!jn.slice(0,5).includes(n.kind)||typeof n.identity!=`string`||typeof n.digest!=`string`)throw Error(`Incremental build graph entry '${t.logicalKey}' has an invalid input.`);return{kind:n.kind,identity:n.identity,digest:n.digest}});if(Fn(i).some((e,t)=>e.identity!==i[t]?.identity))throw Error(`Incremental build graph entry '${t.logicalKey}' inputs are not canonical.`);o.push({kind:t.kind,logicalKey:t.logicalKey,inputs:i,output:r})}if(s.size!==n.size)throw Error(`Incremental build graph state contains an unreferenced content-addressed blob.`);this.clear();for(let e of o)if(!await this.store(e.kind,e.logicalKey,e.inputs,e.output))throw Error(`Incremental build graph entry '${e.logicalKey}' exceeds its storage limit.`);this.generation=t.generation}snapshot(){return{schema:j.incrementalBuildGraph,nodes:[...this.nodes.values()].map(e=>({...e,dependencies:[...e.dependencies]})).sort((e,t)=>In(e.key,t.key)),storedBytes:this.storedBytes}}clear(){let e=this.logical.size>0||this.nodes.size>0||this.blobs.size>0;this.logical.clear(),this.nodes.clear(),this.blobs.clear(),this.storedBytes=0,e&&(this.generation+=1)}async internInputs(e){return Promise.all(Fn(e).map(async e=>{let t=await Ln(e),n=await V(JSON.stringify({schema:j.incrementalBuildGraph,kind:e.kind,identity:e.identity,digest:t})),r={key:n,kind:e.kind,identity:e.identity,digest:t,dependencies:[],byteLength:e.bytes?.byteLength??0};return this.nodes.set(n,r),r}))}ensureCapacity(e,t){if(this.blobs.has(t))return!1;let n=!1;for(;this.storedBytes+e>this.limitBytes&&this.blobs.size>0;){let e=this.blobs.keys().next().value,t=this.blobs.get(e);this.blobs.delete(e),this.storedBytes-=t.byteLength,n=!0;for(let[t,n]of this.nodes)if(n.digest===e&&n.dependencies.length!==0){this.nodes.delete(t);for(let[e,n]of this.logical)n.nodeKey===t&&this.logical.delete(e)}}return n}};function Nn(e,t){return e?.key===t.key&&e.kind===t.kind&&e.identity===t.identity&&e.digest===t.digest&&e.byteLength===t.byteLength&&e.dependencies.length===t.dependencies.length&&e.dependencies.every((e,n)=>e===t.dependencies[n])}function Pn(e,t){return e?.kind===t.kind&&e.nodeKey===t.nodeKey&&e.dependencies.length===t.dependencies.length&&e.dependencies.every((e,n)=>e.kind===t.dependencies[n]?.kind&&e.identity===t.dependencies[n]?.identity)}function Fn(e){let t=new Map;for(let n of e){if(!n.identity||n.identity!==n.identity.trim()||n.identity.length>16384)throw Error(`Build graph input identities must be non-empty, trimmed strings.`);if(t.has(n.identity))throw Error(`Duplicate build graph input '${n.identity}'.`);if(n.bytes===void 0==(n.digest===void 0))throw Error(`Build graph input '${n.identity}' must provide exactly one of bytes or digest.`);t.set(n.identity,n)}return[...t.values()].sort((e,t)=>In(e.identity,t.identity))}function In(e,t){return e<t?-1:+(e>t)}async function Ln(e){if(e.bytes)return V(e.bytes);if(!/^[0-9a-f]{64}$/.test(e.digest))throw Error(`Build graph input '${e.identity}' has an invalid digest.`);return e.digest}function Rn(e,t,n){return V(JSON.stringify({schema:j.incrementalBuildGraph,kind:e,logicalKey:t,dependencies:n}))}const zn=new TextDecoder;var Bn=class{graph;constructor(e){this.graph=new Mn(e)}async unitManifestKey(e,t,n,r){let i=e.configs[t];if(!i)throw Error(`Unknown pinned Clang configuration '${t}'.`);return V(JSON.stringify({schema:j.objectCache,pinsSha256:F,sourceToolchainSha256:e.sourceSha256,packageSha256:P,version:e.version,config:t,cc1Argv:i.cc1,unit:n,source:await V(r)}))}async lookup(e,t,n=[]){return this.graph.lookup(e,Kn(t,n))}async store(e,t,n,r,i=[]){let a=Hn(t,n);return a?this.graph.store(`object`,e,[...Wn(a,n),...i],r):!1}async lookupPch(e,t){return this.graph.lookup(e,Kn(t))}async storePch(e,t,n,r){let i=Hn(t,n);return i?this.graph.store(`pch`,e,Wn(i,n),r):!1}lookupLink(e,t){return this.graph.lookupExact(`link-result`,e,Gn(t))}storeLink(e,t,n){return this.graph.store(`link-result`,e,Gn(t),n)}snapshot(){return this.graph.snapshot()}exportState(){return this.graph.exportState()}restoreState(e){return this.graph.restoreState(e)}clear(){this.graph.clear()}};function Vn(e){let t=zn.decode(e).replace(/\\\r?\n/g,` `),n=t.indexOf(`:`);if(n<0)return[];let r=[],i=/(?:\\.|[^\s\\])+/g,a=t.slice(n+1);for(let e=i.exec(a);e;e=i.exec(a))r.push(e[0].replace(/\\(.)/g,`$1`));return r}function Hn(e,t){let n=new Set;for(let r of e){if(r.startsWith(`/usr/`)||r.startsWith(`/sysroot/`)||r.startsWith(`/lib/`))continue;let e=r.startsWith(`/project/`)?r.slice(9):r.replace(/^\.\//,``);if(!e||e.startsWith(`/`)||e.split(`/`).some(e=>e===``||e===`.`||e===`..`)||!t.has(e))return;n.add(e)}if(n.size!==0)return[...n].sort()}function Un(e){return/\.(?:c|cc|cpp|cxx)$/i.test(e)?`source`:`header`}function Wn(e,t){return Gn(e.map(e=>({kind:Un(e),identity:e,bytes:t.get(e)})))}function Gn(e){return[...e,{kind:`package`,identity:`cpp:clang@${P}`,digest:P}]}function Kn(e,t=[]){let n=new Map([...e].map(([e,t])=>[e,{kind:Un(e),identity:e,bytes:t}]));n.set(`cpp:clang@${P}`,{kind:`package`,identity:`cpp:clang@${P}`,digest:P});for(let e of t)n.set(e.identity,e);return n}const qn=`#pragma once
392
+ `,An=new TextDecoder;async function jn(e){let t=await V(e);if(t!==`895eee17c63b1112c84adcc4ddbcb38e0c18e53bff15f50a8689b9b82d87b1ff`)throw Error(`The pinned cc1 manifest drifted from its contract: expected ${F}, received ${t}. Regenerate it with scripts/pin-clang-cc1-argv.mjs and update CLANG_CC1_PINS_SHA256.`);let n=JSON.parse(An.decode(e));if(n.schema!==j.clangPins)throw Error(`Unsupported cc1 pin schema '${n.schema}'.`);for(let e of[`input`,`output`,`mainFileName`,`objects`])if(typeof n.placeholders?.[e]!=`string`)throw Error(`The cc1 pin manifest is missing the '${e}' placeholder.`);if(!n.command||!n.linkerCommand)throw Error(`The cc1 pin manifest is missing a compiler or linker command.`);if(!n.source||!/^[a-f0-9]{64}$/.test(n.sourceSha256))throw Error(`The cc1 pin manifest is missing its source toolchain identity.`);for(let[e,t]of Object.entries(n.configs))if(!Array.isArray(t.cc1)||!Array.isArray(t.link)||t.cc1[0]!==`-cc1`)throw Error(`The cc1 pin manifest entry '${e}' is malformed.`);return n}function Mn(e,t,n,r){let i=n.slice(n.lastIndexOf(`/`)+1),a=n.startsWith(`/`)?n:`/project/${n}`;return e.map(e=>e===t.input?a:e===t.output?r:e===t.mainFileName?i:e)}function Nn(e,t,n,r){return Mn(e.map(e=>e===`-emit-obj`?`-emit-pch`:e===`c++`?`c++-header`:e),t,n,r)}function Pn(e,t,n,r){let i=[];for(let a of e)a===t.objects?i.push(...n):a===t.output?i.push(r):i.push(a);return i}const Fn=Object.freeze([`source`,`header`,`package`,`pch`,`object`,`link-result`]);var In=class{limitBytes;logical=new Map;nodes=new Map;blobs=new Map;storedBytes=0;generation=0;constructor(e){if(!Number.isSafeInteger(e)||e<=0)throw RangeError(`Incremental build graph limit must be a positive safe integer.`);this.limitBytes=e}async lookup(e,t){let n=this.logical.get(e);if(!n)return;let r=[];for(let e of n.dependencies){let n=t.get(e.identity);if(!n||n.kind!==e.kind)return;r.push(n)}return this.lookupExact(n.kind,e,r)}async lookupExact(e,t,n){let r=await Hn(e,t,(await this.internInputs(n)).map(e=>e.key)),i=this.nodes.get(r);if(!i)return;let a=this.blobs.get(i.digest);if(a)return this.blobs.delete(i.digest),this.blobs.set(i.digest,a),a.slice()}async store(e,t,n,r){if(r.byteLength>this.limitBytes)return!1;let i=zn(n),a=await this.internInputs(i),o=await Hn(e,t,a.map(e=>e.key)),s=r.slice(),c=await V(s),l=this.logical.get(t),u=l?this.nodes.get(l.nodeKey):void 0,d=!1;if(u&&(u.key!==o||u.digest!==c)){if(this.logical.delete(t),this.nodes.delete(u.key),![...this.logical.values()].some(e=>this.nodes.get(e.nodeKey)?.digest===u.digest)){let e=this.blobs.get(u.digest);e&&(this.blobs.delete(u.digest),this.storedBytes-=e.byteLength)}d=!0}d=this.ensureCapacity(s.byteLength,c)||d,this.blobs.has(c)||(this.blobs.set(c,s),this.storedBytes+=s.byteLength,d=!0);let f={key:o,kind:e,identity:t,digest:c,dependencies:a.map(e=>e.key),byteLength:s.byteLength},p={kind:e,dependencies:i.map(({kind:e,identity:t})=>({kind:e,identity:t})),nodeKey:o},m=this.nodes.get(o),h=this.logical.get(t);return(!Ln(m,f)||!Rn(h,p))&&(d=!0),this.nodes.set(o,f),this.logical.set(t,p),d&&(this.generation+=1),!0}exportState(){let e=[],t=new Set;for(let[n,r]of this.logical){let i=this.nodes.get(r.nodeKey);if(!i)continue;let a=this.blobs.get(i.digest);if(!a)continue;let o=i.dependencies.map(e=>{let t=this.nodes.get(e);if(!t)throw Error(`Build graph dependency '${e}' is missing.`);return{kind:t.kind,identity:t.identity,digest:t.digest}});e.push({kind:r.kind,logicalKey:n,inputs:o,outputDigest:i.digest,outputByteLength:a.byteLength}),t.add(i.digest)}return{manifest:{schema:j.incrementalBuildGraph,version:2,generation:this.generation,entries:e.sort((e,t)=>Bn(e.logicalKey,t.logicalKey))},blobs:[...t].sort().map(e=>({digest:e,bytes:this.blobs.get(e)}))}}async restoreState(e){if(!e||typeof e!=`object`||Array.isArray(e)||Object.keys(e).sort().join(`,`)!==`blobs,manifest`)throw Error(`Incremental build graph state does not use the active WASM-OJ contract.`);let{manifest:t}=e;if(!t||typeof t!=`object`||Array.isArray(t)||Object.keys(t).sort().join(`,`)!==`entries,generation,schema,version`||t.schema!==j.incrementalBuildGraph||t.version!==2||!Number.isSafeInteger(t.generation)||t.generation<0||!Array.isArray(t.entries)||!Array.isArray(e.blobs))throw Error(`Incremental build graph manifest does not use the active WASM-OJ contract.`);let n=new Map,r=0,i=``;for(let t of e.blobs){if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`Incremental build graph state contains a malformed blob.`);let e=t;if(Object.keys(e).sort().join(`,`)!==`bytes,digest`||typeof e.digest!=`string`||!/^[0-9a-f]{64}$/.test(e.digest)||e.digest<=i||!(e.bytes instanceof Uint8Array)||await V(e.bytes)!==e.digest)throw Error(`Incremental build graph state contains an invalid content-addressed blob.`);if(i=e.digest,r+=e.bytes.byteLength,!Number.isSafeInteger(r)||r>this.limitBytes)throw Error(`Incremental build graph state exceeds its storage limit.`);n.set(e.digest,e.bytes)}let a=new Set,o=[],s=new Set,c=``;for(let e of t.entries){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Incremental build graph manifest contains a malformed entry.`);let t=e;if(Object.keys(t).sort().join(`,`)!==`inputs,kind,logicalKey,outputByteLength,outputDigest`)throw Error(`Incremental build graph manifest entry has an invalid shape.`);if(t.kind!==`pch`&&t.kind!==`object`&&t.kind!==`link-result`)throw Error(`Incremental build graph manifest entry has an invalid node kind.`);if(typeof t.logicalKey!=`string`||!t.logicalKey||t.logicalKey!==t.logicalKey.trim()||t.logicalKey.length>16384||c!==``&&Bn(c,t.logicalKey)>=0)throw Error(`Incremental build graph manifest has an invalid or non-canonical logical key.`);if(c=t.logicalKey,a.has(t.logicalKey))throw Error(`Incremental build graph manifest repeats '${t.logicalKey}'.`);if(a.add(t.logicalKey),typeof t.outputDigest!=`string`||!/^[0-9a-f]{64}$/.test(t.outputDigest)||!Number.isSafeInteger(t.outputByteLength)||t.outputByteLength<0)throw Error(`Incremental build graph output '${t.logicalKey}' has invalid metadata.`);let r=n.get(t.outputDigest);if(!r||r.byteLength!==t.outputByteLength)throw Error(`Incremental build graph output '${t.logicalKey}' is missing or has the wrong size.`);if(s.add(t.outputDigest),!Array.isArray(t.inputs))throw Error(`Incremental build graph entry '${t.logicalKey}' inputs must be an array.`);let i=t.inputs.map(e=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Incremental build graph entry '${t.logicalKey}' has a malformed input.`);let n=e;if(Object.keys(n).sort().join(`,`)!==`digest,identity,kind`||!Fn.slice(0,5).includes(n.kind)||typeof n.identity!=`string`||typeof n.digest!=`string`)throw Error(`Incremental build graph entry '${t.logicalKey}' has an invalid input.`);return{kind:n.kind,identity:n.identity,digest:n.digest}});if(zn(i).some((e,t)=>e.identity!==i[t]?.identity))throw Error(`Incremental build graph entry '${t.logicalKey}' inputs are not canonical.`);o.push({kind:t.kind,logicalKey:t.logicalKey,inputs:i,output:r})}if(s.size!==n.size)throw Error(`Incremental build graph state contains an unreferenced content-addressed blob.`);this.clear();for(let e of o)if(!await this.store(e.kind,e.logicalKey,e.inputs,e.output))throw Error(`Incremental build graph entry '${e.logicalKey}' exceeds its storage limit.`);this.generation=t.generation}snapshot(){return{schema:j.incrementalBuildGraph,nodes:[...this.nodes.values()].map(e=>({...e,dependencies:[...e.dependencies]})).sort((e,t)=>Bn(e.key,t.key)),storedBytes:this.storedBytes}}clear(){let e=this.logical.size>0||this.nodes.size>0||this.blobs.size>0;this.logical.clear(),this.nodes.clear(),this.blobs.clear(),this.storedBytes=0,e&&(this.generation+=1)}async internInputs(e){return Promise.all(zn(e).map(async e=>{let t=await Vn(e),n=await V(JSON.stringify({schema:j.incrementalBuildGraph,kind:e.kind,identity:e.identity,digest:t})),r={key:n,kind:e.kind,identity:e.identity,digest:t,dependencies:[],byteLength:e.bytes?.byteLength??0};return this.nodes.set(n,r),r}))}ensureCapacity(e,t){if(this.blobs.has(t))return!1;let n=!1;for(;this.storedBytes+e>this.limitBytes&&this.blobs.size>0;){let e=this.blobs.keys().next().value,t=this.blobs.get(e);this.blobs.delete(e),this.storedBytes-=t.byteLength,n=!0;for(let[t,n]of this.nodes)if(n.digest===e&&n.dependencies.length!==0){this.nodes.delete(t);for(let[e,n]of this.logical)n.nodeKey===t&&this.logical.delete(e)}}return n}};function Ln(e,t){return e?.key===t.key&&e.kind===t.kind&&e.identity===t.identity&&e.digest===t.digest&&e.byteLength===t.byteLength&&e.dependencies.length===t.dependencies.length&&e.dependencies.every((e,n)=>e===t.dependencies[n])}function Rn(e,t){return e?.kind===t.kind&&e.nodeKey===t.nodeKey&&e.dependencies.length===t.dependencies.length&&e.dependencies.every((e,n)=>e.kind===t.dependencies[n]?.kind&&e.identity===t.dependencies[n]?.identity)}function zn(e){let t=new Map;for(let n of e){if(!n.identity||n.identity!==n.identity.trim()||n.identity.length>16384)throw Error(`Build graph input identities must be non-empty, trimmed strings.`);if(t.has(n.identity))throw Error(`Duplicate build graph input '${n.identity}'.`);if(n.bytes===void 0==(n.digest===void 0))throw Error(`Build graph input '${n.identity}' must provide exactly one of bytes or digest.`);t.set(n.identity,n)}return[...t.values()].sort((e,t)=>Bn(e.identity,t.identity))}function Bn(e,t){return e<t?-1:+(e>t)}async function Vn(e){if(e.bytes)return V(e.bytes);if(!/^[0-9a-f]{64}$/.test(e.digest))throw Error(`Build graph input '${e.identity}' has an invalid digest.`);return e.digest}function Hn(e,t,n){return V(JSON.stringify({schema:j.incrementalBuildGraph,kind:e,logicalKey:t,dependencies:n}))}const Un=new TextDecoder;var Wn=class{graph;constructor(e){this.graph=new In(e)}async unitManifestKey(e,t,n,r){let i=e.configs[t];if(!i)throw Error(`Unknown pinned Clang configuration '${t}'.`);return V(JSON.stringify({schema:j.objectCache,pinsSha256:F,sourceToolchainSha256:e.sourceSha256,packageSha256:P,version:e.version,config:t,cc1Argv:i.cc1,unit:n,source:await V(r)}))}async lookup(e,t,n=[]){return this.graph.lookup(e,Xn(t,n))}async store(e,t,n,r,i=[]){let a=Kn(t,n);return a?this.graph.store(`object`,e,[...Jn(a,n),...i],r):!1}async lookupPch(e,t){return this.graph.lookup(e,Xn(t))}async storePch(e,t,n,r){let i=Kn(t,n);return i?this.graph.store(`pch`,e,Jn(i,n),r):!1}lookupLink(e,t){return this.graph.lookupExact(`link-result`,e,Yn(t))}storeLink(e,t,n){return this.graph.store(`link-result`,e,Yn(t),n)}snapshot(){return this.graph.snapshot()}exportState(){return this.graph.exportState()}restoreState(e){return this.graph.restoreState(e)}clear(){this.graph.clear()}};function Gn(e){let t=Un.decode(e).replace(/\\\r?\n/g,` `),n=t.indexOf(`:`);if(n<0)return[];let r=[],i=/(?:\\.|[^\s\\])+/g,a=t.slice(n+1);for(let e=i.exec(a);e;e=i.exec(a))r.push(e[0].replace(/\\(.)/g,`$1`));return r}function Kn(e,t){let n=new Set;for(let r of e){if(r.startsWith(`/usr/`)||r.startsWith(`/sysroot/`)||r.startsWith(`/lib/`))continue;let e=r.startsWith(`/project/`)?r.slice(9):r.replace(/^\.\//,``);if(!e||e.startsWith(`/`)||e.split(`/`).some(e=>e===``||e===`.`||e===`..`)||!t.has(e))return;n.add(e)}if(n.size!==0)return[...n].sort()}function qn(e){return/\.(?:c|cc|cpp|cxx)$/i.test(e)?`source`:`header`}function Jn(e,t){return Yn(e.map(e=>({kind:qn(e),identity:e,bytes:t.get(e)})))}function Yn(e){return[...e,{kind:`package`,identity:`cpp:clang@${P}`,digest:P}]}function Xn(e,t=[]){let n=new Map([...e].map(([e,t])=>[e,{kind:qn(e),identity:e,bytes:t}]));n.set(`cpp:clang@${P}`,{kind:`package`,identity:`cpp:clang@${P}`,digest:P});for(let e of t)n.set(e.identity,e);return n}const Zn=`#pragma once
393
393
  #include <algorithm>
394
394
  #include <array>
395
395
  #include <bitset>
@@ -436,13 +436,13 @@ _runpy.run_path(_entry, run_name="__main__")
436
436
  #include <utility>
437
437
  #include <variant>
438
438
  #include <vector>
439
- `,Jn=new TextDecoder;async function Yn(e){let t=await V(e);if(t!==`9bbe41d77c786f1c36169369c909268530b05726e1581683f6edd9a2983eebd0`)throw Error(`Pinned libc++ PCH manifest digest mismatch: expected ${qe}, received ${t}.`);let n;try{n=JSON.parse(Jn.decode(e))}catch(e){throw Error(`Pinned libc++ PCH manifest is not valid JSON.`,{cause:e})}if(!Zn(n)||n.schema!==j.clangLibcxxPch||n.version!==`22.0.0-git20542-10`||n.clangPackageSha256!==`21ded33b9c6d4e1aaad5528c940bdaf6c3e84be77ea8f522f018ca7289a2a224`||n.clangPinsSha256!==`895eee17c63b1112c84adcc4ddbcb38e0c18e53bff15f50a8689b9b82d87b1ff`||n.header!==qn||!Zn(n.profiles))throw Error(`Pinned libc++ PCH manifest is not admitted by the active Clang toolchain contract.`);if(n.headerSha256!==await V(qn))throw Error(`Pinned libc++ PCH header digest does not match its canonical source.`);let r=n.profiles,i=Object.fromEntries(await Promise.all([`cpp-debug`,`cpp-release`].map(async e=>{let t=r[e];if(!Zn(t)||typeof t.path!=`string`||!t.path.endsWith(`.${e}.pch.gz.bin`)||!$n(t.byteLength)||!$n(t.compressedByteLength)||!Qn(t.sha256)||!Qn(t.compressedSha256))throw Error(`Pinned libc++ PCH profile '${e}' is malformed.`);return[e,{path:t.path,byteLength:t.byteLength,sha256:t.sha256,compressedByteLength:t.compressedByteLength,compressedSha256:t.compressedSha256}]})));if(Object.keys(r).sort().join(`,`)!==`cpp-debug,cpp-release`)throw Error(`Pinned libc++ PCH manifest has an unexpected profile set.`);return{schema:j.clangLibcxxPch,version:N,clangPackageSha256:P,clangPinsSha256:F,header:qn,headerSha256:n.headerSha256,profiles:i}}function Xn(e){return e===qn}function Zn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Qn(e){return typeof e==`string`&&/^[0-9a-f]{64}$/.test(e)}function $n(e){return Number.isSafeInteger(e)&&e>0}var er=class{#e;#t;#n=0;constructor(e=75){if(!Number.isFinite(e)||e<=0)throw RangeError(`Mounted-output stability interval must be positive and finite.`);this.#e=e}observe(e,t){if(!Number.isFinite(t))throw RangeError(`Mounted-output observation time must be finite.`);if(!e){this.#t=void 0,this.#n=0;return}if(!this.#t||!tr(this.#t,e)){this.#t=e.slice(),this.#n=t;return}if(!(t-this.#n<this.#e))return e.slice()}};function tr(e,t){if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.byteLength;n+=1)if(e[n]!==t[n])return!1;return!0}const nr=Object.freeze({c:`cpp`,cpp:`cpp`,rust:`cargo`,python:`pypi`,javascript:`npm`,typescript:`npm`,go:`go`});function rr(e){if(!e.dependencies)return;let t=nr[e.config.language];if(!t)throw Error(`Compiler '${e.config.language}' does not declare a dependency ecosystem.`);let n=e.dependencies.packages.find(e=>e.package.ecosystem!==t);if(n)throw Error(`${e.config.language} projects accept only '${t}' dependencies; '${n.package.id}' is '${n.package.ecosystem}'.`)}function ir(e,t){return rr(e),e.dependencies?.packages.filter(e=>e.package.ecosystem===t)??[]}function ar(e){let t={};for(let n of ir(e,`pypi`))for(let[e,r]of Object.entries(n.files))t[`site-packages/${e}`]=r.slice();return t}function or(e){let t={},n=new Set,r=[];for(let i of ir(e,`npm`)){if(n.has(i.package.name))throw Error(`npm dependency '${i.package.name}' resolves to multiple versions in a flat runtime graph.`);n.add(i.package.name);let e=i.files[`package.json`];if(!e)throw Error(`npm dependency '${i.package.id}' omits package.json.`);let a=U(e,i.package.id,`package.json`);if(JSON.parse(a).type===`module`)throw Error(`npm dependency '${i.package.id}' uses unsupported ESM package semantics.`);Object.keys(i.files).some(e=>e.endsWith(`.d.ts`))||r.push(i.package.name);for(let[e,n]of Object.entries(i.files)){let r=`node_modules/${i.package.name}/${e}`;t[r]=ur(e)?U(n,i.package.id,e):n.slice()}}return r.length>0&&(t[`.wasm-oj/npm-untyped-modules.d.ts`]=r.sort().flatMap(e=>[`declare module ${JSON.stringify(e)} { const value: any; export = value; }`,`declare module ${JSON.stringify(`${e}/*`)} { const value: any; export = value; }`]).join(`
440
- `)),t}function sr(e){let t=new Map,n=[],r=[];for(let[i,a]of ir(e,`cpp`).entries()){let o=`.wasm-oj/dependencies/cpp/${String(i).padStart(4,`0`)}`;n.push(`/project/${o}`),Object.keys(a.files).some(e=>e.startsWith(`include/`))&&n.push(`/project/${o}/include`);for(let[n,i]of Object.entries(a.files)){if(!dr(n))continue;U(i,a.package.id,n);let s=`${o}/${n}`;if(t.set(s,i.slice()),fr(n)){if(e.config.language===`c`&&!n.endsWith(`.c`))throw Error(`C dependency '${a.package.id}' contains C++ source '${n}'.`);r.push(s)}}}return{files:t,includeDirectories:Object.freeze(n),sources:Object.freeze(r)}}function cr(e){let t=ir(e,`cargo`),n=new Map(t.map(e=>[e.package.id,e])),r=pr(t),i=new Map,a=[];for(let[e,t]of r.entries()){let n=`.wasm-oj/dependencies/cargo/${String(e).padStart(4,`0`)}`,r=t.files[`Cargo.toml`],o=U(r,t.package.id,`Cargo.toml`);if(/\bpackage\s*=\s*"/m.test(gr(o)))throw Error(`Cargo dependency '${t.package.id}' uses unsupported renamed dependencies.`);let s=mr(o,`lib`),c=_r(hr(s,`name`)??t.package.name,t.package.id),l=hr(s,`path`)??`src/lib.rs`;if(!t.files[l])throw Error(`Cargo dependency '${t.package.id}' omits '${l}'.`);let u=hr(mr(o,`package`),`edition`)??`2015`;if(!/^(?:2015|2018|2021|2024)$/.test(u))throw Error(`Cargo dependency '${t.package.id}' has unsupported Rust edition '${u}'.`);let d=`/work/build/deps/lib${String(e).padStart(4,`0`)}_${c}.rlib`;i.set(t.package.id,{id:t.package.id,crateName:c,root:`${n}/${l}`,edition:u,outputPath:d,features:Object.freeze([...t.package.features??[]])});for(let[e,r]of Object.entries(t.files))vr(e)&&a.push({path:`${n}/${e}`,language:`rust`,content:U(r,t.package.id,e)})}let o=r.map(e=>{let t=i.get(e.package.id);return Object.freeze({...t,externs:Object.freeze(e.package.dependencies.map(t=>{let n=i.get(t);if(!n)throw Error(`Cargo dependency '${e.package.id}' refers to unavailable '${t}'.`);return Object.freeze({crateName:n.crateName,path:n.outputPath})}))})}),s=e.dependencies?.lock.roots.map(e=>{if(!n.has(e))throw Error(`Cargo root '${e}' is unavailable.`);let t=i.get(e);return Object.freeze({crateName:t.crateName,path:t.outputPath})})??[];return{files:a,crates:Object.freeze(o),roots:Object.freeze(s)}}function lr(e){let t=[],n=[];for(let[r,i]of ir(e,`go`).entries()){let e=`.wasm-oj/dependencies/go/${String(r).padStart(4,`0`)}`,a=new Map;for(let[n,r]of Object.entries(i.files)){if(!n.endsWith(`.go`)||n.endsWith(`_test.go`)||n.split(`/`).includes(`vendor`))continue;let o=U(r,i.package.id,n);if(/^\s*\/\/(?:go:build|\s*\+build)\b/m.test(o))throw Error(`Go dependency '${i.package.id}' uses unsupported build constraints in '${n}'.`);if(/import\s+(?:[._A-Za-z][A-Za-z0-9_]*\s+)?["`]C["`]/.test(o))throw Error(`Go dependency '${i.package.id}' uses unsupported cgo in '${n}'.`);let s=n.includes(`/`)?n.slice(0,n.lastIndexOf(`/`)):``,c=a.get(s)??[];c.push({path:n,content:o}),a.set(s,c),t.push({path:`${e}/${n}`,language:`go`,content:o})}for(let[t,r]of[...a].sort(([e],[t])=>e.localeCompare(t))){let a=new Set(r.map(e=>yr(e.content,i.package.id,e.path)));if(a.size!==1)throw Error(`Go dependency '${i.package.id}' directory '${t||`.`}' contains multiple packages.`);if([...a][0]===`main`)continue;let o=t?`${i.package.name}/${t}`:i.package.name,s=n.length;n.push(Object.freeze({id:`${i.package.id}:${t||`.`}`,importPath:o,sourcePaths:Object.freeze(r.map(t=>`${e}/${t.path}`).sort()),imports:Object.freeze([...new Set(r.flatMap(e=>br(e.content)))].sort()),archivePath:`/work/build/deps/${String(s).padStart(4,`0`)}.a`}))}}return{files:t,packages:Object.freeze(n)}}function U(e,t,n){try{return new TextDecoder(`utf-8`,{fatal:!0}).decode(e)}catch(e){throw Error(`Dependency '${t}' compiler file '${n}' is not valid UTF-8.`,{cause:e})}}function ur(e){return/(?:^|\/)(?:package\.json)$/.test(e)||/\.(?:js|cjs|d\.ts|json)$/i.test(e)}function dr(e){return/\.(?:h|hh|hpp|hxx|inc|c|cc|cpp|cxx)$/i.test(e)}function fr(e){return/\.(?:c|cc|cpp|cxx)$/i.test(e)}function pr(e){let t=new Map(e.map(e=>[e.package.id,e])),n=new Map,r=[],i=e=>{let a=n.get(e);if(a===`visited`)return;if(a===`visiting`)throw Error(`Dependency graph contains a cycle at '${e}'.`);let o=t.get(e);if(!o)throw Error(`Dependency graph refers to unavailable package '${e}'.`);n.set(e,`visiting`);for(let e of o.package.dependencies)i(e);n.set(e,`visited`),r.push(o)};for(let t of e)i(t.package.id);return r}function mr(e,t){return e.match(RegExp(`(?:^|\\n)\\[${t.replace(/[.*+?^${}()|[\\]\\]/g,`\\$&`)}\\]\\s*\\n([\\s\\S]*?)(?=\\n\\[|$)`))?.[1]??``}function hr(e,t){return e.match(RegExp(`^\\s*${t}\\s*=\\s*"([^"]+)"\\s*(?:#.*)?$`,`m`))?.[1]}function gr(e){return e.split(/\n(?=\[)/).filter(e=>/\bdependencies\]/.test(e.split(`
439
+ `,Qn=new TextDecoder;async function $n(e){let t=await V(e);if(t!==`9bbe41d77c786f1c36169369c909268530b05726e1581683f6edd9a2983eebd0`)throw Error(`Pinned libc++ PCH manifest digest mismatch: expected ${qe}, received ${t}.`);let n;try{n=JSON.parse(Qn.decode(e))}catch(e){throw Error(`Pinned libc++ PCH manifest is not valid JSON.`,{cause:e})}if(!tr(n)||n.schema!==j.clangLibcxxPch||n.version!==`22.0.0-git20542-10`||n.clangPackageSha256!==`21ded33b9c6d4e1aaad5528c940bdaf6c3e84be77ea8f522f018ca7289a2a224`||n.clangPinsSha256!==`895eee17c63b1112c84adcc4ddbcb38e0c18e53bff15f50a8689b9b82d87b1ff`||n.header!==Zn||!tr(n.profiles))throw Error(`Pinned libc++ PCH manifest is not admitted by the active Clang toolchain contract.`);if(n.headerSha256!==await V(Zn))throw Error(`Pinned libc++ PCH header digest does not match its canonical source.`);let r=n.profiles,i=Object.fromEntries(await Promise.all([`cpp-debug`,`cpp-release`].map(async e=>{let t=r[e];if(!tr(t)||typeof t.path!=`string`||!t.path.endsWith(`.${e}.pch.gz.bin`)||!rr(t.byteLength)||!rr(t.compressedByteLength)||!nr(t.sha256)||!nr(t.compressedSha256))throw Error(`Pinned libc++ PCH profile '${e}' is malformed.`);return[e,{path:t.path,byteLength:t.byteLength,sha256:t.sha256,compressedByteLength:t.compressedByteLength,compressedSha256:t.compressedSha256}]})));if(Object.keys(r).sort().join(`,`)!==`cpp-debug,cpp-release`)throw Error(`Pinned libc++ PCH manifest has an unexpected profile set.`);return{schema:j.clangLibcxxPch,version:N,clangPackageSha256:P,clangPinsSha256:F,header:Zn,headerSha256:n.headerSha256,profiles:i}}function er(e){return e===Zn}function tr(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function nr(e){return typeof e==`string`&&/^[0-9a-f]{64}$/.test(e)}function rr(e){return Number.isSafeInteger(e)&&e>0}var ir=class{#e;#t;#n=0;constructor(e=75){if(!Number.isFinite(e)||e<=0)throw RangeError(`Mounted-output stability interval must be positive and finite.`);this.#e=e}observe(e,t){if(!Number.isFinite(t))throw RangeError(`Mounted-output observation time must be finite.`);if(!e){this.#t=void 0,this.#n=0;return}if(!this.#t||!ar(this.#t,e)){this.#t=e.slice(),this.#n=t;return}if(!(t-this.#n<this.#e))return e.slice()}};function ar(e,t){if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.byteLength;n+=1)if(e[n]!==t[n])return!1;return!0}const or=Object.freeze({c:`cpp`,cpp:`cpp`,rust:`cargo`,python:`pypi`,javascript:`npm`,typescript:`npm`,go:`go`});function sr(e){if(!e.dependencies)return;let t=or[e.config.language];if(!t)throw Error(`Compiler '${e.config.language}' does not declare a dependency ecosystem.`);let n=e.dependencies.packages.find(e=>e.package.ecosystem!==t);if(n)throw Error(`${e.config.language} projects accept only '${t}' dependencies; '${n.package.id}' is '${n.package.ecosystem}'.`)}function cr(e,t){return sr(e),e.dependencies?.packages.filter(e=>e.package.ecosystem===t)??[]}function lr(e){let t={};for(let n of cr(e,`pypi`))for(let[e,r]of Object.entries(n.files))t[`site-packages/${e}`]=r.slice();return t}function ur(e){let t={},n=new Set,r=[];for(let i of cr(e,`npm`)){if(n.has(i.package.name))throw Error(`npm dependency '${i.package.name}' resolves to multiple versions in a flat runtime graph.`);n.add(i.package.name);let e=i.files[`package.json`];if(!e)throw Error(`npm dependency '${i.package.id}' omits package.json.`);let a=U(e,i.package.id,`package.json`);if(JSON.parse(a).type===`module`)throw Error(`npm dependency '${i.package.id}' uses unsupported ESM package semantics.`);Object.keys(i.files).some(e=>e.endsWith(`.d.ts`))||r.push(i.package.name);for(let[e,n]of Object.entries(i.files)){let r=`node_modules/${i.package.name}/${e}`;t[r]=mr(e)?U(n,i.package.id,e):n.slice()}}return r.length>0&&(t[`.wasm-oj/npm-untyped-modules.d.ts`]=r.sort().flatMap(e=>[`declare module ${JSON.stringify(e)} { const value: any; export = value; }`,`declare module ${JSON.stringify(`${e}/*`)} { const value: any; export = value; }`]).join(`
440
+ `)),t}function dr(e){let t=new Map,n=[],r=[];for(let[i,a]of cr(e,`cpp`).entries()){let o=`.wasm-oj/dependencies/cpp/${String(i).padStart(4,`0`)}`;n.push(`/project/${o}`),Object.keys(a.files).some(e=>e.startsWith(`include/`))&&n.push(`/project/${o}/include`);for(let[n,i]of Object.entries(a.files)){if(!hr(n))continue;U(i,a.package.id,n);let s=`${o}/${n}`;if(t.set(s,i.slice()),gr(n)){if(e.config.language===`c`&&!n.endsWith(`.c`))throw Error(`C dependency '${a.package.id}' contains C++ source '${n}'.`);r.push(s)}}}return{files:t,includeDirectories:Object.freeze(n),sources:Object.freeze(r)}}function fr(e){let t=cr(e,`cargo`),n=new Map(t.map(e=>[e.package.id,e])),r=_r(t),i=new Map,a=[];for(let[e,t]of r.entries()){let n=`.wasm-oj/dependencies/cargo/${String(e).padStart(4,`0`)}`,r=t.files[`Cargo.toml`],o=U(r,t.package.id,`Cargo.toml`);if(/\bpackage\s*=\s*"/m.test(br(o)))throw Error(`Cargo dependency '${t.package.id}' uses unsupported renamed dependencies.`);let s=vr(o,`lib`),c=xr(yr(s,`name`)??t.package.name,t.package.id),l=yr(s,`path`)??`src/lib.rs`;if(!t.files[l])throw Error(`Cargo dependency '${t.package.id}' omits '${l}'.`);let u=yr(vr(o,`package`),`edition`)??`2015`;if(!/^(?:2015|2018|2021|2024)$/.test(u))throw Error(`Cargo dependency '${t.package.id}' has unsupported Rust edition '${u}'.`);let d=`/work/build/deps/lib${String(e).padStart(4,`0`)}_${c}.rlib`;i.set(t.package.id,{id:t.package.id,crateName:c,root:`${n}/${l}`,edition:u,outputPath:d,features:Object.freeze([...t.package.features??[]])});for(let[e,r]of Object.entries(t.files))Sr(e)&&a.push({path:`${n}/${e}`,language:`rust`,content:U(r,t.package.id,e)})}let o=r.map(e=>{let t=i.get(e.package.id);return Object.freeze({...t,externs:Object.freeze(e.package.dependencies.map(t=>{let n=i.get(t);if(!n)throw Error(`Cargo dependency '${e.package.id}' refers to unavailable '${t}'.`);return Object.freeze({crateName:n.crateName,path:n.outputPath})}))})}),s=e.dependencies?.lock.roots.map(e=>{if(!n.has(e))throw Error(`Cargo root '${e}' is unavailable.`);let t=i.get(e);return Object.freeze({crateName:t.crateName,path:t.outputPath})})??[];return{files:a,crates:Object.freeze(o),roots:Object.freeze(s)}}function pr(e){let t=[],n=[];for(let[r,i]of cr(e,`go`).entries()){let e=`.wasm-oj/dependencies/go/${String(r).padStart(4,`0`)}`,a=new Map;for(let[n,r]of Object.entries(i.files)){if(!n.endsWith(`.go`)||n.endsWith(`_test.go`)||n.split(`/`).includes(`vendor`))continue;let o=U(r,i.package.id,n);if(/^\s*\/\/(?:go:build|\s*\+build)\b/m.test(o))throw Error(`Go dependency '${i.package.id}' uses unsupported build constraints in '${n}'.`);if(/import\s+(?:[._A-Za-z][A-Za-z0-9_]*\s+)?["`]C["`]/.test(o))throw Error(`Go dependency '${i.package.id}' uses unsupported cgo in '${n}'.`);let s=n.includes(`/`)?n.slice(0,n.lastIndexOf(`/`)):``,c=a.get(s)??[];c.push({path:n,content:o}),a.set(s,c),t.push({path:`${e}/${n}`,language:`go`,content:o})}for(let[t,r]of[...a].sort(([e],[t])=>e.localeCompare(t))){let a=new Set(r.map(e=>Cr(e.content,i.package.id,e.path)));if(a.size!==1)throw Error(`Go dependency '${i.package.id}' directory '${t||`.`}' contains multiple packages.`);if([...a][0]===`main`)continue;let o=t?`${i.package.name}/${t}`:i.package.name,s=n.length;n.push(Object.freeze({id:`${i.package.id}:${t||`.`}`,importPath:o,sourcePaths:Object.freeze(r.map(t=>`${e}/${t.path}`).sort()),imports:Object.freeze([...new Set(r.flatMap(e=>wr(e.content)))].sort()),archivePath:`/work/build/deps/${String(s).padStart(4,`0`)}.a`}))}}return{files:t,packages:Object.freeze(n)}}function U(e,t,n){try{return new TextDecoder(`utf-8`,{fatal:!0}).decode(e)}catch(e){throw Error(`Dependency '${t}' compiler file '${n}' is not valid UTF-8.`,{cause:e})}}function mr(e){return/(?:^|\/)(?:package\.json)$/.test(e)||/\.(?:js|cjs|d\.ts|json)$/i.test(e)}function hr(e){return/\.(?:h|hh|hpp|hxx|inc|c|cc|cpp|cxx)$/i.test(e)}function gr(e){return/\.(?:c|cc|cpp|cxx)$/i.test(e)}function _r(e){let t=new Map(e.map(e=>[e.package.id,e])),n=new Map,r=[],i=e=>{let a=n.get(e);if(a===`visited`)return;if(a===`visiting`)throw Error(`Dependency graph contains a cycle at '${e}'.`);let o=t.get(e);if(!o)throw Error(`Dependency graph refers to unavailable package '${e}'.`);n.set(e,`visiting`);for(let e of o.package.dependencies)i(e);n.set(e,`visited`),r.push(o)};for(let t of e)i(t.package.id);return r}function vr(e,t){return e.match(RegExp(`(?:^|\\n)\\[${t.replace(/[.*+?^${}()|[\\]\\]/g,`\\$&`)}\\]\\s*\\n([\\s\\S]*?)(?=\\n\\[|$)`))?.[1]??``}function yr(e,t){return e.match(RegExp(`^\\s*${t}\\s*=\\s*"([^"]+)"\\s*(?:#.*)?$`,`m`))?.[1]}function br(e){return e.split(/\n(?=\[)/).filter(e=>/\bdependencies\]/.test(e.split(`
441
441
  `,1)[0])).join(`
442
- `)}function _r(e,t){let n=e.replaceAll(`-`,`_`);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(n))throw Error(`Cargo dependency '${t}' has unsupported crate name '${e}'.`);return n}function vr(e){return e.endsWith(`.rs`)||e.endsWith(`.md`)||e.endsWith(`.txt`)||e===`Cargo.toml`}function yr(e,t,n){let r=e.match(/^\s*package\s+([A-Za-z_][A-Za-z0-9_]*)\b/m);if(!r)throw Error(`Go dependency '${t}' source '${n}' has no package declaration.`);return r[1]}function br(e){let t=[],n=/\bimport\s*\(([\s\S]*?)\)/g;for(let r of e.matchAll(n))for(let e of r[1].matchAll(/(?:^|\n)\s*(?:[._A-Za-z][A-Za-z0-9_]*\s+)?["`]([^"`]+)["`]/g))t.push(e[1]);let r=e.replace(n,``);for(let e of r.matchAll(/\bimport\s+(?:[._A-Za-z][A-Za-z0-9_]*\s+)?["`]([^"`]+)["`]/g))t.push(e[1]);return t}let W,xr;const Sr=new Map,G=new Bn(67108864),Cr=new TextEncoder,wr=new TextDecoder,Tr=55e3;async function Er(e,t,n,r){if(e.config.target!==`wasip1`&&e.config.target!==`wasix`)throw Error(`The output-ready Clang compiler accepts only wasip1 or wasix targets.`);if(e.config.language!==`c`&&e.config.language!==`cpp`)throw Error(`The output-ready Clang compiler accepts only C and C++ projects.`);let i=performance.now();r.progress(n,`loading-toolchain`,`Loading pinned Clang 22 toolchain`,.15);let{pins:a,compiler:o,linker:s}=await Ar(n,r),c=`${e.config.language}-${e.config.optimization}`,l=a.configs[c];if(!l)throw Error(`The pinned Clang manifest has no '${c}' configuration.`);r.trace(n,`filesystemPrepare`,`start`);let u=new Map(e.files.map(e=>[e.path,Cr.encode(e.content)])),d=sr(e);for(let[e,t]of d.files)u.set(e,t);u.set(Cn,Cr.encode(wn));let f=new ce(Object.fromEntries([...u].map(([e,t])=>[`/${e}`,t])));try{await Vr(f,`/build`),await Vr(f,`/.wasm-oj`),r.trace(n,`filesystemPrepare`,`end`);let p=e.config.language===`cpp`,m=p?/\.(?:cc|cpp|cxx)$/:/\.c$/,h=e.files.filter(e=>m.test(e.path)).map(e=>e.path);h.includes(e.config.entry)||h.unshift(e.config.entry);let g=[...h,...d.sources,Cn],_=``,v=``,y=[],b=[],ee=0,te=0,x=0,S=0,C=0,w=0,T=0,ne=0,E=[],D=p?Nr(e):void 0,O=`/project/build/wasm-oj.pch`,re,ie=!1;if(D){let t=u.get(D),i;if(Xn(wr.decode(t))){ie=!0;let e=`wasm-oj.libcxx.hpp`;if(u.has(e))throw Error(`C++ projects using WASM-OJ's admitted libc++ PCH may not define reserved path '${e}'.`);u.set(e,t),await f.writeFile(`/${e}`,t),i=await Mr(c,n,r),x+=1,await f.writeFile(O.slice(8),i)}else{let s=await G.unitManifestKey(a,c,D,t),p=await V(JSON.stringify({baseKey:s,mode:`c++-header`})),m=await G.lookupPch(p,u);if(m)i=m,x+=1,await f.writeFile(O.slice(8),i);else{S+=1;let t=`/project/build/wasm-oj.pch.d`,s=kn(l.cc1,a.placeholders,D,O);s.splice(s.length-1,0,...d.includeDirectories.flatMap(e=>[`-I`,e])),s.push(`-dependency-file`,t,`-MT`,O);let c=await Pr(o,s,f,r,n,O,t);if(E.push(...c.diagnostics),_+=c.stdout,v+=c.stderr,!c.pch||!c.dependency)return Ur(e,_,v,1,`clang`,E);i=c.pch,await G.storePch(p,Vn(c.dependency),u,i)&&(C+=1)}}re={kind:`pch`,identity:`pch:${D}`,digest:await V(i)}}r.progress(n,`compiling`,`Compiling ${g.length} translation units with SDK-direct cc1`,.35),r.trace(n,`commandStart`,`start`),r.trace(n,`commandStart`,`end`),r.trace(n,`commandWait`,`start`),r.trace(n,`projectCompile`,`start`);for(let[t,i]of g.entries()){i===`.wasm-oj/determinism.c`&&(r.trace(n,`projectCompile`,`end`),r.trace(n,`runtimeShimCompile`,`start`));let s=`/project/build/${String(t).padStart(4,`0`)}.o`,p=`/project/build/${String(t).padStart(4,`0`)}.d`,m=u.get(i);if(!m)throw Error(`SDK-direct Clang is missing source bytes for '${i}'.`);let h=await G.unitManifestKey(a,c,i,m),g=i===`.wasm-oj/determinism.c`?void 0:re,x=g?await V(JSON.stringify({baseManifestKey:h,pch:g.digest})):h,S=g?[g]:[],C=await G.lookup(x,u,S);if(C){await f.writeFile(s.slice(8),C),ee+=1,y.push(s),b.push({kind:`object`,identity:i,bytes:C});continue}let w=On(l.cc1,a.placeholders,i,s);w.splice(w.length-1,0,...d.includeDirectories.flatMap(e=>[`-I`,e])),g&&w.splice(w.length-1,0,`-include-pch`,O,...ie?[`-fno-validate-pch`]:[]),w.push(`-dependency-file`,p,`-MT`,s);let T=await Fr(o,w,f,r,n,i===`.wasm-oj/determinism.c`?`runtimeShimSpawn`:`projectSpawn`,i===`.wasm-oj/determinism.c`?`runtimeShimWait`:`projectWait`,i===`.wasm-oj/determinism.c`?`runtimeShimOutputReady`:`projectOutputReady`,s,p);if(E.push(...T.diagnostics),_+=T.stdout,v+=T.stderr,!T.object||!T.dependency)return r.trace(n,i===`.wasm-oj/determinism.c`?`runtimeShimCompile`:`projectCompile`,`end`),r.trace(n,`commandWait`,`end`),Ur(e,_,v,1,`clang`,E);T.diagnostics.length===0&&await G.store(x,Vn(T.dependency),u,T.object,S)&&(te+=1),y.push(s),b.push({kind:`object`,identity:i,bytes:T.object})}r.trace(n,`runtimeShimCompile`,`end`),r.progress(n,`linking`,`Linking SDK-direct Clang objects`,.8),r.trace(n,`link`,`start`);let ae=`/project/build/app.wasm`,oe=An(l.link,a.placeholders,y,ae),se=await V(JSON.stringify({pins:a.sourceSha256,package:P,target:e.config.target,arguments:l.link})),k=await G.lookupLink(se,b),ce=``,le=``;if(k)w+=1;else{T+=1;let e=await Ir(s,oe,f,r,n,`linkSpawn`,`linkWait`,`linkOutputReady`,ae);ce=e.stdout,le=e.stderr,k=e.value,k&&await G.storeLink(se,b,k)&&(ne+=1)}return r.trace(n,`link`,`end`),r.trace(n,`commandWait`,`end`),_+=ce,v+=le,k?(r.progress(n,`linking`,`Reading linked WebAssembly module`,.95),r.trace(n,`artifactReadback`,`start`),r.trace(n,`artifactReadback`,`end`),{success:!0,diagnostics:E,artifact:{kind:`wasm`,wasmOjContract:2,id:crypto.randomUUID(),projectId:e.id,cacheKey:t,name:`${e.name}.wasm`,language:e.config.language,target:e.config.target,optimization:e.config.optimization,createdAt:Date.now(),durationMs:performance.now()-i,size:k.byteLength,toolchains:z(e.config.language),costProfile:ln(e.config.language,e.config.target,e.config.optimization),...e.dependencies===void 0?{}:{dependencyLockSha256:e.dependencies.lockSha256},bytes:k},stdout:_,stderr:v,cacheHit:!1,buildGraph:{hits:{pch:x,object:ee,"link-result":w},misses:{pch:S,object:g.length-ee,"link-result":T},stores:{pch:C,object:te,"link-result":ne}}}):Ur(e,_,v,1,`wasm-ld`,E)}finally{f.free()}}function Dr(){return G.exportState()}function Or(e){return G.restoreState(e)}async function kr(){let e=W;if(W=void 0,!e)return;let{pkg:t,compiler:n,linker:r}=await e;n.free(),r.free(),t.free()}async function Ar(e,t){if(W){for(let n of[`toolchainFetch`,`toolchainDecode`,`toolchainLoad`])t.trace(e,n,`start`),t.trace(e,n,`end`);return W}W=(async()=>{t.trace(e,`toolchainFetch`,`start`);let[n,r]=await Promise.all([t.loadToolchainAsset(ze),t.loadToolchainFile(Be)]);t.trace(e,`toolchainFetch`,`end`),t.trace(e,`toolchainDecode`,`start`);let i=await Dn(r),a=await V(n);if(a!==`21ded33b9c6d4e1aaad5528c940bdaf6c3e84be77ea8f522f018ca7289a2a224`)throw Error(`Pinned Clang package digest mismatch: received ${a}.`);t.trace(e,`toolchainDecode`,`end`),t.trace(e,`toolchainLoad`,`start`);let o=await we.fromFile(n,t.runtime),s=jr(o,i.command),c=jr(o,i.linkerCommand);return t.trace(e,`toolchainLoad`,`end`),{pkg:o,pins:i,compiler:s,linker:c}})();try{return await W}catch(e){throw W=void 0,e}}function jr(e,t){let n=e.commands[t];if(!n)throw Error(`The SDK-direct Clang package does not expose '${t}'.`);return n}async function Mr(e,t,n){xr??=n.loadToolchainFile(He).then(Yn);let r=Sr.get(e);r||(r=xr.then(async r=>{let i=r.profiles[e];n.progress(t,`loading-toolchain`,`Loading admitted libc++ PCH (${e})`,.25);let a=await n.loadToolchainAsset(`/toolchains/${i.path}`);if(a.byteLength!==i.byteLength||await V(a)!==i.sha256)throw Error(`Pinned libc++ PCH '${e}' failed decompressed integrity verification.`);return a}),Sr.set(e,r));try{return await r}catch(t){throw Sr.delete(e),t}}function Nr(e){let t=e.files.map(e=>e.path).filter(e=>e.split(`/`).at(-1)===`wasm-oj.pch.hpp`);if(t.length>1)throw Error(`C++ projects may contain at most one wasm-oj.pch.hpp; received ${t.join(`, `)}.`);return t[0]}function Pr(e,t,n,r,i,a,o){let s=new er;return Lr(e,t,n,r,i,`projectSpawn`,`projectWait`,`projectOutputReady`,async e=>{let[t,r]=await Promise.all([Hr(n,a),Hr(n,o)]),i=s.observe(t?.byteLength?t:void 0,performance.now());return i&&r?.byteLength&&wr.decode(r).endsWith(`
443
- `)?{pch:i,dependency:r}:/\d+ errors? generated\.\s*$/.test(e)?{}:void 0}).then(e=>({...e.value,diagnostics:gn(`${e.stderr}\n${e.stdout}`),stdout:e.stdout,stderr:e.stderr}))}function Fr(e,t,n,r,i,a,o,s,c,l){return Lr(e,t,n,r,i,a,o,s,async e=>{let[t,r]=await Promise.all([Br(n,c),Hr(n,l)]);return t&&r?.byteLength&&wr.decode(r).endsWith(`
444
- `)?{object:t,dependency:r}:/\d+ errors? generated\.\s*$/.test(e)?{}:void 0}).then(e=>({...e.value,diagnostics:gn(`${e.stderr}\n${e.stdout}`),stdout:e.stdout,stderr:e.stderr}))}function Ir(e,t,n,r,i,a,o,s,c){return Lr(e,t,n,r,i,a,o,s,async e=>await Br(n,c)||(/(?:wasm-ld|lld): error:/i.test(e)?null:void 0)).then(e=>({...e,value:e.value??void 0}))}async function Lr(e,t,n,r,i,a,o,s,c){r.trace(i,a,`start`);let l=await e.run({args:t,cwd:`/project`,env:{PATH:`/bin`,SOURCE_DATE_EPOCH:`946684800`,TZ:`UTC`,LC_ALL:`C`},mount:{"/project":n}});r.trace(i,a,`end`),r.trace(i,o,`start`),r.trace(i,s,`start`);let u=Rr(l.stdout),d=Rr(l.stderr),f=performance.now()+Tr;try{for(;performance.now()<f;){let e=await c(d.text());if(e!==void 0)return await new Promise(e=>setTimeout(e,0)),{value:e,stdout:u.text(),stderr:d.text()};await new Promise(e=>setTimeout(e,5))}throw Error(`Compiler stage did not produce a complete output within ${Tr} ms.`)}finally{r.trace(i,s,`end`),r.trace(i,o,`end`),await Promise.all([u.cancel(),d.cancel()]),l.free()}}function Rr(e){let t=e.getReader(),n=[];return(async()=>{try{for(;;){let e=await t.read();if(e.done)return;let r=e.value instanceof Uint8Array?e.value:new Uint8Array(e.value);n.push(r.slice())}}catch{}})(),{text:()=>wr.decode(zr(n)),cancel:async()=>{try{await t.cancel()}catch{}}}}function zr(e){let t=new Uint8Array(e.reduce((e,t)=>e+t.byteLength,0)),n=0;for(let r of e)t.set(r,n),n+=r.byteLength;return t}async function Br(e,t){let n=await Hr(e,t);if(!n||n.byteLength<=8)return;let r=new Uint8Array(n.byteLength);return r.set(n),WebAssembly.validate(r.buffer)?r:void 0}async function Vr(e,t){try{await e.createDir(t)}catch(e){if(!String(e).toLowerCase().includes(`exist`))throw e}}async function Hr(e,t){let n=t.startsWith(`/project/`)?t.slice(8):t;try{return await e.readFile(n)}catch{return}}function Ur(e,t,n,r,i,a){return{success:!1,diagnostics:vn(a??gn(`${n}\n${t}`),{file:e.config.entry,source:i,message:n.trim()||`${i} exited with code ${r}.`}),stdout:t,stderr:n,cacheHit:!1}}const Wr=new TextEncoder;let Gr,Kr;function qr(e){Kr=e}function K(e,t,n,r){q().progress(e,t,n,r)}function q(){if(!Kr)throw Error(`Wasmer compiler host is not configured.`);return Kr}function Jr(){return q().getRuntime()}async function Yr(){Gr??=q().loadToolchainAsset(st);try{return we.fromWasm(await Gr,Jr())}catch(e){throw Gr=void 0,e}}function Xr(e,t,n,r,i,a){return{wasmOjContract:2,id:crypto.randomUUID(),projectId:e.id,cacheKey:t,name:`${e.name}.${e.config.target===`wasip1`?`wasm`:`wasix.wasm`}`,language:e.config.language,target:e.config.target,optimization:e.config.optimization,createdAt:Date.now(),durationMs:performance.now()-n,size:r,toolchains:i,costProfile:ln(e.config.language,e.config.target,e.config.optimization,a),...e.dependencies===void 0?{}:{dependencyLockSha256:e.dependencies.lockSha256}}}async function Zr(e,t,n){let r=performance.now();K(n,`compiling`,`Compiling with rustc ${I}`,.2);let i=cr(e),a=await q().compileRust({entry:e.config.entry,files:[...e.files,...i.files],optimization:e.config.optimization,dependencies:i.crates,rootExterns:i.roots});if(!a.success||!a.wasm)return{success:!1,diagnostics:vn(a.diagnostics,{file:e.config.entry,source:`rustc`,message:a.stderr.trim()||`rustc failed without a diagnostic.`}),stdout:a.stdout,stderr:a.stderr,cacheHit:!1};let o=a.wasm,s={kind:`wasm`,...Xr(e,t,r,o.byteLength,z(`rust`)),bytes:o};return{success:!0,diagnostics:a.diagnostics,artifact:s,stdout:a.stdout,stderr:a.stderr,cacheHit:!1}}function Qr(e){return Object.values(e).reduce((e,t)=>e+(typeof t==`string`?Wr.encode(t).byteLength:t.byteLength),0)}async function $r(e,t,n){let r=performance.now(),i=ar(e);K(n,`compiling`,`Packaging Python sources`,.55);let a=Object.fromEntries(e.files.map(e=>[e.path,e.content]));Object.assign(a,i),a[`.wasm-oj/deterministic_runner.py`]=Tn;let o=e.config.entry,s=fn(e,Ze,`python`,o);a[`wasm-oj.manifest.json`]=s;let c=pn(a);return{success:!0,diagnostics:[],artifact:{kind:`runtime-bundle`,...Xr(e,t,r,Qr(c),z(`python`)),name:`${e.name}.python-${e.config.target}.json`,runtimePackage:Ze,command:`python`,entry:o,files:c,manifest:s},stdout:``,stderr:``,cacheHit:!1}}async function ei(e,t,n){let r=performance.now();K(n,`compiling`,`Compiling with Go ${L}`,.3);let i=lr(e),a=await q().compileGo({entry:e.config.entry,files:e.files,dependencyFiles:i.files,optimization:e.config.optimization,dependencies:i.packages});if(!a.success||!a.wasm)return{success:!1,diagnostics:vn(a.diagnostics,{file:e.config.entry,source:`go`,message:a.stderr.trim()||`Go compilation failed without a diagnostic.`}),stdout:a.stdout,stderr:a.stderr,cacheHit:!1};let o={kind:`wasm`,...Xr(e,t,r,a.wasm.byteLength,z(`go`)),bytes:a.wasm};return{success:!0,diagnostics:a.diagnostics,artifact:o,stdout:a.stdout,stderr:a.stderr,cacheHit:!1}}async function ti(e,t,n){let r=performance.now(),i=e.files.find(t=>t.path===e.config.entry);if(!i||!i.path.endsWith(`.java`))return{success:!1,diagnostics:[{severity:`error`,message:`The Java entry must be a .java source file.`,file:e.config.entry,line:1,column:1,source:`project`}],stdout:``,stderr:``,cacheHit:!1};K(n,`compiling`,`Compiling Java ${i.path}`,.3);let a=await q().compileJava({entry:e.config.entry,files:e.files,optimization:e.config.optimization});if(!a.success||!a.wasm)return{success:!1,diagnostics:vn(a.diagnostics,{file:e.config.entry,source:`java`,message:a.stderr.trim()||`Java compilation failed without a diagnostic.`}),stdout:a.stdout,stderr:a.stderr,cacheHit:!1};let o={kind:`wasm`,...Xr(e,t,r,a.wasm.byteLength,z(`java`),Pt(`java`)),bytes:a.wasm};return{success:!0,diagnostics:a.diagnostics,artifact:o,stdout:a.stdout,stderr:a.stderr,cacheHit:!1}}function ni(e){return e.endsWith(`.ts`)?e.slice(0,-3)+`.js`:e}function ri(e){let t=e.config.language===`typescript`?`.ts`:`.js`;return e.files.filter(e=>e.path.endsWith(t))}function ii(e){return ri(e).filter(e=>!e.path.endsWith(`.d.ts`))}async function ai(e,t){let n=ri(e),r=ii(e),i=or(e);K(t,`loading-toolchain`,`Loading TypeScript ${ot}/WASI`);let a=(await Yr()).entrypoint;if(!a)throw Error(`The TypeScript/WASI compiler has no executable entrypoint.`);let o=r.map(e=>ni(e.path)),s=`/project/.wasm-oj/quickjs.d.ts`,c=await(await a.run({stdin:JSON.stringify({files:{...Object.fromEntries(e.files.map(e=>[`/project/${e.path}`,e.content])),...Object.fromEntries(Object.entries(i).filter(([,e])=>typeof e==`string`).map(([e,t])=>[`/project/${e}`,t])),[s]:yn+bn+xn},sources:[s,...n.map(e=>`/project/${e.path}`),...Object.entries(i).filter(([e,t])=>e.endsWith(`.d.ts`)&&typeof t==`string`).map(([e])=>`/project/${e}`)],outputs:o.map(e=>`/project/build/${e}`)})})).wait(),l;if(c.ok)try{l=JSON.parse(c.stdout)}catch{l=void 0}let u={};if(l)for(let e of o){let t=l.files[`/project/build/${e}`];t!==void 0&&(u[e]=t)}return Object.assign(u,i),{files:u,output:c,response:l}}async function oi(e,t,n){let r=performance.now();if(!ii(e).some(t=>t.path===e.config.entry))return{success:!1,diagnostics:[{severity:`error`,message:`The ${e.config.language===`typescript`?`.ts`:`.js`} entry file is not a supported executable source.`,file:e.config.entry,line:1,column:1,source:`project`}],stdout:``,stderr:``,cacheHit:!1};let i,a=[],o=``;if(e.config.language===`javascript`)K(n,`compiling`,`Preparing JavaScript modules`,.5),i={...Object.fromEntries(ii(e).map(e=>[e.path,e.content])),...or(e)};else{K(n,`compiling`,`Compiling TypeScript with TypeScript/WASI`,.5);let t=await ai(e,n);i=t.files,o=t.output.stderr,a=_n(t.response?.diagnostics??``);let r=ii(e).every(e=>Object.hasOwn(i,ni(e.path)));if(!t.output.ok||!t.response||t.response.status!==0||!r||a.some(e=>e.severity===`error`))return{success:!1,diagnostics:vn(a,{file:e.config.entry,source:`typescript`,message:o.trim()||t.response?.diagnostics.trim()||`TypeScript 7.0.2 did not return every compiled output.`}),stdout:``,stderr:o,cacheHit:!1}}let s=ni(e.config.entry),c=fn(e,rt,`qjs`,s);i[`wasm-oj.manifest.json`]=c;let l=pn(i),u={kind:`runtime-bundle`,...Xr(e,t,r,Qr(l),z(e.config.language)),name:`${e.name}.${e.config.language===`typescript`?`typescript`:`javascript`}-${e.config.target}.json`,runtimePackage:rt,command:`qjs`,entry:s,files:l,manifest:c};return{success:!0,diagnostics:a,artifact:u,stdout:``,stderr:o,cacheHit:!1}}async function si(e,t,n){let r={...e,files:zt(e.files)};if(rr(r),K(n,`checking`,`Validating project configuration`,.05),!r.files.some(e=>e.path===r.config.entry))return{success:!1,diagnostics:[{severity:`error`,message:`Configured entry file does not exist.`,file:r.config.entry,line:1,column:1,source:`project`}],stdout:``,stderr:``,cacheHit:!1};if(r.config.language===`c`||r.config.language===`cpp`){let e=q();return Er(r,t,n,{runtime:e.getRuntime(),loadToolchainAsset:e.loadToolchainAsset,loadToolchainFile:e.loadToolchainFile,progress:e.progress,trace:e.trace})}return J.driver(r.config.language).build({project:r,cacheKey:t,requestId:n})}const J=new Sn;J.register({id:`rustc`,languages:[`rust`],build:({project:e,cacheKey:t,requestId:n})=>Zr(e,t,n)}),J.register({id:`cpython`,languages:[`python`],build:({project:e,cacheKey:t,requestId:n})=>$r(e,t,n)}),J.register({id:`typescript`,languages:[`javascript`,`typescript`],build:({project:e,cacheKey:t,requestId:n})=>oi(e,t,n)}),J.register({id:`go`,languages:[`go`],build:({project:e,cacheKey:t,requestId:n})=>ei(e,t,n)}),J.register({id:`teavm-java`,languages:[`java`],build:({project:e,cacheKey:t,requestId:n})=>ti(e,t,n)});function ci(){Gr=void 0}function li(e){return(e.config.target===`wasip1`||e.config.target===`wasix`)&&(e.config.language===`c`||e.config.language===`cpp`)}function ui(e){if(!li(e))return 0;let t=e.config.language===`cpp`?/\.(?:cc|cpp|cxx)$/:/\.c$/,n=new Set(e.files.filter(e=>t.test(e.path)).map(e=>e.path));n.add(e.config.entry);let r=e.config.language===`cpp`?e.files.find(e=>e.path.split(`/`).at(-1)===`wasm-oj.pch.hpp`):void 0,i=r&&!Xn(r.content)?1:0;return n.size+i+2}function di(e){let t=ui(e);if(t>8)throw Error(`The browser Clang project requires ${t} compiler stages; the verified per-Worker limit is 8.`);return t}const fi=`manifests`,Y=`metadata`,pi=`blobs`,X=`clang`,mi=new TextEncoder;var hi=class{adapter;restoration;ready=!1;persistedGeneration=0;constructor(e){this.adapter=e}async ensureLoaded(){if(!this.ready){this.restoration??=this.loadOnce();try{await this.restoration}catch(e){throw this.restoration=void 0,e}}}async persistIfDirty(){if(!this.ready)return!1;let e=this.adapter.capture(),t=e.manifest.generation;if(t===this.persistedGeneration)return!1;if(t<this.persistedGeneration)throw Error(`Clang build graph generation moved backwards within one compiler Worker.`);let n=await this.adapter.save(e);return this.persistedGeneration=t,n}async loadOnce(){let e=await this.adapter.load();e&&await this.adapter.restore(e);let t=this.adapter.capture().manifest.generation;if(e&&t!==e.manifest.generation)throw Error(`Restored Clang build graph generation does not match persisted state.`);this.persistedGeneration=t,this.ready=!0}};async function gi(){let e=await vi();try{let t=e.transaction([fi,Y,pi],`readonly`),n=t.objectStore(fi).get(X),r=t.objectStore(Y).get(X),[i,a]=await Promise.all([yi(n),yi(r)]);if(i===void 0&&a===void 0){await bi(t);return}let o=wi(i),s=Ti(a);if(s.generation!==o.generation)throw Error(`Persisted Clang build graph generation metadata does not match its manifest.`);let c=[...new Set(o.entries.map(e=>e.outputDigest))].sort(),l=t.objectStore(pi),u=await Promise.all(c.map(e=>yi(l.get(e))));await bi(t);let d=u.map((e,t)=>Ei(e,c[t]));return Oi(Di(o),d,s),await xi(e,s),{manifest:Di(o),blobs:d.map(({digest:e,bytes:t})=>({digest:e,bytes:t}))}}finally{e.close()}}async function _i(e){let t=Si(e),n=Ci(e),r=await vi();try{let e=r.transaction([fi,Y,pi],`readwrite`),i=e.objectStore(Y),a=await yi(i.get(X));if(a!==void 0&&Ti(a).generation===t.generation)return await bi(e),!1;let o=e.objectStore(pi),s=new Set((await yi(o.getAllKeys())).map(String)),c=new Set(n.map(e=>e.digest));for(let e of n)s.has(e.digest)||o.add({digest:e.digest,byteLength:e.bytes.byteLength,bytes:e.bytes});for(let e of s)c.has(e)||o.delete(e);let l={id:X,...t},u=ki(n),d=Ai(t),f=ji(u,d);return e.objectStore(fi).put(l),i.put({id:X,generation:t.generation,blobBytes:u,manifestBytes:d,byteLength:f,lastAccessedAt:Date.now()}),await bi(e),!0}finally{r.close()}}function vi(){return new Promise((e,t)=>{let n=indexedDB.open(Fe.incrementalBuildCache,2);n.addEventListener(`upgradeneeded`,()=>{let e=n.result;for(let t of[...e.objectStoreNames])e.deleteObjectStore(t);e.createObjectStore(fi,{keyPath:`id`}),e.createObjectStore(Y,{keyPath:`id`}),e.createObjectStore(pi,{keyPath:`digest`})}),n.addEventListener(`success`,()=>e(n.result),{once:!0}),n.addEventListener(`error`,()=>{t(n.error??Error(`Unable to open the incremental build cache.`))},{once:!0}),n.addEventListener(`blocked`,()=>{t(Error(`Incremental build cache open is blocked by another tab.`))},{once:!0})})}function yi(e){return new Promise((t,n)=>{e.addEventListener(`success`,()=>t(e.result),{once:!0}),e.addEventListener(`error`,()=>n(e.error??Error(`IndexedDB request failed.`)),{once:!0})})}function bi(e){return new Promise((t,n)=>{e.addEventListener(`complete`,()=>t(),{once:!0}),e.addEventListener(`abort`,()=>n(e.error??Error(`IndexedDB transaction aborted.`)),{once:!0}),e.addEventListener(`error`,()=>n(e.error??Error(`IndexedDB transaction failed.`)),{once:!0})})}async function xi(e,t){let n=e.transaction(Y,`readwrite`);n.objectStore(Y).put({...t,lastAccessedAt:Date.now()}),await bi(n)}function Si(e){if(!e||typeof e!=`object`||Array.isArray(e)||Object.keys(e).sort().join(`,`)!==`blobs,manifest`)throw Error(`Clang build graph state has an invalid shape.`);return Di(wi({id:X,...e.manifest}))}function Ci(e){if(!Array.isArray(e.blobs))throw Error(`Clang build graph state blobs must be an array.`);let t=e.blobs.map(e=>{if(!e||typeof e!=`object`||Array.isArray(e)||Object.keys(e).sort().join(`,`)!==`bytes,digest`)throw Error(`Clang build graph state contains a malformed blob.`);if(typeof e.digest!=`string`||!/^[0-9a-f]{64}$/.test(e.digest)||!(e.bytes instanceof Uint8Array))throw Error(`Clang build graph state contains invalid blob metadata.`);return e});for(let e=0;e<t.length;e+=1)if(e>0&&t[e-1].digest>=t[e].digest)throw Error(`Clang build graph state blobs are not canonical or contain duplicates.`);let n=new Set(e.manifest.entries.map(e=>e.outputDigest));if(n.size!==t.length||t.some(e=>!n.has(e.digest)))throw Error(`Clang build graph state blobs do not exactly match its manifest references.`);return t}function wi(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Persisted Clang build graph manifest has an invalid shape.`);let t=e;if(Object.keys(t).sort().join(`,`)!==`entries,generation,id,schema,version`||t.id!==X||t.schema!==j.incrementalBuildGraph||t.version!==2||!Number.isSafeInteger(t.generation)||t.generation<0||!Array.isArray(t.entries))throw Error(`Persisted Clang build graph manifest does not use the active storage contract.`);return t}function Ti(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Persisted Clang build graph metadata has an invalid shape.`);let t=e;if(Object.keys(t).sort().join(`,`)!==`blobBytes,byteLength,generation,id,lastAccessedAt,manifestBytes`||t.id!==X||!Z(t.generation)||!Z(t.blobBytes)||!Z(t.manifestBytes)||!Z(t.byteLength)||!Z(t.lastAccessedAt)||ji(t.blobBytes,t.manifestBytes)!==t.byteLength)throw Error(`Persisted Clang build graph metadata has invalid storage accounting.`);return t}function Ei(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Persisted Clang build graph blob '${t}' is missing.`);let n=e;if(Object.keys(n).sort().join(`,`)!==`byteLength,bytes,digest`||n.digest!==t||!Z(n.byteLength)||!(n.bytes instanceof Uint8Array)||n.bytes.byteLength!==n.byteLength)throw Error(`Persisted Clang build graph blob '${t}' has invalid metadata.`);return n}function Di(e){return{schema:e.schema,version:e.version,generation:e.generation,entries:e.entries}}function Oi(e,t,n){if(ki(t)!==n.blobBytes||Ai(e)!==n.manifestBytes)throw Error(`Persisted Clang build graph storage accounting does not match its records.`)}function ki(e){let t=0,n=new Set;for(let r of e){if(n.has(r.digest))throw Error(`Clang build graph repeats blob '${r.digest}'.`);n.add(r.digest),t=ji(t,r.bytes.byteLength)}return t}function Ai(e){return mi.encode(JSON.stringify(e)).byteLength}function ji(e,t){let n=e+t;if(!Number.isSafeInteger(n)||n<0)throw Error(`Incremental build graph byte length exceeds the safe integer range.`);return n}function Z(e){return Number.isSafeInteger(e)&&e>=0}Object.freeze([`wasi_snapshot_preview1.random_get`,`wasi_snapshot_preview1.clock_time_get`]),Object.freeze({version:I,packageAsset:lt,packageCompressedSha256:dt,packageSha256:ft,manifestAsset:ut,manifestSha256:pt,target:`wasm32-wasip1-threads`,edition:`2024`});var Mi=``+new URL(`rustc-stage.worker-BJ5u-1c2.js`,import.meta.url).href,Ni=``+new URL(`go-stage.worker-DMewq4N3.js`,import.meta.url).href;`${L.split(`.`).slice(0,2).join(`.`)}`,Object.freeze({version:L,target:`wasip1/wasm`,packageAsset:mt,packageCompressedSha256:_t,packageSha256:vt,manifestAsset:ht,manifestSha256:yt,standardLibraryAsset:gt,standardLibraryCompressedSha256:bt,standardLibrarySha256:xt,compilerSha256:St,linkerSha256:Ct});var Pi=``+new URL(`java-stage.worker-COWR2SIP.js`,import.meta.url).href;Object.freeze({version:wt,package:Tt,compilerAsset:Et,compilerSha256:kt,compileClasslibAsset:Dt,compileClasslibSha256:At,runtimeClasslibAsset:Ot,runtimeClasslibSha256:jt});var Fi=class{options;worker;pending;fault;disposed=!1;closing=!1;workerTerminated=!1;constructor(e){if(!Number.isFinite(e.timeoutMs)||e.timeoutMs<=0)throw RangeError(`A persistent isolated stage requires a positive finite timeout.`);if(!e.stageLabel.trim())throw Error(`A persistent isolated stage requires a non-empty label.`);this.options=e,this.worker=e.createWorker(),this.worker.addEventListener(`message`,this.onMessage),this.worker.addEventListener(`error`,this.onError),this.worker.addEventListener(`messageerror`,this.onMessageError)}run(e){if(this.disposed)throw Error(`The persistent ${this.options.stageLabel} stage is disposed.`);if(this.closing)throw Error(`The persistent ${this.options.stageLabel} stage is shutting down.`);if(this.fault)throw this.fault;if(this.pending)throw Error(`The persistent ${this.options.stageLabel} stage accepts one request at a time.`);return new Promise((t,n)=>{let r=setTimeout(()=>{this.fail(Error(`The persistent ${this.options.stageLabel} stage exceeded ${this.options.timeoutMs} ms.`))},this.options.timeoutMs);this.pending={kind:`run`,resolve:t,reject:n,timer:r};try{this.worker.postMessage(e)}catch(e){this.fail(e instanceof Error?e:Error(String(e)))}})}shutdown(e){if(this.disposed)throw Error(`The persistent ${this.options.stageLabel} stage is disposed.`);if(this.closing)throw Error(`The persistent ${this.options.stageLabel} stage is already shutting down.`);if(this.fault)throw this.fault;if(this.pending)throw Error(`The persistent ${this.options.stageLabel} stage cannot shut down during a request.`);return this.closing=!0,new Promise((t,n)=>{let r=setTimeout(()=>{this.fail(Error(`The persistent ${this.options.stageLabel} shutdown exceeded ${this.options.timeoutMs} ms.`))},this.options.timeoutMs);this.pending={kind:`shutdown`,resolve:t,reject:n,timer:r};try{this.worker.postMessage(e)}catch(e){this.fail(e instanceof Error?e:Error(String(e)))}})}dispose(){this.disposed||(this.disposed=!0,this.detach(),this.terminateWorker(),this.rejectPending(Error(`The persistent ${this.options.stageLabel} stage was disposed.`)))}onMessage=e=>{let t=e.data;if(!Ii(t)){this.fail(Error(`The persistent ${this.options.stageLabel} worker returned an invalid response.`));return}let n=this.pending;if(!n){this.fail(Error(`The persistent ${this.options.stageLabel} worker returned an unsolicited response.`));return}if(n.kind===`shutdown`){if(t.type!==`shutdown-complete`){this.fail(Error(t.type===`error`?t.message:`The persistent ${this.options.stageLabel} worker returned an invalid shutdown response.`));return}let e=this.takePending();if(!e||e.kind!==`shutdown`)return;this.disposed=!0,this.detach(),this.terminateWorker(),e.resolve();return}if(t.type===`shutdown-complete`){this.fail(Error(`The persistent ${this.options.stageLabel} worker shut down during an active request.`));return}let r=this.takePending();if(!r||r.kind!==`run`)return;if(t.type===`result`){r.resolve(t.result);return}let i=Error(t.message);t.stack!==void 0&&(i.stack=t.stack),r.reject(i)};onError=e=>{e.preventDefault(),this.fail(Error(Li(e,`The persistent ${this.options.stageLabel} worker crashed.`)))};onMessageError=()=>{this.fail(Error(`The persistent ${this.options.stageLabel} worker returned an unreadable response.`))};fail(e){this.fault||this.disposed||(this.fault=e,this.detach(),this.terminateWorker(),this.rejectPending(e))}takePending(){let e=this.pending;if(e)return this.pending=void 0,clearTimeout(e.timer),e}rejectPending(e){this.takePending()?.reject(e)}detach(){this.worker.removeEventListener(`message`,this.onMessage),this.worker.removeEventListener(`error`,this.onError),this.worker.removeEventListener(`messageerror`,this.onMessageError)}terminateWorker(){this.workerTerminated||(this.workerTerminated=!0,this.worker.terminate())}};function Ii(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.type===`result`?Object.hasOwn(t,`result`):t.type===`shutdown-complete`?Object.keys(t).length===1:t.type===`error`&&typeof t.message==`string`&&(t.stack===void 0||typeof t.stack==`string`)}function Li(e,t){let n=e.message||t,r=e.filename?`${e.filename}${e.lineno>0?`:${e.lineno}${e.colno>0?`:${e.colno}`:``}`:``}`:``;return r?`${n} (${r})`:n}function Ri(e,t={}){let n=zi(e);try{return new Worker(n.url,{...t,type:`module`})}finally{n.revoke()}}function zi(e){let t=Bi(),n=Vi(e),r=new Blob([`const pendingMessages = [];
442
+ `)}function xr(e,t){let n=e.replaceAll(`-`,`_`);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(n))throw Error(`Cargo dependency '${t}' has unsupported crate name '${e}'.`);return n}function Sr(e){return e.endsWith(`.rs`)||e.endsWith(`.md`)||e.endsWith(`.txt`)||e===`Cargo.toml`}function Cr(e,t,n){let r=e.match(/^\s*package\s+([A-Za-z_][A-Za-z0-9_]*)\b/m);if(!r)throw Error(`Go dependency '${t}' source '${n}' has no package declaration.`);return r[1]}function wr(e){let t=[],n=/\bimport\s*\(([\s\S]*?)\)/g;for(let r of e.matchAll(n))for(let e of r[1].matchAll(/(?:^|\n)\s*(?:[._A-Za-z][A-Za-z0-9_]*\s+)?["`]([^"`]+)["`]/g))t.push(e[1]);let r=e.replace(n,``);for(let e of r.matchAll(/\bimport\s+(?:[._A-Za-z][A-Za-z0-9_]*\s+)?["`]([^"`]+)["`]/g))t.push(e[1]);return t}let W,Tr;const Er=new Map,G=new Wn(67108864),Dr=new TextEncoder,Or=new TextDecoder,kr=55e3;async function Ar(e,t,n,r){if(e.config.target!==`wasip1`&&e.config.target!==`wasix`)throw Error(`The output-ready Clang compiler accepts only wasip1 or wasix targets.`);if(e.config.language!==`c`&&e.config.language!==`cpp`)throw Error(`The output-ready Clang compiler accepts only C and C++ projects.`);let i=performance.now();r.progress(n,`loading-toolchain`,`Loading pinned Clang 22 toolchain`,.15);let{pins:a,compiler:o,linker:s}=await Pr(n,r),c=`${e.config.language}-${e.config.optimization}`,l=a.configs[c];if(!l)throw Error(`The pinned Clang manifest has no '${c}' configuration.`);r.trace(n,`filesystemPrepare`,`start`);let u=new Map(e.files.map(e=>[e.path,Dr.encode(e.content)])),d=dr(e);for(let[e,t]of d.files)u.set(e,t);u.set(Dn,Dr.encode(On));let f=new ce(Object.fromEntries([...u].map(([e,t])=>[`/${e}`,t])));try{await Gr(f,`/build`),await Gr(f,`/.wasm-oj`),r.trace(n,`filesystemPrepare`,`end`);let p=e.config.language===`cpp`,m=p?/\.(?:cc|cpp|cxx)$/:/\.c$/,h=e.files.filter(e=>m.test(e.path)).map(e=>e.path);h.includes(e.config.entry)||h.unshift(e.config.entry);let g=[...h,...d.sources,Dn],_=``,v=``,y=[],b=[],ee=0,te=0,x=0,S=0,C=0,w=0,T=0,ne=0,E=[],D=p?Lr(e):void 0,O=`/project/build/wasm-oj.pch`,re,ie=!1;if(D){let t=u.get(D),i;if(er(Or.decode(t))){ie=!0;let e=`wasm-oj.libcxx.hpp`;if(u.has(e))throw Error(`C++ projects using WASM-OJ's admitted libc++ PCH may not define reserved path '${e}'.`);u.set(e,t),await f.writeFile(`/${e}`,t),i=await Ir(c,n,r),x+=1,await f.writeFile(O.slice(8),i)}else{let s=await G.unitManifestKey(a,c,D,t),p=await V(JSON.stringify({baseKey:s,mode:`c++-header`})),m=await G.lookupPch(p,u);if(m)i=m,x+=1,await f.writeFile(O.slice(8),i);else{S+=1;let t=`/project/build/wasm-oj.pch.d`,s=Nn(l.cc1,a.placeholders,D,O);s.splice(s.length-1,0,...d.includeDirectories.flatMap(e=>[`-I`,e])),s.push(`-dependency-file`,t,`-MT`,O);let c=await Rr(o,s,f,r,n,O,t);if(E.push(...c.diagnostics),_+=c.stdout,v+=c.stderr,!c.pch||!c.dependency)return qr(e,_,v,1,`clang`,E);i=c.pch,await G.storePch(p,Gn(c.dependency),u,i)&&(C+=1)}}re={kind:`pch`,identity:`pch:${D}`,digest:await V(i)}}r.progress(n,`compiling`,`Compiling ${g.length} translation units with SDK-direct cc1`,.35),r.trace(n,`commandStart`,`start`),r.trace(n,`commandStart`,`end`),r.trace(n,`commandWait`,`start`),r.trace(n,`projectCompile`,`start`);for(let[t,i]of g.entries()){i===`.wasm-oj/determinism.c`&&(r.trace(n,`projectCompile`,`end`),r.trace(n,`runtimeShimCompile`,`start`));let s=`/project/build/${String(t).padStart(4,`0`)}.o`,p=`/project/build/${String(t).padStart(4,`0`)}.d`,m=u.get(i);if(!m)throw Error(`SDK-direct Clang is missing source bytes for '${i}'.`);let h=await G.unitManifestKey(a,c,i,m),g=i===`.wasm-oj/determinism.c`?void 0:re,x=g?await V(JSON.stringify({baseManifestKey:h,pch:g.digest})):h,S=g?[g]:[],C=await G.lookup(x,u,S);if(C){await f.writeFile(s.slice(8),C),ee+=1,y.push(s),b.push({kind:`object`,identity:i,bytes:C});continue}let w=Mn(l.cc1,a.placeholders,i,s);w.splice(w.length-1,0,...d.includeDirectories.flatMap(e=>[`-I`,e])),g&&w.splice(w.length-1,0,`-include-pch`,O,...ie?[`-fno-validate-pch`]:[]),w.push(`-dependency-file`,p,`-MT`,s);let T=await zr(o,w,f,r,n,i===`.wasm-oj/determinism.c`?`runtimeShimSpawn`:`projectSpawn`,i===`.wasm-oj/determinism.c`?`runtimeShimWait`:`projectWait`,i===`.wasm-oj/determinism.c`?`runtimeShimOutputReady`:`projectOutputReady`,s,p);if(E.push(...T.diagnostics),_+=T.stdout,v+=T.stderr,!T.object||!T.dependency)return r.trace(n,i===`.wasm-oj/determinism.c`?`runtimeShimCompile`:`projectCompile`,`end`),r.trace(n,`commandWait`,`end`),qr(e,_,v,1,`clang`,E);T.diagnostics.length===0&&await G.store(x,Gn(T.dependency),u,T.object,S)&&(te+=1),y.push(s),b.push({kind:`object`,identity:i,bytes:T.object})}r.trace(n,`runtimeShimCompile`,`end`),r.progress(n,`linking`,`Linking SDK-direct Clang objects`,.8),r.trace(n,`link`,`start`);let ae=`/project/build/app.wasm`,oe=Pn(l.link,a.placeholders,y,ae),se=await V(JSON.stringify({pins:a.sourceSha256,package:P,target:e.config.target,arguments:l.link})),k=await G.lookupLink(se,b),ce=``,le=``;if(k)w+=1;else{T+=1;let e=await Br(s,oe,f,r,n,`linkSpawn`,`linkWait`,`linkOutputReady`,ae);ce=e.stdout,le=e.stderr,k=e.value,k&&await G.storeLink(se,b,k)&&(ne+=1)}return r.trace(n,`link`,`end`),r.trace(n,`commandWait`,`end`),_+=ce,v+=le,k?(r.progress(n,`linking`,`Reading linked WebAssembly module`,.95),r.trace(n,`artifactReadback`,`start`),r.trace(n,`artifactReadback`,`end`),{success:!0,diagnostics:E,artifact:{kind:`wasm`,wasmOjContract:2,id:crypto.randomUUID(),projectId:e.id,cacheKey:t,name:`${e.name}.wasm`,language:e.config.language,target:e.config.target,optimization:e.config.optimization,createdAt:Date.now(),durationMs:performance.now()-i,size:k.byteLength,toolchains:z(e.config.language),costProfile:pn(e.config.language,e.config.target,e.config.optimization),...e.dependencies===void 0?{}:{dependencyLockSha256:e.dependencies.lockSha256},bytes:k},stdout:_,stderr:v,cacheHit:!1,buildGraph:{hits:{pch:x,object:ee,"link-result":w},misses:{pch:S,object:g.length-ee,"link-result":T},stores:{pch:C,object:te,"link-result":ne}}}):qr(e,_,v,1,`wasm-ld`,E)}finally{f.free()}}function jr(){return G.exportState()}function Mr(e){return G.restoreState(e)}async function Nr(){let e=W;if(W=void 0,!e)return;let{pkg:t,compiler:n,linker:r}=await e;n.free(),r.free(),t.free()}async function Pr(e,t){if(W){for(let n of[`toolchainFetch`,`toolchainDecode`,`toolchainLoad`])t.trace(e,n,`start`),t.trace(e,n,`end`);return W}W=(async()=>{t.trace(e,`toolchainFetch`,`start`);let[n,r]=await Promise.all([t.loadToolchainAsset(ze),t.loadToolchainFile(Be)]);t.trace(e,`toolchainFetch`,`end`),t.trace(e,`toolchainDecode`,`start`);let i=await jn(r),a=await V(n);if(a!==`21ded33b9c6d4e1aaad5528c940bdaf6c3e84be77ea8f522f018ca7289a2a224`)throw Error(`Pinned Clang package digest mismatch: received ${a}.`);t.trace(e,`toolchainDecode`,`end`),t.trace(e,`toolchainLoad`,`start`);let o=await we.fromFile(n,t.runtime),s=Fr(o,i.command),c=Fr(o,i.linkerCommand);return t.trace(e,`toolchainLoad`,`end`),{pkg:o,pins:i,compiler:s,linker:c}})();try{return await W}catch(e){throw W=void 0,e}}function Fr(e,t){let n=e.commands[t];if(!n)throw Error(`The SDK-direct Clang package does not expose '${t}'.`);return n}async function Ir(e,t,n){Tr??=n.loadToolchainFile(He).then($n);let r=Er.get(e);r||(r=Tr.then(async r=>{let i=r.profiles[e];n.progress(t,`loading-toolchain`,`Loading admitted libc++ PCH (${e})`,.25);let a=await n.loadToolchainAsset(`/toolchains/${i.path}`);if(a.byteLength!==i.byteLength||await V(a)!==i.sha256)throw Error(`Pinned libc++ PCH '${e}' failed decompressed integrity verification.`);return a}),Er.set(e,r));try{return await r}catch(t){throw Er.delete(e),t}}function Lr(e){let t=e.files.map(e=>e.path).filter(e=>e.split(`/`).at(-1)===`wasm-oj.pch.hpp`);if(t.length>1)throw Error(`C++ projects may contain at most one wasm-oj.pch.hpp; received ${t.join(`, `)}.`);return t[0]}function Rr(e,t,n,r,i,a,o){let s=new ir;return Vr(e,t,n,r,i,`projectSpawn`,`projectWait`,`projectOutputReady`,async e=>{let[t,r]=await Promise.all([Kr(n,a),Kr(n,o)]),i=s.observe(t?.byteLength?t:void 0,performance.now());return i&&r?.byteLength&&Or.decode(r).endsWith(`
443
+ `)?{pch:i,dependency:r}:/\d+ errors? generated\.\s*$/.test(e)?{}:void 0}).then(e=>({...e.value,diagnostics:bn(`${e.stderr}\n${e.stdout}`),stdout:e.stdout,stderr:e.stderr}))}function zr(e,t,n,r,i,a,o,s,c,l){return Vr(e,t,n,r,i,a,o,s,async e=>{let[t,r]=await Promise.all([Wr(n,c),Kr(n,l)]);return t&&r?.byteLength&&Or.decode(r).endsWith(`
444
+ `)?{object:t,dependency:r}:/\d+ errors? generated\.\s*$/.test(e)?{}:void 0}).then(e=>({...e.value,diagnostics:bn(`${e.stderr}\n${e.stdout}`),stdout:e.stdout,stderr:e.stderr}))}function Br(e,t,n,r,i,a,o,s,c){return Vr(e,t,n,r,i,a,o,s,async e=>await Wr(n,c)||(/(?:wasm-ld|lld): error:/i.test(e)?null:void 0)).then(e=>({...e,value:e.value??void 0}))}async function Vr(e,t,n,r,i,a,o,s,c){r.trace(i,a,`start`);let l=await e.run({args:t,cwd:`/project`,env:{PATH:`/bin`,SOURCE_DATE_EPOCH:`946684800`,TZ:`UTC`,LC_ALL:`C`},mount:{"/project":n}});r.trace(i,a,`end`),r.trace(i,o,`start`),r.trace(i,s,`start`);let u=Hr(l.stdout),d=Hr(l.stderr),f=performance.now()+kr;try{for(;performance.now()<f;){let e=await c(d.text());if(e!==void 0)return await new Promise(e=>setTimeout(e,0)),{value:e,stdout:u.text(),stderr:d.text()};await new Promise(e=>setTimeout(e,5))}throw Error(`Compiler stage did not produce a complete output within ${kr} ms.`)}finally{r.trace(i,s,`end`),r.trace(i,o,`end`),await Promise.all([u.cancel(),d.cancel()]),l.free()}}function Hr(e){let t=e.getReader(),n=[];return(async()=>{try{for(;;){let e=await t.read();if(e.done)return;let r=e.value instanceof Uint8Array?e.value:new Uint8Array(e.value);n.push(r.slice())}}catch{}})(),{text:()=>Or.decode(Ur(n)),cancel:async()=>{try{await t.cancel()}catch{}}}}function Ur(e){let t=new Uint8Array(e.reduce((e,t)=>e+t.byteLength,0)),n=0;for(let r of e)t.set(r,n),n+=r.byteLength;return t}async function Wr(e,t){let n=await Kr(e,t);if(!n||n.byteLength<=8)return;let r=new Uint8Array(n.byteLength);return r.set(n),WebAssembly.validate(r.buffer)?r:void 0}async function Gr(e,t){try{await e.createDir(t)}catch(e){if(!String(e).toLowerCase().includes(`exist`))throw e}}async function Kr(e,t){let n=t.startsWith(`/project/`)?t.slice(8):t;try{return await e.readFile(n)}catch{return}}function qr(e,t,n,r,i,a){return{success:!1,diagnostics:Sn(a??bn(`${n}\n${t}`),{file:e.config.entry,source:i,message:n.trim()||`${i} exited with code ${r}.`}),stdout:t,stderr:n,cacheHit:!1}}const Jr=new TextEncoder;let Yr,Xr;function Zr(e){Xr=e}function K(e,t,n,r){q().progress(e,t,n,r)}function q(){if(!Xr)throw Error(`Wasmer compiler host is not configured.`);return Xr}function Qr(){return q().getRuntime()}async function $r(){Yr??=q().loadToolchainAsset(st);try{return we.fromWasm(await Yr,Qr())}catch(e){throw Yr=void 0,e}}function ei(e,t,n,r,i,a){return{wasmOjContract:2,id:crypto.randomUUID(),projectId:e.id,cacheKey:t,name:`${e.name}.${e.config.target===`wasip1`?`wasm`:`wasix.wasm`}`,language:e.config.language,target:e.config.target,optimization:e.config.optimization,createdAt:Date.now(),durationMs:performance.now()-n,size:r,toolchains:i,costProfile:pn(e.config.language,e.config.target,e.config.optimization,a),...e.dependencies===void 0?{}:{dependencyLockSha256:e.dependencies.lockSha256}}}async function ti(e,t,n){let r=performance.now();K(n,`compiling`,`Compiling with rustc ${I}`,.2);let i=fr(e),a=await q().compileRust({entry:e.config.entry,files:[...e.files,...i.files],optimization:e.config.optimization,dependencies:i.crates,rootExterns:i.roots});if(!a.success||!a.wasm)return{success:!1,diagnostics:Sn(a.diagnostics,{file:e.config.entry,source:`rustc`,message:a.stderr.trim()||`rustc failed without a diagnostic.`}),stdout:a.stdout,stderr:a.stderr,cacheHit:!1};let o=a.wasm,s={kind:`wasm`,...ei(e,t,r,o.byteLength,z(`rust`)),bytes:o};return{success:!0,diagnostics:a.diagnostics,artifact:s,stdout:a.stdout,stderr:a.stderr,cacheHit:!1}}function ni(e){return Object.values(e).reduce((e,t)=>e+(typeof t==`string`?Jr.encode(t).byteLength:t.byteLength),0)}async function ri(e,t,n){let r=performance.now(),i=lr(e);K(n,`compiling`,`Packaging Python sources`,.55);let a=Object.fromEntries(e.files.map(e=>[e.path,e.content]));Object.assign(a,i),a[`.wasm-oj/deterministic_runner.py`]=kn;let o=e.config.entry,s=gn(e,Ze,`python`,o);a[`wasm-oj.manifest.json`]=s;let c=_n(a);return{success:!0,diagnostics:[],artifact:{kind:`runtime-bundle`,...ei(e,t,r,ni(c),z(`python`)),name:`${e.name}.python-${e.config.target}.json`,runtimePackage:Ze,command:`python`,entry:o,files:c,manifest:s},stdout:``,stderr:``,cacheHit:!1}}async function ii(e,t,n){let r=performance.now();K(n,`compiling`,`Compiling with Go ${L}`,.3);let i=pr(e),a=await q().compileGo({entry:e.config.entry,files:e.files,dependencyFiles:i.files,optimization:e.config.optimization,dependencies:i.packages});if(!a.success||!a.wasm)return{success:!1,diagnostics:Sn(a.diagnostics,{file:e.config.entry,source:`go`,message:a.stderr.trim()||`Go compilation failed without a diagnostic.`}),stdout:a.stdout,stderr:a.stderr,cacheHit:!1};let o={kind:`wasm`,...ei(e,t,r,a.wasm.byteLength,z(`go`)),bytes:a.wasm};return{success:!0,diagnostics:a.diagnostics,artifact:o,stdout:a.stdout,stderr:a.stderr,cacheHit:!1}}async function ai(e,t,n){let r=performance.now(),i=e.files.find(t=>t.path===e.config.entry);if(!i||!i.path.endsWith(`.java`))return{success:!1,diagnostics:[{severity:`error`,message:`The Java entry must be a .java source file.`,file:e.config.entry,line:1,column:1,source:`project`}],stdout:``,stderr:``,cacheHit:!1};K(n,`compiling`,`Compiling Java ${i.path}`,.3);let a=await q().compileJava({entry:e.config.entry,files:e.files,optimization:e.config.optimization});if(!a.success||!a.wasm)return{success:!1,diagnostics:Sn(a.diagnostics,{file:e.config.entry,source:`java`,message:a.stderr.trim()||`Java compilation failed without a diagnostic.`}),stdout:a.stdout,stderr:a.stderr,cacheHit:!1};let o={kind:`wasm`,...ei(e,t,r,a.wasm.byteLength,z(`java`),Pt(`java`)),bytes:a.wasm};return{success:!0,diagnostics:a.diagnostics,artifact:o,stdout:a.stdout,stderr:a.stderr,cacheHit:!1}}function oi(e){return e.endsWith(`.ts`)?e.slice(0,-3)+`.js`:e}function si(e){let t=e.config.language===`typescript`?`.ts`:`.js`;return e.files.filter(e=>e.path.endsWith(t))}function ci(e){return si(e).filter(e=>!e.path.endsWith(`.d.ts`))}async function li(e,t){let n=si(e),r=ci(e),i=ur(e);K(t,`loading-toolchain`,`Loading TypeScript ${ot}/WASI`);let a=(await $r()).entrypoint;if(!a)throw Error(`The TypeScript/WASI compiler has no executable entrypoint.`);let o=r.map(e=>oi(e.path)),s=`/project/.wasm-oj/quickjs.d.ts`,c=await a.run({stdin:JSON.stringify({files:{...Object.fromEntries(e.files.map(e=>[`/project/${e.path}`,e.content])),...Object.fromEntries(Object.entries(i).filter(([,e])=>typeof e==`string`).map(([e,t])=>[`/project/${e}`,t])),[s]:Cn+wn+Tn},sources:[s,...n.map(e=>`/project/${e.path}`),...Object.entries(i).filter(([e,t])=>e.endsWith(`.d.ts`)&&typeof t==`string`).map(([e])=>`/project/${e}`)],outputs:o.map(e=>`/project/build/${e}`)})}),l=await cn(c,un,{collectStderr:!0}).finally(()=>c.free()),u=l.message,d={};if(u)for(let e of o){let t=u.files[`/project/build/${e}`];t!==void 0&&(d[e]=t)}return Object.assign(d,i),{files:d,stderr:l.stderr,response:u}}async function ui(e,t,n){let r=performance.now();if(!ci(e).some(t=>t.path===e.config.entry))return{success:!1,diagnostics:[{severity:`error`,message:`The ${e.config.language===`typescript`?`.ts`:`.js`} entry file is not a supported executable source.`,file:e.config.entry,line:1,column:1,source:`project`}],stdout:``,stderr:``,cacheHit:!1};let i,a=[],o=``;if(e.config.language===`javascript`)K(n,`compiling`,`Preparing JavaScript modules`,.5),i={...Object.fromEntries(ci(e).map(e=>[e.path,e.content])),...ur(e)};else{K(n,`compiling`,`Compiling TypeScript with TypeScript/WASI`,.5);let t=await li(e,n);i=t.files,o=t.stderr,a=xn(t.response?.diagnostics??``);let r=ci(e).every(e=>Object.hasOwn(i,oi(e.path)));if(!t.response||t.response.status!==0||!r||a.some(e=>e.severity===`error`))return{success:!1,diagnostics:Sn(a,{file:e.config.entry,source:`typescript`,message:o.trim()||t.response?.diagnostics.trim()||`TypeScript 7.0.2 did not return every compiled output.`}),stdout:``,stderr:o,cacheHit:!1}}let s=oi(e.config.entry),c=gn(e,rt,`qjs`,s);i[`wasm-oj.manifest.json`]=c;let l=_n(i),u={kind:`runtime-bundle`,...ei(e,t,r,ni(l),z(e.config.language)),name:`${e.name}.${e.config.language===`typescript`?`typescript`:`javascript`}-${e.config.target}.json`,runtimePackage:rt,command:`qjs`,entry:s,files:l,manifest:c};return{success:!0,diagnostics:a,artifact:u,stdout:``,stderr:o,cacheHit:!1}}async function di(e,t,n){let r={...e,files:zt(e.files)};if(sr(r),K(n,`checking`,`Validating project configuration`,.05),!r.files.some(e=>e.path===r.config.entry))return{success:!1,diagnostics:[{severity:`error`,message:`Configured entry file does not exist.`,file:r.config.entry,line:1,column:1,source:`project`}],stdout:``,stderr:``,cacheHit:!1};if(r.config.language===`c`||r.config.language===`cpp`){let e=q();return Ar(r,t,n,{runtime:e.getRuntime(),loadToolchainAsset:e.loadToolchainAsset,loadToolchainFile:e.loadToolchainFile,progress:e.progress,trace:e.trace})}return J.driver(r.config.language).build({project:r,cacheKey:t,requestId:n})}const J=new En;J.register({id:`rustc`,languages:[`rust`],build:({project:e,cacheKey:t,requestId:n})=>ti(e,t,n)}),J.register({id:`cpython`,languages:[`python`],build:({project:e,cacheKey:t,requestId:n})=>ri(e,t,n)}),J.register({id:`typescript`,languages:[`javascript`,`typescript`],build:({project:e,cacheKey:t,requestId:n})=>ui(e,t,n)}),J.register({id:`go`,languages:[`go`],build:({project:e,cacheKey:t,requestId:n})=>ii(e,t,n)}),J.register({id:`teavm-java`,languages:[`java`],build:({project:e,cacheKey:t,requestId:n})=>ai(e,t,n)});function fi(){Yr=void 0}function pi(e){return(e.config.target===`wasip1`||e.config.target===`wasix`)&&(e.config.language===`c`||e.config.language===`cpp`)}function mi(e){if(!pi(e))return 0;let t=e.config.language===`cpp`?/\.(?:cc|cpp|cxx)$/:/\.c$/,n=new Set(e.files.filter(e=>t.test(e.path)).map(e=>e.path));n.add(e.config.entry);let r=e.config.language===`cpp`?e.files.find(e=>e.path.split(`/`).at(-1)===`wasm-oj.pch.hpp`):void 0,i=r&&!er(r.content)?1:0;return n.size+i+2}function hi(e){let t=mi(e);if(t>8)throw Error(`The browser Clang project requires ${t} compiler stages; the verified per-Worker limit is 8.`);return t}const gi=`manifests`,Y=`metadata`,_i=`blobs`,X=`clang`,vi=new TextEncoder;var yi=class{adapter;restoration;ready=!1;persistedGeneration=0;constructor(e){this.adapter=e}async ensureLoaded(){if(!this.ready){this.restoration??=this.loadOnce();try{await this.restoration}catch(e){throw this.restoration=void 0,e}}}async persistIfDirty(){if(!this.ready)return!1;let e=this.adapter.capture(),t=e.manifest.generation;if(t===this.persistedGeneration)return!1;if(t<this.persistedGeneration)throw Error(`Clang build graph generation moved backwards within one compiler Worker.`);let n=await this.adapter.save(e);return this.persistedGeneration=t,n}async loadOnce(){let e=await this.adapter.load();e&&await this.adapter.restore(e);let t=this.adapter.capture().manifest.generation;if(e&&t!==e.manifest.generation)throw Error(`Restored Clang build graph generation does not match persisted state.`);this.persistedGeneration=t,this.ready=!0}};async function bi(){let e=await Si();try{let t=e.transaction([gi,Y,_i],`readonly`),n=t.objectStore(gi).get(X),r=t.objectStore(Y).get(X),[i,a]=await Promise.all([Ci(n),Ci(r)]);if(i===void 0&&a===void 0){await wi(t);return}let o=Oi(i),s=ki(a);if(s.generation!==o.generation)throw Error(`Persisted Clang build graph generation metadata does not match its manifest.`);let c=[...new Set(o.entries.map(e=>e.outputDigest))].sort(),l=t.objectStore(_i),u=await Promise.all(c.map(e=>Ci(l.get(e))));await wi(t);let d=u.map((e,t)=>Ai(e,c[t]));return Mi(ji(o),d,s),await Ti(e,s),{manifest:ji(o),blobs:d.map(({digest:e,bytes:t})=>({digest:e,bytes:t}))}}finally{e.close()}}async function xi(e){let t=Ei(e),n=Di(e),r=await Si();try{let e=r.transaction([gi,Y,_i],`readwrite`),i=e.objectStore(Y),a=await Ci(i.get(X));if(a!==void 0&&ki(a).generation===t.generation)return await wi(e),!1;let o=e.objectStore(_i),s=new Set((await Ci(o.getAllKeys())).map(String)),c=new Set(n.map(e=>e.digest));for(let e of n)s.has(e.digest)||o.add({digest:e.digest,byteLength:e.bytes.byteLength,bytes:e.bytes});for(let e of s)c.has(e)||o.delete(e);let l={id:X,...t},u=Ni(n),d=Pi(t),f=Fi(u,d);return e.objectStore(gi).put(l),i.put({id:X,generation:t.generation,blobBytes:u,manifestBytes:d,byteLength:f,lastAccessedAt:Date.now()}),await wi(e),!0}finally{r.close()}}function Si(){return new Promise((e,t)=>{let n=indexedDB.open(Fe.incrementalBuildCache,2);n.addEventListener(`upgradeneeded`,()=>{let e=n.result;for(let t of[...e.objectStoreNames])e.deleteObjectStore(t);e.createObjectStore(gi,{keyPath:`id`}),e.createObjectStore(Y,{keyPath:`id`}),e.createObjectStore(_i,{keyPath:`digest`})}),n.addEventListener(`success`,()=>e(n.result),{once:!0}),n.addEventListener(`error`,()=>{t(n.error??Error(`Unable to open the incremental build cache.`))},{once:!0}),n.addEventListener(`blocked`,()=>{t(Error(`Incremental build cache open is blocked by another tab.`))},{once:!0})})}function Ci(e){return new Promise((t,n)=>{e.addEventListener(`success`,()=>t(e.result),{once:!0}),e.addEventListener(`error`,()=>n(e.error??Error(`IndexedDB request failed.`)),{once:!0})})}function wi(e){return new Promise((t,n)=>{e.addEventListener(`complete`,()=>t(),{once:!0}),e.addEventListener(`abort`,()=>n(e.error??Error(`IndexedDB transaction aborted.`)),{once:!0}),e.addEventListener(`error`,()=>n(e.error??Error(`IndexedDB transaction failed.`)),{once:!0})})}async function Ti(e,t){let n=e.transaction(Y,`readwrite`);n.objectStore(Y).put({...t,lastAccessedAt:Date.now()}),await wi(n)}function Ei(e){if(!e||typeof e!=`object`||Array.isArray(e)||Object.keys(e).sort().join(`,`)!==`blobs,manifest`)throw Error(`Clang build graph state has an invalid shape.`);return ji(Oi({id:X,...e.manifest}))}function Di(e){if(!Array.isArray(e.blobs))throw Error(`Clang build graph state blobs must be an array.`);let t=e.blobs.map(e=>{if(!e||typeof e!=`object`||Array.isArray(e)||Object.keys(e).sort().join(`,`)!==`bytes,digest`)throw Error(`Clang build graph state contains a malformed blob.`);if(typeof e.digest!=`string`||!/^[0-9a-f]{64}$/.test(e.digest)||!(e.bytes instanceof Uint8Array))throw Error(`Clang build graph state contains invalid blob metadata.`);return e});for(let e=0;e<t.length;e+=1)if(e>0&&t[e-1].digest>=t[e].digest)throw Error(`Clang build graph state blobs are not canonical or contain duplicates.`);let n=new Set(e.manifest.entries.map(e=>e.outputDigest));if(n.size!==t.length||t.some(e=>!n.has(e.digest)))throw Error(`Clang build graph state blobs do not exactly match its manifest references.`);return t}function Oi(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Persisted Clang build graph manifest has an invalid shape.`);let t=e;if(Object.keys(t).sort().join(`,`)!==`entries,generation,id,schema,version`||t.id!==X||t.schema!==j.incrementalBuildGraph||t.version!==2||!Number.isSafeInteger(t.generation)||t.generation<0||!Array.isArray(t.entries))throw Error(`Persisted Clang build graph manifest does not use the active storage contract.`);return t}function ki(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Persisted Clang build graph metadata has an invalid shape.`);let t=e;if(Object.keys(t).sort().join(`,`)!==`blobBytes,byteLength,generation,id,lastAccessedAt,manifestBytes`||t.id!==X||!Z(t.generation)||!Z(t.blobBytes)||!Z(t.manifestBytes)||!Z(t.byteLength)||!Z(t.lastAccessedAt)||Fi(t.blobBytes,t.manifestBytes)!==t.byteLength)throw Error(`Persisted Clang build graph metadata has invalid storage accounting.`);return t}function Ai(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Persisted Clang build graph blob '${t}' is missing.`);let n=e;if(Object.keys(n).sort().join(`,`)!==`byteLength,bytes,digest`||n.digest!==t||!Z(n.byteLength)||!(n.bytes instanceof Uint8Array)||n.bytes.byteLength!==n.byteLength)throw Error(`Persisted Clang build graph blob '${t}' has invalid metadata.`);return n}function ji(e){return{schema:e.schema,version:e.version,generation:e.generation,entries:e.entries}}function Mi(e,t,n){if(Ni(t)!==n.blobBytes||Pi(e)!==n.manifestBytes)throw Error(`Persisted Clang build graph storage accounting does not match its records.`)}function Ni(e){let t=0,n=new Set;for(let r of e){if(n.has(r.digest))throw Error(`Clang build graph repeats blob '${r.digest}'.`);n.add(r.digest),t=Fi(t,r.bytes.byteLength)}return t}function Pi(e){return vi.encode(JSON.stringify(e)).byteLength}function Fi(e,t){let n=e+t;if(!Number.isSafeInteger(n)||n<0)throw Error(`Incremental build graph byte length exceeds the safe integer range.`);return n}function Z(e){return Number.isSafeInteger(e)&&e>=0}Object.freeze([`wasi_snapshot_preview1.random_get`,`wasi_snapshot_preview1.clock_time_get`]),Object.freeze({version:I,packageAsset:lt,packageCompressedSha256:dt,packageSha256:ft,manifestAsset:ut,manifestSha256:pt,target:`wasm32-wasip1-threads`,edition:`2024`});var Ii=``+new URL(`rustc-stage.worker-BJ5u-1c2.js`,import.meta.url).href,Li=``+new URL(`go-stage.worker-BWRH2mts.js`,import.meta.url).href;`${L.split(`.`).slice(0,2).join(`.`)}`,Object.freeze({version:L,target:`wasip1/wasm`,packageAsset:mt,packageCompressedSha256:_t,packageSha256:vt,manifestAsset:ht,manifestSha256:yt,standardLibraryAsset:gt,standardLibraryCompressedSha256:bt,standardLibrarySha256:xt,compilerSha256:St,linkerSha256:Ct});var Ri=``+new URL(`java-stage.worker-COWR2SIP.js`,import.meta.url).href;Object.freeze({version:wt,package:Tt,compilerAsset:Et,compilerSha256:kt,compileClasslibAsset:Dt,compileClasslibSha256:At,runtimeClasslibAsset:Ot,runtimeClasslibSha256:jt});var zi=class{options;worker;pending;fault;disposed=!1;closing=!1;workerTerminated=!1;constructor(e){if(!Number.isFinite(e.timeoutMs)||e.timeoutMs<=0)throw RangeError(`A persistent isolated stage requires a positive finite timeout.`);if(!e.stageLabel.trim())throw Error(`A persistent isolated stage requires a non-empty label.`);this.options=e,this.worker=e.createWorker(),this.worker.addEventListener(`message`,this.onMessage),this.worker.addEventListener(`error`,this.onError),this.worker.addEventListener(`messageerror`,this.onMessageError)}run(e){if(this.disposed)throw Error(`The persistent ${this.options.stageLabel} stage is disposed.`);if(this.closing)throw Error(`The persistent ${this.options.stageLabel} stage is shutting down.`);if(this.fault)throw this.fault;if(this.pending)throw Error(`The persistent ${this.options.stageLabel} stage accepts one request at a time.`);return new Promise((t,n)=>{let r=setTimeout(()=>{this.fail(Error(`The persistent ${this.options.stageLabel} stage exceeded ${this.options.timeoutMs} ms.`))},this.options.timeoutMs);this.pending={kind:`run`,resolve:t,reject:n,timer:r};try{this.worker.postMessage(e)}catch(e){this.fail(e instanceof Error?e:Error(String(e)))}})}shutdown(e){if(this.disposed)throw Error(`The persistent ${this.options.stageLabel} stage is disposed.`);if(this.closing)throw Error(`The persistent ${this.options.stageLabel} stage is already shutting down.`);if(this.fault)throw this.fault;if(this.pending)throw Error(`The persistent ${this.options.stageLabel} stage cannot shut down during a request.`);return this.closing=!0,new Promise((t,n)=>{let r=setTimeout(()=>{this.fail(Error(`The persistent ${this.options.stageLabel} shutdown exceeded ${this.options.timeoutMs} ms.`))},this.options.timeoutMs);this.pending={kind:`shutdown`,resolve:t,reject:n,timer:r};try{this.worker.postMessage(e)}catch(e){this.fail(e instanceof Error?e:Error(String(e)))}})}dispose(){this.disposed||(this.disposed=!0,this.detach(),this.terminateWorker(),this.rejectPending(Error(`The persistent ${this.options.stageLabel} stage was disposed.`)))}onMessage=e=>{let t=e.data;if(!Bi(t)){this.fail(Error(`The persistent ${this.options.stageLabel} worker returned an invalid response.`));return}let n=this.pending;if(!n){this.fail(Error(`The persistent ${this.options.stageLabel} worker returned an unsolicited response.`));return}if(n.kind===`shutdown`){if(t.type!==`shutdown-complete`){this.fail(Error(t.type===`error`?t.message:`The persistent ${this.options.stageLabel} worker returned an invalid shutdown response.`));return}let e=this.takePending();if(!e||e.kind!==`shutdown`)return;this.disposed=!0,this.detach(),this.terminateWorker(),e.resolve();return}if(t.type===`shutdown-complete`){this.fail(Error(`The persistent ${this.options.stageLabel} worker shut down during an active request.`));return}let r=this.takePending();if(!r||r.kind!==`run`)return;if(t.type===`result`){r.resolve(t.result);return}let i=Error(t.message);t.stack!==void 0&&(i.stack=t.stack),r.reject(i)};onError=e=>{e.preventDefault(),this.fail(Error(Vi(e,`The persistent ${this.options.stageLabel} worker crashed.`)))};onMessageError=()=>{this.fail(Error(`The persistent ${this.options.stageLabel} worker returned an unreadable response.`))};fail(e){this.fault||this.disposed||(this.fault=e,this.detach(),this.terminateWorker(),this.rejectPending(e))}takePending(){let e=this.pending;if(e)return this.pending=void 0,clearTimeout(e.timer),e}rejectPending(e){this.takePending()?.reject(e)}detach(){this.worker.removeEventListener(`message`,this.onMessage),this.worker.removeEventListener(`error`,this.onError),this.worker.removeEventListener(`messageerror`,this.onMessageError)}terminateWorker(){this.workerTerminated||(this.workerTerminated=!0,this.worker.terminate())}};function Bi(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.type===`result`?Object.hasOwn(t,`result`):t.type===`shutdown-complete`?Object.keys(t).length===1:t.type===`error`&&typeof t.message==`string`&&(t.stack===void 0||typeof t.stack==`string`)}function Vi(e,t){let n=e.message||t,r=e.filename?`${e.filename}${e.lineno>0?`:${e.lineno}${e.colno>0?`:${e.colno}`:``}`:``}`:``;return r?`${n} (${r})`:n}function Hi(e,t={}){let n=Ui(e);try{return new Worker(n.url,{...t,type:`module`})}finally{n.revoke()}}function Ui(e){let t=Wi(),n=Gi(e),r=new Blob([`const pendingMessages = [];
445
445
  `,`const queueMessage = (event) => { event.stopImmediatePropagation(); pendingMessages.push(event.data); };
446
446
  `,`globalThis.addEventListener("message", queueMessage);
447
447
  `,`Object.defineProperty(globalThis, "__wasmOjModuleWorkerBaseUrl", { value: ${JSON.stringify(t.href)} });\n`,`try { await import(${JSON.stringify(n)}); } finally { globalThis.removeEventListener("message", queueMessage); }\n`,`for (const data of pendingMessages) globalThis.dispatchEvent(new MessageEvent("message", { data }));
448
- `],{type:`text/javascript`}),i=URL.createObjectURL(r),a=!0;return{url:i,revoke(){a&&(a=!1,URL.revokeObjectURL(i))}}}function Bi(){let e=globalThis.location?.href;if(e){let t=new URL(e);if(t.protocol===`http:`||t.protocol===`https:`)return t;if(t.protocol!==`blob:`)throw Error(`A module Worker requires an HTTP(S) browser base URL.`)}let t=globalThis.__wasmOjModuleWorkerBaseUrl;if(typeof t!=`string`)throw Error(`A module Worker requires a browser base URL.`);let n=new URL(t);if(n.origin===`null`||n.protocol!==`http:`&&n.protocol!==`https:`)throw Error(`A module Worker requires an HTTP(S) browser base URL.`);return n}function Vi(e){let t=Bi(),n;try{n=new URL(e instanceof URL?e.href:e,t)}catch{throw Error(`A module Worker URL must be a valid same-origin HTTP(S) URL.`)}if(n.origin!==t.origin||n.username||n.password||n.search||n.hash)throw Error(`A module Worker URL must be same-origin and contain no credentials, query, or fragment.`);return n.href}var Hi=``+new URL(`wasmer-thread.worker-DKlJE3cb.js`,import.meta.url).href;const Ui=self,Wi=Bi();let Gi,Q,Ki,qi,Ji,Yi,Xi;const Zi=new hi({load:gi,restore:Or,capture:Dr,save:_i});let Qi=!1;function $(e){Ui.postMessage(e)}function $i(e,t,n,r){$({type:`progress`,requestId:e,progress:{phase:t,label:n,progress:r}})}function ea(e,t,n){$({type:`compile-trace`,requestId:e,event:{schema:j.compileTrace,operation:t,state:n,monotonicMs:performance.now()}})}async function ta(e){let t=aa(e),n=await fetch(t);if(!n.ok)throw Error(`Unable to load pinned toolchain asset '${e}' (${n.status}).`);let r=new Uint8Array(await n.arrayBuffer());await ra(e,r);let i=new Response(r).body;if(!i)throw Error(`Pinned toolchain asset '${e}' has no response body.`);let a=i.pipeThrough(new DecompressionStream(`gzip`));return new Uint8Array(await new Response(a).arrayBuffer())}async function na(e){let t=aa(e),n=await fetch(t);if(!n.ok)throw Error(`Unable to load pinned toolchain file '${e}' (${n.status}).`);let r=new Uint8Array(await n.arrayBuffer());return await ra(e,r),r}async function ra(e,t){let{asset:n}=Yt(ia(),e);if(t.byteLength!==n.bytes)throw Error(`Pinned toolchain asset '${e}' has ${t.byteLength} bytes; expected ${n.bytes}.`);let r=await V(t);if(r!==n.sha256)throw Error(`Pinned toolchain asset '${e}' has digest ${r}; expected ${n.sha256}.`)}function ia(){if(!Gi)throw Error(`The compiler toolchain-source registry is not initialized.`);return Gi}function aa(e){return Zt(ia(),e,Wi)}function oa(e){return Xt(ia(),e,Wi).toString()}function sa(e){return Ji??=new Fi({createWorker:()=>Ri(Mi,{name:`wasm-oj-rustc-stage`}),timeoutMs:185e3,stageLabel:`rustc`}),Ji.run({type:`compile`,request:e,assetBaseUrl:oa(lt)})}function ca(e){return Yi??=new Fi({createWorker:()=>Ri(Ni,{name:`wasm-oj-go-stage`}),timeoutMs:185e3,stageLabel:`Go`}),Yi.run({type:`compile`,request:e,assetBaseUrl:oa(mt)})}function la(e){return Xi??=new Fi({createWorker:()=>Ri(Pi,{name:`wasm-oj-java-stage`}),timeoutMs:185e3,stageLabel:`Java`}),Xi.run({type:`compile`,request:e,assetBaseUrl:oa(Et)})}function ua(){qr({getRuntime:()=>{if(!Q)throw Error(`The compiler Wasmer runtime is not initialized for this language.`);return Q},loadToolchainAsset:ta,loadToolchainFile:na,compileRust:sa,compileGo:ca,compileJava:la,progress:$i,trace:ea})}async function da(e,t){if(!crossOriginIsolated)throw Error(`Wasmer requires a cross-origin-isolated page. Serve this app with COOP and COEP headers.`);ea(e,`workerInitialize`,`start`),$i(e,`initializing`,`Starting compiler worker`,.2),Gi=Jt(t),ua(),$i(e,`initializing`,`Compiler worker ready`,1),ea(e,`workerInitialize`,`end`)}function fa(e){return e===`c`||e===`cpp`||e===`javascript`||e===`typescript`}async function pa(e){if(!Q){Ki??=(async()=>{$i(e,`initializing`,`Starting Wasmer compiler runtime`,.1);let t=zi(new URL(Hi,Wi));qi=t;try{await Me({log:`warn`,module:new URL(Pe,Wi),workerUrl:t.url}),Q=new ge({registry:null})}catch(e){throw qi===t&&(qi=void 0),t.revoke(),e}$i(e,`initializing`,`Wasmer compiler runtime ready`,.2)})();try{await Ki}catch(e){throw Ki=void 0,e}}}async function ma(e){fa(e.project.config.language)&&await pa(e.requestId),li(e.project)&&(await Zi.ensureLoaded(),di(e.project));let t=await si(e.project,e.cacheKey,e.requestId);return li(e.project)&&await Zi.persistIfDirty(),t}async function ha(){if(Qi)throw Error(`The compiler Worker is already quiescing.`);Qi=!0;let e=Ji,t=Yi,n=Xi;Ji=void 0,Yi=void 0,Xi=void 0;try{await Promise.all([e?.shutdown({type:`shutdown`}),t?.shutdown({type:`shutdown`}),n?.shutdown({type:`shutdown`,assetBaseUrl:oa(Et)})])}finally{try{await Zi.persistIfDirty(),await kr()}finally{ci(),Q?.free(),Q=void 0,Ki=void 0,qi?.revoke(),qi=void 0}}}Ui.addEventListener(`message`,e=>{let t=e.data;(async()=>{try{switch(t.type){case`initialize`:await da(t.requestId,t.toolchains),$({type:`ready`,requestId:t.requestId});break;case`build`:$({type:`build-result`,requestId:t.requestId,result:await ma(t)});break;case`quiesce`:await ha(),$({type:`quiesced`,requestId:t.requestId}),Ui.close()}}catch(e){let n=e instanceof Error?e:Error(String(e));$({type:`error`,requestId:t.requestId,code:`COMPILER_ERROR`,message:n.message,stack:n.stack})}})()});
448
+ `],{type:`text/javascript`}),i=URL.createObjectURL(r),a=!0;return{url:i,revoke(){a&&(a=!1,URL.revokeObjectURL(i))}}}function Wi(){let e=globalThis.location?.href;if(e){let t=new URL(e);if(t.protocol===`http:`||t.protocol===`https:`)return t;if(t.protocol!==`blob:`)throw Error(`A module Worker requires an HTTP(S) browser base URL.`)}let t=globalThis.__wasmOjModuleWorkerBaseUrl;if(typeof t!=`string`)throw Error(`A module Worker requires a browser base URL.`);let n=new URL(t);if(n.origin===`null`||n.protocol!==`http:`&&n.protocol!==`https:`)throw Error(`A module Worker requires an HTTP(S) browser base URL.`);return n}function Gi(e){let t=Wi(),n;try{n=new URL(e instanceof URL?e.href:e,t)}catch{throw Error(`A module Worker URL must be a valid same-origin HTTP(S) URL.`)}if(n.origin!==t.origin||n.username||n.password||n.search||n.hash)throw Error(`A module Worker URL must be same-origin and contain no credentials, query, or fragment.`);return n.href}var Ki=``+new URL(`wasmer-thread.worker-DKlJE3cb.js`,import.meta.url).href;const qi=self,Ji=Wi();let Yi,Q,Xi,Zi,Qi,$i,ea;const ta=new yi({load:bi,restore:Mr,capture:jr,save:xi});let na=!1;function $(e){qi.postMessage(e)}function ra(e,t,n,r){$({type:`progress`,requestId:e,progress:{phase:t,label:n,progress:r}})}function ia(e,t,n){$({type:`compile-trace`,requestId:e,event:{schema:j.compileTrace,operation:t,state:n,monotonicMs:performance.now()}})}async function aa(e){let t=la(e),n=await fetch(t);if(!n.ok)throw Error(`Unable to load pinned toolchain asset '${e}' (${n.status}).`);let r=new Uint8Array(await n.arrayBuffer());await sa(e,r);let i=new Response(r).body;if(!i)throw Error(`Pinned toolchain asset '${e}' has no response body.`);let a=i.pipeThrough(new DecompressionStream(`gzip`));return new Uint8Array(await new Response(a).arrayBuffer())}async function oa(e){let t=la(e),n=await fetch(t);if(!n.ok)throw Error(`Unable to load pinned toolchain file '${e}' (${n.status}).`);let r=new Uint8Array(await n.arrayBuffer());return await sa(e,r),r}async function sa(e,t){let{asset:n}=Yt(ca(),e);if(t.byteLength!==n.bytes)throw Error(`Pinned toolchain asset '${e}' has ${t.byteLength} bytes; expected ${n.bytes}.`);let r=await V(t);if(r!==n.sha256)throw Error(`Pinned toolchain asset '${e}' has digest ${r}; expected ${n.sha256}.`)}function ca(){if(!Yi)throw Error(`The compiler toolchain-source registry is not initialized.`);return Yi}function la(e){return Zt(ca(),e,Ji)}function ua(e){return Xt(ca(),e,Ji).toString()}function da(e){return Qi??=new zi({createWorker:()=>Hi(Ii,{name:`wasm-oj-rustc-stage`}),timeoutMs:185e3,stageLabel:`rustc`}),Qi.run({type:`compile`,request:e,assetBaseUrl:ua(lt)})}function fa(e){return $i??=new zi({createWorker:()=>Hi(Li,{name:`wasm-oj-go-stage`}),timeoutMs:185e3,stageLabel:`Go`}),$i.run({type:`compile`,request:e,assetBaseUrl:ua(mt)})}function pa(e){return ea??=new zi({createWorker:()=>Hi(Ri,{name:`wasm-oj-java-stage`}),timeoutMs:185e3,stageLabel:`Java`}),ea.run({type:`compile`,request:e,assetBaseUrl:ua(Et)})}function ma(){Zr({getRuntime:()=>{if(!Q)throw Error(`The compiler Wasmer runtime is not initialized for this language.`);return Q},loadToolchainAsset:aa,loadToolchainFile:oa,compileRust:da,compileGo:fa,compileJava:pa,progress:ra,trace:ia})}async function ha(e,t){if(!crossOriginIsolated)throw Error(`Wasmer requires a cross-origin-isolated page. Serve this app with COOP and COEP headers.`);ia(e,`workerInitialize`,`start`),ra(e,`initializing`,`Starting compiler worker`,.2),Yi=Jt(t),ma(),ra(e,`initializing`,`Compiler worker ready`,1),ia(e,`workerInitialize`,`end`)}function ga(e){return e===`c`||e===`cpp`||e===`javascript`||e===`typescript`}async function _a(e){if(!Q){Xi??=(async()=>{ra(e,`initializing`,`Starting Wasmer compiler runtime`,.1);let t=Ui(new URL(Ki,Ji));Zi=t;try{await Me({log:`warn`,module:new URL(Pe,Ji),workerUrl:t.url}),Q=new ge({registry:null})}catch(e){throw Zi===t&&(Zi=void 0),t.revoke(),e}ra(e,`initializing`,`Wasmer compiler runtime ready`,.2)})();try{await Xi}catch(e){throw Xi=void 0,e}}}async function va(e){ga(e.project.config.language)&&await _a(e.requestId),pi(e.project)&&(await ta.ensureLoaded(),hi(e.project));let t=await di(e.project,e.cacheKey,e.requestId);return pi(e.project)&&await ta.persistIfDirty(),t}async function ya(){if(na)throw Error(`The compiler Worker is already quiescing.`);na=!0;let e=Qi,t=$i,n=ea;Qi=void 0,$i=void 0,ea=void 0;try{await Promise.all([e?.shutdown({type:`shutdown`}),t?.shutdown({type:`shutdown`}),n?.shutdown({type:`shutdown`,assetBaseUrl:ua(Et)})])}finally{try{await ta.persistIfDirty(),await Nr()}finally{fi(),Q?.free(),Q=void 0,Xi=void 0,Zi?.revoke(),Zi=void 0}}}qi.addEventListener(`message`,e=>{let t=e.data;(async()=>{try{switch(t.type){case`initialize`:await ha(t.requestId,t.toolchains),$({type:`ready`,requestId:t.requestId});break;case`build`:$({type:`build-result`,requestId:t.requestId,result:await va(t)});break;case`quiesce`:await ya(),$({type:`quiesced`,requestId:t.requestId}),qi.close()}}catch(e){let n=e instanceof Error?e:Error(String(e));$({type:`error`,requestId:t.requestId,code:`COMPILER_ERROR`,message:n.message,stack:n.stack})}})()});
@@ -0,0 +1,2 @@
1
+ var e=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,l.unregister(this),e}free(){let e=this.__destroy_into_raw();O.__wbg_gocompilersession_free(e,0)}compilePipeline(e){return O.gocompilersession_compilePipeline(this.__wbg_ptr,e)}get digest(){let e,t;try{let n=O.gocompilersession_digest(this.__wbg_ptr);return e=n[0],t=n[1],g(n[0],n[1])}finally{O.__wbindgen_free(e,t,1)}}get generation(){let e=O.gocompilersession_generation(this.__wbg_ptr);if(e[2])throw C(e[1]);return e[0]>>>0}constructor(e){let t=O.gocompilersession_new(e);if(t[2])throw C(t[1]);return this.__wbg_ptr=t[0],l.register(this,this.__wbg_ptr,this),this}};Symbol.dispose&&(e.prototype[Symbol.dispose]=e.prototype.free);var t=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,ee.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ee.unregister(this),e}free(){let e=this.__destroy_into_raw();O.__wbg_trap_free(e,0)}static __wbg_wasmer_trap(){O.trap___wbg_wasmer_trap()}};Symbol.dispose&&(t.prototype[Symbol.dispose]=t.prototype.free);function n(){return{__proto__:null,"./runtime-core_bg.js":{__proto__:null,__wbg_BigInt_54837260f97b6890:function(e){return BigInt(e)},__wbg_Error_408e67f47ca7b58b:function(e,t){return Error(g(e,t))},__wbg_Number_3890faa6d3ff057d:function(e){return Number(e)},__wbg_String_8564e559799eccda:function(e,t){let n=S(String(t),O.__wbindgen_malloc,O.__wbindgen_realloc),r=D;h().setInt32(e+4,r,!0),h().setInt32(e+0,n,!0)},__wbg___wbindgen_bigint_get_as_i64_c4ecf48528083721:function(e,t){let n=t,r=typeof n==`bigint`?n:void 0;h().setBigInt64(e+8,b(r)?BigInt(0):r,!0),h().setInt32(e+0,!b(r),!0)},__wbg___wbindgen_boolean_get_c9c83ebd41b34df3:function(e){let t=e,n=typeof t==`boolean`?t:void 0;return b(n)?16777215:+!!n},__wbg___wbindgen_debug_string_a57024b9c6e4a48b:function(e,t){let n=S(f(t),O.__wbindgen_malloc,O.__wbindgen_realloc),r=D;h().setInt32(e+4,r,!0),h().setInt32(e+0,n,!0)},__wbg___wbindgen_function_table_cad76479cff6555c:function(){return O.__wbindgen_export},__wbg___wbindgen_in_ac983077f137f2e6:function(e,t){return e in t},__wbg___wbindgen_is_bigint_8ffbbef442139384:function(e){return typeof e==`bigint`},__wbg___wbindgen_is_function_5e4570eb24ffa122:function(e){return typeof e==`function`},__wbg___wbindgen_is_object_a2790eb24c211ea0:function(e){let t=e;return typeof t==`object`&&!!t},__wbg___wbindgen_is_string_e6f02f0ea5f20a32:function(e){return typeof e==`string`},__wbg___wbindgen_is_undefined_6cff064c44e0d823:function(e){return e===void 0},__wbg___wbindgen_jsval_eq_0a18949a61670320:function(e,t){return e===t},__wbg___wbindgen_jsval_loose_eq_acf2776254a8d832:function(e,t){return e==t},__wbg___wbindgen_lt_94fbb50645571f95:function(e,t){return e<t},__wbg___wbindgen_neg_8a39375bffed95b1:function(e){return-e},__wbg___wbindgen_number_get_136b9679cab35cfb:function(e,t){let n=t,r=typeof n==`number`?n:void 0;h().setFloat64(e+8,b(r)?0:r,!0),h().setInt32(e+0,!b(r),!0)},__wbg___wbindgen_rethrow_fbd2dcd7d2b9ac5f:function(e){throw e},__wbg___wbindgen_shr_cf84c7eeac93e2e0:function(e,t){return e>>t},__wbg___wbindgen_string_get_d154f1e671052120:function(e,t){let n=t,r=typeof n==`string`?n:void 0;var i=b(r)?0:S(r,O.__wbindgen_malloc,O.__wbindgen_realloc),a=D;h().setInt32(e+4,a,!0),h().setInt32(e+0,i,!0)},__wbg___wbindgen_throw_bb96b2010945f0bc:function(e,t){throw Error(g(e,t))},__wbg__wbg_cb_unref_be22cc64ae6946a0:function(e){e._wbg_cb_unref()},__wbg_apply_6cd9daeacef161ce:function(){return y(function(e,t,n){return Reflect.apply(e,t,n)},arguments)},__wbg_apply_cb180996ed7fdae9:function(){return y(function(e,t,n){return e.apply(t,n)},arguments)},__wbg_arrayBuffer_16433f17fbd74397:function(){return y(function(e){return e.arrayBuffer()},arguments)},__wbg_bind_ba1d91a55e59341a:function(e,t,n){return e.bind(t,n)},__wbg_bind_f0a9af73583d6566:function(e,t,n,r){return e.bind(t,n,r)},__wbg_buffer_8117fe4dab119813:function(e){return e.buffer},__wbg_buffer_bc63d6f0ff4af1fc:function(e){return e.buffer},__wbg_byteLength_031910aabf3577e0:function(e){return e.byteLength},__wbg_byteLength_dfbb09ce977c0dad:function(e){return e.byteLength},__wbg_call_1c5886ab9c57d1c7:function(){return y(function(e,t){return e.call(t)},arguments)},__wbg_call_35dba3c747ad7521:function(){return y(function(e,t,n){return e.call(t,n)},arguments)},__wbg_constructor_aaf603909746f45e:function(e){return e.constructor},__wbg_customSections_b6ef655bf3ceaeb6:function(e,t,n){return WebAssembly.Module.customSections(e,g(t,n))},__wbg_done_669171204c3dcae2:function(e){return e.done},__wbg_entries_7774d489e1da5f4f:function(e){return Object.entries(e)},__wbg_error_757e9472f8410341:function(e,t){let n,r;try{n=e,r=t,console.error(g(e,t))}finally{O.__wbindgen_free(n,r,1)}},__wbg_exports_7d05caa1a0c36b86:function(e){return e.exports},__wbg_exports_c5a4e6d954ac0ad0:function(e){return WebAssembly.Module.exports(e)},__wbg_fetch_729fad2e5272298f:function(e,t){return e.fetch(t)},__wbg_fetch_d752d93f5b259503:function(e,t){return e.fetch(t)},__wbg_from_74f3d90e0ff11240:function(e){return Array.from(e)},__wbg_getPrototypeOf_55a24d07487f0509:function(){return y(function(e){return Reflect.getPrototypeOf(e)},arguments)},__wbg_getRandomValues_436a51d0629d84e1:function(){return y(function(e,t){globalThis.crypto.getRandomValues(p(e,t))},arguments)},__wbg_getTime_63fb0332e6c4ec17:function(e){return e.getTime()},__wbg_getTimezoneOffset_4baa793e0d3962a8:function(e){return e.getTimezoneOffset()},__wbg_get_70e2ce0f7d009e1f:function(){return y(function(e,t){return e.get(t>>>0)},arguments)},__wbg_get_971a0c45d172643f:function(){return y(function(e,t){return Reflect.get(e,t)},arguments)},__wbg_get_c0c8f8d7da0c03dd:function(e,t){return e[t>>>0]},__wbg_get_d173c0308df22d37:function(){return y(function(e,t){return Reflect.get(e,t)},arguments)},__wbg_get_unchecked_e20b893aeafc3fca:function(e,t){return e[t>>>0]},__wbg_get_with_ref_key_6412cf3094599694:function(e,t){return e[t]},__wbg_grow_5344199563323c70:function(){return y(function(e,t){return e.grow(t>>>0)},arguments)},__wbg_grow_adf1e32e3f3bb932:function(){return y(function(e,t){return e.grow(t>>>0)},arguments)},__wbg_headers_6dedf39f001ae99d:function(e){return e.headers},__wbg_headers_92567b07014384b9:function(e){return e.headers},__wbg_imports_d64558b2dafe33b8:function(e){return WebAssembly.Module.imports(e)},__wbg_instanceof_ArrayBuffer_993d02d2d254cad1:function(e){let t;try{t=e instanceof ArrayBuffer}catch{t=!1}return t},__wbg_instanceof_Error_61d8a02a0f3383a1:function(e){let t;try{t=e instanceof Error}catch{t=!1}return t},__wbg_instanceof_Function_f7fa7e26e46ea413:function(e){let t;try{t=e instanceof Function}catch{t=!1}return t},__wbg_instanceof_Global_eb9f44c43679a9c6:function(e){let t;try{t=e instanceof WebAssembly.Global}catch{t=!1}return t},__wbg_instanceof_Memory_37fa5d38ff0dd2f3:function(e){let t;try{t=e instanceof WebAssembly.Memory}catch{t=!1}return t},__wbg_instanceof_Object_80ad464782e2bd73:function(e){let t;try{t=e instanceof Object}catch{t=!1}return t},__wbg_instanceof_RangeError_b306483892e8598c:function(e){let t;try{t=e instanceof RangeError}catch{t=!1}return t},__wbg_instanceof_Response_8f49efbd4bfd76d6:function(e){let t;try{t=e instanceof Response}catch{t=!1}return t},__wbg_instanceof_SharedArrayBuffer_c734e76df6d827cb:function(e){let t;try{t=e instanceof SharedArrayBuffer}catch{t=!1}return t},__wbg_instanceof_Table_01ff4017eccbeab8:function(e){let t;try{t=e instanceof WebAssembly.Table}catch{t=!1}return t},__wbg_instanceof_Tag_21ca531473671582:function(e){let t;try{t=e instanceof WebAssembly.Tag}catch{t=!1}return t},__wbg_instanceof_Uint8Array_f935dbb0aa7cdeed:function(e){let t;try{t=e instanceof Uint8Array}catch{t=!1}return t},__wbg_instanceof_WorkerGlobalScope_8c58a6d74926b578:function(e){let t;try{t=e instanceof WorkerGlobalScope}catch{t=!1}return t},__wbg_isArray_6339f732981044bf:function(e){return Array.isArray(e)},__wbg_isSafeInteger_f3d6cd19ccfe4512:function(e){return Number.isSafeInteger(e)},__wbg_iterator_5cebbb86e33c6dd6:function(){return Symbol.iterator},__wbg_length_1368b9bb66f6a6aa:function(e){return e.length},__wbg_length_36bd29c6848c2144:function(e){return e.length},__wbg_length_ecfa2c63d3d0d82c:function(e){return e.length},__wbg_message_c141d5e68716b595:function(e){return e.message},__wbg_new_0_f117d868b403dc07:function(){return new Date},__wbg_new_116be93542d39019:function(){return[]},__wbg_new_227d7c05414eb861:function(){return Error()},__wbg_new_52e39b693b131692:function(){return y(function(e){return new WebAssembly.Tag(e)},arguments)},__wbg_new_77cc4f4f472aeb81:function(e){return new Uint8Array(e)},__wbg_new_82966bafe01b664f:function(){return y(function(e){return new WebAssembly.Table(e)},arguments)},__wbg_new_bd7a161a1b96dc2a:function(){return y(function(e,t){return new WebAssembly.Global(e,t)},arguments)},__wbg_new_cdf041679ded4c5f:function(){return new Map},__wbg_new_d1599c9e69d35606:function(){return y(function(e,t){return new WebAssembly.Instance(e,t)},arguments)},__wbg_new_e3fb27841b78e4f4:function(){return y(function(e){return new WebAssembly.Module(e)},arguments)},__wbg_new_ebe3e0f6837f0879:function(){return{}},__wbg_new_f9d6489212f3b2b3:function(e){return new Date(e)},__wbg_new_fee1181bcca662c4:function(){return y(function(e){return new WebAssembly.Memory(e)},arguments)},__wbg_new_from_slice_3eea173078478cfe:function(e,t){return new Uint8Array(p(e,t))},__wbg_new_typed_cceaf62d8d95e9f2:function(e,t){try{var n={a:e,b:t};return new Promise((e,t)=>{let r=n.a;n.a=0;try{return s(r,n.b,e,t)}finally{n.a=r}})}finally{n.a=0}},__wbg_new_with_args_75f20e1087b74fa8:function(e,t,n,r){return Function(g(e,t),g(n,r))},__wbg_new_with_length_2ccc5dbfb4541247:function(e){return Array(e>>>0)},__wbg_new_with_length_3ffc1c56427c525c:function(e){return new Uint8Array(e>>>0)},__wbg_new_with_str_and_init_5a37d576dec75a86:function(){return y(function(e,t,n){return new Request(g(e,t),n)},arguments)},__wbg_next_42cf16ee0dafc9e2:function(){return y(function(e){return e.next()},arguments)},__wbg_next_8f26b64fa5e9f64b:function(e){return e.next},__wbg_now_8b265300afd5f2b9:function(){return Date.now()},__wbg_prototypesetcall_de8e0d9553586985:function(e,t,n){Uint8Array.prototype.set.call(p(e,t),n)},__wbg_push_adb0107829f02d75:function(e,t){return e.push(t)},__wbg_queueMicrotask_ac694eae12e92dfb:function(e){queueMicrotask(e)},__wbg_queueMicrotask_be5fe34a8f4cad4d:function(e){return e.queueMicrotask},__wbg_redirected_38edd6189354296c:function(e){return e.redirected},__wbg_resolve_020f95d838c6ef25:function(e){return Promise.resolve(e)},__wbg_set_014226dfeca53178:function(e,t,n){return e.set(t,n)},__wbg_set_14811fdb285b1915:function(){return y(function(e,t,n){e.set(t>>>0,n)},arguments)},__wbg_set_6be42768c690e380:function(e,t,n){e[t]=n},__wbg_set_8155bb79a948541b:function(){return y(function(e,t,n){return Reflect.set(e,t,n)},arguments)},__wbg_set_a80955eb93b145c6:function(e,t,n){e[t>>>0]=n},__wbg_set_b9b5b5cb7b495037:function(e,t,n){e.set(p(t,n))},__wbg_set_body_f301b68bff45f419:function(e,t){e.body=t},__wbg_set_e92392c4b44c5de1:function(){return y(function(e,t,n,r,i){e.set(g(t,n),g(r,i))},arguments)},__wbg_set_method_cf2b992b9a610bc3:function(e,t,n){e.method=g(t,n)},__wbg_set_mode_d6479dfd6696c8d3:function(e,t){e.mode=c[t]},__wbg_set_value_1b7bd2bc4ef248bb:function(e,t){e.value=t},__wbg_stack_3b0d974bbf31e44f:function(e,t){let n=t.stack,r=S(n,O.__wbindgen_malloc,O.__wbindgen_realloc),i=D;h().setInt32(e+4,i,!0),h().setInt32(e+0,r,!0)},__wbg_static_accessor_GLOBAL_THIS_466428f93b4eaa76:function(){let e=typeof globalThis>`u`?null:globalThis;return b(e)?0:u(e)},__wbg_static_accessor_GLOBAL_c7aea38d4de089bc:function(){let e=typeof global>`u`?null:global;return b(e)?0:u(e)},__wbg_static_accessor_SELF_42d4fae05e59267a:function(){let e=typeof self>`u`?null:self;return b(e)?0:u(e)},__wbg_static_accessor_WINDOW_e0db14a0eba6a812:function(){let e=typeof window>`u`?null:window;return b(e)?0:u(e)},__wbg_status_b0de02a07fd7d927:function(e){return e.status},__wbg_subarray_a4cc58201c7359fd:function(e,t,n){return e.subarray(t>>>0,n>>>0)},__wbg_then_7026b513a94278a8:function(e,t){return e.then(t)},__wbg_then_72819b8d4e081fb5:function(e,t,n){return e.then(t,n)},__wbg_toString_2f0b0aec069cb718:function(e){return e.toString()},__wbg_toString_effe882d0e9af91c:function(e,t,n){let r=S(t.toString(n),O.__wbindgen_malloc,O.__wbindgen_realloc),i=D;h().setInt32(e+4,i,!0),h().setInt32(e+0,r,!0)},__wbg_trap_new:function(e){return t.__wrap(e)},__wbg_value_1e2369fab29b420e:function(e){return e.value},__wbg_value_728796e3a1723ff8:function(e){return e.value},__wbindgen_cast_0000000000000001:function(e,t){return x(e,t,r)},__wbindgen_cast_0000000000000002:function(e,t){return x(e,t,a)},__wbindgen_cast_0000000000000003:function(e,t){return x(e,t,o)},__wbindgen_cast_0000000000000004:function(e,t){return x(e,t,i)},__wbindgen_cast_0000000000000005:function(e){return e},__wbindgen_cast_0000000000000006:function(e){return e},__wbindgen_cast_0000000000000007:function(e,t){return p(e,t)},__wbindgen_cast_0000000000000008:function(e,t){return g(e,t)},__wbindgen_cast_0000000000000009:function(e,t){return BigInt.asUintN(64,e)|BigInt.asUintN(64,t)<<BigInt(64)},__wbindgen_cast_000000000000000a:function(e){return BigInt.asUintN(64,e)},__wbindgen_cast_000000000000000b:function(e,t){var n=te(e,t);return O.__wbindgen_free(e,t*4,4),n},__wbindgen_init_externref_table:function(){let e=O.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}function r(e,t,n){let r=O.wasm_bindgen_68458880a41dd4bb___convert__closures_____invoke___wasm_bindgen_68458880a41dd4bb___JsValue__core_9b3796e30d99ddb7___result__Result_____wasm_bindgen_68458880a41dd4bb___JsError___true_(e,t,n);if(r[1])throw C(r[0])}function i(e,t,n){let r=O.wasm_bindgen_68458880a41dd4bb___convert__closures________invoke___js_sys_c11fba41208799d1___Array__core_9b3796e30d99ddb7___result__Result_____wasm_bindgen_68458880a41dd4bb___JsValue___true_(e,t,n);if(r[1])throw C(r[0])}function a(e,t,n){let r=O.wasm_bindgen_68458880a41dd4bb___convert__closures________invoke___js_sys_c11fba41208799d1___Array__core_9b3796e30d99ddb7___result__Result_js_sys_c11fba41208799d1___Array__wasm_bindgen_68458880a41dd4bb___JsValue___true_(e,t,n);if(r[2])throw C(r[1]);return C(r[0])}function o(e,t,n){let r=O.wasm_bindgen_68458880a41dd4bb___convert__closures________invoke___js_sys_c11fba41208799d1___Array__core_9b3796e30d99ddb7___result__Result_js_sys_c11fba41208799d1___Array__wasm_bindgen_68458880a41dd4bb___JsValue___true__2(e,t,n);if(r[2])throw C(r[1]);return C(r[0])}function s(e,t,n,r){O.wasm_bindgen_68458880a41dd4bb___convert__closures_____invoke___js_sys_c11fba41208799d1___Function_fn_wasm_bindgen_68458880a41dd4bb___JsValue_____wasm_bindgen_68458880a41dd4bb___sys__Undefined___js_sys_c11fba41208799d1___Function_fn_wasm_bindgen_68458880a41dd4bb___JsValue_____wasm_bindgen_68458880a41dd4bb___sys__Undefined_______true_(e,t,n,r)}const c=[`same-origin`,`no-cors`,`cors`,`navigate`],l=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>O.__wbg_gocompilersession_free(e,1)),ee=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>O.__wbg_trap_free(e,1));function u(e){let t=O.__externref_table_alloc();return O.__wbindgen_externrefs.set(t,e),t}const d=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>O.__wbindgen_destroy_closure(e.a,e.b));function f(e){let t=typeof e;if(t==`number`||t==`boolean`||e==null)return`${e}`;if(t==`string`)return`"${e}"`;if(t==`symbol`){let t=e.description;return t==null?`Symbol`:`Symbol(${t})`}if(t==`function`){let t=e.name;return typeof t==`string`&&t.length>0?`Function(${t})`:`Function`}if(Array.isArray(e)){let t=e.length,n=`[`;t>0&&(n+=f(e[0]));for(let r=1;r<t;r++)n+=`, `+f(e[r]);return n+=`]`,n}let n=/\[object ([^\]]+)\]/.exec(toString.call(e)),r;if(n&&n.length>1)r=n[1];else return toString.call(e);if(r==`Object`)try{return`Object(`+JSON.stringify(e)+`)`}catch{return`Object`}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:r}function te(e,t){e>>>=0;let n=h(),r=[];for(let i=e;i<e+4*t;i+=4)r.push(O.__wbindgen_externrefs.get(n.getUint32(i,!0)));return O.__externref_drop_slice(e,t),r}function p(e,t){return e>>>=0,v().subarray(e/1,e/1+t)}let m=null;function h(){return(m===null||m.buffer.detached===!0||m.buffer.detached===void 0&&m.buffer!==O.memory.buffer)&&(m=new DataView(O.memory.buffer)),m}function g(e,t){return ne(e>>>0,t)}let _=null;function v(){return(_===null||_.byteLength===0)&&(_=new Uint8Array(O.memory.buffer)),_}function y(e,t){try{return e.apply(this,t)}catch(e){let t=u(e);O.__wbindgen_exn_store(t)}}function b(e){return e==null}function x(e,t,n){let r={a:e,b:t,cnt:1},i=(...e)=>{r.cnt++;let t=r.a;r.a=0;try{return n(t,r.b,...e)}finally{r.a=t,i._wbg_cb_unref()}};return i._wbg_cb_unref=()=>{--r.cnt===0&&(O.__wbindgen_destroy_closure(r.a,r.b),r.a=0,d.unregister(r))},d.register(i,r,r),i}function S(e,t,n){if(n===void 0){let n=E.encode(e),r=t(n.length,1)>>>0;return v().subarray(r,r+n.length).set(n),D=n.length,r}let r=e.length,i=t(r,1)>>>0,a=v(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=v().subarray(i+o,i+r),a=E.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return D=o,i}function C(e){let t=O.__wbindgen_externrefs.get(e);return O.__externref_table_dealloc(e),t}let w=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});w.decode();let T=0;function ne(e,t){return T+=t,T>=2146435072&&(w=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),w.decode(),T=t),w.decode(v().subarray(e,e+t))}const E=new TextEncoder;`encodeInto`in E||(E.encodeInto=function(e,t){let n=E.encode(e);return t.set(n),{read:e.length,written:n.length}});let D=0,O;function re(e,t){return O=e.exports,m=null,_=null,O.__wbindgen_start(),O}async function ie(e,t){if(typeof Response==`function`&&e instanceof Response){if(!e.ok)throw Error(`failed to fetch Wasm: ${e.status} ${e.statusText} fetching '${e.url}'`);if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(n(e.type)&&e.headers.get(`Content-Type`)!==`application/wasm`)console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",t);else throw t}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}function n(e){switch(e){case`basic`:case`cors`:case`default`:return!0}return!1}}async function ae(e){if(O!==void 0)return O;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`)),e===void 0&&(e=new URL(``+new URL(`runtime-core_bg-pToqhf1W.wasm`,import.meta.url).href,``+import.meta.url));let t=n();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:r,module:i}=await ie(await e,t);return re(r,i)}var oe=``+new URL(`runtime-core_bg-pToqhf1W.wasm`,import.meta.url).href;const k=`wasm-oj-v2`,se=Object.freeze({clangPins:`${k}/clang-pins`,clangLibcxxPch:`${k}/clang-libcxx-pch`,clangToolchain:`${k}/clang-toolchain`,compileBatch:`${k}/compile-batch`,compileTrace:`${k}/compile-trace`,conformance:`${k}/conformance`,conformanceEvidence:`${k}/conformance-evidence`,conformanceMatrix:`${k}/conformance-matrix`,cppDependencyLock:`${k}/cpp-dependency-lock`,dependencyLock:`${k}/dependency-lock`,dependencyOfflineBundle:`${k}/dependency-offline-bundle`,incrementalBuildGraph:`${k}/incremental-build-graph`,interactiveRequest:`${k}/interactive-request`,goToolchain:`${k}/go-toolchain`,objectCache:`${k}/object-cache`,pythonToolchain:`${k}/python-toolchain`,replayBundle:`${k}/replay-bundle`,rustToolchain:`${k}/rust-toolchain`,runRequest:`${k}/run-request`,runtimeBundle:`${k}/runtime-bundle`,runtimeCoreLicenses:`${k}/runtime-core-licenses`,thirdPartyComponents:`${k}/third-party-components`,wasmerSdkLicenses:`${k}/wasmer-sdk-licenses`,toolchainPackage:`${k}/toolchain-package`});Object.freeze({database:`${k}:storage`,databaseVersion:2,dependencyCache:`${k}:dependencies`,incrementalBuildCache:`${k}:incremental-build-cache`,runtimeFilesCache:`${k}:runtime-files`,toolchainCache:`${k}:toolchains`}),Object.freeze([`c`,`cpp`,`rust`,`python`,`javascript`,`typescript`,`go`]),Object.freeze([`cargo`,`npm`,`pypi`,`go`,`cpp`]);const A=`22.0.0-git20542-10`,ce=`wasm-oj/clang@${A}`,le=`/toolchains/clang-${A}.webc.gz.bin`,ue=`/toolchains/clang-${A}.cc1-pins.json`,de=`/toolchains/clang-${A}.manifest.json`,fe=`/toolchains/clang-${A}.libcxx-pch.json`,pe=`/toolchains/clang-${A}.cpp-debug.pch.gz.bin`,me=`/toolchains/clang-${A}.cpp-release.pch.gz.bin`,j=`7f10d90b8e52b270f04874641a1d0bf9e94e85b4f6c7573a774cebbc6d32552a`,he=`21ded33b9c6d4e1aaad5528c940bdaf6c3e84be77ea8f522f018ca7289a2a224`,M=`895eee17c63b1112c84adcc4ddbcb38e0c18e53bff15f50a8689b9b82d87b1ff`,N=`6382dcdfb6a2da49032a0e08da3b1fb490eb24432be85c3c12e3e871a5065273`,ge=Object.freeze({"cpp-debug":Object.freeze({path:pe,sha256:`c420c4643c48826643e75585d5bfdc281f11883d4bda28b283e3c706f3046b3a`,compressedSha256:`a3811351bae3289caf096f2d4bb6d2ee5db84b97e05514e87190d36b65c500cf`}),"cpp-release":Object.freeze({path:me,sha256:`c4b2132cc6d698e97dd1386431fdb54faaaf38b35b2528c7bc854f860d1f64b1`,compressedSha256:`ef004fc05ec50af697a37f7c9c814bf62e9676d0de162d6ac35305533939f93f`})}),P=`3.14.7`,_e=`a42c98f5f00582638c8e445440c506bbf94d5e55b3415d1f8d82d11c56cd4b56`,ve=`${`wasm-oj/cpython@${P}`}#sha256:${_e}`,ye=`/toolchains/python-${P}-wasip1.webc.gz.bin`,be=`/toolchains/python-${P}-wasip1.manifest.json`,xe=`10027f0e32c77dfa0ce1c413b6cb27307d6744fe5e18e6da8cea738bd020260c`,Se=`53a24b258363a8494af164121111a34b49c85fa0e054627fe131feba6f359cd5`,F=`0.15.1`,Ce=`wasm-oj/quickjs-ng@${F}`,we=`/toolchains/quickjs-${F}.wasm.gz.bin`,I=`dc6e02e8610269e61b341331661515616451cec929fd534fa96d1c4f47fbcc9a`,L=`7.0.2`,Te=`/toolchains/typescript-${L}.wasm.gz.bin`,R=`29c6ee0e46151e2644049ae96162b1b1d46dcb13310e2a928114bb9030c3ea92`,z=`1.91.1-dev`,Ee=`/toolchains/rust-${z}.webc.gz.bin`,De=`/toolchains/rust-${z}.manifest.json`,Oe=`cfbdadc67be1315e735aa55bdf8a5a0d00171982a023fefcf7ba586127753887`,ke=`765de8d68d03078e79f69f49dec0dcab1ff96fe3bbe5e9eafebb2ce61a39d3ee`,Ae=`d5bbdca994e61888679c5738cb9420649c0854ed0eb5d65468bc67d5d550bce1`,B=`1.26.5`,je=`/toolchains/go-${B}-wasip1.webc.gz.bin`,Me=`/toolchains/go-${B}-wasip1.manifest.json`,Ne=`/toolchains/go-${B}-wasip1.stdlib.gz.bin`,V=`70a7e359884b09b2e1a622d6ac5cd6e31c334aab519e6dd80dff5e040a9e09e4`,H=`c3a97934b6a83fefdea5c31f99141f70f76189eedc9ec0fa9ccd41302e50963b`,U=`5d784e9ca640b9525e84b598c0beb97ca110ae908568ca45f6441a441d99a262`,W=`aeffc384fdc624544f174ba5fc3c22395717fdbc3c4387d677d20855b6be80d8`,Pe=`e1ec64b08efd02b35b7ffdaf3970875aaae98325fa4795eafca94ebae2d0d192`,Fe=`9e557f5b86961fd604217d7521461c5d2b7322e383fa30dead5669b77db12201`,Ie=`2eefca10af935a307ab7946447146bd30e0ea0fb5460be54dc1c55844d155580`,Le=Object.freeze({[le]:j,[ue]:M,[de]:N,[fe]:`9bbe41d77c786f1c36169369c909268530b05726e1581683f6edd9a2983eebd0`,[pe]:ge[`cpp-debug`].compressedSha256,[me]:ge[`cpp-release`].compressedSha256,[ye]:xe,[be]:Se,[we]:I,[Te]:R,[Ee]:Oe,[De]:Ae,[je]:V,[Me]:U,[Ne]:W,"/toolchains/java-teavm-0.13.1.compiler.wasm":`8c37bce1c6fceeaffeffe93e10834309b67c8b6fb58c6f8a24547afe8be67f5d`,"/toolchains/java-teavm-0.13.1.compile-classlib.bin":`738a82b7d7e7ff8d98b07bb076785da7035847a166afb8446fd150c4efce6103`,"/toolchains/java-teavm-0.13.1.runtime-classlib.bin":`0ed234b66cdde19cb29e6c2865a3636d792d3cf72f102e73a7b3fdede80b79e6`});Object.freeze({c:Object.freeze([j,he,M,N]),cpp:Object.freeze([j,he,M,N]),rust:Object.freeze([Oe,ke,Ae]),python:Object.freeze([xe,_e,Se,`c1acac884af1c86833db5b65f8cc0a2304fce74dea0a05d9b40bde0a4e3e7c0e`]),javascript:Object.freeze([R,I]),typescript:Object.freeze([R,I]),go:Object.freeze([V,H,U,W,Pe,Fe,Ie])});function Re(e){let t=e.startsWith(`/`)?e:`/toolchains/${e}`,n=Le[t];if(!n)throw Error(`No pinned digest is declared for toolchain asset '${e}'.`);return n}function ze(e,t){let n=Re(e),r=new URL(t.href);r.pathname.endsWith(`/`)||(r.pathname+=`/`);let i=[...r.searchParams];r.search=``;let a=e.slice(e.lastIndexOf(`/`)+1),o=new URL(a,r);for(let[e,t]of i)o.searchParams.append(e,t);return o.searchParams.set(`sha256`,n),o}function G(e){return Object.freeze({...e,compilerPackages:Object.freeze([...e.compilerPackages]),targets:Object.freeze([...e.targets])})}Object.freeze({c:G({language:`c`,label:`Clang 22`,artifact:`wasm`,compilerPackages:[ce],targets:[`wasip1`,`wasix`],version:A,note:`Native wasip1 module via Clang and LLD; directly executable by WASI and WASIX runtimes.`}),cpp:G({language:`cpp`,label:`Clang++ 22 (C++20)`,artifact:`wasm`,compilerPackages:[ce],targets:[`wasip1`,`wasix`],version:A,note:`C++20/libc++ wasip1 module; directly executable by WASI and WASIX runtimes.`}),rust:G({language:`rust`,label:`Rust ${z}`,artifact:`wasm`,compilerPackages:[`rustc@${z}#sha256:${ke}`],targets:[`wasip1`],version:z,note:`Real rustc, its matching standard library, and a fresh deterministic wasm-ld stage execute as one pinned WebC under Wasmer.`}),python:G({language:`python`,label:`CPython ${P}`,artifact:`runtime-bundle`,compilerPackages:[ve],runtimePackage:ve,targets:[`wasip1`],version:P,note:`Python source files executed by the source-built CPython wasm32-wasip1 interpreter and standard library.`}),javascript:G({language:`javascript`,label:`QuickJS-ng`,artifact:`runtime-bundle`,compilerPackages:[`typescript@${L}-wasi`],runtimePackage:Ce,targets:[`wasip1`],version:F,note:`JavaScript checked by TypeScript/WASI, then executed by the bundled QuickJS-ng/WASI runtime.`}),typescript:G({language:`typescript`,label:`TypeScript + QuickJS-ng`,artifact:`runtime-bundle`,compilerPackages:[`typescript@${L}-wasi`],runtimePackage:Ce,targets:[`wasip1`],version:L,note:`The native TypeScript compiler and QuickJS-ng runtime both execute as local WASI modules.`}),go:G({language:`go`,label:`Go ${B}`,artifact:`wasm`,compilerPackages:[`go@${B}#sha256:${H}`],targets:[`wasip1`],version:B,note:`The standard Go compiler, linker, and pinned wasip1 standard library execute locally as one WebC under Wasmer.`})}),Object.freeze({c:`cpp`,cpp:`cpp`,rust:`cargo`,python:`pypi`,javascript:`npm`,typescript:`npm`,go:`go`});function Be(e){let t=[],n=/\bimport\s*\(([\s\S]*?)\)/g;for(let r of e.matchAll(n))for(let e of r[1].matchAll(/(?:^|\n)\s*(?:[._A-Za-z][A-Za-z0-9_]*\s+)?["`]([^"`]+)["`]/g))t.push(e[1]);let r=e.replace(n,``);for(let e of r.matchAll(/\bimport\s+(?:[._A-Za-z][A-Za-z0-9_]*\s+)?["`]([^"`]+)["`]/g))t.push(e[1]);return t}const Ve=`go${B.split(`.`).slice(0,2).join(`.`)}`,K=`/work/build/main.a`,He=`/work/build/app.wasm`,q=Object.freeze({version:B,target:`wasip1/wasm`,packageAsset:je,packageCompressedSha256:V,packageSha256:H,manifestAsset:Me,manifestSha256:U,standardLibraryAsset:Ne,standardLibraryCompressedSha256:W,standardLibrarySha256:Pe,compilerSha256:Fe,linkerSha256:Ie});function Ue(e){let t=JSON.parse(new TextDecoder(`utf-8`,{fatal:!0}).decode(e)),n=J(t.compiler,`compiler`),r=J(t.linker,`linker`),i=J(t.output,`output`),a=J(t.standardLibrary,`standardLibrary`);if(t.schema!==se.goToolchain||t.version!==q.version||t.target!==q.target||n.command!==`go-compile`||n.sha256!==q.compilerSha256||r.command!==`go-link`||r.sha256!==q.linkerSha256||JSON.stringify(t.deterministicReplacements)!==JSON.stringify([`wasi_snapshot_preview1.random_get`,`wasi_snapshot_preview1.clock_time_get`,`wasi_snapshot_preview1.sock_accept`,`wasi_snapshot_preview1.sock_shutdown`])||t.filesystemMount!==null||i.sha256!==q.packageSha256||i.compressedSha256!==q.packageCompressedSha256||a.sha256!==q.standardLibrarySha256||a.compressedSha256!==q.standardLibraryCompressedSha256||a.format!==`WOJGO002`)throw Error(`Pinned Go toolchain manifest does not match the compiler contract.`);if(!Array.isArray(t.packages)||t.packages.length<200)throw Error(`Pinned Go toolchain manifest has an incomplete standard library.`);let o=``,s=t.packages.map(e=>{let t=J(e,`packages[]`);if(typeof t.importPath!=`string`||t.importPath<=o||typeof t.archivePath!=`string`||t.archivePath!==`/go/pkg/${t.importPath}.a`||typeof t.sha256!=`string`||!/^[a-f0-9]{64}$/.test(t.sha256))throw Error(`Pinned Go toolchain manifest contains a non-canonical package entry.`);return o=t.importPath,Object.freeze({importPath:t.importPath,archivePath:t.archivePath,sha256:t.sha256})});return Object.freeze({packages:Object.freeze(s)})}function We(e,t){let{dataOffset:n,entries:r}=Ge(e,t),i={"/go/VERSION":new TextEncoder().encode(`go${B}\n`)};for(let t of r)i[t.archivePath]=e.subarray(n+t.offset,n+t.offset+t.length);return i}function Ge(e,t){if(e.byteLength<12||new TextDecoder().decode(e.subarray(0,8))!==`WOJGO002`)throw Error(`Pinned Go standard library has an invalid format header.`);let n=12+new DataView(e.buffer,e.byteOffset+8,4).getUint32(0,!0);if(n>e.byteLength)throw Error(`Pinned Go standard-library index exceeds its archive.`);let r=JSON.parse(new TextDecoder(`utf-8`,{fatal:!0}).decode(e.subarray(12,n)));if(!Array.isArray(r)||r.length!==t.length)throw Error(`Pinned Go standard-library index does not match the manifest.`);let i=[],a=0;for(let o=0;o<t.length;o+=1){let s=J(r[o],`standardLibrary[]`),c=t[o];if(s.importPath!==c.importPath||s.archivePath!==c.archivePath||s.sha256!==c.sha256||!Number.isSafeInteger(s.offset)||s.offset!==a||!Number.isSafeInteger(s.length)||s.length<=8||n+s.offset+s.length>e.byteLength)throw Error(`Pinned Go standard-library index contains a non-canonical archive entry.`);i.push(s),a+=s.length}if(n+a!==e.byteLength)throw Error(`Pinned Go standard library contains trailing or missing archive bytes.`);return{dataOffset:n,entries:Object.freeze(i)}}function Ke(e){let t=new TextEncoder;return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,typeof n==`string`?t.encode(n):n]))}function qe(e,t){let n=e.map(e=>`packagefile ${e.importPath}=${e.archivePath}`);return t&&n.push(`packagefile command-line-arguments=${K}`),`${n.join(`
2
+ `)}\n`}function Je(e,t,n){let r=new Map(t.map(e=>[e.importPath,e])),i=new Set(n.map(e=>e.importPath)),a=new Map,o=[],s=(e,t)=>{if(i.has(e))return;let n=r.get(e);if(!n)throw Error(`Go package '${t}' imports unlocked package '${e}'.`);let c=a.get(e);if(c!==`visited`){if(c===`visiting`)throw Error(`Go dependency import cycle contains '${e}'.`);a.set(e,`visiting`);for(let t of n.imports)s(t,e);a.set(e,`visited`),o.push(n)}};for(let t of e.filter(e=>e.path.endsWith(`.go`)))for(let e of Be(t.content))s(e,`main`);return o}function Ye(e,t){return[`-o`,e.archivePath,`-p`,e.importPath,`-lang`,Ve,`-complete`,`-buildid=wasm_oj_dependency_${e.importPath}`,`-c=1`,`-dwarf=false`,`-trimpath`,`/work=.`,`-importcfg`,`/work/importcfg`,`-pack`,...t===`debug`?[`-N`,`-l`]:[],...e.sourcePaths.map(e=>`/work/${e}`)]}function Xe(e,t){let n=e.filter(e=>e.path.endsWith(`.go`)).map(e=>`/work/${e.path}`).sort();if(n.length===0)throw Error(`A Go project must contain at least one .go source file.`);return[`-o`,K,`-p`,`main`,`-lang`,Ve,`-complete`,`-buildid=wasm_oj_submission`,`-c=1`,`-dwarf=false`,`-trimpath`,`/work=.`,`-importcfg`,`/work/importcfg`,`-pack`,...t===`debug`?[`-N`,`-l`]:[],...n]}function Ze(e){return[`-o`,He,`-importcfg`,`/work/importcfg.link`,`-buildmode=exe`,`-buildid=`,...e===`release`?[`-s`,`-w`]:[],K]}function Qe(){return{GOOS:`wasip1`,GOARCH:`wasm`,GOROOT:`/go`,GOENV:`off`,GOTOOLCHAIN:`local`,PWD:`/work`,SOURCE_DATE_EPOCH:`946684800`,TZ:`UTC`,LC_ALL:`C`}}function J(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Pinned Go toolchain manifest '${t}' field must be an object.`);return e}function $e(e){return e.replace(/^file:\/\//,``).replace(/^\/?(?:workspace|project|work)\//,``).replace(/^\.\//,``)}function et(e){let t=[],n=/^(.*?\.go):(\d+)(?::(\d+))?:\s*(.+)$/gm,r;for(;(r=n.exec(e))!==null;)t.push({severity:`error`,message:r[4],file:$e(r[1]),line:Number(r[2]),column:Number(r[3]??1),source:`go`});return t}Object.freeze({files:256,bytesPerFile:4194304,totalBytes:16777216}),new TextEncoder;async function tt(e){let t=typeof e==`string`?new TextEncoder().encode(e):e,n=new Uint8Array(t.byteLength);n.set(t);let r=await crypto.subtle.digest(`SHA-256`,n);return Array.from(new Uint8Array(r),e=>e.toString(16).padStart(2,`0`)).join(``)}const Y=1048576,nt=Object.freeze({requirements:128,sourceFiles:128,sourceTextBytes:8*Y,hosts:32,roots:512,packages:512,referencesPerPackage:512,concurrency:16,metadataBytes:8*Y,packageBytes:256*Y,totalDownloadBytes:512*Y,archiveFiles:16384,unpackedBytes:512*Y});Object.freeze({packages:nt.packages,filesPerPackage:nt.archiveFiles,bytesPerFile:64*Y,totalBytes:nt.unpackedBytes});const rt=new TextEncoder;var it=class e{digest;binding;generation=0;files=new Map;inFlight=!1;disposed=!1;static hydrate(t,n){lt(n.digest);let r=new t(n);if(r.digest!==n.digest||r.generation!==0)throw r.free(),Error(`The runtime-core Go session did not bind the admitted toolchain digest at generation zero.`);return new e(n.digest,r)}constructor(e,t){this.digest=e,this.binding=t}async compile(e,t){if(this.disposed)throw Error(`The browser Go compiler session is disposed.`);if(this.inFlight)throw Error(`The browser Go compiler session accepts one build at a time.`);if(this.generation>=4294967295)throw Error(`The browser Go compiler session generation is exhausted.`);let n=at(e),r={};for(let[e,t]of n){let n=this.files.get(e);(n===void 0||!ct(n,t))&&(r[e]=t)}let i=[...this.files.keys()].filter(e=>!n.has(e)).sort(ot),a=this.generation+1;this.inFlight=!0;try{let e=await this.binding.compilePipeline({digest:this.digest,sourceDelta:{generation:a,upsertFiles:r,removePaths:i},stages:t.map(st)});if(e.digest!==this.digest||e.generation!==a||this.binding.digest!==this.digest||this.binding.generation!==a)throw Error(`The runtime-core Go session returned a stale or mismatched generation.`);if(!ut(e.response))throw Error(`The runtime-core Go session returned an invalid compiler response.`);return this.files=n,this.generation=a,e.response}finally{this.inFlight=!1}}dispose(){if(!this.disposed){if(this.inFlight)throw Error(`The browser Go compiler session cannot be disposed during a build.`);this.disposed=!0,this.files.clear(),this.binding.free()}}};function at(e){return new Map(Object.entries(e).sort(([e],[t])=>ot(e,t)).map(([e,t])=>[e,Uint8Array.from(t)]))}function ot(e,t){let n=rt.encode(e),r=rt.encode(t),i=Math.min(n.byteLength,r.byteLength);for(let e=0;e<i;e+=1)if(n[e]!==r[e])return n[e]-r[e];return n.byteLength-r.byteLength}function st(e){return{command:e.command,args:[...e.args],env:{...e.env},stdin:e.stdin,files:{...e.files},cwd:e.cwd,outputPaths:[...e.outputPaths],outputLimitBytes:e.outputLimitBytes}}function ct(e,t){if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.byteLength;n+=1)if(e[n]!==t[n])return!1;return!0}function lt(e){if(!/^[a-f0-9]{64}$/.test(e))throw Error(`The browser Go compiler session digest must be a lowercase SHA-256.`)}function ut(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.ok==`boolean`?t.ok?Object.hasOwn(t,`result`)&&t.error===void 0:t.result===void 0&&typeof t.error==`object`&&t.error!==null&&typeof t.error.code==`string`&&typeof t.error.message==`string`:!1}function dt(){let e=globalThis.location?.href;if(e){let t=new URL(e);if(t.protocol===`http:`||t.protocol===`https:`)return t;if(t.protocol!==`blob:`)throw Error(`A module Worker requires an HTTP(S) browser base URL.`)}let t=globalThis.__wasmOjModuleWorkerBaseUrl;if(typeof t!=`string`)throw Error(`A module Worker requires a browser base URL.`);let n=new URL(t);if(n.origin===`null`||n.protocol!==`http:`&&n.protocol!==`https:`)throw Error(`A module Worker requires an HTTP(S) browser base URL.`);return n}const X=self,ft=dt();let pt=Promise.resolve(),mt,Z,Q;X.addEventListener(`message`,e=>{pt=pt.then(()=>gt(e.data),()=>gt(e.data))});async function ht(e){let t=new URL(e.assetBaseUrl,ft);t.pathname.endsWith(`/`)||(t.pathname+=`/`);let n=await _t(t),r=Je(e.request.files,e.request.dependencies??[],n.manifest.packages),i=[...n.manifest.packages,...r.map(e=>({importPath:e.importPath,archivePath:e.archivePath}))],a=Ke({...Object.fromEntries(e.request.files.map(e=>[`/work/${e.path}`,e.content])),...Object.fromEntries((e.request.dependencyFiles??[]).map(e=>[`/work/${e.path}`,e.content])),"/work/importcfg":qe(i,!1),"/work/importcfg.link":qe(i,!0)}),o={env:Qe(),stdin:new Uint8Array,files:{},cwd:`/work`,outputLimitBytes:33554432},s=[...r.map(t=>({...o,command:`go-compile`,args:Ye(t,e.request.optimization),outputPaths:[t.archivePath]})),{...o,command:`go-compile`,args:Xe(e.request.files,e.request.optimization),outputPaths:[K]},{...o,command:`go-link`,args:Ze(e.request.optimization),outputPaths:[He]}],c=await n.session.compile(a,s);if(!c.ok||!c.result)throw Error(c.error?.message??`The WASM-OJ Go compiler pipeline failed.`);let l=new TextDecoder,ee=c.result.stages.map(e=>l.decode(e.stdout)).join(``),u=c.result.stages.map(e=>l.decode(e.stderr)).join(``),d=c.result.stages.at(-1),f=d?.code===0?d.outputFiles[He]:void 0,te=f!==void 0&&WebAssembly.validate(Uint8Array.from(f));return{success:c.result.stages.length===r.length+2&&c.result.stages.every(e=>e.code===0)&&te,wasm:f,stdout:ee,stderr:u,diagnostics:et(u)}}async function gt(e){try{if(e.type===`shutdown`){Z?.session.dispose(),Z=void 0,mt=void 0,Q=void 0,X.postMessage({type:`shutdown-complete`}),X.close();return}let t=await ht(e);X.postMessage({type:`result`,result:t},t.wasm?[t.wasm.buffer]:[])}catch(e){let t=e instanceof Error?e:Error(String(e));X.postMessage({type:`error`,message:t.message,stack:t.stack})}}function _t(e){if(Q!==void 0&&Q!==e.href)throw Error(`The persistent Go stage cannot change its toolchain asset base URL.`);return Q=e.href,mt??=vt(e),mt}async function vt(t){let[,n,r,i]=await Promise.all([ae({module_or_path:new URL(oe,ft)}),yt(t),bt(t),xt(t)]),a={manifest:r,session:it.hydrate(e,{digest:q.manifestSha256,toolchain:{package:n,memoryLimitBytes:536870912},standardLibraryFiles:We(i,r.packages)})};return Z=a,a}async function yt(e){let t=await St(await Ct(e,q.packageAsset,q.packageCompressedSha256),`Go WebC`);return await $(`decompressed Go WebC`,t,q.packageSha256),t}async function bt(e){return Ue(await wt(e,q.manifestAsset,q.manifestSha256))}async function xt(e){let t=await St(await Ct(e,q.standardLibraryAsset,q.standardLibraryCompressedSha256),`Go standard library`);return await $(`decompressed Go standard library`,t,q.standardLibrarySha256),t}async function St(e,t){let n=e.body;if(!n)throw Error(`Pinned ${t} response has no body.`);return new Uint8Array(await new Response(n.pipeThrough(new DecompressionStream(`gzip`))).arrayBuffer())}async function Ct(e,t,n){let r=await fetch(ze(t,e));if(!r.ok)throw Error(`Unable to load pinned Go toolchain asset '${t}' (${r.status}).`);return await $(t,new Uint8Array(await r.clone().arrayBuffer()),n),r}async function wt(e,t,n){let r=await fetch(ze(t,e));if(!r.ok)throw Error(`Unable to load pinned Go toolchain asset '${t}' (${r.status}).`);let i=new Uint8Array(await r.arrayBuffer());return await $(t,i,n),i}async function $(e,t,n){let r=await tt(t);if(r!==n)throw Error(`Pinned Go toolchain asset '${e}' has digest ${r}; expected ${n}.`)}