@wasm-oj/browser 0.2.3 → 0.2.5
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.
- package/dist/assets/{compiler.worker-c6eOLuJo.js → compiler.worker-Cpp5Hq8T.js} +13 -13
- package/dist/assets/go-stage.worker-BIUc7Tsv.js +2 -0
- package/dist/assets/interactive-side.worker-pP6UC6gL.js +1 -0
- package/dist/assets/{runner.worker-CWkfyiLA.js → runner.worker-BEbZIYKj.js} +9 -9
- package/dist/assets/{runtime-core_bg-s75xwQFA.wasm → runtime-core_bg-CKk6CPFH.wasm} +0 -0
- package/dist/assets/rustc-stage.worker-CXdxGODv.js +23 -0
- package/dist/index.js +4 -4
- package/package.json +3 -3
- package/dist/assets/go-stage.worker-DMewq4N3.js +0 -2
- package/dist/assets/rustc-stage.worker-BJ5u-1c2.js +0 -22
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @wasmer/sdk
|
|
3
|
+
* Wasmer Javascript SDK. It allows interacting with Wasmer Packages in Node.js and the Browser.
|
|
4
|
+
*
|
|
5
|
+
* @version v0.8.0
|
|
6
|
+
* @author Wasmer Engineering Team <engineering@wasmer.io>
|
|
7
|
+
* @homepage https://github.com/wasmerio/wasmer-js
|
|
8
|
+
* @repository git+https://github.com/wasmerio/wasmer-js.git
|
|
9
|
+
* @license MIT
|
|
10
|
+
*/
|
|
11
|
+
let e,t=null;function n(){return t!==null&&t.buffer===e.memory.buffer||(t=new Uint8Array(e.memory.buffer)),t}let r=typeof TextDecoder<`u`?new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error(`TextDecoder not available`)}};typeof TextDecoder<`u`&&r.decode();let i=0;function a(e,t){return function(e,t){return i+=t,i>=2146435072&&(r=typeof TextDecoder<`u`?new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error(`TextDecoder not available`)}},r.decode(),i=t),r.decode(n().slice(e,e+t))}(e>>>=0,t)}let o=0;const s=typeof TextEncoder<`u`?new TextEncoder(`utf-8`):{encode:()=>{throw Error(`TextEncoder not available`)}};function c(e,t,r){if(r===void 0){let r=s.encode(e),i=t(r.length,1)>>>0;return n().subarray(i,i+r.length).set(r),o=r.length,i}let i=e.length,a=t(i,1)>>>0,c=n(),l=0;for(;l<i;l++){let t=e.charCodeAt(l);if(t>127)break;c[a+l]=t}if(l!==i){l!==0&&(e=e.slice(l)),a=r(a,i,i=l+3*e.length,1)>>>0;let t=function(e,t){let n=s.encode(e);return t.set(n),{read:e.length,written:n.length}}(e,n().subarray(a+l,a+i));l+=t.written,a=r(a,i,l,1)>>>0}return o=l,a}let l=null;function u(){return l!==null&&l.buffer===e.memory.buffer||(l=new DataView(e.memory.buffer)),l}function d(e){return e==null}function f(t){let n=e.__externref_table_alloc();return e.__wbindgen_export_5.set(n,t),n}function p(t,n){try{return t.apply(this,n)}catch(t){let n=f(t);e.__wbindgen_exn_store(n)}}function m(e,t){return e>>>=0,n().subarray(e/1,e/1+t)}const h=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>{e.__wbindgen_export_6.get(t.dtor)(t.a,t.b)}));function g(t,n,r,i){let a={a:t,b:n,cnt:1,dtor:r},o=(...t)=>{a.cnt++;let n=a.a;a.a=0;try{return i(n,a.b,...t)}finally{--a.cnt==0?(e.__wbindgen_export_6.get(a.dtor)(n,a.b),h.unregister(a)):a.a=n}};return o.original=a,h.register(o,a,a),o}function ee(t,n,r,i){let a={a:t,b:n,cnt:1,dtor:r},o=(...t)=>{a.cnt++;try{return i(a.a,a.b,...t)}finally{--a.cnt==0&&(e.__wbindgen_export_6.get(a.dtor)(a.a,a.b),a.a=0,h.unregister(a))}};return o.original=a,h.register(o,a,a),o}function _(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+=_(e[0]));for(let r=1;r<t;r++)n+=`, `+_(e[r]);return n+=`]`,n}let n=/\[object ([^\]]+)\]/.exec(toString.call(e)),r;if(!(n&&n.length>1))return toString.call(e);if(r=n[1],r==`Object`)try{return`Object(`+JSON.stringify(e)+`)`}catch{return`Object`}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:r}function v(t){let n=e.__wbindgen_export_5.get(t);return e.__externref_table_dealloc(t),n}function y(e,t){if(!(e instanceof t))throw Error(`expected instance of ${t.name}`)}function te(t){e.setSDKUrl(t)}function ne(t){e.setWorkerUrl(t)}function re(t){var n=d(t)?0:c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;let i=e.initializeLogger(n,r);if(i[1])throw v(i[0])}function b(t,n,r){e.closure542_externref_shim(t,n,r)}function ie(t,n,r){return e.closure752_externref_shim(t,n,r)}function ae(t,n){return e.closure751_externref_shim(t,n)}function oe(t,n,r){let i=e.closure1343_externref_shim_multivalue_shim(t,n,r);if(i[2])throw v(i[1]);return v(i[0])}function se(t,n,r){let i=e.closure1346_externref_shim_multivalue_shim(t,n,r);if(i[1])throw v(i[0])}const ce=[`blob`,`arraybuffer`],le=[`omit`,`same-origin`,`include`],ue=[`same-origin`,`no-cors`,`cors`,`navigate`],de=[`classic`,`module`];typeof FinalizationRegistry>`u`||new FinalizationRegistry((t=>e.__wbg_atom_free(t>>>0,1)));const fe=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>e.__wbg_command_free(t>>>0,1)));var x=class t{static __wrap(e){e>>>=0;let n=Object.create(t.prototype);return n.__wbg_ptr=e,fe.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,fe.unregister(this),e}free(){let t=this.__destroy_into_raw();e.__wbg_command_free(t,0)}get name(){return e.__wbg_get_command_name(this.__wbg_ptr)}set name(t){e.__wbg_set_command_name(this.__wbg_ptr,t)}run(t){return e.command_run(this.__wbg_ptr,d(t)?0:f(t))}binary(){return e.command_binary(this.__wbg_ptr)}};const pe=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>e.__wbg_deployedapp_free(t>>>0,1)));var me=class t{static __wrap(e){e>>>=0;let n=Object.create(t.prototype);return n.__wbg_ptr=e,pe.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,pe.unregister(this),e}free(){let t=this.__destroy_into_raw();e.__wbg_deployedapp_free(t,0)}get id(){let t,n;try{let r=e.__wbg_get_deployedapp_id(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}set id(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;e.__wbg_set_deployedapp_id(this.__wbg_ptr,n,r)}get created_at(){let t,n;try{let r=e.__wbg_get_deployedapp_created_at(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}set created_at(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;e.__wbg_set_deployedapp_created_at(this.__wbg_ptr,n,r)}get version(){let t,n;try{let r=e.__wbg_get_deployedapp_version(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}set version(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;e.__wbg_set_deployedapp_version(this.__wbg_ptr,n,r)}get description(){let t=e.__wbg_get_deployedapp_description(this.__wbg_ptr),n;return t[0]!==0&&(n=a(t[0],t[1]).slice(),e.canonical_abi_free(t[0],1*t[1],1)),n}set description(t){var n=d(t)?0:c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;e.__wbg_set_deployedapp_description(this.__wbg_ptr,n,r)}get yaml_config(){let t,n;try{let r=e.__wbg_get_deployedapp_yaml_config(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}set yaml_config(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;e.__wbg_set_deployedapp_yaml_config(this.__wbg_ptr,n,r)}get user_yaml_config(){let t,n;try{let r=e.__wbg_get_deployedapp_user_yaml_config(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}set user_yaml_config(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;e.__wbg_set_deployedapp_user_yaml_config(this.__wbg_ptr,n,r)}get config(){let t,n;try{let r=e.__wbg_get_deployedapp_config(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}set config(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;e.__wbg_set_deployedapp_config(this.__wbg_ptr,n,r)}get json_config(){let t,n;try{let r=e.__wbg_get_deployedapp_json_config(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}set json_config(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;e.__wbg_set_deployedapp_json_config(this.__wbg_ptr,n,r)}get url(){let t,n;try{let r=e.__wbg_get_deployedapp_url(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}set url(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;e.__wbg_set_deployedapp_url(this.__wbg_ptr,n,r)}get app_id(){let t=e.__wbg_get_deployedapp_app_id(this.__wbg_ptr),n;return t[0]!==0&&(n=a(t[0],t[1]).slice(),e.canonical_abi_free(t[0],1*t[1],1)),n}set app_id(t){var n=d(t)?0:c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;e.__wbg_set_deployedapp_app_id(this.__wbg_ptr,n,r)}};const he=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>e.__wbg_directory_free(t>>>0,1)));var ge=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,he.unregister(this),e}free(){let t=this.__destroy_into_raw();e.__wbg_directory_free(t,0)}__getClassname(){let t,n;try{let r=e.directory___getClassname(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}constructor(t){let n=e.directory_new(d(t)?0:f(t));if(n[2])throw v(n[1]);return this.__wbg_ptr=n[0]>>>0,he.register(this,this.__wbg_ptr,this),this}readDir(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;return e.directory_readDir(this.__wbg_ptr,n,r)}writeFile(t,n){let r=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=o;return e.directory_writeFile(this.__wbg_ptr,r,i,n)}readFile(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;return e.directory_readFile(this.__wbg_ptr,n,r)}readTextFile(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;return e.directory_readTextFile(this.__wbg_ptr,n,r)}createDir(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;return e.directory_createDir(this.__wbg_ptr,n,r)}removeDir(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;return e.directory_removeDir(this.__wbg_ptr,n,r)}removeFile(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;return e.directory_removeFile(this.__wbg_ptr,n,r)}};const _e=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>e.__wbg_instance_free(t>>>0,1)));var ve=class t{static __wrap(e){e>>>=0;let n=Object.create(t.prototype);return n.__wbg_ptr=e,_e.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,_e.unregister(this),e}free(){let t=this.__destroy_into_raw();e.__wbg_instance_free(t,0)}get stdin(){return e.__wbg_get_instance_stdin(this.__wbg_ptr)}get stdout(){return e.__wbg_get_instance_stdout(this.__wbg_ptr)}get stderr(){return e.__wbg_get_instance_stderr(this.__wbg_ptr)}wait(){let t=this.__destroy_into_raw();return e.instance_wait(t)}};typeof FinalizationRegistry>`u`||new FinalizationRegistry((t=>e.__wbg_intounderlyingbytesource_free(t>>>0,1))),typeof FinalizationRegistry>`u`||new FinalizationRegistry((t=>e.__wbg_intounderlyingsink_free(t>>>0,1))),typeof FinalizationRegistry>`u`||new FinalizationRegistry((t=>e.__wbg_intounderlyingsource_free(t>>>0,1)));const ye=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>e.__wbg_publishpackageoutput_free(t>>>0,1)));var be=class t{static __wrap(e){e>>>=0;let n=Object.create(t.prototype);return n.__wbg_ptr=e,ye.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ye.unregister(this),e}free(){let t=this.__destroy_into_raw();e.__wbg_publishpackageoutput_free(t,0)}get manifest(){return e.__wbg_get_publishpackageoutput_manifest(this.__wbg_ptr)}set manifest(t){e.__wbg_set_publishpackageoutput_manifest(this.__wbg_ptr,t)}get hash(){let t,n;try{let r=e.__wbg_get_publishpackageoutput_hash(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}set hash(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;e.__wbg_set_deployedapp_id(this.__wbg_ptr,n,r)}};const xe=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>e.__wbg_readablestreamsource_free(t>>>0,1)));var Se=class t{static __wrap(e){e>>>=0;let n=Object.create(t.prototype);return n.__wbg_ptr=e,xe.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,xe.unregister(this),e}free(){let t=this.__destroy_into_raw();e.__wbg_readablestreamsource_free(t,0)}pull(t){return e.readablestreamsource_pull(this.__wbg_ptr,t)}cancel(){e.readablestreamsource_cancel(this.__wbg_ptr)}get type(){return e.readablestreamsource_type(this.__wbg_ptr)}};const S=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>e.__wbg_runtime_free(t>>>0,1)));var Ce=class t{static __wrap(e){e>>>=0;let n=Object.create(t.prototype);return n.__wbg_ptr=e,S.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,S.unregister(this),e}free(){let t=this.__destroy_into_raw();e.__wbg_runtime_free(t,0)}__getClassname(){let t,n;try{let r=e.runtime___getClassname(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}constructor(t){let n=e.runtime_js_new(d(t)?0:f(t));if(n[2])throw v(n[1]);return this.__wbg_ptr=n[0]>>>0,S.register(this,this.__wbg_ptr,this),this}static global(n){let r=e.runtime_global(d(n)?16777215:+!!n);if(r[2])throw v(r[1]);return r[0]===0?void 0:t.__wrap(r[0])}};typeof FinalizationRegistry>`u`||new FinalizationRegistry((t=>e.__wbg_threadpoolworker_free(t>>>0,1)));const we=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>e.__wbg_trap_free(t>>>0,1)));var Te=class t{static __wrap(e){e>>>=0;let n=Object.create(t.prototype);return n.__wbg_ptr=e,we.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,we.unregister(this),e}free(){let t=this.__destroy_into_raw();e.__wbg_trap_free(t,0)}static __wbg_wasmer_trap(){e.trap___wbg_wasmer_trap()}};const Ee=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>e.__wbg_user_free(t>>>0,1)));var De=class t{static __wrap(e){e>>>=0;let n=Object.create(t.prototype);return n.__wbg_ptr=e,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 t=this.__destroy_into_raw();e.__wbg_user_free(t,0)}get id(){let t,n;try{let r=e.__wbg_get_user_id(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}set id(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;e.__wbg_set_deployedapp_id(this.__wbg_ptr,n,r)}get username(){let t,n;try{let r=e.__wbg_get_user_username(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}set username(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;e.__wbg_set_deployedapp_created_at(this.__wbg_ptr,n,r)}};const Oe=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>e.__wbg_userpackagedefinition_free(t>>>0,1)));var C=class t{static __wrap(e){e>>>=0;let n=Object.create(t.prototype);return n.__wbg_ptr=e,Oe.register(n,n.__wbg_ptr,n),n}static __unwrap(e){return e instanceof t?e.__destroy_into_raw():0}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Oe.unregister(this),e}free(){let t=this.__destroy_into_raw();e.__wbg_userpackagedefinition_free(t,0)}__getClassname(){let t,n;try{let r=e.userpackagedefinition___getClassname(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}get hash(){let t,n;try{let r=e.__wbg_get_userpackagedefinition_hash(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}set hash(t){let n=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=o;e.__wbg_set_userpackagedefinition_hash(this.__wbg_ptr,n,r)}};typeof FinalizationRegistry>`u`||new FinalizationRegistry((t=>e.__wbg_volume_free(t>>>0,1)));const ke=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>e.__wbg_wasmer_free(t>>>0,1)));var Ae=class t{static __wrap(e){e>>>=0;let n=Object.create(t.prototype);return n.__wbg_ptr=e,ke.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ke.unregister(this),e}free(){let t=this.__destroy_into_raw();e.__wbg_wasmer_free(t,0)}static createPackage(t){return e.wasmer_createPackage(t)}static publishPackage(n){return y(n,t),e.wasmer_publishPackage(n.__wbg_ptr)}static whoami(){return e.wasmer_whoami()}__getClassname(){let t,n;try{let r=e.wasmer___getClassname(this.__wbg_ptr);return t=r[0],n=r[1],a(r[0],r[1])}finally{e.canonical_abi_free(t,n,1)}}get entrypoint(){let t=e.__wbg_get_wasmer_entrypoint(this.__wbg_ptr);return t===0?void 0:x.__wrap(t)}set entrypoint(t){let n=0;d(t)||(y(t,x),n=t.__destroy_into_raw()),e.__wbg_set_wasmer_entrypoint(this.__wbg_ptr,n)}get commands(){return e.__wbg_get_wasmer_commands(this.__wbg_ptr)}set commands(t){e.__wbg_set_wasmer_commands(this.__wbg_ptr,t)}get pkg(){let t=e.__wbg_get_wasmer_pkg(this.__wbg_ptr);return t===0?void 0:C.__wrap(t)}set pkg(t){let n=0;d(t)||(y(t,C),n=t.__destroy_into_raw()),e.__wbg_set_wasmer_pkg(this.__wbg_ptr,n)}static fromRegistry(t,n){let r=c(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=o;return e.wasmer_fromRegistry(r,i,d(n)?0:f(n))}static fromFile(t,n){return e.wasmer_fromFile(t,d(n)?0:f(n))}static fromWasm(n,r){let i=e.wasmer_fromWasm(n,d(r)?0:f(r));if(i[2])throw v(i[1]);return t.__wrap(i[0])}static deployApp(t){return e.wasmer_deployApp(t)}static deleteApp(t){return e.wasmer_deleteApp(t)}};typeof FinalizationRegistry>`u`||new FinalizationRegistry((t=>e.__wbg_wasmerpackage_free(t>>>0,1)));const je=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>e.__wbg_writablestreamsink_free(t>>>0,1)));var Me=class t{static __wrap(e){e>>>=0;let n=Object.create(t.prototype);return n.__wbg_ptr=e,je.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,je.unregister(this),e}free(){let t=this.__destroy_into_raw();e.__wbg_writablestreamsink_free(t,0)}close(){return e.writablestreamsink_close(this.__wbg_ptr)}abort(t){e.writablestreamsink_abort(this.__wbg_ptr,t)}write(t){return e.writablestreamsink_write(this.__wbg_ptr,t)}};const Ne=new Set([`basic`,`cors`,`default`]);function Pe(){let t={wbg:{}};return t.wbg.__wbg_BigInt_6e3a01c3311ee796=function(e){return BigInt(e)},t.wbg.__wbg_Error_0497d5bdba9362e5=function(e,t){return Error(a(e,t))},t.wbg.__wbg_String_8f0eb39a4a4c2f66=function(t,n){let r=c(String(n),e.__wbindgen_malloc,e.__wbindgen_realloc),i=o;u().setInt32(t+4,i,!0),u().setInt32(t+0,r,!0)},t.wbg.__wbg_abort_18ba44d46e13d7fe=function(e){e.abort()},t.wbg.__wbg_apiKey_136c64a1dd577ea4=function(t,n){let r=n.apiKey;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.__wbg_append_0342728346e47425=function(){return p((function(e,t,n,r,i){e.append(a(t,n),a(r,i))}),arguments)},t.wbg.__wbg_apply_8745fdcf855d21f5=function(){return p((function(e,t,n){return e.apply(t,n)}),arguments)},t.wbg.__wbg_apply_d49e9c0472b015cc=function(){return p((function(e,t,n){return Reflect.apply(e,t,n)}),arguments)},t.wbg.__wbg_args_ce3906bca5fd2b6f=function(e){let t=e.args;return d(t)?0:f(t)},t.wbg.__wbg_arrayBuffer_d58b858456021d7f=function(){return p((function(e){return e.arrayBuffer()}),arguments)},t.wbg.__wbg_assert_83d6354717cc805b=function(e,t){console.assert(e!==0,t)},t.wbg.__wbg_async_89f8ca583cefeb81=function(e){return e.async},t.wbg.__wbg_bind_1e748fe02d440d48=function(e,t,n){return e.bind(t,n)},t.wbg.__wbg_bind_d075481af636a524=function(e,t,n,r){return e.bind(t,n,r)},t.wbg.__wbg_buffer_a1a27a0dfa70165d=function(e){return e.buffer},t.wbg.__wbg_buffer_e495ba54cee589cc=function(e){return e.buffer},t.wbg.__wbg_byobRequest_56aa768ee4dfed17=function(e){let t=e.byobRequest;return d(t)?0:f(t)},t.wbg.__wbg_byteLength_937f8a52f9697148=function(e){return e.byteLength},t.wbg.__wbg_byteLength_bf6d30ef92bae19b=function(e){return e.byteLength},t.wbg.__wbg_byteOffset_4d94b7170e641898=function(e){return e.byteOffset},t.wbg.__wbg_call_f2db6205e5c51dc8=function(){return p((function(e,t,n){return e.call(t,n)}),arguments)},t.wbg.__wbg_call_fbe8be8bf6436ce5=function(){return p((function(e,t){return e.call(t)}),arguments)},t.wbg.__wbg_close_290fb040af98d3ac=function(){return p((function(e){e.close()}),arguments)},t.wbg.__wbg_close_b2641ef0870e518c=function(){return p((function(e){e.close()}),arguments)},t.wbg.__wbg_close_f203332f9561bf29=function(e){return e.close()},t.wbg.__wbg_colno_1fbc9165b6cd1b26=function(e){return e.colno},t.wbg.__wbg_command_new=function(e){return x.__wrap(e)},t.wbg.__wbg_constructor_1a4f07ad72d5cac3=function(e){return e.constructor},t.wbg.__wbg_createObjectURL_1acd82bf8749f5a9=function(){return p((function(t,n){let r=c(URL.createObjectURL(n),e.__wbindgen_malloc,e.__wbindgen_realloc),i=o;u().setInt32(t+4,i,!0),u().setInt32(t+0,r,!0)}),arguments)},t.wbg.__wbg_crypto_ed58b8e10a292839=function(e){return e.crypto},t.wbg.__wbg_customSections_3a8a19674e217d36=function(e,t,n){return WebAssembly.Module.customSections(e,a(t,n))},t.wbg.__wbg_cwd_13b069cde8a90c68=function(t,n){let r=n.cwd;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.__wbg_data_fffd43bf0ca75fff=function(e){return e.data},t.wbg.__wbg_defineProperty_6a428a581612fed4=function(e,t,n){return Object.defineProperty(e,t,n)},t.wbg.__wbg_deleteProperty_ec71c2c829351683=function(){return p((function(e,t){return Reflect.deleteProperty(e,t)}),arguments)},t.wbg.__wbg_deployedapp_new=function(e){return me.__wrap(e)},t.wbg.__wbg_desiredSize_dd7689d8aa7da7dd=function(e,t){let n=t.desiredSize;u().setFloat64(e+8,d(n)?0:n,!0),u().setInt32(e+0,!d(n),!0)},t.wbg.__wbg_done_4d01f352bade43b7=function(e){return e.done},t.wbg.__wbg_enqueue_a62faa171c4fd287=function(){return p((function(e,t){e.enqueue(t)}),arguments)},t.wbg.__wbg_entries_41651c850143b957=function(e){return Object.entries(e)},t.wbg.__wbg_env_6b7462d491e7d2ae=function(e){return e.env},t.wbg.__wbg_error_1950bd19b566135e=function(e,t){e.error(t)},t.wbg.__wbg_error_7534b8e9a36f1ab4=function(t,n){let r,i;try{r=t,i=n,console.error(a(t,n))}finally{e.canonical_abi_free(r,i,1)}},t.wbg.__wbg_exports_5cb55953fb23c405=function(e){return e.exports},t.wbg.__wbg_exports_93f662ec1dd2b1e2=function(e){return WebAssembly.Module.exports(e)},t.wbg.__wbg_fetch_03b6c973bb6da9b8=function(e){return fetch(e)},t.wbg.__wbg_fetch_6e679fcfa9759479=function(e,t){return e.fetch(t)},t.wbg.__wbg_fetch_a8e43a4e138dfc93=function(e,t){return e.fetch(t)},t.wbg.__wbg_filename_5c8881452d91f4fd=function(t,n){let r=c(n.filename,e.__wbindgen_malloc,e.__wbindgen_realloc),i=o;u().setInt32(t+4,i,!0),u().setInt32(t+0,r,!0)},t.wbg.__wbg_for_555902b1a859c603=function(e,t){return Symbol.for(a(e,t))},t.wbg.__wbg_from_12ff8e47307bd4c7=function(e){return Array.from(e)},t.wbg.__wbg_getPrototypeOf_a1794d62c12daab4=function(){return p((function(e){return Reflect.getPrototypeOf(e)}),arguments)},t.wbg.__wbg_getRandomValues_bcb4912f16000dc4=function(){return p((function(e,t){e.getRandomValues(t)}),arguments)},t.wbg.__wbg_getTime_2afe67905d873e92=function(e){return e.getTime()},t.wbg.__wbg_getTimezoneOffset_31f33c0868da345e=function(e){return e.getTimezoneOffset()},t.wbg.__wbg_get_92470be87867c2e5=function(){return p((function(e,t){return Reflect.get(e,t)}),arguments)},t.wbg.__wbg_get_a131a44bd1eb6979=function(e,t){return e[t>>>0]},t.wbg.__wbg_get_be8d302ec5bf8863=function(){return p((function(e,t){return e.get(t>>>0)}),arguments)},t.wbg.__wbg_getwithrefkey_1dc361bd10053bfe=function(e,t){return e[t]},t.wbg.__wbg_grow_0a942972adfcde67=function(){return p((function(e,t){return e.grow(t>>>0)}),arguments)},t.wbg.__wbg_grow_ae9c73e837b2d936=function(e,t){return e.grow(t>>>0)},t.wbg.__wbg_grow_d034989fce14cc8e=function(){return p((function(e,t){return e.grow(t>>>0)}),arguments)},t.wbg.__wbg_hardwareConcurrency_10d7194b406e56d2=function(e){return e.hardwareConcurrency},t.wbg.__wbg_hardwareConcurrency_fd778a5fdf975150=function(e){return e.hardwareConcurrency},t.wbg.__wbg_has_809e438ee9d787a7=function(){return p((function(e,t){return Reflect.has(e,t)}),arguments)},t.wbg.__wbg_headers_0f0cbdc6290b6780=function(e){return e.headers},t.wbg.__wbg_headers_67fbc7839fe933b3=function(e){return e.headers},t.wbg.__wbg_imports_1f5c972c2e57dfb5=function(e){return WebAssembly.Module.imports(e)},t.wbg.__wbg_instance_new=function(e){return ve.__wrap(e)},t.wbg.__wbg_instanceof_ArrayBuffer_a8b6f580b363f2bc=function(e){let t;try{t=e instanceof ArrayBuffer}catch{t=!1}return t},t.wbg.__wbg_instanceof_Blob_2688511ca2a71508=function(e){let t;try{t=e instanceof Blob}catch{t=!1}return t},t.wbg.__wbg_instanceof_Date_ef7e3d6f544a9d16=function(e){let t;try{t=e instanceof Date}catch{t=!1}return t},t.wbg.__wbg_instanceof_Error_58a92d81483a4b16=function(e){let t;try{t=e instanceof Error}catch{t=!1}return t},t.wbg.__wbg_instanceof_Function_4de5a228b53c20c3=function(e){let t;try{t=e instanceof Function}catch{t=!1}return t},t.wbg.__wbg_instanceof_Global_d43eb3e1373e574d=function(e){let t;try{t=e instanceof WebAssembly.Global}catch{t=!1}return t},t.wbg.__wbg_instanceof_Map_80cc65041c96417a=function(e){let t;try{t=e instanceof Map}catch{t=!1}return t},t.wbg.__wbg_instanceof_Memory_613951003465ef5c=function(e){let t;try{t=e instanceof WebAssembly.Memory}catch{t=!1}return t},t.wbg.__wbg_instanceof_Module_ac6579472cc013d8=function(e){let t;try{t=e instanceof WebAssembly.Module}catch{t=!1}return t},t.wbg.__wbg_instanceof_Object_9a05796038b7a8f6=function(e){let t;try{t=e instanceof Object}catch{t=!1}return t},t.wbg.__wbg_instanceof_RangeError_67b19cb7651a2151=function(e){let t;try{t=e instanceof RangeError}catch{t=!1}return t},t.wbg.__wbg_instanceof_Response_e80ce8b7a2b968d2=function(e){let t;try{t=e instanceof Response}catch{t=!1}return t},t.wbg.__wbg_instanceof_Table_a5fae5b77c0e21e8=function(e){let t;try{t=e instanceof WebAssembly.Table}catch{t=!1}return t},t.wbg.__wbg_instanceof_Tag_ff306496211677da=function(e){let t;try{t=e instanceof WebAssembly.Tag}catch{t=!1}return t},t.wbg.__wbg_instanceof_TypeError_16d245a01d4dd626=function(e){let t;try{t=e instanceof TypeError}catch{t=!1}return t},t.wbg.__wbg_instanceof_Uint8Array_ca460677bc155827=function(e){let t;try{t=e instanceof Uint8Array}catch{t=!1}return t},t.wbg.__wbg_instanceof_Window_68f3f67bad1729c1=function(e){let t;try{t=e instanceof Window}catch{t=!1}return t},t.wbg.__wbg_instanceof_WorkerGlobalScope_11f8a14c11024785=function(e){let t;try{t=e instanceof WorkerGlobalScope}catch{t=!1}return t},t.wbg.__wbg_isArray_2a07fd175d45c496=function(e){return Array.isArray(e)},t.wbg.__wbg_isArray_5f090bed72bd4f89=function(e){return Array.isArray(e)},t.wbg.__wbg_isSafeInteger_90d7c4674047d684=function(e){return Number.isSafeInteger(e)},t.wbg.__wbg_is_49ee71a294f7d2fe=function(e,t){return Object.is(e,t)},t.wbg.__wbg_iterator_4068add5b2aef7a6=function(){return Symbol.iterator},t.wbg.__wbg_keys_42062809bf87339e=function(e){return Object.keys(e)},t.wbg.__wbg_length_865e6e8de4a8c6cb=function(e){return e.length},t.wbg.__wbg_length_ab6d22b5ead75c72=function(e){return e.length},t.wbg.__wbg_length_f00ec12454a5d9fd=function(e){return e.length},t.wbg.__wbg_lineno_9fe2a23a82cebd53=function(e){return e.lineno},t.wbg.__wbg_locked_c5cc88823268db66=function(e){return e.locked},t.wbg.__wbg_log_ea240990d83e374e=function(e){console.log(e)},t.wbg.__wbg_message_4159c15dac08c5e9=function(e){return e.message},t.wbg.__wbg_message_44ef9b801b7d8bc3=function(t,n){let r=c(n.message,e.__wbindgen_malloc,e.__wbindgen_realloc),i=o;u().setInt32(t+4,i,!0),u().setInt32(t+0,r,!0)},t.wbg.__wbg_mount_dfb06836b0f9b20b=function(e){return e.mount},t.wbg.__wbg_msCrypto_0a36e2ec3a343d26=function(e){return e.msCrypto},t.wbg.__wbg_navigator_6db993f5ffeb46be=function(e){return e.navigator},t.wbg.__wbg_navigator_fc64ba1417939b25=function(e){return e.navigator},t.wbg.__wbg_networkGateway_79e326cb5c82e7fd=function(t,n){let r=n.networkGateway;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.__wbg_new0_97314565408dea38=function(){return new Date},t.wbg.__wbg_new_07b483f72211fd66=function(){return{}},t.wbg.__wbg_new_104a6fcd57ac32c0=function(){return p((function(){return new FileReader}),arguments)},t.wbg.__wbg_new_181343b7eb238d99=function(e){return new Int32Array(e)},t.wbg.__wbg_new_186abcfdff244e42=function(){return p((function(){return new AbortController}),arguments)},t.wbg.__wbg_new_2debb2b422bd07bd=function(){return p((function(e,t){return new WebAssembly.Global(e,t)}),arguments)},t.wbg.__wbg_new_39fae4e38868373c=function(){return p((function(e,t){return new Worker(a(e,t))}),arguments)},t.wbg.__wbg_new_476169e6d59f23ae=function(e,t){return Error(a(e,t))},t.wbg.__wbg_new_4796e1cd2eb9ea6d=function(){return p((function(){return new Headers}),arguments)},t.wbg.__wbg_new_58353953ad2097cc=function(){return[]},t.wbg.__wbg_new_5dd74caa1b362828=function(){return p((function(e){return new WebAssembly.Module(e)}),arguments)},t.wbg.__wbg_new_7449da607adc249f=function(){return p((function(e,t){return new WebAssembly.Instance(e,t)}),arguments)},t.wbg.__wbg_new_75fba833e24e4ae9=function(){return p((function(e){return new WebAssembly.Memory(e)}),arguments)},t.wbg.__wbg_new_8a6f238a6ece86ea=function(){return Error()},t.wbg.__wbg_new_a2957aa5684de228=function(e){return new Date(e)},t.wbg.__wbg_new_a4e7a0370d48e1b4=function(){return p((function(e){return new ReadableStreamDefaultReader(e)}),arguments)},t.wbg.__wbg_new_a979b4b45bd55c7f=function(){return new Map},t.wbg.__wbg_new_b60148568efca43b=function(e,t){return TypeError(a(e,t))},t.wbg.__wbg_new_e30c39c06edaabf2=function(t,n){try{var r={a:t,b:n};return new Promise(((t,n)=>{let i=r.a;r.a=0;try{return function(t,n,r,i){e.closure191_externref_shim(t,n,r,i)}(i,r.b,t,n)}finally{r.a=i}}))}finally{r.a=r.b=0}},t.wbg.__wbg_new_e52b3efaaa774f96=function(e){return new Uint8Array(e)},t.wbg.__wbg_new_e769da3b652f0d9f=function(){return p((function(e){return new WebAssembly.Table(e)}),arguments)},t.wbg.__wbg_new_f42a001532528172=function(){return p((function(e,t){return new WebSocket(a(e,t))}),arguments)},t.wbg.__wbg_new_fd4b538754de98d6=function(){return p((function(e){return new WebAssembly.Tag(e)}),arguments)},t.wbg.__wbg_newfromslice_7c05ab1297cb2d88=function(e,t){return new Uint8Array(m(e,t))},t.wbg.__wbg_newnoargs_ff528e72d35de39a=function(e,t){return Function(a(e,t))},t.wbg.__wbg_newwithargs_17a05078fc85d3aa=function(e,t,n,r){return Function(a(e,t),a(n,r))},t.wbg.__wbg_newwithbyteoffsetandlength_3b01ecda099177e8=function(e,t,n){return new Uint8Array(e,t>>>0,n>>>0)},t.wbg.__wbg_newwithlength_08f872dc1e3ada2e=function(e){return new Uint8Array(e>>>0)},t.wbg.__wbg_newwithlength_6ee231411efd06b6=function(e){return Array(e>>>0)},t.wbg.__wbg_newwithoptions_9931e161b714ebf9=function(){return p((function(e,t,n){return new Worker(a(e,t),n)}),arguments)},t.wbg.__wbg_newwithstrandinit_f8a9dbe009d6be37=function(){return p((function(e,t,n){return new Request(a(e,t),n)}),arguments)},t.wbg.__wbg_newwithu8arraysequenceandoptions_3b5b6ab7317ffd8f=function(){return p((function(e,t){return new Blob(e,t)}),arguments)},t.wbg.__wbg_newwithunderlyingsinkandstrategy_481c2b5a223a4560=function(){return p((function(e,t){return new WritableStream(e,t)}),arguments)},t.wbg.__wbg_newwithunderlyingsourceandstrategy_594ea2be3e0723ff=function(){return p((function(e,t){return new ReadableStream(e,t)}),arguments)},t.wbg.__wbg_next_8bb824d217961b5d=function(e){return e.next},t.wbg.__wbg_next_e2da48d8fff7439a=function(){return p((function(e){return e.next()}),arguments)},t.wbg.__wbg_node_02999533c4ea02e3=function(e){return e.node},t.wbg.__wbg_now_eb0821f3bd9f6529=function(){return Date.now()},t.wbg.__wbg_of_995ab9c48c3965f1=function(e,t,n){return[e,t,n]},t.wbg.__wbg_postMessage_54ce7f4b41ac732e=function(){return p((function(e,t){e.postMessage(t)}),arguments)},t.wbg.__wbg_postMessage_95ef4554c6b7ca0c=function(){return p((function(e,t){e.postMessage(t)}),arguments)},t.wbg.__wbg_process_5c1d670bc53614b8=function(e){return e.process},t.wbg.__wbg_program_0ccd177127e926dc=function(e){return e.program},t.wbg.__wbg_publishpackageoutput_new=function(e){return be.__wrap(e)},t.wbg.__wbg_push_73fd7b5550ebf707=function(e,t){return e.push(t)},t.wbg.__wbg_queueMicrotask_46c1df247678729f=function(e){queueMicrotask(e)},t.wbg.__wbg_queueMicrotask_8acf3ccb75ed8d11=function(e){return e.queueMicrotask},t.wbg.__wbg_randomFillSync_ab2cfe79ebbf2740=function(){return p((function(e,t){e.randomFillSync(t)}),arguments)},t.wbg.__wbg_random_210bb7fbfa33591d=function(){return Math.random()},t.wbg.__wbg_readAsArrayBuffer_ec86f70be9ee80e9=function(){return p((function(e,t){e.readAsArrayBuffer(t)}),arguments)},t.wbg.__wbg_read_f4b89f69cc51efc7=function(e){return e.read()},t.wbg.__wbg_readablestreamsource_new=function(e){return Se.__wrap(e)},t.wbg.__wbg_redirected_380499cd18bc27c0=function(e){return e.redirected},t.wbg.__wbg_registry_0193688f92324c7c=function(e){let t=e.registry;return d(t)?0:f(t)},t.wbg.__wbg_releaseLock_c589dd51c0812aca=function(e){e.releaseLock()},t.wbg.__wbg_require_79b1e9274cde3c87=function(){return p((function(){return module.require}),arguments)},t.wbg.__wbg_resolve_0dac8c580ffd4678=function(e){return Promise.resolve(e)},t.wbg.__wbg_respond_b227f1c3be2bb879=function(){return p((function(e,t){e.respond(t>>>0)}),arguments)},t.wbg.__wbg_result_142fc4d88cbccb26=function(){return p((function(e){return e.result}),arguments)},t.wbg.__wbg_runtime_3a007260b7cad09f=function(e){return e.runtime},t.wbg.__wbg_send_05456d2bf190b017=function(){return p((function(e,t){e.send(t)}),arguments)},t.wbg.__wbg_setTimeout_84a114fc6c4403f8=function(){return p((function(e,t,n){return e.setTimeout(t,n)}),arguments)},t.wbg.__wbg_setTimeout_906fea9a7279f446=function(){return p((function(e,t,n){return e.setTimeout(t,n)}),arguments)},t.wbg.__wbg_set_3f1d0b984ed272ed=function(e,t,n){e[t]=n},t.wbg.__wbg_set_7422acbe992d64ab=function(e,t,n){e[t>>>0]=n},t.wbg.__wbg_set_b042eef31c50834d=function(){return p((function(e,t,n,r,i){e.set(a(t,n),a(r,i))}),arguments)},t.wbg.__wbg_set_c43293f93a35998a=function(){return p((function(e,t,n){return Reflect.set(e,t,n)}),arguments)},t.wbg.__wbg_set_d6bdfd275fb8a4ce=function(e,t,n){return e.set(t,n)},t.wbg.__wbg_set_eeace154fc5ce736=function(){return p((function(e,t,n){e.set(t>>>0,n)}),arguments)},t.wbg.__wbg_set_fe4e79d1ed3b0e9b=function(e,t,n){e.set(t,n>>>0)},t.wbg.__wbg_setbinaryType_52787d6025601cc5=function(e,t){e.binaryType=ce[t]},t.wbg.__wbg_setbody_971ec015fc13d6b4=function(e,t){e.body=t},t.wbg.__wbg_setcredentials_920d91fb5984c94a=function(e,t){e.credentials=le[t]},t.wbg.__wbg_setheaders_65a4eb4c0443ae61=function(e,t){e.headers=t},t.wbg.__wbg_sethighwatermark_3017ad772d071dcb=function(e,t){e.highWaterMark=t},t.wbg.__wbg_setmethod_8ce1be0b4d701b7c=function(e,t,n){e.method=a(t,n)},t.wbg.__wbg_setmode_bd35f026f55b6247=function(e,t){e.mode=ue[t]},t.wbg.__wbg_setname_9b01ac306adf8bfd=function(e,t,n){e.name=a(t,n)},t.wbg.__wbg_setonclose_c6db38f935250174=function(e,t){e.onclose=t},t.wbg.__wbg_setonerror_890bfd1ff86e9c78=function(e,t){e.onerror=t},t.wbg.__wbg_setonloadend_a6c211075855db45=function(e,t){e.onloadend=t},t.wbg.__wbg_setonmessage_49ca623a77cfb3e6=function(e,t){e.onmessage=t},t.wbg.__wbg_setonmessage_f6cf46183c427754=function(e,t){e.onmessage=t},t.wbg.__wbg_setonopen_1475cbeb761c101f=function(e,t){e.onopen=t},t.wbg.__wbg_setsignal_8e72abfe7ee03c97=function(e,t){e.signal=t},t.wbg.__wbg_setsize_13f2192310db9b34=function(e,t){e.size=t},t.wbg.__wbg_settype_acc38e64fddb9e3f=function(e,t,n){e.type=a(t,n)},t.wbg.__wbg_settype_ca83ae32b7117898=function(e,t){e.type=de[t]},t.wbg.__wbg_setvalue_bd9df7c968e4b416=function(e,t){e.value=t},t.wbg.__wbg_signal_b96223519a041faa=function(e){return e.signal},t.wbg.__wbg_stack_0ed75d68575b0f3c=function(t,n){let r=c(n.stack,e.__wbindgen_malloc,e.__wbindgen_realloc),i=o;u().setInt32(t+4,i,!0),u().setInt32(t+0,r,!0)},t.wbg.__wbg_static_accessor_GLOBAL_487c52c58d65314d=function(){let e=typeof global>`u`?null:global;return d(e)?0:f(e)},t.wbg.__wbg_static_accessor_GLOBAL_THIS_ee9704f328b6b291=function(){let e=typeof globalThis>`u`?null:globalThis;return d(e)?0:f(e)},t.wbg.__wbg_static_accessor_SELF_78c9e3071b912620=function(){let e=typeof self>`u`?null:self;return d(e)?0:f(e)},t.wbg.__wbg_static_accessor_WINDOW_a093d21393777366=function(){let e=typeof window>`u`?null:window;return d(e)?0:f(e)},t.wbg.__wbg_status_a54682bbe52f9058=function(e){return e.status},t.wbg.__wbg_stdin_4d05ba90fc2c39de=function(e){let t=e.stdin;return d(t)?0:f(t)},t.wbg.__wbg_stringify_c242842b97f054cc=function(){return p((function(e){return JSON.stringify(e)}),arguments)},t.wbg.__wbg_subarray_dd4ade7d53bd8e26=function(e,t,n){return e.subarray(t>>>0,n>>>0)},t.wbg.__wbg_terminate_af36b01db24a1745=function(e){e.terminate()},t.wbg.__wbg_text_ec0e22f60e30dd2f=function(){return p((function(e){return e.text()}),arguments)},t.wbg.__wbg_then_82ab9fb4080f1707=function(e,t,n){return e.then(t,n)},t.wbg.__wbg_then_db882932c0c714c6=function(e,t){return e.then(t)},t.wbg.__wbg_toString_2a748bb7135f7e4d=function(t,n,r){let i=c(n.toString(r),e.__wbindgen_malloc,e.__wbindgen_realloc),a=o;u().setInt32(t+4,a,!0),u().setInt32(t+0,i,!0)},t.wbg.__wbg_toString_bc7a05a172b5cf14=function(e){return e.toString()},t.wbg.__wbg_trap_new=function(e){return Te.__wrap(e)},t.wbg.__wbg_url_e6ed869ea05b7a71=function(t,n){let r=c(n.url,e.__wbindgen_malloc,e.__wbindgen_realloc),i=o;u().setInt32(t+4,i,!0),u().setInt32(t+0,r,!0)},t.wbg.__wbg_userAgent_470abfd84e4eedcb=function(){return p((function(t,n){let r=c(n.userAgent,e.__wbindgen_malloc,e.__wbindgen_realloc),i=o;u().setInt32(t+4,i,!0),u().setInt32(t+0,r,!0)}),arguments)},t.wbg.__wbg_userAgent_a24a493cd80cbd00=function(){return p((function(t,n){let r=c(n.userAgent,e.__wbindgen_malloc,e.__wbindgen_realloc),i=o;u().setInt32(t+4,i,!0),u().setInt32(t+0,r,!0)}),arguments)},t.wbg.__wbg_user_new=function(e){return De.__wrap(e)},t.wbg.__wbg_userpackagedefinition_unwrap=function(e){return C.__unwrap(e)},t.wbg.__wbg_uses_7494620cc35a86ad=function(e){let t=e.uses;return d(t)?0:f(t)},t.wbg.__wbg_value_17b896954e14f896=function(e){return e.value},t.wbg.__wbg_value_c22dc41e42f5d813=function(e){return e.value},t.wbg.__wbg_value_f8fe3ce05407a213=function(e){return e.value},t.wbg.__wbg_versions_c71aa1626a93e0a1=function(e){return e.versions},t.wbg.__wbg_view_a9ad80dcbad7cf1c=function(e){let t=e.view;return d(t)?0:f(t)},t.wbg.__wbg_waitAsync_c3398694eaa5aeab=function(e,t,n){return Atomics.waitAsync(e,t>>>0,n)},t.wbg.__wbg_waitAsync_e36f18e2e26c3b7d=function(){return Atomics.waitAsync},t.wbg.__wbg_wasmer_new=function(e){return Ae.__wrap(e)},t.wbg.__wbg_writablestreamsink_new=function(e){return Me.__wrap(e)},t.wbg.__wbindgen_array_new=function(){return[]},t.wbg.__wbindgen_array_push=function(e,t){e.push(t)},t.wbg.__wbindgen_as_number=function(e){return+e},t.wbg.__wbindgen_bigint_from_i64=function(e){return e},t.wbg.__wbindgen_bigint_from_u128=function(e,t){return BigInt.asUintN(64,e)<<BigInt(64)|BigInt.asUintN(64,t)},t.wbg.__wbindgen_bigint_from_u64=function(e){return BigInt.asUintN(64,e)},t.wbg.__wbindgen_bigint_get_as_i64=function(e,t){let n=typeof t==`bigint`?t:void 0;u().setBigInt64(e+8,d(n)?BigInt(0):n,!0),u().setInt32(e+0,!d(n),!0)},t.wbg.__wbindgen_boolean_get=function(e){return typeof e==`boolean`?+!!e:2},t.wbg.__wbindgen_cb_drop=function(e){let t=e.original;return t.cnt--==1&&(t.a=0,!0)},t.wbg.__wbindgen_closure_wrapper13762=function(e,t,n){return g(e,t,1342,oe)},t.wbg.__wbindgen_closure_wrapper13766=function(e,t,n){return g(e,t,1342,oe)},t.wbg.__wbindgen_closure_wrapper13769=function(e,t,n){return g(e,t,1342,se)},t.wbg.__wbindgen_closure_wrapper7191=function(e,t,n){return g(e,t,541,b)},t.wbg.__wbindgen_closure_wrapper7199=function(e,t,n){return g(e,t,541,b)},t.wbg.__wbindgen_closure_wrapper8876=function(e,t,n){return ee(e,t,750,ie)},t.wbg.__wbindgen_closure_wrapper9091=function(e,t,n){return ee(e,t,750,ae)},t.wbg.__wbindgen_closure_wrapper9126=function(e,t,n){return g(e,t,750,b)},t.wbg.__wbindgen_closure_wrapper9506=function(e,t,n){return g(e,t,750,b)},t.wbg.__wbindgen_debug_string=function(t,n){let r=c(_(n),e.__wbindgen_malloc,e.__wbindgen_realloc),i=o;u().setInt32(t+4,i,!0),u().setInt32(t+0,r,!0)},t.wbg.__wbindgen_function_table=function(){return e.__wbindgen_export_6},t.wbg.__wbindgen_in=function(e,t){return e in t},t.wbg.__wbindgen_init_externref_table=function(){let t=e.__wbindgen_export_5,n=t.grow(4);t.set(0,void 0),t.set(n+0,void 0),t.set(n+1,null),t.set(n+2,!0),t.set(n+3,!1)},t.wbg.__wbindgen_is_bigint=function(e){return typeof e==`bigint`},t.wbg.__wbindgen_is_falsy=function(e){return!e},t.wbg.__wbindgen_is_function=function(e){return typeof e==`function`},t.wbg.__wbindgen_is_null=function(e){return e===null},t.wbg.__wbindgen_is_object=function(e){return typeof e==`object`&&!!e},t.wbg.__wbindgen_is_string=function(e){return typeof e==`string`},t.wbg.__wbindgen_is_undefined=function(e){return e===void 0},t.wbg.__wbindgen_jsval_eq=function(e,t){return e===t},t.wbg.__wbindgen_jsval_loose_eq=function(e,t){return e==t},t.wbg.__wbindgen_link_db87ac8434ca3f93=function(t){let n=c(URL.createObjectURL===void 0?`data:application/javascript,onmessage%20%3D%20function%20(ev)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20let%20%5Bia%2C%20index%2C%20value%5D%20%3D%20ev.data%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20ia%20%3D%20new%20Int32Array(ia.buffer)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20let%20result%20%3D%20Atomics.wait(ia%2C%20index%2C%20value)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20postMessage(result)%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20`:URL.createObjectURL(new Blob([`onmessage = function (ev) {
|
|
12
|
+
let [ia, index, value] = ev.data;
|
|
13
|
+
ia = new Int32Array(ia.buffer);
|
|
14
|
+
let result = Atomics.wait(ia, index, value);
|
|
15
|
+
postMessage(result);
|
|
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 Le.__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 Fe(e,t){e.wbg.memory=t||new WebAssembly.Memory({initial:34,maximum:16384,shared:!0})}function Ie(n,r,i){if(e=n.exports,Le.__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 Le(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=Pe();(typeof t==`string`||typeof Request==`function`&&t instanceof Request||typeof URL==`function`&&t instanceof URL)&&(t=fetch(t)),Fe(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||!Ne.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 Ie(a,o,r)}const Re=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={},ze(e);let n=await Le(e.module,e.memory);return e.log&&re(e.log),e.workerUrl&&ne(e.workerUrl.toString()),e.sdkUrl?te(e.sdkUrl.toString()):te(new URL(``+new URL(`index-CMYYN-aK.mjs`,import.meta.url).href,``+import.meta.url).toString()),n},ze=e=>{globalThis.__WASMER_REGISTRY__={registryUrl:e.registryUrl,token:e.token}};var Be=``+new URL(`wasmer_js_bg-lccPpAdN.wasm`,import.meta.url).href;const Ve=`wasm-ld`,w=`/work/build/main.o`,He=`/work/build/main.wasm`,Ue=`__WASM_OJ_RUST_OBJECT__`,We=`__WASM_OJ_RUST_ALLOCATOR_BITCODE__`,Ge=`__WASM_OJ_RUST_OUTPUT__`;function Ke(e){if(!Ye(e))throw Error(`Pinned Rust linker arguments must be an object.`);if(e.objectPlaceholder!==`__WASM_OJ_RUST_OBJECT__`)throw Error(`Pinned Rust linker object placeholder does not match the compiler contract.`);if(e.outputPlaceholder!==`__WASM_OJ_RUST_OUTPUT__`)throw Error(`Pinned Rust linker output placeholder does not match the compiler contract.`);if(e.allocatorPlaceholder!==`__WASM_OJ_RUST_ALLOCATOR_BITCODE__`)throw Error(`Pinned Rust linker allocator placeholder does not match the compiler contract.`);let t=Je(`debug`,e.debug,`-O0`),n=Je(`release`,e.release,`-O2`);return Object.freeze({objectPlaceholder:Ue,allocatorPlaceholder:We,outputPlaceholder:Ge,debug:t,release:n})}function qe(e,t,n){if(!/^\/work\/build\/main\.[a-z0-9]+\.rcgu\.bc$/i.test(n))throw Error(`Rust allocator bitcode has unexpected path '${n}'.`);return(t===`release`?e.release:e.debug).map(t=>t===e.objectPlaceholder?w:t===e.allocatorPlaceholder?n:t===e.outputPlaceholder?He:t)}function Je(e,t,n){if(!Array.isArray(t)||t.length===0||t.some(e=>typeof e!=`string`))throw Error(`Pinned Rust ${e} linker arguments must be a non-empty string array.`);let r=t;T(r,Ue,`${e} object placeholder`),T(r,We,`${e} allocator placeholder`);let i=T(r,Ge,`${e} output placeholder`);if(i===0||r[i-1]!==`-o`)throw Error(`Pinned Rust ${e} linker output placeholder must follow '-o'.`);if(T(r,n,`${e} linker optimization`),!r.includes(`--gc-sections`)||!r.includes(`--shared-memory`))throw Error(`Pinned Rust ${e} linker arguments omit required WebAssembly flags.`);if(!r.some(e=>e.endsWith(`/self-contained/crt1-command.o`)))throw Error(`Pinned Rust ${e} linker arguments omit the WASI command startup object.`);if(!r.some(e=>e.startsWith(`/rust/`)&&e.endsWith(`.rlib`)))throw Error(`Pinned Rust ${e} linker arguments omit the Rust standard library.`);for(let t of r){if(!t||t.includes(`\0`))throw Error(`Pinned Rust ${e} linker arguments contain an empty or NUL-bearing value.`);if(t.startsWith(`@`))throw Error(`Pinned Rust ${e} linker arguments unexpectedly use a response file.`);if(t.startsWith(`/`)&&(!t.startsWith(`/rust/`)||t.split(`/`).includes(`..`)))throw Error(`Pinned Rust ${e} linker arguments reference unmounted path '${t}'.`)}return Object.freeze([...r])}function T(e,t,n){let r=e.flatMap((e,n)=>e===t?[n]:[]);if(r.length!==1)throw Error(`Pinned Rust ${n} must occur exactly once.`);return r[0]}function Ye(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const Xe=/^main\.[a-z0-9]+\.rcgu\.bc$/i;function Ze(e){let t=e.filter(e=>Xe.test(e)).sort();if(t.length>1)throw Error(`rustc emitted multiple allocator bitcode modules: ${t.join(`, `)}.`);return t[0]}function Qe(e){if(e.byteLength<4)return!1;let t=e[0]===66&&e[1]===67&&e[2]===192&&e[3]===222,n=e[0]===222&&e[1]===192&&e[2]===23&&e[3]===11;return t||n}Object.freeze([`c`,`cpp`,`rust`,`python`,`javascript`,`typescript`,`go`]),Object.freeze([`cargo`,`npm`,`pypi`,`go`,`cpp`]);const E=`wasm-oj-v2`;Object.freeze({clangPins:`${E}/clang-pins`,clangLibcxxPch:`${E}/clang-libcxx-pch`,clangToolchain:`${E}/clang-toolchain`,compileBatch:`${E}/compile-batch`,compileTrace:`${E}/compile-trace`,conformance:`${E}/conformance`,conformanceEvidence:`${E}/conformance-evidence`,conformanceMatrix:`${E}/conformance-matrix`,cppDependencyLock:`${E}/cpp-dependency-lock`,dependencyLock:`${E}/dependency-lock`,dependencyOfflineBundle:`${E}/dependency-offline-bundle`,incrementalBuildGraph:`${E}/incremental-build-graph`,interactiveRequest:`${E}/interactive-request`,goToolchain:`${E}/go-toolchain`,objectCache:`${E}/object-cache`,pythonToolchain:`${E}/python-toolchain`,replayBundle:`${E}/replay-bundle`,rustToolchain:`${E}/rust-toolchain`,runRequest:`${E}/run-request`,runtimeBundle:`${E}/runtime-bundle`,runtimeCoreLicenses:`${E}/runtime-core-licenses`,thirdPartyComponents:`${E}/third-party-components`,wasmerSdkLicenses:`${E}/wasmer-sdk-licenses`,toolchainPackage:`${E}/toolchain-package`}),Object.freeze({database:`${E}:storage`,databaseVersion:2,dependencyCache:`${E}:dependencies`,incrementalBuildCache:`${E}:incremental-build-cache`,runtimeFilesCache:`${E}:runtime-files`,toolchainCache:`${E}:toolchains`});const D=`22.0.0-git20542-10`,$e=`wasm-oj/clang@${D}`,et=`/toolchains/clang-${D}.webc.gz.bin`,tt=`/toolchains/clang-${D}.cc1-pins.json`,nt=`/toolchains/clang-${D}.manifest.json`,rt=`/toolchains/clang-${D}.libcxx-pch.json`,it=`/toolchains/clang-${D}.cpp-debug.pch.gz.bin`,at=`/toolchains/clang-${D}.cpp-release.pch.gz.bin`,O=`7f10d90b8e52b270f04874641a1d0bf9e94e85b4f6c7573a774cebbc6d32552a`,ot=`21ded33b9c6d4e1aaad5528c940bdaf6c3e84be77ea8f522f018ca7289a2a224`,k=`895eee17c63b1112c84adcc4ddbcb38e0c18e53bff15f50a8689b9b82d87b1ff`,A=`6382dcdfb6a2da49032a0e08da3b1fb490eb24432be85c3c12e3e871a5065273`,st=Object.freeze({"cpp-debug":Object.freeze({path:it,sha256:`c420c4643c48826643e75585d5bfdc281f11883d4bda28b283e3c706f3046b3a`,compressedSha256:`a3811351bae3289caf096f2d4bb6d2ee5db84b97e05514e87190d36b65c500cf`}),"cpp-release":Object.freeze({path:at,sha256:`c4b2132cc6d698e97dd1386431fdb54faaaf38b35b2528c7bc854f860d1f64b1`,compressedSha256:`ef004fc05ec50af697a37f7c9c814bf62e9676d0de162d6ac35305533939f93f`})}),j=`3.14.7`,ct=`a42c98f5f00582638c8e445440c506bbf94d5e55b3415d1f8d82d11c56cd4b56`,lt=`${`wasm-oj/cpython@${j}`}#sha256:${ct}`,ut=`/toolchains/python-${j}-wasip1.webc.gz.bin`,dt=`/toolchains/python-${j}-wasip1.manifest.json`,ft=`10027f0e32c77dfa0ce1c413b6cb27307d6744fe5e18e6da8cea738bd020260c`,pt=`53a24b258363a8494af164121111a34b49c85fa0e054627fe131feba6f359cd5`,M=`0.15.1`,mt=`wasm-oj/quickjs-ng@${M}`,ht=`/toolchains/quickjs-${M}.wasm.gz.bin`,N=`dc6e02e8610269e61b341331661515616451cec929fd534fa96d1c4f47fbcc9a`,P=`7.0.2`,gt=`/toolchains/typescript-${P}.wasm.gz.bin`,F=`29c6ee0e46151e2644049ae96162b1b1d46dcb13310e2a928114bb9030c3ea92`,I=`1.91.1-dev`,_t=`/toolchains/rust-${I}.webc.gz.bin`,vt=`/toolchains/rust-${I}.manifest.json`,L=`cfbdadc67be1315e735aa55bdf8a5a0d00171982a023fefcf7ba586127753887`,R=`765de8d68d03078e79f69f49dec0dcab1ff96fe3bbe5e9eafebb2ce61a39d3ee`,z=`d5bbdca994e61888679c5738cb9420649c0854ed0eb5d65468bc67d5d550bce1`,B=`1.26.5`,yt=`/toolchains/go-${B}-wasip1.webc.gz.bin`,bt=`/toolchains/go-${B}-wasip1.manifest.json`,xt=`/toolchains/go-${B}-wasip1.stdlib.gz.bin`,St=`70a7e359884b09b2e1a622d6ac5cd6e31c334aab519e6dd80dff5e040a9e09e4`,Ct=`c3a97934b6a83fefdea5c31f99141f70f76189eedc9ec0fa9ccd41302e50963b`,wt=`5d784e9ca640b9525e84b598c0beb97ca110ae908568ca45f6441a441d99a262`,Tt=`aeffc384fdc624544f174ba5fc3c22395717fdbc3c4387d677d20855b6be80d8`,Et=Object.freeze({[et]:O,[tt]:k,[nt]:A,[rt]:`9bbe41d77c786f1c36169369c909268530b05726e1581683f6edd9a2983eebd0`,[it]:st[`cpp-debug`].compressedSha256,[at]:st[`cpp-release`].compressedSha256,[ut]:ft,[dt]:pt,[ht]:N,[gt]:F,[_t]:L,[vt]:z,[yt]:St,[bt]:wt,[xt]:Tt,"/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([O,ot,k,A]),cpp:Object.freeze([O,ot,k,A]),rust:Object.freeze([L,R,z]),python:Object.freeze([ft,ct,pt,`c1acac884af1c86833db5b65f8cc0a2304fce74dea0a05d9b40bde0a4e3e7c0e`]),javascript:Object.freeze([F,N]),typescript:Object.freeze([F,N]),go:Object.freeze([St,Ct,wt,Tt,`e1ec64b08efd02b35b7ffdaf3970875aaae98325fa4795eafca94ebae2d0d192`,`9e557f5b86961fd604217d7521461c5d2b7322e383fa30dead5669b77db12201`,`2eefca10af935a307ab7946447146bd30e0ea0fb5460be54dc1c55844d155580`])});function Dt(e){let t=e.startsWith(`/`)?e:`/toolchains/${e}`,n=Et[t];if(!n)throw Error(`No pinned digest is declared for toolchain asset '${e}'.`);return n}function Ot(e,t){let n=Dt(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 V(e){return Object.freeze({...e,compilerPackages:Object.freeze([...e.compilerPackages]),targets:Object.freeze([...e.targets])})}Object.freeze({c:V({language:`c`,label:`Clang 22`,artifact:`wasm`,compilerPackages:[$e],targets:[`wasip1`,`wasix`],version:D,note:`Native wasip1 module via Clang and LLD; directly executable by WASI and WASIX runtimes.`}),cpp:V({language:`cpp`,label:`Clang++ 22 (C++20)`,artifact:`wasm`,compilerPackages:[$e],targets:[`wasip1`,`wasix`],version:D,note:`C++20/libc++ wasip1 module; directly executable by WASI and WASIX runtimes.`}),rust:V({language:`rust`,label:`Rust ${I}`,artifact:`wasm`,compilerPackages:[`rustc@${I}#sha256:${R}`],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:V({language:`python`,label:`CPython ${j}`,artifact:`runtime-bundle`,compilerPackages:[lt],runtimePackage:lt,targets:[`wasip1`],version:j,note:`Python source files executed by the source-built CPython wasm32-wasip1 interpreter and standard library.`}),javascript:V({language:`javascript`,label:`QuickJS-ng`,artifact:`runtime-bundle`,compilerPackages:[`typescript@${P}-wasi`],runtimePackage:mt,targets:[`wasip1`],version:M,note:`JavaScript checked by TypeScript/WASI, then executed by the bundled QuickJS-ng/WASI runtime.`}),typescript:V({language:`typescript`,label:`TypeScript + QuickJS-ng`,artifact:`runtime-bundle`,compilerPackages:[`typescript@${P}-wasi`],runtimePackage:mt,targets:[`wasip1`],version:P,note:`The native TypeScript compiler and QuickJS-ng runtime both execute as local WASI modules.`}),go:V({language:`go`,label:`Go ${B}`,artifact:`wasm`,compilerPackages:[`go@${B}#sha256:${Ct}`],targets:[`wasip1`],version:B,note:`The standard Go compiler, linker, and pinned wasip1 standard library execute locally as one WebC under Wasmer.`})});const H=`wasm32-wasip1-threads`,kt=`2024`,At=18e4,jt=Object.freeze([`wasi_snapshot_preview1.random_get`,`wasi_snapshot_preview1.clock_time_get`]),U=Object.freeze({version:I,packageAsset:_t,packageCompressedSha256:L,packageSha256:R,manifestAsset:vt,manifestSha256:z,target:H,edition:kt});function Mt(e,t,n=[]){let r=t===`release`?[`-C`,`opt-level=2`,`-C`,`debuginfo=0`]:[`-C`,`opt-level=0`,`-C`,`debuginfo=1`];return[`--target`,H,`--sysroot`,`/rust`,`-Zno-parallel-backend`,`-Z`,`threads=1`,`-Z`,`randomize-layout=no`,`-Z`,`layout-seed=0`,`-Z`,`uninit-const-chunk-threshold=4294967295`,`-C`,`codegen-units=1`,`-C`,`llvm-args=-rng-seed=1`,`-C`,`metadata=wasm_oj_submission`,`-C`,`target-feature=+atomics,+bulk-memory,+mutable-globals`,`/work/${e}`,`--crate-name`,`wasm_oj_submission`,`--crate-type`,`bin`,`--edition`,kt,`--error-format=json`,`--json=diagnostic-rendered-ansi`,`--remap-path-prefix=/work=.`,`-C`,`panic=abort`,...n.flatMap(e=>[`--extern`,`${e.crateName}=${e.path}`]),...r,`-C`,`save-temps=yes`,`--emit=obj`,`-o`,w]}function Nt(e,t){let n=t===`release`?[`-C`,`opt-level=2`,`-C`,`debuginfo=0`]:[`-C`,`opt-level=0`,`-C`,`debuginfo=1`];return[`--target`,H,`--sysroot`,`/rust`,`-Zno-parallel-backend`,`-Z`,`threads=1`,`-Z`,`randomize-layout=no`,`-Z`,`layout-seed=0`,`-C`,`codegen-units=1`,`-C`,`llvm-args=-rng-seed=1`,`-C`,`metadata=${e.id}`,`-C`,`target-feature=+atomics,+bulk-memory,+mutable-globals`,`/work/${e.root}`,`--crate-name`,e.crateName,`--crate-type`,`rlib`,`--edition`,e.edition,`--error-format=json`,`--json=diagnostic-rendered-ansi`,`--remap-path-prefix=/work=.`,`-C`,`panic=abort`,`--cap-lints`,`allow`,...e.features.flatMap(e=>[`--cfg`,`feature=${JSON.stringify(e)}`]),...e.externs.flatMap(e=>[`--extern`,`${e.crateName}=${e.path}`]),...n,`--emit=link`,`-o`,e.outputPath]}function Pt(){return{RUST_MIN_STACK:`16777216`,SOURCE_DATE_EPOCH:`946684800`,TZ:`UTC`,LC_ALL:`C`}}function Ft(){return{SOURCE_DATE_EPOCH:`946684800`,TZ:`UTC`,LC_ALL:`C`,VSLANG:`1033`}}function It(e){let t=JSON.parse(new TextDecoder(`utf-8`,{fatal:!0}).decode(e)),n=W(t.compiler,`compiler`),r=W(t.linker,`linker`),i=W(t.pipeline,`pipeline`),a=W(t.output,`output`),o=W(t.filesystemMounts,`filesystemMounts`);if(t.version!==U.version||t.target!==U.target||n.command!==`rustc`||JSON.stringify(n.deterministicReplacements)!==JSON.stringify(jt)||r.command!==`wasm-ld`||i.strategy!==`rustc-object-then-wasm-ld`||i.objectEmission!==`rustc --emit=obj -C save-temps=yes`||i.allocatorShim!==`rustc-generated LLVM bitcode`||i.linkArgsSource!==`rustc --print=link-args`||o.rust!==`/rust`||o.linker!==`/usr`||a.sha256!==U.packageSha256||a.compressedSha256!==U.packageCompressedSha256)throw Error(`Pinned Rust toolchain manifest does not match the compiler contract.`);return Object.freeze({linkerArguments:Ke(r.arguments)})}function W(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Pinned Rust toolchain manifest '${t}' field must be an object.`);return e}function Lt(e){return e===`warning`?`warning`:e===`note`||e===`info`?`info`:`error`}function Rt(e){return e.replace(/^file:\/\//,``).replace(/^\/?(?:workspace|project|work)\//,``).replace(/^\.\//,``)}function G(e){let t=[];for(let n of e.split(/\r?\n/)){if(!n.startsWith(`{`))continue;let e;try{e=JSON.parse(n)}catch{continue}if(!e||typeof e!=`object`)continue;let r=e;if(r.$message_type!==`diagnostic`||typeof r.message!=`string`)continue;let i=Array.isArray(r.spans)?r.spans:[],a=i.find(e=>e&&typeof e==`object`&&e.is_primary===!0)??i.find(e=>e&&typeof e==`object`),o=r.code&&typeof r.code==`object`?r.code.code:void 0;t.push({severity:Lt(typeof r.level==`string`?r.level:`error`),message:r.message,file:Rt(typeof a?.file_name==`string`?a.file_name:`main.rs`),line:typeof a?.line_start==`number`?a.line_start:1,column:typeof a?.column_start==`number`?a.column_start:1,endLine:typeof a?.line_end==`number`?a.line_end:void 0,endColumn:typeof a?.column_end==`number`?a.column_end:void 0,source:`rustc`,code:typeof o==`string`?o:void 0})}return t}Object.freeze({files:256,bytesPerFile:4194304,totalBytes:16777216}),new TextEncoder;async function zt(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 K=1048576,q=Object.freeze({requirements:128,sourceFiles:128,sourceTextBytes:8*K,hosts:32,roots:512,packages:512,referencesPerPackage:512,concurrency:16,metadataBytes:8*K,packageBytes:256*K,totalDownloadBytes:512*K,archiveFiles:16384,unpackedBytes:512*K});Object.freeze({packages:q.packages,filesPerPackage:q.archiveFiles,bytesPerFile:64*K,totalBytes:q.unpackedBytes});var Bt=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||!Vt(this.#t,e)){this.#t=e.slice(),this.#n=t;return}if(!(t-this.#n<this.#e))return e.slice()}};function Vt(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 Ht(e,{liveness:t=!1}={}){let n=Wt(),r=Gt(e),i=new Blob([`const pendingMessages = [];
|
|
18
|
+
`,`const queueMessage = (event) => { event.stopImmediatePropagation(); pendingMessages.push(event.data); };
|
|
19
|
+
`,`globalThis.addEventListener("message", queueMessage);
|
|
20
|
+
`,`Object.defineProperty(globalThis, "__wasmOjModuleWorkerBaseUrl", { value: ${JSON.stringify(n.href)} });\n`,...t?[Ut]:[],`try { await import(${JSON.stringify(r)}); } finally { globalThis.removeEventListener("message", queueMessage); }\n`,`for (const data of pendingMessages) globalThis.dispatchEvent(new MessageEvent("message", { data }));
|
|
21
|
+
`],{type:`text/javascript`}),a=URL.createObjectURL(i),o=!0;return{url:a,revoke(){o&&(o=!1,URL.revokeObjectURL(a))}}}const Ut=`try { const lock = "wasm-oj-worker-" + crypto.randomUUID(); navigator.locks.request(lock, () => { postMessage({ __wasmOjWorkerLiveness: lock }); return new Promise(() => {}); }).catch(() => {}); } catch {}
|
|
22
|
+
`;function Wt(){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 Gt(e){let t=Wt(),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 Kt=class{host;owns;originalWorker;originalDescriptor;trackedWorker;workers=new Map;deferred=new Set;teardownQuietMs;operations=0;lastTeardownAt=-1/0;installed=!1;constructor(e,t={}){this.host=e,this.teardownQuietMs=t.teardownQuietMs??250,this.owns=t.owns??(()=>!0)}install(){if(this.installed)throw Error(`Nested Worker ownership is already installed.`);if(this.originalWorker=this.host.Worker,this.originalDescriptor=Object.getOwnPropertyDescriptor(this.host,`Worker`),this.trackedWorker=new Proxy(this.originalWorker,{construct:(e,t,n)=>{let r=Reflect.construct(e,t,n);return this.owns(String(t[0]))&&this.own(r),r}}),Object.defineProperty(this.host,"Worker",{configurable:!0,enumerable:this.originalDescriptor?.enumerable??!1,writable:!0,value:this.trackedWorker}),this.host.Worker!==this.trackedWorker)throw Error(`Unable to install nested Worker ownership.`);this.installed=!0}async run(e){for(;;){let e=this.lastTeardownAt+this.teardownQuietMs-performance.now();if(e<=0)break;await new Promise(t=>setTimeout(t,e))}this.operations+=1;try{return await e()}finally{if(--this.operations,this.operations===0){let e=[...this.deferred];this.deferred.clear();for(let t of e)t()}}}terminateAll(){if(!this.installed){if(this.workers.size>0)throw Error(`Nested Workers exist without an installed owner.`);return}if(this.host.Worker!==this.trackedWorker)throw Error(`The Worker constructor changed while nested Worker ownership was active.`);if(this.originalDescriptor)Object.defineProperty(this.host,"Worker",this.originalDescriptor);else if(!Reflect.deleteProperty(this.host,`Worker`))throw Error(`Unable to restore the inherited Worker constructor.`);if(this.host.Worker!==this.originalWorker)throw Error(`The original Worker constructor was not restored.`);this.installed=!1;let e=[...this.workers.values()];this.deferred.clear();for(let t of e)t()}get size(){return this.workers.size}own(e){let t=e.terminate.bind(e),n=()=>{this.workers.delete(e)&&(t(),this.lastTeardownAt=performance.now())};this.workers.set(e,n),e.terminate=()=>{this.operations>0?this.deferred.add(n):n()}}},qt=``+new URL(`wasmer-thread.worker-DKlJE3cb.js`,import.meta.url).href;const J=self,Jt=Wt();let Yt=Promise.resolve(),Y,X;const Xt=new Kt(globalThis);let Zt,Qt;J.addEventListener(`message`,e=>{Yt=Yt.then(()=>en(e.data),()=>en(e.data))});async function $t(e){if(e.type!==`compile`)throw Error(`Invalid rustc stage request.`);let t=new URL(e.assetBaseUrl,Jt);t.pathname.endsWith(`/`)||(t.pathname+=`/`);let{rustc:n,linker:r,manifest:i}=await nn(t),a;try{a=new ge(Object.fromEntries(e.request.files.map(e=>[`/${e.path}`,e.content]))),await a.createDir(`/build`),await a.createDir(`/build/deps`);let t=``,o=``;for(let r of e.request.dependencies??[]){let i=await an(await n.run({args:Nt(r,e.request.optimization),env:Pt(),mount:{"/work":a},cwd:`/work`}),a,r.outputPath,`rustc dependency ${r.id}`,e=>G(e).some(e=>e.severity===`error`),!1,un);if(t+=i.stdout,o+=i.stderr,!i.success)return{success:!1,stdout:t,stderr:o,diagnostics:G(o)}}let s=await an(await n.run({args:Mt(e.request.entry,e.request.optimization,e.request.rootExterns),env:Pt(),mount:{"/work":a},cwd:`/work`}),a,w,`rustc`,e=>G(e).some(e=>e.severity===`error`),!0),c=G(`${o}${s.stderr}`);if(!s.success)return{success:!1,stdout:`${t}${s.stdout}`,stderr:`${o}${s.stderr}`,diagnostics:c};let l=qe(i.linkerArguments,e.request.optimization,on(s)),u=l.indexOf(w);if(u<0)throw Error(`Pinned Rust linker arguments omit the submission object.`);let d=[...e.request.dependencies??[]].reverse().map(e=>e.outputPath);d.length>0&&l.splice(u+1,0,...d);let f=await an(await r.run({args:l,env:Ft(),mount:{"/work":a},cwd:`/work`}),a,He,`wasm-ld`,e=>/(?:wasm-ld|lld): error:/i.test(e));return{success:f.success&&!!f.bytes,wasm:f.bytes,stdout:`${t}${s.stdout}${f.stdout}`,stderr:`${o}${s.stderr}${f.stderr}`,diagnostics:c}}finally{a?.free()}}async function en(e){try{if(e.type===`shutdown`){await tn(),J.postMessage({type:`shutdown-complete`}),J.close();return}let t=await Xt.run(()=>$t(e)),n={type:`result`,result:t},r=t.wasm?[t.wasm.buffer]:[];J.postMessage(n,r)}catch(e){let t=e instanceof Error?e:Error(String(e));J.postMessage({type:`error`,message:t.message,stack:t.stack})}}async function tn(){let e=Y;if(Y=void 0,X=void 0,!e){Z(),Q();return}let t;try{t=await e}catch(e){throw Z(),Q(),e}Z(),await new Promise(e=>setTimeout(e,1e3));try{t.rustc.free()}finally{try{t.linker.free()}finally{try{t.pkg.free()}finally{t.runtime.free(),Q()}}}}function nn(e){let t=e.href;if(X!==void 0&&X!==t)throw Error(`The persistent rustc stage cannot change its toolchain asset base URL.`);return X=t,Y??=rn(e),Y}async function rn(e){Xt.install(),Zt=Xt;let t=Ht(new URL(qt,Jt));Qt=t;try{await Re({log:`warn`,module:new URL(Be,Jt),workerUrl:t.url})}catch(e){throw Z(),Q(),e}let n;try{n=new Ce({registry:null})}catch(e){throw Z(),Q(),e}let r,i,a;try{let[t,o]=await Promise.all([fn(e),mn(e)]);if(r=await Ae.fromFile(t,n),i=r.commands.rustc,!i)throw Error(`The pinned Rust WebC does not expose its rustc command.`);if(a=r.commands[Ve],!a)throw Error(`The pinned Rust WebC does not expose its ${Ve} command.`);return{runtime:n,pkg:r,rustc:i,linker:a,manifest:o}}catch(e){throw i?.free(),a?.free(),r?.free(),n.free(),Z(),Q(),e}}function Z(){let e=Zt;Zt=void 0,e?.terminateAll()}function Q(){Qt?.revoke(),Qt=void 0}async function an(e,t,n,r,i,a=!1,o=e=>WebAssembly.validate(Uint8Array.from(e))){let s=sn(e.stdout),c=sn(e.stderr),l=new Bt,u=new Bt,d,f=performance.now()+At;try{for(;performance.now()<f;){let e=c.text(),r=s.quietFor(50)&&c.quietFor(50),f=performance.now(),p=l.observe(await ln(t,n,o),f),m=a?await dn(t):void 0;m?.path!==d&&(d=m?.path,u=new Bt);let h=a?u.observe(m?.bytes,f):void 0;if(p&&(!a||h&&d)&&r)return await new Promise(e=>setTimeout(e,0)),{success:!0,bytes:p,allocatorBitcodePath:d,stdout:s.text(),stderr:c.text()};if(r&&i(e))return{success:!1,stdout:s.text(),stderr:e};await new Promise(e=>setTimeout(e,5))}throw Error(`${r} exceeded ${At} ms.`)}finally{await Promise.all([s.cancel(),c.cancel()]),e.free()}}function on(e){if(!e.allocatorBitcodePath)throw Error(`rustc completed without its allocator bitcode module.`);return e.allocatorBitcodePath}function sn(e){let t=e.getReader(),n=[],r=performance.now();return(async()=>{try{for(;;){let e=await t.read();if(e.done)return;let i=e.value instanceof Uint8Array?e.value:new Uint8Array(e.value);n.push(i.slice()),r=performance.now()}}catch{}})(),{text:()=>new TextDecoder().decode(cn(n)),quietFor:e=>performance.now()-r>=e,cancel:async()=>{try{await t.cancel()}catch{}}}}function cn(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 ln(e,t,n){let r=t.startsWith(`/work/`)?t.slice(5):t;try{let t=(await e.readFile(r)).slice();return t.byteLength>8&&n(t)?t:void 0}catch{return}}function un(e){return e.byteLength>8&&new TextDecoder().decode(e.subarray(0,8))===`!<arch>
|
|
23
|
+
`}async function dn(e){try{let t=Ze((await e.readDir(`/build`)).map(e=>e.name));if(!t)return;let n=(await e.readFile(`/build/${t}`)).slice();return Qe(n)?{path:`/work/build/${t}`,bytes:n}:void 0}catch(e){if(e instanceof Error&&e.message.startsWith(`rustc emitted multiple`))throw e;return}}async function fn(e){let t=(await pn(e,U.packageAsset,U.packageCompressedSha256)).body;if(!t)throw Error(`Pinned Rust WebC response has no body.`);let n=t.pipeThrough(new DecompressionStream(`gzip`)),r=new Uint8Array(await new Response(n).arrayBuffer());return await $(`decompressed Rust WebC`,r,U.packageSha256),r}async function pn(e,t,n){let r=t.slice(t.lastIndexOf(`/`)+1),i=await fetch(Ot(t,e));if(!i.ok)throw Error(`Unable to load pinned Rust toolchain asset '${r}' (${i.status}).`);return await $(r,new Uint8Array(await i.clone().arrayBuffer()),n),i}async function mn(e){return It(await hn(e,U.manifestAsset,U.manifestSha256))}async function hn(e,t,n){let r=t.slice(t.lastIndexOf(`/`)+1),i=await fetch(Ot(t,e));if(!i.ok)throw Error(`Unable to load pinned Rust toolchain asset '${r}' (${i.status}).`);let a=new Uint8Array(await i.arrayBuffer());return await $(r,a,n),a}async function $(e,t,n){let r=await zt(t);if(r!==n)throw Error(`Pinned Rust toolchain asset '${e}' has digest ${r}; expected ${n}.`)}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Engine as e,WASM_OJ_STORAGE as t,WEIGHTED_METER_MODEL as n,assertCompilerCacheKey as r,assertValidProject as i,browserToolchainAssetPaths as a,browserToolchainAssetUrl as o,createDefaultDependencyManager as s,createExtendedCostBaselineRegistry as c,isToolchainLibcxxPchHeader as l,resolveArtifactCostBudget as u,snapshotBrowserToolchainSources as d,toolchainAssetSource as ee,toolchainCacheIdentity as f,toolchainProfileSource as p,unavailableExecutionMetrics as m}from"@wasm-oj/core";import{WASM_OJ_CONTRACT_VERSION as h,WASM_OJ_SCHEMAS as te,WASM_OJ_STORAGE as g,assertLanguageIdentifier as _,isBuiltinLanguage as v}from"@wasm-oj/contracts";import"es-module-lexer";export*from"@wasm-oj/core";var y=`22.0.0-git20542-10`,ne=`wasm-oj/clang@${y}`,re=`/toolchains/clang-${y}.webc.gz.bin`,ie=`/toolchains/clang-${y}.cc1-pins.json`,ae=`/toolchains/clang-${y}.manifest.json`,oe=`/toolchains/clang-${y}.libcxx-pch.json`,se=`/toolchains/clang-${y}.cpp-debug.pch.gz.bin`,ce=`/toolchains/clang-${y}.cpp-release.pch.gz.bin`,le=`7f10d90b8e52b270f04874641a1d0bf9e94e85b4f6c7573a774cebbc6d32552a`,ue=`21ded33b9c6d4e1aaad5528c940bdaf6c3e84be77ea8f522f018ca7289a2a224`,b=`895eee17c63b1112c84adcc4ddbcb38e0c18e53bff15f50a8689b9b82d87b1ff`,x=`6382dcdfb6a2da49032a0e08da3b1fb490eb24432be85c3c12e3e871a5065273`,de=`9bbe41d77c786f1c36169369c909268530b05726e1581683f6edd9a2983eebd0`,fe=Object.freeze({"cpp-debug":Object.freeze({path:se,sha256:`c420c4643c48826643e75585d5bfdc281f11883d4bda28b283e3c706f3046b3a`,compressedSha256:`a3811351bae3289caf096f2d4bb6d2ee5db84b97e05514e87190d36b65c500cf`}),"cpp-release":Object.freeze({path:ce,sha256:`c4b2132cc6d698e97dd1386431fdb54faaaf38b35b2528c7bc854f860d1f64b1`,compressedSha256:`ef004fc05ec50af697a37f7c9c814bf62e9676d0de162d6ac35305533939f93f`})}),S=`3.14.7`,pe=`a42c98f5f00582638c8e445440c506bbf94d5e55b3415d1f8d82d11c56cd4b56`,me=`${`wasm-oj/cpython@${S}`}#sha256:${pe}`,he=`/toolchains/python-${S}-wasip1.webc.gz.bin`,ge=`/toolchains/python-${S}-wasip1.manifest.json`,_e=`10027f0e32c77dfa0ce1c413b6cb27307d6744fe5e18e6da8cea738bd020260c`,ve=`53a24b258363a8494af164121111a34b49c85fa0e054627fe131feba6f359cd5`,ye=`c1acac884af1c86833db5b65f8cc0a2304fce74dea0a05d9b40bde0a4e3e7c0e`,be=`0.15.1`,xe=`wasm-oj/quickjs-ng@${be}`,Se=`/toolchains/quickjs-${be}.wasm.gz.bin`,Ce=`dc6e02e8610269e61b341331661515616451cec929fd534fa96d1c4f47fbcc9a`,C=`7.0.2`,we=`/toolchains/typescript-${C}.wasm.gz.bin`,Te=`29c6ee0e46151e2644049ae96162b1b1d46dcb13310e2a928114bb9030c3ea92`,w=`1.91.1-dev`,Ee=`/toolchains/rust-${w}.webc.gz.bin`,De=`/toolchains/rust-${w}.manifest.json`,Oe=`cfbdadc67be1315e735aa55bdf8a5a0d00171982a023fefcf7ba586127753887`,ke=`765de8d68d03078e79f69f49dec0dcab1ff96fe3bbe5e9eafebb2ce61a39d3ee`,T=`d5bbdca994e61888679c5738cb9420649c0854ed0eb5d65468bc67d5d550bce1`,E=`1.26.5`,Ae=`/toolchains/go-${E}-wasip1.webc.gz.bin`,je=`/toolchains/go-${E}-wasip1.manifest.json`,Me=`/toolchains/go-${E}-wasip1.stdlib.gz.bin`,D=`70a7e359884b09b2e1a622d6ac5cd6e31c334aab519e6dd80dff5e040a9e09e4`,O=`c3a97934b6a83fefdea5c31f99141f70f76189eedc9ec0fa9ccd41302e50963b`,Ne=`5d784e9ca640b9525e84b598c0beb97ca110ae908568ca45f6441a441d99a262`,Pe=`aeffc384fdc624544f174ba5fc3c22395717fdbc3c4387d677d20855b6be80d8`,Fe=`e1ec64b08efd02b35b7ffdaf3970875aaae98325fa4795eafca94ebae2d0d192`,Ie=`9e557f5b86961fd604217d7521461c5d2b7322e383fa30dead5669b77db12201`,Le=`2eefca10af935a307ab7946447146bd30e0ea0fb5460be54dc1c55844d155580`,Re=`wasm-oj/java-teavm@teavm-0.13.1-wasmgc-wasip1`,ze=`/toolchains/java-teavm-0.13.1.compiler.wasm`,Be=`/toolchains/java-teavm-0.13.1.compile-classlib.bin`,Ve=`/toolchains/java-teavm-0.13.1.runtime-classlib.bin`,He=`8c37bce1c6fceeaffeffe93e10834309b67c8b6fb58c6f8a24547afe8be67f5d`,Ue=`738a82b7d7e7ff8d98b07bb076785da7035847a166afb8446fd150c4efce6103`,We=`0ed234b66cdde19cb29e6c2865a3636d792d3cf72f102e73a7b3fdede80b79e6`;Object.freeze({[re]:le,[ie]:b,[ae]:x,[oe]:de,[se]:fe[`cpp-debug`].compressedSha256,[ce]:fe[`cpp-release`].compressedSha256,[he]:_e,[ge]:ve,[Se]:Ce,[we]:Te,[Ee]:Oe,[De]:T,[Ae]:D,[je]:Ne,[Me]:Pe,[ze]:He,[Be]:Ue,[Ve]:We});var Ge=Object.freeze({c:Object.freeze([le,ue,b,x]),cpp:Object.freeze([le,ue,b,x]),rust:Object.freeze([Oe,ke,T]),python:Object.freeze([_e,pe,ve,ye]),javascript:Object.freeze([Te,Ce]),typescript:Object.freeze([Te,Ce]),go:Object.freeze([D,O,Ne,Pe,Fe,Ie,Le])});function Ke(e){if(e===`java`)return[He,Ue,We].join(`.`);if(!v(e))throw Error(`WASM-OJ has no built-in toolchain for '${e}'.`);return Ge[e].join(`.`)}function k(e){return Object.freeze({...e,compilerPackages:Object.freeze([...e.compilerPackages]),targets:Object.freeze([...e.targets])})}var qe=Object.freeze({c:k({language:`c`,label:`Clang 22`,artifact:`wasm`,compilerPackages:[ne],targets:[`wasip1`,`wasix`],version:y,note:`Native wasip1 module via Clang and LLD; directly executable by WASI and WASIX runtimes.`}),cpp:k({language:`cpp`,label:`Clang++ 22 (C++20)`,artifact:`wasm`,compilerPackages:[ne],targets:[`wasip1`,`wasix`],version:y,note:`C++20/libc++ wasip1 module; directly executable by WASI and WASIX runtimes.`}),rust:k({language:`rust`,label:`Rust ${w}`,artifact:`wasm`,compilerPackages:[`rustc@${w}#sha256:${ke}`],targets:[`wasip1`],version:w,note:`Real rustc, its matching standard library, and a fresh deterministic wasm-ld stage execute as one pinned WebC under Wasmer.`}),python:k({language:`python`,label:`CPython ${S}`,artifact:`runtime-bundle`,compilerPackages:[me],runtimePackage:me,targets:[`wasip1`],version:S,note:`Python source files executed by the source-built CPython wasm32-wasip1 interpreter and standard library.`}),javascript:k({language:`javascript`,label:`QuickJS-ng`,artifact:`runtime-bundle`,compilerPackages:[`typescript@${C}-wasi`],runtimePackage:xe,targets:[`wasip1`],version:be,note:`JavaScript checked by TypeScript/WASI, then executed by the bundled QuickJS-ng/WASI runtime.`}),typescript:k({language:`typescript`,label:`TypeScript + QuickJS-ng`,artifact:`runtime-bundle`,compilerPackages:[`typescript@${C}-wasi`],runtimePackage:xe,targets:[`wasip1`],version:C,note:`The native TypeScript compiler and QuickJS-ng runtime both execute as local WASI modules.`}),go:k({language:`go`,label:`Go ${E}`,artifact:`wasm`,compilerPackages:[`go@${E}#sha256:${O}`],targets:[`wasip1`],version:E,note:`The standard Go compiler, linker, and pinned wasip1 standard library execute locally as one WebC under Wasmer.`})});function Je(e){if(e===`java`)return[Re];if(!v(e))throw Error(`WASM-OJ has no built-in toolchain for '${e}'.`);let t=qe[e];return[...new Set([...t.compilerPackages,...t.runtimePackage?[t.runtimePackage]:[]])]}var A=Object.freeze({files:256,bytesPerFile:4194304,totalBytes:16777216}),Ye=new TextEncoder;function Xe(e,t){return e<t?-1:+(e>t)}function j(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 Ze(e){if(!Array.isArray(e)||e.length===0)throw Error(`A project must contain at least one source file.`);if(e.length>A.files)throw Error(`A project cannot contain more than ${A.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(j(e.path,`Project file ${r} path`),_(e.language),typeof e.content!=`string`)throw Error(`Project file '${e.path}' content must be a string.`);if(e.content.length>A.bytesPerFile)throw Error(`Project file '${e.path}' exceeds the ${A.bytesPerFile} byte source limit.`);let i=Ye.encode(e.content).byteLength;if(i>A.bytesPerFile)throw Error(`Project file '${e.path}' exceeds the ${A.bytesPerFile} byte source limit.`);if(n+=i,n>A.totalBytes)throw Error(`Project sources exceed the ${A.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)=>Xe(e.path,t.path))}function Qe(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])=>(j(e,`Runtime bundle path`),[e,t])).sort(([e],[t])=>Xe(e,t))}async function M(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(``)}var N=1048576,$e=Object.freeze({requirements:128,sourceFiles:128,sourceTextBytes:8*N,hosts:32,roots:512,packages:512,referencesPerPackage:512,concurrency:16,metadataBytes:8*N,packageBytes:256*N,totalDownloadBytes:512*N,archiveFiles:16384,unpackedBytes:512*N});Object.freeze({packages:$e.packages,filesPerPackage:$e.archiveFiles,bytesPerFile:64*N,totalBytes:$e.unpackedBytes});var P=`payloads`,et=/^[0-9a-f]{64}$/,F=class{database;async load(e){z(e);let t=(await this.open()).transaction(P,`readonly`),n=await I(t.objectStore(P).get(e));if(await L(t),n!==void 0){if(!R(n)||n.digest!==e||!(n.payload instanceof Uint8Array)||await M(n.payload)!==e)throw await this.delete(e),Error(`Cached dependency '${e}' failed integrity verification.`);return await this.touch(e),n.payload.slice()}}async save(e,t){if(z(e),!(t instanceof Uint8Array)||await M(t)!==e)throw Error(`Dependency cache payload digest mismatch.`);let n=(await this.open()).transaction(P,`readwrite`);n.objectStore(P).put({byteLength:t.byteLength,digest:e,lastAccessedAt:Date.now(),payload:t.slice()}),await L(n)}async delete(e){z(e);let t=(await this.open()).transaction(P,`readwrite`);t.objectStore(P).delete(e),await L(t)}async clear(){let e=(await this.open()).transaction(P,`readwrite`);e.objectStore(P).clear(),await L(e)}async listStorageEntries(){let e=(await this.open()).transaction(P,`readonly`),t=await I(e.objectStore(P).getAll());return await L(e),t.map(e=>{if(!R(e))throw Error(`Dependency cache contains an invalid storage record.`);return{key:e.digest,byteLength:e.byteLength,lastAccessedAt:e.lastAccessedAt}})}storageParticipant(){return{id:`dependencies`,retentionPriority:40,list:()=>this.listStorageEntries(),delete:e=>this.delete(e),clear:()=>this.clear()}}close(){let e=this.database;this.database=void 0,e?.then(e=>e.close()).catch(()=>void 0)}open(){return this.database??=new Promise((e,t)=>{let n=indexedDB.open(g.dependencyCache,1);n.addEventListener(`upgradeneeded`,()=>{n.result.objectStoreNames.contains(P)||n.result.createObjectStore(P,{keyPath:`digest`})}),n.addEventListener(`success`,()=>e(n.result),{once:!0}),n.addEventListener(`error`,()=>t(n.error??Error(`Unable to open dependency cache.`)),{once:!0}),n.addEventListener(`blocked`,()=>t(Error(`Dependency cache upgrade is blocked by another tab.`)),{once:!0})}),this.database.catch(()=>{this.database=void 0}),this.database}async touch(e){let t=(await this.open()).transaction(P,`readwrite`),n=t.objectStore(P),r=await I(n.get(e));if(r!==void 0){if(!R(r))throw Error(`Dependency cache contains an invalid storage record.`);n.put({...r,lastAccessedAt:Date.now()})}await L(t)}};function I(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 L(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})})}function R(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&Object.keys(e).sort().join(`,`)===`byteLength,digest,lastAccessedAt,payload`&&typeof e.digest==`string`&&e.payload instanceof Uint8Array&&Number.isSafeInteger(e.byteLength)&&e.byteLength===e.payload.byteLength&&Number.isSafeInteger(e.lastAccessedAt)&&e.lastAccessedAt>=0}function z(e){if(!et.test(e))throw Error(`Dependency integrity must be lowercase SHA-256 hexadecimal.`)}var tt=`#pragma once
|
|
1
|
+
import{Engine as e,WASM_OJ_STORAGE as t,WEIGHTED_METER_MODEL as n,assertCompilerCacheKey as r,assertValidProject as i,browserToolchainAssetPaths as a,browserToolchainAssetUrl as o,createDefaultDependencyManager as s,createExtendedCostBaselineRegistry as c,isToolchainLibcxxPchHeader as l,resolveArtifactCostBudget as u,snapshotBrowserToolchainSources as d,toolchainAssetSource as ee,toolchainCacheIdentity as f,toolchainProfileSource as p,unavailableExecutionMetrics as m}from"@wasm-oj/core";import{WASM_OJ_CONTRACT_VERSION as h,WASM_OJ_SCHEMAS as te,WASM_OJ_STORAGE as g,assertLanguageIdentifier as _,isBuiltinLanguage as v}from"@wasm-oj/contracts";import"es-module-lexer";export*from"@wasm-oj/core";var y=`22.0.0-git20542-10`,ne=`wasm-oj/clang@${y}`,re=`/toolchains/clang-${y}.webc.gz.bin`,ie=`/toolchains/clang-${y}.cc1-pins.json`,ae=`/toolchains/clang-${y}.manifest.json`,oe=`/toolchains/clang-${y}.libcxx-pch.json`,se=`/toolchains/clang-${y}.cpp-debug.pch.gz.bin`,ce=`/toolchains/clang-${y}.cpp-release.pch.gz.bin`,b=`7f10d90b8e52b270f04874641a1d0bf9e94e85b4f6c7573a774cebbc6d32552a`,le=`21ded33b9c6d4e1aaad5528c940bdaf6c3e84be77ea8f522f018ca7289a2a224`,x=`895eee17c63b1112c84adcc4ddbcb38e0c18e53bff15f50a8689b9b82d87b1ff`,S=`6382dcdfb6a2da49032a0e08da3b1fb490eb24432be85c3c12e3e871a5065273`,ue=`9bbe41d77c786f1c36169369c909268530b05726e1581683f6edd9a2983eebd0`,de=Object.freeze({"cpp-debug":Object.freeze({path:se,sha256:`c420c4643c48826643e75585d5bfdc281f11883d4bda28b283e3c706f3046b3a`,compressedSha256:`a3811351bae3289caf096f2d4bb6d2ee5db84b97e05514e87190d36b65c500cf`}),"cpp-release":Object.freeze({path:ce,sha256:`c4b2132cc6d698e97dd1386431fdb54faaaf38b35b2528c7bc854f860d1f64b1`,compressedSha256:`ef004fc05ec50af697a37f7c9c814bf62e9676d0de162d6ac35305533939f93f`})}),C=`3.14.7`,fe=`a42c98f5f00582638c8e445440c506bbf94d5e55b3415d1f8d82d11c56cd4b56`,pe=`${`wasm-oj/cpython@${C}`}#sha256:${fe}`,me=`/toolchains/python-${C}-wasip1.webc.gz.bin`,he=`/toolchains/python-${C}-wasip1.manifest.json`,ge=`10027f0e32c77dfa0ce1c413b6cb27307d6744fe5e18e6da8cea738bd020260c`,_e=`53a24b258363a8494af164121111a34b49c85fa0e054627fe131feba6f359cd5`,ve=`c1acac884af1c86833db5b65f8cc0a2304fce74dea0a05d9b40bde0a4e3e7c0e`,ye=`0.15.1`,be=`wasm-oj/quickjs-ng@${ye}`,xe=`/toolchains/quickjs-${ye}.wasm.gz.bin`,Se=`dc6e02e8610269e61b341331661515616451cec929fd534fa96d1c4f47fbcc9a`,w=`7.0.2`,Ce=`/toolchains/typescript-${w}.wasm.gz.bin`,we=`29c6ee0e46151e2644049ae96162b1b1d46dcb13310e2a928114bb9030c3ea92`,T=`1.91.1-dev`,Te=`/toolchains/rust-${T}.webc.gz.bin`,Ee=`/toolchains/rust-${T}.manifest.json`,De=`cfbdadc67be1315e735aa55bdf8a5a0d00171982a023fefcf7ba586127753887`,E=`765de8d68d03078e79f69f49dec0dcab1ff96fe3bbe5e9eafebb2ce61a39d3ee`,D=`d5bbdca994e61888679c5738cb9420649c0854ed0eb5d65468bc67d5d550bce1`,O=`1.26.5`,Oe=`/toolchains/go-${O}-wasip1.webc.gz.bin`,ke=`/toolchains/go-${O}-wasip1.manifest.json`,Ae=`/toolchains/go-${O}-wasip1.stdlib.gz.bin`,k=`70a7e359884b09b2e1a622d6ac5cd6e31c334aab519e6dd80dff5e040a9e09e4`,A=`c3a97934b6a83fefdea5c31f99141f70f76189eedc9ec0fa9ccd41302e50963b`,j=`5d784e9ca640b9525e84b598c0beb97ca110ae908568ca45f6441a441d99a262`,M=`aeffc384fdc624544f174ba5fc3c22395717fdbc3c4387d677d20855b6be80d8`,je=`e1ec64b08efd02b35b7ffdaf3970875aaae98325fa4795eafca94ebae2d0d192`,Me=`9e557f5b86961fd604217d7521461c5d2b7322e383fa30dead5669b77db12201`,Ne=`2eefca10af935a307ab7946447146bd30e0ea0fb5460be54dc1c55844d155580`,Pe=`wasm-oj/java-teavm@teavm-0.13.1-wasmgc-wasip1`,Fe=`/toolchains/java-teavm-0.13.1.compiler.wasm`,Ie=`/toolchains/java-teavm-0.13.1.compile-classlib.bin`,Le=`/toolchains/java-teavm-0.13.1.runtime-classlib.bin`,Re=`8c37bce1c6fceeaffeffe93e10834309b67c8b6fb58c6f8a24547afe8be67f5d`,ze=`738a82b7d7e7ff8d98b07bb076785da7035847a166afb8446fd150c4efce6103`,Be=`0ed234b66cdde19cb29e6c2865a3636d792d3cf72f102e73a7b3fdede80b79e6`;Object.freeze({[re]:b,[ie]:x,[ae]:S,[oe]:ue,[se]:de[`cpp-debug`].compressedSha256,[ce]:de[`cpp-release`].compressedSha256,[me]:ge,[he]:_e,[xe]:Se,[Ce]:we,[Te]:De,[Ee]:D,[Oe]:k,[ke]:j,[Ae]:M,[Fe]:Re,[Ie]:ze,[Le]:Be});var Ve=Object.freeze({c:Object.freeze([b,le,x,S]),cpp:Object.freeze([b,le,x,S]),rust:Object.freeze([De,E,D]),python:Object.freeze([ge,fe,_e,ve]),javascript:Object.freeze([we,Se]),typescript:Object.freeze([we,Se]),go:Object.freeze([k,A,j,M,je,Me,Ne])});function He(e){if(e===`java`)return[Re,ze,Be].join(`.`);if(!v(e))throw Error(`WASM-OJ has no built-in toolchain for '${e}'.`);return Ve[e].join(`.`)}function N(e){return Object.freeze({...e,compilerPackages:Object.freeze([...e.compilerPackages]),targets:Object.freeze([...e.targets])})}var Ue=Object.freeze({c:N({language:`c`,label:`Clang 22`,artifact:`wasm`,compilerPackages:[ne],targets:[`wasip1`,`wasix`],version:y,note:`Native wasip1 module via Clang and LLD; directly executable by WASI and WASIX runtimes.`}),cpp:N({language:`cpp`,label:`Clang++ 22 (C++20)`,artifact:`wasm`,compilerPackages:[ne],targets:[`wasip1`,`wasix`],version:y,note:`C++20/libc++ wasip1 module; directly executable by WASI and WASIX runtimes.`}),rust:N({language:`rust`,label:`Rust ${T}`,artifact:`wasm`,compilerPackages:[`rustc@${T}#sha256:${E}`],targets:[`wasip1`],version:T,note:`Real rustc, its matching standard library, and a fresh deterministic wasm-ld stage execute as one pinned WebC under Wasmer.`}),python:N({language:`python`,label:`CPython ${C}`,artifact:`runtime-bundle`,compilerPackages:[pe],runtimePackage:pe,targets:[`wasip1`],version:C,note:`Python source files executed by the source-built CPython wasm32-wasip1 interpreter and standard library.`}),javascript:N({language:`javascript`,label:`QuickJS-ng`,artifact:`runtime-bundle`,compilerPackages:[`typescript@${w}-wasi`],runtimePackage:be,targets:[`wasip1`],version:ye,note:`JavaScript checked by TypeScript/WASI, then executed by the bundled QuickJS-ng/WASI runtime.`}),typescript:N({language:`typescript`,label:`TypeScript + QuickJS-ng`,artifact:`runtime-bundle`,compilerPackages:[`typescript@${w}-wasi`],runtimePackage:be,targets:[`wasip1`],version:w,note:`The native TypeScript compiler and QuickJS-ng runtime both execute as local WASI modules.`}),go:N({language:`go`,label:`Go ${O}`,artifact:`wasm`,compilerPackages:[`go@${O}#sha256:${A}`],targets:[`wasip1`],version:O,note:`The standard Go compiler, linker, and pinned wasip1 standard library execute locally as one WebC under Wasmer.`})});function We(e){if(e===`java`)return[Pe];if(!v(e))throw Error(`WASM-OJ has no built-in toolchain for '${e}'.`);let t=Ue[e];return[...new Set([...t.compilerPackages,...t.runtimePackage?[t.runtimePackage]:[]])]}var P=Object.freeze({files:256,bytesPerFile:4194304,totalBytes:16777216}),Ge=new TextEncoder;function Ke(e,t){return e<t?-1:+(e>t)}function F(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 qe(e){if(!Array.isArray(e)||e.length===0)throw Error(`A project must contain at least one source file.`);if(e.length>P.files)throw Error(`A project cannot contain more than ${P.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(F(e.path,`Project file ${r} path`),_(e.language),typeof e.content!=`string`)throw Error(`Project file '${e.path}' content must be a string.`);if(e.content.length>P.bytesPerFile)throw Error(`Project file '${e.path}' exceeds the ${P.bytesPerFile} byte source limit.`);let i=Ge.encode(e.content).byteLength;if(i>P.bytesPerFile)throw Error(`Project file '${e.path}' exceeds the ${P.bytesPerFile} byte source limit.`);if(n+=i,n>P.totalBytes)throw Error(`Project sources exceed the ${P.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)=>Ke(e.path,t.path))}function I(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])=>(F(e,`Runtime bundle path`),[e,t])).sort(([e],[t])=>Ke(e,t))}async function L(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(``)}var R=1048576,z=Object.freeze({requirements:128,sourceFiles:128,sourceTextBytes:8*R,hosts:32,roots:512,packages:512,referencesPerPackage:512,concurrency:16,metadataBytes:8*R,packageBytes:256*R,totalDownloadBytes:512*R,archiveFiles:16384,unpackedBytes:512*R});Object.freeze({packages:z.packages,filesPerPackage:z.archiveFiles,bytesPerFile:64*R,totalBytes:z.unpackedBytes});var B=`payloads`,Je=/^[0-9a-f]{64}$/,V=class{database;async load(e){Ze(e);let t=(await this.open()).transaction(B,`readonly`),n=await Ye(t.objectStore(B).get(e));if(await H(t),n!==void 0){if(!Xe(n)||n.digest!==e||!(n.payload instanceof Uint8Array)||await L(n.payload)!==e)throw await this.delete(e),Error(`Cached dependency '${e}' failed integrity verification.`);return await this.touch(e),n.payload.slice()}}async save(e,t){if(Ze(e),!(t instanceof Uint8Array)||await L(t)!==e)throw Error(`Dependency cache payload digest mismatch.`);let n=(await this.open()).transaction(B,`readwrite`);n.objectStore(B).put({byteLength:t.byteLength,digest:e,lastAccessedAt:Date.now(),payload:t.slice()}),await H(n)}async delete(e){Ze(e);let t=(await this.open()).transaction(B,`readwrite`);t.objectStore(B).delete(e),await H(t)}async clear(){let e=(await this.open()).transaction(B,`readwrite`);e.objectStore(B).clear(),await H(e)}async listStorageEntries(){let e=(await this.open()).transaction(B,`readonly`),t=await Ye(e.objectStore(B).getAll());return await H(e),t.map(e=>{if(!Xe(e))throw Error(`Dependency cache contains an invalid storage record.`);return{key:e.digest,byteLength:e.byteLength,lastAccessedAt:e.lastAccessedAt}})}storageParticipant(){return{id:`dependencies`,retentionPriority:40,list:()=>this.listStorageEntries(),delete:e=>this.delete(e),clear:()=>this.clear()}}close(){let e=this.database;this.database=void 0,e?.then(e=>e.close()).catch(()=>void 0)}open(){return this.database??=new Promise((e,t)=>{let n=indexedDB.open(g.dependencyCache,1);n.addEventListener(`upgradeneeded`,()=>{n.result.objectStoreNames.contains(B)||n.result.createObjectStore(B,{keyPath:`digest`})}),n.addEventListener(`success`,()=>e(n.result),{once:!0}),n.addEventListener(`error`,()=>t(n.error??Error(`Unable to open dependency cache.`)),{once:!0}),n.addEventListener(`blocked`,()=>t(Error(`Dependency cache upgrade is blocked by another tab.`)),{once:!0})}),this.database.catch(()=>{this.database=void 0}),this.database}async touch(e){let t=(await this.open()).transaction(B,`readwrite`),n=t.objectStore(B),r=await Ye(n.get(e));if(r!==void 0){if(!Xe(r))throw Error(`Dependency cache contains an invalid storage record.`);n.put({...r,lastAccessedAt:Date.now()})}await H(t)}};function Ye(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 H(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})})}function Xe(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&Object.keys(e).sort().join(`,`)===`byteLength,digest,lastAccessedAt,payload`&&typeof e.digest==`string`&&e.payload instanceof Uint8Array&&Number.isSafeInteger(e.byteLength)&&e.byteLength===e.payload.byteLength&&Number.isSafeInteger(e.lastAccessedAt)&&e.lastAccessedAt>=0}function Ze(e){if(!Je.test(e))throw Error(`Dependency integrity must be lowercase SHA-256 hexadecimal.`)}var Qe=`#pragma once
|
|
2
2
|
#include <algorithm>
|
|
3
3
|
#include <array>
|
|
4
4
|
#include <bitset>
|
|
@@ -45,8 +45,8 @@ import{Engine as e,WASM_OJ_STORAGE as t,WEIGHTED_METER_MODEL as n,assertCompiler
|
|
|
45
45
|
#include <utility>
|
|
46
46
|
#include <variant>
|
|
47
47
|
#include <vector>
|
|
48
|
-
`;new TextDecoder;function
|
|
48
|
+
`;new TextDecoder;function $e(e){return e===Qe}function et(e){return(e.config.target===`wasip1`||e.config.target===`wasix`)&&(e.config.language===`c`||e.config.language===`cpp`)}function tt(e){if(!et(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&&!$e(r.content)?1:0;return n.size+i+2}function nt(e){let t=tt(e);if(t>8)throw Error(`The browser Clang project requires ${t} compiler stages; the verified per-Worker limit is 8.`);return t}function rt(e,t){return!e.success||!e.artifact||!e.buildGraph?t:(e.buildGraph.misses.pch??0)+(e.buildGraph.misses.object??0)+(e.buildGraph.misses[`link-result`]??0)}Object.freeze({c:`cpp`,cpp:`cpp`,rust:`cargo`,python:`pypi`,javascript:`npm`,typescript:`npm`,go:`go`}),`${O.split(`.`).slice(0,2).join(`.`)}`;var it=18e4;Object.freeze({version:O,target:`wasip1/wasm`,packageAsset:Oe,packageCompressedSha256:k,packageSha256:A,manifestAsset:ke,manifestSha256:j,standardLibraryAsset:Ae,standardLibraryCompressedSha256:M,standardLibrarySha256:je,compilerSha256:Me,linkerSha256:Ne});var at=`wasm32-wasip1-threads`,ot=`2024`,st=18e4;Object.freeze([`wasi_snapshot_preview1.random_get`,`wasi_snapshot_preview1.clock_time_get`]),Object.freeze({version:T,packageAsset:Te,packageCompressedSha256:De,packageSha256:E,manifestAsset:Ee,manifestSha256:D,target:at,edition:ot});var ct=6e4,lt=12e4,ut=it+1e4,dt=st+1e4;function ft(e){if(e===`java`)return 19e4;if(!v(e))throw Error(`The built-in WASM-OJ compiler does not support language '${e}'.`);return e===`c`||e===`cpp`?ct:e===`rust`?dt:e===`go`?ut:lt}function pt(e){return e.config.language===`rust`}function mt(e){return pt(e)?2:0}var ht=``+new URL(`assets/compiler.worker-Cpp5Hq8T.js`,import.meta.url).href;function gt(e,t={}){let n=_t(e,{liveness:!0}),r;try{r=new Worker(n.url,{...t,type:`module`})}finally{n.revoke()}return St(r,t.name),r}function _t(e,{liveness:t=!1}={}){let n=wt(),r=Tt(e),i=new Blob([`const pendingMessages = [];
|
|
49
49
|
`,`const queueMessage = (event) => { event.stopImmediatePropagation(); pendingMessages.push(event.data); };
|
|
50
50
|
`,`globalThis.addEventListener("message", queueMessage);
|
|
51
|
-
`,`Object.defineProperty(globalThis, "__wasmOjModuleWorkerBaseUrl", { value: ${JSON.stringify(
|
|
52
|
-
`],{type:`text/javascript`}),i=URL.createObjectURL(r),a=!0;return{url:i,revoke(){a&&(a=!1,URL.revokeObjectURL(i))}}}function xt(){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 St(e){let t=xt(),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}async function Ct(e,t){let n=d(e),r=t.optimization??`release`;p(n,t.language,t.target??`wasip1`,r);let i=globalThis.location?.href;if(!i)throw Error(`Toolchain prefetch requires a browser location.`);let s=a({language:t.language,optimization:r,libcxxPrecompiledHeader:t.libcxxPrecompiledHeader}).map(e=>({path:e,bytes:ee(n,e).asset.bytes,url:o(n,e,i)})),c=s.reduce((e,t)=>e+t.bytes,0),l=0,u=()=>t.onProgress?.({loadedBytes:l,totalBytes:c});u(),await Promise.all(s.map(async e=>{let n=await fetch(e.url,{signal:t.signal});if(!n.ok||!n.body)throw Error(`Unable to prefetch pinned toolchain asset '${e.path}' (${n.status}).`);let r=n.body.getReader(),i=0;for(;;){let{done:e,value:t}=await r.read();if(e)break;i+=t.byteLength,l+=t.byteLength,u()}if(i!==e.bytes)throw Error(`Prefetched toolchain asset '${e.path}' has ${i} bytes; expected ${e.bytes}.`)}))}var wt=2,Tt=`manifests`,B=`metadata`,Et=`blobs`,V=`clang`;new TextEncoder;function H(){return new Promise((e,t)=>{let n=indexedDB.deleteDatabase(g.incrementalBuildCache);n.addEventListener(`success`,()=>e(),{once:!0}),n.addEventListener(`error`,()=>{t(n.error??Error(`Unable to delete the incremental build cache.`))},{once:!0}),n.addEventListener(`blocked`,()=>{t(Error(`Incremental build cache deletion is blocked by another open tab.`))},{once:!0})})}async function Dt(){let e=await kt();try{let t=e.transaction(B,`readonly`),n=await At(t.objectStore(B).get(V));if(await jt(t),n===void 0)return[];let r=Mt(n);return[{key:V,byteLength:r.byteLength,lastAccessedAt:r.lastAccessedAt}]}finally{e.close()}}function Ot(){return{id:`incremental-build-graph`,retentionPriority:10,list:Dt,delete:async e=>{if(e!==V)throw Error(`Unknown build graph storage key '${e}'.`);await H()},clear:H}}function kt(){return new Promise((e,t)=>{let n=indexedDB.open(g.incrementalBuildCache,wt);n.addEventListener(`upgradeneeded`,()=>{let e=n.result;for(let t of[...e.objectStoreNames])e.deleteObjectStore(t);e.createObjectStore(Tt,{keyPath:`id`}),e.createObjectStore(B,{keyPath:`id`}),e.createObjectStore(Et,{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 At(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 jt(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})})}function Mt(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!==V||!U(t.generation)||!U(t.blobBytes)||!U(t.manifestBytes)||!U(t.byteLength)||!U(t.lastAccessedAt)||Nt(t.blobBytes,t.manifestBytes)!==t.byteLength)throw Error(`Persisted Clang build graph metadata has invalid storage accounting.`);return t}function Nt(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 U(e){return Number.isSafeInteger(e)&&e>=0}var Pt=12e4,Ft=1e4,It=class{worker;pending=new Map;progressListeners=new Set;traceListeners=new Set;readyPromise;toolchains;activeOperation;disposed=!1;generation=0;workerDormant=!1;workerInitialized=!1;outputReadyClangStages=0;outputReadyRustStages=0;retainedGoStage=!1;acquiredToolchains=new Set;acquisition;constructor(e){if(!e||typeof e!=`object`)throw TypeError(`BrowserCompiler requires explicit toolchain options.`);this.toolchains=d(e.toolchains),this.worker=this.createWorker(),this.readyPromise=this.initializeWorker()}cacheIdentity(e){this.assertActive();let{descriptor:t}=p(this.toolchains,e.config.language,e.config.target,e.config.optimization).source;return JSON.stringify({...f(e.config.language),source:{id:t.id,version:t.version,assets:t.assets.map(({path:e,bytes:t,sha256:n})=>({path:e,bytes:t,sha256:n}))}})}initializeWorker(){let e=this.request({type:`initialize`,toolchains:this.toolchains},Pt);return e.catch(()=>void 0),e}onProgress(e){return this.assertActive(),this.progressListeners.add(e),()=>this.progressListeners.delete(e)}onTrace(e){return this.assertActive(),this.traceListeners.add(e),()=>this.traceListeners.delete(e)}ready(){return this.assertActive(),this.readyPromise}async build(e,t){if(this.assertActive(),i(e),r(t),p(this.toolchains,e.config.language,e.config.target,e.config.optimization),this.activeOperation)throw Error(`BrowserCompiler accepts one active operation at a time.`);let n=rt(e),a=at(e),o=_t(e),s=o>0,c=e.config.language===`go`,l={kind:`build`};this.activeOperation=l;let u=this.outputReadyClangStages>0&&(!n||this.outputReadyClangStages+a>8),d=this.outputReadyRustStages>0&&(!s||this.outputReadyRustStages+o>4),ee=this.retainedGoStage&&!c,f,m=!1;try{(u||d||ee)&&(await this.quiesceAndReplaceWorker(Error(`Compiler Worker recycled at the output-ready stage boundary.`)),this.activeOperation=l);let r=this.generation;if(await this.readyPromise,this.assertActive(),r!==this.generation||(await this.acquireToolchain(e),this.assertActive(),r!==this.generation))throw Error(`Browser compilation was superseded by a Worker replacement.`);f=this.worker;let i=await this.request({type:`build`,project:e,cacheKey:t},ht(e.config.language));return n?(this.outputReadyClangStages+=ot(i,a),m=!0):s?(this.outputReadyRustStages+=o,m=!0):c&&(this.retainedGoStage=!0,m=!0),i}finally{this.activeOperation===l&&(this.activeOperation=void 0),!this.disposed&&f&&this.worker===f&&!m&&this.replaceWorker(Error(`Compiler Worker recycled after isolated build.`))}}async clearToolchainCache(){if(this.assertActive(),this.activeOperation)throw Error(`BrowserCompiler accepts one active operation at a time.`);let e={kind:`cache-clear`};this.activeOperation=e,this.stopWorker(Error(`Compiler Worker recycled before clearing caches.`));let n=this.generation;this.acquiredToolchains.clear();try{let e=await caches.keys();if(await Promise.all([...e.filter(e=>e===t.toolchainCache).map(e=>caches.delete(e)),H()]),this.assertActive(),n!==this.generation||(this.installWorker(),await this.readyPromise,this.assertActive(),n!==this.generation))throw Error(`Compiler cache clearing was superseded by a lifecycle change.`)}finally{!this.disposed&&n===this.generation&&this.workerDormant&&this.installWorker(),this.activeOperation===e&&(this.activeOperation=void 0)}}cancel(){this.disposed||this.activeOperation?.kind!==`cache-clear`&&this.replaceWorker(Error(`Compilation cancelled.`))}restart(){if(this.assertActive(),this.activeOperation?.kind===`cache-clear`)throw Error(`Cannot restart BrowserCompiler while clearing its cache.`);this.replaceWorker(Error(`Compiler worker restarted.`))}dispose(){if(this.disposed)return;this.disposed=!0,this.generation+=1,this.workerDormant=!0,this.activeOperation=void 0,this.worker.terminate();let e=Error(`Compiler client disposed.`);this.acquisition?.abort(e),this.acquisition=void 0;for(let t of this.pending.values())t.timer&&clearTimeout(t.timer),t.reject(e);this.pending.clear(),this.progressListeners.clear(),this.traceListeners.clear()}createWorker(){let e=yt(vt,{name:`wasm-oj-compiler`});return e.addEventListener(`message`,t=>{!this.disposed&&!this.workerDormant&&this.worker===e&&this.handleMessage(t.data)}),e.addEventListener(`error`,t=>{let n=Error(t.message||`The compiler worker crashed.`);if(this.disposed||this.workerDormant||this.worker!==e)return;let r=this.workerInitialized;this.stopWorker(n),r&&this.installWorker()}),e}replaceWorker(e){this.stopWorker(e),this.installWorker()}async quiesceAndReplaceWorker(e){let t=this.generation;try{await this.request({type:`quiesce`},Ft)}catch(e){let n=e instanceof Error?e:Error(String(e));throw!this.disposed&&t===this.generation&&this.replaceWorker(n),Error(`Compiler could not establish a quiescent Worker boundary.`,{cause:n})}if(this.assertActive(),t!==this.generation)throw Error(`Compiler quiescence was superseded by a lifecycle change.`);this.stopWorker(e),this.installWorker()}async acquireToolchain(e){let{language:t,target:n,optimization:r}=e.config,i=t===`cpp`&&e.files.some(e=>e.path.slice(e.path.lastIndexOf(`/`)+1)===`wasm-oj.pch.hpp`&&l(e.content)),a=JSON.stringify([t,n,r,i]);if(this.acquiredToolchains.has(a))return;let o=new AbortController;this.acquisition=o;try{await Ct(this.toolchains,{language:t,target:n,optimization:r,libcxxPrecompiledHeader:i,signal:o.signal,onProgress:({loadedBytes:e,totalBytes:t})=>{let n={phase:`loading-toolchain`,label:`Downloading pinned toolchain`,progress:t>0?e/t:1};for(let e of this.progressListeners)e(n)}})}finally{this.acquisition===o&&(this.acquisition=void 0)}this.acquiredToolchains.add(a)}stopWorker(e){this.acquisition?.abort(e),this.acquisition=void 0,this.generation+=1,this.workerDormant=!0,this.activeOperation?.kind===`build`&&(this.activeOperation=void 0),this.worker.terminate();for(let t of this.pending.values())t.timer&&clearTimeout(t.timer),t.reject(e);this.pending.clear(),this.outputReadyClangStages=0,this.outputReadyRustStages=0,this.retainedGoStage=!1,this.workerInitialized=!1}installWorker(){this.worker=this.createWorker(),this.workerDormant=!1,this.readyPromise=this.initializeWorker()}assertActive(){if(this.disposed)throw Error(`BrowserCompiler is disposed.`)}request(e,t){this.assertActive();let n=crypto.randomUUID();return new Promise((r,i)=>{let a={resolve:r,reject:i};a.timer=setTimeout(()=>{if(!this.pending.delete(n))return;let e=Error(`Compiler request exceeded the ${t} ms browser boundary.`);i(e),this.disposed||this.replaceWorker(e)},t),this.pending.set(n,a);try{this.worker.postMessage({...e,requestId:n})}catch(e){this.pending.delete(n),a.timer&&clearTimeout(a.timer),i(e instanceof Error?e:Error(String(e)))}})}handleMessage(e){if(e.type===`progress`){for(let t of this.progressListeners)t(e.progress);return}if(e.type===`compile-trace`){for(let t of this.traceListeners)t(e.requestId,e.event);return}let t=this.pending.get(e.requestId);if(t)switch(this.pending.delete(e.requestId),t.timer&&clearTimeout(t.timer),e.type){case`ready`:this.workerInitialized=!0,t.resolve(void 0);break;case`quiesced`:t.resolve(void 0);break;case`build-result`:t.resolve(e.result);break;case`error`:t.reject(Object.assign(Error(e.message),{code:e.code,stack:e.stack}))}}},Lt=``+new URL(`assets/runner.worker-CWkfyiLA.js`,import.meta.url).href,W=Object.freeze({count:16,sourceBytes:1048576}),Rt=`createRuntimeDriver`,zt=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function Bt(e,t){if(!Array.isArray(e))throw TypeError(`Browser runtime-driver plug-ins must be an array.`);if(e.length>W.count)throw RangeError(`At most ${W.count} browser runtime-driver plug-ins are allowed.`);if(e.length===0)return[];let n=Ut(t,`Browser runtime-driver plug-in base URL`),r=new Set;return e.map((e,t)=>{if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(`Browser runtime-driver plug-in ${t} must be an object.`);let i=Vt(e.id,`Browser runtime-driver plug-in ${t} ID`);if(r.has(i))throw Error(`Browser runtime-driver plug-in '${i}' is declared more than once.`);if(r.add(i),typeof e.moduleUrl!=`string`||!e.moduleUrl||e.moduleUrl!==e.moduleUrl.trim())throw TypeError(`Browser runtime-driver plug-in '${i}' moduleUrl must be a non-empty trimmed string.`);let a=Ut(new URL(e.moduleUrl,n).href,`Browser runtime-driver plug-in '${i}' module URL`);if(a.origin!==n.origin)throw Error(`Browser runtime-driver plug-in '${i}' must be loaded from ${n.origin}.`);if(a.username||a.password||a.hash)throw Error(`Browser runtime-driver plug-in '${i}' URL cannot contain credentials or a fragment.`);if(typeof e.sha256!=`string`||!/^[0-9a-f]{64}$/.test(e.sha256))throw Error(`Browser runtime-driver plug-in '${i}' SHA-256 must be lowercase hexadecimal.`);let o=Ht(e.exportName??Rt,i);return Object.freeze({id:i,moduleUrl:a.href,sha256:e.sha256,...o===Rt?{}:{exportName:o}})})}function Vt(e,t){if(typeof e!=`string`||!e||e!==e.trim()||e.length>128)throw Error(`${t} must be non-empty, trimmed, and at most 128 characters.`);return e}function Ht(e,t){if(typeof e!=`string`||!zt.test(e)||e.length>128)throw Error(`Browser runtime-driver plug-in '${t}' exportName must be an ASCII JavaScript identifier.`);return e}function Ut(e,t){let n;try{n=new URL(e)}catch{throw Error(`${t} must be a valid absolute URL.`)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw Error(`${t} must use HTTP or HTTPS.`);return n}var Wt=12e4,Gt=3e5;function Kt(e){return e.language===`python`?Gt:Wt}var G=12e4,qt=class{worker;pending=new Map;progressListeners=new Set;streamListeners=new Set;readyPromise;toolchains;additionalCostBaselines;runtimeDriverPlugins;costBaselines;disposed=!1;activeOperation;inFlightOperations=new Set;generation=0;workerInitialized=!1;constructor(e){if(!e||typeof e!=`object`)throw TypeError(`BrowserRunner requires explicit toolchain options.`);this.toolchains=d(e.toolchains),this.additionalCostBaselines=Object.freeze({...e.additionalCostBaselines}),this.runtimeDriverPlugins=e.runtimeDriverPlugins?.length?Bt(e.runtimeDriverPlugins,location.href):[],this.costBaselines=c(this.additionalCostBaselines),this.worker=this.createWorker(),this.readyPromise=this.initializeWorker()}initializeWorker(){let e=this.request({type:`initialize`,toolchains:this.toolchains,additionalCostBaselines:this.additionalCostBaselines,runtimeDriverPlugins:this.runtimeDriverPlugins},G);return e.catch(()=>void 0),e}onProgress(e){return this.assertActive(),this.progressListeners.add(e),()=>this.progressListeners.delete(e)}onStream(e){return this.assertActive(),this.streamListeners.add(e),()=>this.streamListeners.delete(e)}ready(){return this.assertActive(),this.readyPromise}run(e,t){return this.track(this.runOperation(e,t))}interact(e,t,n){return this.track(this.interactOperation(e,t,n))}async interactOperation(e,t,r){if(this.assertActive(),this.activeOperation)throw Error(`BrowserRunner accepts one active operation at a time.`);let i={kind:`interact`};this.activeOperation=i;let a=this.generation;try{if(await this.readyPromise,this.assertActive(),a!==this.generation)throw Error(`Browser interaction was superseded by a Worker replacement.`);let i=performance.now(),o=u(e,r.contestant.resources.instructionBudget,this.costBaselines),s=u(t,r.interactor.resources.instructionBudget,this.costBaselines),c=Math.min(r.contestant.resources.wallTimeLimitMs,r.interactor.resources.wallTimeLimitMs);return await this.request({type:`interact`,contestant:e,interactor:t,config:r},c,()=>({contestant:{code:137,stderr:`Interactive wall-time limit ${c} ms exceeded.`,termination:`wall-time-limit`,metrics:m(o,n)},interactor:{code:137,stderr:`Interactive wall-time limit ${c} ms exceeded.`,termination:`wall-time-limit`,metrics:m(s,n)},contestantToInteractor:``,interactorToContestant:``,durationMs:performance.now()-i,determinism:{...r.determinism}}),Math.max(Kt(e),Kt(t)))}finally{this.activeOperation===i&&(this.activeOperation=void 0)}}async runOperation(e,t){if(this.assertActive(),this.activeOperation)throw Error(`BrowserRunner accepts one active operation at a time.`);let r={kind:`run`};this.activeOperation=r;let i=this.generation;try{if(await this.readyPromise,this.assertActive(),i!==this.generation)throw Error(`Browser execution was superseded by a Worker replacement.`);let r=performance.now(),a=u(e,t.resources.instructionBudget,this.costBaselines);return await this.request({type:`run`,artifact:e,config:t},t.resources.wallTimeLimitMs,()=>({code:137,stdout:``,stderr:`Wall-time limit ${t.resources.wallTimeLimitMs} ms exceeded.`,files:{},executionDurationMs:t.resources.wallTimeLimitMs,durationMs:performance.now()-r,determinism:{...t.determinism},resources:{...t.resources},termination:`wall-time-limit`,metrics:m(a,n)}),Kt(e))}finally{this.activeOperation===r&&(this.activeOperation=void 0)}}clearRuntimeCache(){return this.track(this.clearRuntimeCacheOperation())}async clearRuntimeCacheOperation(){if(this.assertActive(),this.activeOperation)throw Error(`BrowserRunner accepts one active operation at a time.`);let e={kind:`cache-clear`};this.activeOperation=e;let t=this.generation;try{if(await this.readyPromise,this.assertActive(),t!==this.generation)throw Error(`Runtime cache clearing was superseded by a Worker replacement.`);await this.request({type:`clear-runtime-cache`},G)}finally{this.activeOperation===e&&(this.activeOperation=void 0)}}cancel(){this.disposed||this.activeOperation?.kind!==`cache-clear`&&this.replaceWorker(Error(`Execution cancelled.`))}async cancelAndWait(){for(this.cancel();this.inFlightOperations.size>0;)await Promise.allSettled([...this.inFlightOperations])}restart(){if(this.assertActive(),this.activeOperation?.kind===`cache-clear`)throw Error(`Cannot restart BrowserRunner while clearing its cache.`);this.replaceWorker(Error(`Runner worker restarted.`))}dispose(){this.disposed||(this.disposed=!0,this.generation+=1,this.activeOperation=void 0,this.worker.terminate(),this.rejectAll(Error(`Runner client disposed.`)),this.progressListeners.clear(),this.streamListeners.clear())}createWorker(){let e=yt(Lt,{name:`wasm-oj-runner`});return e.addEventListener(`message`,t=>{!this.disposed&&this.worker===e&&this.handleMessage(t.data)}),e.addEventListener(`error`,t=>{let n=Error(t.message||`The runner worker crashed.`);if(this.disposed||this.worker!==e)return;let r=this.workerInitialized;this.stopWorker(n),r&&this.installWorker()}),e}rejectAll(e){for(let t of this.pending.values())K(t),t.reject(e);this.pending.clear()}replaceWorker(e){this.stopWorker(e),this.installWorker()}stopWorker(e){this.generation+=1,(this.activeOperation?.kind===`run`||this.activeOperation?.kind===`interact`)&&(this.activeOperation=void 0),this.worker.terminate(),this.rejectAll(e),this.workerInitialized=!1}installWorker(){this.worker=this.createWorker(),this.readyPromise=this.initializeWorker()}assertActive(){if(this.disposed)throw Error(`BrowserRunner is disposed.`)}track(e){return this.inFlightOperations.add(e),e.then(()=>this.inFlightOperations.delete(e),()=>this.inFlightOperations.delete(e)),e}request(e,t,n,r=G){this.assertActive();let i=crypto.randomUUID();return new Promise((a,o)=>{let s={resolve:a,reject:o,timeoutMs:t,timeoutResult:n};this.pending.set(i,s),n?s.boundaryTimer=setTimeout(()=>{if(!this.pending.delete(i))return;let e=Error(`Runner runtime preparation exceeded the ${r} ms browser boundary.`);o(e),this.disposed||this.replaceWorker(e)},r):t!==void 0&&(s.boundaryTimer=setTimeout(()=>{if(!this.pending.delete(i))return;let e=Error(`Runner request exceeded the ${t} ms browser boundary.`);o(e),this.disposed||this.replaceWorker(e)},t));try{this.worker.postMessage({...e,requestId:i})}catch(e){this.pending.delete(i),K(s),o(e instanceof Error?e:Error(String(e)))}})}handleMessage(e){if(e.type===`progress`){for(let t of this.progressListeners)t(e.progress);e.progress.phase===`running`&&this.startWallTimer(e.requestId),e.progress.phase===`packaging`&&this.finishWallTimer(e.requestId);return}if(e.type===`stream`){for(let t of this.streamListeners)t(e.stream,e.chunk);return}let t=this.pending.get(e.requestId);if(t)switch(this.pending.delete(e.requestId),K(t),e.type){case`ready`:this.workerInitialized=!0,t.resolve(void 0);break;case`run-result`:t.resolve(e.result);break;case`interactive-result`:t.resolve(e.result);break;case`runtime-cache-cleared`:t.resolve(void 0);break;case`error`:t.reject(Object.assign(Error(e.message),{code:e.code,stack:e.stack}))}}finishWallTimer(e){let t=this.pending.get(e);!t||t.executionTimer===void 0||t.executionFinished||(K(t),t.executionFinished=!0,t.boundaryTimer=setTimeout(()=>{if(!this.pending.delete(e))return;let n=Error(`Runner result collection exceeded the ${G} ms browser boundary.`);t.reject(n),this.disposed||this.replaceWorker(n)},G))}startWallTimer(e){let t=this.pending.get(e);!t||t.executionTimer||t.executionFinished||t.timeoutMs===void 0||!t.timeoutResult||(t.boundaryTimer&&=(clearTimeout(t.boundaryTimer),void 0),t.executionTimer=setTimeout(()=>{let t=this.pending.get(e);if(!t||!t.timeoutResult)return;this.pending.delete(e);let n=t.timeoutResult();this.replaceWorker(Error(`Runner worker replaced after wall-time termination.`)),t.resolve(n)},t.timeoutMs))}};function K(e){e.boundaryTimer&&clearTimeout(e.boundaryTimer),e.executionTimer&&clearTimeout(e.executionTimer),e.boundaryTimer=void 0,e.executionTimer=void 0}var Jt=new TextEncoder,Yt=Jt.encode(`wasm-oj/runtime-bundle-payload\0`),Xt=1,Zt=2,Qt=8;function $t(e){if(e.kind===`wasm`)return e.bytes;if(e.kind!==`runtime-bundle`)throw Error(`Unsupported artifact payload kind '${String(e.kind)}'.`);let t=Qe(e.files),n=[Yt,tn(t.length,`Runtime bundle file count`)];for(let[e,r]of t){let t=Jt.encode(e),i,a;if(typeof r==`string`)i=Xt,a=Jt.encode(r);else if(r instanceof Uint8Array)i=Zt,a=r;else throw Error(`Runtime bundle file '${e}' must contain text or Uint8Array bytes.`);n.push(tn(t.byteLength,`Runtime bundle path '${e}' byte length`),t,Uint8Array.of(i),tn(a.byteLength,`Runtime bundle file '${e}' byte length`),a)}return nn(n)}function en(e){return M($t(e))}function tn(e,t){if(!Number.isSafeInteger(e)||e<0)throw RangeError(`${t} must be a non-negative safe integer.`);let n=new Uint8Array(Qt);return new DataView(n.buffer).setBigUint64(0,BigInt(e),!1),n}function nn(e){let t=e.reduce((e,t)=>{let n=e+t.byteLength;if(!Number.isSafeInteger(n))throw RangeError(`Artifact payload framing exceeds the safe integer range.`);return n},0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.byteLength;return n}var rn=`weighted`;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`});var an=`d3e44cafdc1c17a7e6bd4591ef04ec8161af805a519b5bbff437b15e5accd442`;function on(e,t,n){return _(e),[`wasm-oj-cost`,`contract-${h}`,encodeURIComponent(e),t,n]}function sn(e,t,n,r){let i=v(e)?Ke(e):r;if(!i||!/^[A-Za-z0-9._-]+$/.test(i))throw Error(v(e)?`WASM-OJ toolchain content identity is invalid for '${e}'.`:`Downstream language '${e}' requires an explicit content identity using letters, digits, '.', '_' or '-'.`);return[...on(e,t,n),`content-${i}`,`runtime-${an}`,rn].join(`:`)}function cn(e,t,n,r){let i=`${on(t,n,r).join(`:`)}:content-`,a=`:runtime-${an}:${rn}`;if(!e.startsWith(i)||!e.endsWith(a))return!1;let o=e.slice(i.length,-a.length);return!!o&&/^[A-Za-z0-9._-]+$/.test(o)}var ln=new TextEncoder,un=Object.freeze({python:`python`,javascript:`qjs`,typescript:`qjs`});function q(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:te.runtimeBundle,version:h,name:e.name,target:e.target,language:e.language,runtime:{package:e.runtimePackage,command:e.command},execution:{deterministic:!0,contractVersion:h},entry:e.entry,files:[...e.files]},null,2)}function fn(e,t,n,r){return q(e.name,`Project name`),q(t,`Runtime package`),q(n,`Runtime command`,128),_(e.config.language),j(r,`Runtime bundle entry`),dn({name:e.name,target:e.config.target,language:e.config.language,runtimePackage:t,command:n,entry:r,files:Ze(e.files).map(e=>e.path)})}function pn(e){let t;try{t=JSON.parse(e.manifest)}catch(e){throw Error(`Runtime bundle manifest is not valid JSON.`,{cause:e})}if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`Runtime bundle manifest must be a JSON object.`);let n=t,r=n.runtime,i=n.execution;if(!r||typeof r!=`object`||Array.isArray(r))throw Error(`Runtime bundle manifest runtime must be an object.`);if(!i||typeof i!=`object`||Array.isArray(i))throw Error(`Runtime bundle manifest execution must be an object.`);let a=r,o=i;if(q(n.name,`Runtime bundle manifest name`),q(a.package,`Runtime bundle manifest package`),q(a.command,`Runtime bundle manifest command`,128),n.target!==`wasip1`&&n.target!==`wasix`)throw Error(`Runtime bundle manifest has an invalid target.`);if(typeof n.language!=`string`)throw Error(`Runtime bundle manifest has an invalid language.`);if(_(n.language),typeof n.entry!=`string`)throw Error(`Runtime bundle manifest has an invalid entry.`);if(j(n.entry,`Runtime bundle manifest entry`),!Array.isArray(n.files))throw Error(`Runtime bundle manifest files must be an array.`);let s=n.files.map((e,t)=>(j(e,`Runtime bundle manifest file ${t}`),e)),c=[...s].sort((e,t)=>e<t?-1:+(e>t));if(new Set(s).size!==s.length||JSON.stringify(s)!==JSON.stringify(c))throw Error(`Runtime bundle manifest files must be unique and canonically sorted.`);if(n.schema!==te.runtimeBundle||n.version!==h||o.deterministic!==!0||o.contractVersion!==h)throw Error(`Runtime bundle manifest does not match the current WASM-OJ contract.`);let l={name:n.name,target:n.target,language:n.language,runtimePackage:a.package,command:a.command,entry:n.entry,files:s};if(e.manifest!==dn(l))throw Error(`Runtime bundle manifest must use the canonical WASM-OJ representation without extra fields.`);return l}function mn(e){switch(e.config.language){case`c`:case`cpp`:case`go`:case`rust`:return`${e.name}.wasm`;case`python`:return`${e.name}.python-${e.config.target}.json`;case`javascript`:case`typescript`:return`${e.name}.${e.config.language}-${e.config.target}.json`;default:throw Error(`WASM-OJ has no built-in artifact name for '${e.config.language}'.`)}}function hn(e){if(e.config.language===`python`){if(!e.config.entry.endsWith(`.py`))throw Error(`Python entry files must end in '.py'.`);return e.config.entry}if(e.config.language===`typescript`){if(!e.config.entry.endsWith(`.ts`))throw Error(`TypeScript entry files must end in '.ts'.`);return`${e.config.entry.slice(0,-3)}.js`}return e.config.entry}function gn(e){if(e.wasmOjContract!==h)throw Error(`Artifact WASM-OJ contract '${String(e.wasmOjContract)}' is unsupported; expected '${h}'.`);if(q(e.id,`Artifact id`),q(e.projectId,`Artifact projectId`),q(e.cacheKey,`Artifact cacheKey`),q(e.name,`Artifact name`),typeof e.language!=`string`)throw Error(`Artifact language must be a string.`);if(_(e.language),e.target!==`wasip1`&&e.target!==`wasix`)throw Error(`Artifact target is invalid.`);if(e.optimization!==`debug`&&e.optimization!==`release`)throw Error(`Artifact optimization is invalid.`);if(typeof e.createdAt!=`number`||!Number.isFinite(e.createdAt)||e.createdAt<0)throw Error(`Artifact createdAt must be a non-negative finite number.`);if(typeof e.durationMs!=`number`||!Number.isFinite(e.durationMs)||e.durationMs<0)throw Error(`Artifact durationMs must be a non-negative finite number.`);if(!Number.isSafeInteger(e.size)||e.size<0)throw Error(`Artifact size must be a non-negative safe integer.`);if(!Array.isArray(e.toolchains))throw Error(`Artifact toolchains must be an array.`);let t=e.toolchains;if(t.length===0||t.some(e=>typeof e!=`string`||!e||e!==e.trim())||new Set(t).size!==t.length)throw Error(`Artifact toolchains must be non-empty, unique, trimmed identities.`);if(q(e.costProfile,`Artifact costProfile`),e.dependencyLockSha256!==void 0&&(typeof e.dependencyLockSha256!=`string`||!/^[0-9a-f]{64}$/.test(e.dependencyLockSha256)))throw Error(`Artifact dependencyLockSha256 must be lowercase SHA-256 hexadecimal.`)}function _n(e){if(!v(e.language))return;let t=qe[e.language];if(!t.targets.includes(e.target))throw Error(`Artifact target '${e.target}' is unsupported for built-in language '${e.language}'.`);if(e.kind!==t.artifact)throw Error(`Built-in '${e.language}' artifacts must use kind '${t.artifact}', not '${e.kind}'.`);let n=Je(e.language);if(JSON.stringify(e.toolchains)!==JSON.stringify(n))throw Error(`Artifact toolchains do not match the canonical '${e.language}' toolchain identities.`);let r=sn(e.language,e.target,e.optimization);if(e.costProfile!==r)throw Error(`Artifact cost profile '${e.costProfile}' does not match ${e.language}/${e.target}/${e.optimization}.`);if(e.kind===`runtime-bundle`){let n=un[e.language];if(e.runtimePackage!==t.runtimePackage||e.command!==n)throw Error(`Built-in '${e.language}' artifact runtime package or command is not canonical.`)}}function vn(e){q(e.runtimePackage,`Runtime bundle package`),q(e.command,`Runtime bundle command`,128),j(e.entry,`Runtime bundle entry`),q(e.manifest,`Runtime bundle manifest`,1048576);let t=Qe(e.files);for(let[e,n]of t)if(typeof n!=`string`&&!(n instanceof Uint8Array))throw Error(`Runtime bundle file '${e}' must contain text or Uint8Array bytes.`);if(!Object.hasOwn(e.files,e.entry))throw Error(`Runtime bundle entry '${e.entry}' is not present in its files.`);if(e.files[`wasm-oj.manifest.json`]!==e.manifest)throw Error(`Runtime bundle must contain its exact manifest at 'wasm-oj.manifest.json'.`);let n=pn(e);if(n.target!==e.target||n.language!==e.language||n.runtimePackage!==e.runtimePackage||n.command!==e.command||n.entry!==e.entry)throw Error(`Runtime bundle manifest metadata does not match its artifact metadata.`);return n}function yn(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Build artifact must be an object.`);let n=e;if(gn(n),n.kind!==`wasm`&&n.kind!==`runtime-bundle`)throw Error(`Artifact kind must be 'wasm' or 'runtime-bundle'.`);let r=e,i,a;if(r.kind===`wasm`){if(!(r.bytes instanceof Uint8Array))throw Error(`Wasm artifact bytes must be a Uint8Array.`);a=r.bytes.byteLength}else i=vn(r),a=Qe(r.files).reduce((e,[,t])=>e+(typeof t==`string`?ln.encode(t).byteLength:t.byteLength),0);if(r.size!==a)throw Error(`Artifact size ${r.size} does not match payload size ${a}.`);if(_n(r),!v(r.language)&&!cn(r.costProfile,r.language,r.target,r.optimization))throw Error(`Artifact cost profile '${r.costProfile}' does not match ${r.language}/${r.target}/${r.optimization}.`);if(!t)return;let{project:o,cacheKey:s}=t;Ze(o.files);let c={cacheKey:s,projectId:o.id,language:o.config.language,target:o.config.target,optimization:o.config.optimization,dependencyLockSha256:o.dependencies?.lockSha256};for(let e of[`cacheKey`,`projectId`,`language`,`target`,`optimization`,`dependencyLockSha256`])if(r[e]!==c[e])throw Error(`Artifact ${e} '${String(r[e])}' does not match build identity '${String(c[e])}'.`);if(!v(o.config.language))return;let l=mn(o);if(r.name!==l)throw Error(`Artifact name '${r.name}' does not match build identity '${l}'.`);if(r.kind===`runtime-bundle`){let e=hn(o);if(r.entry!==e)throw Error(`Artifact entry '${r.entry}' does not match build identity '${e}'.`);let t=fn(o,r.runtimePackage,r.command,e);if(r.manifest!==t||i?.name!==o.name)throw Error(`Runtime bundle manifest does not match the canonical project build identity.`)}}Object.freeze({randomSeed:1592594996,realtimeEpochMs:Date.UTC(2e3,0,1),clockStepNs:1e6});var bn=Object.freeze([`id`,`name`,`files`,`config`,`activeFile`,`updatedAt`]);Object.freeze([...bn,`dependencies`]),Object.freeze([`path`,`language`,`content`]),Object.freeze([`language`,`target`,`optimization`,`entry`,`args`,`stdin`,`env`,`determinism`,`resources`]),Object.freeze([`randomSeed`,`realtimeEpochMs`,`clockStepNs`]),Object.freeze([`instructionBudget`,`logicalTimeLimitMs`,`memoryLimitBytes`,`outputLimitBytes`,`filesystemWriteLimitBytes`,`filesystemEntryLimit`,`wallTimeLimitMs`]);var xn=`projects`,J=`artifacts`,Sn=/^[0-9a-f]{64}$/u;function Y(e){return new Promise((t,n)=>{e.addEventListener(`success`,()=>t(e.result),{once:!0}),e.addEventListener(`error`,()=>{n(e.error??Error(`IndexedDB request failed without an error.`))},{once:!0})})}function X(e){return new Promise((t,n)=>{e.addEventListener(`complete`,()=>t(),{once:!0}),e.addEventListener(`abort`,()=>{n(e.error??Error(`IndexedDB transaction aborted without an error.`))},{once:!0}),e.addEventListener(`error`,()=>{n(e.error??Error(`IndexedDB transaction failed without an error.`))},{once:!0})})}var Z;function Q(){if(Z)return Z;let e=new Promise((t,n)=>{let r=indexedDB.open(g.database,g.databaseVersion),i=!1,a=e=>{i||(i=!0,n(e))};r.addEventListener(`upgradeneeded`,()=>{let e=r.result;e.objectStoreNames.contains(xn)||e.createObjectStore(xn,{keyPath:`id`}).createIndex(`updatedAt`,`updatedAt`),e.objectStoreNames.contains(J)||e.createObjectStore(J,{keyPath:`cacheKey`}).createIndex(`createdAt`,`createdAt`)}),r.addEventListener(`success`,()=>{let n=r.result;if(i){n.close();return}i=!0;let a=()=>{Z===e&&(Z=void 0)};n.addEventListener(`versionchange`,()=>{n.close(),a()},{once:!0}),n.addEventListener(`close`,a,{once:!0}),t(n)},{once:!0}),r.addEventListener(`error`,()=>{a(r.error??Error(`Unable to open WASM-OJ storage.`))},{once:!0}),r.addEventListener(`blocked`,()=>{a(Error(`WASM-OJ storage upgrade is blocked by another open tab.`))},{once:!0})});return Z=e,e.catch(()=>{Z===e&&(Z=void 0)}),e}async function Cn(e){let t=structuredClone(e);yn(t);let n=$t(t),r={artifact:t,byteLength:n.byteLength,cacheKey:t.cacheKey,createdAt:t.createdAt,lastAccessedAt:Date.now(),payloadSha256:await M(n)},i=(await Q()).transaction(J,`readwrite`);i.objectStore(J).put(r),await X(i),await En(20)}async function wn(e){let t=(await Q()).transaction(J,`readonly`),n=await Y(t.objectStore(J).get(e));if(await X(t),n===void 0)return;let r;try{r=An(n,e)}catch(t){await Mn(e,t);return}if(await en(r.artifact)!==r.payloadSha256){await Mn(e,Error(`Artifact payload SHA-256 does not match its stored digest.`));return}return await jn(e),r.artifact}async function Tn(e){let t=(await Q()).transaction(J,`readwrite`);t.objectStore(J).delete(e),await X(t)}async function En(e){if(!Number.isSafeInteger(e)||e<0)throw RangeError(`Artifact retention count must be a non-negative safe integer.`);let t=(await Q()).transaction(J,`readwrite`),n=t.objectStore(J);(await Y(n.getAll())).sort((e,t)=>t.createdAt-e.createdAt).slice(e).forEach(e=>n.delete(e.cacheKey)),await X(t)}async function Dn(){let e=(await Q()).transaction(J,`readwrite`);e.objectStore(J).clear(),await X(e)}async function On(){let e=(await Q()).transaction(J,`readonly`),t=await Y(e.objectStore(J).getAll());return await X(e),t.map(e=>{let t=An(e);return{key:t.cacheKey,byteLength:t.byteLength,lastAccessedAt:t.lastAccessedAt}})}function kn(){return{id:`artifacts`,retentionPriority:20,list:On,delete:Tn,clear:Dn}}function An(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Persisted artifact record must be an object.`);let n=e,r=Object.keys(n).sort();if(JSON.stringify(r)!==JSON.stringify([`artifact`,`byteLength`,`cacheKey`,`createdAt`,`lastAccessedAt`,`payloadSha256`]))throw Error(`Persisted artifact record has an invalid shape.`);if(t!==void 0&&n.cacheKey!==t)throw Error(`Persisted artifact record cache key does not match its IndexedDB key.`);if(typeof n.payloadSha256!=`string`||!Sn.test(n.payloadSha256))throw Error(`Persisted artifact payload digest must be a lowercase SHA-256 hexadecimal string.`);if(!Number.isSafeInteger(n.byteLength)||n.byteLength<0||!Number.isSafeInteger(n.lastAccessedAt)||n.lastAccessedAt<0)throw Error(`Persisted artifact storage metadata is invalid.`);let i=n.artifact;if(yn(i),i.cacheKey!==n.cacheKey||i.createdAt!==n.createdAt)throw Error(`Persisted artifact index fields do not match the artifact metadata.`);return n}async function jn(e){let t=(await Q()).transaction(J,`readwrite`),n=t.objectStore(J),r=await Y(n.get(e));if(r!==void 0){let t=An(r,e);n.put({...t,lastAccessedAt:Date.now()})}await X(t)}async function Mn(e,t){console.warn(`Ignoring invalid cached artifact '${e}'.`,t);try{await Tn(e)}catch(t){console.warn(`Unable to evict invalid cached artifact '${e}'.`,t)}}var Nn=class extends e{dependencyCache;constructor(e,t,n,r,i){super({compiler:e,runner:t,artifactStore:r?{load:wn,save:Cn,delete:Tn,clear:Dn}:void 0,dependencyManager:s(n,{networkAuthorizer:i})}),this.dependencyCache=n}dispose(){super.dispose(),this.dependencyCache.close()}};async function Pn(e){if(!e||typeof e!=`object`)throw TypeError(`createBrowserEngine requires explicit toolchain options.`);let t=d(e.toolchains),n,r,i,a;try{return i=new F,n=new It({toolchains:t}),r=new qt({toolchains:t,additionalCostBaselines:e.additionalCostBaselines,runtimeDriverPlugins:e.runtimeDriverPlugins}),a=new Nn(n,r,i,e.artifactCache!==!1,e.dependencyNetworkAuthorizer),await a.ready(),a}catch(e){throw a?a.dispose():(r?.dispose(),n?.dispose(),i?.close()),e}}async function Fn(e={}){if(typeof navigator>`u`||!(`serviceWorker`in navigator))return;let t=e.scriptUrl??`/toolchain-cache-sw.js`,n=e.scope??`/`;if(typeof n!=`string`||!n)throw TypeError(`WASM-OJ toolchain cache service-worker scope must be a non-empty string.`);let r=await navigator.serviceWorker.register(t,{scope:n,updateViaCache:`none`});return await In(await Ln(r),e.chunkManifestUrl),r}async function In(e,t){let n=null;if(t!==void 0){let e=new URL(t,location.href);if(e.origin!==location.origin||e.search||e.hash||e.pathname!==`/toolchains/wasm-oj-sites-chunks.json`)throw Error(`WASM-OJ toolchain chunk manifest must use the canonical same-origin deployment path.`);n=e.pathname}let r=new MessageChannel,i=new Promise((e,t)=>{let n=setTimeout(()=>t(Error(`WASM-OJ toolchain chunk configuration timed out.`)),5e3);r.port1.onmessage=i=>{clearTimeout(n),r.port1.close(),i.data&&typeof i.data==`object`&&`ok`in i.data&&i.data.ok===!0?e():t(Error(`WASM-OJ toolchain cache service worker rejected its chunk manifest configuration.`))}});e.postMessage({type:`configure-toolchain-chunks`,path:n},[r.port2]),await i}function Ln(e){let t=e.installing??e.waiting??e.active;return t?t.state===`activated`?Promise.resolve(t):new Promise((e,n)=>{let r=()=>{t.state===`activated`?(t.removeEventListener(`statechange`,r),e(t)):t.state===`redundant`&&(t.removeEventListener(`statechange`,r),n(Error(`WASM-OJ toolchain cache service worker became redundant before activation.`)))};t.addEventListener(`statechange`,r),r()}):Promise.reject(Error(`WASM-OJ toolchain cache registration has no service-worker instance.`))}var Rn=2147483648,zn=268435456,Bn=.7,Vn=`X-WASM-OJ-Byte-Length`,Hn=`X-WASM-OJ-Cached-At`,Un=class{storageManager;lockManager;participants;maxCacheBytes;minimumFreeBytes;quotaFraction;constructor(e={}){let t=e.storageManager??navigator.storage,n=e.lockManager??navigator.locks;if(!t||typeof t.estimate!=`function`||typeof t.persist!=`function`)throw Error(`WASM-OJ storage coordination requires the StorageManager API.`);if(!n||typeof n.request!=`function`)throw Error(`WASM-OJ storage coordination requires the Web Locks API for cross-tab safety.`);this.storageManager=t,this.lockManager=n,this.participants=Jn(e.participants??[]),this.maxCacheBytes=$(e.maxCacheBytes??Rn,`maximum cache bytes`),this.minimumFreeBytes=$(e.minimumFreeBytes??zn,`minimum free bytes`),this.quotaFraction=$n(e.quotaFraction??Bn)}async estimate(){let[e,t]=await Promise.all([this.storageManager.estimate(),this.snapshotParticipants()]);return Kn(e,t,this.maxCacheBytes,this.minimumFreeBytes,this.quotaFraction)}async maintain(e=0){return e=$(e,`incoming bytes`),this.exclusive(async()=>{let[t,n]=await Promise.all([this.storageManager.estimate(),this.snapshotParticipants()]),r=Kn(t,n,this.maxCacheBytes,this.minimumFreeBytes,this.quotaFraction),i=qn(r,e),a=n.flatMap(({participant:e,entries:t})=>t.map(t=>({participant:e,entry:t}))).sort((e,t)=>e.participant.retentionPriority-t.participant.retentionPriority||e.entry.lastAccessedAt-t.entry.lastAccessedAt||e.participant.id.localeCompare(t.participant.id)||e.entry.key.localeCompare(t.entry.key)),o=[],s=0;for(let e of a){if(s>=i)break;await e.participant.delete(e.entry.key),s+=e.entry.byteLength,o.push({participantId:e.participant.id,key:e.entry.key,byteLength:e.entry.byteLength})}return{before:r,after:await this.estimateUnlocked(),evicted:o}})}async admit(e){let t=await this.maintain(e);if(t.evicted.reduce((e,t)=>e+t.byteLength,0)<qn(t.before,e))throw new DOMException(`WASM-OJ browser storage cannot admit the requested payload within its configured budget.`,`QuotaExceededError`);return t}async clear(){await this.exclusive(async()=>{for(let e of this.participants)await e.clear()})}requestPersistence(){return this.storageManager.persist()}async estimateUnlocked(){let[e,t]=await Promise.all([this.storageManager.estimate(),this.snapshotParticipants()]);return Kn(e,t,this.maxCacheBytes,this.minimumFreeBytes,this.quotaFraction)}async snapshotParticipants(){return Promise.all(this.participants.map(async e=>{let t=[...await e.list()].map(Xn),n=t.map(e=>e.key);if(new Set(n).size!==n.length)throw Error(`Storage participant '${e.id}' returned duplicate keys.`);return{participant:e,entries:t}}))}async exclusive(e){return await this.lockManager.request(`${g.database}:coordinator`,{mode:`exclusive`},async()=>await e())}};function Wn(e={}){let t=e.cacheStorage??caches,n=new F;return new Un({...e,cacheStorage:t,participants:[Ot(),kn(),n.storageParticipant(),Gn(t,g.runtimeFilesCache,`runtime-files`,50),Gn(t,g.toolchainCache,`toolchains`,100)]})}function Gn(e,t,n,r){return Yn(n,r),{id:n,retentionPriority:r,async list(){let n=await e.open(t),r=await n.keys(),i=[];for(let e of r){let t=await n.match(e);if(!t)continue;let r=Qn(t.headers.get(Vn)),a=Qn(t.headers.get(Hn));if(r===void 0||a===void 0){await n.delete(e);continue}i.push({key:e.url,byteLength:r,lastAccessedAt:a})}return i},async delete(n){await(await e.open(t)).delete(n)},async clear(){await e.delete(t)}}}function Kn(e,t,n,r,i){let a=$(e.usage??0,`browser storage usage`),o=$(e.quota??0,`browser storage quota`),s=t.map(({participant:e,entries:t})=>({id:e.id,byteLength:t.reduce(Zn,0),entryCount:t.length,retentionPriority:e.retentionPriority})),c=o>0?Math.floor(o*i):n;return{usage:a,quota:o,logicalCacheBytes:s.reduce((e,t)=>e+t.byteLength,0),logicalCacheBudget:Math.min(n,c),minimumFreeBytes:r,participants:s}}function qn(e,t){let n=Math.max(0,e.logicalCacheBytes+t-e.logicalCacheBudget),r=e.quota>0?Math.max(0,e.usage+t+e.minimumFreeBytes-e.quota):0;return Math.max(n,r)}function Jn(e){let t=e.map(e=>{if(!e||typeof e.list!=`function`||typeof e.delete!=`function`||typeof e.clear!=`function`)throw Error(`Storage participants must implement list(), delete(), and clear().`);return Yn(e.id,e.retentionPriority),e}),n=t.map(e=>e.id);if(new Set(n).size!==n.length)throw Error(`Storage participant IDs must be unique.`);return t.sort((e,t)=>e.id.localeCompare(t.id))}function Yn(e,t){if(!e||e!==e.trim()||e.includes(`\0`))throw Error(`Storage participant IDs must be non-empty and canonical.`);$(t,`storage participant '${e}' retention priority`)}function Xn(e){if(!e||typeof e.key!=`string`||!e.key||e.key!==e.key.trim()||e.key.includes(`\0`))throw Error(`Storage entry keys must be non-empty and canonical.`);return{key:e.key,byteLength:$(e.byteLength,`storage entry '${e.key}' byte length`),lastAccessedAt:$(e.lastAccessedAt,`storage entry '${e.key}' access time`)}}function Zn(e,t){let n=e+t.byteLength;if(!Number.isSafeInteger(n))throw Error(`Coordinated storage size exceeds the safe integer range.`);return n}function Qn(e){if(e===null||!/^\d+$/.test(e))return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function $(e,t){if(!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative safe integer.`);return e}function $n(e){if(!Number.isFinite(e)||e<=0||e>1)throw Error(`Storage quota fraction must be in (0, 1].`);return e}export{W as BROWSER_RUNTIME_PLUGIN_LIMITS,It as BrowserCompiler,qt as BrowserRunner,F as IndexedDbDependencyCache,Un as StorageCoordinator,Gn as cacheStorageParticipant,Pn as createBrowserEngine,Wn as createDefaultBrowserStorageCoordinator,Ct as prefetchBrowserToolchain,Fn as registerToolchainCache,Bt as validateBrowserRuntimeDriverPlugins};
|
|
51
|
+
`,`Object.defineProperty(globalThis, "__wasmOjModuleWorkerBaseUrl", { value: ${JSON.stringify(n.href)} });\n`,...t?[yt]:[],`try { await import(${JSON.stringify(r)}); } finally { globalThis.removeEventListener("message", queueMessage); }\n`,`for (const data of pendingMessages) globalThis.dispatchEvent(new MessageEvent("message", { data }));
|
|
52
|
+
`],{type:`text/javascript`}),a=URL.createObjectURL(i),o=!0;return{url:a,revoke(){o&&(o=!1,URL.revokeObjectURL(a))}}}var vt=`__wasmOjWorkerLiveness`,yt=`try { const lock = "wasm-oj-worker-" + crypto.randomUUID(); navigator.locks.request(lock, () => { postMessage({ ${vt}: lock }); return new Promise(() => {}); }).catch(() => {}); } catch {}\n`,bt=new WeakMap;function xt(e,t){let n=bt.get(e);if(n){if(n.lost){let e=n.lost;queueMicrotask(()=>t(e));return}n.listeners.add(t)}}function St(e,t){let n={listeners:new Set};bt.set(e,n);let r=new AbortController,i=e.terminate.bind(e);e.terminate=()=>{r.abort(),n.listeners.clear(),i()},e.addEventListener(`message`,e=>{let i=Ct(e.data);if(i===void 0)return;e.stopImmediatePropagation();let a=globalThis.navigator?.locks;a&&a.request(i,{signal:r.signal},()=>{if(r.signal.aborted)return;let e=Error(`The ${t??`module`} Worker stopped without reporting an error.`);n.lost=e;let i=[...n.listeners];n.listeners.clear();for(let t of i)t(e)}).catch(()=>void 0)})}function Ct(e){if(typeof e!=`object`||!e)return;let t=e[vt];return typeof t==`string`?t:void 0}function wt(){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 Tt(e){let t=wt(),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}async function Et(e,t){let n=d(e),r=t.optimization??`release`;p(n,t.language,t.target??`wasip1`,r);let i=globalThis.location?.href;if(!i)throw Error(`Toolchain prefetch requires a browser location.`);let s=a({language:t.language,optimization:r,libcxxPrecompiledHeader:t.libcxxPrecompiledHeader}).map(e=>({path:e,bytes:ee(n,e).asset.bytes,url:o(n,e,i)})),c=s.reduce((e,t)=>e+t.bytes,0),l=0,u=()=>t.onProgress?.({loadedBytes:l,totalBytes:c});u(),await Promise.all(s.map(async e=>{let n=await fetch(e.url,{signal:t.signal});if(!n.ok||!n.body)throw Error(`Unable to prefetch pinned toolchain asset '${e.path}' (${n.status}).`);let r=n.body.getReader(),i=0;for(;;){let{done:e,value:t}=await r.read();if(e)break;i+=t.byteLength,l+=t.byteLength,u()}if(i!==e.bytes)throw Error(`Prefetched toolchain asset '${e.path}' has ${i} bytes; expected ${e.bytes}.`)}))}var Dt=2,Ot=`manifests`,kt=`metadata`,At=`blobs`,U=`clang`;new TextEncoder;function jt(){return new Promise((e,t)=>{let n=indexedDB.deleteDatabase(g.incrementalBuildCache);n.addEventListener(`success`,()=>e(),{once:!0}),n.addEventListener(`error`,()=>{t(n.error??Error(`Unable to delete the incremental build cache.`))},{once:!0}),n.addEventListener(`blocked`,()=>{t(Error(`Incremental build cache deletion is blocked by another open tab.`))},{once:!0})})}async function Mt(){let e=await Pt();try{let t=e.transaction(kt,`readonly`),n=await Ft(t.objectStore(kt).get(U));if(await It(t),n===void 0)return[];let r=Lt(n);return[{key:U,byteLength:r.byteLength,lastAccessedAt:r.lastAccessedAt}]}finally{e.close()}}function Nt(){return{id:`incremental-build-graph`,retentionPriority:10,list:Mt,delete:async e=>{if(e!==U)throw Error(`Unknown build graph storage key '${e}'.`);await jt()},clear:jt}}function Pt(){return new Promise((e,t)=>{let n=indexedDB.open(g.incrementalBuildCache,Dt);n.addEventListener(`upgradeneeded`,()=>{let e=n.result;for(let t of[...e.objectStoreNames])e.deleteObjectStore(t);e.createObjectStore(Ot,{keyPath:`id`}),e.createObjectStore(kt,{keyPath:`id`}),e.createObjectStore(At,{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 Ft(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 It(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})})}function Lt(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!==U||!W(t.generation)||!W(t.blobBytes)||!W(t.manifestBytes)||!W(t.byteLength)||!W(t.lastAccessedAt)||Rt(t.blobBytes,t.manifestBytes)!==t.byteLength)throw Error(`Persisted Clang build graph metadata has invalid storage accounting.`);return t}function Rt(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 W(e){return Number.isSafeInteger(e)&&e>=0}var zt=12e4,Bt=1e4,Vt=class{worker;pending=new Map;progressListeners=new Set;traceListeners=new Set;readyPromise;toolchains;activeOperation;disposed=!1;generation=0;workerDormant=!1;workerInitialized=!1;outputReadyClangStages=0;outputReadyRustStages=0;retainedGoStage=!1;acquiredToolchains=new Set;acquisition;constructor(e){if(!e||typeof e!=`object`)throw TypeError(`BrowserCompiler requires explicit toolchain options.`);this.toolchains=d(e.toolchains),this.worker=this.createWorker(),this.readyPromise=this.initializeWorker()}cacheIdentity(e){this.assertActive();let{descriptor:t}=p(this.toolchains,e.config.language,e.config.target,e.config.optimization).source;return JSON.stringify({...f(e.config.language),source:{id:t.id,version:t.version,assets:t.assets.map(({path:e,bytes:t,sha256:n})=>({path:e,bytes:t,sha256:n}))}})}initializeWorker(){let e=this.request({type:`initialize`,toolchains:this.toolchains},zt);return e.catch(()=>void 0),e}onProgress(e){return this.assertActive(),this.progressListeners.add(e),()=>this.progressListeners.delete(e)}onTrace(e){return this.assertActive(),this.traceListeners.add(e),()=>this.traceListeners.delete(e)}ready(){return this.assertActive(),this.readyPromise}async build(e,t){if(this.assertActive(),i(e),r(t),p(this.toolchains,e.config.language,e.config.target,e.config.optimization),this.activeOperation)throw Error(`BrowserCompiler accepts one active operation at a time.`);let n=et(e),a=nt(e),o=mt(e),s=o>0,c=e.config.language===`go`,l={kind:`build`};this.activeOperation=l;let u=this.outputReadyClangStages>0&&(!n||this.outputReadyClangStages+a>8),d=this.outputReadyRustStages>0&&(!s||this.outputReadyRustStages+o>4),ee=this.retainedGoStage&&!c,f,m=!1;try{(u||d||ee)&&(await this.quiesceAndReplaceWorker(Error(`Compiler Worker recycled at the output-ready stage boundary.`)),this.activeOperation=l);let r=this.generation;if(await this.readyPromise,this.assertActive(),r!==this.generation||(await this.acquireToolchain(e),this.assertActive(),r!==this.generation))throw Error(`Browser compilation was superseded by a Worker replacement.`);f=this.worker;let i=await this.request({type:`build`,project:e,cacheKey:t},ft(e.config.language));return n?(this.outputReadyClangStages+=rt(i,a),m=!0):s?(this.outputReadyRustStages+=o,m=!0):c&&(this.retainedGoStage=!0,m=!0),i}finally{this.activeOperation===l&&(this.activeOperation=void 0),!this.disposed&&f&&this.worker===f&&!m&&this.replaceWorker(Error(`Compiler Worker recycled after isolated build.`))}}async clearToolchainCache(){if(this.assertActive(),this.activeOperation)throw Error(`BrowserCompiler accepts one active operation at a time.`);let e={kind:`cache-clear`};this.activeOperation=e,this.stopWorker(Error(`Compiler Worker recycled before clearing caches.`));let n=this.generation;this.acquiredToolchains.clear();try{let e=await caches.keys();if(await Promise.all([...e.filter(e=>e===t.toolchainCache).map(e=>caches.delete(e)),jt()]),this.assertActive(),n!==this.generation||(this.installWorker(),await this.readyPromise,this.assertActive(),n!==this.generation))throw Error(`Compiler cache clearing was superseded by a lifecycle change.`)}finally{!this.disposed&&n===this.generation&&this.workerDormant&&this.installWorker(),this.activeOperation===e&&(this.activeOperation=void 0)}}cancel(){this.disposed||this.activeOperation?.kind!==`cache-clear`&&this.replaceWorker(Error(`Compilation cancelled.`))}restart(){if(this.assertActive(),this.activeOperation?.kind===`cache-clear`)throw Error(`Cannot restart BrowserCompiler while clearing its cache.`);this.replaceWorker(Error(`Compiler worker restarted.`))}dispose(){if(this.disposed)return;this.disposed=!0,this.generation+=1,this.workerDormant=!0,this.activeOperation=void 0,this.worker.terminate();let e=Error(`Compiler client disposed.`);this.acquisition?.abort(e),this.acquisition=void 0;for(let t of this.pending.values())t.timer&&clearTimeout(t.timer),t.reject(e);this.pending.clear(),this.progressListeners.clear(),this.traceListeners.clear()}createWorker(){let e=gt(ht,{name:`wasm-oj-compiler`});e.addEventListener(`message`,t=>{!this.disposed&&!this.workerDormant&&this.worker===e&&this.handleMessage(t.data)});let t=t=>{if(this.disposed||this.workerDormant||this.worker!==e)return;let n=this.workerInitialized;this.stopWorker(t),n&&this.installWorker()};return e.addEventListener(`error`,e=>t(Error(e.message||`The compiler worker crashed.`))),xt(e,t),e}replaceWorker(e){this.stopWorker(e),this.installWorker()}async quiesceAndReplaceWorker(e){let t=this.generation;try{await this.request({type:`quiesce`},Bt)}catch(e){let n=e instanceof Error?e:Error(String(e));throw!this.disposed&&t===this.generation&&this.replaceWorker(n),Error(`Compiler could not establish a quiescent Worker boundary.`,{cause:n})}if(this.assertActive(),t!==this.generation)throw Error(`Compiler quiescence was superseded by a lifecycle change.`);this.stopWorker(e),this.installWorker()}async acquireToolchain(e){let{language:t,target:n,optimization:r}=e.config,i=t===`cpp`&&e.files.some(e=>e.path.slice(e.path.lastIndexOf(`/`)+1)===`wasm-oj.pch.hpp`&&l(e.content)),a=JSON.stringify([t,n,r,i]);if(this.acquiredToolchains.has(a))return;let o=new AbortController;this.acquisition=o;try{await Et(this.toolchains,{language:t,target:n,optimization:r,libcxxPrecompiledHeader:i,signal:o.signal,onProgress:({loadedBytes:e,totalBytes:t})=>{let n={phase:`loading-toolchain`,label:`Downloading pinned toolchain`,progress:t>0?e/t:1};for(let e of this.progressListeners)e(n)}})}finally{this.acquisition===o&&(this.acquisition=void 0)}this.acquiredToolchains.add(a)}stopWorker(e){this.acquisition?.abort(e),this.acquisition=void 0,this.generation+=1,this.workerDormant=!0,this.activeOperation?.kind===`build`&&(this.activeOperation=void 0),this.worker.terminate();for(let t of this.pending.values())t.timer&&clearTimeout(t.timer),t.reject(e);this.pending.clear(),this.outputReadyClangStages=0,this.outputReadyRustStages=0,this.retainedGoStage=!1,this.workerInitialized=!1}installWorker(){this.worker=this.createWorker(),this.workerDormant=!1,this.readyPromise=this.initializeWorker()}assertActive(){if(this.disposed)throw Error(`BrowserCompiler is disposed.`)}request(e,t){this.assertActive();let n=crypto.randomUUID();return new Promise((r,i)=>{let a={resolve:r,reject:i};a.timer=setTimeout(()=>{if(!this.pending.delete(n))return;let e=Error(`Compiler request exceeded the ${t} ms browser boundary.`);i(e),this.disposed||this.replaceWorker(e)},t),this.pending.set(n,a);try{this.worker.postMessage({...e,requestId:n})}catch(e){this.pending.delete(n),a.timer&&clearTimeout(a.timer),i(e instanceof Error?e:Error(String(e)))}})}handleMessage(e){if(e.type===`progress`){for(let t of this.progressListeners)t(e.progress);return}if(e.type===`compile-trace`){for(let t of this.traceListeners)t(e.requestId,e.event);return}let t=this.pending.get(e.requestId);if(t)switch(this.pending.delete(e.requestId),t.timer&&clearTimeout(t.timer),e.type){case`ready`:this.workerInitialized=!0,t.resolve(void 0);break;case`quiesced`:t.resolve(void 0);break;case`build-result`:t.resolve(e.result);break;case`error`:t.reject(Object.assign(Error(e.message),{code:e.code,stack:e.stack}))}}},Ht=``+new URL(`assets/runner.worker-BEbZIYKj.js`,import.meta.url).href,Ut=Object.freeze({count:16,sourceBytes:1048576}),Wt=`createRuntimeDriver`,Gt=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function Kt(e,t){if(!Array.isArray(e))throw TypeError(`Browser runtime-driver plug-ins must be an array.`);if(e.length>Ut.count)throw RangeError(`At most ${Ut.count} browser runtime-driver plug-ins are allowed.`);if(e.length===0)return[];let n=Yt(t,`Browser runtime-driver plug-in base URL`),r=new Set;return e.map((e,t)=>{if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(`Browser runtime-driver plug-in ${t} must be an object.`);let i=qt(e.id,`Browser runtime-driver plug-in ${t} ID`);if(r.has(i))throw Error(`Browser runtime-driver plug-in '${i}' is declared more than once.`);if(r.add(i),typeof e.moduleUrl!=`string`||!e.moduleUrl||e.moduleUrl!==e.moduleUrl.trim())throw TypeError(`Browser runtime-driver plug-in '${i}' moduleUrl must be a non-empty trimmed string.`);let a=Yt(new URL(e.moduleUrl,n).href,`Browser runtime-driver plug-in '${i}' module URL`);if(a.origin!==n.origin)throw Error(`Browser runtime-driver plug-in '${i}' must be loaded from ${n.origin}.`);if(a.username||a.password||a.hash)throw Error(`Browser runtime-driver plug-in '${i}' URL cannot contain credentials or a fragment.`);if(typeof e.sha256!=`string`||!/^[0-9a-f]{64}$/.test(e.sha256))throw Error(`Browser runtime-driver plug-in '${i}' SHA-256 must be lowercase hexadecimal.`);let o=Jt(e.exportName??Wt,i);return Object.freeze({id:i,moduleUrl:a.href,sha256:e.sha256,...o===Wt?{}:{exportName:o}})})}function qt(e,t){if(typeof e!=`string`||!e||e!==e.trim()||e.length>128)throw Error(`${t} must be non-empty, trimmed, and at most 128 characters.`);return e}function Jt(e,t){if(typeof e!=`string`||!Gt.test(e)||e.length>128)throw Error(`Browser runtime-driver plug-in '${t}' exportName must be an ASCII JavaScript identifier.`);return e}function Yt(e,t){let n;try{n=new URL(e)}catch{throw Error(`${t} must be a valid absolute URL.`)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw Error(`${t} must use HTTP or HTTPS.`);return n}var Xt=12e4,Zt=3e5;function Qt(e){return e.language===`python`?Zt:Xt}var G=12e4,$t=class{worker;pending=new Map;progressListeners=new Set;streamListeners=new Set;readyPromise;toolchains;additionalCostBaselines;runtimeDriverPlugins;costBaselines;disposed=!1;activeOperation;inFlightOperations=new Set;generation=0;workerInitialized=!1;constructor(e){if(!e||typeof e!=`object`)throw TypeError(`BrowserRunner requires explicit toolchain options.`);this.toolchains=d(e.toolchains),this.additionalCostBaselines=Object.freeze({...e.additionalCostBaselines}),this.runtimeDriverPlugins=e.runtimeDriverPlugins?.length?Kt(e.runtimeDriverPlugins,location.href):[],this.costBaselines=c(this.additionalCostBaselines),this.worker=this.createWorker(),this.readyPromise=this.initializeWorker()}initializeWorker(){let e=this.request({type:`initialize`,toolchains:this.toolchains,additionalCostBaselines:this.additionalCostBaselines,runtimeDriverPlugins:this.runtimeDriverPlugins},G);return e.catch(()=>void 0),e}onProgress(e){return this.assertActive(),this.progressListeners.add(e),()=>this.progressListeners.delete(e)}onStream(e){return this.assertActive(),this.streamListeners.add(e),()=>this.streamListeners.delete(e)}ready(){return this.assertActive(),this.readyPromise}run(e,t){return this.track(this.runOperation(e,t))}interact(e,t,n){return this.track(this.interactOperation(e,t,n))}async interactOperation(e,t,r){if(this.assertActive(),this.activeOperation)throw Error(`BrowserRunner accepts one active operation at a time.`);let i={kind:`interact`};this.activeOperation=i;let a=this.generation;try{if(await this.readyPromise,this.assertActive(),a!==this.generation)throw Error(`Browser interaction was superseded by a Worker replacement.`);let i=performance.now(),o=u(e,r.contestant.resources.instructionBudget,this.costBaselines),s=u(t,r.interactor.resources.instructionBudget,this.costBaselines),c=Math.min(r.contestant.resources.wallTimeLimitMs,r.interactor.resources.wallTimeLimitMs);return await this.request({type:`interact`,contestant:e,interactor:t,config:r},c,()=>({contestant:{code:137,stderr:`Interactive wall-time limit ${c} ms exceeded.`,termination:`wall-time-limit`,metrics:m(o,n)},interactor:{code:137,stderr:`Interactive wall-time limit ${c} ms exceeded.`,termination:`wall-time-limit`,metrics:m(s,n)},contestantToInteractor:``,interactorToContestant:``,durationMs:performance.now()-i,determinism:{...r.determinism}}),Math.max(Qt(e),Qt(t)))}finally{this.activeOperation===i&&(this.activeOperation=void 0)}}async runOperation(e,t){if(this.assertActive(),this.activeOperation)throw Error(`BrowserRunner accepts one active operation at a time.`);let r={kind:`run`};this.activeOperation=r;let i=this.generation;try{if(await this.readyPromise,this.assertActive(),i!==this.generation)throw Error(`Browser execution was superseded by a Worker replacement.`);let r=performance.now(),a=u(e,t.resources.instructionBudget,this.costBaselines);return await this.request({type:`run`,artifact:e,config:t},t.resources.wallTimeLimitMs,()=>({code:137,stdout:``,stderr:`Wall-time limit ${t.resources.wallTimeLimitMs} ms exceeded.`,files:{},executionDurationMs:t.resources.wallTimeLimitMs,durationMs:performance.now()-r,determinism:{...t.determinism},resources:{...t.resources},termination:`wall-time-limit`,metrics:m(a,n)}),Qt(e))}finally{this.activeOperation===r&&(this.activeOperation=void 0)}}clearRuntimeCache(){return this.track(this.clearRuntimeCacheOperation())}async clearRuntimeCacheOperation(){if(this.assertActive(),this.activeOperation)throw Error(`BrowserRunner accepts one active operation at a time.`);let e={kind:`cache-clear`};this.activeOperation=e;let t=this.generation;try{if(await this.readyPromise,this.assertActive(),t!==this.generation)throw Error(`Runtime cache clearing was superseded by a Worker replacement.`);await this.request({type:`clear-runtime-cache`},G)}finally{this.activeOperation===e&&(this.activeOperation=void 0)}}cancel(){this.disposed||this.activeOperation?.kind!==`cache-clear`&&this.replaceWorker(Error(`Execution cancelled.`))}async cancelAndWait(){for(this.cancel();this.inFlightOperations.size>0;)await Promise.allSettled([...this.inFlightOperations])}restart(){if(this.assertActive(),this.activeOperation?.kind===`cache-clear`)throw Error(`Cannot restart BrowserRunner while clearing its cache.`);this.replaceWorker(Error(`Runner worker restarted.`))}dispose(){this.disposed||(this.disposed=!0,this.generation+=1,this.activeOperation=void 0,this.worker.terminate(),this.rejectAll(Error(`Runner client disposed.`)),this.progressListeners.clear(),this.streamListeners.clear())}createWorker(){let e=gt(Ht,{name:`wasm-oj-runner`});e.addEventListener(`message`,t=>{!this.disposed&&this.worker===e&&this.handleMessage(t.data)});let t=t=>{if(this.disposed||this.worker!==e)return;let n=this.workerInitialized;this.stopWorker(t),n&&this.installWorker()};return e.addEventListener(`error`,e=>t(Error(e.message||`The runner worker crashed.`))),xt(e,t),e}rejectAll(e){for(let t of this.pending.values())K(t),t.reject(e);this.pending.clear()}replaceWorker(e){this.stopWorker(e),this.installWorker()}stopWorker(e){this.generation+=1,(this.activeOperation?.kind===`run`||this.activeOperation?.kind===`interact`)&&(this.activeOperation=void 0),this.worker.terminate(),this.rejectAll(e),this.workerInitialized=!1}installWorker(){this.worker=this.createWorker(),this.readyPromise=this.initializeWorker()}assertActive(){if(this.disposed)throw Error(`BrowserRunner is disposed.`)}track(e){return this.inFlightOperations.add(e),e.then(()=>this.inFlightOperations.delete(e),()=>this.inFlightOperations.delete(e)),e}request(e,t,n,r=G){this.assertActive();let i=crypto.randomUUID();return new Promise((a,o)=>{let s={resolve:a,reject:o,timeoutMs:t,timeoutResult:n};this.pending.set(i,s),n?s.boundaryTimer=setTimeout(()=>{if(!this.pending.delete(i))return;let e=Error(`Runner runtime preparation exceeded the ${r} ms browser boundary.`);o(e),this.disposed||this.replaceWorker(e)},r):t!==void 0&&(s.boundaryTimer=setTimeout(()=>{if(!this.pending.delete(i))return;let e=Error(`Runner request exceeded the ${t} ms browser boundary.`);o(e),this.disposed||this.replaceWorker(e)},t));try{this.worker.postMessage({...e,requestId:i})}catch(e){this.pending.delete(i),K(s),o(e instanceof Error?e:Error(String(e)))}})}handleMessage(e){if(e.type===`progress`){for(let t of this.progressListeners)t(e.progress);e.progress.phase===`running`&&this.startWallTimer(e.requestId),e.progress.phase===`packaging`&&this.finishWallTimer(e.requestId);return}if(e.type===`stream`){for(let t of this.streamListeners)t(e.stream,e.chunk);return}let t=this.pending.get(e.requestId);if(t)switch(this.pending.delete(e.requestId),K(t),e.type){case`ready`:this.workerInitialized=!0,t.resolve(void 0);break;case`run-result`:t.resolve(e.result);break;case`interactive-result`:t.resolve(e.result);break;case`runtime-cache-cleared`:t.resolve(void 0);break;case`error`:t.reject(Object.assign(Error(e.message),{code:e.code,stack:e.stack}))}}finishWallTimer(e){let t=this.pending.get(e);!t||t.executionTimer===void 0||t.executionFinished||(K(t),t.executionFinished=!0,t.boundaryTimer=setTimeout(()=>{if(!this.pending.delete(e))return;let n=Error(`Runner result collection exceeded the ${G} ms browser boundary.`);t.reject(n),this.disposed||this.replaceWorker(n)},G))}startWallTimer(e){let t=this.pending.get(e);!t||t.executionTimer||t.executionFinished||t.timeoutMs===void 0||!t.timeoutResult||(t.boundaryTimer&&=(clearTimeout(t.boundaryTimer),void 0),t.executionTimer=setTimeout(()=>{let t=this.pending.get(e);if(!t||!t.timeoutResult)return;this.pending.delete(e);let n=t.timeoutResult();this.replaceWorker(Error(`Runner worker replaced after wall-time termination.`)),t.resolve(n)},t.timeoutMs))}};function K(e){e.boundaryTimer&&clearTimeout(e.boundaryTimer),e.executionTimer&&clearTimeout(e.executionTimer),e.boundaryTimer=void 0,e.executionTimer=void 0}var en=new TextEncoder,tn=en.encode(`wasm-oj/runtime-bundle-payload\0`),nn=1,rn=2,an=8;function on(e){if(e.kind===`wasm`)return e.bytes;if(e.kind!==`runtime-bundle`)throw Error(`Unsupported artifact payload kind '${String(e.kind)}'.`);let t=I(e.files),n=[tn,cn(t.length,`Runtime bundle file count`)];for(let[e,r]of t){let t=en.encode(e),i,a;if(typeof r==`string`)i=nn,a=en.encode(r);else if(r instanceof Uint8Array)i=rn,a=r;else throw Error(`Runtime bundle file '${e}' must contain text or Uint8Array bytes.`);n.push(cn(t.byteLength,`Runtime bundle path '${e}' byte length`),t,Uint8Array.of(i),cn(a.byteLength,`Runtime bundle file '${e}' byte length`),a)}return ln(n)}function sn(e){return L(on(e))}function cn(e,t){if(!Number.isSafeInteger(e)||e<0)throw RangeError(`${t} must be a non-negative safe integer.`);let n=new Uint8Array(an);return new DataView(n.buffer).setBigUint64(0,BigInt(e),!1),n}function ln(e){let t=e.reduce((e,t)=>{let n=e+t.byteLength;if(!Number.isSafeInteger(n))throw RangeError(`Artifact payload framing exceeds the safe integer range.`);return n},0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.byteLength;return n}var un=`weighted`;Object.freeze({instructionBudget:1e10,logicalTimeLimitMs:6e4,memoryLimitBytes:268435456,outputLimitBytes:4194304,filesystemWriteLimitBytes:67108864,filesystemEntryLimit:4096,wallTimeLimitMs:6e4}),new TextEncoder,Object.freeze({runtimeCoreWasmSha256:`077aa936a3382a242eee7222fc17369769cb5ad265303d730ffc45ee192367e9`,runtimeSourceRootSha256:`c65b3bbcad41359f86b8f1d1315af8f079b44f0e9084ace0d6d50c0ec418415b`,wasmerNativeVersion:`7.2.1`,wasmerSdkVersion:`0.10.0`,wasmerSdkWasmSha256:`49a6646209f5ab5e7c737eac33407d87d9a9959ac83e5ecaaab9261b2323589e`,wasmerWasixVersion:`0.702.1`});var dn=`47684bee57aafd163b18a787fa16eed33cab3ec3c0005c3c46bb4f1803ffc835`;function fn(e,t,n){return _(e),[`wasm-oj-cost`,`contract-${h}`,encodeURIComponent(e),t,n]}function pn(e,t,n,r){let i=v(e)?He(e):r;if(!i||!/^[A-Za-z0-9._-]+$/.test(i))throw Error(v(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-${dn}`,un].join(`:`)}function mn(e,t,n,r){let i=`${fn(t,n,r).join(`:`)}:content-`,a=`:runtime-${dn}:${un}`;if(!e.startsWith(i)||!e.endsWith(a))return!1;let o=e.slice(i.length,-a.length);return!!o&&/^[A-Za-z0-9._-]+$/.test(o)}var hn=new TextEncoder,gn=Object.freeze({python:`python`,javascript:`qjs`,typescript:`qjs`});function q(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 _n(e){return JSON.stringify({schema:te.runtimeBundle,version:h,name:e.name,target:e.target,language:e.language,runtime:{package:e.runtimePackage,command:e.command},execution:{deterministic:!0,contractVersion:h},entry:e.entry,files:[...e.files]},null,2)}function vn(e,t,n,r){return q(e.name,`Project name`),q(t,`Runtime package`),q(n,`Runtime command`,128),_(e.config.language),F(r,`Runtime bundle entry`),_n({name:e.name,target:e.config.target,language:e.config.language,runtimePackage:t,command:n,entry:r,files:qe(e.files).map(e=>e.path)})}function yn(e){let t;try{t=JSON.parse(e.manifest)}catch(e){throw Error(`Runtime bundle manifest is not valid JSON.`,{cause:e})}if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`Runtime bundle manifest must be a JSON object.`);let n=t,r=n.runtime,i=n.execution;if(!r||typeof r!=`object`||Array.isArray(r))throw Error(`Runtime bundle manifest runtime must be an object.`);if(!i||typeof i!=`object`||Array.isArray(i))throw Error(`Runtime bundle manifest execution must be an object.`);let a=r,o=i;if(q(n.name,`Runtime bundle manifest name`),q(a.package,`Runtime bundle manifest package`),q(a.command,`Runtime bundle manifest command`,128),n.target!==`wasip1`&&n.target!==`wasix`)throw Error(`Runtime bundle manifest has an invalid target.`);if(typeof n.language!=`string`)throw Error(`Runtime bundle manifest has an invalid language.`);if(_(n.language),typeof n.entry!=`string`)throw Error(`Runtime bundle manifest has an invalid entry.`);if(F(n.entry,`Runtime bundle manifest entry`),!Array.isArray(n.files))throw Error(`Runtime bundle manifest files must be an array.`);let s=n.files.map((e,t)=>(F(e,`Runtime bundle manifest file ${t}`),e)),c=[...s].sort((e,t)=>e<t?-1:+(e>t));if(new Set(s).size!==s.length||JSON.stringify(s)!==JSON.stringify(c))throw Error(`Runtime bundle manifest files must be unique and canonically sorted.`);if(n.schema!==te.runtimeBundle||n.version!==h||o.deterministic!==!0||o.contractVersion!==h)throw Error(`Runtime bundle manifest does not match the current WASM-OJ contract.`);let l={name:n.name,target:n.target,language:n.language,runtimePackage:a.package,command:a.command,entry:n.entry,files:s};if(e.manifest!==_n(l))throw Error(`Runtime bundle manifest must use the canonical WASM-OJ representation without extra fields.`);return l}function bn(e){switch(e.config.language){case`c`:case`cpp`:case`go`:case`rust`:return`${e.name}.wasm`;case`python`:return`${e.name}.python-${e.config.target}.json`;case`javascript`:case`typescript`:return`${e.name}.${e.config.language}-${e.config.target}.json`;default:throw Error(`WASM-OJ has no built-in artifact name for '${e.config.language}'.`)}}function xn(e){if(e.config.language===`python`){if(!e.config.entry.endsWith(`.py`))throw Error(`Python entry files must end in '.py'.`);return e.config.entry}if(e.config.language===`typescript`){if(!e.config.entry.endsWith(`.ts`))throw Error(`TypeScript entry files must end in '.ts'.`);return`${e.config.entry.slice(0,-3)}.js`}return e.config.entry}function Sn(e){if(e.wasmOjContract!==h)throw Error(`Artifact WASM-OJ contract '${String(e.wasmOjContract)}' is unsupported; expected '${h}'.`);if(q(e.id,`Artifact id`),q(e.projectId,`Artifact projectId`),q(e.cacheKey,`Artifact cacheKey`),q(e.name,`Artifact name`),typeof e.language!=`string`)throw Error(`Artifact language must be a string.`);if(_(e.language),e.target!==`wasip1`&&e.target!==`wasix`)throw Error(`Artifact target is invalid.`);if(e.optimization!==`debug`&&e.optimization!==`release`)throw Error(`Artifact optimization is invalid.`);if(typeof e.createdAt!=`number`||!Number.isFinite(e.createdAt)||e.createdAt<0)throw Error(`Artifact createdAt must be a non-negative finite number.`);if(typeof e.durationMs!=`number`||!Number.isFinite(e.durationMs)||e.durationMs<0)throw Error(`Artifact durationMs must be a non-negative finite number.`);if(!Number.isSafeInteger(e.size)||e.size<0)throw Error(`Artifact size must be a non-negative safe integer.`);if(!Array.isArray(e.toolchains))throw Error(`Artifact toolchains must be an array.`);let t=e.toolchains;if(t.length===0||t.some(e=>typeof e!=`string`||!e||e!==e.trim())||new Set(t).size!==t.length)throw Error(`Artifact toolchains must be non-empty, unique, trimmed identities.`);if(q(e.costProfile,`Artifact costProfile`),e.dependencyLockSha256!==void 0&&(typeof e.dependencyLockSha256!=`string`||!/^[0-9a-f]{64}$/.test(e.dependencyLockSha256)))throw Error(`Artifact dependencyLockSha256 must be lowercase SHA-256 hexadecimal.`)}function Cn(e){if(!v(e.language))return;let t=Ue[e.language];if(!t.targets.includes(e.target))throw Error(`Artifact target '${e.target}' is unsupported for built-in language '${e.language}'.`);if(e.kind!==t.artifact)throw Error(`Built-in '${e.language}' artifacts must use kind '${t.artifact}', not '${e.kind}'.`);let n=We(e.language);if(JSON.stringify(e.toolchains)!==JSON.stringify(n))throw Error(`Artifact toolchains do not match the canonical '${e.language}' toolchain identities.`);let r=pn(e.language,e.target,e.optimization);if(e.costProfile!==r)throw Error(`Artifact cost profile '${e.costProfile}' does not match ${e.language}/${e.target}/${e.optimization}.`);if(e.kind===`runtime-bundle`){let n=gn[e.language];if(e.runtimePackage!==t.runtimePackage||e.command!==n)throw Error(`Built-in '${e.language}' artifact runtime package or command is not canonical.`)}}function wn(e){q(e.runtimePackage,`Runtime bundle package`),q(e.command,`Runtime bundle command`,128),F(e.entry,`Runtime bundle entry`),q(e.manifest,`Runtime bundle manifest`,1048576);let t=I(e.files);for(let[e,n]of t)if(typeof n!=`string`&&!(n instanceof Uint8Array))throw Error(`Runtime bundle file '${e}' must contain text or Uint8Array bytes.`);if(!Object.hasOwn(e.files,e.entry))throw Error(`Runtime bundle entry '${e.entry}' is not present in its files.`);if(e.files[`wasm-oj.manifest.json`]!==e.manifest)throw Error(`Runtime bundle must contain its exact manifest at 'wasm-oj.manifest.json'.`);let n=yn(e);if(n.target!==e.target||n.language!==e.language||n.runtimePackage!==e.runtimePackage||n.command!==e.command||n.entry!==e.entry)throw Error(`Runtime bundle manifest metadata does not match its artifact metadata.`);return n}function Tn(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Build artifact must be an object.`);let n=e;if(Sn(n),n.kind!==`wasm`&&n.kind!==`runtime-bundle`)throw Error(`Artifact kind must be 'wasm' or 'runtime-bundle'.`);let r=e,i,a;if(r.kind===`wasm`){if(!(r.bytes instanceof Uint8Array))throw Error(`Wasm artifact bytes must be a Uint8Array.`);a=r.bytes.byteLength}else i=wn(r),a=I(r.files).reduce((e,[,t])=>e+(typeof t==`string`?hn.encode(t).byteLength:t.byteLength),0);if(r.size!==a)throw Error(`Artifact size ${r.size} does not match payload size ${a}.`);if(Cn(r),!v(r.language)&&!mn(r.costProfile,r.language,r.target,r.optimization))throw Error(`Artifact cost profile '${r.costProfile}' does not match ${r.language}/${r.target}/${r.optimization}.`);if(!t)return;let{project:o,cacheKey:s}=t;qe(o.files);let c={cacheKey:s,projectId:o.id,language:o.config.language,target:o.config.target,optimization:o.config.optimization,dependencyLockSha256:o.dependencies?.lockSha256};for(let e of[`cacheKey`,`projectId`,`language`,`target`,`optimization`,`dependencyLockSha256`])if(r[e]!==c[e])throw Error(`Artifact ${e} '${String(r[e])}' does not match build identity '${String(c[e])}'.`);if(!v(o.config.language))return;let l=bn(o);if(r.name!==l)throw Error(`Artifact name '${r.name}' does not match build identity '${l}'.`);if(r.kind===`runtime-bundle`){let e=xn(o);if(r.entry!==e)throw Error(`Artifact entry '${r.entry}' does not match build identity '${e}'.`);let t=vn(o,r.runtimePackage,r.command,e);if(r.manifest!==t||i?.name!==o.name)throw Error(`Runtime bundle manifest does not match the canonical project build identity.`)}}Object.freeze({randomSeed:1592594996,realtimeEpochMs:Date.UTC(2e3,0,1),clockStepNs:1e6});var En=Object.freeze([`id`,`name`,`files`,`config`,`activeFile`,`updatedAt`]);Object.freeze([...En,`dependencies`]),Object.freeze([`path`,`language`,`content`]),Object.freeze([`language`,`target`,`optimization`,`entry`,`args`,`stdin`,`env`,`determinism`,`resources`]),Object.freeze([`randomSeed`,`realtimeEpochMs`,`clockStepNs`]),Object.freeze([`instructionBudget`,`logicalTimeLimitMs`,`memoryLimitBytes`,`outputLimitBytes`,`filesystemWriteLimitBytes`,`filesystemEntryLimit`,`wallTimeLimitMs`]);var Dn=`projects`,J=`artifacts`,On=/^[0-9a-f]{64}$/u;function Y(e){return new Promise((t,n)=>{e.addEventListener(`success`,()=>t(e.result),{once:!0}),e.addEventListener(`error`,()=>{n(e.error??Error(`IndexedDB request failed without an error.`))},{once:!0})})}function X(e){return new Promise((t,n)=>{e.addEventListener(`complete`,()=>t(),{once:!0}),e.addEventListener(`abort`,()=>{n(e.error??Error(`IndexedDB transaction aborted without an error.`))},{once:!0}),e.addEventListener(`error`,()=>{n(e.error??Error(`IndexedDB transaction failed without an error.`))},{once:!0})})}var Z;function Q(){if(Z)return Z;let e=new Promise((t,n)=>{let r=indexedDB.open(g.database,g.databaseVersion),i=!1,a=e=>{i||(i=!0,n(e))};r.addEventListener(`upgradeneeded`,()=>{let e=r.result;e.objectStoreNames.contains(Dn)||e.createObjectStore(Dn,{keyPath:`id`}).createIndex(`updatedAt`,`updatedAt`),e.objectStoreNames.contains(J)||e.createObjectStore(J,{keyPath:`cacheKey`}).createIndex(`createdAt`,`createdAt`)}),r.addEventListener(`success`,()=>{let n=r.result;if(i){n.close();return}i=!0;let a=()=>{Z===e&&(Z=void 0)};n.addEventListener(`versionchange`,()=>{n.close(),a()},{once:!0}),n.addEventListener(`close`,a,{once:!0}),t(n)},{once:!0}),r.addEventListener(`error`,()=>{a(r.error??Error(`Unable to open WASM-OJ storage.`))},{once:!0}),r.addEventListener(`blocked`,()=>{a(Error(`WASM-OJ storage upgrade is blocked by another open tab.`))},{once:!0})});return Z=e,e.catch(()=>{Z===e&&(Z=void 0)}),e}async function kn(e){let t=structuredClone(e);Tn(t);let n=on(t),r={artifact:t,byteLength:n.byteLength,cacheKey:t.cacheKey,createdAt:t.createdAt,lastAccessedAt:Date.now(),payloadSha256:await L(n)},i=(await Q()).transaction(J,`readwrite`);i.objectStore(J).put(r),await X(i),await Mn(20)}async function An(e){let t=(await Q()).transaction(J,`readonly`),n=await Y(t.objectStore(J).get(e));if(await X(t),n===void 0)return;let r;try{r=In(n,e)}catch(t){await Rn(e,t);return}if(await sn(r.artifact)!==r.payloadSha256){await Rn(e,Error(`Artifact payload SHA-256 does not match its stored digest.`));return}return await Ln(e),r.artifact}async function jn(e){let t=(await Q()).transaction(J,`readwrite`);t.objectStore(J).delete(e),await X(t)}async function Mn(e){if(!Number.isSafeInteger(e)||e<0)throw RangeError(`Artifact retention count must be a non-negative safe integer.`);let t=(await Q()).transaction(J,`readwrite`),n=t.objectStore(J);(await Y(n.getAll())).sort((e,t)=>t.createdAt-e.createdAt).slice(e).forEach(e=>n.delete(e.cacheKey)),await X(t)}async function Nn(){let e=(await Q()).transaction(J,`readwrite`);e.objectStore(J).clear(),await X(e)}async function Pn(){let e=(await Q()).transaction(J,`readonly`),t=await Y(e.objectStore(J).getAll());return await X(e),t.map(e=>{let t=In(e);return{key:t.cacheKey,byteLength:t.byteLength,lastAccessedAt:t.lastAccessedAt}})}function Fn(){return{id:`artifacts`,retentionPriority:20,list:Pn,delete:jn,clear:Nn}}function In(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Persisted artifact record must be an object.`);let n=e,r=Object.keys(n).sort();if(JSON.stringify(r)!==JSON.stringify([`artifact`,`byteLength`,`cacheKey`,`createdAt`,`lastAccessedAt`,`payloadSha256`]))throw Error(`Persisted artifact record has an invalid shape.`);if(t!==void 0&&n.cacheKey!==t)throw Error(`Persisted artifact record cache key does not match its IndexedDB key.`);if(typeof n.payloadSha256!=`string`||!On.test(n.payloadSha256))throw Error(`Persisted artifact payload digest must be a lowercase SHA-256 hexadecimal string.`);if(!Number.isSafeInteger(n.byteLength)||n.byteLength<0||!Number.isSafeInteger(n.lastAccessedAt)||n.lastAccessedAt<0)throw Error(`Persisted artifact storage metadata is invalid.`);let i=n.artifact;if(Tn(i),i.cacheKey!==n.cacheKey||i.createdAt!==n.createdAt)throw Error(`Persisted artifact index fields do not match the artifact metadata.`);return n}async function Ln(e){let t=(await Q()).transaction(J,`readwrite`),n=t.objectStore(J),r=await Y(n.get(e));if(r!==void 0){let t=In(r,e);n.put({...t,lastAccessedAt:Date.now()})}await X(t)}async function Rn(e,t){console.warn(`Ignoring invalid cached artifact '${e}'.`,t);try{await jn(e)}catch(t){console.warn(`Unable to evict invalid cached artifact '${e}'.`,t)}}var zn=class extends e{dependencyCache;constructor(e,t,n,r,i){super({compiler:e,runner:t,artifactStore:r?{load:An,save:kn,delete:jn,clear:Nn}:void 0,dependencyManager:s(n,{networkAuthorizer:i})}),this.dependencyCache=n}dispose(){super.dispose(),this.dependencyCache.close()}};async function Bn(e){if(!e||typeof e!=`object`)throw TypeError(`createBrowserEngine requires explicit toolchain options.`);let t=d(e.toolchains),n,r,i,a;try{return i=new V,n=new Vt({toolchains:t}),r=new $t({toolchains:t,additionalCostBaselines:e.additionalCostBaselines,runtimeDriverPlugins:e.runtimeDriverPlugins}),a=new zn(n,r,i,e.artifactCache!==!1,e.dependencyNetworkAuthorizer),await a.ready(),a}catch(e){throw a?a.dispose():(r?.dispose(),n?.dispose(),i?.close()),e}}async function Vn(e={}){if(typeof navigator>`u`||!(`serviceWorker`in navigator))return;let t=e.scriptUrl??`/toolchain-cache-sw.js`,n=e.scope??`/`;if(typeof n!=`string`||!n)throw TypeError(`WASM-OJ toolchain cache service-worker scope must be a non-empty string.`);let r=await navigator.serviceWorker.register(t,{scope:n,updateViaCache:`none`});return await Hn(await Un(r),e.chunkManifestUrl),r}async function Hn(e,t){let n=null;if(t!==void 0){let e=new URL(t,location.href);if(e.origin!==location.origin||e.search||e.hash||e.pathname!==`/toolchains/wasm-oj-sites-chunks.json`)throw Error(`WASM-OJ toolchain chunk manifest must use the canonical same-origin deployment path.`);n=e.pathname}let r=new MessageChannel,i=new Promise((e,t)=>{let n=setTimeout(()=>t(Error(`WASM-OJ toolchain chunk configuration timed out.`)),5e3);r.port1.onmessage=i=>{clearTimeout(n),r.port1.close(),i.data&&typeof i.data==`object`&&`ok`in i.data&&i.data.ok===!0?e():t(Error(`WASM-OJ toolchain cache service worker rejected its chunk manifest configuration.`))}});e.postMessage({type:`configure-toolchain-chunks`,path:n},[r.port2]),await i}function Un(e){let t=e.installing??e.waiting??e.active;return t?t.state===`activated`?Promise.resolve(t):new Promise((e,n)=>{let r=()=>{t.state===`activated`?(t.removeEventListener(`statechange`,r),e(t)):t.state===`redundant`&&(t.removeEventListener(`statechange`,r),n(Error(`WASM-OJ toolchain cache service worker became redundant before activation.`)))};t.addEventListener(`statechange`,r),r()}):Promise.reject(Error(`WASM-OJ toolchain cache registration has no service-worker instance.`))}var Wn=2147483648,Gn=268435456,Kn=.7,qn=`X-WASM-OJ-Byte-Length`,Jn=`X-WASM-OJ-Cached-At`,Yn=class{storageManager;lockManager;participants;maxCacheBytes;minimumFreeBytes;quotaFraction;constructor(e={}){let t=e.storageManager??navigator.storage,n=e.lockManager??navigator.locks;if(!t||typeof t.estimate!=`function`||typeof t.persist!=`function`)throw Error(`WASM-OJ storage coordination requires the StorageManager API.`);if(!n||typeof n.request!=`function`)throw Error(`WASM-OJ storage coordination requires the Web Locks API for cross-tab safety.`);this.storageManager=t,this.lockManager=n,this.participants=er(e.participants??[]),this.maxCacheBytes=$(e.maxCacheBytes??Wn,`maximum cache bytes`),this.minimumFreeBytes=$(e.minimumFreeBytes??Gn,`minimum free bytes`),this.quotaFraction=ar(e.quotaFraction??Kn)}async estimate(){let[e,t]=await Promise.all([this.storageManager.estimate(),this.snapshotParticipants()]);return Qn(e,t,this.maxCacheBytes,this.minimumFreeBytes,this.quotaFraction)}async maintain(e=0){return e=$(e,`incoming bytes`),this.exclusive(async()=>{let[t,n]=await Promise.all([this.storageManager.estimate(),this.snapshotParticipants()]),r=Qn(t,n,this.maxCacheBytes,this.minimumFreeBytes,this.quotaFraction),i=$n(r,e),a=n.flatMap(({participant:e,entries:t})=>t.map(t=>({participant:e,entry:t}))).sort((e,t)=>e.participant.retentionPriority-t.participant.retentionPriority||e.entry.lastAccessedAt-t.entry.lastAccessedAt||e.participant.id.localeCompare(t.participant.id)||e.entry.key.localeCompare(t.entry.key)),o=[],s=0;for(let e of a){if(s>=i)break;await e.participant.delete(e.entry.key),s+=e.entry.byteLength,o.push({participantId:e.participant.id,key:e.entry.key,byteLength:e.entry.byteLength})}return{before:r,after:await this.estimateUnlocked(),evicted:o}})}async admit(e){let t=await this.maintain(e);if(t.evicted.reduce((e,t)=>e+t.byteLength,0)<$n(t.before,e))throw new DOMException(`WASM-OJ browser storage cannot admit the requested payload within its configured budget.`,`QuotaExceededError`);return t}async clear(){await this.exclusive(async()=>{for(let e of this.participants)await e.clear()})}requestPersistence(){return this.storageManager.persist()}async estimateUnlocked(){let[e,t]=await Promise.all([this.storageManager.estimate(),this.snapshotParticipants()]);return Qn(e,t,this.maxCacheBytes,this.minimumFreeBytes,this.quotaFraction)}async snapshotParticipants(){return Promise.all(this.participants.map(async e=>{let t=[...await e.list()].map(nr),n=t.map(e=>e.key);if(new Set(n).size!==n.length)throw Error(`Storage participant '${e.id}' returned duplicate keys.`);return{participant:e,entries:t}}))}async exclusive(e){return await this.lockManager.request(`${g.database}:coordinator`,{mode:`exclusive`},async()=>await e())}};function Xn(e={}){let t=e.cacheStorage??caches,n=new V;return new Yn({...e,cacheStorage:t,participants:[Nt(),Fn(),n.storageParticipant(),Zn(t,g.runtimeFilesCache,`runtime-files`,50),Zn(t,g.toolchainCache,`toolchains`,100)]})}function Zn(e,t,n,r){return tr(n,r),{id:n,retentionPriority:r,async list(){let n=await e.open(t),r=await n.keys(),i=[];for(let e of r){let t=await n.match(e);if(!t)continue;let r=ir(t.headers.get(qn)),a=ir(t.headers.get(Jn));if(r===void 0||a===void 0){await n.delete(e);continue}i.push({key:e.url,byteLength:r,lastAccessedAt:a})}return i},async delete(n){await(await e.open(t)).delete(n)},async clear(){await e.delete(t)}}}function Qn(e,t,n,r,i){let a=$(e.usage??0,`browser storage usage`),o=$(e.quota??0,`browser storage quota`),s=t.map(({participant:e,entries:t})=>({id:e.id,byteLength:t.reduce(rr,0),entryCount:t.length,retentionPriority:e.retentionPriority})),c=o>0?Math.floor(o*i):n;return{usage:a,quota:o,logicalCacheBytes:s.reduce((e,t)=>e+t.byteLength,0),logicalCacheBudget:Math.min(n,c),minimumFreeBytes:r,participants:s}}function $n(e,t){let n=Math.max(0,e.logicalCacheBytes+t-e.logicalCacheBudget),r=e.quota>0?Math.max(0,e.usage+t+e.minimumFreeBytes-e.quota):0;return Math.max(n,r)}function er(e){let t=e.map(e=>{if(!e||typeof e.list!=`function`||typeof e.delete!=`function`||typeof e.clear!=`function`)throw Error(`Storage participants must implement list(), delete(), and clear().`);return tr(e.id,e.retentionPriority),e}),n=t.map(e=>e.id);if(new Set(n).size!==n.length)throw Error(`Storage participant IDs must be unique.`);return t.sort((e,t)=>e.id.localeCompare(t.id))}function tr(e,t){if(!e||e!==e.trim()||e.includes(`\0`))throw Error(`Storage participant IDs must be non-empty and canonical.`);$(t,`storage participant '${e}' retention priority`)}function nr(e){if(!e||typeof e.key!=`string`||!e.key||e.key!==e.key.trim()||e.key.includes(`\0`))throw Error(`Storage entry keys must be non-empty and canonical.`);return{key:e.key,byteLength:$(e.byteLength,`storage entry '${e.key}' byte length`),lastAccessedAt:$(e.lastAccessedAt,`storage entry '${e.key}' access time`)}}function rr(e,t){let n=e+t.byteLength;if(!Number.isSafeInteger(n))throw Error(`Coordinated storage size exceeds the safe integer range.`);return n}function ir(e){if(e===null||!/^\d+$/.test(e))return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function $(e,t){if(!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative safe integer.`);return e}function ar(e){if(!Number.isFinite(e)||e<=0||e>1)throw Error(`Storage quota fraction must be in (0, 1].`);return e}export{Ut as BROWSER_RUNTIME_PLUGIN_LIMITS,Vt as BrowserCompiler,$t as BrowserRunner,V as IndexedDbDependencyCache,Yn as StorageCoordinator,Zn as cacheStorageParticipant,Bn as createBrowserEngine,Xn as createDefaultBrowserStorageCoordinator,Et as prefetchBrowserToolchain,Vn as registerToolchainCache,Kt as validateBrowserRuntimeDriverPlugins};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wasm-oj/browser",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.5",
|
|
4
4
|
"description": "Browser compiler and runner host for the WASM-OJ SDK.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "JacobLinCool",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"node": ">=24.18.0 <25"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@wasm-oj/contracts": "0.2.
|
|
48
|
-
"@wasm-oj/core": "0.2.
|
|
47
|
+
"@wasm-oj/contracts": "0.2.5",
|
|
48
|
+
"@wasm-oj/core": "0.2.5",
|
|
49
49
|
"@wasmer/sdk": "0.10.0",
|
|
50
50
|
"es-module-lexer": "2.3.1",
|
|
51
51
|
"fflate": "0.8.3"
|