@run-trace/duckdb-wasm 0.0.1
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/README.md +228 -0
- package/dist/duckdb-browser-coi.pthread.worker.js +32 -0
- package/dist/duckdb-browser-coi.worker.js +31 -0
- package/dist/duckdb-browser-eh.worker.js +27 -0
- package/dist/duckdb-browser-mvp.worker.js +27 -0
- package/dist/duckdb-browser.d.ts +1 -0
- package/dist/duckdb-coi.wasm +0 -0
- package/dist/duckdb-eh.wasm +0 -0
- package/dist/duckdb-mvp.wasm +0 -0
- package/dist/duckdb-node-eh.worker.cjs +51 -0
- package/dist/duckdb-node-mvp.worker.cjs +51 -0
- package/dist/duckdb-node.d.ts +1 -0
- package/dist/duckdb-node.mjs +8 -0
- package/dist/duckdb-wasm.mjs +1160 -0
- package/dist/duckdb-wasm.umd.js +1 -0
- package/dist/types/bindings/bindings_base.d.ts +129 -0
- package/dist/types/bindings/bindings_browser_base.d.ts +18 -0
- package/dist/types/bindings/bindings_browser_coi.d.ts +12 -0
- package/dist/types/bindings/bindings_browser_eh.d.ts +12 -0
- package/dist/types/bindings/bindings_browser_mvp.d.ts +11 -0
- package/dist/types/bindings/bindings_interface.d.ts +44 -0
- package/dist/types/bindings/bindings_node_base.d.ts +22 -0
- package/dist/types/bindings/bindings_node_eh.d.ts +12 -0
- package/dist/types/bindings/bindings_node_mvp.d.ts +12 -0
- package/dist/types/bindings/config.d.ts +90 -0
- package/dist/types/bindings/connection.d.ts +62 -0
- package/dist/types/bindings/duckdb_module.d.ts +13 -0
- package/dist/types/bindings/file_stats.d.ts +36 -0
- package/dist/types/bindings/index.d.ts +11 -0
- package/dist/types/bindings/insert_options.d.ts +31 -0
- package/dist/types/bindings/progress.d.ts +9 -0
- package/dist/types/bindings/runtime.d.ts +99 -0
- package/dist/types/bindings/runtime_browser.d.ts +13 -0
- package/dist/types/bindings/runtime_node.d.ts +8 -0
- package/dist/types/bindings/tokens.d.ts +12 -0
- package/dist/types/bindings/udf_function.d.ts +13 -0
- package/dist/types/bindings/udf_runtime.d.ts +3 -0
- package/dist/types/bindings/web_file.d.ts +12 -0
- package/dist/types/duckdb.d.ts +8 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/log.d.ts +61 -0
- package/dist/types/parallel/async_bindings.d.ts +137 -0
- package/dist/types/parallel/async_bindings_interface.d.ts +27 -0
- package/dist/types/parallel/async_connection.d.ts +64 -0
- package/dist/types/parallel/index.d.ts +5 -0
- package/dist/types/parallel/worker_dispatcher.d.ts +22 -0
- package/dist/types/parallel/worker_request.d.ts +101 -0
- package/dist/types/platform.d.ts +38 -0
- package/dist/types/sql_field.d.ts +14 -0
- package/dist/types/status.d.ts +7 -0
- package/dist/types/targets/duckdb-browser-coi.pthread.worker.d.ts +1 -0
- package/dist/types/targets/duckdb-browser-coi.worker.d.ts +2 -0
- package/dist/types/targets/duckdb-browser-eh.worker.d.ts +2 -0
- package/dist/types/targets/duckdb-browser-mvp.worker.d.ts +2 -0
- package/dist/types/targets/duckdb-node-eh.worker.d.ts +2 -0
- package/dist/types/targets/duckdb-node-mvp.worker.d.ts +2 -0
- package/dist/types/targets/duckdb.d.ts +10 -0
- package/dist/types/utils/binary_dump.d.ts +1 -0
- package/dist/types/utils/index.d.ts +2 -0
- package/dist/types/utils/opfs_util.d.ts +4 -0
- package/dist/types/utils/s3_helper.d.ts +27 -0
- package/dist/types/worker.d.ts +1 -0
- package/dist/types/worker_node.d.ts +6 -0
- package/package.json +89 -0
package/README.md
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# trace-duckdb-wasm
|
|
2
|
+
|
|
3
|
+
This is a custom build of DuckDB-WASM with modifications specific to our needs, but may serve as an example of how to build your own. Claude was heavily involved, so the Claude files are included to help in the future.
|
|
4
|
+
|
|
5
|
+
**What's different from the standard DuckDB-WASM package:**
|
|
6
|
+
|
|
7
|
+
- **WasmFS** — added to support multiple threads reading files concurrently
|
|
8
|
+
- **Statically linked extensions** — JSON and other extensions are linked directly into the WASM binary, fixing the issue where they fail to load in the standard package when running with multiple threads
|
|
9
|
+
- **Custom Rust extension** — a hashing extension for JSON values for increased performance (specific to our needs but may serve as a decent example of how to write one)
|
|
10
|
+
|
|
11
|
+
The source is available at [github.com/run-trace/duckdb-wasm](https://github.com/trace-github/duckdb-wasm).
|
|
12
|
+
|
|
13
|
+
## Instantiation
|
|
14
|
+
cdn(jsdelivr)
|
|
15
|
+
```ts
|
|
16
|
+
import * as duckdb from '@run-trace/duckdb-wasm';
|
|
17
|
+
|
|
18
|
+
const JSDELIVR_BUNDLES = duckdb.getJsDelivrBundles();
|
|
19
|
+
|
|
20
|
+
// Select a bundle based on browser checks
|
|
21
|
+
const bundle = await duckdb.selectBundle(JSDELIVR_BUNDLES);
|
|
22
|
+
|
|
23
|
+
const worker_url = URL.createObjectURL(
|
|
24
|
+
new Blob([`importScripts("${bundle.mainWorker!}");`], {type: 'text/javascript'})
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
// Instantiate the asynchronous version of DuckDB-wasm
|
|
28
|
+
const worker = new Worker(worker_url);
|
|
29
|
+
const logger = new duckdb.ConsoleLogger();
|
|
30
|
+
const db = new duckdb.AsyncDuckDB(logger, worker);
|
|
31
|
+
await db.instantiate(bundle.mainModule, bundle.pthreadWorker);
|
|
32
|
+
URL.revokeObjectURL(worker_url);
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
webpack
|
|
36
|
+
```ts
|
|
37
|
+
import * as duckdb from '@run-trace/duckdb-wasm';
|
|
38
|
+
import duckdb_wasm from '@run-trace/duckdb-wasm/dist/duckdb-mvp.wasm';
|
|
39
|
+
import duckdb_wasm_next from '@run-trace/duckdb-wasm/dist/duckdb-eh.wasm';
|
|
40
|
+
const MANUAL_BUNDLES: duckdb.DuckDBBundles = {
|
|
41
|
+
mvp: {
|
|
42
|
+
mainModule: duckdb_wasm,
|
|
43
|
+
mainWorker: new URL('@run-trace/duckdb-wasm/dist/duckdb-browser-mvp.worker.js', import.meta.url).toString(),
|
|
44
|
+
},
|
|
45
|
+
eh: {
|
|
46
|
+
mainModule: duckdb_wasm_next,
|
|
47
|
+
mainWorker: new URL('@run-trace/duckdb-wasm/dist/duckdb-browser-eh.worker.js', import.meta.url).toString(),
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
// Select a bundle based on browser checks
|
|
51
|
+
const bundle = await duckdb.selectBundle(MANUAL_BUNDLES);
|
|
52
|
+
// Instantiate the asynchronous version of DuckDB-wasm
|
|
53
|
+
const worker = new Worker(bundle.mainWorker!);
|
|
54
|
+
const logger = new duckdb.ConsoleLogger();
|
|
55
|
+
const db = new duckdb.AsyncDuckDB(logger, worker);
|
|
56
|
+
await db.instantiate(bundle.mainModule, bundle.pthreadWorker);
|
|
57
|
+
```
|
|
58
|
+
vite
|
|
59
|
+
```ts
|
|
60
|
+
import * as duckdb from '@run-trace/duckdb-wasm';
|
|
61
|
+
import duckdb_wasm from '@run-trace/duckdb-wasm/dist/duckdb-mvp.wasm?url';
|
|
62
|
+
import mvp_worker from '@run-trace/duckdb-wasm/dist/duckdb-browser-mvp.worker.js?url';
|
|
63
|
+
import duckdb_wasm_eh from '@run-trace/duckdb-wasm/dist/duckdb-eh.wasm?url';
|
|
64
|
+
import eh_worker from '@run-trace/duckdb-wasm/dist/duckdb-browser-eh.worker.js?url';
|
|
65
|
+
|
|
66
|
+
const MANUAL_BUNDLES: duckdb.DuckDBBundles = {
|
|
67
|
+
mvp: {
|
|
68
|
+
mainModule: duckdb_wasm,
|
|
69
|
+
mainWorker: mvp_worker,
|
|
70
|
+
},
|
|
71
|
+
eh: {
|
|
72
|
+
mainModule: duckdb_wasm_eh,
|
|
73
|
+
mainWorker: eh_worker,
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
// Select a bundle based on browser checks
|
|
77
|
+
const bundle = await duckdb.selectBundle(MANUAL_BUNDLES);
|
|
78
|
+
// Instantiate the asynchronous version of DuckDB-wasm
|
|
79
|
+
const worker = new Worker(bundle.mainWorker!);
|
|
80
|
+
const logger = new duckdb.ConsoleLogger();
|
|
81
|
+
const db = new duckdb.AsyncDuckDB(logger, worker);
|
|
82
|
+
await db.instantiate(bundle.mainModule, bundle.pthreadWorker);
|
|
83
|
+
```
|
|
84
|
+
static served (manually download the files from https://cdn.jsdelivr.net/npm/@run-trace/duckdb-wasm/dist/)
|
|
85
|
+
```ts
|
|
86
|
+
import * as duckdb from '@run-trace/duckdb-wasm';
|
|
87
|
+
|
|
88
|
+
const MANUAL_BUNDLES: duckdb.DuckDBBundles = {
|
|
89
|
+
mvp: {
|
|
90
|
+
mainModule: 'change/me/../duckdb-mvp.wasm',
|
|
91
|
+
mainWorker: 'change/me/../duckdb-browser-mvp.worker.js',
|
|
92
|
+
},
|
|
93
|
+
eh: {
|
|
94
|
+
mainModule: 'change/m/../duckdb-eh.wasm',
|
|
95
|
+
mainWorker: 'change/m/../duckdb-browser-eh.worker.js',
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
// Select a bundle based on browser checks
|
|
99
|
+
const bundle = await duckdb.selectBundle(MANUAL_BUNDLES);
|
|
100
|
+
// Instantiate the asynchronous version of DuckDB-wasm
|
|
101
|
+
const worker = new Worker(bundle.mainWorker!);
|
|
102
|
+
const logger = new duckdb.ConsoleLogger();
|
|
103
|
+
const db = new duckdb.AsyncDuckDB(logger, worker);
|
|
104
|
+
await db.instantiate(bundle.mainModule, bundle.pthreadWorker);
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Data Import
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
// Data can be inserted from an existing arrow.Table
|
|
111
|
+
await c.insertArrowTable(existingTable, { name: 'arrow_table' });
|
|
112
|
+
// ..., from a raw Arrow IPC stream
|
|
113
|
+
const c = await db.connect();
|
|
114
|
+
const streamResponse = await fetch(`someapi`);
|
|
115
|
+
const streamReader = streamResponse.body.getReader();
|
|
116
|
+
const streamInserts = [];
|
|
117
|
+
while (true) {
|
|
118
|
+
const { value, done } = await streamReader.read();
|
|
119
|
+
if (done) break;
|
|
120
|
+
streamInserts.push(c.insertArrowFromIPCStream(value, { name: 'streamed' }));
|
|
121
|
+
}
|
|
122
|
+
await Promise.all(streamInserts);
|
|
123
|
+
|
|
124
|
+
// ..., from CSV files
|
|
125
|
+
// (interchangeable: registerFile{Text,Buffer,URL,Handle})
|
|
126
|
+
await db.registerFileText(`data.csv`, '1|foo\n2|bar\n');
|
|
127
|
+
// ... with typed insert options
|
|
128
|
+
await c.insertCSVFromPath('data.csv', {
|
|
129
|
+
schema: 'main',
|
|
130
|
+
name: 'foo',
|
|
131
|
+
detect: false,
|
|
132
|
+
header: false,
|
|
133
|
+
delimiter: '|',
|
|
134
|
+
columns: {
|
|
135
|
+
col1: new arrow.Int32(),
|
|
136
|
+
col2: new arrow.Utf8(),
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
// ..., from JSON documents in row-major format
|
|
141
|
+
await db.registerFileText(
|
|
142
|
+
'rows.json',
|
|
143
|
+
`[
|
|
144
|
+
{ "col1": 1, "col2": "foo" },
|
|
145
|
+
{ "col1": 2, "col2": "bar" },
|
|
146
|
+
]`,
|
|
147
|
+
);
|
|
148
|
+
// ... or column-major format
|
|
149
|
+
await db.registerFileText(
|
|
150
|
+
'columns.json',
|
|
151
|
+
`{
|
|
152
|
+
"col1": [1, 2],
|
|
153
|
+
"col2": ["foo", "bar"]
|
|
154
|
+
}`,
|
|
155
|
+
);
|
|
156
|
+
// ... with typed insert options
|
|
157
|
+
await c.insertJSONFromPath('rows.json', { name: 'rows' });
|
|
158
|
+
await c.insertJSONFromPath('columns.json', { name: 'columns' });
|
|
159
|
+
|
|
160
|
+
// ... from a Javascript array
|
|
161
|
+
const myArray = [
|
|
162
|
+
{
|
|
163
|
+
name: 'Dan',
|
|
164
|
+
age: 32,
|
|
165
|
+
numberOfPets: 3
|
|
166
|
+
}
|
|
167
|
+
];
|
|
168
|
+
const encoder = new TextEncoder();
|
|
169
|
+
const buffer = encoder.encode(myArray);
|
|
170
|
+
await db.registerFileBuffer(myTableName, buffer);
|
|
171
|
+
await c.insertJSONFromPath(myTableName, {
|
|
172
|
+
schema: 'main',
|
|
173
|
+
name: 'foo',
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
// ..., from Parquet files
|
|
177
|
+
const pickedFile: File = letUserPickFile();
|
|
178
|
+
await db.registerFileHandle('local.parquet', pickedFile, DuckDBDataProtocol.BROWSER_FILEREADER, true);
|
|
179
|
+
await db.registerFileURL('remote.parquet', 'https://origin/remote.parquet', DuckDBDataProtocol.HTTP, false);
|
|
180
|
+
const res = await fetch('https://origin/remote.parquet');
|
|
181
|
+
await db.registerFileBuffer('buffer.parquet', new Uint8Array(await res.arrayBuffer()));
|
|
182
|
+
|
|
183
|
+
// ..., by specifying URLs in the SQL text
|
|
184
|
+
await c.query(`
|
|
185
|
+
CREATE TABLE direct AS
|
|
186
|
+
SELECT * FROM "https://origin/remote.parquet"
|
|
187
|
+
`);
|
|
188
|
+
// ..., or by executing raw insert statements
|
|
189
|
+
await c.query(`INSERT INTO existing_table
|
|
190
|
+
VALUES (1, "foo"), (2, "bar")`);
|
|
191
|
+
|
|
192
|
+
// Close the connection to release memory
|
|
193
|
+
await c.close();
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Query Execution
|
|
197
|
+
|
|
198
|
+
```ts
|
|
199
|
+
// Either materialize the query result
|
|
200
|
+
await conn.query<{ v: arrow.Int }>(`
|
|
201
|
+
SELECT * FROM generate_series(1, 100) t(v)
|
|
202
|
+
`);
|
|
203
|
+
// ..., or fetch the result chunks lazily
|
|
204
|
+
for await (const batch of await conn.send<{ v: arrow.Int }>(`
|
|
205
|
+
SELECT * FROM generate_series(1, 100) t(v)
|
|
206
|
+
`)) {
|
|
207
|
+
// ...
|
|
208
|
+
}
|
|
209
|
+
// Close the connection to release memory
|
|
210
|
+
await conn.close();
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Prepared Statements
|
|
214
|
+
|
|
215
|
+
```ts
|
|
216
|
+
// Prepare query
|
|
217
|
+
const stmt = await conn.prepare(`SELECT v + ? FROM generate_series(0, 10000) as t(v);`);
|
|
218
|
+
// ... and run the query with materialized results
|
|
219
|
+
await stmt.query(234);
|
|
220
|
+
// ... or result chunks
|
|
221
|
+
for await (const batch of await stmt.send(234)) {
|
|
222
|
+
// ...
|
|
223
|
+
}
|
|
224
|
+
// Close the statement to release memory
|
|
225
|
+
await stmt.close();
|
|
226
|
+
// Closing the connection will release statements as well
|
|
227
|
+
await conn.close();
|
|
228
|
+
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";(()=>{var yi=Object.create;var Ar=Object.defineProperty;var Fi=Object.getOwnPropertyDescriptor;var Ei=Object.getOwnPropertyNames;var Ai=Object.getPrototypeOf,Di=Object.prototype.hasOwnProperty;var ki=(a,o,f)=>o in a?Ar(a,o,{enumerable:!0,configurable:!0,writable:!0,value:f}):a[o]=f;var Ie=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(o,f)=>(typeof require<"u"?require:o)[f]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});var Re=(a,o)=>()=>(o||a((o={exports:{}}).exports,o),o.exports);var Ri=(a,o,f,h)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of Ei(o))!Di.call(a,n)&&n!==f&&Ar(a,n,{get:()=>o[n],enumerable:!(h=Fi(o,n))||h.enumerable});return a};var $t=(a,o,f)=>(f=a!=null?yi(Ai(a)):{},Ri(o||!a||!a.__esModule?Ar(f,"default",{value:a,enumerable:!0}):f,a));var er=(a,o,f)=>ki(a,typeof o!="symbol"?o+"":o,f);var rr=Re(()=>{});var Dr=Re(()=>{});var zt=Re(()=>{});var Jt=Re(()=>{});var nn=Re((tn,nr)=>{"use strict";var tr=(()=>{var o;var a=typeof document<"u"?(o=document.currentScript)==null?void 0:o.src:void 0;return typeof __filename<"u"&&(a=a||__filename),async function(f={}){var Wt;var h,n=f,g,A,R=new Promise((e,r)=>{g=e,A=r}),d=typeof window=="object",ee=typeof WorkerGlobalScope<"u",_=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer",U=ee&&((Wt=self.name)==null?void 0:Wt.startsWith("em-pthread"));if(_){var K=rr();global.Worker=K.Worker,ee=!K.isMainThread,U=ee&&K.workerData=="em-pthread"}var x=Object.assign({},n),C=[],ne="./this.program",Y=(e,r)=>{throw r},Z="";function Q(e){return n.locateFile?n.locateFile(e,Z):Z+e}var G,ae;if(_){var re=Dr(),b=zt();Z=__dirname+"/",ae=e=>{e=Pr(e)?new URL(e):e;var r=re.readFileSync(e);return r},G=async(e,r=!0)=>{e=Pr(e)?new URL(e):e;var t=re.readFileSync(e,r?void 0:"utf8");return t},!n.thisProgram&&process.argv.length>1&&(ne=process.argv[1].replace(/\\/g,"/")),C=process.argv.slice(2),Y=(e,r)=>{throw process.exitCode=e,r}}else(d||ee)&&(ee?Z=self.location.href:typeof document<"u"&&document.currentScript&&(Z=document.currentScript.src),a&&(Z=a),Z.startsWith("blob:")?Z="":Z=Z.slice(0,Z.replace(/[?#].*/,"").lastIndexOf("/")+1),_||(ee&&(ae=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),G=async e=>{var r=await fetch(e,{credentials:"same-origin"});if(r.ok)return r.arrayBuffer();throw new Error(r.status+" : "+r.url)}));var k=console.log.bind(console),B=console.error.bind(console);_&&(k=(...e)=>re.writeSync(1,e.join(" ")+`
|
|
2
|
+
`),B=(...e)=>re.writeSync(2,e.join(" ")+`
|
|
3
|
+
`));var m=n.print||k,D=n.printErr||B;Object.assign(n,x),x=null,n.arguments&&(C=n.arguments),n.thisProgram&&(ne=n.thisProgram);var w=n.wasmBinary,S,v,M=!1,I;function X(e,r){e||Ee(r)}var V,le,$,ue,fe,Fe,Le,ie,Ue,Nr,Cr=!1,Pr=e=>e.startsWith("file://");function ir(){return S.buffer!=V.buffer&&ce(),V}function me(){return S.buffer!=V.buffer&&ce(),le}function Ge(){return S.buffer!=V.buffer&&ce(),$}function mn(){return S.buffer!=V.buffer&&ce(),ue}function E(){return S.buffer!=V.buffer&&ce(),fe}function oe(){return S.buffer!=V.buffer&&ce(),Fe}function or(){return S.buffer!=V.buffer&&ce(),Nr}if(U){let e=function(...s){var i=s.join(" ");if(_){re.writeSync(2,i+`
|
|
4
|
+
`);return}console.error(i)},r=function(...s){var i=s.join(" ");postMessage({cmd:"alert",text:i,threadId:Qe()})},t=function(s){try{var i=s.data,l=i.cmd;if(l==="load"){let u=[];self.onmessage=c=>u.push(c),self.startWorker=c=>{postMessage({cmd:"loaded"});for(let F of u)t(F);self.onmessage=t};for(let c of i.handlers)(!n[c]||n[c].proxy)&&(n[c]=(...F)=>{postMessage({cmd:"callHandler",handler:c,args:F})},c=="print"&&(m=n[c]),c=="printErr"&&(D=n[c]));S=i.wasmMemory,ce(),Or(i.wasmModule)}else if(l==="run"){Sn(i.pthread_ptr),yr(i.pthread_ptr,0,0,1,0,0),W.receiveObjectTransfer(i),W.threadInitTLS(),hr(i.pthread_ptr),lr||(lr=!0);try{xn(i.start_routine,i.arg)}catch(u){if(u!="unwind")throw u}}else i.target==="setimmediate"||(l==="checkMailbox"?lr&&Xe():l&&(D(`worker: received unknown command ${l}`),D(i)))}catch(u){throw Tt(),u}};var Wi=e,qi=r,$i=t,Or;if(_){var Wr=K.parentPort;Wr.on("message",s=>onmessage({data:s})),Object.assign(globalThis,{self:global,postMessage:s=>Wr.postMessage(s)})}var lr=!1;n.printErr||(D=e),self.alert=r,self.onunhandledrejection=s=>{throw s.reason||s},self.onmessage=t}function ce(){var e=S.buffer;n.HEAP8=V=new Int8Array(e),n.HEAP16=$=new Int16Array(e),n.HEAPU8=le=new Uint8Array(e),n.HEAPU16=ue=new Uint16Array(e),n.HEAP32=fe=new Int32Array(e),n.HEAPU32=Fe=new Uint32Array(e),n.HEAPF32=Le=new Float32Array(e),n.HEAPF64=Nr=new Float64Array(e),n.HEAP64=ie=new BigInt64Array(e),n.HEAPU64=Ue=new BigUint64Array(e)}if(U&&n.wasmMemory&&(S=n.wasmMemory),!U){if(n.wasmMemory)S=n.wasmMemory;else{var gn=n.INITIAL_MEMORY||16777216;S=new WebAssembly.Memory({initial:gn/65536,maximum:65536,shared:!0})}ce()}function vn(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Zr(n.preRun.shift());Jr(Yr)}function qr(){if(Cr=!0,U)return startWorker(n);H.Ia()}function Oi(){}function wn(){if(!U){if(n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)Tn(n.postRun.shift());Jr(tt)}}var Se=0,Ne=null;function $r(e){var r;Se++,(r=n.monitorRunDependencies)==null||r.call(n,Se)}function Gr(e){var t;if(Se--,(t=n.monitorRunDependencies)==null||t.call(n,Se),Se==0&&Ne){var r=Ne;Ne=null,r()}}function Ee(e){var t;(t=n.onAbort)==null||t.call(n,e),e="Aborted("+e+")",D(e),M=!0,e+=". Build with -sASSERTIONS for more info.",Cr&&___trap();var r=new WebAssembly.RuntimeError(e);throw A(r),r}var Ce;function yn(){return Q("./duckdb-coi.wasm")}function Fn(e){if(e==Ce&&w)return new Uint8Array(w);if(ae)return ae(e);throw"both async and sync fetching of the wasm failed"}async function En(e){if(!w)try{var r=await G(e);return new Uint8Array(r)}catch{}return Fn(e)}async function An(e,r){try{var t=await En(e),s=await WebAssembly.instantiate(t,r);return s}catch(i){D(`failed to asynchronously prepare wasm: ${i}`),Ee(i)}}async function Dn(e,r,t){if(!e&&typeof WebAssembly.instantiateStreaming=="function"&&!_)try{var s=fetch(r,{credentials:"same-origin"}),i=await WebAssembly.instantiateStreaming(s,t);return i}catch(l){D(`wasm streaming compile failed: ${l}`),D("falling back to ArrayBuffer instantiation")}return An(r,t)}function jr(){return ks(),{a:Rt}}async function kn(){function e(l,u){return H=l.exports,H=vi(H),Un(H.Ab),nt=H.Ka,v=u,Gr("wasm-instantiate"),H}$r("wasm-instantiate");function r(l){return e(l.instance,l.module)}var t=jr();if(n.instantiateWasm)return new Promise((l,u)=>{n.instantiateWasm(t,(c,F)=>{e(c,F),l(c.exports)})});if(U)return new Promise(l=>{Or=u=>{var c=new WebAssembly.Instance(u,jr());l(e(c,u))}});Ce!=null||(Ce=yn());try{var s=await Dn(w,Ce,t),i=r(s);return i}catch(l){return A(l),Promise.reject(l)}}var Kr={10309345:(e,r,t,s)=>{var i=q(e);if(typeof XMLHttpRequest>"u")return 0;let l=new XMLHttpRequest;l.open(q(s),i,!1),l.responseType="arraybuffer";for(var u=0,p=r;u<p*2;){var c=E()[t/4+u>>>0],F=E()[t/4+u+1>>>0];try{var T=encodeURI(q(c));T==="Host"&&(T="X-Host-Override"),T==="User-Agent"&&(T="X-user-agent"),T==="Authorization"?l.setRequestHeader(T,q(F)):l.setRequestHeader(T,encodeURI(q(F)))}catch(te){console.warn("Error while performing XMLHttpRequest.setRequestHeader()",te)}u+=2}try{l.send(null)}catch{return 0}if(l.status>=400)return 0;for(var L=l.response,p=L.byteLength,O=ye(p+4),j=new Uint8Array(L),P=0;P<p;P++)n.HEAPU8[P+O+4]=j[P];var y=new Uint8Array(4);return y[0]=p%256,p-=y[0],p/=256,y[1]=p%256,p-=y[1],p/=256,y[2]=p%256,p-=y[2],p/=256,y[3]=p%256,p-=y[3],p/=256,n.HEAPU8.set(y,O),O},10310752:(e,r,t,s,i,l)=>{var u=q(e);if(typeof XMLHttpRequest>"u")return 0;let c=new XMLHttpRequest;c.open(q(s),u,!1),c.responseType="arraybuffer";for(var F=0,y=r;F<y*2;){var T=E()[t/4+F>>>0],L=E()[t/4+F+1>>>0];try{var p=encodeURI(q(T));p==="Host"&&(p="X-Host-Override"),p==="User-Agent"&&(p="X-user-agent"),p==="Authorization"?c.setRequestHeader(p,q(L)):c.setRequestHeader(p,encodeURI(q(L)))}catch(ke){console.warn("Error while performing XMLHttpRequest.setRequestHeader()",ke)}F+=2}try{for(var O=new Uint8Array(l),j=0;j<l;j++)O[j]=n.HEAPU8[j+i];c.send(O)}catch{return 0}if(c.status>=400)return 0;for(var P=Uint8Array.from(Array.from(c.getResponseHeader("Etag")).map(ke=>ke.charCodeAt(0))),y=P.byteLength,te=ye(y+4),de=new Uint8Array(P),j=0;j<y;j++)n.HEAPU8[j+te+4]=de[j];var z=new Uint8Array(4);return z[0]=y%256,y-=z[0],y/=256,z[1]=y%256,y-=z[1],y/=256,z[2]=y%256,y-=z[2],y/=256,z[3]=y%256,y-=z[3],y/=256,n.HEAPU8.set(z,te),te},10312372:(e,r,t,s)=>{var i=q(e);if(typeof XMLHttpRequest>"u")return 0;let l=new XMLHttpRequest;l.open(q(s),i,!1),l.responseType="arraybuffer";for(var u=0,p=r;u<p*2;){var c=E()[t/4+u>>>0],F=E()[t/4+u+1>>>0];try{var T=encodeURI(q(c));T==="Host"&&(T="X-Host-Override"),T==="User-Agent"&&(T="X-user-agent"),T==="Authorization"?l.setRequestHeader(T,q(F)):l.setRequestHeader(T,encodeURI(q(F)))}catch(z){console.warn("Error while performing XMLHttpRequest.setRequestHeader()",z)}u+=2}try{l.send(null)}catch{return 0}if(l.status>=400)return 0;for(var L=l.response,p=L.byteLength,O=ye(p+8),j=new Uint8Array(L),P=0;P<p;P++)n.HEAPU8[P+O+8]=j[P];var y=new Uint8Array(4);y[0]=p%256,p-=y[0],p/=256,y[1]=p%256,p-=y[1],p/=256,y[2]=p%256,p-=y[2],p/=256,y[3]=p%256,p-=y[3],p/=256,n.HEAPU8.set(y,O+4);var te=Uint8Array.from(Array.from(l.getAllResponseHeaders()).map(z=>z.charCodeAt(0)));p=te.byteLength;for(var de=ye(p+8),P=0;P<p;P++)n.HEAPU8[P+de+8]=te[P];return y=new Uint8Array(4),y[0]=p%256,p-=y[0],p/=256,y[1]=p%256,p-=y[1],p/=256,y[2]=p%256,p-=y[2],p/=256,y[3]=p%256,p-=y[3],p/=256,n.HEAPU8.set(y,de+4),p=de,y=new Uint8Array(4),y[0]=p%256,p-=y[0],p/=256,y[1]=p%256,p-=y[1],p/=256,y[2]=p%256,p-=y[2],p/=256,y[3]=p%256,p-=y[3],p/=256,n.HEAPU8.set(y,O),O},10314656:(e,r,t,s)=>{var i=q(e);if(typeof XMLHttpRequest>"u")return 0;let l=new XMLHttpRequest;l.open(q(s),i,!1),l.responseType="arraybuffer";for(var u=0,p=r;u<p*2;){var c=E()[t/4+u>>>0],F=E()[t/4+u+1>>>0];try{var T=encodeURI(q(c));T==="Host"&&(T="X-Host-Override"),T==="User-Agent"&&(T="X-user-agent"),T==="Authorization"?l.setRequestHeader(T,q(F)):l.setRequestHeader(T,encodeURI(q(F)))}catch(te){console.warn("Error while performing XMLHttpRequest.setRequestHeader()",te)}u+=2}try{l.send(null)}catch{return 0}if(l.status>=400)return 0;for(var L=l.response,p=L.byteLength,O=ye(p+4),j=new Uint8Array(L),P=0;P<p;P++)n.HEAPU8[P+O+4]=j[P];var y=new Uint8Array(4);return y[0]=p%256,p-=y[0],p/=256,y[1]=p%256,p-=y[1],p/=256,y[2]=p%256,p-=y[2],p/=256,y[3]=p%256,p-=y[3],p/=256,n.HEAPU8.set(y,O),O},10316063:(e,r,t,s,i,l)=>{var u=q(e);if(typeof XMLHttpRequest>"u")return 0;let c=new XMLHttpRequest;c.open(q(s),u,!1),c.responseType="arraybuffer";for(var F=0,y=r;F<y*2;){var T=E()[t/4+F>>>0],L=E()[t/4+F+1>>>0];try{var p=encodeURI(q(T));p==="Host"&&(p="X-Host-Override"),p==="User-Agent"&&(p="X-user-agent"),p==="Authorization"?c.setRequestHeader(p,q(L)):c.setRequestHeader(p,encodeURI(q(L)))}catch(ke){console.warn("Error while performing XMLHttpRequest.setRequestHeader()",ke)}F+=2}try{for(var O=new Uint8Array(l),j=0;j<l;j++)O[j]=n.HEAPU8[j+i];c.send(O)}catch{return 0}if(c.status>=400)return 0;for(var P=c.response,y=P.byteLength,te=ye(y+4),de=new Uint8Array(P),j=0;j<y;j++)n.HEAPU8[j+te+4]=de[j];var z=new Uint8Array(4);return z[0]=y%256,y-=z[0],y/=256,z[1]=y%256,y-=z[1],y/=256,z[2]=y%256,y-=z[2],y/=256,z[3]=y%256,y-=z[3],y/=256,n.HEAPU8.set(z,te),te}};class Xr{constructor(r){er(this,"name","ExitStatus");this.message=`Program terminated with exit(${r})`,this.status=r}}var Vr=e=>{e.terminate(),e.onmessage=r=>{}},zr=e=>{var r=W.pthreads[e];W.returnWorkerToPool(r)},Jr=e=>{for(;e.length>0;)e.shift()(n)},Yr=[],Zr=e=>Yr.unshift(e),Qr=e=>{var r=W.getNewWorker();if(!r)return 6;W.runningWorkers.push(r),W.pthreads[e.pthread_ptr]=r,r.pthread_ptr=e.pthread_ptr;var t={cmd:"run",start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};return _&&r.unref(),r.postMessage(t,e.transferList),0},je=0,ur=()=>dr||je>0,Ke=()=>Ot(),Pe=e=>Ct(e),Oe=e=>Pt(e);n.stackAlloc=Oe;var Rn=9007199254740992,Hn=-9007199254740992,Ae=e=>e<Hn||e>Rn?NaN:Number(e),Me=(e,r,t,...s)=>{for(var i=s.length*2,l=Ke(),u=Oe(i*8),c=u>>>3,F=0;F<s.length;F++){var T=s[F];typeof T=="bigint"?(ie[c+2*F]=1n,ie[c+2*F+1]=T):(ie[c+2*F]=0n,or()[c+2*F+1>>>0]=T)}var L=Ut(e,r,i,u,t);return Pe(l),L};function fr(e){var r;if(U)return Me(0,0,1,e);I=e,ur()||(W.terminateAllThreads(),(r=n.onExit)==null||r.call(n,e),M=!0),Y(e,new Xr(e))}var cr=e=>{if(e instanceof Xr||e=="unwind")return I;Y(1,e)};function et(e){if(U)return Me(1,0,0,e);_r(e)}var rt=(e,r)=>{if(I=e,U)throw et(e),"unwind";fr(e)},_r=rt,W={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){U||W.initMainThread()},initMainThread(){for(var e=4;e--;)W.allocateUnusedWorker();Zr(()=>{$r("loading-workers"),W.loadWasmModuleToAllWorkers(()=>Gr("loading-workers"))})},terminateAllThreads:()=>{for(var e of W.runningWorkers)Vr(e);for(var e of W.unusedWorkers)Vr(e);W.unusedWorkers=[],W.runningWorkers=[],W.pthreads={}},returnWorkerToPool:e=>{var r=e.pthread_ptr;delete W.pthreads[r],W.unusedWorkers.push(e),W.runningWorkers.splice(W.runningWorkers.indexOf(e),1),e.pthread_ptr=0,Mt(r)},receiveObjectTransfer(e){},threadInitTLS(){W.tlsInitFunctions.forEach(e=>e())},loadWasmModuleToWorker:e=>new Promise(r=>{e.onmessage=l=>{var u=l.data,c=u.cmd;if(u.targetThread&&u.targetThread!=Qe()){var F=W.pthreads[u.targetThread];F?F.postMessage(u,u.transferList):D(`Internal error! Worker sent a message "${c}" to target pthread ${u.targetThread}, but that thread no longer exists!`);return}c==="checkMailbox"?Xe():c==="spawnThread"?Qr(u):c==="cleanupThread"?zr(u.thread):c==="loaded"?(e.loaded=!0,_&&!e.pthread_ptr&&e.unref(),r(e)):c==="alert"?alert(`Thread ${u.threadId}: ${u.text}`):u.target==="setimmediate"?e.postMessage(u):c==="callHandler"?n[u.handler](...u.args):c&&D(`worker sent an unknown command ${c}`)},e.onerror=l=>{var u="worker sent an error!";throw D(`${u} ${l.filename}:${l.lineno}: ${l.message}`),l},_&&(e.on("message",l=>e.onmessage({data:l})),e.on("error",l=>e.onerror(l)));var t=[],s=["onExit","onAbort","print","printErr"];for(var i of s)n.propertyIsEnumerable(i)&&t.push(i);e.postMessage({cmd:"load",handlers:t,wasmMemory:S,wasmModule:v})}),loadWasmModuleToAllWorkers(e){if(U)return e();Promise.all(W.unusedWorkers.map(W.loadWasmModuleToWorker)).then(e)},allocateUnusedWorker(){var e,r={workerData:"em-pthread",name:"em-pthread"},t=a;n.mainScriptUrlOrBlob&&(t=n.mainScriptUrlOrBlob,typeof t!="string"&&(t=URL.createObjectURL(t))),e=new Worker(t,r),W.unusedWorkers.push(e)},getNewWorker(){return W.unusedWorkers.length==0&&(W.allocateUnusedWorker(),W.loadWasmModuleToWorker(W.unusedWorkers[0])),W.unusedWorkers.pop()}},tt=[],Tn=e=>tt.unshift(e),Sn=e=>{ce();var r=oe()[e+52>>>2>>>0],t=oe()[e+56>>>2>>>0],s=r-t;Nt(r,s),Pe(r)},nt,at=e=>nt.get(e),xn=(e,r)=>{je=0,dr=0;var t=at(e)(r);function s(i){ur()?I=i:Fr(i)}s(t)},dr=n.noExitRuntime||!0,Un=e=>W.tlsInitFunctions.push(e);function Mn(e,r){return e>>>=0,at(e)(r)}function st(e,r,t,s){return U?Me(2,0,1,e,r,t,s):it(e,r,t,s)}var Bn=()=>typeof SharedArrayBuffer<"u";function it(e,r,t,s){if(e>>>=0,r>>>=0,t>>>=0,s>>>=0,!Bn())return 6;var i=[],l=0;if(U&&(i.length===0||l))return st(e,r,t,s);if(l)return l;var u={startRoutine:t,pthread_ptr:e,arg:s,transferList:i};return U?(u.cmd="spawnThread",postMessage(u,i),0):Qr(u)}var In=()=>Ee("");function Ln(e){e>>>=0,yr(e,!ee,1,!d,1048576,!1),W.threadInitTLS()}var Nn=()=>{if(!ur())try{U?Fr(I):_r(I)}catch(e){cr(e)}},Cn=e=>{if(!M)try{e(),Nn()}catch(r){cr(r)}};function hr(e){if(e>>>=0,typeof Atomics.waitAsync=="function"){var r=Atomics.waitAsync(E(),e>>>2,e);r.value.then(Xe);var t=e+128;Atomics.store(E(),t>>>2,1)}}var Xe=()=>{var e=Qe();e&&(hr(e),Cn(Bt))};function Pn(e,r){if(e>>>=0,r>>>=0,e==r)setTimeout(Xe);else if(U)postMessage({targetThread:e,cmd:"checkMailbox"});else{var t=W.pthreads[e];if(!t)return;t.postMessage({cmd:"checkMailbox"})}}var Ve=[];function On(e,r,t,s,i){r>>>=0,t>>>=0,i>>>=0,s/=2,Ve.length=s;for(var l=i>>>3,u=0;u<s;u++)ie[l+2*u]?Ve[u]=ie[l+2*u+1]:Ve[u]=or()[l+2*u+1>>>0];var c=r?Kr[r]:Ds[e];W.currentProxiedOperationCallerThread=t;var F=c(...Ve);return W.currentProxiedOperationCallerThread=0,F}var Wn=()=>{dr=!1,je=0},ot=typeof TextDecoder<"u"?new TextDecoder:void 0,qn=(e,r=0,t=NaN)=>{r>>>=0;for(var s=r+t,i=r;e[i]&&!(i>=s);)++i;if(i-r>16&&e.buffer&&ot)return ot.decode(e.slice(r,i));for(var l="";r<i;){var u=e[r++];if(!(u&128)){l+=String.fromCharCode(u);continue}var c=e[r++]&63;if((u&224)==192){l+=String.fromCharCode((u&31)<<6|c);continue}var F=e[r++]&63;if((u&240)==224?u=(u&15)<<12|c<<6|F:u=(u&7)<<18|c<<12|F<<6|e[r++]&63,u<65536)l+=String.fromCharCode(u);else{var T=u-65536;l+=String.fromCharCode(55296|T>>10,56320|T&1023)}}return l},q=(e,r)=>(e>>>=0,e?qn(me(),e,r):"");function $n(e){if(e>>>=0,_){if(!e)return 1;var r=q(e);if(!r.length)return 0;var t=["child_process"].map(Ie),s=t.spawnSync(r,[],{shell:!0,stdio:"inherit"}),i=(u,c)=>u<<8|c;if(s.status===null){var l=u=>{switch(u){case"SIGHUP":return 1;case"SIGQUIT":return 3;case"SIGFPE":return 8;case"SIGKILL":return 9;case"SIGALRM":return 14;case"SIGTERM":return 15;default:return 2}};return i(0,l(s.signal))}return i(s.status,0)}return e?-52:0}function Gn(e){e>>>=0,U?postMessage({cmd:"cleanupThread",thread:e}):zr(e)}function jn(e){e>>>=0,_&&W.pthreads[e].ref()}function lt(){Ee("missing function: _emval_call_method")}lt.stub=!0;function ut(){Ee("missing function: _emval_decref")}ut.stub=!0;function ft(){Ee("missing function: _emval_get_global")}ft.stub=!0;function ct(){Ee("missing function: _emval_get_method_caller")}ct.stub=!0;function _t(){Ee("missing function: _emval_run_destructors")}_t.stub=!0;function Kn(e,r){e=Ae(e),r>>>=0;var t=new Date(e*1e3);E()[r>>>2>>>0]=t.getUTCSeconds(),E()[r+4>>>2>>>0]=t.getUTCMinutes(),E()[r+8>>>2>>>0]=t.getUTCHours(),E()[r+12>>>2>>>0]=t.getUTCDate(),E()[r+16>>>2>>>0]=t.getUTCMonth(),E()[r+20>>>2>>>0]=t.getUTCFullYear()-1900,E()[r+24>>>2>>>0]=t.getUTCDay();var s=Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0),i=(t.getTime()-s)/(1e3*60*60*24)|0;E()[r+28>>>2>>>0]=i}var Xn=e=>e%4===0&&(e%100!==0||e%400===0),Vn=[0,31,60,91,121,152,182,213,244,274,305,335],zn=[0,31,59,90,120,151,181,212,243,273,304,334],dt=e=>{var r=Xn(e.getFullYear()),t=r?Vn:zn,s=t[e.getMonth()]+e.getDate()-1;return s};function Jn(e,r){e=Ae(e),r>>>=0;var t=new Date(e*1e3);E()[r>>>2>>>0]=t.getSeconds(),E()[r+4>>>2>>>0]=t.getMinutes(),E()[r+8>>>2>>>0]=t.getHours(),E()[r+12>>>2>>>0]=t.getDate(),E()[r+16>>>2>>>0]=t.getMonth(),E()[r+20>>>2>>>0]=t.getFullYear()-1900,E()[r+24>>>2>>>0]=t.getDay();var s=dt(t)|0;E()[r+28>>>2>>>0]=s,E()[r+36>>>2>>>0]=-(t.getTimezoneOffset()*60);var i=new Date(t.getFullYear(),0,1),l=new Date(t.getFullYear(),6,1).getTimezoneOffset(),u=i.getTimezoneOffset(),c=(l!=u&&t.getTimezoneOffset()==Math.min(u,l))|0;E()[r+32>>>2>>>0]=c}var Yn=function(e){e>>>=0;var r=(()=>{var t=new Date(E()[e+20>>>2>>>0]+1900,E()[e+16>>>2>>>0],E()[e+12>>>2>>>0],E()[e+8>>>2>>>0],E()[e+4>>>2>>>0],E()[e>>>2>>>0],0),s=E()[e+32>>>2>>>0],i=t.getTimezoneOffset(),l=new Date(t.getFullYear(),0,1),u=new Date(t.getFullYear(),6,1).getTimezoneOffset(),c=l.getTimezoneOffset(),F=Math.min(c,u);if(s<0)E()[e+32>>>2>>>0]=+(u!=c&&F==i);else if(s>0!=(F==i)){var T=Math.max(c,u),L=s>0?F:T;t.setTime(t.getTime()+(L-i)*6e4)}E()[e+24>>>2>>>0]=t.getDay();var p=dt(t)|0;E()[e+28>>>2>>>0]=p,E()[e>>>2>>>0]=t.getSeconds(),E()[e+4>>>2>>>0]=t.getMinutes(),E()[e+8>>>2>>>0]=t.getHours(),E()[e+12>>>2>>>0]=t.getDate(),E()[e+16>>>2>>>0]=t.getMonth(),E()[e+20>>>2>>>0]=t.getYear();var O=t.getTime();return isNaN(O)?-1:O/1e3})();return BigInt(r)},ht=(e,r,t,s)=>{if(t>>>=0,!(s>0))return 0;for(var i=t,l=t+s-1,u=0;u<e.length;++u){var c=e.charCodeAt(u);if(c>=55296&&c<=57343){var F=e.charCodeAt(++u);c=65536+((c&1023)<<10)|F&1023}if(c<=127){if(t>=l)break;r[t++>>>0]=c}else if(c<=2047){if(t+1>=l)break;r[t++>>>0]=192|c>>6,r[t++>>>0]=128|c&63}else if(c<=65535){if(t+2>=l)break;r[t++>>>0]=224|c>>12,r[t++>>>0]=128|c>>6&63,r[t++>>>0]=128|c&63}else{if(t+3>=l)break;r[t++>>>0]=240|c>>18,r[t++>>>0]=128|c>>12&63,r[t++>>>0]=128|c>>6&63,r[t++>>>0]=128|c&63}}return r[t>>>0]=0,t-i},_e=(e,r,t)=>ht(e,me(),r,t);n.stringToUTF8=_e;var Zn=function(e,r,t,s){e>>>=0,r>>>=0,t>>>=0,s>>>=0;var i=new Date().getFullYear(),l=new Date(i,0,1),u=new Date(i,6,1),c=l.getTimezoneOffset(),F=u.getTimezoneOffset(),T=Math.max(c,F);oe()[e>>>2>>>0]=T*60,E()[r>>>2>>>0]=+(c!=F);var L=j=>{var P=j>=0?"-":"+",y=Math.abs(j),te=String(Math.floor(y/60)).padStart(2,"0"),de=String(y%60).padStart(2,"0");return`UTC${P}${te}${de}`},p=L(c),O=L(F);F<c?(_e(p,t,17),_e(O,s,17)):(_e(p,s,17),_e(O,t,17))};function Qn(e,r){return r>>>=0,me().set(We[e].fileData,r>>>0)}var br=[],ea=()=>br.length,We=[],ra=!1,ta=()=>(ra=!0,We.length);function na(e,r){r>>>=0;var t=br[e].childName,s=Be(t)+1;_e(t,r,s)}var aa=e=>We[e].mode;function sa(e){return We[e].fileData.length}function ia(e,r){r>>>=0;var t=br[e].parentPath,s=Be(t)+1;_e(t,r,s)}var Be=e=>{for(var r=0,t=0;t<e.length;++t){var s=e.charCodeAt(t);s<=127?r++:s<=2047?r+=2:s>=55296&&s<=57343?(r+=4,++t):r+=3}return r};n.lengthBytesUTF8=Be;function oa(e,r){r>>>=0;var t=We[e].pathName,s=Be(t)+1;_e(t,r,s)}class ze{constructor(){er(this,"allocated",[void 0]);er(this,"freelist",[])}get(r){return this.allocated[r]}has(r){return this.allocated[r]!==void 0}allocate(r){var t=this.freelist.pop()||this.allocated.length;return this.allocated[t]=r,t}free(r){this.allocated[r]=void 0,this.freelist.push(r)}}var De=new ze,se=e=>{xt(e)};async function la(e,r,t){e>>>=0,t>>>=0;let s=De.get(r);try{await s.close()}catch{let i=-29;E()[t>>>2>>>0]=i}De.free(r),se(e)}var Je=new ze,ua=e=>{Je.free(e)};async function fa(e,r,t){e>>>=0,t>>>=0;let s=De.get(r);try{await s.flush()}catch{let i=-29;E()[t>>>2>>>0]=i}se(e)}var ve=new ze,ca=e=>{ve.free(e)},xe=new ze,_a=e=>{xe.free(e)};async function bt(e,r,t){let s=ve.get(e),i;try{i=await s.getFileHandle(r,{create:t})}catch(l){return l.name==="NotFoundError"?-20:l.name==="TypeMismatchError"?-31:-29}return xe.allocate(i)}async function pt(e,r,t){let s=ve.get(e),i;try{i=await s.getDirectoryHandle(r,{create:t})}catch(l){return l.name==="NotFoundError"?-20:l.name==="TypeMismatchError"?-54:-29}return ve.allocate(i)}async function da(e,r,t,s,i){e>>>=0,t>>>=0,s>>>=0,i>>>=0;let l=q(t),u=1,c=await bt(r,l,!1);c==-31&&(u=2,c=await pt(r,l,!1)),E()[s>>>2>>>0]=u,E()[i>>>2>>>0]=c,se(e)}async function ha(e,r,t,s){e>>>=0,t>>>=0,s>>>=0;let i=ve.get(r);try{let l=i.entries();for(let u;u=await l.next(),!u.done;){let[c,F]=u.value,T=Ke(),L=kt(c),p=F.kind=="file"?1:2;__wasmfs_opfs_record_entry(t,L,p),Pe(T)}}catch{let l=-29;E()[s>>>2>>>0]=l}se(e)}async function ba(e,r,t){e>>>=0,t>>>=0;let s=De.get(r),i;try{i=await s.getSize()}catch{i=-29}ie[t>>>3]=BigInt(i),se(e)}var pa=function(e){var r=Je.get(e).size;return BigInt(r)};async function ma(e,r,t){e>>>=0,t>>>=0;let s=xe.get(r),i;try{i=(await s.getFile()).size}catch{i=-29}ie[t>>>3]=BigInt(i),se(e)}async function ga(e){if(e>>>=0,ve.allocated.length==1){let r=await navigator.storage.getDirectory();ve.allocated.push(r)}se(e)}async function va(e,r,t,s){e>>>=0,t>>>=0,s>>>=0;let i=q(t),l=await pt(r,i,!0);E()[s>>>2>>>0]=l,se(e)}async function wa(e,r,t,s){e>>>=0,t>>>=0,s>>>=0;let i=q(t),l=await bt(r,i,!0);E()[s>>>2>>>0]=l,se(e)}async function ya(e,r,t,s,i){e>>>=0,s>>>=0,i>>>=0;let l=q(s),u=xe.get(r),c=ve.get(t);try{await u.move(c,l)}catch{let F=-29;E()[i>>>2>>>0]=F}se(e)}async function Fa(e,r,t){e>>>=0,t>>>=0;let s=xe.get(r),i;try{let u;var l=FileSystemFileHandle.prototype.createSyncAccessHandle.length;l==0?u=await s.createSyncAccessHandle():u=await s.createSyncAccessHandle({mode:"in-place"}),i=De.allocate(u)}catch(u){u.name==="InvalidStateError"||u.name==="NoModificationAllowedError"?i=-2:i=-29}E()[t>>>2>>>0]=i,se(e)}async function Ea(e,r,t){e>>>=0,t>>>=0;let s=xe.get(r),i;try{let l=await s.getFile();i=Je.allocate(l)}catch(l){l.name==="NotAllowedError"?i=-2:i=-29}E()[t>>>2>>>0]=i,se(e)}function Aa(e,r,t,s){r>>>=0,s=Ae(s);let i=De.get(e),l=me().subarray(r>>>0,r+t>>>0);try{return i.read(l,{at:s})}catch(u){return u.name=="TypeError"?-28:-29}}async function Da(e,r,t,s,i,l){e>>>=0,t>>>=0,i=Ae(i),l>>>=0;let c=Je.get(r).slice(i,i+s),F=0;try{let T=await c.arrayBuffer(),L=new Uint8Array(T);me().set(L,t>>>0),F+=L.length}catch(T){T instanceof RangeError?F=-21:F=-29}E()[l>>>2>>>0]=F,se(e)}async function ka(e,r,t,s){e>>>=0,t>>>=0,s>>>=0;let i=q(t),l=ve.get(r);try{await l.removeEntry(i)}catch{let u=-29;E()[s>>>2>>>0]=u}se(e)}async function Ra(e,r,t,s){e>>>=0,t=Ae(t),s>>>=0;let i=De.get(r);try{await i.truncate(t)}catch{let l=-29;E()[s>>>2>>>0]=l}se(e)}async function Ha(e,r,t,s){e>>>=0,t=Ae(t),s>>>=0;let i=xe.get(r);try{let l=await i.createWritable({keepExistingData:!0});await l.truncate(t),await l.close()}catch{let l=-29;E()[s>>>2>>>0]=l}se(e)}function Ta(e,r,t,s){r>>>=0,s=Ae(s);let i=De.get(e),l=me().subarray(r>>>0,r+t>>>0);try{return i.write(l,{at:s})}catch(u){return u.name=="TypeError"?-28:-29}}var pr=[],Sa=(e,r,t)=>{var s=t>0?t:Be(e)+1,i=new Array(s),l=ht(e,i,0,i.length);return r&&(i.length=l),i},xa=()=>{if(!pr.length){var e=null;if(_){var r=256,t=Buffer.alloc(r),s=0,i=process.stdin.fd;try{s=re.readSync(i,t,0,r)}catch(l){if(l.toString().includes("EOF"))s=0;else throw l}s>0&&(e=t.slice(0,s).toString("utf-8"))}else typeof window<"u"&&typeof window.prompt=="function"&&(e=window.prompt("Input: "),e!==null&&(e+=`
|
|
5
|
+
`));if(!e)return null;pr=Sa(e,!0)}return pr.shift()},Ua=()=>{var e=xa();return typeof e=="number"?e:-1},Ma=function(e){e>>>=0;var r=setInterval(()=>{M?clearInterval(r):St(e)},50)},mt=()=>performance.timeOrigin+performance.now(),gt=()=>Date.now(),Ba=1,Ia=e=>e>=0&&e<=3;function La(e,r,t){if(r=Ae(r),t>>>=0,!Ia(e))return 28;var s;if(e===0)s=gt();else if(Ba)s=mt();else return 52;var i=Math.round(s*1e3*1e3);return ie[t>>>3]=BigInt(i),0}function Na(e,r){return e>>>=0,globalThis.DUCKDB_RUNTIME.createDirectory(n,e,r)}function Ca(e,r){return e>>>=0,globalThis.DUCKDB_RUNTIME.checkDirectory(n,e,r)}function Pa(e,r){return e>>>=0,globalThis.DUCKDB_RUNTIME.listDirectoryEntries(n,e,r)}function Oa(e,r){return e>>>=0,globalThis.DUCKDB_RUNTIME.removeDirectory(n,e,r)}function Wa(e){return globalThis.DUCKDB_RUNTIME.closeFile(n,e)}function qa(e,r){return e>>>=0,globalThis.DUCKDB_RUNTIME.dropFile(n,e,r)}function $a(e,r){return e>>>=0,globalThis.DUCKDB_RUNTIME.checkFile(n,e,r)}function Ga(e,r,t,s){return e>>>=0,t>>>=0,globalThis.DUCKDB_RUNTIME.moveFile(n,e,r,t,s)}function ja(e,r){return globalThis.DUCKDB_RUNTIME.openFile(n,e,r)}function Ka(e,r,t,s){return r>>>=0,globalThis.DUCKDB_RUNTIME.readFile(n,e,r,t,s)}function Xa(e,r){return globalThis.DUCKDB_RUNTIME.truncateFile(n,e,r)}function Va(e,r,t,s){return r>>>=0,globalThis.DUCKDB_RUNTIME.writeFile(n,e,r,t,s)}function za(e){return globalThis.DUCKDB_RUNTIME.getDefaultDataProtocol(e)}function Ja(e,r){return e>>>=0,globalThis.DUCKDB_RUNTIME.glob(n,e,r)}function Ya(e){return globalThis.DUCKDB_RUNTIME.testPlatformFeature(n,e)}function Za(e,r,t,s,i,l){return e>>>=0,t>>>=0,i>>>=0,globalThis.DUCKDB_RUNTIME.callScalarUDF(n,e,r,t,s,i,l)}var mr=[],Qa=(e,r)=>{mr.length=0;for(var t;t=me()[e++>>>0];){var s=t!=105;s&=t!=112,r+=s&&r%8?4:0,mr.push(t==112?oe()[r>>>2>>>0]:t==106?ie[r>>>3]:t==105?E()[r>>>2>>>0]:or()[r>>>3>>>0]),r+=s?8:4}return mr},es=(e,r,t)=>{var s=Qa(r,t);return Kr[e](...s)};function rs(e,r,t){return e>>>=0,r>>>=0,t>>>=0,es(e,r,t)}var qe=e=>{qe.shown||(qe.shown={}),qe.shown[e]||(qe.shown[e]=1,_&&(e="warning: "+e),D(e))},ts=()=>{};function ns(e){return e>>>=0,D(q(e))}var as=()=>{je+=1},ss=()=>{throw as(),"unwind"},vt=()=>4294901760;function is(){return vt()}var os=()=>_?Jt().cpus().length:navigator.hardwareConcurrency;function ls(e){return e>>>=0,m(q(e))}var us=(e,r)=>Math.ceil(e/r)*r,fs=e=>{var r=S.buffer,t=(e-r.byteLength+65535)/65536|0;try{return S.grow(t),ce(),1}catch{}};function cs(e){e>>>=0;var r=me().length;if(e<=r)return!1;var t=vt();if(e>t)return!1;for(var s=1;s<=4;s*=2){var i=r*(1+.2/s);i=Math.min(i,e+100663296);var l=Math.min(t,us(Math.max(e,i),65536)),u=fs(l);if(u)return!0}return!1}var _s=()=>{throw"unwind"},gr={},ds=()=>ne||"./this.program",$e=()=>{if(!$e.strings){var e=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:e,_:ds()};for(var t in gr)gr[t]===void 0?delete r[t]:r[t]=gr[t];var s=[];for(var t in r)s.push(`${t}=${r[t]}`);$e.strings=s}return $e.strings},hs=(e,r)=>{for(var t=0;t<e.length;++t)ir()[r++>>>0]=e.charCodeAt(t);ir()[r>>>0]=0},wt=function(e,r){if(U)return Me(3,0,1,e,r);e>>>=0,r>>>=0;var t=0;return $e().forEach((s,i)=>{var l=r+t;oe()[e+i*4>>>2>>>0]=l,hs(s,l),t+=s.length+1}),0},yt=function(e,r){if(U)return Me(4,0,1,e,r);e>>>=0,r>>>=0;var t=$e();oe()[e>>>2>>>0]=t.length;var s=0;return t.forEach(i=>s+=i.length+1),oe()[r>>>2>>>0]=s,0},Ye=e=>{for(var r=e.split("."),t=0;t<4;t++){var s=Number(r[t]);if(isNaN(s))return null;r[t]=s}return(r[0]|r[1]<<8|r[2]<<16|r[3]<<24)>>>0},Ze=e=>parseInt(e),vr=e=>{var r,t,s,i,l=/^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i,u=[];if(!l.test(e))return null;if(e==="::")return[0,0,0,0,0,0,0,0];for(e.startsWith("::")?e=e.replace("::","Z:"):e=e.replace("::",":Z:"),e.indexOf(".")>0?(e=e.replace(new RegExp("[.]","g"),":"),r=e.split(":"),r[r.length-4]=Ze(r[r.length-4])+Ze(r[r.length-3])*256,r[r.length-3]=Ze(r[r.length-2])+Ze(r[r.length-1])*256,r=r.slice(0,r.length-2)):r=e.split(":"),s=0,i=0,t=0;t<r.length;t++)if(typeof r[t]=="string")if(r[t]==="Z"){for(i=0;i<8-r.length+1;i++)u[t+i]=0;s=i-1}else u[t+s]=_htons(parseInt(r[t],16));else u[t+s]=r[t];return[u[1]<<16|u[0],u[3]<<16|u[2],u[5]<<16|u[4],u[7]<<16|u[6]]},we={address_map:{id:1,addrs:{},names:{}},lookup_name(e){var r=Ye(e);if(r!==null||(r=vr(e),r!==null))return e;var t;if(we.address_map.addrs[e])t=we.address_map.addrs[e];else{var s=we.address_map.id++;X(s<65535,"exceeded max address mappings of 65535"),t="172.29."+(s&255)+"."+(s&65280),we.address_map.names[t]=e,we.address_map.addrs[e]=t}return t},lookup_addr(e){return we.address_map.names[e]?we.address_map.names[e]:null}},wr=e=>(e&255)+"."+(e>>8&255)+"."+(e>>16&255)+"."+(e>>24&255),Ft=e=>{var r="",t=0,s=0,i=0,l=0,u=0,c=0,F=[e[0]&65535,e[0]>>16,e[1]&65535,e[1]>>16,e[2]&65535,e[2]>>16,e[3]&65535,e[3]>>16],T=!0,L="";for(c=0;c<5;c++)if(F[c]!==0){T=!1;break}if(T){if(L=wr(F[6]|F[7]<<16),F[5]===-1)return r="::ffff:",r+=L,r;if(F[5]===0)return r="::",L==="0.0.0.0"&&(L=""),L==="0.0.0.1"&&(L="1"),r+=L,r}for(t=0;t<8;t++)F[t]===0&&(t-i>1&&(u=0),i=t,u++),u>s&&(s=u,l=t-s+1);for(t=0;t<8;t++){if(s>1&&F[t]===0&&t>=l&&t<l+s){t===l&&(r+=":",l===0&&(r+=":"));continue}r+=Number(_ntohs(F[t]&65535)).toString(16),r+=t<7?":":""}return r},Et=(e,r)=>{me().fill(0,e,e+r)},bs=(e,r,t,s,i)=>{switch(r){case 2:t=Ye(t),Et(e,16),i&&(E()[i>>>2>>>0]=16),Ge()[e>>>1>>>0]=r,E()[e+4>>>2>>>0]=t,Ge()[e+2>>>1>>>0]=_htons(s);break;case 10:t=vr(t),Et(e,28),i&&(E()[i>>>2>>>0]=28),E()[e>>>2>>>0]=r,E()[e+8>>>2>>>0]=t[0],E()[e+12>>>2>>>0]=t[1],E()[e+16>>>2>>>0]=t[2],E()[e+20>>>2>>>0]=t[3],Ge()[e+2>>>1>>>0]=_htons(s);break;default:return 5}return 0};function At(e,r,t,s){if(U)return Me(5,0,1,e,r,t,s);e>>>=0,r>>>=0,t>>>=0,s>>>=0;var i=0,l=0,u=0,c=0,F=0,T=0,L;function p(O,j,P,y,te,de){var z,ke,ge,qt;return ke=O===10?28:16,te=O===10?Ft(te):wr(te),z=ye(ke),qt=bs(z,O,te,de),X(!qt),ge=ye(32),E()[ge+4>>>2>>>0]=O,E()[ge+8>>>2>>>0]=j,E()[ge+12>>>2>>>0]=P,oe()[ge+24>>>2>>>0]=y,oe()[ge+20>>>2>>>0]=z,O===10?E()[ge+16>>>2>>>0]=28:E()[ge+16>>>2>>>0]=16,E()[ge+28>>>2>>>0]=0,ge}if(t&&(u=E()[t>>>2>>>0],c=E()[t+4>>>2>>>0],F=E()[t+8>>>2>>>0],T=E()[t+12>>>2>>>0]),F&&!T&&(T=F===2?17:6),!F&&T&&(F=T===17?2:1),T===0&&(T=6),F===0&&(F=1),!e&&!r)return-2;if(u&-1088||t!==0&&E()[t>>>2>>>0]&2&&!e)return-1;if(u&32)return-2;if(F!==0&&F!==1&&F!==2)return-7;if(c!==0&&c!==2&&c!==10)return-6;if(r&&(r=q(r),l=parseInt(r,10),isNaN(l)))return u&1024?-2:-8;if(!e)return c===0&&(c=2),(u&1)===0&&(c===2?i=_htonl(2130706433):i=[0,0,0,_htonl(1)]),L=p(c,F,T,null,i,l),oe()[s>>>2>>>0]=L,0;if(e=q(e),i=Ye(e),i!==null)if(c===0||c===2)c=2;else if(c===10&&u&8)i=[0,0,_htonl(65535),i],c=10;else return-2;else if(i=vr(e),i!==null)if(c===0||c===10)c=10;else return-2;return i!=null?(L=p(c,F,T,e,i,l),oe()[s>>>2>>>0]=L,0):u&4?-2:(e=we.lookup_name(e),i=Ye(e),c===0?c=2:c===10&&(i=[0,0,_htonl(65535),i]),L=p(c,F,T,null,i,l),oe()[s>>>2>>>0]=L,0)}var ps=(e,r)=>{var t=Ge()[e>>>1>>>0],s=_ntohs(mn()[e+2>>>1>>>0]),i;switch(t){case 2:if(r!==16)return{errno:28};i=E()[e+4>>>2>>>0],i=wr(i);break;case 10:if(r!==28)return{errno:28};i=[E()[e+8>>>2>>>0],E()[e+12>>>2>>>0],E()[e+16>>>2>>>0],E()[e+20>>>2>>>0]],i=Ft(i);break;default:return{errno:5}}return{family:t,addr:i,port:s}};function ms(e,r,t,s,i,l,u){e>>>=0,t>>>=0,i>>>=0;var c=ps(e,r);if(c.errno)return-6;var F=c.port,T=c.addr,L=!1;if(t&&s){var p;if(u&1||!(p=we.lookup_addr(T))){if(u&8)return-2}else T=p;var O=_e(T,t,s);O+1>=s&&(L=!0)}if(i&&l){F=""+F;var O=_e(F,i,l);O+1>=l&&(L=!0)}return L?-12:0}var gs=()=>{if(_){var e=["crypto"].map(Ie);return r=>e.randomFillSync(r)}return r=>r.set(crypto.getRandomValues(new Uint8Array(r.byteLength)))},Dt=e=>{(Dt=gs())(e)};function vs(e,r){return e>>>=0,r>>>=0,Dt(me().subarray(e>>>0,e+r>>>0)),0}var ws=e=>{var r=n["_"+e];return r},ys=(e,r)=>{ir().set(e,r>>>0)},kt=e=>{var r=Be(e)+1,t=Oe(r);return _e(e,t,r),t},Fs=(e,r,t,s,i)=>{var l={string:P=>{var y=0;return P!=null&&P!==0&&(y=kt(P)),y},array:P=>{var y=Oe(P.length);return ys(P,y),y}};function u(P){return r==="string"?q(P):r==="boolean"?!!P:P}var c=ws(e),F=[],T=0;if(s)for(var L=0;L<s.length;L++){var p=l[t[L]];p?(T===0&&(T=Ke()),F[L]=p(s[L])):F[L]=s[L]}var O=c(...F);function j(P){return T!==0&&Pe(T),u(P)}return O=j(O),O},Es=e=>Lt(),As=e=>It(e);W.init();var Ds=[fr,et,st,wt,yt,At],Rt;function ks(){Rt={ha:Mn,oa:it,Ga:In,aa:Ln,za:Pn,ia:On,m:Wn,x:$n,q:Gn,S:hr,I:jn,u:lt,v:ut,w:ft,t:ct,s:_t,ka:Kn,la:Jn,ma:Yn,pa:Zn,ya:Qn,wa:ea,xa:ta,ua:na,sa:aa,Aa:sa,va:ia,ta:oa,M:la,N:ua,F:fa,y:ca,E:_a,T:da,z:ha,Q:ba,P:pa,R:ma,U:ga,C:va,D:wa,B:ya,j:Fa,O:Ea,L:Aa,K:Da,A:ka,H:Ra,G:Ha,J:Ta,Da:Ua,V:Ma,Ha:La,$:Na,ba:Ca,Z:Pa,_:Oa,l:Wa,ea:qa,X:$a,Y:Ga,da:ja,f:Ka,ca:Xa,g:Va,fa:za,W:Ja,k:Ya,ga:Za,e:rs,p:ts,b:gt,h:ns,i:ss,Ea:is,d:mt,Fa:os,Ca:ls,r:cs,na:_s,qa:wt,ra:yt,c:_r,o:At,n:ms,a:S,ja:fr,Ba:vs}}var H=await kn(),Ht=n._main=(e,r)=>(Ht=n._main=H.Ja)(e,r),Rs=n._duckdb_web_fs_glob_add_path=e=>(Rs=n._duckdb_web_fs_glob_add_path=H.La)(e),Hs=n._duckdb_web_clear_response=()=>(Hs=n._duckdb_web_clear_response=H.Ma)(),Ts=n._duckdb_web_fail_with=e=>(Ts=n._duckdb_web_fail_with=H.Na)(e),Ss=n._duckdb_web_reset=e=>(Ss=n._duckdb_web_reset=H.Oa)(e),xs=n._duckdb_web_connect=()=>(xs=n._duckdb_web_connect=H.Pa)(),Us=n._duckdb_web_disconnect=e=>(Us=n._duckdb_web_disconnect=H.Qa)(e),Ms=n._duckdb_web_flush_files=()=>(Ms=n._duckdb_web_flush_files=H.Ra)(),Bs=n._duckdb_web_flush_file=e=>(Bs=n._duckdb_web_flush_file=H.Sa)(e),Is=n._duckdb_web_open=(e,r)=>(Is=n._duckdb_web_open=H.Ta)(e,r),Ls=n._duckdb_web_get_global_file_info=(e,r)=>(Ls=n._duckdb_web_get_global_file_info=H.Ua)(e,r),Ns=n._duckdb_web_collect_file_stats=(e,r,t)=>(Ns=n._duckdb_web_collect_file_stats=H.Va)(e,r,t),Cs=n._duckdb_web_export_file_stats=(e,r)=>(Cs=n._duckdb_web_export_file_stats=H.Wa)(e,r),Ps=n._duckdb_web_fs_drop_file=(e,r)=>(Ps=n._duckdb_web_fs_drop_file=H.Xa)(e,r),Os=n._duckdb_web_fs_drop_files=(e,r,t)=>(Os=n._duckdb_web_fs_drop_files=H.Ya)(e,r,t),Ws=n._duckdb_web_fs_glob_file_infos=(e,r)=>(Ws=n._duckdb_web_fs_glob_file_infos=H.Za)(e,r),qs=n._duckdb_web_fs_get_file_info_by_id=(e,r,t)=>(qs=n._duckdb_web_fs_get_file_info_by_id=H._a)(e,r,t),$s=n._duckdb_web_fs_get_file_info_by_name=(e,r,t)=>($s=n._duckdb_web_fs_get_file_info_by_name=H.$a)(e,r,t),Gs=n._duckdb_web_fs_register_file_url=(e,r,t,s,i)=>(Gs=n._duckdb_web_fs_register_file_url=H.ab)(e,r,t,s,i),js=n._duckdb_web_fs_register_file_buffer=(e,r,t,s)=>(js=n._duckdb_web_fs_register_file_buffer=H.bb)(e,r,t,s),Ks=n._duckdb_web_copy_file_to_buffer=(e,r)=>(Ks=n._duckdb_web_copy_file_to_buffer=H.cb)(e,r),Xs=n._duckdb_web_copy_file_to_path=(e,r,t)=>(Xs=n._duckdb_web_copy_file_to_path=H.db)(e,r,t),Vs=n._duckdb_web_get_version=e=>(Vs=n._duckdb_web_get_version=H.eb)(e),zs=n._duckdb_web_get_feature_flags=()=>(zs=n._duckdb_web_get_feature_flags=H.fb)(),Js=n._duckdb_web_tokenize=(e,r)=>(Js=n._duckdb_web_tokenize=H.gb)(e,r),Ys=n._duckdb_web_tokenize_buffer=(e,r,t)=>(Ys=n._duckdb_web_tokenize_buffer=H.hb)(e,r,t),Zs=n._duckdb_web_udf_scalar_create=(e,r,t)=>(Zs=n._duckdb_web_udf_scalar_create=H.ib)(e,r,t),Qs=n._duckdb_web_prepared_create=(e,r,t)=>(Qs=n._duckdb_web_prepared_create=H.jb)(e,r,t),ei=n._duckdb_web_prepared_create_buffer=(e,r,t,s)=>(ei=n._duckdb_web_prepared_create_buffer=H.kb)(e,r,t,s),ri=n._duckdb_web_prepared_close=(e,r,t)=>(ri=n._duckdb_web_prepared_close=H.lb)(e,r,t),ti=n._duckdb_web_prepared_run=(e,r,t,s)=>(ti=n._duckdb_web_prepared_run=H.mb)(e,r,t,s),ni=n._duckdb_web_prepared_send=(e,r,t,s)=>(ni=n._duckdb_web_prepared_send=H.nb)(e,r,t,s),ai=n._duckdb_web_query_run=(e,r,t)=>(ai=n._duckdb_web_query_run=H.ob)(e,r,t),si=n._duckdb_web_query_run_buffer=(e,r,t,s)=>(si=n._duckdb_web_query_run_buffer=H.pb)(e,r,t,s),ii=n._duckdb_web_pending_query_start=(e,r,t,s)=>(ii=n._duckdb_web_pending_query_start=H.qb)(e,r,t,s),oi=n._duckdb_web_pending_query_start_buffer=(e,r,t,s,i)=>(oi=n._duckdb_web_pending_query_start_buffer=H.rb)(e,r,t,s,i),li=n._duckdb_web_pending_query_poll=(e,r,t)=>(li=n._duckdb_web_pending_query_poll=H.sb)(e,r,t),ui=n._duckdb_web_pending_query_cancel=(e,r)=>(ui=n._duckdb_web_pending_query_cancel=H.tb)(e,r),fi=n._duckdb_web_query_fetch_results=(e,r)=>(fi=n._duckdb_web_query_fetch_results=H.ub)(e,r),ci=n._duckdb_web_get_tablenames=(e,r,t)=>(ci=n._duckdb_web_get_tablenames=H.vb)(e,r,t),_i=n._duckdb_web_get_tablenames_buffer=(e,r,t,s)=>(_i=n._duckdb_web_get_tablenames_buffer=H.wb)(e,r,t,s),di=n._duckdb_web_insert_arrow_from_ipc_stream=(e,r,t,s,i)=>(di=n._duckdb_web_insert_arrow_from_ipc_stream=H.xb)(e,r,t,s,i),hi=n._duckdb_web_insert_csv_from_path=(e,r,t,s)=>(hi=n._duckdb_web_insert_csv_from_path=H.yb)(e,r,t,s),bi=n._duckdb_web_insert_json_from_path=(e,r,t,s)=>(bi=n._duckdb_web_insert_json_from_path=H.zb)(e,r,t,s),pi=()=>(pi=H.Ab)(),Qe=()=>(Qe=H.Bb)(),yr=(e,r,t,s,i,l)=>(yr=H.Cb)(e,r,t,s,i,l),Tt=()=>(Tt=H.Db)(),St=e=>(St=H.Hb)(e),xt=e=>(xt=H.Ib)(e),Ut=(e,r,t,s,i)=>(Ut=H.Jb)(e,r,t,s,i),Mt=e=>(Mt=H.Kb)(e),Fr=e=>(Fr=H.Lb)(e),Bt=()=>(Bt=H.Mb)(),ye=n._malloc=e=>(ye=n._malloc=H.Nb)(e),mi=n._free=e=>(mi=n._free=H.Ob)(e),gi=n._calloc=(e,r)=>(gi=n._calloc=H.Pb)(e,r),It=e=>(It=H.Rb)(e),Lt=()=>(Lt=H.Sb)(),Nt=(e,r)=>(Nt=H.Tb)(e,r),Ct=e=>(Ct=H.Ub)(e),Pt=e=>(Pt=H.Vb)(e),Ot=()=>(Ot=H.Wb)();function vi(e){e=Object.assign({},e);var r=i=>()=>i()>>>0,t=i=>l=>i(l)>>>0,s=i=>(l,u)=>i(l,u)>>>0;return e.Bb=r(e.Bb),e.Nb=t(e.Nb),e.Pb=s(e.Pb),e.Vb=t(e.Vb),e.Wb=r(e.Wb),e}n.stackSave=Ke,n.stackRestore=Pe,n.stackAlloc=Oe,n.getTempRet0=Es,n.setTempRet0=As,n.ccall=Fs;function wi(){var e=Ht,r=0,t=0;try{var s=e(r,t);return rt(s,!0),s}catch(i){return cr(i)}}function Er(){if(Se>0){Ne=Er;return}if(U){g(n),qr();return}if(vn(),Se>0){Ne=Er;return}function e(){var t;if(n.calledRun=!0,!M){qr(),g(n),(t=n.onRuntimeInitialized)==null||t.call(n);var r=n.noInitialRun;r||wi(),wn()}}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>n.setStatus(""),1),e()},1)):e()}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return Er(),h=R,h}})();typeof tn=="object"&&typeof nr=="object"?(nr.exports=tr,nr.exports.default=tr):typeof define=="function"&&define.amd&&define([],()=>tr);var Yt,Zt,rn=(Zt=(Yt=globalThis.self)==null?void 0:Yt.name)==null?void 0:Zt.startsWith("em-pthread"),Qt,en,xi=typeof((en=(Qt=globalThis.process)==null?void 0:Qt.versions)==null?void 0:en.node)=="string";xi&&(rn=rr().workerData==="em-pthread");rn&&tr()});var an=Re(()=>{});var sn=Re(()=>{});var on=Re((so,ar)=>{(function(){"use strict";var a="input is invalid type",o=typeof window=="object",f=o?window:{};f.JS_SHA256_NO_WINDOW&&(o=!1);var h=!o&&typeof self=="object",n=!f.JS_SHA256_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node&&process.type!="renderer";n?f=global:h&&(f=self);var g=!f.JS_SHA256_NO_COMMON_JS&&typeof ar=="object"&&ar.exports,A=typeof define=="function"&&define.amd,R=!f.JS_SHA256_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",d="0123456789abcdef".split(""),ee=[-2147483648,8388608,32768,128],_=[24,16,8,0],U=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],K=["hex","array","digest","arrayBuffer"],x=[];(f.JS_SHA256_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(b){return Object.prototype.toString.call(b)==="[object Array]"}),R&&(f.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(b){return typeof b=="object"&&b.buffer&&b.buffer.constructor===ArrayBuffer});var C=function(b,k){return function(B){return new G(k,!0).update(B)[b]()}},ne=function(b){var k=C("hex",b);n&&(k=Y(k,b)),k.create=function(){return new G(b)},k.update=function(D){return k.create().update(D)};for(var B=0;B<K.length;++B){var m=K[B];k[m]=C(m,b)}return k},Y=function(b,k){var B=an(),m=sn().Buffer,D=k?"sha224":"sha256",w;m.from&&!f.JS_SHA256_NO_BUFFER_FROM?w=m.from:w=function(v){return new m(v)};var S=function(v){if(typeof v=="string")return B.createHash(D).update(v,"utf8").digest("hex");if(v==null)throw new Error(a);return v.constructor===ArrayBuffer&&(v=new Uint8Array(v)),Array.isArray(v)||ArrayBuffer.isView(v)||v.constructor===m?B.createHash(D).update(w(v)).digest("hex"):b(v)};return S},Z=function(b,k){return function(B,m){return new ae(B,k,!0).update(m)[b]()}},Q=function(b){var k=Z("hex",b);k.create=function(D){return new ae(D,b)},k.update=function(D,w){return k.create(D).update(w)};for(var B=0;B<K.length;++B){var m=K[B];k[m]=Z(m,b)}return k};function G(b,k){k?(x[0]=x[16]=x[1]=x[2]=x[3]=x[4]=x[5]=x[6]=x[7]=x[8]=x[9]=x[10]=x[11]=x[12]=x[13]=x[14]=x[15]=0,this.blocks=x):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],b?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=b}G.prototype.update=function(b){if(!this.finalized){var k,B=typeof b;if(B!=="string"){if(B==="object"){if(b===null)throw new Error(a);if(R&&b.constructor===ArrayBuffer)b=new Uint8Array(b);else if(!Array.isArray(b)&&(!R||!ArrayBuffer.isView(b)))throw new Error(a)}else throw new Error(a);k=!0}for(var m,D=0,w,S=b.length,v=this.blocks;D<S;){if(this.hashed&&(this.hashed=!1,v[0]=this.block,this.block=v[16]=v[1]=v[2]=v[3]=v[4]=v[5]=v[6]=v[7]=v[8]=v[9]=v[10]=v[11]=v[12]=v[13]=v[14]=v[15]=0),k)for(w=this.start;D<S&&w<64;++D)v[w>>>2]|=b[D]<<_[w++&3];else for(w=this.start;D<S&&w<64;++D)m=b.charCodeAt(D),m<128?v[w>>>2]|=m<<_[w++&3]:m<2048?(v[w>>>2]|=(192|m>>>6)<<_[w++&3],v[w>>>2]|=(128|m&63)<<_[w++&3]):m<55296||m>=57344?(v[w>>>2]|=(224|m>>>12)<<_[w++&3],v[w>>>2]|=(128|m>>>6&63)<<_[w++&3],v[w>>>2]|=(128|m&63)<<_[w++&3]):(m=65536+((m&1023)<<10|b.charCodeAt(++D)&1023),v[w>>>2]|=(240|m>>>18)<<_[w++&3],v[w>>>2]|=(128|m>>>12&63)<<_[w++&3],v[w>>>2]|=(128|m>>>6&63)<<_[w++&3],v[w>>>2]|=(128|m&63)<<_[w++&3]);this.lastByteIndex=w,this.bytes+=w-this.start,w>=64?(this.block=v[16],this.start=w-64,this.hash(),this.hashed=!0):this.start=w}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},G.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var b=this.blocks,k=this.lastByteIndex;b[16]=this.block,b[k>>>2]|=ee[k&3],this.block=b[16],k>=56&&(this.hashed||this.hash(),b[0]=this.block,b[16]=b[1]=b[2]=b[3]=b[4]=b[5]=b[6]=b[7]=b[8]=b[9]=b[10]=b[11]=b[12]=b[13]=b[14]=b[15]=0),b[14]=this.hBytes<<3|this.bytes>>>29,b[15]=this.bytes<<3,this.hash()}},G.prototype.hash=function(){var b=this.h0,k=this.h1,B=this.h2,m=this.h3,D=this.h4,w=this.h5,S=this.h6,v=this.h7,M=this.blocks,I,X,V,le,$,ue,fe,Fe,Le,ie,Ue;for(I=16;I<64;++I)$=M[I-15],X=($>>>7|$<<25)^($>>>18|$<<14)^$>>>3,$=M[I-2],V=($>>>17|$<<15)^($>>>19|$<<13)^$>>>10,M[I]=M[I-16]+X+M[I-7]+V<<0;for(Ue=k&B,I=0;I<64;I+=4)this.first?(this.is224?(Fe=300032,$=M[0]-1413257819,v=$-150054599<<0,m=$+24177077<<0):(Fe=704751109,$=M[0]-210244248,v=$-1521486534<<0,m=$+143694565<<0),this.first=!1):(X=(b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10),V=(D>>>6|D<<26)^(D>>>11|D<<21)^(D>>>25|D<<7),Fe=b&k,le=Fe^b&B^Ue,fe=D&w^~D&S,$=v+V+fe+U[I]+M[I],ue=X+le,v=m+$<<0,m=$+ue<<0),X=(m>>>2|m<<30)^(m>>>13|m<<19)^(m>>>22|m<<10),V=(v>>>6|v<<26)^(v>>>11|v<<21)^(v>>>25|v<<7),Le=m&b,le=Le^m&k^Fe,fe=v&D^~v&w,$=S+V+fe+U[I+1]+M[I+1],ue=X+le,S=B+$<<0,B=$+ue<<0,X=(B>>>2|B<<30)^(B>>>13|B<<19)^(B>>>22|B<<10),V=(S>>>6|S<<26)^(S>>>11|S<<21)^(S>>>25|S<<7),ie=B&m,le=ie^B&b^Le,fe=S&v^~S&D,$=w+V+fe+U[I+2]+M[I+2],ue=X+le,w=k+$<<0,k=$+ue<<0,X=(k>>>2|k<<30)^(k>>>13|k<<19)^(k>>>22|k<<10),V=(w>>>6|w<<26)^(w>>>11|w<<21)^(w>>>25|w<<7),Ue=k&B,le=Ue^k&m^ie,fe=w&S^~w&v,$=D+V+fe+U[I+3]+M[I+3],ue=X+le,D=b+$<<0,b=$+ue<<0,this.chromeBugWorkAround=!0;this.h0=this.h0+b<<0,this.h1=this.h1+k<<0,this.h2=this.h2+B<<0,this.h3=this.h3+m<<0,this.h4=this.h4+D<<0,this.h5=this.h5+w<<0,this.h6=this.h6+S<<0,this.h7=this.h7+v<<0},G.prototype.hex=function(){this.finalize();var b=this.h0,k=this.h1,B=this.h2,m=this.h3,D=this.h4,w=this.h5,S=this.h6,v=this.h7,M=d[b>>>28&15]+d[b>>>24&15]+d[b>>>20&15]+d[b>>>16&15]+d[b>>>12&15]+d[b>>>8&15]+d[b>>>4&15]+d[b&15]+d[k>>>28&15]+d[k>>>24&15]+d[k>>>20&15]+d[k>>>16&15]+d[k>>>12&15]+d[k>>>8&15]+d[k>>>4&15]+d[k&15]+d[B>>>28&15]+d[B>>>24&15]+d[B>>>20&15]+d[B>>>16&15]+d[B>>>12&15]+d[B>>>8&15]+d[B>>>4&15]+d[B&15]+d[m>>>28&15]+d[m>>>24&15]+d[m>>>20&15]+d[m>>>16&15]+d[m>>>12&15]+d[m>>>8&15]+d[m>>>4&15]+d[m&15]+d[D>>>28&15]+d[D>>>24&15]+d[D>>>20&15]+d[D>>>16&15]+d[D>>>12&15]+d[D>>>8&15]+d[D>>>4&15]+d[D&15]+d[w>>>28&15]+d[w>>>24&15]+d[w>>>20&15]+d[w>>>16&15]+d[w>>>12&15]+d[w>>>8&15]+d[w>>>4&15]+d[w&15]+d[S>>>28&15]+d[S>>>24&15]+d[S>>>20&15]+d[S>>>16&15]+d[S>>>12&15]+d[S>>>8&15]+d[S>>>4&15]+d[S&15];return this.is224||(M+=d[v>>>28&15]+d[v>>>24&15]+d[v>>>20&15]+d[v>>>16&15]+d[v>>>12&15]+d[v>>>8&15]+d[v>>>4&15]+d[v&15]),M},G.prototype.toString=G.prototype.hex,G.prototype.digest=function(){this.finalize();var b=this.h0,k=this.h1,B=this.h2,m=this.h3,D=this.h4,w=this.h5,S=this.h6,v=this.h7,M=[b>>>24&255,b>>>16&255,b>>>8&255,b&255,k>>>24&255,k>>>16&255,k>>>8&255,k&255,B>>>24&255,B>>>16&255,B>>>8&255,B&255,m>>>24&255,m>>>16&255,m>>>8&255,m&255,D>>>24&255,D>>>16&255,D>>>8&255,D&255,w>>>24&255,w>>>16&255,w>>>8&255,w&255,S>>>24&255,S>>>16&255,S>>>8&255,S&255];return this.is224||M.push(v>>>24&255,v>>>16&255,v>>>8&255,v&255),M},G.prototype.array=G.prototype.digest,G.prototype.arrayBuffer=function(){this.finalize();var b=new ArrayBuffer(this.is224?28:32),k=new DataView(b);return k.setUint32(0,this.h0),k.setUint32(4,this.h1),k.setUint32(8,this.h2),k.setUint32(12,this.h3),k.setUint32(16,this.h4),k.setUint32(20,this.h5),k.setUint32(24,this.h6),this.is224||k.setUint32(28,this.h7),b};function ae(b,k,B){var m,D=typeof b;if(D==="string"){var w=[],S=b.length,v=0,M;for(m=0;m<S;++m)M=b.charCodeAt(m),M<128?w[v++]=M:M<2048?(w[v++]=192|M>>>6,w[v++]=128|M&63):M<55296||M>=57344?(w[v++]=224|M>>>12,w[v++]=128|M>>>6&63,w[v++]=128|M&63):(M=65536+((M&1023)<<10|b.charCodeAt(++m)&1023),w[v++]=240|M>>>18,w[v++]=128|M>>>12&63,w[v++]=128|M>>>6&63,w[v++]=128|M&63);b=w}else if(D==="object"){if(b===null)throw new Error(a);if(R&&b.constructor===ArrayBuffer)b=new Uint8Array(b);else if(!Array.isArray(b)&&(!R||!ArrayBuffer.isView(b)))throw new Error(a)}else throw new Error(a);b.length>64&&(b=new G(k,!0).update(b).array());var I=[],X=[];for(m=0;m<64;++m){var V=b[m]||0;I[m]=92^V,X[m]=54^V}G.call(this,k,B),this.update(X),this.oKeyPad=I,this.inner=!0,this.sharedMemory=B}ae.prototype=new G,ae.prototype.finalize=function(){if(G.prototype.finalize.call(this),this.inner){this.inner=!1;var b=this.array();G.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(b),G.prototype.finalize.call(this)}};var re=ne();re.sha256=re,re.sha224=ne(!0),re.sha256.hmac=Q(),re.sha224.hmac=Q(!0),g?ar.exports=re:(f.sha256=re.sha256,f.sha224=re.sha224,A&&define(function(){return re}))})()});var J={},Kt=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";Kt&&(kr=rr(),Rr=kr.parentPort,Rr.on("message",a=>xr({data:a})),Tr=Dr(),Gt=["vm"].map(Ie),Object.assign(global,{self:global,require:Ie,Module:J,location:{href:__filename},Worker:kr.Worker,importScripts:a=>Gt.runInThisContext(Tr.readFileSync(a,"utf8"),{filename:a}),postMessage:a=>Rr.postMessage(a),performance:global.performance||{now:Date.now}}));var kr,Rr,Tr,Gt,Hr=!1;function Hi(...a){var o=a.join(" ");if(Kt){Tr.writeSync(2,o+`
|
|
6
|
+
`);return}console.error(o)}function Ti(...a){var o=a.join(" ");postMessage({cmd:"alert",text:o,threadId:J._pthread_self()})}var jt=Hi;self.alert=Ti;J.instantiateWasm=(a,o)=>{var f=J.wasmModule;J.wasmModule=null;var h=new WebAssembly.Instance(f,a);return o(h)};self.onunhandledrejection=a=>{throw a.reason||a};function Sr(a){var f;try{if(a.data.cmd==="load"){let h=[];self.onmessage=n=>h.push(n),self.startWorker=n=>{J=n,postMessage({cmd:"loaded"});for(let g of h)Sr(g);self.onmessage=Sr},J.wasmModule=a.data.wasmModule;for(let n of a.data.handlers)J[n]=(...g)=>{postMessage({cmd:"callHandler",handler:n,args:g})};if(J.wasmMemory=a.data.wasmMemory,J.buffer=J.wasmMemory.buffer,J.ENVIRONMENT_IS_PTHREAD=!0,typeof a.data.urlOrBlob=="string")importScripts(a.data.urlOrBlob);else{var o=URL.createObjectURL(a.data.urlOrBlob);importScripts(o),URL.revokeObjectURL(o)}DuckDB(J)}else if(a.data.cmd==="run"){J.__emscripten_thread_init(a.data.pthread_ptr,0,0,1),J.__emscripten_thread_mailbox_await(a.data.pthread_ptr),J.establishStackSpace(),J.PThread.receiveObjectTransfer(a.data),J.PThread.threadInitTLS(),Hr||(Hr=!0);try{J.invokeEntryPoint(a.data.start_routine,a.data.arg)}catch(h){if(h!="unwind")throw h}}else a.data.cmd==="cancel"?J._pthread_self()&&J.__emscripten_thread_exit(-1):a.data.target==="setimmediate"||(a.data.cmd==="checkMailbox"?Hr&&J.checkMailbox():a.data.cmd&&(jt(`worker.js received unknown command ${a.data.cmd}`),jt(a.data)))}catch(h){throw(f=J.__emscripten_thread_crashed)==null||f.call(J),h}}self.onmessage=Sr;var xr=self.onmessage;function Xt(){return J}function Vt(a){J=a}var pn=$t(nn());var He=$t(on()),ln=function(a,o,f){var h;if((h=a==null?void 0:a.endpoint)!=null&&h.startsWith("http")){let n=`${a==null?void 0:a.endpoint}`,g=n.indexOf("://")+3;return n.substring(g)}else return a!=null&&a.endpoint?`${f}.${a==null?void 0:a.endpoint}`:`${f}.s3.amazonaws.com`};function Ui(a,o,f){var g,A,R,d;let h=un(o),n=h.path;return fn(a)&&(n=`/${h.bucket}${n}`),{url:n,query:"",host:ln(a,o,h.bucket),region:(g=a==null?void 0:a.region)!=null?g:"",service:"s3",method:f,accessKeyId:(A=a==null?void 0:a.accessKeyId)!=null?A:"",secretAccessKey:(R=a==null?void 0:a.secretAccessKey)!=null?R:"",sessionToken:(d=a==null?void 0:a.sessionToken)!=null?d:"",dateNow:new Date().toISOString().replace(/-/g,"").split("T")[0],datetimeNow:new Date().toISOString().replace(/-/g,"").replace(/:/g,"").split(".")[0]+"Z"}}function Mi(a,o=!1){let f="0123456789ABCDEF",h="";for(let n=0;n<a.length;n++){let g=a[n];g>="A"&&g<="Z"||g>="a"&&g<="z"||g>="0"&&g<="9"||g=="_"||g=="-"||g=="~"||g=="."?h+=g:g=="/"?o?h+="%2F":h+=g:(h+="%",h+=f[g.charCodeAt(0)>>4],h+=f[g.charCodeAt(0)&15])}return h}function Bi(a,o=null){var C;let f=(C=o==null?void 0:o.contentHash)!=null?C:"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",h=new Map;h.set("x-amz-date",a.datetimeNow),h.set("x-amz-content-sha256",f),a.sessionToken&&h.set("x-amz-security-token",a.sessionToken);let n="";o!=null&&o.contentType&&(n+="content-type;"),n+="host;x-amz-content-sha256;x-amz-date",a.sessionToken&&(n+=";x-amz-security-token");let g=a.method+`
|
|
7
|
+
`+Mi(a.url)+`
|
|
8
|
+
`+a.query;o!=null&&o.contentType&&(g+=`
|
|
9
|
+
content-type:`+(o==null?void 0:o.contentType)),g+=`
|
|
10
|
+
host:`+a.host+`
|
|
11
|
+
x-amz-content-sha256:`+f+`
|
|
12
|
+
x-amz-date:`+a.datetimeNow,a.sessionToken&&a.sessionToken.length>0&&(g+=`
|
|
13
|
+
x-amz-security-token:`+a.sessionToken),g+=`
|
|
14
|
+
|
|
15
|
+
`+n+`
|
|
16
|
+
`+f;let A=(0,He.sha256)(g),R=`AWS4-HMAC-SHA256
|
|
17
|
+
`+a.datetimeNow+`
|
|
18
|
+
`+a.dateNow+"/"+a.region+"/"+a.service+`/aws4_request
|
|
19
|
+
`+A,d="AWS4"+a.secretAccessKey,ee=He.sha256.hmac.arrayBuffer(d,a.dateNow),_=He.sha256.hmac.arrayBuffer(ee,a.region),U=He.sha256.hmac.arrayBuffer(_,a.service),K=He.sha256.hmac.arrayBuffer(U,"aws4_request"),x=He.sha256.hmac(K,R);return h.set("Authorization","AWS4-HMAC-SHA256 Credential="+a.accessKeyId+"/"+a.dateNow+"/"+a.region+"/"+a.service+"/aws4_request, SignedHeaders="+n+", Signature="+x),h}var Ii=function(a,o,f,h=null,n=null){let g=Ui(a,o,f),A={contentType:h,contentHash:n?He.sha256.hex(n):null};return Bi(g,A)};function he(a,o,f,h,n=null,g=null){(o!=null&&o.accessKeyId||o!=null&&o.sessionToken)&&(Ii(o,f,h,n,g).forEach((R,d)=>{a.setRequestHeader(d,R)}),n&&a.setRequestHeader("content-type",n))}function un(a){if(a.indexOf("s3://")!=0)throw new Error("URL needs to start with s3://");let o=a.indexOf("/",5);if(o==-1)throw new Error("URL needs to contain a '/' after the host");let f=a.substring(5,o);if(!f)throw new Error("URL needs to contain a bucket name");let h=a.substring(o);if(!h)throw new Error("URL needs to contain key");return{bucket:f,path:h}}function fn(a){var o;return!!((o=a==null?void 0:a.endpoint)!=null&&o.startsWith("http"))}function be(a,o){let f=un(o);return fn(a)?`${a==null?void 0:a.endpoint}/${f.bucket}`+f.path:"https://"+ln(a,o,f.bucket)+f.path}var dn=new TextEncoder,cn=new TextDecoder("utf-8");function Ur(a,o,f){let h=dn.encode(f),n=a._malloc(h.byteLength),g=a.HEAPU8.subarray(n,n+h.byteLength);g.set(h),a.HEAPF64[(o>>3)+0]=1,a.HEAPF64[(o>>3)+1]=n,a.HEAPF64[(o>>3)+2]=g.byteLength}function Br(a){switch(a){case"UINT8":case"INT8":return 1;case"INT32":case"FLOAT":return 4;case"INT64":case"UINT64":case"DOUBLE":case"VARCHAR":return 8;default:return 0}}function Mr(a,o,f,h){let n=a.HEAPU8.subarray(o,o+h*Br(f));switch(f){case"UINT8":return new Uint8Array(n.buffer,n.byteOffset,h);case"INT8":return new Int8Array(n.buffer,n.byteOffset,h);case"INT32":return new Int32Array(n.buffer,n.byteOffset,h);case"FLOAT":return new Float32Array(n.buffer,n.byteOffset,h);case"DOUBLE":return new Float64Array(n.buffer,n.byteOffset,h);case"VARCHAR":return new Float64Array(n.buffer,n.byteOffset,h);default:return new Array(0)}}function _n(a,o,f){let h=a.HEAPU8.subarray(o,o+f);return new Uint8Array(h.buffer,h.byteOffset,f)}function sr(a,o,f){let h=a.HEAPU8.subarray(o,o+f*8);return new Float64Array(h.buffer,h.byteOffset,f)}function hn(a,o,f,h,n,g,A,R){try{let d=a._udfFunctions.get(h);if(!d){Ur(o,f,"Unknown UDF with id: "+h);return}let ee=cn.decode(o.HEAPU8.subarray(n,n+g)),_=JSON.parse(ee),U=sr(o,A,R/8),K=m=>{var w;let D=null;switch(m.validityBuffer!==void 0&&(D=_n(o,U[m.validityBuffer],_.rows)),m.physicalType){case"VARCHAR":{if(m.dataBuffer===null||m.dataBuffer===void 0)throw new Error("malformed data view, expected data buffer for VARCHAR argument");if(m.lengthBuffer===null||m.lengthBuffer===void 0)throw new Error("malformed data view, expected data length buffer for VARCHAR argument");let S=Mr(o,U[m.dataBuffer],m.physicalType,_.rows),v=[],M=sr(o,U[m.lengthBuffer],_.rows);for(let I=0;I<_.rows;++I){if(D!=null&&!D[I]){v.push(null);continue}let X=o.HEAPU8.subarray(S[I],S[I]+M[I]),V=cn.decode(X);v.push(V)}return I=>v[I]}case"STRUCT":{let S={},v=[];for(let M=0;M<(((w=m.children)==null?void 0:w.length)||0);++M){let I=m.children[M],X=K(I);v.push(V=>{S[I.name]=X(V)})}return D!=null?M=>{if(!D[M])return null;for(let I of v)I(M);return S}:M=>{for(let I of v)I(M);return S}}default:{if(m.dataBuffer===void 0)throw new Error("malformed data view, expected data buffer for argument of type: "+m.physicalType);let S=Mr(o,U[m.dataBuffer],m.physicalType,_.rows);return D!=null?v=>D[v]?S[v]:null:v=>S[v]}}},x=[];for(let m=0;m<_.args.length;++m)x.push(K(_.args[m]));let C=_.rows*Br(_.ret.physicalType),ne=o._malloc(C),Y=Mr(o,ne,_.ret.physicalType,_.rows),Z=o._malloc(_.rows),Q=_n(o,Z,_.rows);if(Y.length==0||Q.length==0){Ur(o,f,"Can't create physical arrays for result");return}let G=Y;_.ret.physicalType=="VARCHAR"&&(G=new Array(_.rows));let ae=[];for(let m=0;m<_.args.length;++m)ae.push(null);for(let m=0;m<_.rows;++m){for(let w=0;w<_.args.length;++w)ae[w]=x[w](m);let D=d.func(...ae);G[m]=D,Q[m]=D==null?0:1}let re=0;switch(_.ret.physicalType){case"VARCHAR":{let m=new Array(0);re=o._malloc(_.rows*Br("DOUBLE"));let D=sr(o,re,_.rows),w=0;for(let I=0;I<_.rows;++I){let X=dn.encode(G[I]||"");m.push(X),D[I]=X.length,w+=X.length}let S=o._malloc(w),v=o.HEAPU8.subarray(S,S+w),M=0;for(let I=0;I<_.rows;++I){Y[I]=M;let X=m[I];v.subarray(M,M+X.length).set(X),M+=X.length}}}let b=3*8,k=o._malloc(b),B=sr(o,k,3);B[0]=ne,B[1]=Z,B[2]=re,o.HEAPF64[(f>>3)+0]=0,o.HEAPF64[(f>>3)+1]=k,o.HEAPF64[(f>>3)+2]=0}catch(d){Ur(o,f,d.toString())}}function Ni(){let a=new TextDecoder;return o=>(typeof SharedArrayBuffer<"u"&&o.buffer instanceof SharedArrayBuffer&&(o=new Uint8Array(o)),a.decode(o))}var Ci=Ni();function pe(a,o){console.error(`FAIL WITH: ${o}`),a.ccall("duckdb_web_fail_with",null,["string"],[o])}function Te(a,o,f){return Ci(new Uint8Array(a.HEAPU8.buffer,o,f))}function Ir(a,o,f,h){let n=a.stackSave(),g=a.stackAlloc(3*8);f.unshift("number"),h.unshift(g),a.ccall(o,null,f,h);let A=a.HEAPF64[(g>>3)+0],R=a.HEAPF64[(g>>3)+1],d=a.HEAPF64[(g>>3)+2];return a.stackRestore(n),[A,R,d]}function Lr(a){a.ccall("duckdb_web_clear_response",null,[],[])}var Pi=7,bn=/\/|\\/,N={_files:new Map,_fileInfoCache:new Map,_udfFunctions:new Map,_globalFileInfo:null,_preparedHandles:{},_opfsRoot:null,getFileInfo(a,o){try{let f=N._fileInfoCache.get(o),[h,n,g]=Ir(a,"duckdb_web_fs_get_file_info_by_id",["number","number"],[o,(f==null?void 0:f.cacheEpoch)||0]);if(h!==0)return null;if(g===0)return f;let A=Te(a,n,g);Lr(a);try{let R=JSON.parse(A);if(R==null)return null;let d={...R,blob:null};return N._fileInfoCache.set(o,d),!N._files.has(d.fileName)&&N._preparedHandles[d.fileName]&&(N._files.set(d.fileName,N._preparedHandles[d.fileName]),delete N._preparedHandles[d.fileName]),d}catch(R){return console.warn(R),null}}catch(f){return console.log(f),null}},getGlobalFileInfo(a){var o;try{let[f,h,n]=Ir(a,"duckdb_web_get_global_file_info",["number"],[((o=N._globalFileInfo)==null?void 0:o.cacheEpoch)||0]);if(f!==0)return null;if(n===0)return N._globalFileInfo;let g=Te(a,h,n);Lr(a);let A=JSON.parse(g);return A==null?null:(N._globalFileInfo={...A,blob:null},N._globalFileInfo)}catch(f){return console.log(f),null}},async assignOPFSRoot(){N._opfsRoot||(N._opfsRoot=await navigator.storage.getDirectory())},async prepareFileHandles(a,o){if(o===3){await N.assignOPFSRoot();let f=async n=>{if(N._files.has(n))return{path:n,handle:N._files.get(n),fromCached:!0};let A=N._opfsRoot,R=n.slice(Pi),d=R;if(bn.test(R)){let _=R.split(bn);if(_.length===0)throw new Error(`Invalid path ${R}`);if(d=_[_.length-1],!d)throw new Error(`Invalid path ${R}. File Not Found.`);_.pop();for(let U of _)A=await A.getDirectoryHandle(U,{create:!0})}let ee=await A.getFileHandle(d,{create:!1}).catch(_=>{if((_==null?void 0:_.name)==="NotFoundError")return console.debug(`File ${n} does not exists yet, creating...`),A.getFileHandle(d,{create:!0});throw _});try{let _=await ee.createSyncAccessHandle();return N._preparedHandles[n]=_,{path:n,handle:_,fromCached:!1}}catch(_){throw new Error(_.message+":"+name)}},h=[];for(let n of a){let g=await f(n);h.push(g)}return h}throw new Error(`Unsupported protocol ${o} for paths ${a} with protocol ${o}`)},async prepareDBFileHandle(a,o){if(o===3&&this.prepareFileHandles){let f=[a,`${a}.wal`];return this.prepareFileHandles(f,o)}throw new Error(`Unsupported protocol ${o} for path ${a} with protocol ${o}`)},testPlatformFeature:(a,o)=>{switch(o){case 1:return typeof BigInt64Array<"u";default:return console.warn(`test for unknown feature: ${o}`),!1}},getDefaultDataProtocol(a){return 2},openFile:(a,o,f)=>{var h,n,g,A,R,d,ee;try{N._fileInfoCache.delete(o);let _=N.getFileInfo(a,o);switch(_==null?void 0:_.dataProtocol){case 4:case 5:{if(f&1&&f&2)throw new Error(`Opening file ${_.fileName} failed: cannot open file with both read and write flags set`);if(f&32)throw new Error(`Opening file ${_.fileName} failed: appending to HTTP/S3 files is not supported`);if(f&2){let x=new XMLHttpRequest;if(_.dataProtocol==5?(x.open("HEAD",be(_.s3Config,_.dataUrl),!1),he(x,_.s3Config,_.dataUrl,"HEAD")):x.open("HEAD",_.dataUrl,!1),x.send(null),x.status!=200&&x.status!=404)throw new Error(`Opening file ${_.fileName} failed: Unexpected return status from server (${x.status})`);if(x.status==404&&!(f&8||f&16))throw new Error(`Opening file ${_.fileName} failed: Cannot write to non-existent file without FILE_FLAGS_FILE_CREATE or FILE_FLAGS_FILE_CREATE_NEW flag.`);let C=a._malloc(1),ne=new Uint8Array;a.HEAPU8.set(ne,C);let Y=a._malloc(3*8);return a.HEAPF64[(Y>>>3)+0]=1,a.HEAPF64[(Y>>>3)+1]=C,a.HEAPF64[(Y>>>3)+2]=new Date().getTime()/1e3,Y}else if((f&1)==0)throw new Error(`Opening file ${_.fileName} failed: unsupported file flags: ${f}`);let U=null,K=null;if(!_.forceFullHttpReads&&(_.reliableHeadRequests||!_.allowFullHttpReads))try{let x=new XMLHttpRequest;_.dataProtocol==5?(x.open("HEAD",be(_.s3Config,_.dataUrl),!1),he(x,_.s3Config,_.dataUrl,"HEAD")):x.open("HEAD",_.dataUrl,!1),x.setRequestHeader("Range","bytes=0-"),x.send(null),U=null;try{U=x.getResponseHeader("Content-Length")}catch{console.warn("Failed to get Content-Length on request")}if(U!==null&&x.status==206){let C=a._malloc(24);a.HEAPF64[(C>>>3)+0]=+U,a.HEAPF64[(C>>>3)+1]=0;let ne=0;try{ne=new Date((h=x.getResponseHeader("Last-Modified"))!=null?h:"").getTime()/1e3}catch{console.warn("Failed to get Last-Modified on request")}return a.HEAPF64[(C>>>3)+2]=+ne,C}}catch(x){K=x,console.warn(`HEAD request with range header failed: ${x}`)}if(_.allowFullHttpReads){if(!_.forceFullHttpReads){let C=new XMLHttpRequest;_.dataProtocol==5?(C.open("GET",be(_.s3Config,_.dataUrl),!1),he(C,_.s3Config,_.dataUrl,"GET")):C.open("GET",_.dataUrl,!1),C.responseType="arraybuffer",C.setRequestHeader("Range","bytes=0-0"),C.send(null);let ne=null;try{ne=(n=C.getResponseHeader("Content-Range"))==null?void 0:n.split("/")[1]}catch{console.warn("Failed to get Content-Range on request")}let Y=null;try{Y=C.getResponseHeader("Content-Length")}catch{console.warn("Failed to get Content-Length on request")}let Z=null;if(ne!==void 0)Z=ne;else if(!_.reliableHeadRequests){let Q=new XMLHttpRequest;_.dataProtocol==5?(Q.open("HEAD",be(_.s3Config,_.dataUrl),!1),he(Q,_.s3Config,_.dataUrl,"HEAD")):Q.open("HEAD",_.dataUrl,!1),Q.setRequestHeader("Range","bytes=0-"),Q.send(null),U=null;try{U=Q.getResponseHeader("Content-Length")}catch{console.warn("Failed to get Content-Length on request")}U!==null&&+U>1&&(Z=U)}if(C.status==206&&Y!==null&&+Y==1&&Z!==null){let Q=a._malloc(24);a.HEAPF64[(Q>>>3)+0]=+Z,a.HEAPF64[(Q>>>3)+1]=0;let G=0;try{G=new Date((g=C.getResponseHeader("Last-Modified"))!=null?g:"").getTime()/1e3}catch{console.warn("Failed to get Last-Modified on request")}return a.HEAPF64[(Q>>>3)+2]=+G,Q}if(C.status==200&&Y!==null&&U!==null&&+Y==+U){console.warn(`fall back to full HTTP read for: ${_.dataUrl}`);let Q=a._malloc(C.response.byteLength),G=new Uint8Array(C.response,0,C.response.byteLength);a.HEAPU8.set(G,Q);let ae=a._malloc(3*8);a.HEAPF64[(ae>>>3)+0]=C.response.byteLength,a.HEAPF64[(ae>>>3)+1]=Q;let re=0;try{re=new Date((A=C.getResponseHeader("Last-Modified"))!=null?A:"").getTime()/1e3}catch{console.warn("Failed to get Last-Modified on request")}return a.HEAPF64[(ae>>>3)+2]=+re,ae}console.warn(`falling back to full HTTP read for: ${_.dataUrl}`)}let x=new XMLHttpRequest;if(_.dataProtocol==5?(x.open("GET",be(_.s3Config,_.dataUrl),!1),he(x,_.s3Config,_.dataUrl,"GET")):x.open("GET",_.dataUrl,!1),x.responseType="arraybuffer",x.send(null),x.status==200){let C=a._malloc(x.response.byteLength),ne=new Uint8Array(x.response,0,x.response.byteLength);a.HEAPU8.set(ne,C);let Y=a._malloc(3*8);a.HEAPF64[(Y>>>3)+0]=x.response.byteLength,a.HEAPF64[(Y>>>3)+1]=C;let Z=0;try{Z=new Date((R=x.getResponseHeader("Last-Modified"))!=null?R:"").getTime()/1e3}catch{console.warn("Failed to get Last-Modified on request")}return a.HEAPF64[(Y>>>3)+2]=+Z,Y}}if(K!=null)throw new Error(`Reading file ${_.fileName} failed with error: ${K}`);return 0}case 2:{let U=(d=N._files)==null?void 0:d.get(_.fileName);if(U){let C=a._malloc(24);return a.HEAPF64[(C>>>3)+0]=U.size,a.HEAPF64[(C>>>3)+1]=0,a.HEAPF64[(C>>>3)+2]=0,C}if(f&128)return 0;console.warn(`Buffering missing file: ${_.fileName}`);let K=a._malloc(3*8),x=a._malloc(1);return a.HEAPF64[(K>>>3)+0]=1,a.HEAPF64[(K>>>3)+1]=x,a.HEAPF64[(K>>>3)+2]=0,K}case 3:{let U=(ee=N._files)==null?void 0:ee.get(_.fileName);if(!U)throw new Error(`No OPFS access handle registered with name: ${_.fileName}`);f&16&&U.truncate(0);let K=a._malloc(3*8),x=U.getSize();return a.HEAPF64[(K>>>3)+0]=x,a.HEAPF64[(K>>>3)+1]=0,a.HEAPF64[(K>>>3)+2]=0,K}}}catch(_){console.error(_.toString()),pe(a,_.toString())}return 0},glob:(a,o,f)=>{var h;try{let n=Te(a,o,f);if(n.startsWith("http")||n.startsWith("s3://")){let g=new XMLHttpRequest;if(n.startsWith("s3://")){let A=N.getGlobalFileInfo(a);g.open("HEAD",be(A==null?void 0:A.s3Config,n),!1),he(g,A==null?void 0:A.s3Config,n,"HEAD")}else g.open("HEAD",n,!1);if(g.send(null),g.status!=200&&g.status!==206){if(!((h=N.getGlobalFileInfo(a))!=null&&h.allowFullHttpReads))return console.log(`HEAD request failed: ${n}, with full http reads are disabled`),0;let A=new XMLHttpRequest;if(n.startsWith("s3://")){let d=N.getGlobalFileInfo(a);A.open("GET",be(d==null?void 0:d.s3Config,n),!1),he(A,d==null?void 0:d.s3Config,n,"HEAD")}else A.open("GET",n,!1);if(A.setRequestHeader("Range","bytes=0-0"),A.send(null),A.status!=200&&A.status!==206)return console.log(`HEAD and GET requests failed: ${n}`),0;let R=null;try{R=A.getResponseHeader("Content-Length")}catch{console.warn("Failed to get Content-Length on request")}R&&+R>1&&console.warn(`Range request for ${n} did not return a partial response: ${A.status} "${A.statusText}"`)}a.ccall("duckdb_web_fs_glob_add_path",null,["string"],[n])}else for(let[g]of N._files.entries()||[])g.startsWith(n)&&a.ccall("duckdb_web_fs_glob_add_path",null,["string"],[g])}catch(n){return console.log(n),pe(a,n.toString()),0}},checkFile:(a,o,f)=>{try{let h=Te(a,o,f);if(h.startsWith("http")||h.startsWith("s3://")){let n=new XMLHttpRequest;if(h.startsWith("s3://")){let g=N.getGlobalFileInfo(a);n.open("HEAD",be(g==null?void 0:g.s3Config,h),!1),he(n,g==null?void 0:g.s3Config,h,"HEAD")}else n.open("HEAD",h,!1);return n.send(null),n.status==206||n.status==200}else return N._files.has(h)}catch(h){return console.log(h),!1}return!1},syncFile:(a,o)=>{},closeFile:(a,o)=>{var h;let f=N.getFileInfo(a,o);N._fileInfoCache.delete(o);try{switch(f==null?void 0:f.dataProtocol){case 0:case 4:case 5:break;case 1:case 2:return;case 3:{let n=(h=N._files)==null?void 0:h.get(f.fileName);if(!n)throw new Error(`No OPFS access handle registered with name: ${f.fileName}`);return n.flush()}}}catch(n){console.log(n),pe(a,n.toString())}},dropFile:(a,o,f)=>{var g;let h=Te(a,o,f),n=(g=N._files)==null?void 0:g.get(h);if(n){if(N._files.delete(h),n instanceof FileSystemSyncAccessHandle)try{n.flush(),n.close()}catch{throw new Error(`Cannot drop file with name: ${h}`)}n instanceof Blob}},truncateFile:(a,o,f)=>{var n;let h=N.getFileInfo(a,o);switch(h==null?void 0:h.dataProtocol){case 4:pe(a,"Cannot truncate a http file");return;case 5:pe(a,"Cannot truncate an s3 file");return;case 0:case 1:case 2:pe(a,"truncateFile not implemented");return;case 3:{let g=(n=N._files)==null?void 0:n.get(h.fileName);if(!g)throw new Error(`No OPFS access handle registered with name: ${h.fileName}`);return g.truncate(f)}}return 0},readFile(a,o,f,h,n){var g;if(h==0)return 0;try{let A=N.getFileInfo(a,o);switch(A==null?void 0:A.dataProtocol){case 4:case 5:{if(!A.dataUrl)throw new Error(`Missing data URL for file ${o}`);try{let R=new XMLHttpRequest;if(A.dataProtocol==5?(R.open("GET",be(A==null?void 0:A.s3Config,A.dataUrl),!1),he(R,A==null?void 0:A.s3Config,A.dataUrl,"GET")):R.open("GET",A.dataUrl,!1),R.responseType="arraybuffer",R.setRequestHeader("Range",`bytes=${n}-${n+h-1}`),R.send(null),R.status==206||R.status==200&&h==R.response.byteLength&&n==0){let d=new Uint8Array(R.response,0,Math.min(R.response.byteLength,h));return a.HEAPU8.set(d,f),d.byteLength}else if(R.status==200){console.warn(`Range request for ${A.dataUrl} did not return a partial response: ${R.status} "${R.statusText}"`);let d=new Uint8Array(R.response,n,Math.min(R.response.byteLength-n,h));return a.HEAPU8.set(d,f),d.byteLength}else throw new Error(`Range request for ${A.dataUrl} did returned non-success status: ${R.status} "${R.statusText}"`)}catch(R){throw console.log(R),new Error(`Range request for ${A.dataUrl} failed with error: ${R}"`)}}case 2:{let R=(g=N._files)==null?void 0:g.get(A.fileName);if(!R)throw new Error(`No HTML5 file registered with name: ${A.fileName}`);let d=R.slice(n,n+h),ee=new Uint8Array(new FileReaderSync().readAsArrayBuffer(d));return a.HEAPU8.set(ee,f),ee.byteLength}case 3:{let R=N._files.get(A.fileName);if(!R)throw new Error(`No OPFS access handle registered with name: ${A.fileName}`);let d=a.HEAPU8.subarray(f,f+h);return R.read(d,{at:n})}}return 0}catch(A){return console.log(A),pe(a,A.toString()),0}},writeFile:(a,o,f,h,n)=>{var A;let g=N.getFileInfo(a,o);switch(g==null?void 0:g.dataProtocol){case 4:return pe(a,"Cannot write to HTTP file"),0;case 5:{let R=a.HEAPU8.subarray(f,f+h),d=new XMLHttpRequest;return d.open("PUT",be(g==null?void 0:g.s3Config,g.dataUrl),!1),he(d,g==null?void 0:g.s3Config,g.dataUrl,"PUT","",R),d.send(R),d.status!==200?(pe(a,"Failed writing file: HTTP "+d.status),0):h}case 2:return pe(a,"cannot write using the html5 file reader api"),0;case 3:{let R=(A=N._files)==null?void 0:A.get(g.fileName);if(!R)throw new Error(`No OPFS access handle registered with name: ${g.fileName}`);let d=a.HEAPU8.subarray(f,f+h);return R.write(d,{at:n})}}return 0},getLastFileModificationTime:(a,o)=>{var h;let f=N.getFileInfo(a,o);switch(f==null?void 0:f.dataProtocol){case 2:{if(!((h=N._files)==null?void 0:h.get(f.fileName)))throw Error(`No handle available for file: ${f.fileName}`);return 0}case 4:case 5:return new Date().getTime()/1e3}return 0},progressUpdate:(a,o,f)=>{postMessage&&postMessage({requestId:0,type:"PROGRESS_UPDATE",data:{status:a?"completed":"in-progress",percentage:o,repetitions:f}})},checkDirectory:(a,o,f)=>!1,createDirectory:(a,o,f)=>{},removeDirectory:(a,o,f)=>{},listDirectoryEntries:(a,o,f)=>!1,moveFile:(a,o,f,h,n)=>{var d,ee;let g=Te(a,o,f),A=Te(a,h,n),R=(d=N._files)==null?void 0:d.get(g);R!==void 0&&(N._files.delete(R),N._files.set(A,R));for(let[_,U]of((ee=N._fileInfoCache)==null?void 0:ee.entries())||[])if(U.dataUrl==g){N._fileInfoCache.delete(_);break}return!0},removeFile:(a,o,f)=>{},callScalarUDF:(a,o,f,h,n,g,A)=>{hn(N,a,o,f,h,n,g,A)}};globalThis.DUCKDB_RUNTIME={};for(let a of Object.getOwnPropertyNames(N))a!="constructor"&&(globalThis.DUCKDB_RUNTIME[a]=Object.getOwnPropertyDescriptor(N,a).value);globalThis.onmessage=a=>{if(a.data.cmd==="load"){let o=Xt();globalThis.startWorker=f=>{o=f,postMessage({cmd:"loaded"})},o.wasmModule=a.data.wasmModule,o.wasmMemory=a.data.wasmMemory,o.buffer=o.wasmMemory.buffer,o.ENVIRONMENT_IS_PTHREAD=!0,(0,pn.default)(o).then(f=>{Vt(f)})}else if(a.data.cmd==="registerFileHandle")globalThis.DUCKDB_RUNTIME._files=globalThis.DUCKDB_RUNTIME._files||new Map,globalThis.DUCKDB_RUNTIME._files.set(a.data.fileName,a.data.fileHandle);else if(a.data.cmd==="dropFileHandle")globalThis.DUCKDB_RUNTIME._files=globalThis.DUCKDB_RUNTIME._files||new Map,globalThis.DUCKDB_RUNTIME._files.delete(a.data.fileName);else if(a.data.cmd==="registerUDFFunction")globalThis.DUCKDB_RUNTIME._udfFunctions=globalThis.DUCKDB_RUNTIME._files||new Map,globalThis.DUCKDB_RUNTIME._udfFunctions.set(a.data.udf.name,a.data.udf);else if(a.data.cmd==="dropUDFFunctions"){globalThis.DUCKDB_RUNTIME._udfFunctions=globalThis.DUCKDB_RUNTIME._files||new Map;for(let o of globalThis.DUCKDB_RUNTIME._udfFunctions.keys())globalThis.DUCKDB_RUNTIME._udfFunctions.get(o).connection_id==a.data.connectionId&&globalThis.DUCKDB_RUNTIME._udfFunctions.delete(o)}else xr(a)};})();
|
|
20
|
+
/*! Bundled license information:
|
|
21
|
+
|
|
22
|
+
js-sha256/src/sha256.js:
|
|
23
|
+
(**
|
|
24
|
+
* [js-sha256]{@link https://github.com/emn178/js-sha256}
|
|
25
|
+
*
|
|
26
|
+
* @version 0.11.1
|
|
27
|
+
* @author Chen, Yi-Cyuan [emn178@gmail.com]
|
|
28
|
+
* @copyright Chen, Yi-Cyuan 2014-2025
|
|
29
|
+
* @license MIT
|
|
30
|
+
*)
|
|
31
|
+
*/
|
|
32
|
+
//# sourceMappingURL=duckdb-browser-coi.pthread.worker.js.map
|