@perspective-dev/client 4.0.0 → 4.1.0
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/cdn/perspective-server.worker.js +1 -1
- package/dist/cdn/perspective-server.worker.js.map +3 -3
- package/dist/cdn/perspective.js +2 -2
- package/dist/cdn/perspective.js.map +4 -4
- package/dist/esm/perspective.browser.d.ts +5 -1
- package/dist/esm/perspective.inline.js +2 -2
- package/dist/esm/perspective.inline.js.map +4 -4
- package/dist/esm/perspective.js +2 -2
- package/dist/esm/perspective.js.map +4 -4
- package/dist/esm/perspective.node.d.ts +6 -1
- package/dist/esm/perspective.node.js +722 -353
- package/dist/esm/perspective.node.js.map +4 -4
- package/dist/esm/ts-rs/ColumnType.d.ts +4 -0
- package/dist/esm/ts-rs/ViewConfig.d.ts +18 -0
- package/dist/esm/ts-rs/ViewWindow.d.ts +9 -9
- package/dist/esm/virtual_server.d.ts +47 -0
- package/dist/esm/virtual_servers/duckdb.d.ts +39 -0
- package/dist/esm/virtual_servers/duckdb.js +12 -0
- package/dist/esm/virtual_servers/duckdb.js.map +7 -0
- package/dist/esm/wasm/browser.d.ts +1 -1
- package/dist/wasm/perspective-js.d.ts +52 -13
- package/dist/wasm/perspective-js.js +680 -399
- package/dist/wasm/perspective-js.wasm +0 -0
- package/dist/wasm/perspective-js.wasm.d.ts +20 -8
- package/package.json +4 -1
- package/src/rust/client.rs +14 -5
- package/src/rust/lib.rs +11 -1
- package/src/rust/table.rs +3 -2
- package/src/rust/table_data.rs +19 -14
- package/src/rust/utils/browser.rs +0 -4
- package/src/rust/utils/console_logger.rs +3 -2
- package/src/rust/utils/errors.rs +10 -28
- package/src/rust/utils/futures.rs +3 -3
- package/src/rust/utils/json.rs +4 -4
- package/src/rust/virtual_server.rs +746 -0
- package/src/ts/perspective-server.worker.ts +33 -23
- package/src/ts/perspective.browser.ts +17 -2
- package/src/ts/perspective.node.ts +46 -11
- package/src/ts/ts-rs/ColumnType.ts +6 -0
- package/src/ts/ts-rs/ViewConfig.ts +8 -0
- package/src/ts/ts-rs/ViewWindow.ts +3 -3
- package/src/ts/virtual_server.ts +126 -0
- package/src/ts/virtual_servers/duckdb.ts +511 -0
- package/src/ts/wasm/browser.ts +17 -9
- package/tsconfig.json +1 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var b=class{poll_handle;server;constructor(t){this.server=t}set_poll_handle(){return this.poll_handle=new Promise((t,r)=>setTimeout(()=>this.server.poll().then(t).catch(r).finally(()=>{this.poll_handle=void 0}))),this.poll_handle}async on_poll_request(){this.poll_handle?await this.poll_handle.then(()=>{if(!this.poll_handle)return this.set_poll_handle()}):await this.set_poll_handle()}},v=class{clients;server;module;on_poll_request;constructor(t,r){this.clients=new Map,this.module=t,this.on_poll_request=r?.on_poll_request,this.server=t._psp_new_server(r?.on_poll_request?1:0)}make_session(t){let r=this.module._psp_new_session(this.server);return this.clients.set(r,t),new w(this.module,this.server,r,this.clients,this.on_poll_request&&(()=>this.on_poll_request(this)))}async poll(){let t=this.module._psp_poll(this.server);await P(this.module,t,async r=>{await this.clients.get(r.client_id)(r.data)})}delete(){this.module._psp_delete_server(this.server)}},w=class{constructor(t,r,
|
|
1
|
+
var b=class{poll_handle;server;constructor(t){this.server=t}set_poll_handle(){return this.poll_handle=new Promise((t,r)=>setTimeout(()=>this.server.poll().then(t).catch(r).finally(()=>{this.poll_handle=void 0}))),this.poll_handle}async on_poll_request(){this.poll_handle?await this.poll_handle.then(()=>{if(!this.poll_handle)return this.set_poll_handle()}):await this.set_poll_handle()}},v=class{clients;server;module;on_poll_request;constructor(t,r){this.clients=new Map,this.module=t,this.on_poll_request=r?.on_poll_request,this.server=t._psp_new_server(r?.on_poll_request?1:0)}make_session(t){let r=this.module._psp_new_session(this.server);return this.clients.set(r,t),new w(this.module,this.server,r,this.clients,this.on_poll_request&&(()=>this.on_poll_request(this)))}async poll(){let t=this.module._psp_poll(this.server);await P(this.module,t,async r=>{await this.clients.get(r.client_id)(r.data)})}delete(){this.module._psp_delete_server(this.server)}},w=class{constructor(t,r,i,o,_){this.mod=t;this.server=r;this.client_id=i;this.client_map=o;this.on_poll_request=_}async handle_request(t){let r=await I(this.mod,t,async i=>this.mod._psp_handle_request(this.server,this.client_id,i,this.mod._psp_is_memory64()?BigInt(t.byteLength):t.byteLength));await P(this.mod,r,async i=>{await this.client_map.get(i.client_id)(i.data)}),this.on_poll_request?await this.on_poll_request():await this.poll()}async poll(){let t=this.mod._psp_poll(this.server);await P(this.mod,t,async r=>{r.client_id===0?await this.client_map.get(this.client_id)(r.data):await this.client_map.get(r.client_id)(r.data)})}close(){this.mod._psp_close_session(this.server,this.client_id)}};async function I(n,t,r){let i=n._psp_alloc(n._psp_is_memory64()?BigInt(t.byteLength):t.byteLength);n.HEAPU8.set(t,Number(i));let o=await r(i);return n._psp_free(i),o}async function P(n,t,r){let i=n._psp_is_memory64(),o=new DataView(n.HEAPU8.buffer,Number(t),i?12:8),_=o.getUint32(0,!0),f=i?o.getBigInt64(4,!0):o.getUint32(4,!0),e=new DataView(n.HEAPU8.buffer,Number(f),_*(i?16:12));try{for(let s=0;s<_;s++){let[a,l,m]=i?[e.getBigInt64(s*16,!0),e.getInt32(s*16+8,!0),e.getInt32(s*16+12,!0)]:[e.getInt32(s*12,!0),e.getInt32(s*12+4,!0),e.getInt32(s*12+8,!0)],c=new Uint8Array(n.HEAPU8.buffer,Number(a),l);await r({client_id:m,data:c})}}finally{for(let s=0;s<_;s++){let a=i?e.getBigInt64(s*16,!0):e.getInt32(s*12,!0);n._psp_free(a)}n._psp_free(i?BigInt(e.byteOffset):e.byteOffset),n._psp_free(i?BigInt(o.byteOffset):o.byteOffset)}}var B=console.log.bind(console),H=console.error.bind(console),N=new TextDecoder("utf8"),q=[null,[],[]];function L(n,t=0,r=NaN){for(var i=t+r,o=t;n[o]&&!(o>=i);)++o;return N.decode(n instanceof Uint8Array?n.subarray(t,o):new Uint8Array(n.slice(t,o)))}function E(n,t){var r=q[n];t===0||t===10?((n===1?B:H)(L(r,0)),r.length=0):r.push(t)}async function M(n){let t,r=!1,i,o={HaveOffsetConverter(){console.error("HaveOffsetConverter")},__syscall_ftruncate64(...e){console.error("__syscall_frtuncate64",e)},__syscall_getdents64(...e){console.error("__syscall_frtuncate64",e)},__syscall_unlinkat(...e){console.error("__syscall_frtuncate64",e)},__throw_exception_with_stack_trace(e){let s=new WebAssembly.Exception(t.__cpp_exception,[e],{traceStack:!0});throw s.message="Unexpected internal error",s},clock_time_get(e,s,a){if(r){if(a=a,a=Number(a),!(e==0||e==1||e==2||e==3))return 28;var l;e===0?l=Date.now():l=performance.now();let c=Math.round(l*1e3*1e3),p=new BigInt64Array(i.buffer);return p[a/8]=BigInt(c),0}else{if(a=a,a>>>=0,!(e==0||e==1||e==2||e==3))return 28;var l;e===0?l=Date.now():l=performance.now();var m=Math.round(l*1e6);let p=new BigInt64Array(i.buffer);return p[a>>>3]=BigInt(m),0}},emscripten_asm_const_int(...e){return 0},emscripten_notify_memory_growth(e){r?e=Number(e):(e=e,e>>>=0),e!=0&&console.error("abort")},environ_get(...e){return 0},environ_sizes_get(...e){return 0},fd_close(...e){return console.error("fd_close",e),0},fd_read(...e){return console.error("fd_read",e),0},fd_seek(...e){return console.error("fs_seek",e),0},fd_write(e,s,a,l){let m=new Uint8Array(i.buffer);if(r){s=Number(s),a=Number(a),l=Number(l);let c=0,p=new BigUint64Array(i.buffer);for(let d=0;d<a;d++){let g=Number(p[s/8]),y=Number(p[(s+8)/8]);s+=16;for(let u=0;u<y;u++)E(e,m[g+u]);c+=y}return p[l/8]=BigInt(c),0}else{s=s,a=a,l=l,s>>>=0,a>>>=0,l>>>=0;let c=0,p=new Uint32Array(i.buffer);for(let d=0;d<a;d++){let g=p[s>>>2>>>0],y=p[s+4>>>2>>>0];s+=8;for(let u=0;u<y;u++)E(e,m[g+u>>>0]);c+=y}return p[l>>>2>>>0]=c,0}},proc_exit(e){return console.error("proc_exit",e),0}},_=await n.instantiateWasm({env:o,wasi_snapshot_preview1:o},e=>{t=e.exports,r=!!t.psp_is_memory64(),i=e.exports.memory,t._initialize()}),f={};for(let[e,s]of Object.entries(_))f[`_${e}`]=s;return{..._,...f,get HEAPU8(){return new Uint8Array(i.buffer)}}}async function U(n){let t=await M({locateFile(r){return r},instantiateWasm:async(r,i)=>{r.env={...r.env,psp_stack_trace(){let _=Error().stack||"",e=new TextEncoder().encode(_),s=t._psp_alloc(t._psp_is_memory64()?BigInt(e.byteLength+1):e.byteLength+1);return t.HEAPU8.set(e,Number(s)),t.HEAPU8[Number(s)+e.byteLength]=0,s},psp_heap_size(){return t._psp_is_memory64()?BigInt(t.HEAPU8.buffer.byteLength):t.HEAPU8.buffer.byteLength}};let o=await WebAssembly.instantiate(n,r);return i(o.instance),o.instance.exports}});return t}var h,S,A;async function x(n){if(n.data.cmd==="init"){let t=n.data.id;if(!h){let r=await U(n.data.args[0]);h=new v(r,{on_poll_request:()=>S.on_poll_request()}),S=new b(h)}A=h.make_session(async r=>{let i=r.slice().buffer;this.postMessage(i,{transfer:[i]})}),this.postMessage({id:t})}else if(A)await A?.handle_request(new Uint8Array(n.data));else throw new Error("No session")}function R(n){let t=n.ports[0];t.addEventListener("message",x.bind(t)),t.start()}self.addEventListener("connect",R);self.addEventListener("message",x.bind(self));
|
|
2
2
|
//# sourceMappingURL=perspective-server.worker.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ts/wasm/engine.ts", "../../src/ts/wasm/perspective-server.poly.ts", "../../src/ts/wasm/emscripten_api.ts", "../../src/ts/perspective-server.worker.ts"],
|
|
4
|
-
"sourcesContent": ["// \u250F\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n// \u2503 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588\u2584 \u2580\u2588\u2588\u2588 \u2588 \u2503\n// \u2503 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2584\u2584\u2584\u2584\u2584 \u2584\u2584\u2584\u2584\u2584\u2588 \u2580\u2580\u2580\u2580\u2580\u2588\u2580\u2580\u2580\u2580\u2580 \u2588 \u2580\u2580\u2580\u2580\u2580\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2584 \u2580\u2588 \u2588 \u2580\u2580\u2580\u2580\u2580 \u2503\n// \u2503 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2588\u2588\u2580\u2580 \u2584\u2584\u2584\u2584\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584 \u2503\n// \u2503 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2580\u2588\u2584 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2503\n// \u2523\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252B\n// \u2503 Copyright (c) 2017, the Perspective Authors. \u2503\n// \u2503 \u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C \u2503\n// \u2503 This file is part of the Perspective library, distributed under the terms \u2503\n// \u2503 of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). \u2503\n// \u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u251B\n\nimport type { MainModule } from \"@perspective-dev/server/dist/wasm/perspective-server.js\";\nimport type { EmscriptenServer, PspPtr } from \"./emscripten_api.ts\";\n\nexport type ApiResponse = {\n client_id: number;\n data: Uint8Array;\n};\n\nexport interface PerspectiveServerOptions {\n on_poll_request?: (x: PerspectiveServer) => Promise<void>;\n}\n\nexport class PerspectivePollThread {\n private poll_handle?: Promise<void>;\n private server: PerspectiveServer;\n constructor(server: PerspectiveServer) {\n this.server = server;\n }\n\n private set_poll_handle() {\n this.poll_handle = new Promise((resolve, reject) =>\n setTimeout(() =>\n this.server\n .poll()\n .then(resolve)\n .catch(reject)\n .finally(() => {\n this.poll_handle = undefined;\n }),\n ),\n );\n\n return this.poll_handle;\n }\n\n async on_poll_request() {\n if (!this.poll_handle) {\n await this.set_poll_handle();\n } else {\n await this.poll_handle.then(() => {\n if (!this.poll_handle) {\n return this.set_poll_handle();\n }\n });\n }\n }\n}\n\nexport class PerspectiveServer {\n clients: Map<number, (buffer: Uint8Array) => Promise<void>>;\n server: EmscriptenServer;\n module: MainModule;\n on_poll_request?: (x: PerspectiveServer) => Promise<void>;\n constructor(module: MainModule, options?: PerspectiveServerOptions) {\n this.clients = new Map();\n this.module = module;\n this.on_poll_request = options?.on_poll_request;\n this.server = module._psp_new_server(\n !!options?.on_poll_request ? 1 : 0,\n ) as EmscriptenServer;\n }\n\n /**\n * Helper function to create server emitter/receiver pairs\n */\n make_session(\n callback: (buffer: Uint8Array) => Promise<void>,\n ): PerspectiveSession {\n const client_id = this.module._psp_new_session(this.server as any);\n this.clients.set(client_id, callback);\n return new PerspectiveSession(\n this.module,\n this.server,\n client_id,\n this.clients,\n this.on_poll_request && (() => this.on_poll_request!(this)),\n );\n }\n\n async poll() {\n const polled = this.module._psp_poll(this.server as any);\n await decode_api_responses(\n this.module,\n polled,\n async (msg: ApiResponse) => {\n await this.clients.get(msg.client_id)!(msg.data);\n },\n );\n }\n\n delete() {\n this.module._psp_delete_server(this.server as any);\n }\n}\n\nexport class PerspectiveSession {\n constructor(\n private mod: MainModule,\n private server: EmscriptenServer,\n private client_id: number,\n private client_map: Map<number, (buffer: Uint8Array) => Promise<void>>,\n private on_poll_request?: () => Promise<void>,\n ) {}\n\n async handle_request(view: Uint8Array) {\n const ptr = await convert_typed_array_to_pointer(\n this.mod,\n view,\n async (viewPtr) => {\n return this.mod._psp_handle_request(\n this.server as any,\n this.client_id,\n viewPtr as any,\n this.mod._psp_is_memory64()\n ? (BigInt(view.byteLength) as any as number)\n : (view.byteLength as any),\n );\n },\n );\n\n await decode_api_responses(this.mod, ptr, async (msg: ApiResponse) => {\n await this.client_map.get(msg.client_id)!(msg.data);\n });\n\n if (this.on_poll_request) {\n await this.on_poll_request();\n } else {\n await this.poll();\n }\n }\n\n private async poll() {\n const polled = this.mod._psp_poll(this.server as any);\n await decode_api_responses(\n this.mod,\n polled,\n async (msg: ApiResponse) => {\n if (msg.client_id === 0) {\n await this.client_map.get(this.client_id)!(msg.data);\n } else {\n await this.client_map.get(msg.client_id)!(msg.data);\n }\n },\n );\n }\n\n close() {\n this.mod._psp_close_session(this.server as any, this.client_id);\n }\n}\n\nasync function convert_typed_array_to_pointer(\n core: MainModule,\n array: Uint8Array,\n callback: (_: PspPtr) => Promise<PspPtr>,\n): Promise<PspPtr> {\n const ptr = core._psp_alloc(\n core._psp_is_memory64()\n ? (BigInt(array.byteLength) as any as number)\n : (array.byteLength as any),\n );\n\n core.HEAPU8.set(array, Number(ptr));\n const msg = await callback(ptr);\n core._psp_free(ptr);\n return msg;\n}\n\n/**\n * Convert a pointer to WASM memory into an `ApiResponse[]`, via a custom\n * encoding.\n *\n * @param core The emscripten API\n * @param ptr A pointer to a fixed-sized struct representing a set of\n * `proto::Resp` payloads, encoded as a length-prefixed array of\n * (char* data, u32_t len, u32_t client_id) tuples:\n *\n * ```text\n * N data length client_id data length client_id\n * +-------------------------------------------------------------+\n * | 2 | 0xabc | 9 | 0 | 0xdef | 12 | 0 |\n * +-------------------------------------------------------------+\n * | |\n * | +-------------+ | +----------------+\n * +--| \"Test Data\" | +--| \"Hello, World\" |\n * +-------------+ +----------------+\n * ```\n *\n * @param callback A callback to which is passed the responses. THe responses\n * must be fully processed or copied before the callback returns, as it\n * references memory on the wasm stack.\n */\nasync function decode_api_responses(\n core: MainModule,\n ptr: PspPtr,\n callback: (_: ApiResponse) => Promise<void>,\n) {\n const is_64 = core._psp_is_memory64();\n const response = new DataView(\n core.HEAPU8.buffer,\n Number(ptr),\n is_64 ? 12 : 8,\n );\n\n const num_msgs = response.getUint32(0, true);\n const msgs_ptr = is_64\n ? response.getBigInt64(4, true)\n : response.getUint32(4, true);\n\n const messages = new DataView(\n core.HEAPU8.buffer,\n Number(msgs_ptr),\n num_msgs * (is_64 ? 16 : 12),\n );\n\n try {\n for (let i = 0; i < num_msgs; i++) {\n const [data_ptr, data_len, client_id] = is_64\n ? [\n messages.getBigInt64(i * 16, true),\n messages.getInt32(i * 16 + 8, true),\n messages.getInt32(i * 16 + 12, true),\n ]\n : [\n messages.getInt32(i * 12, true),\n messages.getInt32(i * 12 + 4, true),\n messages.getInt32(i * 12 + 8, true),\n ];\n\n const data = new Uint8Array(\n core.HEAPU8.buffer,\n Number(data_ptr),\n data_len,\n );\n\n const resp = { client_id, data };\n await callback(resp);\n }\n } finally {\n for (let i = 0; i < num_msgs; i++) {\n const data_ptr = is_64\n ? messages.getBigInt64(i * 16, true)\n : messages.getInt32(i * 12, true);\n\n core._psp_free(data_ptr as any);\n }\n\n core._psp_free(\n is_64\n ? (BigInt(messages.byteOffset) as any as number)\n : (messages.byteOffset as any),\n );\n core._psp_free(\n is_64\n ? (BigInt(response.byteOffset) as any as number)\n : (response.byteOffset as any),\n );\n }\n}\n", "// \u250F\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n// \u2503 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588\u2584 \u2580\u2588\u2588\u2588 \u2588 \u2503\n// \u2503 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2584\u2584\u2584\u2584\u2584 \u2584\u2584\u2584\u2584\u2584\u2588 \u2580\u2580\u2580\u2580\u2580\u2588\u2580\u2580\u2580\u2580\u2580 \u2588 \u2580\u2580\u2580\u2580\u2580\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2584 \u2580\u2588 \u2588 \u2580\u2580\u2580\u2580\u2580 \u2503\n// \u2503 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2588\u2588\u2580\u2580 \u2584\u2584\u2584\u2584\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584 \u2503\n// \u2503 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2580\u2588\u2584 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2503\n// \u2523\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252B\n// \u2503 Copyright (c) 2017, the Perspective Authors. \u2503\n// \u2503 \u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C \u2503\n// \u2503 This file is part of the Perspective library, distributed under the terms \u2503\n// \u2503 of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). \u2503\n// \u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u251B\n\nimport type * as perspective_server from \"@perspective-dev/server/dist/wasm/perspective-server.js\";\n\ntype PspPtr = bigint | number;\ntype EmscriptenServer = number;\n\nvar out = console.log.bind(console);\nvar err = console.error.bind(console);\n\nvar UTF8Decoder = new TextDecoder(\"utf8\");\nvar printCharBuffers: Array<Array<number> | null> = [null, [], []];\n\nfunction UTF8ArrayToString(\n heapOrArray: Uint8Array | Array<number>,\n idx = 0,\n maxBytesToRead = NaN,\n) {\n var endIdx = idx + maxBytesToRead;\n var endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr;\n return UTF8Decoder.decode(\n heapOrArray instanceof Uint8Array\n ? heapOrArray.subarray(idx, endPtr)\n : new Uint8Array(heapOrArray.slice(idx, endPtr)),\n );\n}\n\nfunction printChar(stream: number, curr: number) {\n var buffer: Array<number> = printCharBuffers[stream]!;\n if (curr === 0 || curr === 10) {\n (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));\n buffer.length = 0;\n } else {\n buffer.push(curr);\n }\n}\n\nexport default async function (obj: any) {\n let psp_module: perspective_server.MainModule;\n let is_memory64 = false;\n let wasm_memory: WebAssembly.Memory;\n const module = {\n HaveOffsetConverter() {\n console.error(\"HaveOffsetConverter\");\n },\n __syscall_ftruncate64(...args: any[]) {\n console.error(\"__syscall_frtuncate64\", args);\n },\n __syscall_getdents64(...args: any[]) {\n console.error(\"__syscall_frtuncate64\", args);\n },\n __syscall_unlinkat(...args: any[]) {\n console.error(\"__syscall_frtuncate64\", args);\n },\n __throw_exception_with_stack_trace(ex: number) {\n // @ts-ignore\n const e = new WebAssembly.Exception(\n (psp_module as any).__cpp_exception,\n [ex],\n {\n traceStack: true,\n },\n );\n\n // e.message = getExceptionMessage(e);\n e.message = \"Unexpected internal error\";\n throw e;\n },\n clock_time_get(\n clk_id: number,\n ignored_precision: bigint,\n ptime: bigint | number,\n ) {\n if (is_memory64) {\n ptime = ptime as bigint;\n ptime = Number(ptime);\n if (\n !(clk_id == 0 || clk_id == 1 || clk_id == 2 || clk_id == 3)\n ) {\n return 28;\n }\n var now;\n\n if (clk_id === 0) {\n now = Date.now();\n } else {\n now = performance.now();\n }\n\n const nsec = Math.round(now * 1000 * 1000);\n const HEAP64 = new BigInt64Array(wasm_memory.buffer);\n HEAP64[ptime / 8] = BigInt(nsec);\n return 0;\n } else {\n ptime = ptime as number;\n ptime >>>= 0;\n if (\n !(clk_id == 0 || clk_id == 1 || clk_id == 2 || clk_id == 3)\n ) {\n return 28;\n }\n\n var now;\n if (clk_id === 0) {\n now = Date.now();\n } else {\n now = performance.now();\n }\n\n var nsec = Math.round(now * 1e6);\n const HEAP64 = new BigInt64Array(wasm_memory.buffer);\n HEAP64[ptime >>> 3] = BigInt(nsec);\n return 0;\n }\n },\n emscripten_asm_const_int(...args: any[]) {\n return 0;\n },\n emscripten_notify_memory_growth(memoryIndex: bigint | number) {\n if (is_memory64) {\n memoryIndex = Number(memoryIndex as bigint);\n } else {\n memoryIndex = memoryIndex as number;\n memoryIndex >>>= 0;\n }\n\n if (memoryIndex != 0) {\n console.error(\"abort\");\n }\n },\n environ_get(...args: any[]) {\n return 0;\n },\n environ_sizes_get(...args: any[]) {\n return 0;\n },\n fd_close(...args: any[]) {\n console.error(\"fd_close\", args);\n return 0;\n },\n fd_read(...args: any[]) {\n console.error(\"fd_read\", args);\n return 0;\n },\n fd_seek(...args: any[]) {\n console.error(\"fs_seek\", args);\n return 0;\n },\n fd_write(\n fd: number,\n iov: number | bigint,\n iovcnt: number | bigint,\n pnum: number | bigint,\n ) {\n const HEAPU8 = new Uint8Array(wasm_memory.buffer);\n\n if (!is_memory64) {\n iov = iov as number;\n iovcnt = iovcnt as number;\n pnum = pnum as number;\n iov >>>= 0;\n iovcnt >>>= 0;\n pnum >>>= 0;\n let num = 0;\n const HEAPU32 = new Uint32Array(wasm_memory.buffer);\n\n for (let i = 0; i < iovcnt; i++) {\n let ptr = HEAPU32[(iov >>> 2) >>> 0];\n let len = HEAPU32[((iov + 4) >>> 2) >>> 0];\n iov += 8;\n for (let j = 0; j < len; j++) {\n printChar(fd, HEAPU8[(ptr + j) >>> 0]);\n }\n num += len;\n }\n HEAPU32[(pnum >>> 2) >>> 0] = num;\n return 0;\n } else {\n iov = Number(iov as bigint);\n iovcnt = Number(iovcnt as bigint);\n pnum = Number(pnum as bigint);\n let num = 0;\n const HEAPU64 = new BigUint64Array(wasm_memory.buffer);\n\n for (let i = 0; i < iovcnt; i++) {\n let ptr = Number(HEAPU64[iov / 8]);\n let len = Number(HEAPU64[(iov + 8) / 8]);\n iov += 16;\n for (let j = 0; j < len; j++) {\n printChar(fd, HEAPU8[ptr + j]);\n }\n\n num += len;\n }\n HEAPU64[pnum / 8] = BigInt(num);\n return 0;\n }\n },\n proc_exit(e: number) {\n console.error(\"proc_exit\", e);\n return 0;\n },\n };\n\n const x = await obj.instantiateWasm(\n { env: module, wasi_snapshot_preview1: module },\n (instance: WebAssembly.Instance) => {\n psp_module =\n instance.exports as any as perspective_server.MainModule;\n\n // @ts-ignore\n is_memory64 = !!psp_module.psp_is_memory64();\n wasm_memory = instance.exports.memory as WebAssembly.Memory;\n\n // @ts-ignore\n psp_module._initialize();\n },\n );\n\n const extensions: Record<string, any> = {};\n for (const [name, func] of Object.entries(x)) {\n extensions[`_${name}`] = func;\n }\n\n return {\n ...x,\n ...extensions,\n get HEAPU8() {\n // @ts-ignore\n return new Uint8Array(wasm_memory.buffer);\n },\n };\n}\n", "// \u250F\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n// \u2503 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588\u2584 \u2580\u2588\u2588\u2588 \u2588 \u2503\n// \u2503 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2584\u2584\u2584\u2584\u2584 \u2584\u2584\u2584\u2584\u2584\u2588 \u2580\u2580\u2580\u2580\u2580\u2588\u2580\u2580\u2580\u2580\u2580 \u2588 \u2580\u2580\u2580\u2580\u2580\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2584 \u2580\u2588 \u2588 \u2580\u2580\u2580\u2580\u2580 \u2503\n// \u2503 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2588\u2588\u2580\u2580 \u2584\u2584\u2584\u2584\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584 \u2503\n// \u2503 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2580\u2588\u2584 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2503\n// \u2523\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252B\n// \u2503 Copyright (c) 2017, the Perspective Authors. \u2503\n// \u2503 \u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C \u2503\n// \u2503 This file is part of the Perspective library, distributed under the terms \u2503\n// \u2503 of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). \u2503\n// \u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u251B\n\nimport * as perspective_server from \"./perspective-server.poly.ts\";\nexport type * from \"../../../dist/wasm/perspective-js.js\";\nimport type * as perspective_server_t from \"@perspective-dev/server/dist/wasm/perspective-server.js\";\n\nexport type PspPtr = BigInt | number;\nexport type EmscriptenServer = bigint | number;\n\nexport async function compile_perspective(\n wasmBinary: ArrayBuffer,\n): Promise<perspective_server_t.MainModule> {\n const module = await perspective_server.default({\n locateFile(x: any) {\n return x;\n },\n instantiateWasm: async (\n imports: any,\n receive: (_: WebAssembly.Instance) => void,\n ) => {\n imports[\"env\"] = {\n ...imports[\"env\"],\n psp_stack_trace() {\n const str = Error().stack || \"\";\n const textEncoder = new TextEncoder();\n const bytes = textEncoder.encode(str);\n const ptr = module._psp_alloc(\n module._psp_is_memory64()\n ? (BigInt(bytes.byteLength + 1) as any as number)\n : bytes.byteLength + 1,\n );\n\n module.HEAPU8.set(bytes, Number(ptr));\n module.HEAPU8[Number(ptr) + bytes.byteLength] = 0;\n return ptr;\n },\n psp_heap_size() {\n if (module._psp_is_memory64()) {\n return BigInt(module.HEAPU8.buffer.byteLength);\n } else {\n return module.HEAPU8.buffer.byteLength;\n }\n },\n };\n\n const webasm = await WebAssembly.instantiate(wasmBinary, imports);\n receive(webasm.instance);\n return webasm.instance.exports;\n },\n });\n\n return module;\n}\n", "// \u250F\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n// \u2503 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588\u2584 \u2580\u2588\u2588\u2588 \u2588 \u2503\n// \u2503 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2584\u2584\u2584\u2584\u2584 \u2584\u2584\u2584\u2584\u2584\u2588 \u2580\u2580\u2580\u2580\u2580\u2588\u2580\u2580\u2580\u2580\u2580 \u2588 \u2580\u2580\u2580\u2580\u2580\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2584 \u2580\u2588 \u2588 \u2580\u2580\u2580\u2580\u2580 \u2503\n// \u2503 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2588\u2588\u2580\u2580 \u2584\u2584\u2584\u2584\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584 \u2503\n// \u2503 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2580\u2588\u2584 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2503\n// \u2523\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252B\n// \u2503 Copyright (c) 2017, the Perspective Authors. \u2503\n// \u2503 \u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C \u2503\n// \u2503 This file is part of the Perspective library, distributed under the terms \u2503\n// \u2503 of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). \u2503\n// \u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u251B\n\nimport {\n PerspectiveSession,\n PerspectiveServer,\n PerspectivePollThread,\n} from \"./wasm/engine.ts\";\nimport { compile_perspective } from \"./wasm/emscripten_api.ts\";\n\nlet GLOBAL_SERVER: PerspectiveServer;\nlet POLL_THREAD: PerspectivePollThread;\n\nfunction bindPort(e: MessageEvent) {\n const port = e.ports[0];\n let session: PerspectiveSession;\n port.addEventListener(\"message\", async (msg) => {\n if (msg.data.cmd === \"init\") {\n const id = msg.data.id;\n if (!GLOBAL_SERVER) {\n const module = await compile_perspective(msg.data.args[0]);\n GLOBAL_SERVER = new PerspectiveServer(module, {\n on_poll_request: () => POLL_THREAD.on_poll_request(),\n });\n\n POLL_THREAD = new PerspectivePollThread(GLOBAL_SERVER);\n }\n\n session = GLOBAL_SERVER.make_session(async (resp) => {\n const f = resp.slice().buffer;\n port.postMessage(f, { transfer: [f] });\n });\n\n port.postMessage({ id });\n } else {\n await session.handle_request(new Uint8Array(msg.data));\n }\n });\n\n port.start();\n}\n\n// @ts-expect-error wrong scope\nself.addEventListener(\"connect\", bindPort);\nself.addEventListener(\"message\", bindPort);\n"],
|
|
5
|
-
"mappings": "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
|
|
6
|
-
"names": ["PerspectivePollThread", "server", "resolve", "reject", "PerspectiveServer", "module", "options", "callback", "client_id", "PerspectiveSession", "polled", "decode_api_responses", "msg", "mod", "client_map", "on_poll_request", "view", "ptr", "convert_typed_array_to_pointer", "viewPtr", "core", "array", "is_64", "response", "num_msgs", "msgs_ptr", "messages", "i", "data_ptr", "data_len", "data", "out", "err", "UTF8Decoder", "printCharBuffers", "UTF8ArrayToString", "heapOrArray", "idx", "maxBytesToRead", "endIdx", "endPtr", "printChar", "stream", "curr", "buffer", "perspective_server_poly_default", "obj", "psp_module", "is_memory64", "wasm_memory", "module", "args", "ex", "e", "clk_id", "ignored_precision", "ptime", "now", "nsec", "HEAP64", "memoryIndex", "fd", "iov", "iovcnt", "pnum", "HEAPU8", "num", "HEAPU64", "i", "ptr", "len", "j", "HEAPU32", "x", "instance", "extensions", "name", "func", "compile_perspective", "wasmBinary", "module", "perspective_server_poly_default", "x", "imports", "receive", "str", "bytes", "ptr", "webasm", "GLOBAL_SERVER", "POLL_THREAD", "
|
|
4
|
+
"sourcesContent": ["// \u250F\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n// \u2503 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588\u2584 \u2580\u2588\u2588\u2588 \u2588 \u2503\n// \u2503 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2584\u2584\u2584\u2584\u2584 \u2584\u2584\u2584\u2584\u2584\u2588 \u2580\u2580\u2580\u2580\u2580\u2588\u2580\u2580\u2580\u2580\u2580 \u2588 \u2580\u2580\u2580\u2580\u2580\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2584 \u2580\u2588 \u2588 \u2580\u2580\u2580\u2580\u2580 \u2503\n// \u2503 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2588\u2588\u2580\u2580 \u2584\u2584\u2584\u2584\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584 \u2503\n// \u2503 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2580\u2588\u2584 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2503\n// \u2523\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252B\n// \u2503 Copyright (c) 2017, the Perspective Authors. \u2503\n// \u2503 \u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C \u2503\n// \u2503 This file is part of the Perspective library, distributed under the terms \u2503\n// \u2503 of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). \u2503\n// \u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u251B\n\nimport type { MainModule } from \"@perspective-dev/server/dist/wasm/perspective-server.js\";\nimport type { EmscriptenServer, PspPtr } from \"./emscripten_api.ts\";\n\nexport type ApiResponse = {\n client_id: number;\n data: Uint8Array;\n};\n\nexport interface PerspectiveServerOptions {\n on_poll_request?: (x: PerspectiveServer) => Promise<void>;\n}\n\nexport class PerspectivePollThread {\n private poll_handle?: Promise<void>;\n private server: PerspectiveServer;\n constructor(server: PerspectiveServer) {\n this.server = server;\n }\n\n private set_poll_handle() {\n this.poll_handle = new Promise((resolve, reject) =>\n setTimeout(() =>\n this.server\n .poll()\n .then(resolve)\n .catch(reject)\n .finally(() => {\n this.poll_handle = undefined;\n }),\n ),\n );\n\n return this.poll_handle;\n }\n\n async on_poll_request() {\n if (!this.poll_handle) {\n await this.set_poll_handle();\n } else {\n await this.poll_handle.then(() => {\n if (!this.poll_handle) {\n return this.set_poll_handle();\n }\n });\n }\n }\n}\n\nexport class PerspectiveServer {\n clients: Map<number, (buffer: Uint8Array) => Promise<void>>;\n server: EmscriptenServer;\n module: MainModule;\n on_poll_request?: (x: PerspectiveServer) => Promise<void>;\n constructor(module: MainModule, options?: PerspectiveServerOptions) {\n this.clients = new Map();\n this.module = module;\n this.on_poll_request = options?.on_poll_request;\n this.server = module._psp_new_server(\n !!options?.on_poll_request ? 1 : 0,\n ) as EmscriptenServer;\n }\n\n /**\n * Helper function to create server emitter/receiver pairs\n */\n make_session(\n callback: (buffer: Uint8Array) => Promise<void>,\n ): PerspectiveSession {\n const client_id = this.module._psp_new_session(this.server as any);\n this.clients.set(client_id, callback);\n return new PerspectiveSession(\n this.module,\n this.server,\n client_id,\n this.clients,\n this.on_poll_request && (() => this.on_poll_request!(this)),\n );\n }\n\n async poll() {\n const polled = this.module._psp_poll(this.server as any);\n await decode_api_responses(\n this.module,\n polled,\n async (msg: ApiResponse) => {\n await this.clients.get(msg.client_id)!(msg.data);\n },\n );\n }\n\n delete() {\n this.module._psp_delete_server(this.server as any);\n }\n}\n\nexport class PerspectiveSession {\n constructor(\n private mod: MainModule,\n private server: EmscriptenServer,\n private client_id: number,\n private client_map: Map<number, (buffer: Uint8Array) => Promise<void>>,\n private on_poll_request?: () => Promise<void>,\n ) {}\n\n async handle_request(view: Uint8Array) {\n const ptr = await convert_typed_array_to_pointer(\n this.mod,\n view,\n async (viewPtr) => {\n return this.mod._psp_handle_request(\n this.server as any,\n this.client_id,\n viewPtr as any,\n this.mod._psp_is_memory64()\n ? (BigInt(view.byteLength) as any as number)\n : (view.byteLength as any),\n );\n },\n );\n\n await decode_api_responses(this.mod, ptr, async (msg: ApiResponse) => {\n await this.client_map.get(msg.client_id)!(msg.data);\n });\n\n if (this.on_poll_request) {\n await this.on_poll_request();\n } else {\n await this.poll();\n }\n }\n\n private async poll() {\n const polled = this.mod._psp_poll(this.server as any);\n await decode_api_responses(\n this.mod,\n polled,\n async (msg: ApiResponse) => {\n if (msg.client_id === 0) {\n await this.client_map.get(this.client_id)!(msg.data);\n } else {\n await this.client_map.get(msg.client_id)!(msg.data);\n }\n },\n );\n }\n\n close() {\n this.mod._psp_close_session(this.server as any, this.client_id);\n }\n}\n\nasync function convert_typed_array_to_pointer(\n core: MainModule,\n array: Uint8Array,\n callback: (_: PspPtr) => Promise<PspPtr>,\n): Promise<PspPtr> {\n const ptr = core._psp_alloc(\n core._psp_is_memory64()\n ? (BigInt(array.byteLength) as any as number)\n : (array.byteLength as any),\n );\n\n core.HEAPU8.set(array, Number(ptr));\n const msg = await callback(ptr);\n core._psp_free(ptr);\n return msg;\n}\n\n/**\n * Convert a pointer to WASM memory into an `ApiResponse[]`, via a custom\n * encoding.\n *\n * @param core The emscripten API\n * @param ptr A pointer to a fixed-sized struct representing a set of\n * `proto::Resp` payloads, encoded as a length-prefixed array of\n * (char* data, u32_t len, u32_t client_id) tuples:\n *\n * ```text\n * N data length client_id data length client_id\n * +-------------------------------------------------------------+\n * | 2 | 0xabc | 9 | 0 | 0xdef | 12 | 0 |\n * +-------------------------------------------------------------+\n * | |\n * | +-------------+ | +----------------+\n * +--| \"Test Data\" | +--| \"Hello, World\" |\n * +-------------+ +----------------+\n * ```\n *\n * @param callback A callback to which is passed the responses. THe responses\n * must be fully processed or copied before the callback returns, as it\n * references memory on the wasm stack.\n */\nasync function decode_api_responses(\n core: MainModule,\n ptr: PspPtr,\n callback: (_: ApiResponse) => Promise<void>,\n) {\n const is_64 = core._psp_is_memory64();\n const response = new DataView(\n core.HEAPU8.buffer,\n Number(ptr),\n is_64 ? 12 : 8,\n );\n\n const num_msgs = response.getUint32(0, true);\n const msgs_ptr = is_64\n ? response.getBigInt64(4, true)\n : response.getUint32(4, true);\n\n const messages = new DataView(\n core.HEAPU8.buffer,\n Number(msgs_ptr),\n num_msgs * (is_64 ? 16 : 12),\n );\n\n try {\n for (let i = 0; i < num_msgs; i++) {\n const [data_ptr, data_len, client_id] = is_64\n ? [\n messages.getBigInt64(i * 16, true),\n messages.getInt32(i * 16 + 8, true),\n messages.getInt32(i * 16 + 12, true),\n ]\n : [\n messages.getInt32(i * 12, true),\n messages.getInt32(i * 12 + 4, true),\n messages.getInt32(i * 12 + 8, true),\n ];\n\n const data = new Uint8Array(\n core.HEAPU8.buffer,\n Number(data_ptr),\n data_len,\n );\n\n const resp = { client_id, data };\n await callback(resp);\n }\n } finally {\n for (let i = 0; i < num_msgs; i++) {\n const data_ptr = is_64\n ? messages.getBigInt64(i * 16, true)\n : messages.getInt32(i * 12, true);\n\n core._psp_free(data_ptr as any);\n }\n\n core._psp_free(\n is_64\n ? (BigInt(messages.byteOffset) as any as number)\n : (messages.byteOffset as any),\n );\n core._psp_free(\n is_64\n ? (BigInt(response.byteOffset) as any as number)\n : (response.byteOffset as any),\n );\n }\n}\n", "// \u250F\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n// \u2503 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588\u2584 \u2580\u2588\u2588\u2588 \u2588 \u2503\n// \u2503 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2584\u2584\u2584\u2584\u2584 \u2584\u2584\u2584\u2584\u2584\u2588 \u2580\u2580\u2580\u2580\u2580\u2588\u2580\u2580\u2580\u2580\u2580 \u2588 \u2580\u2580\u2580\u2580\u2580\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2584 \u2580\u2588 \u2588 \u2580\u2580\u2580\u2580\u2580 \u2503\n// \u2503 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2588\u2588\u2580\u2580 \u2584\u2584\u2584\u2584\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584 \u2503\n// \u2503 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2580\u2588\u2584 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2503\n// \u2523\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252B\n// \u2503 Copyright (c) 2017, the Perspective Authors. \u2503\n// \u2503 \u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C \u2503\n// \u2503 This file is part of the Perspective library, distributed under the terms \u2503\n// \u2503 of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). \u2503\n// \u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u251B\n\nimport type * as perspective_server from \"@perspective-dev/server/dist/wasm/perspective-server.js\";\n\ntype PspPtr = bigint | number;\ntype EmscriptenServer = number;\n\nvar out = console.log.bind(console);\nvar err = console.error.bind(console);\n\nvar UTF8Decoder = new TextDecoder(\"utf8\");\nvar printCharBuffers: Array<Array<number> | null> = [null, [], []];\n\nfunction UTF8ArrayToString(\n heapOrArray: Uint8Array | Array<number>,\n idx = 0,\n maxBytesToRead = NaN,\n) {\n var endIdx = idx + maxBytesToRead;\n var endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr;\n return UTF8Decoder.decode(\n heapOrArray instanceof Uint8Array\n ? heapOrArray.subarray(idx, endPtr)\n : new Uint8Array(heapOrArray.slice(idx, endPtr)),\n );\n}\n\nfunction printChar(stream: number, curr: number) {\n var buffer: Array<number> = printCharBuffers[stream]!;\n if (curr === 0 || curr === 10) {\n (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));\n buffer.length = 0;\n } else {\n buffer.push(curr);\n }\n}\n\nexport default async function (obj: any) {\n let psp_module: perspective_server.MainModule;\n let is_memory64 = false;\n let wasm_memory: WebAssembly.Memory;\n const module = {\n HaveOffsetConverter() {\n console.error(\"HaveOffsetConverter\");\n },\n __syscall_ftruncate64(...args: any[]) {\n console.error(\"__syscall_frtuncate64\", args);\n },\n __syscall_getdents64(...args: any[]) {\n console.error(\"__syscall_frtuncate64\", args);\n },\n __syscall_unlinkat(...args: any[]) {\n console.error(\"__syscall_frtuncate64\", args);\n },\n __throw_exception_with_stack_trace(ex: number) {\n // @ts-ignore\n const e = new WebAssembly.Exception(\n (psp_module as any).__cpp_exception,\n [ex],\n {\n traceStack: true,\n },\n );\n\n // e.message = getExceptionMessage(e);\n e.message = \"Unexpected internal error\";\n throw e;\n },\n clock_time_get(\n clk_id: number,\n ignored_precision: bigint,\n ptime: bigint | number,\n ) {\n if (is_memory64) {\n ptime = ptime as bigint;\n ptime = Number(ptime);\n if (\n !(clk_id == 0 || clk_id == 1 || clk_id == 2 || clk_id == 3)\n ) {\n return 28;\n }\n var now;\n\n if (clk_id === 0) {\n now = Date.now();\n } else {\n now = performance.now();\n }\n\n const nsec = Math.round(now * 1000 * 1000);\n const HEAP64 = new BigInt64Array(wasm_memory.buffer);\n HEAP64[ptime / 8] = BigInt(nsec);\n return 0;\n } else {\n ptime = ptime as number;\n ptime >>>= 0;\n if (\n !(clk_id == 0 || clk_id == 1 || clk_id == 2 || clk_id == 3)\n ) {\n return 28;\n }\n\n var now;\n if (clk_id === 0) {\n now = Date.now();\n } else {\n now = performance.now();\n }\n\n var nsec = Math.round(now * 1e6);\n const HEAP64 = new BigInt64Array(wasm_memory.buffer);\n HEAP64[ptime >>> 3] = BigInt(nsec);\n return 0;\n }\n },\n emscripten_asm_const_int(...args: any[]) {\n return 0;\n },\n emscripten_notify_memory_growth(memoryIndex: bigint | number) {\n if (is_memory64) {\n memoryIndex = Number(memoryIndex as bigint);\n } else {\n memoryIndex = memoryIndex as number;\n memoryIndex >>>= 0;\n }\n\n if (memoryIndex != 0) {\n console.error(\"abort\");\n }\n },\n environ_get(...args: any[]) {\n return 0;\n },\n environ_sizes_get(...args: any[]) {\n return 0;\n },\n fd_close(...args: any[]) {\n console.error(\"fd_close\", args);\n return 0;\n },\n fd_read(...args: any[]) {\n console.error(\"fd_read\", args);\n return 0;\n },\n fd_seek(...args: any[]) {\n console.error(\"fs_seek\", args);\n return 0;\n },\n fd_write(\n fd: number,\n iov: number | bigint,\n iovcnt: number | bigint,\n pnum: number | bigint,\n ) {\n const HEAPU8 = new Uint8Array(wasm_memory.buffer);\n\n if (!is_memory64) {\n iov = iov as number;\n iovcnt = iovcnt as number;\n pnum = pnum as number;\n iov >>>= 0;\n iovcnt >>>= 0;\n pnum >>>= 0;\n let num = 0;\n const HEAPU32 = new Uint32Array(wasm_memory.buffer);\n\n for (let i = 0; i < iovcnt; i++) {\n let ptr = HEAPU32[(iov >>> 2) >>> 0];\n let len = HEAPU32[((iov + 4) >>> 2) >>> 0];\n iov += 8;\n for (let j = 0; j < len; j++) {\n printChar(fd, HEAPU8[(ptr + j) >>> 0]);\n }\n num += len;\n }\n HEAPU32[(pnum >>> 2) >>> 0] = num;\n return 0;\n } else {\n iov = Number(iov as bigint);\n iovcnt = Number(iovcnt as bigint);\n pnum = Number(pnum as bigint);\n let num = 0;\n const HEAPU64 = new BigUint64Array(wasm_memory.buffer);\n\n for (let i = 0; i < iovcnt; i++) {\n let ptr = Number(HEAPU64[iov / 8]);\n let len = Number(HEAPU64[(iov + 8) / 8]);\n iov += 16;\n for (let j = 0; j < len; j++) {\n printChar(fd, HEAPU8[ptr + j]);\n }\n\n num += len;\n }\n HEAPU64[pnum / 8] = BigInt(num);\n return 0;\n }\n },\n proc_exit(e: number) {\n console.error(\"proc_exit\", e);\n return 0;\n },\n };\n\n const x = await obj.instantiateWasm(\n { env: module, wasi_snapshot_preview1: module },\n (instance: WebAssembly.Instance) => {\n psp_module =\n instance.exports as any as perspective_server.MainModule;\n\n // @ts-ignore\n is_memory64 = !!psp_module.psp_is_memory64();\n wasm_memory = instance.exports.memory as WebAssembly.Memory;\n\n // @ts-ignore\n psp_module._initialize();\n },\n );\n\n const extensions: Record<string, any> = {};\n for (const [name, func] of Object.entries(x)) {\n extensions[`_${name}`] = func;\n }\n\n return {\n ...x,\n ...extensions,\n get HEAPU8() {\n // @ts-ignore\n return new Uint8Array(wasm_memory.buffer);\n },\n };\n}\n", "// \u250F\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n// \u2503 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588\u2584 \u2580\u2588\u2588\u2588 \u2588 \u2503\n// \u2503 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2584\u2584\u2584\u2584\u2584 \u2584\u2584\u2584\u2584\u2584\u2588 \u2580\u2580\u2580\u2580\u2580\u2588\u2580\u2580\u2580\u2580\u2580 \u2588 \u2580\u2580\u2580\u2580\u2580\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2584 \u2580\u2588 \u2588 \u2580\u2580\u2580\u2580\u2580 \u2503\n// \u2503 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2588\u2588\u2580\u2580 \u2584\u2584\u2584\u2584\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584 \u2503\n// \u2503 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2580\u2588\u2584 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2503\n// \u2523\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252B\n// \u2503 Copyright (c) 2017, the Perspective Authors. \u2503\n// \u2503 \u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C \u2503\n// \u2503 This file is part of the Perspective library, distributed under the terms \u2503\n// \u2503 of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). \u2503\n// \u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u251B\n\nimport * as perspective_server from \"./perspective-server.poly.ts\";\nexport type * from \"../../../dist/wasm/perspective-js.js\";\nimport type * as perspective_server_t from \"@perspective-dev/server/dist/wasm/perspective-server.js\";\n\nexport type PspPtr = BigInt | number;\nexport type EmscriptenServer = bigint | number;\n\nexport async function compile_perspective(\n wasmBinary: ArrayBuffer,\n): Promise<perspective_server_t.MainModule> {\n const module = await perspective_server.default({\n locateFile(x: any) {\n return x;\n },\n instantiateWasm: async (\n imports: any,\n receive: (_: WebAssembly.Instance) => void,\n ) => {\n imports[\"env\"] = {\n ...imports[\"env\"],\n psp_stack_trace() {\n const str = Error().stack || \"\";\n const textEncoder = new TextEncoder();\n const bytes = textEncoder.encode(str);\n const ptr = module._psp_alloc(\n module._psp_is_memory64()\n ? (BigInt(bytes.byteLength + 1) as any as number)\n : bytes.byteLength + 1,\n );\n\n module.HEAPU8.set(bytes, Number(ptr));\n module.HEAPU8[Number(ptr) + bytes.byteLength] = 0;\n return ptr;\n },\n psp_heap_size() {\n if (module._psp_is_memory64()) {\n return BigInt(module.HEAPU8.buffer.byteLength);\n } else {\n return module.HEAPU8.buffer.byteLength;\n }\n },\n };\n\n const webasm = await WebAssembly.instantiate(wasmBinary, imports);\n receive(webasm.instance);\n return webasm.instance.exports;\n },\n });\n\n return module;\n}\n", "// \u250F\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n// \u2503 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588\u2584 \u2580\u2588\u2588\u2588 \u2588 \u2503\n// \u2503 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2584\u2584\u2584\u2584\u2584 \u2584\u2584\u2584\u2584\u2584\u2588 \u2580\u2580\u2580\u2580\u2580\u2588\u2580\u2580\u2580\u2580\u2580 \u2588 \u2580\u2580\u2580\u2580\u2580\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2584 \u2580\u2588 \u2588 \u2580\u2580\u2580\u2580\u2580 \u2503\n// \u2503 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2580\u2580\u2580\u2580 \u2588\u2580\u2588\u2588\u2580\u2580 \u2584\u2584\u2584\u2584\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2584\u2584\u2584\u2584\u2584\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2584\u2584\u2584\u2584\u2584 \u2503\n// \u2503 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2580\u2588\u2584 \u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588 \u2588\u2588\u2588\u258C\u2590\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2584 \u2588 \u2503\n// \u2523\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252B\n// \u2503 Copyright (c) 2017, the Perspective Authors. \u2503\n// \u2503 \u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C\u254C \u2503\n// \u2503 This file is part of the Perspective library, distributed under the terms \u2503\n// \u2503 of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). \u2503\n// \u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u251B\n\nimport {\n PerspectiveSession,\n PerspectiveServer,\n PerspectivePollThread,\n} from \"./wasm/engine.ts\";\nimport { compile_perspective } from \"./wasm/emscripten_api.ts\";\n\nlet GLOBAL_SERVER: PerspectiveServer;\nlet POLL_THREAD: PerspectivePollThread;\n\nlet SESSION: PerspectiveSession | undefined;\n\nasync function handleMessage(this: MessagePort, msg: MessageEvent) {\n if (msg.data.cmd === \"init\") {\n const id = msg.data.id;\n if (!GLOBAL_SERVER) {\n const module = await compile_perspective(msg.data.args[0]);\n\n GLOBAL_SERVER = new PerspectiveServer(module, {\n on_poll_request: () => POLL_THREAD.on_poll_request(),\n });\n\n POLL_THREAD = new PerspectivePollThread(GLOBAL_SERVER);\n }\n\n SESSION = GLOBAL_SERVER.make_session(async (resp) => {\n const f = resp.slice().buffer;\n this.postMessage(f, { transfer: [f] });\n });\n\n this.postMessage({ id });\n } else {\n if (SESSION) {\n await SESSION?.handle_request(new Uint8Array(msg.data));\n } else {\n throw new Error(\"No session\");\n }\n }\n}\n\nfunction bindPortSharedWorker(msg: MessageEvent) {\n const port = msg.ports[0];\n port.addEventListener(\"message\", handleMessage.bind(port));\n port.start();\n}\n\n// @ts-expect-error wrong scope\nself.addEventListener(\"connect\", bindPortSharedWorker);\nself.addEventListener(\n \"message\",\n handleMessage.bind(self as unknown as MessagePort),\n);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["PerspectivePollThread", "server", "resolve", "reject", "PerspectiveServer", "module", "options", "callback", "client_id", "PerspectiveSession", "polled", "decode_api_responses", "msg", "mod", "client_map", "on_poll_request", "view", "ptr", "convert_typed_array_to_pointer", "viewPtr", "core", "array", "is_64", "response", "num_msgs", "msgs_ptr", "messages", "i", "data_ptr", "data_len", "data", "out", "err", "UTF8Decoder", "printCharBuffers", "UTF8ArrayToString", "heapOrArray", "idx", "maxBytesToRead", "endIdx", "endPtr", "printChar", "stream", "curr", "buffer", "perspective_server_poly_default", "obj", "psp_module", "is_memory64", "wasm_memory", "module", "args", "ex", "e", "clk_id", "ignored_precision", "ptime", "now", "nsec", "HEAP64", "memoryIndex", "fd", "iov", "iovcnt", "pnum", "HEAPU8", "num", "HEAPU64", "i", "ptr", "len", "j", "HEAPU32", "x", "instance", "extensions", "name", "func", "compile_perspective", "wasmBinary", "module", "perspective_server_poly_default", "x", "imports", "receive", "str", "bytes", "ptr", "webasm", "GLOBAL_SERVER", "POLL_THREAD", "SESSION", "handleMessage", "msg", "id", "module", "compile_perspective", "PerspectiveServer", "PerspectivePollThread", "resp", "f", "bindPortSharedWorker", "port"]
|
|
7
7
|
}
|
package/dist/cdn/perspective.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
2
|
-
${n.stack}`:r}function de(n,e){if(!(n instanceof e))throw new Error(`expected instance of ${e.name}`)}var I=128;function X(n){if(I==1)throw new Error("out of js stack");return d[--I]=n,I}function q(){_.init()}function pe(n,e){let t=_.__wbindgen_export_5(n,e);return a(t)}function ye(n,e,t){_.__wbindgen_export_6(n,e,i(t))}function me(n,e,t,r){_.__wbindgen_export_7(n,e,i(t),i(r))}var N=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_client_free(n>>>0,1)),O=class n{static __wrap(e){e=e>>>0;let t=Object.create(n.prototype);return t.__wbg_ptr=e,N.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,N.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_client_free(e,0)}__getClassname(){let e,t;try{let c=_.__wbindgen_add_to_stack_pointer(-16);_.client___getClassname(c,this.__wbg_ptr);var r=l().getInt32(c+0,!0),s=l().getInt32(c+4,!0);return e=r,t=s,w(r,s)}finally{_.__wbindgen_add_to_stack_pointer(16),_.__wbindgen_export_3(e,t,1)}}constructor(e,t){try{let u=_.__wbindgen_add_to_stack_pointer(-16);_.client_new(u,i(e),f(t)?0:i(t));var r=l().getInt32(u+0,!0),s=l().getInt32(u+4,!0),c=l().getInt32(u+8,!0);if(c)throw a(s);return this.__wbg_ptr=r>>>0,N.register(this,this.__wbg_ptr,this),this}finally{_.__wbindgen_add_to_stack_pointer(16)}}new_proxy_session(e){try{let t=_.client_new_proxy_session(this.__wbg_ptr,X(e));return B.__wrap(t)}finally{d[I++]=void 0}}handle_response(e){let t=_.client_handle_response(this.__wbg_ptr,i(e));return a(t)}handle_error(e,t){let r=x(e,_.__wbindgen_export_0,_.__wbindgen_export_1),s=y,c=_.client_handle_error(this.__wbg_ptr,r,s,f(t)?0:i(t));return a(c)}on_error(e){let t=_.client_on_error(this.__wbg_ptr,i(e));return a(t)}table(e,t){let r=_.client_table(this.__wbg_ptr,i(e),f(t)?0:i(t));return a(r)}terminate(){try{let s=_.__wbindgen_add_to_stack_pointer(-16);_.client_terminate(s,this.__wbg_ptr);var e=l().getInt32(s+0,!0),t=l().getInt32(s+4,!0),r=l().getInt32(s+8,!0);if(r)throw a(t);return a(e)}finally{_.__wbindgen_add_to_stack_pointer(16)}}open_table(e){let t=x(e,_.__wbindgen_export_0,_.__wbindgen_export_1),r=y,s=_.client_open_table(this.__wbg_ptr,t,r);return a(s)}get_hosted_table_names(){let e=_.client_get_hosted_table_names(this.__wbg_ptr);return a(e)}on_hosted_tables_update(e){let t=_.client_on_hosted_tables_update(this.__wbg_ptr,i(e));return a(t)}remove_hosted_tables_update(e){let t=_.client_remove_hosted_tables_update(this.__wbg_ptr,e);return a(t)}system_info(){let e=_.client_system_info(this.__wbg_ptr);return a(e)}},T=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_proxysession_free(n>>>0,1)),B=class n{static __wrap(e){e=e>>>0;let t=Object.create(n.prototype);return t.__wbg_ptr=e,T.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,T.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_proxysession_free(e,0)}constructor(e,t){try{de(e,O);let r=_.client_new_proxy_session(e.__wbg_ptr,X(t));return this.__wbg_ptr=r>>>0,T.register(this,this.__wbg_ptr,this),this}finally{d[I++]=void 0}}handle_request(e){let t=_.proxysession_handle_request(this.__wbg_ptr,i(e));return a(t)}close(){let e=this.__destroy_into_raw(),t=_.proxysession_close(e);return a(t)}},V=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_table_free(n>>>0,1)),L=class n{static __wrap(e){e=e>>>0;let t=Object.create(n.prototype);return t.__wbg_ptr=e,V.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,V.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_table_free(e,0)}__getClassname(){let e,t;try{let c=_.__wbindgen_add_to_stack_pointer(-16);_.table___getClassname(c,this.__wbg_ptr);var r=l().getInt32(c+0,!0),s=l().getInt32(c+4,!0);return e=r,t=s,w(r,s)}finally{_.__wbindgen_add_to_stack_pointer(16),_.__wbindgen_export_3(e,t,1)}}get_index(){let e=_.table_get_index(this.__wbg_ptr);return a(e)}get_client(){let e=_.table_get_client(this.__wbg_ptr);return a(e)}get_name(){let e=_.table_get_name(this.__wbg_ptr);return a(e)}get_limit(){let e=_.table_get_limit(this.__wbg_ptr);return a(e)}clear(){let e=_.table_clear(this.__wbg_ptr);return a(e)}delete(e){let t=this.__destroy_into_raw(),r=_.table_delete(t,f(e)?0:i(e));return a(r)}size(){let e=_.table_size(this.__wbg_ptr);return a(e)}schema(){let e=_.table_schema(this.__wbg_ptr);return a(e)}columns(){let e=_.table_columns(this.__wbg_ptr);return a(e)}make_port(){let e=_.table_make_port(this.__wbg_ptr);return a(e)}on_delete(e){let t=_.table_on_delete(this.__wbg_ptr,i(e));return a(t)}remove_delete(e){let t=_.table_remove_delete(this.__wbg_ptr,e);return a(t)}remove(e,t){let r=_.table_remove(this.__wbg_ptr,i(e),f(t)?0:i(t));return a(r)}replace(e,t){let r=_.table_replace(this.__wbg_ptr,i(e),f(t)?0:i(t));return a(r)}update(e,t){let r=_.table_update(this.__wbg_ptr,i(e),f(t)?0:i(t));return a(r)}view(e){let t=_.table_view(this.__wbg_ptr,f(e)?0:i(e));return a(t)}validate_expressions(e){let t=_.table_validate_expressions(this.__wbg_ptr,i(e));return a(t)}},J=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_view_free(n>>>0,1)),P=class n{static __wrap(e){e=e>>>0;let t=Object.create(n.prototype);return t.__wbg_ptr=e,J.register(t,t.__wbg_ptr,t),t}static __unwrap(e){return e instanceof n?e.__destroy_into_raw():0}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,J.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_view_free(e,0)}__get_model(){let e=_.view___get_model(this.__wbg_ptr);return n.__wrap(e)}column_paths(e){let t=_.view_column_paths(this.__wbg_ptr,f(e)?0:i(e));return a(t)}delete(){let e=this.__destroy_into_raw(),t=_.view_delete(e);return a(t)}dimensions(){let e=_.view_dimensions(this.__wbg_ptr);return a(e)}expression_schema(){let e=_.view_expression_schema(this.__wbg_ptr);return a(e)}get_config(){let e=_.view_get_config(this.__wbg_ptr);return a(e)}get_min_max(e){let t=x(e,_.__wbindgen_export_0,_.__wbindgen_export_1),r=y,s=_.view_get_min_max(this.__wbg_ptr,t,r);return a(s)}num_rows(){let e=_.view_num_rows(this.__wbg_ptr);return a(e)}schema(){let e=_.view_schema(this.__wbg_ptr);return a(e)}to_arrow(e){let t=_.view_to_arrow(this.__wbg_ptr,f(e)?0:i(e));return a(t)}to_columns_string(e){let t=_.view_to_columns_string(this.__wbg_ptr,f(e)?0:i(e));return a(t)}to_columns(e){let t=_.view_to_columns(this.__wbg_ptr,f(e)?0:i(e));return a(t)}to_json_string(e){let t=_.view_to_json_string(this.__wbg_ptr,f(e)?0:i(e));return a(t)}to_json(e){let t=_.view_to_json(this.__wbg_ptr,f(e)?0:i(e));return a(t)}to_ndjson(e){let t=_.view_to_ndjson(this.__wbg_ptr,f(e)?0:i(e));return a(t)}to_csv(e){let t=_.view_to_csv(this.__wbg_ptr,f(e)?0:i(e));return a(t)}on_update(e,t){let r=_.view_on_update(this.__wbg_ptr,i(e),f(t)?0:i(t));return a(r)}remove_update(e){let t=_.view_remove_update(this.__wbg_ptr,e);return a(t)}on_delete(e){let t=_.view_on_delete(this.__wbg_ptr,i(e));return a(t)}num_columns(){let e=_.view_num_columns(this.__wbg_ptr);return a(e)}remove_delete(e){let t=_.view_remove_delete(this.__wbg_ptr,e);return a(t)}collapse(e){let t=_.view_collapse(this.__wbg_ptr,e);return a(t)}expand(e){let t=_.view_expand(this.__wbg_ptr,e);return a(t)}set_depth(e){let t=_.view_set_depth(this.__wbg_ptr,e);return a(t)}};async function he(n,e){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,e)}catch(r){if(n.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",r);else throw r}let t=await n.arrayBuffer();return await WebAssembly.instantiate(t,e)}else{let t=await WebAssembly.instantiate(n,e);return t instanceof WebAssembly.Instance?{instance:t,module:n}:t}}function Y(){let n={};return n.wbg={},n.wbg.__wbg_String_8f0eb39a4a4c2f66=function(e,t){let r=String(o(t)),s=x(r,_.__wbindgen_export_0,_.__wbindgen_export_1),c=y;l().setInt32(e+4,c,!0),l().setInt32(e+0,s,!0)},n.wbg.__wbg_at_7d852dd9f194d43e=function(e,t){let r=o(e).at(t);return i(r)},n.wbg.__wbg_buffer_09165b52af8c5237=function(e){let t=o(e).buffer;return i(t)},n.wbg.__wbg_buffer_609cc3eee51ed158=function(e){let t=o(e).buffer;return i(t)},n.wbg.__wbg_call_672a4d21634d4a24=function(){return p(function(e,t){let r=o(e).call(o(t));return i(r)},arguments)},n.wbg.__wbg_call_7cccdd69e0791ae2=function(){return p(function(e,t,r){let s=o(e).call(o(t),o(r));return i(s)},arguments)},n.wbg.__wbg_call_833bed5770ea2041=function(){return p(function(e,t,r,s){let c=o(e).call(o(t),o(r),o(s));return i(c)},arguments)},n.wbg.__wbg_client_new=function(e){let t=O.__wrap(e);return i(t)},n.wbg.__wbg_debug_3cb59063b29f58c1=function(e){console.debug(o(e))},n.wbg.__wbg_debug_e17b51583ca6a632=function(e,t,r,s){console.debug(o(e),o(t),o(r),o(s))},n.wbg.__wbg_done_769e5ede4b31c67b=function(e){return o(e).done},n.wbg.__wbg_entries_3265d4158b33e5dc=function(e){let t=Object.entries(o(e));return i(t)},n.wbg.__wbg_error_1004b8c64097413f=function(e,t){console.error(o(e),o(t))},n.wbg.__wbg_error_524f506f44df1645=function(e){console.error(o(e))},n.wbg.__wbg_error_7534b8e9a36f1ab4=function(e,t){let r,s;try{r=e,s=t,console.error(w(e,t))}finally{_.__wbindgen_export_3(r,s,1)}},n.wbg.__wbg_error_80de38b3f7cc3c3c=function(e,t,r,s){console.error(o(e),o(t),o(r),o(s))},n.wbg.__wbg_from_2a5d3e218e67aa85=function(e){let t=Array.from(o(e));return i(t)},n.wbg.__wbg_getEntriesByName_2a5a14d4b09f36a4=function(e,t,r,s,c){let u=o(e).getEntriesByName(w(t,r),w(s,c));return i(u)},n.wbg.__wbg_getRandomValues_21a0191e74d0e1d3=function(){return p(function(e,t){globalThis.crypto.getRandomValues(be(e,t))},arguments)},n.wbg.__wbg_get_67b2ba62fc30de12=function(){return p(function(e,t){let r=Reflect.get(o(e),o(t));return i(r)},arguments)},n.wbg.__wbg_get_74b8744f6a23f4fa=function(e,t,r){let s=o(e)[w(t,r)];return f(s)?0:i(s)},n.wbg.__wbg_get_b9b93047fe3cf45b=function(e,t){let r=o(e)[t>>>0];return i(r)},n.wbg.__wbg_getwithrefkey_1dc361bd10053bfe=function(e,t){let r=o(e)[o(t)];return i(r)},n.wbg.__wbg_has_a5ea9117f258a0ec=function(){return p(function(e,t){return Reflect.has(o(e),o(t))},arguments)},n.wbg.__wbg_info_033d8b8a0838f1d3=function(e,t,r,s){console.info(o(e),o(t),o(r),o(s))},n.wbg.__wbg_info_3daf2e093e091b66=function(e){console.info(o(e))},n.wbg.__wbg_instanceof_ArrayBuffer_e14585432e3737fc=function(e){let t;try{t=o(e)instanceof ArrayBuffer}catch{t=!1}return t},n.wbg.__wbg_instanceof_Array_6ac07133d621675a=function(e){let t;try{t=o(e)instanceof Array}catch{t=!1}return t},n.wbg.__wbg_instanceof_Error_4d54113b22d20306=function(e){let t;try{t=o(e)instanceof Error}catch{t=!1}return t},n.wbg.__wbg_instanceof_Map_f3469ce2244d2430=function(e){let t;try{t=o(e)instanceof Map}catch{t=!1}return t},n.wbg.__wbg_instanceof_Object_7f2dcef8f78644a4=function(e){let t;try{t=o(e)instanceof Object}catch{t=!1}return t},n.wbg.__wbg_instanceof_Uint8Array_17156bcf118086a9=function(e){let t;try{t=o(e)instanceof Uint8Array}catch{t=!1}return t},n.wbg.__wbg_instanceof_Window_def73ea0955fc569=function(e){let t;try{t=o(e)instanceof Window}catch{t=!1}return t},n.wbg.__wbg_isArray_a1eab7e0d067391b=function(e){return Array.isArray(o(e))},n.wbg.__wbg_isSafeInteger_343e2beeeece1bb0=function(e){return Number.isSafeInteger(o(e))},n.wbg.__wbg_iterator_9a24c88df860dc65=function(){return i(Symbol.iterator)},n.wbg.__wbg_keys_5c77a08ddc2fb8a6=function(e){let t=Object.keys(o(e));return i(t)},n.wbg.__wbg_length_a446193dc22c12f8=function(e){return o(e).length},n.wbg.__wbg_length_e2d2a49132c1b256=function(e){return o(e).length},n.wbg.__wbg_mark_001da84b098c950f=function(){return p(function(e,t,r){o(e).mark(w(t,r))},arguments)},n.wbg.__wbg_measure_65e49f8bc0e203a8=function(){return p(function(e,t,r,s,c){o(e).measure(w(t,r),w(s,c))},arguments)},n.wbg.__wbg_message_97a2af9b89d693a3=function(e){let t=o(e).message;return i(t)},n.wbg.__wbg_new_23a2665fac83c611=function(e,t){try{var r={a:e,b:t},s=(u,b)=>{let g=r.a;r.a=0;try{return me(g,r.b,u,b)}finally{r.a=g}};let c=new Promise(s);return i(c)}finally{r.a=r.b=0}},n.wbg.__wbg_new_405e22f390576ce2=function(){let e=new Object;return i(e)},n.wbg.__wbg_new_5e0be73521bc8c17=function(){return i(new Map)},n.wbg.__wbg_new_78feb108b6472713=function(){let e=new Array;return i(e)},n.wbg.__wbg_new_8a6f238a6ece86ea=function(){let e=new Error;return i(e)},n.wbg.__wbg_new_a12002a7f91c75be=function(e){let t=new Uint8Array(o(e));return i(t)},n.wbg.__wbg_new_c68d7209be747379=function(e,t){let r=new Error(w(e,t));return i(r)},n.wbg.__wbg_newnoargs_105ed471475aaf50=function(e,t){let r=new Function(w(e,t));return i(r)},n.wbg.__wbg_newwithbyteoffsetandlength_d97e637ebe145a9a=function(e,t,r){let s=new Uint8Array(o(e),t>>>0,r>>>0);return i(s)},n.wbg.__wbg_next_25feadfc0913fea9=function(e){let t=o(e).next;return i(t)},n.wbg.__wbg_next_6574e1a8a62d1055=function(){return p(function(e){let t=o(e).next();return i(t)},arguments)},n.wbg.__wbg_now_d18023d54d4e5500=function(e){return o(e).now()},n.wbg.__wbg_parse_def2e24ef1252aff=function(){return p(function(e,t){let r=JSON.parse(w(e,t));return i(r)},arguments)},n.wbg.__wbg_performance_c185c0cdc2766575=function(e){let t=o(e).performance;return f(t)?0:i(t)},n.wbg.__wbg_push_737cfc8c1432c2c6=function(e,t){return o(e).push(o(t))},n.wbg.__wbg_queueMicrotask_6808622725a52272=function(e){let t=o(e).queueMicrotask;return i(t)},n.wbg.__wbg_queueMicrotask_ef0e86b0263a71ee=function(e){queueMicrotask(o(e))},n.wbg.__wbg_reject_b3fcf99063186ff7=function(e){let t=Promise.reject(o(e));return i(t)},n.wbg.__wbg_resolve_4851785c9c5f573d=function(e){let t=Promise.resolve(o(e));return i(t)},n.wbg.__wbg_set_37837023f3d740e8=function(e,t,r){o(e)[t>>>0]=a(r)},n.wbg.__wbg_set_3f1d0b984ed272ed=function(e,t,r){o(e)[a(t)]=a(r)},n.wbg.__wbg_set_65595bdd868b3009=function(e,t,r){o(e).set(o(t),r>>>0)},n.wbg.__wbg_set_8fc6bf8a5b1071d1=function(e,t,r){let s=o(e).set(o(t),o(r));return i(s)},n.wbg.__wbg_stack_0ed75d68575b0f3c=function(e,t){let r=o(t).stack,s=x(r,_.__wbindgen_export_0,_.__wbindgen_export_1),c=y;l().setInt32(e+4,c,!0),l().setInt32(e+0,s,!0)},n.wbg.__wbg_startTime_c051731d0a31602f=function(e){return o(e).startTime},n.wbg.__wbg_static_accessor_GLOBAL_88a902d13a557d07=function(){let e=typeof global>"u"?null:global;return f(e)?0:i(e)},n.wbg.__wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0=function(){let e=typeof globalThis>"u"?null:globalThis;return f(e)?0:i(e)},n.wbg.__wbg_static_accessor_SELF_37c5d418e4bf5819=function(){let e=typeof self>"u"?null:self;return f(e)?0:i(e)},n.wbg.__wbg_static_accessor_WINDOW_5de37043a91a9c40=function(){let e=typeof window>"u"?null:window;return f(e)?0:i(e)},n.wbg.__wbg_stringify_f7ed6987935b4a24=function(){return p(function(e){let t=JSON.stringify(o(e));return i(t)},arguments)},n.wbg.__wbg_table_new=function(e){let t=L.__wrap(e);return i(t)},n.wbg.__wbg_then_44b73946d2fb3e7d=function(e,t){let r=o(e).then(o(t));return i(r)},n.wbg.__wbg_then_48b406749878a531=function(e,t,r){let s=o(e).then(o(t),o(r));return i(s)},n.wbg.__wbg_toString_5285597960676b7b=function(e){let t=o(e).toString();return i(t)},n.wbg.__wbg_trace_d12a9ac890a2cbb8=function(e,t,r,s){console.trace(o(e),o(t),o(r),o(s))},n.wbg.__wbg_trace_e758b839df8d34f1=function(e){console.trace(o(e))},n.wbg.__wbg_value_cd1ffa7b1ab794f1=function(e){let t=o(e).value;return i(t)},n.wbg.__wbg_values_fcb8ba8c0aad8b58=function(e){let t=Object.values(o(e));return i(t)},n.wbg.__wbg_view_new=function(e){let t=P.__wrap(e);return i(t)},n.wbg.__wbg_view_unwrap=function(e){return P.__unwrap(a(e))},n.wbg.__wbg_warn_4ca3906c248c47c4=function(e){console.warn(o(e))},n.wbg.__wbg_warn_aaf1f4664a035bd6=function(e,t,r,s){console.warn(o(e),o(t),o(r),o(s))},n.wbg.__wbindgen_as_number=function(e){return+o(e)},n.wbg.__wbindgen_bigint_from_i64=function(e){return i(e)},n.wbg.__wbindgen_bigint_from_u64=function(e){let t=BigInt.asUintN(64,e);return i(t)},n.wbg.__wbindgen_bigint_get_as_i64=function(e,t){let r=o(t),s=typeof r=="bigint"?r:void 0;l().setBigInt64(e+8,f(s)?BigInt(0):s,!0),l().setInt32(e+0,!f(s),!0)},n.wbg.__wbindgen_boolean_get=function(e){let t=o(e);return typeof t=="boolean"?t?1:0:2},n.wbg.__wbindgen_cb_drop=function(e){let t=a(e).original;return t.cnt--==1?(t.a=0,!0):!1},n.wbg.__wbindgen_closure_wrapper3224=function(e,t,r){let s=ge(e,t,468,ye);return i(s)},n.wbg.__wbindgen_closure_wrapper367=function(e,t,r){let s=we(e,t,7,pe);return i(s)},n.wbg.__wbindgen_debug_string=function(e,t){let r=C(o(t)),s=x(r,_.__wbindgen_export_0,_.__wbindgen_export_1),c=y;l().setInt32(e+4,c,!0),l().setInt32(e+0,s,!0)},n.wbg.__wbindgen_error_new=function(e,t){let r=new Error(w(e,t));return i(r)},n.wbg.__wbindgen_in=function(e,t){return o(e)in o(t)},n.wbg.__wbindgen_is_bigint=function(e){return typeof o(e)=="bigint"},n.wbg.__wbindgen_is_function=function(e){return typeof o(e)=="function"},n.wbg.__wbindgen_is_object=function(e){let t=o(e);return typeof t=="object"&&t!==null},n.wbg.__wbindgen_is_string=function(e){return typeof o(e)=="string"},n.wbg.__wbindgen_is_undefined=function(e){return o(e)===void 0},n.wbg.__wbindgen_jsval_eq=function(e,t){return o(e)===o(t)},n.wbg.__wbindgen_jsval_loose_eq=function(e,t){return o(e)==o(t)},n.wbg.__wbindgen_memory=function(){let e=_.memory;return i(e)},n.wbg.__wbindgen_number_get=function(e,t){let r=o(t),s=typeof r=="number"?r:void 0;l().setFloat64(e+8,f(s)?0:s,!0),l().setInt32(e+0,!f(s),!0)},n.wbg.__wbindgen_number_new=function(e){return i(e)},n.wbg.__wbindgen_object_clone_ref=function(e){let t=o(e);return i(t)},n.wbg.__wbindgen_object_drop_ref=function(e){a(e)},n.wbg.__wbindgen_string_get=function(e,t){let r=o(t),s=typeof r=="string"?r:void 0;var c=f(s)?0:x(s,_.__wbindgen_export_0,_.__wbindgen_export_1),u=y;l().setInt32(e+4,u,!0),l().setInt32(e+0,c,!0)},n.wbg.__wbindgen_string_new=function(e,t){let r=w(e,t);return i(r)},n.wbg.__wbindgen_throw=function(e,t){throw new Error(w(e,t))},n}function Z(n,e){return _=n.exports,ee.__wbindgen_wasm_module=e,A=null,j=null,_}function ve(n){if(_!==void 0)return _;typeof n<"u"&&(Object.getPrototypeOf(n)===Object.prototype?{module:n}=n:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let e=Y();n instanceof WebAssembly.Module||(n=new WebAssembly.Module(n));let t=new WebAssembly.Instance(n,e);return Z(t,n)}async function ee(n){if(_!==void 0)return _;typeof n<"u"&&(Object.getPrototypeOf(n)===Object.prototype?{module_or_path:n}=n:console.warn("using deprecated parameters for the initialization function; pass a single object instead"));let e=Y();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n));let{instance:t,module:r}=await he(await n,e);return Z(t,r)}var F=ee;function Ae(){let n,e,t=new Promise((r,s)=>{n=r,e=s});return[n,t,e]}async function te(n,e,t,r){let s,c;async function u(){if(c?.readyState===n.CONNECTING||c?.readyState===n.OPEN){console.warn(`Already connected ${c.readyState}`);return}let[W,m,G]=Ae();c=new n(t,r),c.onopen=W,c.binaryType="arraybuffer",c.onerror=k=>{let E=k.message||"Generic Websocket Error";s.handle_error(E,u),G(E)},c.onclose=k=>{let E=`WebSocket closed ${k.code}`;s.handle_error(E,u),G(E)},c.onmessage=k=>{s.handle_response(k.data)},await m}async function b(W){if(c.readyState===n.CLOSING||c.readyState===n.CLOSED){let m=`WebSocket transport error (${c.readyState})`;throw s.handle_error(m,u),new Error(m)}else if(c.readyState===n.CONNECTING){let m=`WebSocket message dropped (${c.readyState})`;throw new Error(m)}else{let m=W.slice().buffer;c.send(m)}}async function g(){console.debug("Closing WebSocket"),c.close()}return s=new e(b,g),await u(),s}function We(){let n,e,t=new Promise((r,s)=>{n=r,e=s});return[n,t,e]}async function ke(n,e){let[t,r]=We();n.addEventListener("message",function s(c){n.removeEventListener("message",s),t(null)}),n.onmessage=function(c){n.onmessage=function(){},t(null)},n.onmessageerror=console.error,n.postMessage({cmd:"init",args:[e]},{transfer:e instanceof WebAssembly.Module?[]:[e]}),await r}async function ne(n,e,t){let[r,s]=await Promise.all([e,t]),{Client:c}=await n,u;if(typeof SharedWorker<"u"&&s instanceof SharedWorker)u=s.port;else{s=s;let g=new MessageChannel;s.postMessage(null,[g.port2]),u=g.port1}let b=new c(async g=>{let W=g.slice().buffer;u.postMessage(W,{transfer:[W]})},async()=>{console.debug("Closing WebWorker"),u.close(),s instanceof Worker&&s.terminate()});return await ke(u,r),u.addEventListener("message",g=>{b.handle_response(g.data)}),b}async function re(n,e){let{Client:t}=await n;return await te(WebSocket,t,e)}async function se(n){let e;typeof n?.then=="function"&&(n=await n),n instanceof Response?e=await WebAssembly.instantiateStreaming(n):typeof n=="string"?e=await WebAssembly.instantiateStreaming(fetch(n)):n instanceof ArrayBuffer?e=await WebAssembly.instantiate(n):n instanceof Uint8Array?e=await WebAssembly.instantiate(n.buffer):e=n;let t=e.instance.exports,[r]=WebAssembly.Module.customSections(e.module,"psp-runtime"),[s]=WebAssembly.Module.customSections(e.module,"psp-len"),c=new DataView(s).getUint32(0,!0),u=t.resize(r.byteLength);new Uint8Array(t.memory.buffer).set(new Uint8Array(r),u);let b=t.compile(r.byteLength,c);return new Uint8Array(t.memory.buffer).slice(b,c+b)}if(typeof WebAssembly>"u")throw new Error("WebAssembly not supported.");async function D(n){n instanceof Function&&(n=await n());try{return await se(n)}catch{return console.warn("Stage 0 wasm loading failed, skipping"),new Uint8Array(n)}}var H='"use strict";(()=>{var I=Object.defineProperty;var S=(s,t,r)=>t in s?I(s,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[t]=r;var f=(s,t,r)=>S(s,typeof t!="symbol"?t+"":t,r);var v=class{constructor(t){f(this,"poll_handle");f(this,"server");this.server=t}set_poll_handle(){return this.poll_handle=new Promise((t,r)=>setTimeout(()=>this.server.poll().then(t).catch(r).finally(()=>{this.poll_handle=void 0}))),this.poll_handle}async on_poll_request(){this.poll_handle?await this.poll_handle.then(()=>{if(!this.poll_handle)return this.set_poll_handle()}):await this.set_poll_handle()}},h=class{constructor(t,r){f(this,"clients");f(this,"server");f(this,"module");f(this,"on_poll_request");this.clients=new Map,this.module=t,this.on_poll_request=r?.on_poll_request,this.server=t._psp_new_server(r?.on_poll_request?1:0)}make_session(t){let r=this.module._psp_new_session(this.server);return this.clients.set(r,t),new P(this.module,this.server,r,this.clients,this.on_poll_request&&(()=>this.on_poll_request(this)))}async poll(){let t=this.module._psp_poll(this.server);await A(this.module,t,async r=>{await this.clients.get(r.client_id)(r.data)})}delete(){this.module._psp_delete_server(this.server)}},P=class{constructor(t,r,i,a,l){this.mod=t;this.server=r;this.client_id=i;this.client_map=a;this.on_poll_request=l}async handle_request(t){let r=await H(this.mod,t,async i=>this.mod._psp_handle_request(this.server,this.client_id,i,this.mod._psp_is_memory64()?BigInt(t.byteLength):t.byteLength));await A(this.mod,r,async i=>{await this.client_map.get(i.client_id)(i.data)}),this.on_poll_request?await this.on_poll_request():await this.poll()}async poll(){let t=this.mod._psp_poll(this.server);await A(this.mod,t,async r=>{r.client_id===0?await this.client_map.get(this.client_id)(r.data):await this.client_map.get(r.client_id)(r.data)})}close(){this.mod._psp_close_session(this.server,this.client_id)}};async function H(s,t,r){let i=s._psp_alloc(s._psp_is_memory64()?BigInt(t.byteLength):t.byteLength);s.HEAPU8.set(t,Number(i));let a=await r(i);return s._psp_free(i),a}async function A(s,t,r){let i=s._psp_is_memory64(),a=new DataView(s.HEAPU8.buffer,Number(t),i?12:8),l=a.getUint32(0,!0),u=i?a.getBigInt64(4,!0):a.getUint32(4,!0),e=new DataView(s.HEAPU8.buffer,Number(u),l*(i?16:12));try{for(let n=0;n<l;n++){let[o,p,y]=i?[e.getBigInt64(n*16,!0),e.getInt32(n*16+8,!0),e.getInt32(n*16+12,!0)]:[e.getInt32(n*12,!0),e.getInt32(n*12+4,!0),e.getInt32(n*12+8,!0)],c=new Uint8Array(s.HEAPU8.buffer,Number(o),p);await r({client_id:y,data:c})}}finally{for(let n=0;n<l;n++){let o=i?e.getBigInt64(n*16,!0):e.getInt32(n*12,!0);s._psp_free(o)}s._psp_free(i?BigInt(e.byteOffset):e.byteOffset),s._psp_free(i?BigInt(a.byteOffset):a.byteOffset)}}var q=console.log.bind(console),L=console.error.bind(console),N=new TextDecoder("utf8"),R=[null,[],[]];function j(s,t=0,r=NaN){for(var i=t+r,a=t;s[a]&&!(a>=i);)++a;return N.decode(s instanceof Uint8Array?s.subarray(t,a):new Uint8Array(s.slice(t,a)))}function E(s,t){var r=R[s];t===0||t===10?((s===1?q:L)(j(r,0)),r.length=0):r.push(t)}async function U(s){let t,r=!1,i,a={HaveOffsetConverter(){console.error("HaveOffsetConverter")},__syscall_ftruncate64(...e){console.error("__syscall_frtuncate64",e)},__syscall_getdents64(...e){console.error("__syscall_frtuncate64",e)},__syscall_unlinkat(...e){console.error("__syscall_frtuncate64",e)},__throw_exception_with_stack_trace(e){let n=new WebAssembly.Exception(t.__cpp_exception,[e],{traceStack:!0});throw n.message="Unexpected internal error",n},clock_time_get(e,n,o){if(r){if(o=o,o=Number(o),!(e==0||e==1||e==2||e==3))return 28;var p;e===0?p=Date.now():p=performance.now();let c=Math.round(p*1e3*1e3),_=new BigInt64Array(i.buffer);return _[o/8]=BigInt(c),0}else{if(o=o,o>>>=0,!(e==0||e==1||e==2||e==3))return 28;var p;e===0?p=Date.now():p=performance.now();var y=Math.round(p*1e6);let _=new BigInt64Array(i.buffer);return _[o>>>3]=BigInt(y),0}},emscripten_asm_const_int(...e){return 0},emscripten_notify_memory_growth(e){r?e=Number(e):(e=e,e>>>=0),e!=0&&console.error("abort")},environ_get(...e){return 0},environ_sizes_get(...e){return 0},fd_close(...e){return console.error("fd_close",e),0},fd_read(...e){return console.error("fd_read",e),0},fd_seek(...e){return console.error("fs_seek",e),0},fd_write(e,n,o,p){let y=new Uint8Array(i.buffer);if(r){n=Number(n),o=Number(o),p=Number(p);let c=0,_=new BigUint64Array(i.buffer);for(let d=0;d<o;d++){let w=Number(_[n/8]),b=Number(_[(n+8)/8]);n+=16;for(let m=0;m<b;m++)E(e,y[w+m]);c+=b}return _[p/8]=BigInt(c),0}else{n=n,o=o,p=p,n>>>=0,o>>>=0,p>>>=0;let c=0,_=new Uint32Array(i.buffer);for(let d=0;d<o;d++){let w=_[n>>>2>>>0],b=_[n+4>>>2>>>0];n+=8;for(let m=0;m<b;m++)E(e,y[w+m>>>0]);c+=b}return _[p>>>2>>>0]=c,0}},proc_exit(e){return console.error("proc_exit",e),0}},l=await s.instantiateWasm({env:a,wasi_snapshot_preview1:a},e=>{t=e.exports,r=!!t.psp_is_memory64(),i=e.exports.memory,t._initialize()}),u={};for(let[e,n]of Object.entries(l))u[`_${e}`]=n;return{...l,...u,get HEAPU8(){return new Uint8Array(i.buffer)}}}async function M(s){let t=await U({locateFile(r){return r},instantiateWasm:async(r,i)=>{r.env={...r.env,psp_stack_trace(){let l=Error().stack||"",e=new TextEncoder().encode(l),n=t._psp_alloc(t._psp_is_memory64()?BigInt(e.byteLength+1):e.byteLength+1);return t.HEAPU8.set(e,Number(n)),t.HEAPU8[Number(n)+e.byteLength]=0,n},psp_heap_size(){return t._psp_is_memory64()?BigInt(t.HEAPU8.buffer.byteLength):t.HEAPU8.buffer.byteLength}};let a=await WebAssembly.instantiate(s,r);return i(a.instance),a.instance.exports}});return t}var g,x;function B(s){let t=s.ports[0],r;t.addEventListener("message",async i=>{if(i.data.cmd==="init"){let a=i.data.id;if(!g){let l=await M(i.data.args[0]);g=new h(l,{on_poll_request:()=>x.on_poll_request()}),x=new v(g)}r=g.make_session(async l=>{let u=l.slice().buffer;t.postMessage(u,{transfer:[u]})}),t.postMessage({id:a})}else await r.handle_request(new Uint8Array(i.data))}),t.start()}self.addEventListener("connect",B);self.addEventListener("message",B);})();\n';function oe(n,e){function t(c,u){c==="message"&&n.push(u)}function r(c){let u=n.indexOf(c);u>-1&&n.splice(u,1)}function s(c,u){for(let b of e)b({data:c,ports:u})}return{addEventListener:t,removeEventListener:r,postMessage:s,location:{href:""}}}function Se(n){console.error("Running perspective in single-threaded mode");let e=Function("const self = arguments[0];"+n),t=[],r=[];return e(oe(t,r)),oe(r,t)}var Me=async function(){try{if(window.location.protocol.startsWith("file"))return console.warn("file:// protocol does not support Web Workers"),Se(H);{let n=new Blob([H],{type:"application/javascript"}),e=URL.createObjectURL(n);return new Worker(e,{type:"module"})}}catch(n){console.error("Error instantiating engine",n)}},_e=Me;var h;function Ie(n,e=!1){n instanceof Uint8Array?h=Promise.resolve(n.buffer):n instanceof Response?h=Promise.resolve(n):n instanceof Promise?h=n:h=Promise.resolve(n),e||(h=h.then(t=>D(t).then(r=>r.buffer)))}var v;async function R(n,e=!1){let t=e?n:await D(n);return await F({module_or_path:t}),await q(),z}function Oe(n,e=!1){n instanceof Uint8Array?v=R(n.buffer,e):n instanceof ArrayBuffer||n instanceof Response||n instanceof Promise?v=R(n,e):n instanceof Object&&(v=Promise.resolve(n))}function ce(){let n=customElements.get("perspective-viewer");if(n)v=Promise.resolve(n.__wasm_module__);else if(v===void 0)throw new Error("Missing perspective-client.wasm");return v}function Pe(){if(h===void 0)throw new Error("Missing perspective-server.wasm");return h.then(n=>n instanceof WebAssembly.Module?n:n.slice(0))}var ie;function Ue(){return ie===void 0?_e():ie()}async function Be(n){return await re(ce(),n)}async function Le(n){return typeof n>"u"&&(n=Ue()),await ne(ce(),Pe(),n)}var $={websocket:Be,worker:Le,init_client:Oe,init_server:Ie};var Re=new URL("../../../server/dist/wasm/perspective-server.wasm",import.meta.url);$.init_server(fetch(Re));var Je=$;export{Je as default,Oe as init_client,Ie as init_server,Be as websocket,Le as worker};
|
|
1
|
+
var de=Object.defineProperty;var pe=(n,e)=>{for(var t in e)de(n,t,{get:e[t],enumerable:!0})};var X={};pe(X,{Client:()=>I,JsVirtualDataSlice:()=>W,JsVirtualServer:()=>M,ProxySession:()=>P,Table:()=>O,View:()=>j,default:()=>J,init:()=>G,initSync:()=>Oe});var _,h=new Array(128).fill(void 0);h.push(void 0,null,!0,!1);function o(n){return h[n]}var U=null;function E(){return(U===null||U.byteLength===0)&&(U=new Uint8Array(_.memory.buffer)),U}var L=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});L.decode();var ye=2146435072,q=0;function me(n,e){return q+=e,q>=ye&&(L=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),L.decode(),q=e),L.decode(E().subarray(n,n+e))}function he(n,e){return n=n>>>0,me(n,e)}function p(n,e){return n===0?o(e):he(n,e)}var C=h.length;function i(n){C===h.length&&h.push(h.length+1);let e=C;return C=h[e],h[e]=n,e}var d=0,ee=new TextEncoder;function y(n,e,t){if(t===void 0){let b=ee.encode(n),g=e(b.length,1)>>>0;return E().subarray(g,g+b.length).set(b),d=b.length,g}let r=n.length,s=e(r,1)>>>0,a=E(),c=0;for(;c<r;c++){let b=n.charCodeAt(c);if(b>127)break;a[s+c]=b}if(c!==r){c!==0&&(n=n.slice(c)),s=t(s,r,r=c+n.length*3,1)>>>0;let b=E().subarray(s+c,s+r),g=ee.encodeInto(n,b);c+=g.written,s=t(s,r,c,1)>>>0}return d=c,s}var k=null;function f(){return(k===null||k.buffer.detached===!0||k.buffer.detached===void 0&&k.buffer!==_.memory.buffer)&&(k=new DataView(_.memory.buffer)),k}function l(n){return n==null}function $(n){let e=typeof n;if(e=="number"||e=="boolean"||n==null)return`${n}`;if(e=="string")return`"${n}"`;if(e=="symbol"){let s=n.description;return s==null?"Symbol":`Symbol(${s})`}if(e=="function"){let s=n.name;return typeof s=="string"&&s.length>0?`Function(${s})`:"Function"}if(Array.isArray(n)){let s=n.length,a="[";s>0&&(a+=$(n[0]));for(let c=1;c<s;c++)a+=", "+$(n[c]);return a+="]",a}let t=/\[object ([^\]]+)\]/.exec(toString.call(n)),r;if(t&&t.length>1)r=t[1];else return toString.call(n);if(r=="Object")try{return"Object("+JSON.stringify(n)+")"}catch{return"Object"}return n instanceof Error?`${n.name}: ${n.message}
|
|
2
|
+
${n.stack}`:r}function m(n,e){try{return n.apply(this,e)}catch(t){_.__wbindgen_export3(i(t))}}function B(n,e){return n=n>>>0,E().subarray(n/1,n/1+e)}function ve(n){n<132||(h[n]=C,C=n)}function u(n){let e=o(n);return ve(n),e}function Ae(n,e){n=n>>>0;let t=f(),r=[];for(let s=n;s<n+4*e;s+=4)r.push(u(t.getUint32(s,!0)));return r}var N=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>n.dtor(n.a,n.b));function xe(n,e,t,r){let s={a:n,b:e,cnt:1,dtor:t},a=(...c)=>{s.cnt++;let b=s.a;s.a=0;try{return r(b,s.b,...c)}finally{s.a=b,a._wbg_cb_unref()}};return a._wbg_cb_unref=()=>{--s.cnt===0&&(s.dtor(s.a,s.b),s.a=0,N.unregister(s))},N.register(a,s,s),a}function Se(n,e,t,r){let s={a:n,b:e,cnt:1,dtor:t},a=(...c)=>{s.cnt++;try{return r(s.a,s.b,...c)}finally{a._wbg_cb_unref()}};return a._wbg_cb_unref=()=>{--s.cnt===0&&(s.dtor(s.a,s.b),s.a=0,N.unregister(s))},N.register(a,s,s),a}function ke(n,e){if(!(n instanceof e))throw new Error(`expected instance of ${e.name}`)}var T=128;function se(n){if(T==1)throw new Error("out of js stack");return h[--T]=n,T}function Ie(n,e){let t=e(n.length*1,1)>>>0;return E().set(n,t/1),d=n.length,t}function G(){_.init()}function We(n,e,t){_.__wasm_bindgen_func_elem_3509(n,e,i(t))}function je(n,e){let t=_.__wasm_bindgen_func_elem_553(n,e);return u(t)}function Ee(n,e,t,r){_.__wasm_bindgen_func_elem_5064(n,e,i(t),i(r))}var D=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_client_free(n>>>0,1)),I=class n{static __wrap(e){e=e>>>0;let t=Object.create(n.prototype);return t.__wbg_ptr=e,D.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,D.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_client_free(e,0)}__getClassname(){try{let s=_.__wbindgen_add_to_stack_pointer(-16);_.client___getClassname(s,this.__wbg_ptr);var e=f().getInt32(s+0,!0),t=f().getInt32(s+4,!0),r=p(e,t);return e!==0&&_.__wbindgen_export4(e,t,1),r}finally{_.__wbindgen_add_to_stack_pointer(16)}}constructor(e,t){try{let c=_.__wbindgen_add_to_stack_pointer(-16);_.client_new(c,i(e),l(t)?0:i(t));var r=f().getInt32(c+0,!0),s=f().getInt32(c+4,!0),a=f().getInt32(c+8,!0);if(a)throw u(s);return this.__wbg_ptr=r>>>0,D.register(this,this.__wbg_ptr,this),this}finally{_.__wbindgen_add_to_stack_pointer(16)}}new_proxy_session(e){try{let t=_.client_new_proxy_session(this.__wbg_ptr,se(e));return P.__wrap(t)}finally{h[T++]=void 0}}handle_response(e){let t=_.client_handle_response(this.__wbg_ptr,i(e));return u(t)}handle_error(e,t){let r=y(e,_.__wbindgen_export,_.__wbindgen_export2),s=d,a=_.client_handle_error(this.__wbg_ptr,r,s,l(t)?0:i(t));return u(a)}on_error(e){let t=_.client_on_error(this.__wbg_ptr,i(e));return u(t)}table(e,t){let r=_.client_table(this.__wbg_ptr,i(e),l(t)?0:i(t));return u(r)}terminate(){try{let s=_.__wbindgen_add_to_stack_pointer(-16);_.client_terminate(s,this.__wbg_ptr);var e=f().getInt32(s+0,!0),t=f().getInt32(s+4,!0),r=f().getInt32(s+8,!0);if(r)throw u(t);return u(e)}finally{_.__wbindgen_add_to_stack_pointer(16)}}open_table(e){let t=y(e,_.__wbindgen_export,_.__wbindgen_export2),r=d,s=_.client_open_table(this.__wbg_ptr,t,r);return u(s)}get_hosted_table_names(){let e=_.client_get_hosted_table_names(this.__wbg_ptr);return u(e)}on_hosted_tables_update(e){let t=_.client_on_hosted_tables_update(this.__wbg_ptr,i(e));return u(t)}remove_hosted_tables_update(e){let t=_.client_remove_hosted_tables_update(this.__wbg_ptr,e);return u(t)}system_info(){let e=_.client_system_info(this.__wbg_ptr);return u(e)}};Symbol.dispose&&(I.prototype[Symbol.dispose]=I.prototype.free);var V=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_jsvirtualdataslice_free(n>>>0,1)),W=class n{static __wrap(e){e=e>>>0;let t=Object.create(n.prototype);return t.__wbg_ptr=e,V.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,V.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_jsvirtualdataslice_free(e,0)}constructor(){let e=_.jsvirtualdataslice_new();return this.__wbg_ptr=e>>>0,V.register(this,this.__wbg_ptr,this),this}setCol(e,t,r,s,a){try{let g=_.__wbindgen_add_to_stack_pointer(-16),w=y(e,_.__wbindgen_export,_.__wbindgen_export2),v=d,F=y(t,_.__wbindgen_export,_.__wbindgen_export2),S=d;_.jsvirtualdataslice_setCol(g,this.__wbg_ptr,w,v,F,S,r,i(s),l(a)?4294967297:a>>>0);var c=f().getInt32(g+0,!0),b=f().getInt32(g+4,!0);if(b)throw u(c)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setStringCol(e,t,r,s){try{let b=_.__wbindgen_add_to_stack_pointer(-16),g=y(e,_.__wbindgen_export,_.__wbindgen_export2),w=d;_.jsvirtualdataslice_setStringCol(b,this.__wbg_ptr,g,w,t,i(r),l(s)?4294967297:s>>>0);var a=f().getInt32(b+0,!0),c=f().getInt32(b+4,!0);if(c)throw u(a)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setIntegerCol(e,t,r,s){try{let b=_.__wbindgen_add_to_stack_pointer(-16),g=y(e,_.__wbindgen_export,_.__wbindgen_export2),w=d;_.jsvirtualdataslice_setIntegerCol(b,this.__wbg_ptr,g,w,t,i(r),l(s)?4294967297:s>>>0);var a=f().getInt32(b+0,!0),c=f().getInt32(b+4,!0);if(c)throw u(a)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setFloatCol(e,t,r,s){try{let b=_.__wbindgen_add_to_stack_pointer(-16),g=y(e,_.__wbindgen_export,_.__wbindgen_export2),w=d;_.jsvirtualdataslice_setFloatCol(b,this.__wbg_ptr,g,w,t,i(r),l(s)?4294967297:s>>>0);var a=f().getInt32(b+0,!0),c=f().getInt32(b+4,!0);if(c)throw u(a)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setBooleanCol(e,t,r,s){try{let b=_.__wbindgen_add_to_stack_pointer(-16),g=y(e,_.__wbindgen_export,_.__wbindgen_export2),w=d;_.jsvirtualdataslice_setBooleanCol(b,this.__wbg_ptr,g,w,t,i(r),l(s)?4294967297:s>>>0);var a=f().getInt32(b+0,!0),c=f().getInt32(b+4,!0);if(c)throw u(a)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setDatetimeCol(e,t,r,s){try{let b=_.__wbindgen_add_to_stack_pointer(-16),g=y(e,_.__wbindgen_export,_.__wbindgen_export2),w=d;_.jsvirtualdataslice_setDatetimeCol(b,this.__wbg_ptr,g,w,t,i(r),l(s)?4294967297:s>>>0);var a=f().getInt32(b+0,!0),c=f().getInt32(b+4,!0);if(c)throw u(a)}finally{_.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(W.prototype[Symbol.dispose]=W.prototype.free);var te=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_jsvirtualserver_free(n>>>0,1)),M=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,te.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_jsvirtualserver_free(e,0)}constructor(e){try{let a=_.__wbindgen_add_to_stack_pointer(-16);_.jsvirtualserver_new(a,i(e));var t=f().getInt32(a+0,!0),r=f().getInt32(a+4,!0),s=f().getInt32(a+8,!0);if(s)throw u(r);return this.__wbg_ptr=t>>>0,te.register(this,this.__wbg_ptr,this),this}finally{_.__wbindgen_add_to_stack_pointer(16)}}handleRequest(e){let t=Ie(e,_.__wbindgen_export),r=d,s=_.jsvirtualserver_handleRequest(this.__wbg_ptr,t,r);return u(s)}};Symbol.dispose&&(M.prototype[Symbol.dispose]=M.prototype.free);var H=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_proxysession_free(n>>>0,1)),P=class n{static __wrap(e){e=e>>>0;let t=Object.create(n.prototype);return t.__wbg_ptr=e,H.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,H.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_proxysession_free(e,0)}constructor(e,t){try{ke(e,I);let r=_.client_new_proxy_session(e.__wbg_ptr,se(t));return this.__wbg_ptr=r>>>0,H.register(this,this.__wbg_ptr,this),this}finally{h[T++]=void 0}}handle_request(e){let t=_.proxysession_handle_request(this.__wbg_ptr,i(e));return u(t)}close(){let e=this.__destroy_into_raw(),t=_.proxysession_close(e);return u(t)}};Symbol.dispose&&(P.prototype[Symbol.dispose]=P.prototype.free);var ne=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_table_free(n>>>0,1)),O=class n{static __wrap(e){e=e>>>0;let t=Object.create(n.prototype);return t.__wbg_ptr=e,ne.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ne.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_table_free(e,0)}__getClassname(){try{let s=_.__wbindgen_add_to_stack_pointer(-16);_.table___getClassname(s,this.__wbg_ptr);var e=f().getInt32(s+0,!0),t=f().getInt32(s+4,!0),r=p(e,t);return e!==0&&_.__wbindgen_export4(e,t,1),r}finally{_.__wbindgen_add_to_stack_pointer(16)}}get_index(){let e=_.table_get_index(this.__wbg_ptr);return u(e)}get_client(){let e=_.table_get_client(this.__wbg_ptr);return u(e)}get_name(){let e=_.table_get_name(this.__wbg_ptr);return u(e)}get_limit(){let e=_.table_get_limit(this.__wbg_ptr);return u(e)}clear(){let e=_.table_clear(this.__wbg_ptr);return u(e)}delete(e){let t=this.__destroy_into_raw(),r=_.table_delete(t,l(e)?0:i(e));return u(r)}size(){let e=_.table_size(this.__wbg_ptr);return u(e)}schema(){let e=_.table_schema(this.__wbg_ptr);return u(e)}columns(){let e=_.table_columns(this.__wbg_ptr);return u(e)}make_port(){let e=_.table_make_port(this.__wbg_ptr);return u(e)}on_delete(e){let t=_.table_on_delete(this.__wbg_ptr,i(e));return u(t)}remove_delete(e){let t=_.table_remove_delete(this.__wbg_ptr,e);return u(t)}remove(e,t){let r=_.table_remove(this.__wbg_ptr,i(e),l(t)?0:i(t));return u(r)}replace(e,t){let r=_.table_replace(this.__wbg_ptr,i(e),l(t)?0:i(t));return u(r)}update(e,t){let r=_.table_update(this.__wbg_ptr,i(e),l(t)?0:i(t));return u(r)}view(e){let t=_.table_view(this.__wbg_ptr,l(e)?0:i(e));return u(t)}validate_expressions(e){let t=_.table_validate_expressions(this.__wbg_ptr,i(e));return u(t)}};Symbol.dispose&&(O.prototype[Symbol.dispose]=O.prototype.free);var re=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_view_free(n>>>0,1)),j=class n{static __wrap(e){e=e>>>0;let t=Object.create(n.prototype);return t.__wbg_ptr=e,re.register(t,t.__wbg_ptr,t),t}static __unwrap(e){return e instanceof n?e.__destroy_into_raw():0}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,re.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_view_free(e,0)}__get_model(){let e=_.view___get_model(this.__wbg_ptr);return n.__wrap(e)}column_paths(e){let t=_.view_column_paths(this.__wbg_ptr,l(e)?0:i(e));return u(t)}delete(){let e=this.__destroy_into_raw(),t=_.view_delete(e);return u(t)}dimensions(){let e=_.view_dimensions(this.__wbg_ptr);return u(e)}expression_schema(){let e=_.view_expression_schema(this.__wbg_ptr);return u(e)}get_config(){let e=_.view_get_config(this.__wbg_ptr);return u(e)}get_min_max(e){let t=y(e,_.__wbindgen_export,_.__wbindgen_export2),r=d,s=_.view_get_min_max(this.__wbg_ptr,t,r);return u(s)}num_rows(){let e=_.view_num_rows(this.__wbg_ptr);return u(e)}schema(){let e=_.view_schema(this.__wbg_ptr);return u(e)}to_arrow(e){let t=_.view_to_arrow(this.__wbg_ptr,l(e)?0:i(e));return u(t)}to_columns_string(e){let t=_.view_to_columns_string(this.__wbg_ptr,l(e)?0:i(e));return u(t)}to_columns(e){let t=_.view_to_columns(this.__wbg_ptr,l(e)?0:i(e));return u(t)}to_json_string(e){let t=_.view_to_json_string(this.__wbg_ptr,l(e)?0:i(e));return u(t)}to_json(e){let t=_.view_to_json(this.__wbg_ptr,l(e)?0:i(e));return u(t)}to_ndjson(e){let t=_.view_to_ndjson(this.__wbg_ptr,l(e)?0:i(e));return u(t)}to_csv(e){let t=_.view_to_csv(this.__wbg_ptr,l(e)?0:i(e));return u(t)}on_update(e,t){let r=_.view_on_update(this.__wbg_ptr,i(e),l(t)?0:i(t));return u(r)}remove_update(e){let t=_.view_remove_update(this.__wbg_ptr,e);return u(t)}on_delete(e){let t=_.view_on_delete(this.__wbg_ptr,i(e));return u(t)}num_columns(){let e=_.view_num_columns(this.__wbg_ptr);return u(e)}remove_delete(e){let t=_.view_remove_delete(this.__wbg_ptr,e);return u(t)}collapse(e){let t=_.view_collapse(this.__wbg_ptr,e);return u(t)}expand(e){let t=_.view_expand(this.__wbg_ptr,e);return u(t)}set_depth(e){let t=_.view_set_depth(this.__wbg_ptr,e);return u(t)}};Symbol.dispose&&(j.prototype[Symbol.dispose]=j.prototype.free);var Me=new Set(["basic","cors","default"]);async function Pe(n,e){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,e)}catch(r){if(n.ok&&Me.has(n.type)&&n.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",r);else throw r}let t=await n.arrayBuffer();return await WebAssembly.instantiate(t,e)}else{let t=await WebAssembly.instantiate(n,e);return t instanceof WebAssembly.Instance?{instance:t,module:n}:t}}function _e(){let n={};return n.wbg={},n.wbg.__wbg_Error_e83987f665cf5504=function(e,t){var r=p(e,t);let s=Error(r);return i(s)},n.wbg.__wbg_Number_bb48ca12f395cd08=function(e){return Number(o(e))},n.wbg.__wbg_String_8f0eb39a4a4c2f66=function(e,t){let r=String(o(t)),s=y(r,_.__wbindgen_export,_.__wbindgen_export2),a=d;f().setInt32(e+4,a,!0),f().setInt32(e+0,s,!0)},n.wbg.__wbg___wbindgen_bigint_get_as_i64_f3ebc5a755000afd=function(e,t){let r=o(t),s=typeof r=="bigint"?r:void 0;f().setBigInt64(e+8,l(s)?BigInt(0):s,!0),f().setInt32(e+0,!l(s),!0)},n.wbg.__wbg___wbindgen_boolean_get_6d5a1ee65bab5f68=function(e){let t=o(e),r=typeof t=="boolean"?t:void 0;return l(r)?16777215:r?1:0},n.wbg.__wbg___wbindgen_debug_string_df47ffb5e35e6763=function(e,t){let r=$(o(t)),s=y(r,_.__wbindgen_export,_.__wbindgen_export2),a=d;f().setInt32(e+4,a,!0),f().setInt32(e+0,s,!0)},n.wbg.__wbg___wbindgen_in_bb933bd9e1b3bc0f=function(e,t){return o(e)in o(t)},n.wbg.__wbg___wbindgen_is_bigint_cb320707dcd35f0b=function(e){return typeof o(e)=="bigint"},n.wbg.__wbg___wbindgen_is_function_ee8a6c5833c90377=function(e){return typeof o(e)=="function"},n.wbg.__wbg___wbindgen_is_null_5e69f72e906cc57c=function(e){return o(e)===null},n.wbg.__wbg___wbindgen_is_object_c818261d21f283a4=function(e){let t=o(e);return typeof t=="object"&&t!==null},n.wbg.__wbg___wbindgen_is_string_fbb76cb2940daafd=function(e){return typeof o(e)=="string"},n.wbg.__wbg___wbindgen_is_undefined_2d472862bd29a478=function(e){return o(e)===void 0},n.wbg.__wbg___wbindgen_jsval_eq_6b13ab83478b1c50=function(e,t){return o(e)===o(t)},n.wbg.__wbg___wbindgen_jsval_loose_eq_b664b38a2f582147=function(e,t){return o(e)==o(t)},n.wbg.__wbg___wbindgen_number_get_a20bf9b85341449d=function(e,t){let r=o(t),s=typeof r=="number"?r:void 0;f().setFloat64(e+8,l(s)?0:s,!0),f().setInt32(e+0,!l(s),!0)},n.wbg.__wbg___wbindgen_string_get_e4f06c90489ad01b=function(e,t){let r=o(t),s=typeof r=="string"?r:void 0;var a=l(s)?0:y(s,_.__wbindgen_export,_.__wbindgen_export2),c=d;f().setInt32(e+4,c,!0),f().setInt32(e+0,a,!0)},n.wbg.__wbg___wbindgen_throw_b855445ff6a94295=function(e,t){var r=p(e,t);throw new Error(r)},n.wbg.__wbg__wbg_cb_unref_2454a539ea5790d9=function(e){o(e)._wbg_cb_unref()},n.wbg.__wbg_apply_04097a755e1e4a1e=function(){return m(function(e,t,r){let s=o(e).apply(o(t),o(r));return i(s)},arguments)},n.wbg.__wbg_at_a848c0ce365c6832=function(e,t){let r=o(e).at(t);return i(r)},n.wbg.__wbg_buffer_ccc4520b36d3ccf4=function(e){let t=o(e).buffer;return i(t)},n.wbg.__wbg_call_525440f72fbfc0ea=function(){return m(function(e,t,r){let s=o(e).call(o(t),o(r));return i(s)},arguments)},n.wbg.__wbg_call_e45d2cf9fc925fcf=function(){return m(function(e,t,r,s){let a=o(e).call(o(t),o(r),o(s));return i(a)},arguments)},n.wbg.__wbg_call_e762c39fa8ea36bf=function(){return m(function(e,t){let r=o(e).call(o(t));return i(r)},arguments)},n.wbg.__wbg_client_new=function(e){let t=I.__wrap(e);return i(t)},n.wbg.__wbg_debug_e55e1461940eb14d=function(e,t,r,s){console.debug(o(e),o(t),o(r),o(s))},n.wbg.__wbg_debug_f4b0c59db649db48=function(e){console.debug(o(e))},n.wbg.__wbg_done_2042aa2670fb1db1=function(e){return o(e).done},n.wbg.__wbg_entries_e171b586f8f6bdbf=function(e){let t=Object.entries(o(e));return i(t)},n.wbg.__wbg_error_6f1d0762f6c8ae2f=function(e,t){console.error(o(e),o(t))},n.wbg.__wbg_error_a7f8fbb0523dae15=function(e){console.error(o(e))},n.wbg.__wbg_error_d8b22cf4e59a6791=function(e,t,r,s){console.error(o(e),o(t),o(r),o(s))},n.wbg.__wbg_from_a4ad7cbddd0d7135=function(e){let t=Array.from(o(e));return i(t)},n.wbg.__wbg_getEntriesByName_b49d266abfb2e9af=function(e,t,r,s,a){var c=p(t,r),b=p(s,a);let g=o(e).getEntriesByName(c,b);return i(g)},n.wbg.__wbg_getRandomValues_1c61fac11405ffdc=function(){return m(function(e,t){globalThis.crypto.getRandomValues(B(e,t))},arguments)},n.wbg.__wbg_getTime_14776bfb48a1bff9=function(e){return o(e).getTime()},n.wbg.__wbg_get_7bed016f185add81=function(e,t){let r=o(e)[t>>>0];return i(r)},n.wbg.__wbg_get_a499fc4db8c05b3b=function(e,t,r){var s=p(t,r);let a=o(e)[s];return l(a)?0:i(a)},n.wbg.__wbg_get_efcb449f58ec27c2=function(){return m(function(e,t){let r=Reflect.get(o(e),o(t));return i(r)},arguments)},n.wbg.__wbg_get_with_ref_key_1dc361bd10053bfe=function(e,t){let r=o(e)[o(t)];return i(r)},n.wbg.__wbg_has_787fafc980c3ccdb=function(){return m(function(e,t){return Reflect.has(o(e),o(t))},arguments)},n.wbg.__wbg_info_68cd5b51ef7e5137=function(e,t,r,s){console.info(o(e),o(t),o(r),o(s))},n.wbg.__wbg_info_e674a11f4f50cc0c=function(e){console.info(o(e))},n.wbg.__wbg_instanceof_ArrayBuffer_70beb1189ca63b38=function(e){let t;try{t=o(e)instanceof ArrayBuffer}catch{t=!1}return t},n.wbg.__wbg_instanceof_Array_fca44e0f4a7f6240=function(e){let t;try{t=o(e)instanceof Array}catch{t=!1}return t},n.wbg.__wbg_instanceof_Date_79a0f671f36947f2=function(e){let t;try{t=o(e)instanceof Date}catch{t=!1}return t},n.wbg.__wbg_instanceof_Error_a944ec10920129e2=function(e){let t;try{t=o(e)instanceof Error}catch{t=!1}return t},n.wbg.__wbg_instanceof_Map_8579b5e2ab5437c7=function(e){let t;try{t=o(e)instanceof Map}catch{t=!1}return t},n.wbg.__wbg_instanceof_Object_10bb762262230c68=function(e){let t;try{t=o(e)instanceof Object}catch{t=!1}return t},n.wbg.__wbg_instanceof_Promise_001fdd42afa1b7ef=function(e){let t;try{t=o(e)instanceof Promise}catch{t=!1}return t},n.wbg.__wbg_instanceof_Uint8Array_20c8e73002f7af98=function(e){let t;try{t=o(e)instanceof Uint8Array}catch{t=!1}return t},n.wbg.__wbg_instanceof_Window_4846dbb3de56c84c=function(e){let t;try{t=o(e)instanceof Window}catch{t=!1}return t},n.wbg.__wbg_isArray_96e0af9891d0945d=function(e){return Array.isArray(o(e))},n.wbg.__wbg_isSafeInteger_d216eda7911dde36=function(e){return Number.isSafeInteger(o(e))},n.wbg.__wbg_iterator_e5822695327a3c39=function(){return i(Symbol.iterator)},n.wbg.__wbg_jsvirtualdataslice_new=function(e){let t=W.__wrap(e);return i(t)},n.wbg.__wbg_keys_b4d27b02ad14f4be=function(e){let t=Object.keys(o(e));return i(t)},n.wbg.__wbg_length_69bca3cb64fc8748=function(e){return o(e).length},n.wbg.__wbg_length_cdd215e10d9dd507=function(e){return o(e).length},n.wbg.__wbg_mark_4411b340bdf62a5f=function(){return m(function(e,t,r){var s=p(t,r);o(e).mark(s)},arguments)},n.wbg.__wbg_measure_ef89c90a92de6f43=function(){return m(function(e,t,r,s,a){var c=p(t,r),b=p(s,a);o(e).measure(c,b)},arguments)},n.wbg.__wbg_message_1ee258909d7264fd=function(e){let t=o(e).message;return i(t)},n.wbg.__wbg_new_1acc0b6eea89d040=function(){let e=new Object;return i(e)},n.wbg.__wbg_new_3c3d849046688a66=function(e,t){try{var r={a:e,b:t},s=(c,b)=>{let g=r.a;r.a=0;try{return Ee(g,r.b,c,b)}finally{r.a=g}};let a=new Promise(s);return i(a)}finally{r.a=r.b=0}},n.wbg.__wbg_new_5a79be3ab53b8aa5=function(e){let t=new Uint8Array(o(e));return i(t)},n.wbg.__wbg_new_68651c719dcda04e=function(){return i(new Map)},n.wbg.__wbg_new_a7442b4b19c1a356=function(e,t){var r=p(e,t);let s=new Error(r);return i(s)},n.wbg.__wbg_new_e17d9f43105b08be=function(){let e=new Array;return i(e)},n.wbg.__wbg_new_from_slice_92f4d78ca282a2d2=function(e,t){let r=new Uint8Array(B(e,t));return i(r)},n.wbg.__wbg_new_no_args_ee98eee5275000a4=function(e,t){var r=p(e,t);let s=new Function(r);return i(s)},n.wbg.__wbg_next_020810e0ae8ebcb0=function(){return m(function(e){let t=o(e).next();return i(t)},arguments)},n.wbg.__wbg_next_2c826fe5dfec6b6a=function(e){let t=o(e).next;return i(t)},n.wbg.__wbg_now_f5ba683d8ce2c571=function(e){return o(e).now()},n.wbg.__wbg_parse_2a704d6b78abb2b8=function(){return m(function(e,t){var r=p(e,t);let s=JSON.parse(r);return i(s)},arguments)},n.wbg.__wbg_performance_e8315b5ae987e93f=function(e){let t=o(e).performance;return l(t)?0:i(t)},n.wbg.__wbg_prototypesetcall_2a6620b6922694b2=function(e,t,r){Uint8Array.prototype.set.call(B(e,t),o(r))},n.wbg.__wbg_push_df81a39d04db858c=function(e,t){return o(e).push(o(t))},n.wbg.__wbg_queueMicrotask_34d692c25c47d05b=function(e){let t=o(e).queueMicrotask;return i(t)},n.wbg.__wbg_queueMicrotask_9d76cacb20c84d58=function(e){queueMicrotask(o(e))},n.wbg.__wbg_reject_9d4761245c015a33=function(e){let t=Promise.reject(o(e));return i(t)},n.wbg.__wbg_resolve_caf97c30b83f7053=function(e){let t=Promise.resolve(o(e));return i(t)},n.wbg.__wbg_set_3f1d0b984ed272ed=function(e,t,r){o(e)[u(t)]=u(r)},n.wbg.__wbg_set_907fb406c34a251d=function(e,t,r){let s=o(e).set(o(t),o(r));return i(s)},n.wbg.__wbg_set_c213c871859d6500=function(e,t,r){o(e)[t>>>0]=u(r)},n.wbg.__wbg_startTime_539df5e9647037f7=function(e){return o(e).startTime},n.wbg.__wbg_static_accessor_GLOBAL_89e1d9ac6a1b250e=function(){let e=typeof global>"u"?null:global;return l(e)?0:i(e)},n.wbg.__wbg_static_accessor_GLOBAL_THIS_8b530f326a9e48ac=function(){let e=typeof globalThis>"u"?null:globalThis;return l(e)?0:i(e)},n.wbg.__wbg_static_accessor_SELF_6fdf4b64710cc91b=function(){let e=typeof self>"u"?null:self;return l(e)?0:i(e)},n.wbg.__wbg_static_accessor_WINDOW_b45bfc5a37f6cfa2=function(){let e=typeof window>"u"?null:window;return l(e)?0:i(e)},n.wbg.__wbg_stringify_b5fb28f6465d9c3e=function(){return m(function(e){let t=JSON.stringify(o(e));return i(t)},arguments)},n.wbg.__wbg_table_new=function(e){let t=O.__wrap(e);return i(t)},n.wbg.__wbg_then_4f46f6544e6b4a28=function(e,t){let r=o(e).then(o(t));return i(r)},n.wbg.__wbg_then_70d05cf780a18d77=function(e,t,r){let s=o(e).then(o(t),o(r));return i(s)},n.wbg.__wbg_toString_7da7c8dbec78fcb8=function(e){let t=o(e).toString();return i(t)},n.wbg.__wbg_trace_8e50cd754f118df3=function(e){console.trace(o(e))},n.wbg.__wbg_trace_cf9f10b8c61bd472=function(e,t,r,s){console.trace(o(e),o(t),o(r),o(s))},n.wbg.__wbg_value_692627309814bb8c=function(e){let t=o(e).value;return i(t)},n.wbg.__wbg_values_6f4c6a6a11564d83=function(e){let t=Object.values(o(e));return i(t)},n.wbg.__wbg_view_new=function(e){let t=j.__wrap(e);return i(t)},n.wbg.__wbg_view_unwrap=function(e){return j.__unwrap(u(e))},n.wbg.__wbg_warn_1d74dddbe2fd1dbb=function(e){console.warn(o(e))},n.wbg.__wbg_warn_8f5b5437666d0885=function(e,t,r,s){console.warn(o(e),o(t),o(r),o(s))},n.wbg.__wbindgen_cast_25a0a844437d0e92=function(e,t){var r=Ae(e,t).slice();return _.__wbindgen_export4(e,t*4,4),i(r)},n.wbg.__wbindgen_cast_4625c577ab2ec9ee=function(e){let t=BigInt.asUintN(64,e);return i(t)},n.wbg.__wbindgen_cast_58f1ec65de0445ab=function(e,t){let r=xe(e,t,_.__wasm_bindgen_func_elem_3494,We);return i(r)},n.wbg.__wbindgen_cast_77bc3e92745e9a35=function(e,t){var r=B(e,t).slice();return _.__wbindgen_export4(e,t*1,1),i(r)},n.wbg.__wbindgen_cast_7e9c58eeb11b0a6f=function(e,t){var r=p(e,t);return i(r)},n.wbg.__wbindgen_cast_9ae0607507abb057=function(e){return i(e)},n.wbg.__wbindgen_cast_b4f8efd6e03d7eb3=function(e,t){let r=Se(e,t,_.__wasm_bindgen_func_elem_123,je);return i(r)},n.wbg.__wbindgen_cast_cb9088102bce6b30=function(e,t){let r=B(e,t);return i(r)},n.wbg.__wbindgen_cast_d6cd19b81560fd6e=function(e){return i(e)},n.wbg.__wbindgen_object_clone_ref=function(e){let t=o(e);return i(t)},n.wbg.__wbindgen_object_drop_ref=function(e){u(e)},n}function oe(n,e){return _=n.exports,ie.__wbindgen_wasm_module=e,k=null,U=null,_}function Oe(n){if(_!==void 0)return _;typeof n<"u"&&(Object.getPrototypeOf(n)===Object.prototype?{module:n}=n:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let e=_e();n instanceof WebAssembly.Module||(n=new WebAssembly.Module(n));let t=new WebAssembly.Instance(n,e);return oe(t,n)}async function ie(n){if(_!==void 0)return _;typeof n<"u"&&(Object.getPrototypeOf(n)===Object.prototype?{module_or_path:n}=n:console.warn("using deprecated parameters for the initialization function; pass a single object instead"));let e=_e();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n));let{instance:t,module:r}=await Pe(await n,e);return oe(t,r)}var J=ie;function ae(n,e){let t;async function r(a,c){if(c.data.cmd==="init")try{t=new n.JsVirtualServer(e),c.data.id!==void 0?a.postMessage({id:c.data.id}):a.postMessage(null)}catch(b){throw console.error("Error initializing worker:",b),b}else try{let b=new Uint8Array(c.data),w=(await t.handleRequest(b)).slice().buffer;a.postMessage(w,{transfer:[w]})}catch(b){throw console.error("Error handling request in worker:",b),b}}let s=new MessageChannel;return s.port1.onmessage=a=>{r(s.port1,a)},s.port2}function Be(){let n,e,t=new Promise((r,s)=>{n=r,e=s});return[n,t,e]}async function ce(n,e,t,r){let s,a;async function c(){if(a?.readyState===n.CONNECTING||a?.readyState===n.OPEN){console.warn(`Already connected ${a.readyState}`);return}let[w,v,F]=Be();a=new n(t,r),a.onopen=w,a.binaryType="arraybuffer",a.onerror=S=>{let R=S.message||"Generic Websocket Error";s.handle_error(R,c),F(R)},a.onclose=S=>{let R=`WebSocket closed ${S.code}`;s.handle_error(R,c),F(R)},a.onmessage=S=>{s.handle_response(S.data)},await v}async function b(w){if(a.readyState===n.CLOSING||a.readyState===n.CLOSED){let v=`WebSocket transport error (${a.readyState})`;throw s.handle_error(v,c),new Error(v)}else if(a.readyState===n.CONNECTING){let v=`WebSocket message dropped (${a.readyState})`;throw new Error(v)}else{let v=w.slice().buffer;a.send(v)}}async function g(){console.debug("Closing WebSocket"),a.close()}return s=new e(b,g),await c(),s}function Ce(){let n,e,t=new Promise((r,s)=>{n=r,e=s});return[n,t,e]}async function Te(n,e){let[t,r]=Ce();n.addEventListener("message",function s(a){n.removeEventListener("message",s),t(null)}),n.onmessage=function(a){n.onmessage=function(){},t(null)},n.onmessageerror=console.error,n.postMessage({cmd:"init",args:[e]},{transfer:e===void 0||e instanceof WebAssembly.Module?[]:[e]}),await r}async function ue(n,e,t){let[r,s]=await Promise.all([e,t]),{Client:a}=await n,c;typeof SharedWorker<"u"&&s instanceof SharedWorker?c=s.port:c=s;let b=new a(async g=>{let w=g.slice().buffer;c.postMessage(w,{transfer:[w]})},async()=>{console.debug("Closing WebWorker"),c.close(),s instanceof Worker&&s.terminate()});return await Te(c,r),c.addEventListener("message",g=>{b.handle_response(g.data)}),b}async function be(n,e){let{Client:t}=await n;return await ce(WebSocket,t,e)}async function fe(n){let e;typeof n?.then=="function"&&(n=await n),n instanceof Response?e=await WebAssembly.instantiateStreaming(n):typeof n=="string"?e=await WebAssembly.instantiateStreaming(fetch(n)):n instanceof ArrayBuffer?e=await WebAssembly.instantiate(n):n instanceof Uint8Array?e=await WebAssembly.instantiate(n.buffer):e=n;let t=e.instance.exports,[r]=WebAssembly.Module.customSections(e.module,"psp-runtime"),[s]=WebAssembly.Module.customSections(e.module,"psp-len"),a=new DataView(s).getUint32(0,!0),c=t.resize(r.byteLength);new Uint8Array(t.memory.buffer).set(new Uint8Array(r),c);let b=t.compile(r.byteLength,a);return new Uint8Array(t.memory.buffer).slice(b,a+b)}if(typeof WebAssembly>"u")throw new Error("WebAssembly not supported.");async function Y(n){n instanceof Function&&(n=await n());try{return await fe(n)}catch{return console.warn("Stage 0 wasm loading failed, skipping"),new Uint8Array(n)}}var K='"use strict";(()=>{var B=Object.defineProperty;var H=(s,e,r)=>e in s?B(s,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[e]=r;var m=(s,e,r)=>H(s,typeof e!="symbol"?e+"":e,r);var v=class{constructor(e){m(this,"poll_handle");m(this,"server");this.server=e}set_poll_handle(){return this.poll_handle=new Promise((e,r)=>setTimeout(()=>this.server.poll().then(e).catch(r).finally(()=>{this.poll_handle=void 0}))),this.poll_handle}async on_poll_request(){this.poll_handle?await this.poll_handle.then(()=>{if(!this.poll_handle)return this.set_poll_handle()}):await this.set_poll_handle()}},h=class{constructor(e,r){m(this,"clients");m(this,"server");m(this,"module");m(this,"on_poll_request");this.clients=new Map,this.module=e,this.on_poll_request=r?.on_poll_request,this.server=e._psp_new_server(r?.on_poll_request?1:0)}make_session(e){let r=this.module._psp_new_session(this.server);return this.clients.set(r,e),new P(this.module,this.server,r,this.clients,this.on_poll_request&&(()=>this.on_poll_request(this)))}async poll(){let e=this.module._psp_poll(this.server);await A(this.module,e,async r=>{await this.clients.get(r.client_id)(r.data)})}delete(){this.module._psp_delete_server(this.server)}},P=class{constructor(e,r,i,o,_){this.mod=e;this.server=r;this.client_id=i;this.client_map=o;this.on_poll_request=_}async handle_request(e){let r=await N(this.mod,e,async i=>this.mod._psp_handle_request(this.server,this.client_id,i,this.mod._psp_is_memory64()?BigInt(e.byteLength):e.byteLength));await A(this.mod,r,async i=>{await this.client_map.get(i.client_id)(i.data)}),this.on_poll_request?await this.on_poll_request():await this.poll()}async poll(){let e=this.mod._psp_poll(this.server);await A(this.mod,e,async r=>{r.client_id===0?await this.client_map.get(this.client_id)(r.data):await this.client_map.get(r.client_id)(r.data)})}close(){this.mod._psp_close_session(this.server,this.client_id)}};async function N(s,e,r){let i=s._psp_alloc(s._psp_is_memory64()?BigInt(e.byteLength):e.byteLength);s.HEAPU8.set(e,Number(i));let o=await r(i);return s._psp_free(i),o}async function A(s,e,r){let i=s._psp_is_memory64(),o=new DataView(s.HEAPU8.buffer,Number(e),i?12:8),_=o.getUint32(0,!0),d=i?o.getBigInt64(4,!0):o.getUint32(4,!0),t=new DataView(s.HEAPU8.buffer,Number(d),_*(i?16:12));try{for(let n=0;n<_;n++){let[a,l,f]=i?[t.getBigInt64(n*16,!0),t.getInt32(n*16+8,!0),t.getInt32(n*16+12,!0)]:[t.getInt32(n*12,!0),t.getInt32(n*12+4,!0),t.getInt32(n*12+8,!0)],c=new Uint8Array(s.HEAPU8.buffer,Number(a),l);await r({client_id:f,data:c})}}finally{for(let n=0;n<_;n++){let a=i?t.getBigInt64(n*16,!0):t.getInt32(n*12,!0);s._psp_free(a)}s._psp_free(i?BigInt(t.byteOffset):t.byteOffset),s._psp_free(i?BigInt(o.byteOffset):o.byteOffset)}}var q=console.log.bind(console),L=console.error.bind(console),O=new TextDecoder("utf8"),R=[null,[],[]];function W(s,e=0,r=NaN){for(var i=e+r,o=e;s[o]&&!(o>=i);)++o;return O.decode(s instanceof Uint8Array?s.subarray(e,o):new Uint8Array(s.slice(e,o)))}function M(s,e){var r=R[s];e===0||e===10?((s===1?q:L)(W(r,0)),r.length=0):r.push(e)}async function U(s){let e,r=!1,i,o={HaveOffsetConverter(){console.error("HaveOffsetConverter")},__syscall_ftruncate64(...t){console.error("__syscall_frtuncate64",t)},__syscall_getdents64(...t){console.error("__syscall_frtuncate64",t)},__syscall_unlinkat(...t){console.error("__syscall_frtuncate64",t)},__throw_exception_with_stack_trace(t){let n=new WebAssembly.Exception(e.__cpp_exception,[t],{traceStack:!0});throw n.message="Unexpected internal error",n},clock_time_get(t,n,a){if(r){if(a=a,a=Number(a),!(t==0||t==1||t==2||t==3))return 28;var l;t===0?l=Date.now():l=performance.now();let c=Math.round(l*1e3*1e3),p=new BigInt64Array(i.buffer);return p[a/8]=BigInt(c),0}else{if(a=a,a>>>=0,!(t==0||t==1||t==2||t==3))return 28;var l;t===0?l=Date.now():l=performance.now();var f=Math.round(l*1e6);let p=new BigInt64Array(i.buffer);return p[a>>>3]=BigInt(f),0}},emscripten_asm_const_int(...t){return 0},emscripten_notify_memory_growth(t){r?t=Number(t):(t=t,t>>>=0),t!=0&&console.error("abort")},environ_get(...t){return 0},environ_sizes_get(...t){return 0},fd_close(...t){return console.error("fd_close",t),0},fd_read(...t){return console.error("fd_read",t),0},fd_seek(...t){return console.error("fs_seek",t),0},fd_write(t,n,a,l){let f=new Uint8Array(i.buffer);if(r){n=Number(n),a=Number(a),l=Number(l);let c=0,p=new BigUint64Array(i.buffer);for(let y=0;y<a;y++){let w=Number(p[n/8]),b=Number(p[(n+8)/8]);n+=16;for(let u=0;u<b;u++)M(t,f[w+u]);c+=b}return p[l/8]=BigInt(c),0}else{n=n,a=a,l=l,n>>>=0,a>>>=0,l>>>=0;let c=0,p=new Uint32Array(i.buffer);for(let y=0;y<a;y++){let w=p[n>>>2>>>0],b=p[n+4>>>2>>>0];n+=8;for(let u=0;u<b;u++)M(t,f[w+u>>>0]);c+=b}return p[l>>>2>>>0]=c,0}},proc_exit(t){return console.error("proc_exit",t),0}},_=await s.instantiateWasm({env:o,wasi_snapshot_preview1:o},t=>{e=t.exports,r=!!e.psp_is_memory64(),i=t.exports.memory,e._initialize()}),d={};for(let[t,n]of Object.entries(_))d[`_${t}`]=n;return{..._,...d,get HEAPU8(){return new Uint8Array(i.buffer)}}}async function S(s){let e=await U({locateFile(r){return r},instantiateWasm:async(r,i)=>{r.env={...r.env,psp_stack_trace(){let _=Error().stack||"",t=new TextEncoder().encode(_),n=e._psp_alloc(e._psp_is_memory64()?BigInt(t.byteLength+1):t.byteLength+1);return e.HEAPU8.set(t,Number(n)),e.HEAPU8[Number(n)+t.byteLength]=0,n},psp_heap_size(){return e._psp_is_memory64()?BigInt(e.HEAPU8.buffer.byteLength):e.HEAPU8.buffer.byteLength}};let o=await WebAssembly.instantiate(s,r);return i(o.instance),o.instance.exports}});return e}var g,x,E;async function I(s){if(s.data.cmd==="init"){let e=s.data.id;if(!g){let r=await S(s.data.args[0]);g=new h(r,{on_poll_request:()=>x.on_poll_request()}),x=new v(g)}E=g.make_session(async r=>{let i=r.slice().buffer;this.postMessage(i,{transfer:[i]})}),this.postMessage({id:e})}else if(E)await E?.handle_request(new Uint8Array(s.data));else throw new Error("No session")}function T(s){let e=s.ports[0];e.addEventListener("message",I.bind(e)),e.start()}self.addEventListener("connect",T);self.addEventListener("message",I.bind(self));})();\n';function le(n,e){function t(a,c){a==="message"&&n.push(c)}function r(a){let c=n.indexOf(a);c>-1&&n.splice(c,1)}function s(a,c){for(let b of e)b({data:a,ports:c})}return{addEventListener:t,removeEventListener:r,postMessage:s,location:{href:""}}}function Ne(n){console.error("Running perspective in single-threaded mode");let e=Function("const self = arguments[0];"+n),t=[],r=[];return e(le(t,r)),le(r,t)}var ze=async function(){try{if(window.location.protocol.startsWith("file"))return console.warn("file:// protocol does not support Web Workers"),Ne(K);{let n=new Blob([K],{type:"application/javascript"}),e=URL.createObjectURL(n);return new Worker(e,{type:"module"})}}catch(n){console.error("Error instantiating engine",n)}},ge=ze;var A;async function qe(n){return ae(await Q(),n)}function De(n,e=!1){n instanceof Uint8Array?A=Promise.resolve(n.buffer):n instanceof Response?A=Promise.resolve(n):n instanceof Promise?A=n:A=Promise.resolve(n),e||(A=A.then(t=>Y(t).then(r=>r.buffer)))}var x;async function z(n,e=!1){let t=e?n:await Y(n);return await J({module_or_path:t}),await G(),X}function Ve(n,e=!1){n instanceof Uint8Array?x=z(n.buffer,e):n instanceof ArrayBuffer||n instanceof Response||n instanceof Promise?x=z(n,e):n instanceof Object&&(x=Promise.resolve(n))}function Q(){let n=customElements.get("perspective-viewer");if(n)x=Promise.resolve(n.__wasm_module__);else if(x===void 0)throw new Error("Missing perspective-client.wasm");return x}function He(){if(A===void 0)throw new Error("Missing perspective-server.wasm");return A.then(n=>n instanceof WebAssembly.Module?n:n.slice(0))}var we;function $e(){return we===void 0?ge():we()}async function Ge(n){return await be(Q(),n)}async function Je(n){return typeof n>"u"&&(n=$e()),await ue(Q(),He(),n)}var Z={websocket:Ge,worker:Je,init_client:Ve,init_server:De,createMessageHandler:qe};var Xe=new URL("../../../server/dist/wasm/perspective-server.wasm",import.meta.url);Z.init_server(fetch(Xe));var at=Z;export{qe as createMessageHandler,at as default,Ve as init_client,De as init_server,Ge as websocket,Je as worker};
|
|
3
3
|
//# sourceMappingURL=perspective.js.map
|