@perspective-dev/client 4.4.1 → 4.5.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 +2 -2
- package/dist/cdn/perspective.js +2 -2
- package/dist/cdn/perspective.js.map +3 -3
- package/dist/esm/perspective.browser.d.ts +19 -0
- package/dist/esm/perspective.inline.js +2 -2
- package/dist/esm/perspective.inline.js.map +3 -3
- package/dist/esm/perspective.js +2 -2
- package/dist/esm/perspective.js.map +3 -3
- package/dist/esm/perspective.node.d.ts +12 -0
- package/dist/esm/perspective.node.js +160 -15
- package/dist/esm/perspective.node.js.map +2 -2
- package/dist/esm/ts-rs/TypedArrayWindow.d.ts +31 -0
- package/dist/esm/ts-rs/ViewWindow.d.ts +6 -0
- package/dist/esm/virtual_servers/duckdb.js +1 -1
- package/dist/esm/virtual_servers/duckdb.js.map +2 -2
- package/dist/wasm/perspective-js.d.ts +51 -5
- package/dist/wasm/perspective-js.js +167 -14
- package/dist/wasm/perspective-js.wasm +0 -0
- package/dist/wasm/perspective-js.wasm.d.ts +8 -5
- package/package.json +27 -3
- package/src/rust/client.rs +28 -0
- package/src/rust/lib.rs +4 -0
- package/src/rust/typed_array.rs +243 -0
- package/src/rust/view.rs +38 -0
- package/src/rust/virtual_server.rs +4 -4
- package/src/ts/perspective.browser.ts +89 -7
- package/src/ts/perspective.node.ts +15 -1
- package/src/ts/ts-rs/TypedArrayWindow.ts +26 -0
- package/src/ts/ts-rs/ViewWindow.ts +7 -1
- package/src/ts/virtual_servers/duckdb.ts +4 -0
- package/src/ts/wasm/engine.ts +2 -2
- package/src/ts/wasm/perspective-server.poly.ts +1 -1
|
@@ -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,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
|
|
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 B(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 B(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.getUint32(s*12,!0),e.getUint32(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 I=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?I:H)(L(r,0)),r.length=0):r.push(t)}async function U(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 M(n){let t=await U({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 M(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\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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
|
|
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.getUint32(i * 12, true),\n messages.getUint32(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 // @ts-ignore This is helpful for debugging\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
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 we=Object.defineProperty;var ye=(n,e)=>{for(var t in e)we(n,t,{get:e[t],enumerable:!0})};function te(n,e){let t;async function r(i,u){if(u.data.cmd==="init")try{t=new n.VirtualServer(e),u.data.id!==void 0?i.postMessage({id:u.data.id}):i.postMessage(null)}catch(c){throw console.error("Error initializing worker:",c),c}else try{let c=new Uint8Array(u.data),b=(await t.handleRequest(c)).slice().buffer;i.postMessage(b,{transfer:[b]})}catch(c){throw console.error("Error handling request in worker:",c),c}}let s=new MessageChannel;return s.port1.onmessage=i=>{r(s.port1,i)},s.port2}var K={};ye(K,{Client:()=>j,GenericSQLVirtualServerModel:()=>S,ProxySession:()=>B,Table:()=>C,View:()=>R,VirtualDataSlice:()=>k,VirtualServer:()=>M,default:()=>Q,init:()=>J,initSync:()=>Be});var j=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_client_free(e,0)}__getClassname(){try{let s=_.__wbindgen_add_to_stack_pointer(-16);_.client___getClassname(s,this.__wbg_ptr);var e=l().getInt32(s+0,!0),t=l().getInt32(s+4,!0),r=y(e,t);return e!==0&&_.__wbindgen_export4(e,t,1),r}finally{_.__wbindgen_add_to_stack_pointer(16)}}get_hosted_table_names(){let e=_.client_get_hosted_table_names(this.__wbg_ptr);return f(e)}handle_error(e,t){let r=w(e,_.__wbindgen_export,_.__wbindgen_export2),s=p,i=_.client_handle_error(this.__wbg_ptr,r,s,g(t)?0:a(t));return f(i)}handle_response(e){let t=_.client_handle_response(this.__wbg_ptr,a(e));return f(t)}join(e,t,r,s){let i=w(r,_.__wbindgen_export,_.__wbindgen_export2),u=p,c=_.client_join(this.__wbg_ptr,a(e),a(t),i,u,g(s)?0:a(s));return f(c)}constructor(e,t){try{let u=_.__wbindgen_add_to_stack_pointer(-16);_.client_new(u,a(e),g(t)?0:a(t));var r=l().getInt32(u+0,!0),s=l().getInt32(u+4,!0),i=l().getInt32(u+8,!0);if(i)throw f(s);return this.__wbg_ptr=r>>>0,V.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,ae(e));return B.__wrap(t)}finally{I[L++]=void 0}}on_error(e){let t=_.client_on_error(this.__wbg_ptr,a(e));return f(t)}on_hosted_tables_update(e){let t=_.client_on_hosted_tables_update(this.__wbg_ptr,a(e));return f(t)}open_table(e){let t=w(e,_.__wbindgen_export,_.__wbindgen_export2),r=p,s=_.client_open_table(this.__wbg_ptr,t,r);return f(s)}remove_hosted_tables_update(e){let t=_.client_remove_hosted_tables_update(this.__wbg_ptr,e);return f(t)}system_info(){let e=_.client_system_info(this.__wbg_ptr);return f(e)}table(e,t){let r=_.client_table(this.__wbg_ptr,a(e),g(t)?0:a(t));return f(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 f(t);return f(e)}finally{_.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(j.prototype[Symbol.dispose]=j.prototype.free);var S=class{__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_genericsqlvirtualservermodel_free(e,0)}getHostedTables(){try{let u=_.__wbindgen_add_to_stack_pointer(-16);_.genericsqlvirtualservermodel_getHostedTables(u,this.__wbg_ptr);var e=l().getInt32(u+0,!0),t=l().getInt32(u+4,!0),r=l().getInt32(u+8,!0),s=l().getInt32(u+12,!0);if(s)throw f(r);var i=y(e,t);return e!==0&&_.__wbindgen_export4(e,t,1),i}finally{_.__wbindgen_add_to_stack_pointer(16)}}constructor(e){try{let i=_.__wbindgen_add_to_stack_pointer(-16);_.genericsqlvirtualservermodel_new(i,g(e)?0:a(e));var t=l().getInt32(i+0,!0),r=l().getInt32(i+4,!0),s=l().getInt32(i+8,!0);if(s)throw f(r);return this.__wbg_ptr=t>>>0,re.register(this,this.__wbg_ptr,this),this}finally{_.__wbindgen_add_to_stack_pointer(16)}}tableMakeView(e,t,r){try{let b=_.__wbindgen_add_to_stack_pointer(-16),m=w(e,_.__wbindgen_export,_.__wbindgen_export2),v=p,h=w(t,_.__wbindgen_export,_.__wbindgen_export2),A=p;_.genericsqlvirtualservermodel_tableMakeView(b,this.__wbg_ptr,m,v,h,A,a(r));var s=l().getInt32(b+0,!0),i=l().getInt32(b+4,!0),u=l().getInt32(b+8,!0),c=l().getInt32(b+12,!0);if(c)throw f(u);var d=y(s,i);return s!==0&&_.__wbindgen_export4(s,i,1),d}finally{_.__wbindgen_add_to_stack_pointer(16)}}tableSchema(e){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.genericsqlvirtualservermodel_tableSchema(c,this.__wbg_ptr,d,b);var t=l().getInt32(c+0,!0),r=l().getInt32(c+4,!0),s=l().getInt32(c+8,!0),i=l().getInt32(c+12,!0);if(i)throw f(s);var u=y(t,r);return t!==0&&_.__wbindgen_export4(t,r,1),u}finally{_.__wbindgen_add_to_stack_pointer(16)}}tableSize(e){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.genericsqlvirtualservermodel_tableSize(c,this.__wbg_ptr,d,b);var t=l().getInt32(c+0,!0),r=l().getInt32(c+4,!0),s=l().getInt32(c+8,!0),i=l().getInt32(c+12,!0);if(i)throw f(s);var u=y(t,r);return t!==0&&_.__wbindgen_export4(t,r,1),u}finally{_.__wbindgen_add_to_stack_pointer(16)}}tableValidateExpression(e,t){try{let d=_.__wbindgen_add_to_stack_pointer(-16),b=w(e,_.__wbindgen_export,_.__wbindgen_export2),m=p,v=w(t,_.__wbindgen_export,_.__wbindgen_export2),h=p;_.genericsqlvirtualservermodel_tableValidateExpression(d,this.__wbg_ptr,b,m,v,h);var r=l().getInt32(d+0,!0),s=l().getInt32(d+4,!0),i=l().getInt32(d+8,!0),u=l().getInt32(d+12,!0);if(u)throw f(i);var c=y(r,s);return r!==0&&_.__wbindgen_export4(r,s,1),c}finally{_.__wbindgen_add_to_stack_pointer(16)}}viewColumnSize(e){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.genericsqlvirtualservermodel_viewColumnSize(c,this.__wbg_ptr,d,b);var t=l().getInt32(c+0,!0),r=l().getInt32(c+4,!0),s=l().getInt32(c+8,!0),i=l().getInt32(c+12,!0);if(i)throw f(s);var u=y(t,r);return t!==0&&_.__wbindgen_export4(t,r,1),u}finally{_.__wbindgen_add_to_stack_pointer(16)}}viewDelete(e){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.genericsqlvirtualservermodel_viewDelete(c,this.__wbg_ptr,d,b);var t=l().getInt32(c+0,!0),r=l().getInt32(c+4,!0),s=l().getInt32(c+8,!0),i=l().getInt32(c+12,!0);if(i)throw f(s);var u=y(t,r);return t!==0&&_.__wbindgen_export4(t,r,1),u}finally{_.__wbindgen_add_to_stack_pointer(16)}}viewGetData(e,t,r,s){try{let m=_.__wbindgen_add_to_stack_pointer(-16),v=w(e,_.__wbindgen_export,_.__wbindgen_export2),h=p;_.genericsqlvirtualservermodel_viewGetData(m,this.__wbg_ptr,v,h,a(t),a(r),a(s));var i=l().getInt32(m+0,!0),u=l().getInt32(m+4,!0),c=l().getInt32(m+8,!0),d=l().getInt32(m+12,!0);if(d)throw f(c);var b=y(i,u);return i!==0&&_.__wbindgen_export4(i,u,1),b}finally{_.__wbindgen_add_to_stack_pointer(16)}}viewGetMinMax(e,t,r){try{let b=_.__wbindgen_add_to_stack_pointer(-16),m=w(e,_.__wbindgen_export,_.__wbindgen_export2),v=p,h=w(t,_.__wbindgen_export,_.__wbindgen_export2),A=p;_.genericsqlvirtualservermodel_viewGetMinMax(b,this.__wbg_ptr,m,v,h,A,a(r));var s=l().getInt32(b+0,!0),i=l().getInt32(b+4,!0),u=l().getInt32(b+8,!0),c=l().getInt32(b+12,!0);if(c)throw f(u);var d=y(s,i);return s!==0&&_.__wbindgen_export4(s,i,1),d}finally{_.__wbindgen_add_to_stack_pointer(16)}}viewSchema(e){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.genericsqlvirtualservermodel_viewSchema(c,this.__wbg_ptr,d,b);var t=l().getInt32(c+0,!0),r=l().getInt32(c+4,!0),s=l().getInt32(c+8,!0),i=l().getInt32(c+12,!0);if(i)throw f(s);var u=y(t,r);return t!==0&&_.__wbindgen_export4(t,r,1),u}finally{_.__wbindgen_add_to_stack_pointer(16)}}viewSize(e){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.genericsqlvirtualservermodel_viewSize(c,this.__wbg_ptr,d,b);var t=l().getInt32(c+0,!0),r=l().getInt32(c+4,!0),s=l().getInt32(c+8,!0),i=l().getInt32(c+12,!0);if(i)throw f(s);var u=y(t,r);return t!==0&&_.__wbindgen_export4(t,r,1),u}finally{_.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(S.prototype[Symbol.dispose]=S.prototype.free);var B=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_proxysession_free(e,0)}close(){let e=this.__destroy_into_raw(),t=_.proxysession_close(e);return f(t)}handle_request(e){let t=_.proxysession_handle_request(this.__wbg_ptr,a(e));return f(t)}constructor(e,t){try{Ie(e,j);let r=_.proxysession_new(e.__wbg_ptr,ae(t));return this.__wbg_ptr=r>>>0,D.register(this,this.__wbg_ptr,this),this}finally{I[L++]=void 0}}};Symbol.dispose&&(B.prototype[Symbol.dispose]=B.prototype.free);var C=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=l().getInt32(s+0,!0),t=l().getInt32(s+4,!0),r=y(e,t);return e!==0&&_.__wbindgen_export4(e,t,1),r}finally{_.__wbindgen_add_to_stack_pointer(16)}}clear(){let e=_.table_clear(this.__wbg_ptr);return f(e)}columns(){let e=_.table_columns(this.__wbg_ptr);return f(e)}delete(e){let t=this.__destroy_into_raw(),r=_.table_delete(t,g(e)?0:a(e));return f(r)}get_client(){let e=_.table_get_client(this.__wbg_ptr);return f(e)}get_index(){let e=_.table_get_index(this.__wbg_ptr);return f(e)}get_limit(){let e=_.table_get_limit(this.__wbg_ptr);return f(e)}get_name(){let e=_.table_get_name(this.__wbg_ptr);return f(e)}make_port(){let e=_.table_make_port(this.__wbg_ptr);return f(e)}on_delete(e){let t=_.table_on_delete(this.__wbg_ptr,a(e));return f(t)}remove(e,t){let r=_.table_remove(this.__wbg_ptr,a(e),g(t)?0:a(t));return f(r)}remove_delete(e){let t=_.table_remove_delete(this.__wbg_ptr,e);return f(t)}replace(e,t){let r=_.table_replace(this.__wbg_ptr,a(e),g(t)?0:a(t));return f(r)}schema(){let e=_.table_schema(this.__wbg_ptr);return f(e)}size(){let e=_.table_size(this.__wbg_ptr);return f(e)}update(e,t){let r=_.table_update(this.__wbg_ptr,a(e),g(t)?0:a(t));return f(r)}validate_expressions(e){let t=_.table_validate_expressions(this.__wbg_ptr,a(e));return f(t)}view(e){let t=_.table_view(this.__wbg_ptr,g(e)?0:a(e));return f(t)}};Symbol.dispose&&(C.prototype[Symbol.dispose]=C.prototype.free);var R=class n{static __wrap(e){e=e>>>0;let t=Object.create(n.prototype);return t.__wbg_ptr=e,_e.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,_e.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)}collapse(e){let t=_.view_collapse(this.__wbg_ptr,e);return f(t)}column_paths(e){let t=_.view_column_paths(this.__wbg_ptr,g(e)?0:a(e));return f(t)}delete(){let e=this.__destroy_into_raw(),t=_.view_delete(e);return f(t)}dimensions(){let e=_.view_dimensions(this.__wbg_ptr);return f(e)}expand(e){let t=_.view_expand(this.__wbg_ptr,e);return f(t)}expression_schema(){let e=_.view_expression_schema(this.__wbg_ptr);return f(e)}get_config(){let e=_.view_get_config(this.__wbg_ptr);return f(e)}get_min_max(e){let t=w(e,_.__wbindgen_export,_.__wbindgen_export2),r=p,s=_.view_get_min_max(this.__wbg_ptr,t,r);return f(s)}num_columns(){let e=_.view_num_columns(this.__wbg_ptr);return f(e)}num_rows(){let e=_.view_num_rows(this.__wbg_ptr);return f(e)}on_delete(e){let t=_.view_on_delete(this.__wbg_ptr,a(e));return f(t)}on_update(e,t){let r=_.view_on_update(this.__wbg_ptr,a(e),g(t)?0:a(t));return f(r)}remove_delete(e){let t=_.view_remove_delete(this.__wbg_ptr,e);return f(t)}remove_update(e){let t=_.view_remove_update(this.__wbg_ptr,e);return f(t)}schema(){let e=_.view_schema(this.__wbg_ptr);return f(e)}set_depth(e){let t=_.view_set_depth(this.__wbg_ptr,e);return f(t)}to_arrow(e){let t=_.view_to_arrow(this.__wbg_ptr,g(e)?0:a(e));return f(t)}to_columns(e){let t=_.view_to_columns(this.__wbg_ptr,g(e)?0:a(e));return f(t)}to_columns_string(e){let t=_.view_to_columns_string(this.__wbg_ptr,g(e)?0:a(e));return f(t)}to_csv(e){let t=_.view_to_csv(this.__wbg_ptr,g(e)?0:a(e));return f(t)}to_json(e){let t=_.view_to_json(this.__wbg_ptr,g(e)?0:a(e));return f(t)}to_json_string(e){let t=_.view_to_json_string(this.__wbg_ptr,g(e)?0:a(e));return f(t)}to_ndjson(e){let t=_.view_to_ndjson(this.__wbg_ptr,g(e)?0:a(e));return f(t)}};Symbol.dispose&&(R.prototype[Symbol.dispose]=R.prototype.free);var k=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_virtualdataslice_free(e,0)}fromArrowIpc(e){try{let s=_.__wbindgen_add_to_stack_pointer(-16);_.virtualdataslice_fromArrowIpc(s,this.__wbg_ptr,a(e));var t=l().getInt32(s+0,!0),r=l().getInt32(s+4,!0);if(r)throw f(t)}finally{_.__wbindgen_add_to_stack_pointer(16)}}constructor(e){let t=_.virtualdataslice_new(a(e));return this.__wbg_ptr=t>>>0,H.register(this,this.__wbg_ptr,this),this}setBooleanCol(e,t,r,s){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.virtualdataslice_setBooleanCol(c,this.__wbg_ptr,d,b,t,a(r),g(s)?4294967297:s>>>0);var i=l().getInt32(c+0,!0),u=l().getInt32(c+4,!0);if(u)throw f(i)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setCol(e,t,r,s,i){try{let d=_.__wbindgen_add_to_stack_pointer(-16),b=w(e,_.__wbindgen_export,_.__wbindgen_export2),m=p,v=w(t,_.__wbindgen_export,_.__wbindgen_export2),h=p;_.virtualdataslice_setCol(d,this.__wbg_ptr,b,m,v,h,r,a(s),g(i)?4294967297:i>>>0);var u=l().getInt32(d+0,!0),c=l().getInt32(d+4,!0);if(c)throw f(u)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setDatetimeCol(e,t,r,s){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.virtualdataslice_setDatetimeCol(c,this.__wbg_ptr,d,b,t,a(r),g(s)?4294967297:s>>>0);var i=l().getInt32(c+0,!0),u=l().getInt32(c+4,!0);if(u)throw f(i)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setFloatCol(e,t,r,s){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.virtualdataslice_setFloatCol(c,this.__wbg_ptr,d,b,t,a(r),g(s)?4294967297:s>>>0);var i=l().getInt32(c+0,!0),u=l().getInt32(c+4,!0);if(u)throw f(i)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setIntegerCol(e,t,r,s){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.virtualdataslice_setIntegerCol(c,this.__wbg_ptr,d,b,t,a(r),g(s)?4294967297:s>>>0);var i=l().getInt32(c+0,!0),u=l().getInt32(c+4,!0);if(u)throw f(i)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setStringCol(e,t,r,s){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.virtualdataslice_setStringCol(c,this.__wbg_ptr,d,b,t,a(r),g(s)?4294967297:s>>>0);var i=l().getInt32(c+0,!0),u=l().getInt32(c+4,!0);if(u)throw f(i)}finally{_.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(k.prototype[Symbol.dispose]=k.prototype.free);var M=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,se.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_virtualserver_free(e,0)}handleRequest(e){let t=Pe(e,_.__wbindgen_export),r=p,s=_.virtualserver_handleRequest(this.__wbg_ptr,t,r);return f(s)}constructor(e){try{let i=_.__wbindgen_add_to_stack_pointer(-16);_.virtualserver_new(i,a(e));var t=l().getInt32(i+0,!0),r=l().getInt32(i+4,!0),s=l().getInt32(i+8,!0);if(s)throw f(r);return this.__wbg_ptr=t>>>0,se.register(this,this.__wbg_ptr,this),this}finally{_.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(M.prototype[Symbol.dispose]=M.prototype.free);function J(){_.init()}function oe(){return{__proto__:null,"./perspective-js.wasm_bg.js":{__proto__:null,__wbg_Error_8c4e43fe74559d73:function(e,t){var r=y(e,t);let s=Error(r);return a(s)},__wbg_Number_04624de7d0e8332d:function(e){return Number(o(e))},__wbg_String_8f0eb39a4a4c2f66:function(e,t){let r=String(o(t)),s=w(r,_.__wbindgen_export,_.__wbindgen_export2),i=p;l().setInt32(e+4,i,!0),l().setInt32(e+0,s,!0)},__wbg___wbindgen_bigint_get_as_i64_8fcf4ce7f1ca72a2:function(e,t){let r=o(t),s=typeof r=="bigint"?r:void 0;l().setBigInt64(e+8,g(s)?BigInt(0):s,!0),l().setInt32(e+0,!g(s),!0)},__wbg___wbindgen_boolean_get_bbbb1c18aa2f5e25:function(e){let t=o(e),r=typeof t=="boolean"?t:void 0;return g(r)?16777215:r?1:0},__wbg___wbindgen_debug_string_0bc8482c6e3508ae:function(e,t){let r=$(o(t)),s=w(r,_.__wbindgen_export,_.__wbindgen_export2),i=p;l().setInt32(e+4,i,!0),l().setInt32(e+0,s,!0)},__wbg___wbindgen_in_47fa6863be6f2f25:function(e,t){return o(e)in o(t)},__wbg___wbindgen_is_bigint_31b12575b56f32fc:function(e){return typeof o(e)=="bigint"},__wbg___wbindgen_is_function_0095a73b8b156f76:function(e){return typeof o(e)=="function"},__wbg___wbindgen_is_null_ac34f5003991759a:function(e){return o(e)===null},__wbg___wbindgen_is_object_5ae8e5880f2c1fbd:function(e){let t=o(e);return typeof t=="object"&&t!==null},__wbg___wbindgen_is_string_cd444516edc5b180:function(e){return typeof o(e)=="string"},__wbg___wbindgen_is_undefined_9e4d92534c42d778:function(e){return o(e)===void 0},__wbg___wbindgen_jsval_eq_11888390b0186270:function(e,t){return o(e)===o(t)},__wbg___wbindgen_jsval_loose_eq_9dd77d8cd6671811:function(e,t){return o(e)==o(t)},__wbg___wbindgen_number_get_8ff4255516ccad3e:function(e,t){let r=o(t),s=typeof r=="number"?r:void 0;l().setFloat64(e+8,g(s)?0:s,!0),l().setInt32(e+0,!g(s),!0)},__wbg___wbindgen_string_get_72fb696202c56729:function(e,t){let r=o(t),s=typeof r=="string"?r:void 0;var i=g(s)?0:w(s,_.__wbindgen_export,_.__wbindgen_export2),u=p;l().setInt32(e+4,u,!0),l().setInt32(e+0,i,!0)},__wbg___wbindgen_throw_be289d5034ed271b:function(e,t){var r=y(e,t);throw new Error(r)},__wbg__wbg_cb_unref_d9b87ff7982e3b21:function(e){o(e)._wbg_cb_unref()},__wbg_apply_ada2ee1a60ac7b3c:function(){return x(function(e,t,r){let s=o(e).apply(o(t),o(r));return a(s)},arguments)},__wbg_at_dfc235641cc0e40c:function(e,t){let r=o(e).at(t);return a(r)},__wbg_buffer_26d0910f3a5bc899:function(e){let t=o(e).buffer;return a(t)},__wbg_call_389efe28435a9388:function(){return x(function(e,t){let r=o(e).call(o(t));return a(r)},arguments)},__wbg_call_4708e0c13bdc8e95:function(){return x(function(e,t,r){let s=o(e).call(o(t),o(r));return a(s)},arguments)},__wbg_call_812d25f1510c13c8:function(){return x(function(e,t,r,s){let i=o(e).call(o(t),o(r),o(s));return a(i)},arguments)},__wbg_client_new:function(e){let t=j.__wrap(e);return a(t)},__wbg_debug_46a93995fc6f8820:function(e,t,r,s){console.debug(o(e),o(t),o(r),o(s))},__wbg_debug_a4099fa12db6cd61:function(e){console.debug(o(e))},__wbg_done_57b39ecd9addfe81:function(e){return o(e).done},__wbg_entries_58c7934c745daac7:function(e){let t=Object.entries(o(e));return a(t)},__wbg_error_794d0ffc9d00d5c3:function(e,t,r,s){console.error(o(e),o(t),o(r),o(s))},__wbg_error_9a7fe3f932034cde:function(e){console.error(o(e))},__wbg_error_f852e41c69b0bd84:function(e,t){console.error(o(e),o(t))},__wbg_from_bddd64e7d5ff6941:function(e){let t=Array.from(o(e));return a(t)},__wbg_getEntriesByName_02488cff0bc7581c:function(e,t,r,s,i){var u=y(t,r),c=y(s,i);let d=o(e).getEntriesByName(u,c);return a(d)},__wbg_getRandomValues_1c61fac11405ffdc:function(){return x(function(e,t){globalThis.crypto.getRandomValues(U(e,t))},arguments)},__wbg_getTime_1e3cd1391c5c3995:function(e){return o(e).getTime()},__wbg_get_76e04509d1922a04:function(e,t,r){var s=y(t,r);let i=o(e)[s];return g(i)?0:a(i)},__wbg_get_9b94d73e6221f75c:function(e,t){let r=o(e)[t>>>0];return a(r)},__wbg_get_b3ed3ad4be2bc8ac:function(){return x(function(e,t){let r=Reflect.get(o(e),o(t));return a(r)},arguments)},__wbg_get_with_ref_key_1dc361bd10053bfe:function(e,t){let r=o(e)[o(t)];return a(r)},__wbg_has_d4e53238966c12b6:function(){return x(function(e,t){return Reflect.has(o(e),o(t))},arguments)},__wbg_info_148d043840582012:function(e){console.info(o(e))},__wbg_info_9e602cf10c5c690b:function(e,t,r,s){console.info(o(e),o(t),o(r),o(s))},__wbg_instanceof_ArrayBuffer_c367199e2fa2aa04:function(e){let t;try{t=o(e)instanceof ArrayBuffer}catch{t=!1}return t},__wbg_instanceof_Array_d9eac779cd191cbc:function(e){let t;try{t=o(e)instanceof Array}catch{t=!1}return t},__wbg_instanceof_Date_1b9f15b87f10aa4c:function(e){let t;try{t=o(e)instanceof Date}catch{t=!1}return t},__wbg_instanceof_Error_8573fe0b0b480f46:function(e){let t;try{t=o(e)instanceof Error}catch{t=!1}return t},__wbg_instanceof_Map_53af74335dec57f4:function(e){let t;try{t=o(e)instanceof Map}catch{t=!1}return t},__wbg_instanceof_Object_1c6af87502b733ed:function(e){let t;try{t=o(e)instanceof Object}catch{t=!1}return t},__wbg_instanceof_Promise_0094681e3519d6ec:function(e){let t;try{t=o(e)instanceof Promise}catch{t=!1}return t},__wbg_instanceof_Uint8Array_9b9075935c74707c:function(e){let t;try{t=o(e)instanceof Uint8Array}catch{t=!1}return t},__wbg_instanceof_Window_ed49b2db8df90359:function(e){let t;try{t=o(e)instanceof Window}catch{t=!1}return t},__wbg_isArray_d314bb98fcf08331:function(e){return Array.isArray(o(e))},__wbg_isSafeInteger_bfbc7332a9768d2a:function(e){return Number.isSafeInteger(o(e))},__wbg_iterator_6ff6560ca1568e55:function(){return a(Symbol.iterator)},__wbg_keys_b50a709a76add04e:function(e){let t=Object.keys(o(e));return a(t)},__wbg_length_32ed9a279acd054c:function(e){return o(e).length},__wbg_length_35a7bace40f36eac:function(e){return o(e).length},__wbg_mark_3b530a64b09ba08a:function(){return x(function(e,t,r){var s=y(t,r);o(e).mark(s)},arguments)},__wbg_measure_288b48c082eae0fe:function(){return x(function(e,t,r,s,i){var u=y(t,r),c=y(s,i);o(e).measure(u,c)},arguments)},__wbg_message_9ddc4b9a62a7c379:function(e){let t=o(e).message;return a(t)},__wbg_new_361308b2356cecd0:function(){let e=new Object;return a(e)},__wbg_new_3eb36ae241fe6f44:function(){let e=new Array;return a(e)},__wbg_new_72b49615380db768:function(e,t){var r=y(e,t);let s=new Error(r);return a(s)},__wbg_new_b5d9e2fb389fef91:function(e,t){try{var r={a:e,b:t},s=(u,c)=>{let d=r.a;r.a=0;try{return xe(d,r.b,u,c)}finally{r.a=d}};let i=new Promise(s);return a(i)}finally{r.a=r.b=0}},__wbg_new_dca287b076112a51:function(){return a(new Map)},__wbg_new_dd2b680c8bf6ae29:function(e){let t=new Uint8Array(o(e));return a(t)},__wbg_new_from_slice_a3d2629dc1826784:function(e,t){let r=new Uint8Array(U(e,t));return a(r)},__wbg_new_no_args_1c7c842f08d00ebb:function(e,t){var r=y(e,t);let s=new Function(r);return a(s)},__wbg_next_3482f54c49e8af19:function(){return x(function(e){let t=o(e).next();return a(t)},arguments)},__wbg_next_418f80d8f5303233:function(e){let t=o(e).next;return a(t)},__wbg_now_ebffdf7e580f210d:function(e){return o(e).now()},__wbg_parse_708461a1feddfb38:function(){return x(function(e,t){var r=y(e,t);let s=JSON.parse(r);return a(s)},arguments)},__wbg_performance_06f12ba62483475d:function(e){let t=o(e).performance;return g(t)?0:a(t)},__wbg_prototypesetcall_bdcdcc5842e4d77d:function(e,t,r){Uint8Array.prototype.set.call(U(e,t),o(r))},__wbg_push_8ffdcb2063340ba5:function(e,t){return o(e).push(o(t))},__wbg_queueMicrotask_0aa0a927f78f5d98:function(e){let t=o(e).queueMicrotask;return a(t)},__wbg_queueMicrotask_5bb536982f78a56f:function(e){queueMicrotask(o(e))},__wbg_reject_a2176de7f1212be5:function(e){let t=Promise.reject(o(e));return a(t)},__wbg_resolve_002c4b7d9d8f6b64:function(e){let t=Promise.resolve(o(e));return a(t)},__wbg_set_1eb0999cf5d27fc8:function(e,t,r){let s=o(e).set(o(t),o(r));return a(s)},__wbg_set_3f1d0b984ed272ed:function(e,t,r){o(e)[f(t)]=f(r)},__wbg_set_f43e577aea94465b:function(e,t,r){o(e)[t>>>0]=f(r)},__wbg_startTime_248495bfbcb427d3:function(e){return o(e).startTime},__wbg_static_accessor_GLOBAL_12837167ad935116:function(){let e=typeof global>"u"?null:global;return g(e)?0:a(e)},__wbg_static_accessor_GLOBAL_THIS_e628e89ab3b1c95f:function(){let e=typeof globalThis>"u"?null:globalThis;return g(e)?0:a(e)},__wbg_static_accessor_SELF_a621d3dfbb60d0ce:function(){let e=typeof self>"u"?null:self;return g(e)?0:a(e)},__wbg_static_accessor_WINDOW_f8727f0cf888e0bd:function(){let e=typeof window>"u"?null:window;return g(e)?0:a(e)},__wbg_stringify_8d1cc6ff383e8bae:function(){return x(function(e){let t=JSON.stringify(o(e));return a(t)},arguments)},__wbg_table_new:function(e){let t=C.__wrap(e);return a(t)},__wbg_then_0d9fe2c7b1857d32:function(e,t,r){let s=o(e).then(o(t),o(r));return a(s)},__wbg_then_b9e7b3b5f1a9e1b5:function(e,t){let r=o(e).then(o(t));return a(r)},__wbg_toString_964ff7fe6eca8362:function(e){let t=o(e).toString();return a(t)},__wbg_trace_9007714a6fbee374:function(e){console.trace(o(e))},__wbg_trace_bd16b570941b54fb:function(e,t,r,s){console.trace(o(e),o(t),o(r),o(s))},__wbg_value_0546255b415e96c1:function(e){let t=o(e).value;return a(t)},__wbg_values_5da93bc719d272cf:function(e){let t=Object.values(o(e));return a(t)},__wbg_view_new:function(e){let t=R.__wrap(e);return a(t)},__wbg_view_unwrap:function(e){return R.__unwrap(o(e))},__wbg_virtualdataslice_new:function(e){let t=k.__wrap(e);return a(t)},__wbg_warn_a40b971467b219c7:function(e,t,r,s){console.warn(o(e),o(t),o(r),o(s))},__wbg_warn_f7ae1b2e66ccb930:function(e){console.warn(o(e))},__wbindgen_cast_0000000000000001:function(e,t){let r=Me(e,t,_.__wasm_bindgen_func_elem_838,he);return a(r)},__wbindgen_cast_0000000000000002:function(e,t){let r=We(e,t,_.__wasm_bindgen_func_elem_3915,ve);return a(r)},__wbindgen_cast_0000000000000003:function(e){return a(e)},__wbindgen_cast_0000000000000004:function(e){return a(e)},__wbindgen_cast_0000000000000005:function(e,t){var r=y(e,t);return a(r)},__wbindgen_cast_0000000000000006:function(e,t){let r=U(e,t);return a(r)},__wbindgen_cast_0000000000000007:function(e){let t=BigInt.asUintN(64,e);return a(t)},__wbindgen_cast_0000000000000008:function(e,t){var r=ke(e,t).slice();return _.__wbindgen_export4(e,t*4,4),a(r)},__wbindgen_cast_0000000000000009:function(e,t){var r=U(e,t).slice();return _.__wbindgen_export4(e,t*1,1),a(r)},__wbindgen_object_clone_ref:function(e){let t=o(e);return a(t)},__wbindgen_object_drop_ref:function(e){f(e)}}}}function he(n,e){let t=_.__wasm_bindgen_func_elem_1727(n,e);return f(t)}function ve(n,e,t){_.__wasm_bindgen_func_elem_3932(n,e,a(t))}function xe(n,e,t,r){_.__wasm_bindgen_func_elem_10784(n,e,a(t),a(r))}var V=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_client_free(n>>>0,1)),re=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_genericsqlvirtualservermodel_free(n>>>0,1)),D=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_proxysession_free(n>>>0,1)),ne=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_table_free(n>>>0,1)),_e=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_view_free(n>>>0,1)),H=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_virtualdataslice_free(n>>>0,1)),se=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>_.__wbg_virtualserver_free(n>>>0,1));function a(n){F===I.length&&I.push(I.length+1);let e=F;return F=I[e],I[e]=n,e}function Ie(n,e){if(!(n instanceof e))throw new Error(`expected instance of ${e.name}`)}function ae(n){if(L==1)throw new Error("out of js stack");return I[--L]=n,L}var z=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>n.dtor(n.a,n.b));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,i="[";s>0&&(i+=$(n[0]));for(let u=1;u<s;u++)i+=", "+$(n[u]);return i+="]",i}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 Ae(n){n<132||(I[n]=F,F=n)}function ke(n,e){n=n>>>0;let t=l(),r=[];for(let s=n;s<n+4*e;s+=4)r.push(f(t.getUint32(s,!0)));return r}function U(n,e){return n=n>>>0,O().subarray(n/1,n/1+e)}function y(n,e){return n===0?o(e):Se(n,e)}var E=null;function l(){return(E===null||E.buffer.detached===!0||E.buffer.detached===void 0&&E.buffer!==_.memory.buffer)&&(E=new DataView(_.memory.buffer)),E}function Se(n,e){return n=n>>>0,je(n,e)}var T=null;function O(){return(T===null||T.byteLength===0)&&(T=new Uint8Array(_.memory.buffer)),T}function o(n){return I[n]}function x(n,e){try{return n.apply(this,e)}catch(t){_.__wbindgen_export3(a(t))}}var I=new Array(128).fill(void 0);I.push(void 0,null,!0,!1);var F=I.length;function g(n){return n==null}function Me(n,e,t,r){let s={a:n,b:e,cnt:1,dtor:t},i=(...u)=>{s.cnt++;try{return r(s.a,s.b,...u)}finally{i._wbg_cb_unref()}};return i._wbg_cb_unref=()=>{--s.cnt===0&&(s.dtor(s.a,s.b),s.a=0,z.unregister(s))},z.register(i,s,s),i}function We(n,e,t,r){let s={a:n,b:e,cnt:1,dtor:t},i=(...u)=>{s.cnt++;let c=s.a;s.a=0;try{return r(c,s.b,...u)}finally{s.a=c,i._wbg_cb_unref()}};return i._wbg_cb_unref=()=>{--s.cnt===0&&(s.dtor(s.a,s.b),s.a=0,z.unregister(s))},z.register(i,s,s),i}function Pe(n,e){let t=e(n.length*1,1)>>>0;return O().set(n,t/1),p=n.length,t}function w(n,e,t){if(t===void 0){let c=ie.encode(n),d=e(c.length,1)>>>0;return O().subarray(d,d+c.length).set(c),p=c.length,d}let r=n.length,s=e(r,1)>>>0,i=O(),u=0;for(;u<r;u++){let c=n.charCodeAt(u);if(c>127)break;i[s+u]=c}if(u!==r){u!==0&&(n=n.slice(u)),s=t(s,r,r=u+n.length*3,1)>>>0;let c=O().subarray(s+u,s+r),d=ie.encodeInto(n,c);u+=d.written,s=t(s,r,u,1)>>>0}return p=u,s}var L=128;function f(n){let e=o(n);return Ae(n),e}var q=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});q.decode();var Ee=2146435072,G=0;function je(n,e){return G+=e,G>=Ee&&(q=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),q.decode(),G=e),q.decode(O().subarray(n,n+e))}var ie=new TextEncoder,p=0,Re,_;function ce(n,e){return _=n.exports,Re=e,E=null,T=null,_}async function Oe(n,e){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,e)}catch(s){if(n.ok&&t(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",s);else throw s}let r=await n.arrayBuffer();return await WebAssembly.instantiate(r,e)}else{let r=await WebAssembly.instantiate(n,e);return r instanceof WebAssembly.Instance?{instance:r,module:n}:r}function t(r){switch(r){case"basic":case"cors":case"default":return!0}return!1}}function Be(n){if(_!==void 0)return _;n!==void 0&&(Object.getPrototypeOf(n)===Object.prototype?{module:n}=n:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let e=oe();n instanceof WebAssembly.Module||(n=new WebAssembly.Module(n));let t=new WebAssembly.Instance(n,e);return ce(t,n)}async function Q(n){if(_!==void 0)return _;n!==void 0&&(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=oe();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n));let{instance:t,module:r}=await Oe(await n,e);return ce(t,r)}function Ce(){let n,e,t=new Promise((r,s)=>{n=r,e=s});return[n,t,e]}async function ue(n,e,t,r){let s,i;async function u(){if(i?.readyState===n.CONNECTING||i?.readyState===n.OPEN){console.warn(`Already connected ${i.readyState}`);return}let[b,m,v]=Ce();i=new n(t,r),i.onopen=b,i.binaryType="arraybuffer",i.onerror=h=>{let A=h.message||"Generic Websocket Error";s.handle_error(A,u),v(A)},i.onclose=h=>{let A=`WebSocket closed ${h.code}`;s.handle_error(A,u),v(A)},i.onmessage=h=>{s.handle_response(h.data)},await m}async function c(b){if(i.readyState===n.CLOSING||i.readyState===n.CLOSED){let m=`WebSocket transport error (${i.readyState})`;throw s.handle_error(m,u),new Error(m)}else if(i.readyState===n.CONNECTING){let m=`WebSocket message dropped (${i.readyState})`;throw new Error(m)}else{let m=b.slice().buffer;i.send(m)}}async function d(){console.debug("Closing WebSocket"),i.close()}return s=new e(c,d),await u(),s}function Te(){let n,e,t=new Promise((r,s)=>{n=r,e=s});return[n,t,e]}async function Fe(n,e){let[t,r]=Te();n.addEventListener("message",function s(i){n.removeEventListener("message",s),t(null)}),n.onmessage=function(i){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 le(n,e,t){let[r,s]=await Promise.all([e,t]),{Client:i}=await n,u;typeof SharedWorker<"u"&&s instanceof SharedWorker?u=s.port:u=s;let c=new i(async d=>{let b=d.slice().buffer;u.postMessage(b,{transfer:[b]})},async()=>{console.debug("Closing WebWorker"),u.close(),s instanceof Worker&&s.terminate()});return await Fe(u,r),u.addEventListener("message",d=>{c.handle_response(d.data)}),c}async function fe(n,e){let{Client:t}=await n;return await ue(WebSocket,t,e)}async function de(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"),i=new DataView(s).getUint32(0,!0),u=t.resize(r.byteLength);new Uint8Array(t.memory.buffer).set(new Uint8Array(r),u);let c=t.compile(r.byteLength,i);return new Uint8Array(t.memory.buffer).slice(c,i+c)}if(typeof WebAssembly>"u")throw new Error("WebAssembly not supported.");async function X(n){n instanceof Function&&(n=await n());try{return await de(n)}catch{return console.warn("Stage 0 wasm loading failed, skipping"),new Uint8Array(n)}}var Y='"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 be(n,e){function t(i,u){i==="message"&&n.push(u)}function r(i){let u=n.indexOf(i);u>-1&&n.splice(u,1)}function s(i,u){for(let c of e)c({data:i,ports:u})}return{addEventListener:t,removeEventListener:r,postMessage:s,location:{href:""}}}function ze(n){console.error("Running perspective in single-threaded mode");let e=Function("const self = arguments[0];"+n),t=[],r=[];return e(be(t,r)),be(r,t)}var Ne=async function(){try{if(window.location.protocol.startsWith("file"))return console.warn("file:// protocol does not support Web Workers"),ze(Y);{let n=new Blob([Y],{type:"application/javascript"}),e=URL.createObjectURL(n);return new Worker(e,{type:"module"})}}catch(n){console.error("Error instantiating engine",n)}},ge=Ne;var W;async function Ve(n){return te(await Z(),n)}function De(n,e=!1){n instanceof Uint8Array?W=Promise.resolve(n.buffer):n instanceof Response?W=Promise.resolve(n):n instanceof Promise?W=n:W=Promise.resolve(n),e||(W=W.then(t=>X(t).then(r=>r.buffer)))}var P;async function N(n,e=!1){let t=e?n:await X(n);return await Q({module_or_path:t}),await J(),K}function He(n,e=!1){n instanceof Uint8Array?P=N(n.buffer,e):n instanceof ArrayBuffer||n instanceof Response||n instanceof Promise?P=N(n,e):n instanceof Object&&(P=Promise.resolve(n))}function Z(){let n=customElements.get("perspective-viewer");if(n)P=Promise.resolve(n.__wasm_module__);else if(P===void 0)throw new Error("Missing perspective-client.wasm");return P}function Ge(){if(W===void 0)throw new Error("Missing perspective-server.wasm");return W.then(n=>n instanceof WebAssembly.Module?n:n.slice(0))}var pe;function $e(){return pe===void 0?ge():pe()}async function Je(n){return await fe(Z(),n)}async function Qe(n){return typeof n>"u"&&(n=$e()),await le(Z(),Ge(),n)}var ee={websocket:Je,worker:Qe,init_client:He,init_server:De,createMessageHandler:Ve,GenericSQLVirtualServerModel:S,VirtualDataSlice:k,VirtualServer:M};var Ke=new URL("../../../server/dist/wasm/perspective-server.wasm",import.meta.url);ee.init_server(fetch(Ke));var ut=ee;export{S as GenericSQLVirtualServerModel,k as VirtualDataSlice,M as VirtualServer,Ve as createMessageHandler,ut as default,He as init_client,De as init_server,Je as websocket,Qe as worker};
|
|
1
|
+
var Ie=Object.defineProperty;var ke=(r,e)=>{for(var t in e)Ie(r,t,{get:e[t],enumerable:!0})};function oe(r,e){let t;async function n(o,u){if(u.data.cmd==="init")try{t=new r.VirtualServer(e),u.data.id!==void 0?o.postMessage({id:u.data.id}):o.postMessage(null)}catch(c){throw console.error("Error initializing worker:",c),c}else try{let c=new Uint8Array(u.data),b=(await t.handleRequest(c)).slice().buffer;o.postMessage(b,{transfer:[b]})}catch(c){throw console.error("Error handling request in worker:",c),c}}let s=new MessageChannel;return s.port1.onmessage=o=>{n(s.port1,o)},s.port2}var re={};ke(re,{Client:()=>R,GenericSQLVirtualServerModel:()=>S,ProxySession:()=>C,Table:()=>F,View:()=>W,VirtualDataSlice:()=>k,VirtualServer:()=>M,default:()=>te,init:()=>ee,initSync:()=>Qe});var R=class r{static __wrap(e){e=e>>>0;let t=Object.create(r.prototype);return t.__wbg_ptr=e,Q.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Q.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=l().getInt32(s+0,!0),t=l().getInt32(s+4,!0),n=y(e,t);return e!==0&&_.__wbindgen_export4(e,t,1),n}finally{_.__wbindgen_add_to_stack_pointer(16)}}__unsafe_open_view(e){let t=w(e,_.__wbindgen_export,_.__wbindgen_export2),n=p,s=_.client___unsafe_open_view(this.__wbg_ptr,t,n);return W.__wrap(s)}get_hosted_table_names(){let e=_.client_get_hosted_table_names(this.__wbg_ptr);return f(e)}handle_error(e,t){let n=w(e,_.__wbindgen_export,_.__wbindgen_export2),s=p,o=_.client_handle_error(this.__wbg_ptr,n,s,g(t)?0:a(t));return f(o)}handle_response(e){let t=_.client_handle_response(this.__wbg_ptr,a(e));return f(t)}join(e,t,n,s){let o=w(n,_.__wbindgen_export,_.__wbindgen_export2),u=p,c=_.client_join(this.__wbg_ptr,a(e),a(t),o,u,g(s)?0:a(s));return f(c)}constructor(e,t){try{let u=_.__wbindgen_add_to_stack_pointer(-16);_.client_new(u,a(e),g(t)?0:a(t));var n=l().getInt32(u+0,!0),s=l().getInt32(u+4,!0),o=l().getInt32(u+8,!0);if(o)throw f(s);return this.__wbg_ptr=n>>>0,Q.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,be(e));return C.__wrap(t)}finally{A[D++]=void 0}}on_error(e){let t=_.client_on_error(this.__wbg_ptr,a(e));return f(t)}on_hosted_tables_update(e){let t=_.client_on_hosted_tables_update(this.__wbg_ptr,a(e));return f(t)}open_table(e){let t=w(e,_.__wbindgen_export,_.__wbindgen_export2),n=p,s=_.client_open_table(this.__wbg_ptr,t,n);return f(s)}remove_hosted_tables_update(e){let t=_.client_remove_hosted_tables_update(this.__wbg_ptr,e);return f(t)}system_info(){let e=_.client_system_info(this.__wbg_ptr);return f(e)}table(e,t){let n=_.client_table(this.__wbg_ptr,a(e),g(t)?0:a(t));return f(n)}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),n=l().getInt32(s+8,!0);if(n)throw f(t);return f(e)}finally{_.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(R.prototype[Symbol.dispose]=R.prototype.free);var S=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ae.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_genericsqlvirtualservermodel_free(e,0)}getHostedTables(){try{let u=_.__wbindgen_add_to_stack_pointer(-16);_.genericsqlvirtualservermodel_getHostedTables(u,this.__wbg_ptr);var e=l().getInt32(u+0,!0),t=l().getInt32(u+4,!0),n=l().getInt32(u+8,!0),s=l().getInt32(u+12,!0);if(s)throw f(n);var o=y(e,t);return e!==0&&_.__wbindgen_export4(e,t,1),o}finally{_.__wbindgen_add_to_stack_pointer(16)}}constructor(e){try{let o=_.__wbindgen_add_to_stack_pointer(-16);_.genericsqlvirtualservermodel_new(o,g(e)?0:a(e));var t=l().getInt32(o+0,!0),n=l().getInt32(o+4,!0),s=l().getInt32(o+8,!0);if(s)throw f(n);return this.__wbg_ptr=t>>>0,ae.register(this,this.__wbg_ptr,this),this}finally{_.__wbindgen_add_to_stack_pointer(16)}}tableMakeView(e,t,n){try{let b=_.__wbindgen_add_to_stack_pointer(-16),m=w(e,_.__wbindgen_export,_.__wbindgen_export2),x=p,h=w(t,_.__wbindgen_export,_.__wbindgen_export2),I=p;_.genericsqlvirtualservermodel_tableMakeView(b,this.__wbg_ptr,m,x,h,I,a(n));var s=l().getInt32(b+0,!0),o=l().getInt32(b+4,!0),u=l().getInt32(b+8,!0),c=l().getInt32(b+12,!0);if(c)throw f(u);var d=y(s,o);return s!==0&&_.__wbindgen_export4(s,o,1),d}finally{_.__wbindgen_add_to_stack_pointer(16)}}tableSchema(e){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.genericsqlvirtualservermodel_tableSchema(c,this.__wbg_ptr,d,b);var t=l().getInt32(c+0,!0),n=l().getInt32(c+4,!0),s=l().getInt32(c+8,!0),o=l().getInt32(c+12,!0);if(o)throw f(s);var u=y(t,n);return t!==0&&_.__wbindgen_export4(t,n,1),u}finally{_.__wbindgen_add_to_stack_pointer(16)}}tableSize(e){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.genericsqlvirtualservermodel_tableSize(c,this.__wbg_ptr,d,b);var t=l().getInt32(c+0,!0),n=l().getInt32(c+4,!0),s=l().getInt32(c+8,!0),o=l().getInt32(c+12,!0);if(o)throw f(s);var u=y(t,n);return t!==0&&_.__wbindgen_export4(t,n,1),u}finally{_.__wbindgen_add_to_stack_pointer(16)}}tableValidateExpression(e,t){try{let d=_.__wbindgen_add_to_stack_pointer(-16),b=w(e,_.__wbindgen_export,_.__wbindgen_export2),m=p,x=w(t,_.__wbindgen_export,_.__wbindgen_export2),h=p;_.genericsqlvirtualservermodel_tableValidateExpression(d,this.__wbg_ptr,b,m,x,h);var n=l().getInt32(d+0,!0),s=l().getInt32(d+4,!0),o=l().getInt32(d+8,!0),u=l().getInt32(d+12,!0);if(u)throw f(o);var c=y(n,s);return n!==0&&_.__wbindgen_export4(n,s,1),c}finally{_.__wbindgen_add_to_stack_pointer(16)}}viewColumnSize(e){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.genericsqlvirtualservermodel_viewColumnSize(c,this.__wbg_ptr,d,b);var t=l().getInt32(c+0,!0),n=l().getInt32(c+4,!0),s=l().getInt32(c+8,!0),o=l().getInt32(c+12,!0);if(o)throw f(s);var u=y(t,n);return t!==0&&_.__wbindgen_export4(t,n,1),u}finally{_.__wbindgen_add_to_stack_pointer(16)}}viewDelete(e){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.genericsqlvirtualservermodel_viewDelete(c,this.__wbg_ptr,d,b);var t=l().getInt32(c+0,!0),n=l().getInt32(c+4,!0),s=l().getInt32(c+8,!0),o=l().getInt32(c+12,!0);if(o)throw f(s);var u=y(t,n);return t!==0&&_.__wbindgen_export4(t,n,1),u}finally{_.__wbindgen_add_to_stack_pointer(16)}}viewGetData(e,t,n,s){try{let m=_.__wbindgen_add_to_stack_pointer(-16),x=w(e,_.__wbindgen_export,_.__wbindgen_export2),h=p;_.genericsqlvirtualservermodel_viewGetData(m,this.__wbg_ptr,x,h,a(t),a(n),a(s));var o=l().getInt32(m+0,!0),u=l().getInt32(m+4,!0),c=l().getInt32(m+8,!0),d=l().getInt32(m+12,!0);if(d)throw f(c);var b=y(o,u);return o!==0&&_.__wbindgen_export4(o,u,1),b}finally{_.__wbindgen_add_to_stack_pointer(16)}}viewGetMinMax(e,t,n){try{let b=_.__wbindgen_add_to_stack_pointer(-16),m=w(e,_.__wbindgen_export,_.__wbindgen_export2),x=p,h=w(t,_.__wbindgen_export,_.__wbindgen_export2),I=p;_.genericsqlvirtualservermodel_viewGetMinMax(b,this.__wbg_ptr,m,x,h,I,a(n));var s=l().getInt32(b+0,!0),o=l().getInt32(b+4,!0),u=l().getInt32(b+8,!0),c=l().getInt32(b+12,!0);if(c)throw f(u);var d=y(s,o);return s!==0&&_.__wbindgen_export4(s,o,1),d}finally{_.__wbindgen_add_to_stack_pointer(16)}}viewSchema(e){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.genericsqlvirtualservermodel_viewSchema(c,this.__wbg_ptr,d,b);var t=l().getInt32(c+0,!0),n=l().getInt32(c+4,!0),s=l().getInt32(c+8,!0),o=l().getInt32(c+12,!0);if(o)throw f(s);var u=y(t,n);return t!==0&&_.__wbindgen_export4(t,n,1),u}finally{_.__wbindgen_add_to_stack_pointer(16)}}viewSize(e){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.genericsqlvirtualservermodel_viewSize(c,this.__wbg_ptr,d,b);var t=l().getInt32(c+0,!0),n=l().getInt32(c+4,!0),s=l().getInt32(c+8,!0),o=l().getInt32(c+12,!0);if(o)throw f(s);var u=y(t,n);return t!==0&&_.__wbindgen_export4(t,n,1),u}finally{_.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(S.prototype[Symbol.dispose]=S.prototype.free);var C=class r{static __wrap(e){e=e>>>0;let t=Object.create(r.prototype);return t.__wbg_ptr=e,K.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,K.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_proxysession_free(e,0)}close(){let e=this.__destroy_into_raw(),t=_.proxysession_close(e);return f(t)}handle_request(e){let t=_.proxysession_handle_request(this.__wbg_ptr,a(e));return f(t)}constructor(e,t){try{Ee(e,R);let n=_.proxysession_new(e.__wbg_ptr,be(t));return this.__wbg_ptr=n>>>0,K.register(this,this.__wbg_ptr,this),this}finally{A[D++]=void 0}}};Symbol.dispose&&(C.prototype[Symbol.dispose]=C.prototype.free);var F=class r{static __wrap(e){e=e>>>0;let t=Object.create(r.prototype);return t.__wbg_ptr=e,ce.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ce.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=l().getInt32(s+0,!0),t=l().getInt32(s+4,!0),n=y(e,t);return e!==0&&_.__wbindgen_export4(e,t,1),n}finally{_.__wbindgen_add_to_stack_pointer(16)}}clear(){let e=_.table_clear(this.__wbg_ptr);return f(e)}columns(){let e=_.table_columns(this.__wbg_ptr);return f(e)}delete(e){let t=this.__destroy_into_raw(),n=_.table_delete(t,g(e)?0:a(e));return f(n)}get_client(){let e=_.table_get_client(this.__wbg_ptr);return f(e)}get_index(){let e=_.table_get_index(this.__wbg_ptr);return f(e)}get_limit(){let e=_.table_get_limit(this.__wbg_ptr);return f(e)}get_name(){let e=_.table_get_name(this.__wbg_ptr);return f(e)}make_port(){let e=_.table_make_port(this.__wbg_ptr);return f(e)}on_delete(e){let t=_.table_on_delete(this.__wbg_ptr,a(e));return f(t)}remove(e,t){let n=_.table_remove(this.__wbg_ptr,a(e),g(t)?0:a(t));return f(n)}remove_delete(e){let t=_.table_remove_delete(this.__wbg_ptr,e);return f(t)}replace(e,t){let n=_.table_replace(this.__wbg_ptr,a(e),g(t)?0:a(t));return f(n)}schema(){let e=_.table_schema(this.__wbg_ptr);return f(e)}size(){let e=_.table_size(this.__wbg_ptr);return f(e)}update(e,t){let n=_.table_update(this.__wbg_ptr,a(e),g(t)?0:a(t));return f(n)}validate_expressions(e){let t=_.table_validate_expressions(this.__wbg_ptr,a(e));return f(t)}view(e){let t=_.table_view(this.__wbg_ptr,g(e)?0:a(e));return f(t)}};Symbol.dispose&&(F.prototype[Symbol.dispose]=F.prototype.free);var W=class r{static __wrap(e){e=e>>>0;let t=Object.create(r.prototype);return t.__wbg_ptr=e,ue.register(t,t.__wbg_ptr,t),t}static __unwrap(e){return e instanceof r?e.__destroy_into_raw():0}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ue.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 r.__wrap(e)}__unsafe_get_name(){try{let s=_.__wbindgen_add_to_stack_pointer(-16);_.view___unsafe_get_name(s,this.__wbg_ptr);var e=l().getInt32(s+0,!0),t=l().getInt32(s+4,!0),n=y(e,t);return e!==0&&_.__wbindgen_export4(e,t,1),n}finally{_.__wbindgen_add_to_stack_pointer(16)}}collapse(e){let t=_.view_collapse(this.__wbg_ptr,e);return f(t)}column_paths(e){let t=_.view_column_paths(this.__wbg_ptr,g(e)?0:a(e));return f(t)}delete(){let e=this.__destroy_into_raw(),t=_.view_delete(e);return f(t)}dimensions(){let e=_.view_dimensions(this.__wbg_ptr);return f(e)}expand(e){let t=_.view_expand(this.__wbg_ptr,e);return f(t)}expression_schema(){let e=_.view_expression_schema(this.__wbg_ptr);return f(e)}get_config(){let e=_.view_get_config(this.__wbg_ptr);return f(e)}get_min_max(e){let t=w(e,_.__wbindgen_export,_.__wbindgen_export2),n=p,s=_.view_get_min_max(this.__wbg_ptr,t,n);return f(s)}num_columns(){let e=_.view_num_columns(this.__wbg_ptr);return f(e)}num_rows(){let e=_.view_num_rows(this.__wbg_ptr);return f(e)}on_delete(e){let t=_.view_on_delete(this.__wbg_ptr,a(e));return f(t)}on_update(e,t){let n=_.view_on_update(this.__wbg_ptr,a(e),g(t)?0:a(t));return f(n)}remove_delete(e){let t=_.view_remove_delete(this.__wbg_ptr,e);return f(t)}remove_update(e){let t=_.view_remove_update(this.__wbg_ptr,e);return f(t)}schema(){let e=_.view_schema(this.__wbg_ptr);return f(e)}set_depth(e){let t=_.view_set_depth(this.__wbg_ptr,e);return f(t)}to_arrow(e){let t=_.view_to_arrow(this.__wbg_ptr,g(e)?0:a(e));return f(t)}to_columns(e){let t=_.view_to_columns(this.__wbg_ptr,g(e)?0:a(e));return f(t)}to_columns_string(e){let t=_.view_to_columns_string(this.__wbg_ptr,g(e)?0:a(e));return f(t)}to_csv(e){let t=_.view_to_csv(this.__wbg_ptr,g(e)?0:a(e));return f(t)}to_json(e){let t=_.view_to_json(this.__wbg_ptr,g(e)?0:a(e));return f(t)}to_json_string(e){let t=_.view_to_json_string(this.__wbg_ptr,g(e)?0:a(e));return f(t)}to_ndjson(e){let t=_.view_to_ndjson(this.__wbg_ptr,g(e)?0:a(e));return f(t)}with_typed_arrays(e,t){let n=_.view_with_typed_arrays(this.__wbg_ptr,g(e)?0:a(e),a(t));return f(n)}};Symbol.dispose&&(W.prototype[Symbol.dispose]=W.prototype.free);var k=class r{static __wrap(e){e=e>>>0;let t=Object.create(r.prototype);return t.__wbg_ptr=e,X.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,X.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_virtualdataslice_free(e,0)}fromArrowIpc(e){try{let s=_.__wbindgen_add_to_stack_pointer(-16);_.virtualdataslice_fromArrowIpc(s,this.__wbg_ptr,a(e));var t=l().getInt32(s+0,!0),n=l().getInt32(s+4,!0);if(n)throw f(t)}finally{_.__wbindgen_add_to_stack_pointer(16)}}constructor(e){let t=_.virtualdataslice_new(a(e));return this.__wbg_ptr=t>>>0,X.register(this,this.__wbg_ptr,this),this}setBooleanCol(e,t,n,s){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.virtualdataslice_setBooleanCol(c,this.__wbg_ptr,d,b,t,a(n),g(s)?4294967297:s>>>0);var o=l().getInt32(c+0,!0),u=l().getInt32(c+4,!0);if(u)throw f(o)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setCol(e,t,n,s,o){try{let d=_.__wbindgen_add_to_stack_pointer(-16),b=w(e,_.__wbindgen_export,_.__wbindgen_export2),m=p,x=w(t,_.__wbindgen_export,_.__wbindgen_export2),h=p;_.virtualdataslice_setCol(d,this.__wbg_ptr,b,m,x,h,n,a(s),g(o)?4294967297:o>>>0);var u=l().getInt32(d+0,!0),c=l().getInt32(d+4,!0);if(c)throw f(u)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setDatetimeCol(e,t,n,s){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.virtualdataslice_setDatetimeCol(c,this.__wbg_ptr,d,b,t,a(n),g(s)?4294967297:s>>>0);var o=l().getInt32(c+0,!0),u=l().getInt32(c+4,!0);if(u)throw f(o)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setFloatCol(e,t,n,s){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.virtualdataslice_setFloatCol(c,this.__wbg_ptr,d,b,t,a(n),g(s)?4294967297:s>>>0);var o=l().getInt32(c+0,!0),u=l().getInt32(c+4,!0);if(u)throw f(o)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setIntegerCol(e,t,n,s){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.virtualdataslice_setIntegerCol(c,this.__wbg_ptr,d,b,t,a(n),g(s)?4294967297:s>>>0);var o=l().getInt32(c+0,!0),u=l().getInt32(c+4,!0);if(u)throw f(o)}finally{_.__wbindgen_add_to_stack_pointer(16)}}setStringCol(e,t,n,s){try{let c=_.__wbindgen_add_to_stack_pointer(-16),d=w(e,_.__wbindgen_export,_.__wbindgen_export2),b=p;_.virtualdataslice_setStringCol(c,this.__wbg_ptr,d,b,t,a(n),g(s)?4294967297:s>>>0);var o=l().getInt32(c+0,!0),u=l().getInt32(c+4,!0);if(u)throw f(o)}finally{_.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(k.prototype[Symbol.dispose]=k.prototype.free);var M=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,le.unregister(this),e}free(){let e=this.__destroy_into_raw();_.__wbg_virtualserver_free(e,0)}handleRequest(e){let t=De(e,_.__wbindgen_export),n=p,s=_.virtualserver_handleRequest(this.__wbg_ptr,t,n);return f(s)}constructor(e){try{let o=_.__wbindgen_add_to_stack_pointer(-16);_.virtualserver_new(o,a(e));var t=l().getInt32(o+0,!0),n=l().getInt32(o+4,!0),s=l().getInt32(o+8,!0);if(s)throw f(n);return this.__wbg_ptr=t>>>0,le.register(this,this.__wbg_ptr,this),this}finally{_.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(M.prototype[Symbol.dispose]=M.prototype.free);function ee(){_.init()}function de(){return{__proto__:null,"./perspective-js.wasm_bg.js":{__proto__:null,__wbg_Error_8c4e43fe74559d73:function(e,t){var n=y(e,t);let s=Error(n);return a(s)},__wbg_Number_04624de7d0e8332d:function(e){return Number(i(e))},__wbg_String_8f0eb39a4a4c2f66:function(e,t){let n=String(i(t)),s=w(n,_.__wbindgen_export,_.__wbindgen_export2),o=p;l().setInt32(e+4,o,!0),l().setInt32(e+0,s,!0)},__wbg___wbindgen_bigint_get_as_i64_8fcf4ce7f1ca72a2:function(e,t){let n=i(t),s=typeof n=="bigint"?n:void 0;l().setBigInt64(e+8,g(s)?BigInt(0):s,!0),l().setInt32(e+0,!g(s),!0)},__wbg___wbindgen_boolean_get_bbbb1c18aa2f5e25:function(e){let t=i(e),n=typeof t=="boolean"?t:void 0;return g(n)?16777215:n?1:0},__wbg___wbindgen_debug_string_0bc8482c6e3508ae:function(e,t){let n=Z(i(t)),s=w(n,_.__wbindgen_export,_.__wbindgen_export2),o=p;l().setInt32(e+4,o,!0),l().setInt32(e+0,s,!0)},__wbg___wbindgen_in_47fa6863be6f2f25:function(e,t){return i(e)in i(t)},__wbg___wbindgen_is_bigint_31b12575b56f32fc:function(e){return typeof i(e)=="bigint"},__wbg___wbindgen_is_function_0095a73b8b156f76:function(e){return typeof i(e)=="function"},__wbg___wbindgen_is_null_ac34f5003991759a:function(e){return i(e)===null},__wbg___wbindgen_is_object_5ae8e5880f2c1fbd:function(e){let t=i(e);return typeof t=="object"&&t!==null},__wbg___wbindgen_is_string_cd444516edc5b180:function(e){return typeof i(e)=="string"},__wbg___wbindgen_is_undefined_9e4d92534c42d778:function(e){return i(e)===void 0},__wbg___wbindgen_jsval_eq_11888390b0186270:function(e,t){return i(e)===i(t)},__wbg___wbindgen_jsval_loose_eq_9dd77d8cd6671811:function(e,t){return i(e)==i(t)},__wbg___wbindgen_number_get_8ff4255516ccad3e:function(e,t){let n=i(t),s=typeof n=="number"?n:void 0;l().setFloat64(e+8,g(s)?0:s,!0),l().setInt32(e+0,!g(s),!0)},__wbg___wbindgen_string_get_72fb696202c56729:function(e,t){let n=i(t),s=typeof n=="string"?n:void 0;var o=g(s)?0:w(s,_.__wbindgen_export,_.__wbindgen_export2),u=p;l().setInt32(e+4,u,!0),l().setInt32(e+0,o,!0)},__wbg___wbindgen_throw_be289d5034ed271b:function(e,t){var n=y(e,t);throw new Error(n)},__wbg__wbg_cb_unref_d9b87ff7982e3b21:function(e){i(e)._wbg_cb_unref()},__wbg_apply_ada2ee1a60ac7b3c:function(){return v(function(e,t,n){let s=i(e).apply(i(t),i(n));return a(s)},arguments)},__wbg_at_dfc235641cc0e40c:function(e,t){let n=i(e).at(t);return a(n)},__wbg_buffer_26d0910f3a5bc899:function(e){let t=i(e).buffer;return a(t)},__wbg_call_389efe28435a9388:function(){return v(function(e,t){let n=i(e).call(i(t));return a(n)},arguments)},__wbg_call_41bedb84c3e5c0c9:function(){return v(function(e,t,n,s,o,u){let c=i(e).call(i(t),i(n),i(s),i(o),i(u));return a(c)},arguments)},__wbg_call_4708e0c13bdc8e95:function(){return v(function(e,t,n){let s=i(e).call(i(t),i(n));return a(s)},arguments)},__wbg_call_812d25f1510c13c8:function(){return v(function(e,t,n,s){let o=i(e).call(i(t),i(n),i(s));return a(o)},arguments)},__wbg_client_new:function(e){let t=R.__wrap(e);return a(t)},__wbg_debug_46a93995fc6f8820:function(e,t,n,s){console.debug(i(e),i(t),i(n),i(s))},__wbg_debug_a4099fa12db6cd61:function(e){console.debug(i(e))},__wbg_done_57b39ecd9addfe81:function(e){return i(e).done},__wbg_entries_58c7934c745daac7:function(e){let t=Object.entries(i(e));return a(t)},__wbg_error_794d0ffc9d00d5c3:function(e,t,n,s){console.error(i(e),i(t),i(n),i(s))},__wbg_error_9a7fe3f932034cde:function(e){console.error(i(e))},__wbg_error_f852e41c69b0bd84:function(e,t){console.error(i(e),i(t))},__wbg_from_bddd64e7d5ff6941:function(e){let t=Array.from(i(e));return a(t)},__wbg_getEntriesByName_02488cff0bc7581c:function(e,t,n,s,o){var u=y(t,n),c=y(s,o);let d=i(e).getEntriesByName(u,c);return a(d)},__wbg_getRandomValues_1c61fac11405ffdc:function(){return v(function(e,t){globalThis.crypto.getRandomValues(B(e,t))},arguments)},__wbg_getTime_1e3cd1391c5c3995:function(e){return i(e).getTime()},__wbg_get_76e04509d1922a04:function(e,t,n){var s=y(t,n);let o=i(e)[s];return g(o)?0:a(o)},__wbg_get_9b94d73e6221f75c:function(e,t){let n=i(e)[t>>>0];return a(n)},__wbg_get_b3ed3ad4be2bc8ac:function(){return v(function(e,t){let n=Reflect.get(i(e),i(t));return a(n)},arguments)},__wbg_get_with_ref_key_1dc361bd10053bfe:function(e,t){let n=i(e)[i(t)];return a(n)},__wbg_has_d4e53238966c12b6:function(){return v(function(e,t){return Reflect.has(i(e),i(t))},arguments)},__wbg_info_148d043840582012:function(e){console.info(i(e))},__wbg_info_9e602cf10c5c690b:function(e,t,n,s){console.info(i(e),i(t),i(n),i(s))},__wbg_instanceof_ArrayBuffer_c367199e2fa2aa04:function(e){let t;try{t=i(e)instanceof ArrayBuffer}catch{t=!1}return t},__wbg_instanceof_Array_d9eac779cd191cbc:function(e){let t;try{t=i(e)instanceof Array}catch{t=!1}return t},__wbg_instanceof_Date_1b9f15b87f10aa4c:function(e){let t;try{t=i(e)instanceof Date}catch{t=!1}return t},__wbg_instanceof_Error_8573fe0b0b480f46:function(e){let t;try{t=i(e)instanceof Error}catch{t=!1}return t},__wbg_instanceof_Map_53af74335dec57f4:function(e){let t;try{t=i(e)instanceof Map}catch{t=!1}return t},__wbg_instanceof_Object_1c6af87502b733ed:function(e){let t;try{t=i(e)instanceof Object}catch{t=!1}return t},__wbg_instanceof_Promise_0094681e3519d6ec:function(e){let t;try{t=i(e)instanceof Promise}catch{t=!1}return t},__wbg_instanceof_Uint8Array_9b9075935c74707c:function(e){let t;try{t=i(e)instanceof Uint8Array}catch{t=!1}return t},__wbg_instanceof_Window_ed49b2db8df90359:function(e){let t;try{t=i(e)instanceof Window}catch{t=!1}return t},__wbg_isArray_d314bb98fcf08331:function(e){return Array.isArray(i(e))},__wbg_isSafeInteger_bfbc7332a9768d2a:function(e){return Number.isSafeInteger(i(e))},__wbg_iterator_6ff6560ca1568e55:function(){return a(Symbol.iterator)},__wbg_keys_b50a709a76add04e:function(e){let t=Object.keys(i(e));return a(t)},__wbg_length_32ed9a279acd054c:function(e){return i(e).length},__wbg_length_35a7bace40f36eac:function(e){return i(e).length},__wbg_mark_3b530a64b09ba08a:function(){return v(function(e,t,n){var s=y(t,n);i(e).mark(s)},arguments)},__wbg_measure_288b48c082eae0fe:function(){return v(function(e,t,n,s,o){var u=y(t,n),c=y(s,o);i(e).measure(u,c)},arguments)},__wbg_message_9ddc4b9a62a7c379:function(e){let t=i(e).message;return a(t)},__wbg_new_361308b2356cecd0:function(){let e=new Object;return a(e)},__wbg_new_3eb36ae241fe6f44:function(){let e=new Array;return a(e)},__wbg_new_72b49615380db768:function(e,t){var n=y(e,t);let s=new Error(n);return a(s)},__wbg_new_b5d9e2fb389fef91:function(e,t){try{var n={a:e,b:t},s=(u,c)=>{let d=n.a;n.a=0;try{return Pe(d,n.b,u,c)}finally{n.a=d}};let o=new Promise(s);return a(o)}finally{n.a=n.b=0}},__wbg_new_dca287b076112a51:function(){return a(new Map)},__wbg_new_dd2b680c8bf6ae29:function(e){let t=new Uint8Array(i(e));return a(t)},__wbg_new_from_slice_a3d2629dc1826784:function(e,t){let n=new Uint8Array(B(e,t));return a(n)},__wbg_new_no_args_1c7c842f08d00ebb:function(e,t){var n=y(e,t);let s=new Function(n);return a(s)},__wbg_new_with_length_1763c527b2923202:function(e){let t=new Array(e>>>0);return a(t)},__wbg_next_3482f54c49e8af19:function(){return v(function(e){let t=i(e).next();return a(t)},arguments)},__wbg_next_418f80d8f5303233:function(e){let t=i(e).next;return a(t)},__wbg_now_ebffdf7e580f210d:function(e){return i(e).now()},__wbg_parse_708461a1feddfb38:function(){return v(function(e,t){var n=y(e,t);let s=JSON.parse(n);return a(s)},arguments)},__wbg_performance_06f12ba62483475d:function(e){let t=i(e).performance;return g(t)?0:a(t)},__wbg_prototypesetcall_bdcdcc5842e4d77d:function(e,t,n){Uint8Array.prototype.set.call(B(e,t),i(n))},__wbg_push_8ffdcb2063340ba5:function(e,t){return i(e).push(i(t))},__wbg_queueMicrotask_0aa0a927f78f5d98:function(e){let t=i(e).queueMicrotask;return a(t)},__wbg_queueMicrotask_5bb536982f78a56f:function(e){queueMicrotask(i(e))},__wbg_reject_a2176de7f1212be5:function(e){let t=Promise.reject(i(e));return a(t)},__wbg_resolve_002c4b7d9d8f6b64:function(e){let t=Promise.resolve(i(e));return a(t)},__wbg_set_1eb0999cf5d27fc8:function(e,t,n){let s=i(e).set(i(t),i(n));return a(s)},__wbg_set_3f1d0b984ed272ed:function(e,t,n){i(e)[f(t)]=f(n)},__wbg_set_f43e577aea94465b:function(e,t,n){i(e)[t>>>0]=f(n)},__wbg_startTime_248495bfbcb427d3:function(e){return i(e).startTime},__wbg_static_accessor_GLOBAL_12837167ad935116:function(){let e=typeof global>"u"?null:global;return g(e)?0:a(e)},__wbg_static_accessor_GLOBAL_THIS_e628e89ab3b1c95f:function(){let e=typeof globalThis>"u"?null:globalThis;return g(e)?0:a(e)},__wbg_static_accessor_SELF_a621d3dfbb60d0ce:function(){let e=typeof self>"u"?null:self;return g(e)?0:a(e)},__wbg_static_accessor_WINDOW_f8727f0cf888e0bd:function(){let e=typeof window>"u"?null:window;return g(e)?0:a(e)},__wbg_stringify_8d1cc6ff383e8bae:function(){return v(function(e){let t=JSON.stringify(i(e));return a(t)},arguments)},__wbg_table_new:function(e){let t=F.__wrap(e);return a(t)},__wbg_then_0d9fe2c7b1857d32:function(e,t,n){let s=i(e).then(i(t),i(n));return a(s)},__wbg_then_b9e7b3b5f1a9e1b5:function(e,t){let n=i(e).then(i(t));return a(n)},__wbg_toString_964ff7fe6eca8362:function(e){let t=i(e).toString();return a(t)},__wbg_trace_9007714a6fbee374:function(e){console.trace(i(e))},__wbg_trace_bd16b570941b54fb:function(e,t,n,s){console.trace(i(e),i(t),i(n),i(s))},__wbg_value_0546255b415e96c1:function(e){let t=i(e).value;return a(t)},__wbg_values_5da93bc719d272cf:function(e){let t=Object.values(i(e));return a(t)},__wbg_view_new:function(e){let t=W.__wrap(e);return a(t)},__wbg_view_unwrap:function(e){return W.__unwrap(i(e))},__wbg_virtualdataslice_new:function(e){let t=k.__wrap(e);return a(t)},__wbg_warn_a40b971467b219c7:function(e,t,n,s){console.warn(i(e),i(t),i(n),i(s))},__wbg_warn_f7ae1b2e66ccb930:function(e){console.warn(i(e))},__wbindgen_cast_0000000000000001:function(e,t){let n=Ne(e,t,_.__wasm_bindgen_func_elem_860,We);return a(n)},__wbindgen_cast_0000000000000002:function(e,t){let n=Ve(e,t,_.__wasm_bindgen_func_elem_4015,Me);return a(n)},__wbindgen_cast_0000000000000003:function(e){return a(e)},__wbindgen_cast_0000000000000004:function(e){return a(e)},__wbindgen_cast_0000000000000005:function(e,t){var n=y(e,t);return a(n)},__wbindgen_cast_0000000000000006:function(e,t){let n=Re(e,t);return a(n)},__wbindgen_cast_0000000000000007:function(e,t){let n=Ue(e,t);return a(n)},__wbindgen_cast_0000000000000008:function(e,t){let n=Oe(e,t);return a(n)},__wbindgen_cast_0000000000000009:function(e,t){let n=Fe(e,t);return a(n)},__wbindgen_cast_000000000000000a:function(e,t){let n=B(e,t);return a(n)},__wbindgen_cast_000000000000000b:function(e){let t=BigInt.asUintN(64,e);return a(t)},__wbindgen_cast_000000000000000c:function(e,t){var n=Ce(e,t).slice();return _.__wbindgen_export4(e,t*4,4),a(n)},__wbindgen_cast_000000000000000d:function(e,t){var n=B(e,t).slice();return _.__wbindgen_export4(e,t*1,1),a(n)},__wbindgen_object_clone_ref:function(e){let t=i(e);return a(t)},__wbindgen_object_drop_ref:function(e){f(e)}}}}function We(r,e){let t=_.__wasm_bindgen_func_elem_1768(r,e);return f(t)}function Me(r,e,t){_.__wasm_bindgen_func_elem_4032(r,e,a(t))}function Pe(r,e,t,n){_.__wasm_bindgen_func_elem_11006(r,e,a(t),a(n))}var Q=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(r=>_.__wbg_client_free(r>>>0,1)),ae=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(r=>_.__wbg_genericsqlvirtualservermodel_free(r>>>0,1)),K=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(r=>_.__wbg_proxysession_free(r>>>0,1)),ce=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(r=>_.__wbg_table_free(r>>>0,1)),ue=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(r=>_.__wbg_view_free(r>>>0,1)),X=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(r=>_.__wbg_virtualdataslice_free(r>>>0,1)),le=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(r=>_.__wbg_virtualserver_free(r>>>0,1));function a(r){V===A.length&&A.push(A.length+1);let e=V;return V=A[e],A[e]=r,e}function Ee(r,e){if(!(r instanceof e))throw new Error(`expected instance of ${e.name}`)}function be(r){if(D==1)throw new Error("out of js stack");return A[--D]=r,D}var G=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(r=>r.dtor(r.a,r.b));function Z(r){let e=typeof r;if(e=="number"||e=="boolean"||r==null)return`${r}`;if(e=="string")return`"${r}"`;if(e=="symbol"){let s=r.description;return s==null?"Symbol":`Symbol(${s})`}if(e=="function"){let s=r.name;return typeof s=="string"&&s.length>0?`Function(${s})`:"Function"}if(Array.isArray(r)){let s=r.length,o="[";s>0&&(o+=Z(r[0]));for(let u=1;u<s;u++)o+=", "+Z(r[u]);return o+="]",o}let t=/\[object ([^\]]+)\]/.exec(toString.call(r)),n;if(t&&t.length>1)n=t[1];else return toString.call(r);if(n=="Object")try{return"Object("+JSON.stringify(r)+")"}catch{return"Object"}return r instanceof Error?`${r.name}: ${r.message}
|
|
2
|
+
${r.stack}`:n}function je(r){r<132||(A[r]=V,V=r)}function Re(r,e){return r=r>>>0,Be().subarray(r/4,r/4+e)}function Ue(r,e){return r=r>>>0,Le().subarray(r/8,r/8+e)}function Oe(r,e){return r=r>>>0,Te().subarray(r/4,r/4+e)}function Ce(r,e){r=r>>>0;let t=l(),n=[];for(let s=r;s<r+4*e;s+=4)n.push(f(t.getUint32(s,!0)));return n}function Fe(r,e){return r=r>>>0,ze().subarray(r/4,r/4+e)}function B(r,e){return r=r>>>0,O().subarray(r/1,r/1+e)}function y(r,e){return r===0?i(e):qe(r,e)}var j=null;function l(){return(j===null||j.buffer.detached===!0||j.buffer.detached===void 0&&j.buffer!==_.memory.buffer)&&(j=new DataView(_.memory.buffer)),j}var L=null;function Be(){return(L===null||L.byteLength===0)&&(L=new Float32Array(_.memory.buffer)),L}var T=null;function Le(){return(T===null||T.byteLength===0)&&(T=new Float64Array(_.memory.buffer)),T}var q=null;function Te(){return(q===null||q.byteLength===0)&&(q=new Int32Array(_.memory.buffer)),q}function qe(r,e){return r=r>>>0,Ge(r,e)}var z=null;function ze(){return(z===null||z.byteLength===0)&&(z=new Uint32Array(_.memory.buffer)),z}var N=null;function O(){return(N===null||N.byteLength===0)&&(N=new Uint8Array(_.memory.buffer)),N}function i(r){return A[r]}function v(r,e){try{return r.apply(this,e)}catch(t){_.__wbindgen_export3(a(t))}}var A=new Array(128).fill(void 0);A.push(void 0,null,!0,!1);var V=A.length;function g(r){return r==null}function Ne(r,e,t,n){let s={a:r,b:e,cnt:1,dtor:t},o=(...u)=>{s.cnt++;try{return n(s.a,s.b,...u)}finally{o._wbg_cb_unref()}};return o._wbg_cb_unref=()=>{--s.cnt===0&&(s.dtor(s.a,s.b),s.a=0,G.unregister(s))},G.register(o,s,s),o}function Ve(r,e,t,n){let s={a:r,b:e,cnt:1,dtor:t},o=(...u)=>{s.cnt++;let c=s.a;s.a=0;try{return n(c,s.b,...u)}finally{s.a=c,o._wbg_cb_unref()}};return o._wbg_cb_unref=()=>{--s.cnt===0&&(s.dtor(s.a,s.b),s.a=0,G.unregister(s))},G.register(o,s,s),o}function De(r,e){let t=e(r.length*1,1)>>>0;return O().set(r,t/1),p=r.length,t}function w(r,e,t){if(t===void 0){let c=fe.encode(r),d=e(c.length,1)>>>0;return O().subarray(d,d+c.length).set(c),p=c.length,d}let n=r.length,s=e(n,1)>>>0,o=O(),u=0;for(;u<n;u++){let c=r.charCodeAt(u);if(c>127)break;o[s+u]=c}if(u!==n){u!==0&&(r=r.slice(u)),s=t(s,n,n=u+r.length*3,1)>>>0;let c=O().subarray(s+u,s+n),d=fe.encodeInto(r,c);u+=d.written,s=t(s,n,u,1)>>>0}return p=u,s}var D=128;function f(r){let e=i(r);return je(r),e}var H=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});H.decode();var He=2146435072,Y=0;function Ge(r,e){return Y+=e,Y>=He&&(H=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),H.decode(),Y=e),H.decode(O().subarray(r,r+e))}var fe=new TextEncoder,p=0,$e,_;function ge(r,e){return _=r.exports,$e=e,j=null,L=null,T=null,q=null,z=null,N=null,_}async function Je(r,e){if(typeof Response=="function"&&r instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(r,e)}catch(s){if(r.ok&&t(r.type)&&r.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",s);else throw s}let n=await r.arrayBuffer();return await WebAssembly.instantiate(n,e)}else{let n=await WebAssembly.instantiate(r,e);return n instanceof WebAssembly.Instance?{instance:n,module:r}:n}function t(n){switch(n){case"basic":case"cors":case"default":return!0}return!1}}function Qe(r){if(_!==void 0)return _;r!==void 0&&(Object.getPrototypeOf(r)===Object.prototype?{module:r}=r:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let e=de();r instanceof WebAssembly.Module||(r=new WebAssembly.Module(r));let t=new WebAssembly.Instance(r,e);return ge(t,r)}async function te(r){if(_!==void 0)return _;r!==void 0&&(Object.getPrototypeOf(r)===Object.prototype?{module_or_path:r}=r:console.warn("using deprecated parameters for the initialization function; pass a single object instead"));let e=de();(typeof r=="string"||typeof Request=="function"&&r instanceof Request||typeof URL=="function"&&r instanceof URL)&&(r=fetch(r));let{instance:t,module:n}=await Je(await r,e);return ge(t,n)}function Ke(){let r,e,t=new Promise((n,s)=>{r=n,e=s});return[r,t,e]}async function pe(r,e,t,n){let s,o;async function u(){if(o?.readyState===r.CONNECTING||o?.readyState===r.OPEN){console.warn(`Already connected ${o.readyState}`);return}let[b,m,x]=Ke();o=new r(t,n),o.onopen=b,o.binaryType="arraybuffer",o.onerror=h=>{let I=h.message||"Generic Websocket Error";s.handle_error(I,u),x(I)},o.onclose=h=>{let I=`WebSocket closed ${h.code}`;s.handle_error(I,u),x(I)},o.onmessage=h=>{s.handle_response(h.data)},await m}async function c(b){if(o.readyState===r.CLOSING||o.readyState===r.CLOSED){let m=`WebSocket transport error (${o.readyState})`;throw s.handle_error(m,u),new Error(m)}else if(o.readyState===r.CONNECTING){let m=`WebSocket message dropped (${o.readyState})`;throw new Error(m)}else{let m=b.slice().buffer;o.send(m)}}async function d(){console.debug("Closing WebSocket"),o.close()}return s=new e(c,d),await u(),s}function Ye(){let r,e,t=new Promise((n,s)=>{r=n,e=s});return[r,t,e]}async function Ze(r,e){let[t,n]=Ye();r.addEventListener("message",function s(o){r.removeEventListener("message",s),t(null)}),r.onmessage=function(o){r.onmessage=function(){},t(null)},r.onmessageerror=console.error,r.postMessage({cmd:"init",args:[e]},{transfer:e===void 0||e instanceof WebAssembly.Module?[]:[e]}),await n}async function we(r,e,t){let[n,s]=await Promise.all([e,t]),{Client:o}=await r,u;typeof SharedWorker<"u"&&s instanceof SharedWorker?u=s.port:u=s;let c=new o(async d=>{let b=d.slice().buffer;u.postMessage(b,{transfer:[b]})},async()=>{console.debug("Closing WebWorker"),u.close(),s instanceof Worker&&s.terminate()});return await Ze(u,n),u.addEventListener("message",d=>{c.handle_response(d.data)}),c}async function ye(r,e){let{Client:t}=await r;return await pe(WebSocket,t,e)}async function me(r){let e;typeof r?.then=="function"&&(r=await r),r instanceof Response?e=await WebAssembly.instantiateStreaming(r):typeof r=="string"?e=await WebAssembly.instantiateStreaming(fetch(r)):r instanceof ArrayBuffer?e=await WebAssembly.instantiate(r):r instanceof Uint8Array?e=await WebAssembly.instantiate(r.buffer):e=r;let t=e.instance.exports,[n]=WebAssembly.Module.customSections(e.module,"psp-runtime"),[s]=WebAssembly.Module.customSections(e.module,"psp-len"),o=new DataView(s).getUint32(0,!0),u=t.resize(n.byteLength);new Uint8Array(t.memory.buffer).set(new Uint8Array(n),u);let c=t.compile(n.byteLength,o);return new Uint8Array(t.memory.buffer).slice(c,o+c)}if(typeof WebAssembly>"u")throw new Error("WebAssembly not supported.");async function ne(r){r instanceof Function&&(r=await r());try{return await me(r)}catch{return console.warn("Stage 0 wasm loading failed, skipping"),new Uint8Array(r)}}var _e='var I=Object.defineProperty;var H=(s,e,r)=>e in s?I(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.getUint32(n*12,!0),t.getUint32(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 U(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 M(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++)U(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++)U(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 M({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 B(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",B.bind(e)),e.start()}self.addEventListener("connect",T);self.addEventListener("message",B.bind(self));\n';var $=null;async function rt(){if($)return $;let r=new Blob([_e],{type:"application/javascript"});return $=URL.createObjectURL(r),$}function he(r,e){return{addEventListener(t,n){t==="message"&&r.push(n)},removeEventListener(t,n){let s=r.indexOf(n);s>-1&&r.splice(s,1)},postMessage(t,n){for(let s of e)s({data:t,ports:n})},terminate(){},location:{href:""}}}function ve(){console.warn("Running perspective in single-threaded mode");let r=Function("const self = arguments[0];"+_e),e=[],t=[];return r(he(e,t)),he(t,e)}async function xe(r){let e=r||{type:"module"};try{if(typeof window<"u"&&window.location&&window.location.protocol&&window.location.protocol.startsWith("file"))return console.warn("file:// protocol does not reliably support Web Workers"),ve();let t=await rt();return new Worker(t,e)}catch(t){return console.error("Error instantiating worker; falling back to single-threaded mode",t),ve()}}var P;async function nt(r){return oe(await se(),r)}function _t(r,e=!1){r instanceof Uint8Array?P=Promise.resolve(r.buffer):r instanceof Response?P=Promise.resolve(r):r instanceof Promise?P=r:P=Promise.resolve(r),e||(P=P.then(t=>ne(t).then(n=>n.buffer)))}var E,U;async function st(r){return r instanceof WebAssembly.Module?r:typeof Response<"u"&&r instanceof Response?WebAssembly.compileStreaming(r):WebAssembly.compile(r)}async function J(r,e=!1){let t=e?r:await ne(r),n=await st(t);return U=Promise.resolve(n),await te({module_or_path:n}),await ee(),re}function it(r,e=!1){r instanceof Uint8Array?E=J(r.buffer,e):r instanceof ArrayBuffer||r instanceof Response||r instanceof Promise?E=J(r,e):r instanceof Object&&(E=Promise.resolve(r))}function se(){let r=customElements.get("perspective-viewer");if(r)E=Promise.resolve(r.__wasm_module__),U===void 0&&r.__wasm_client_module__&&(U=Promise.resolve(r.__wasm_client_module__));else if(E===void 0)throw new Error("Missing perspective-client.wasm");return E}async function ot(){if(U!==void 0)return U;let r=customElements.get("perspective-viewer");if(r?.__wasm_client_module__)return U=Promise.resolve(r.__wasm_client_module__),U;throw new Error("perspective-js client wasm has not been compiled yet \u2014 call `init_client(...)` or `perspective.worker()` before `getCompiledClientWasm()`.")}function at(){if(P===void 0)throw new Error("Missing perspective-server.wasm");return P.then(r=>r instanceof WebAssembly.Module?r:r.slice(0))}var Ae;async function ct(){return Ae===void 0?await xe({type:"module",name:"perspective-server"}):Ae()}async function ut(r){return await ye(se(),r)}async function lt(r){return typeof r>"u"&&(r=ct()),await we(se(),at(),r)}var ie={websocket:ut,worker:lt,init_client:it,init_server:_t,createMessageHandler:nt,getCompiledClientWasm:ot,GenericSQLVirtualServerModel:S,VirtualDataSlice:k,VirtualServer:M};var ft=new URL("../../../server/dist/wasm/perspective-server.wasm",import.meta.url);ie.init_server(fetch(ft));var St=ie;export{S as GenericSQLVirtualServerModel,k as VirtualDataSlice,M as VirtualServer,nt as createMessageHandler,St as default,ot as getCompiledClientWasm,it as init_client,_t as init_server,ut as websocket,lt as worker};
|
|
3
3
|
//# sourceMappingURL=perspective.js.map
|