@duckdb/duckdb-wasm 0.1.9 → 0.1.11

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.
@@ -1,2 +1,2 @@
1
- import{RecordBatchReader as F,RecordBatchStreamWriter as ee,Table as U}from"apache-arrow";import{AsyncByteQueue as Z}from"apache-arrow";var P=class extends Z{flush(){let e=super.toUint8Array(!0);return this._values.length=0,e}};var N=class{constructor(e,r){this._bindings=e,this._conn=r}close(){this._bindings.disconnect(this._conn)}useUnsafe(e){return e(this._bindings,this._conn)}query(e){let r=this._bindings.runQuery(this._conn,e),t=F.from(r);return console.assert(t.isSync()),console.assert(t.isFile()),U.from(t)}send(e){let r=this._bindings.sendQuery(this._conn,e),t=new C(this._bindings,this._conn,r),s=F.from(t);return console.assert(s.isSync()),console.assert(s.isStream()),s}prepare(e){let r=this._bindings.createPrepared(this._conn,e);return new Q(this._bindings,this._conn,r)}insertArrowVectors(e,r){this.insertArrowTable(U.new(e),r)}insertArrowTable(e,r){e.schema.fields.length==0&&console.warn("The schema is empty! If you used arrow.Table.from, consider constructing schema and batches manually"),this.insertArrowBatches(e.schema,e.chunks,r)}insertArrowBatches(e,r,t){e.fields.length==0&&console.warn("The schema is empty! If you used arrow.Table.from, consider constructing schema and batches manually");let s=new P,i=new ee().reset(s,e),c=!0;for(let b of r)c||this._bindings.insertArrowFromIPCStream(this._conn,s.flush(),t),c=!1,i.write(b);i.finish(),this._bindings.insertArrowFromIPCStream(this._conn,s.flush(),t)}insertArrowFromIPCStream(e,r){this._bindings.insertArrowFromIPCStream(this._conn,e,r)}insertCSVFromPath(e,r){this._bindings.insertCSVFromPath(this._conn,e,r)}insertJSONFromPath(e,r){this._bindings.insertJSONFromPath(this._conn,e,r)}},C=class{constructor(e,r,t){this.bindings=e;this.conn=r;this.header=t;this._first=!0,this._depleted=!1}next(){if(this._first)return this._first=!1,{done:!1,value:this.header};if(this._depleted)return{done:!0,value:null};let e=this.bindings.fetchQueryResults(this.conn);return this._depleted=e.length==0,{done:this._depleted,value:e}}[Symbol.iterator](){return this}},Q=class{constructor(e,r,t){this.bindings=e,this.connectionId=r,this.statementId=t}close(){this.bindings.closePrepared(this.connectionId,this.statementId)}query(e){let r=this.bindings.runPrepared(this.connectionId,this.statementId,e),t=F.from(r);return console.assert(t.isSync()),console.assert(t.isFile()),U.from(t)}send(e){let r=this.bindings.sendPrepared(this.connectionId,this.statementId,e),t=new C(this.bindings,this.connectionId,r),s=F.from(t);return console.assert(s.isSync()),console.assert(s.isStream()),s}};var p;(function(e){e[e.SUCCESS=0]="SUCCESS"})(p||(p={}));function re(){let n=new TextDecoder;return e=>(typeof SharedArrayBuffer!="undefined"&&e.buffer instanceof SharedArrayBuffer&&(e=new Uint8Array(e)),n.decode(e))}var te=re();function He(n,e){console.error(e),n.ccall("duckdb_web_fail_with",null,["string"],[e])}function w(n,e,r){let t=n.HEAPU8.subarray(e,e+r),s=new Uint8Array(new ArrayBuffer(t.byteLength));return s.set(t),s}function _(n,e,r){return te(n.HEAPU8.subarray(e,e+r))}var K;(function(t){t[t.BUFFER=0]="BUFFER",t[t.NATIVE=1]="NATIVE",t[t.HTTP=3]="HTTP"})(K||(K={}));function E(n,e,r,t){let s=n.stackSave(),i=n.stackAlloc(3*8);r.unshift("number"),t.unshift(i),n.ccall(e,null,r,t);let c=n.HEAPF64[(i>>3)+0],b=n.HEAPF64[(i>>3)+1],f=n.HEAPF64[(i>>3)+2];return n.stackRestore(s),[c,b,f]}function h(n){n.ccall("duckdb_web_clear_response",null,[],[])}var Ve={testPlatformFeature:(n,e)=>!1,openFile:(n,e)=>{},syncFile:(n,e)=>{},closeFile:(n,e)=>{},getLastFileModificationTime:(n,e)=>0,getFileSize:(n,e)=>0,truncateFile:(n,e,r)=>{},readFile:(n,e,r,t,s)=>0,writeFile:(n,e,r,t,s)=>0,removeDirectory:(n,e,r)=>{},checkDirectory:(n,e,r)=>!1,createDirectory:(n,e,r)=>{},listDirectoryEntries:(n,e,r)=>!1,glob:(n,e,r)=>{},moveFile:(n,e,r,t,s)=>{},checkFile:(n,e,r)=>!1,removeFile:(n,e,r)=>{}};var L=class{constructor(e){let r=new Float64Array(e.buffer,e.byteOffset,e.byteLength/8),t=new Uint8Array(new ArrayBuffer(e.byteLength));t.set(e.subarray(7*8)),this.totalFileReadsCold=r[0],this.totalFileReadsAhead=r[1],this.totalFileReadsCached=r[2],this.totalFileWrites=r[3],this.totalPageAccesses=r[4],this.totalPageLoads=r[5],this.blockSize=r[6],this.blockStats=t}getBlockStats(e,r){return r=r||{file_reads_cold:0,file_reads_ahead:0,file_reads_cached:0,file_writes:0,page_accesses:0,page_loads:0},r.file_writes=this.blockStats[e*3+0]&15,r.file_reads_cold=this.blockStats[e*3+0]>>4,r.file_reads_ahead=this.blockStats[e*3+1]&15,r.file_reads_cached=this.blockStats[e*3+1]>>4,r.page_accesses=this.blockStats[e*3+1]&15,r.page_loads=this.blockStats[e*3+1]>>4,r}};import{Type as d}from"apache-arrow";function I(n,e){switch(e.typeId){case d.Binary:return{name:n,type:"binary"};case d.Bool:return{name:n,type:"bool"};case d.Date:return{name:n,type:"date"};case d.DateDay:return{name:n,type:"date32[d]"};case d.DateMillisecond:return{name:n,type:"date64[ms]"};case d.Decimal:{let r=e;return{name:n,type:"decimal",precision:r.precision,scale:r.scale}}case d.Float:return{name:n,type:"float"};case d.Float16:return{name:n,type:"float16"};case d.Float32:return{name:n,type:"float32"};case d.Float64:return{name:n,type:"float64"};case d.Int:return{name:n,type:"int32"};case d.Int16:return{name:n,type:"int16"};case d.Int32:return{name:n,type:"int32"};case d.Int64:return{name:n,type:"int64"};case d.Uint16:return{name:n,type:"uint16"};case d.Uint32:return{name:n,type:"uint32"};case d.Uint64:return{name:n,type:"uint64"};case d.Uint8:return{name:n,type:"uint8"};case d.IntervalDayTime:return{name:n,type:"interval[dt]"};case d.IntervalYearMonth:return{name:n,type:"interval[m]"};case d.List:{let r=e;return{name:n,type:"list",children:[I(r.valueField.name,r.valueField.type)]}}case d.FixedSizeBinary:return{name:n,type:"fixedsizebinary",byteWidth:e.byteWidth};case d.Null:return{name:n,type:"null"};case d.Utf8:return{name:n,type:"utf8"};case d.Struct:return{name:n,type:"struct",children:e.children.map(t=>I(t.name,t.type))};case d.Time:return{name:n,type:"time[s]"};case d.TimeMicrosecond:return{name:n,type:"time[us]"};case d.TimeMillisecond:return{name:n,type:"time[ms]"};case d.TimeNanosecond:return{name:n,type:"time[ns]"};case d.TimeSecond:return{name:n,type:"time[s]"};case d.Timestamp:return{name:n,type:"timestamp",timezone:e.timezone||void 0};case d.TimestampSecond:return{name:n,type:"timestamp[s]",timezone:e.timezone||void 0};case d.TimestampMicrosecond:return{name:n,type:"timestamp[us]",timezone:e.timezone||void 0};case d.TimestampNanosecond:return{name:n,type:"timestamp[ns]",timezone:e.timezone||void 0};case d.TimestampMillisecond:return{name:n,type:"timestamp[ms]",timezone:e.timezone||void 0}}throw new Error(`unsupported arrow type: ${e.toString()}`)}var ne=new TextEncoder,j;(function(i){i[i.WASM_EXCEPTIONS=1]="WASM_EXCEPTIONS",i[i.WASM_THREADS=2]="WASM_THREADS",i[i.WASM_SIMD=4]="WASM_SIMD",i[i.WASM_BULK_MEMORY=8]="WASM_BULK_MEMORY",i[i.EMIT_BIGINT=16]="EMIT_BIGINT"})(j||(j={}));var se=class{constructor(e,r){this._instance=null;this._initPromise=null;this._initPromiseResolver=()=>{};this._logger=e,this._runtime=r}get logger(){return this._logger}get mod(){return this._instance}get pthread(){return this.mod.PThread||null}async instantiate(){return this._instance!=null?this:(this._initPromise!=null&&await this._initPromise,this._initPromise=new Promise(e=>{this._initPromiseResolver=e}),this._instance=await this.instantiateImpl({print:console.log.bind(console),printErr:console.log.bind(console),onRuntimeInitialized:this._initPromiseResolver}),await this._initPromise,this._initPromise=null,this)}open(e){let[r,t,s]=E(this.mod,"duckdb_web_open",["string"],[JSON.stringify(e)]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,s));h(this.mod)}reset(){let[e,r,t]=E(this.mod,"duckdb_web_reset",[],[]);if(e!==p.SUCCESS)throw new Error(_(this.mod,r,t));h(this.mod)}getVersion(){let[e,r,t]=E(this.mod,"duckdb_web_get_version",[],[]);if(e!==p.SUCCESS)throw new Error(_(this.mod,r,t));let s=_(this.mod,r,t);return h(this.mod),s}getFeatureFlags(){return this.mod.ccall("duckdb_web_get_feature_flags","number",[],[])}tokenize(e){let[r,t,s]=E(this.mod,"duckdb_web_tokenize",["string"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,s));let i=_(this.mod,t,s);return h(this.mod),JSON.parse(i)}connect(){let e=this.mod.ccall("duckdb_web_connect","number",[],[]);return new N(this,e)}disconnect(e){this.mod.ccall("duckdb_web_disconnect",null,["number"],[e])}runQuery(e,r){let[t,s,i]=E(this.mod,"duckdb_web_query_run",["number","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i));let c=w(this.mod,s,i);return h(this.mod),c}sendQuery(e,r){let[t,s,i]=E(this.mod,"duckdb_web_query_send",["number","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i));let c=w(this.mod,s,i);return h(this.mod),c}fetchQueryResults(e){let[r,t,s]=E(this.mod,"duckdb_web_query_fetch_results",["number"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,s));let i=w(this.mod,t,s);return h(this.mod),i}createPrepared(e,r){let[t,s,i]=E(this.mod,"duckdb_web_prepared_create",["number","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i));return h(this.mod),s}closePrepared(e,r){let[t,s,i]=E(this.mod,"duckdb_web_prepared_close",["number","number"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i));h(this.mod)}runPrepared(e,r,t){let[s,i,c]=E(this.mod,"duckdb_web_prepared_run",["number","number","string"],[e,r,JSON.stringify(t)]);if(s!==p.SUCCESS)throw new Error(_(this.mod,i,c));let b=w(this.mod,i,c);return h(this.mod),b}sendPrepared(e,r,t){let[s,i,c]=E(this.mod,"duckdb_web_prepared_send",["number","number","string"],[e,r,JSON.stringify(t)]);if(s!==p.SUCCESS)throw new Error(_(this.mod,i,c));let b=w(this.mod,i,c);return h(this.mod),b}insertArrowFromIPCStream(e,r,t){let s=this.mod._malloc(r.length);this.mod.HEAPU8.subarray(s,s+r.length).set(r);let c=t?JSON.stringify(t):"",[b,f,k]=E(this.mod,"duckdb_web_insert_arrow_from_ipc_stream",["number","number","number","string"],[e,s,r.length,c]);if(b!==p.SUCCESS)throw new Error(_(this.mod,f,k))}insertCSVFromPath(e,r,t){if(t.columns!==void 0){t.columnsFlat=[];for(let k in t.columns)t.columnsFlat.push(I(k,t.columns[k]))}let s={...t};s.columns=s.columnsFlat,delete s.columnsFlat;let i=JSON.stringify(s),[c,b,f]=E(this.mod,"duckdb_web_insert_csv_from_path",["number","string","string"],[e,r,i]);if(c!==p.SUCCESS)throw new Error(_(this.mod,b,f))}insertJSONFromPath(e,r,t){if(t.columns!==void 0){t.columnsFlat=[];for(let k in t.columns)t.columnsFlat.push(I(k,t.columns[k]))}let s={...t};s.columns=s.columnsFlat,delete s.columnsFlat;let i=JSON.stringify(s),[c,b,f]=E(this.mod,"duckdb_web_insert_json_from_path",["number","string","string"],[e,r,i]);if(c!==p.SUCCESS)throw new Error(_(this.mod,b,f))}registerFileURL(e,r){r===void 0&&(r=e);let[t,s,i]=E(this.mod,"duckdb_web_fs_register_file_url",["string","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i));h(this.mod)}registerFileText(e,r){let t=ne.encode(r);this.registerFileBuffer(e,t)}registerFileBuffer(e,r){let t=this.mod._malloc(r.length);this.mod.HEAPU8.subarray(t,t+r.length).set(r);let[i,c,b]=E(this.mod,"duckdb_web_fs_register_file_buffer",["string","number","number"],[e,t,r.length]);if(i!==p.SUCCESS)throw new Error(_(this.mod,c,b));h(this.mod)}registerFileHandle(e,r){let[t,s,i]=E(this.mod,"duckdb_web_fs_register_file_url",["string","string"],[e,e]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i));if(h(this.mod),globalThis.DUCKDB_RUNTIME._files=(globalThis.DUCKDB_RUNTIME._files||new Map).set(e,r),this.pthread){for(let c of this.pthread.runningWorkers)c.postMessage({cmd:"registerFileHandle",fileName:e,fileHandle:r});for(let c of this.pthread.unusedWorkers)c.postMessage({cmd:"dropFileHandle",fileName:e})}}dropFile(e){return this.mod.ccall("duckdb_web_fs_drop_file","boolean",["string"],[e])}dropFiles(){this.mod.ccall("duckdb_web_fs_drop_files",null,[],[])}flushFiles(){this.mod.ccall("duckdb_web_flush_files",null,[],[])}copyFileToPath(e,r){let[t,s,i]=E(this.mod,"duckdb_web_copy_file_to_path",["string","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i));h(this.mod)}copyFileToBuffer(e){let[r,t,s]=E(this.mod,"duckdb_web_copy_file_to_buffer",["string"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,s));let i=this.mod.HEAPU8.subarray(t,t+s),c=new Uint8Array(i.length);return c.set(i),h(this.mod),c}collectFileStatistics(e,r){let[t,s,i]=E(this.mod,"duckdb_web_collect_file_stats",["string","boolean"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i))}exportFileStatistics(e){let[r,t,s]=E(this.mod,"duckdb_web_export_file_stats",["string"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,s));return new L(this.mod.HEAPU8.subarray(t,t+s))}};var J;(function(r){r.ROW_ARRAY="row-array",r.COLUMN_OBJECT="column-object"})(J||(J={}));var z;(function(r){r[r.APPEND=0]="APPEND",r[r.IMPORT=1]="IMPORT"})(z||(z={}));var T;(function(i){i[i.NONE=0]="NONE",i[i.DEBUG=1]="DEBUG",i[i.INFO=2]="INFO",i[i.WARNING=3]="WARNING",i[i.ERROR=4]="ERROR"})(T||(T={}));var S;(function(i){i[i.NONE=0]="NONE",i[i.CONNECT=1]="CONNECT",i[i.DISCONNECT=2]="DISCONNECT",i[i.OPEN=3]="OPEN",i[i.QUERY=4]="QUERY"})(S||(S={}));var g;(function(c){c[c.NONE=0]="NONE",c[c.OK=1]="OK",c[c.ERROR=2]="ERROR",c[c.START=3]="START",c[c.RUN=4]="RUN",c[c.CAPTURE=5]="CAPTURE"})(g||(g={}));var y;(function(i){i[i.NONE=0]="NONE",i[i.WEB_WORKER=1]="WEB_WORKER",i[i.NODE_WORKER=2]="NODE_WORKER",i[i.BINDINGS=3]="BINDINGS",i[i.ASYNC_DUCKDB=4]="ASYNC_DUCKDB"})(y||(y={}));var ie=class{log(e){}},oe=class{log(e){console.log(e)}};function Er(n){switch(n){case 0:return"NONE";case 1:return"DEBUG";case 2:return"INFO";case 3:return"WARNING";case 4:return"ERROR";default:return"?"}}function br(n){switch(n){case 0:return"NONE";case 1:return"OK";case 2:return"ERROR";case 3:return"START";case 4:return"RUN";case 5:return"CAPTURE";default:return"?"}}function hr(n){switch(n){case 1:return"CONNECT";case 2:return"DISCONNECT";case 3:return"OPEN";case 4:return"QUERY";default:return"?"}}function Rr(n){switch(n){case 0:return"NONE";case 1:return"WEB WORKER";case 2:return"NODE WORKER";case 3:return"DUCKDB BINDINGS";case 4:return"DUCKDB";default:return"?"}}import{RecordBatchReader as A,RecordBatchStreamWriter as ae,Table as W}from"apache-arrow";var B=class{constructor(e,r){this._bindings=e,this._conn=r}get bindings(){return this._bindings}async close(){return this._bindings.disconnect(this._conn)}useUnsafe(e){return e(this._bindings,this._conn)}async query(e){this._bindings.logger.log({timestamp:new Date,level:T.INFO,origin:y.ASYNC_DUCKDB,topic:S.QUERY,event:g.RUN,value:e});let r=await this._bindings.runQuery(this._conn,e),t=A.from(r);return console.assert(t.isSync()),console.assert(t.isFile()),W.from(t)}async send(e){this._bindings.logger.log({timestamp:new Date,level:T.INFO,origin:y.ASYNC_DUCKDB,topic:S.QUERY,event:g.RUN,value:e});let r=await this._bindings.sendQuery(this._conn,e),t=new v(this._bindings,this._conn,r),s=await A.from(t);return console.assert(s.isAsync()),console.assert(s.isStream()),s}async prepare(e){let r=await this._bindings.createPrepared(this._conn,e);return new q(this._bindings,this._conn,r)}async insertArrowVectors(e,r){await this.insertArrowTable(W.new(e),r)}async insertArrowTable(e,r){e.schema.fields.length==0&&console.warn("The schema is empty! If you used arrow.Table.from, consider constructing schema and batches manually"),await this.insertArrowBatches(e.schema,e.chunks,r)}async insertArrowBatches(e,r,t){let s=new P,i=new ae().reset(s,e),c=!0;for(let b of r)c||await this._bindings.insertArrowFromIPCStream(this._conn,s.flush(),t),c=!1,i.write(b);i.finish(),await this._bindings.insertArrowFromIPCStream(this._conn,s.flush(),t)}async insertArrowFromIPCStream(e,r){await this._bindings.insertArrowFromIPCStream(this._conn,e,r)}async insertCSVFromPath(e,r){await this._bindings.insertCSVFromPath(this._conn,e,r)}async insertJSONFromPath(e,r){await this._bindings.insertJSONFromPath(this._conn,e,r)}},v=class{constructor(e,r,t){this.db=e;this.conn=r;this.header=t;this._first=!0,this._depleted=!1,this._inFlight=null}async next(){if(this._first)return this._first=!1,{done:!1,value:this.header};if(this._depleted)return{done:!0,value:null};let e;return this._inFlight!=null?(e=await this._inFlight,this._inFlight=null):e=await this.db.fetchQueryResults(this.conn),this._depleted=e.length==0,this._depleted||(this._inFlight=this.db.fetchQueryResults(this.conn)),{done:this._depleted,value:e}}[Symbol.asyncIterator](){return this}},q=class{constructor(e,r,t){this.bindings=e,this.connectionId=r,this.statementId=t}async close(){await this.bindings.closePrepared(this.connectionId,this.statementId)}async run(e){let r=await this.bindings.runPrepared(this.connectionId,this.statementId,e),t=A.from(r);return console.assert(t.isSync()),console.assert(t.isFile()),W.from(t)}async send(e){let r=await this.bindings.sendPrepared(this.connectionId,this.statementId,e),t=new v(this.bindings,this.connectionId,r),s=await A.from(t);return console.assert(s.isAsync()),console.assert(s.isStream()),s}};var o;(function(a){a.CLOSE_PREPARED="CLOSE_PREPARED",a.COLLECT_FILE_STATISTICS="COLLECT_FILE_STATISTICS",a.CONNECT="CONNECT",a.COPY_FILE_TO_BUFFER="COPY_FILE_TO_BUFFER",a.COPY_FILE_TO_PATH="COPY_FILE_TO_PATH",a.CREATE_PREPARED="CREATE_PREPARED",a.DISCONNECT="DISCONNECT",a.DROP_FILE="DROP_FILE",a.DROP_FILES="DROP_FILES",a.EXPORT_FILE_STATISTICS="EXPORT_FILE_STATISTICS",a.FETCH_QUERY_RESULTS="FETCH_QUERY_RESULTS",a.FLUSH_FILES="FLUSH_FILES",a.GET_FEATURE_FLAGS="GET_FEATURE_FLAGS",a.GET_VERSION="GET_VERSION",a.INSERT_ARROW_FROM_IPC_STREAM="INSERT_ARROW_FROM_IPC_STREAM",a.INSERT_CSV_FROM_PATH="IMPORT_CSV_FROM_PATH",a.INSERT_JSON_FROM_PATH="IMPORT_JSON_FROM_PATH",a.INSTANTIATE="INSTANTIATE",a.OPEN="OPEN",a.PING="PING",a.REGISTER_FILE_BUFFER="REGISTER_FILE_BUFFER",a.REGISTER_FILE_HANDLE="REGISTER_FILE_HANDLE",a.REGISTER_FILE_URL="REGISTER_FILE_URL",a.RESET="RESET",a.RUN_PREPARED="RUN_PREPARED",a.RUN_QUERY="RUN_QUERY",a.SEND_PREPARED="SEND_PREPARED",a.SEND_QUERY="SEND_QUERY",a.TOKENIZE="TOKENIZE"})(o||(o={}));var u;(function(l){l.CONNECTION_INFO="CONNECTION_INFO",l.ERROR="ERROR",l.FEATURE_FLAGS="FEATURE_FLAGS",l.FILE_BUFFER="FILE_BUFFER",l.FILE_SIZE="FILE_SIZE",l.FILE_STATISTICS="FILE_STATISTICS",l.LOG="LOG",l.OK="OK",l.PREPARED_STATEMENT_ID="PREPARED_STATEMENT_ID",l.QUERY_PLAN="QUERY_PLAN",l.QUERY_RESULT="QUERY_RESULT",l.QUERY_RESULT_CHUNK="QUERY_RESULT_CHUNK",l.QUERY_START="QUERY_START",l.REGISTERED_FILE="REGISTERED_FILE",l.SCRIPT_TOKENS="SCRIPT_TOKENS",l.SUCCESS="SUCCESS",l.VERSION_STRING="VERSION_STRING"})(u||(u={}));var m=class{constructor(e,r){this.promiseResolver=()=>{};this.promiseRejecter=()=>{};this.type=e,this.data=r,this.promise=new Promise((t,s)=>{this.promiseResolver=t,this.promiseRejecter=s})}};var ce=new TextEncoder,de=class{constructor(e,r=null){this._worker=null;this._workerShutdownPromise=null;this._workerShutdownResolver=()=>{};this._nextMessageId=0;this._pendingRequests=new Map;this._logger=e,this._onMessageHandler=this.onMessage.bind(this),this._onErrorHandler=this.onError.bind(this),this._onCloseHandler=this.onClose.bind(this),r!=null&&this.attach(r)}get logger(){return this._logger}attach(e){this._worker=e,this._worker.addEventListener("message",this._onMessageHandler),this._worker.addEventListener("error",this._onErrorHandler),this._worker.addEventListener("close",this._onCloseHandler),this._workerShutdownPromise=new Promise((r,t)=>{this._workerShutdownResolver=r})}detach(){!this._worker||(this._worker.removeEventListener("message",this._onMessageHandler),this._worker.removeEventListener("error",this._onErrorHandler),this._worker.removeEventListener("close",this._onCloseHandler),this._worker=null,this._workerShutdownResolver(null),this._workerShutdownPromise=null,this._workerShutdownResolver=()=>{})}async terminate(){!this._worker||(this._worker.terminate(),this._worker=null,this._workerShutdownPromise=null,this._workerShutdownResolver=()=>{})}async postTask(e,r=[]){if(!this._worker){console.error("cannot send a message since the worker is not set!");return}let t=this._nextMessageId++;return this._pendingRequests.set(t,e),this._worker.postMessage({messageId:t,type:e.type,data:e.data}),await e.promise}onMessage(e){let r=e.data;r.type==u.LOG&&this._logger.log(r.data);let t=this._pendingRequests.get(r.requestId);if(!t){console.warn(`unassociated response: [${r.requestId}, ${r.type.toString()}]`);return}if(this._pendingRequests.delete(r.requestId),r.type==u.ERROR){let s=new Error(r.data.message);s.name=r.data.name,s.stack=r.data.stack,t.promiseRejecter(s);return}switch(t.type){case o.CLOSE_PREPARED:case o.COLLECT_FILE_STATISTICS:case o.COPY_FILE_TO_PATH:case o.DISCONNECT:case o.DROP_FILES:case o.FLUSH_FILES:case o.INSERT_ARROW_FROM_IPC_STREAM:case o.INSERT_CSV_FROM_PATH:case o.INSERT_JSON_FROM_PATH:case o.INSTANTIATE:case o.OPEN:case o.PING:case o.REGISTER_FILE_BUFFER:case o.REGISTER_FILE_HANDLE:case o.REGISTER_FILE_URL:case o.RESET:if(r.type==u.OK){t.promiseResolver(r.data);return}break;case o.GET_VERSION:if(r.type==u.VERSION_STRING){t.promiseResolver(r.data);return}break;case o.GET_FEATURE_FLAGS:if(r.type==u.FEATURE_FLAGS){t.promiseResolver(r.data);return}break;case o.TOKENIZE:if(r.type==u.SCRIPT_TOKENS){t.promiseResolver(r.data);return}break;case o.DROP_FILE:if(r.type==u.SUCCESS){t.promiseResolver(r.data);return}break;case o.COPY_FILE_TO_BUFFER:if(r.type==u.FILE_BUFFER){t.promiseResolver(r.data);return}break;case o.EXPORT_FILE_STATISTICS:if(r.type==u.FILE_STATISTICS){t.promiseResolver(r.data);return}break;case o.CONNECT:if(r.type==u.CONNECTION_INFO){t.promiseResolver(r.data);return}break;case o.RUN_PREPARED:case o.RUN_QUERY:if(r.type==u.QUERY_RESULT){t.promiseResolver(r.data);return}break;case o.SEND_PREPARED:case o.SEND_QUERY:if(r.type==u.QUERY_START){t.promiseResolver(r.data);return}break;case o.FETCH_QUERY_RESULTS:if(r.type==u.QUERY_RESULT_CHUNK){t.promiseResolver(r.data);return}break;case o.CREATE_PREPARED:if(r.type==u.PREPARED_STATEMENT_ID){t.promiseResolver(r.data);return}break}t.promiseRejecter(new Error(`unexpected response type: ${r.type.toString()}`))}onError(e){console.error(e),console.error(`error in duckdb worker: ${e.message}`),this._pendingRequests.clear()}onClose(){if(this._workerShutdownResolver(null),this._pendingRequests.size!=0){console.warn(`worker terminated with ${this._pendingRequests.size} pending requests`);return}this._pendingRequests.clear()}async reset(){let e=new m(o.RESET,null);return await this.postTask(e)}async ping(){let e=new m(o.PING,null);await this.postTask(e)}async dropFile(e){let r=new m(o.DROP_FILE,e);return await this.postTask(r)}async dropFiles(){let e=new m(o.DROP_FILES,null);return await this.postTask(e)}async flushFiles(){let e=new m(o.FLUSH_FILES,null);return await this.postTask(e)}async instantiate(e,r=null){let t=new m(o.INSTANTIATE,[e,r]);return await this.postTask(t)}async getVersion(){let e=new m(o.GET_VERSION,null);return await this.postTask(e)}async getFeatureFlags(){let e=new m(o.GET_FEATURE_FLAGS,null);return await this.postTask(e)}async open(e){let r=new m(o.OPEN,e);await this.postTask(r)}async tokenize(e){let r=new m(o.TOKENIZE,e);return await this.postTask(r)}async connectInternal(){let e=new m(o.CONNECT,null);return await this.postTask(e)}async connect(){let e=await this.connectInternal();return new B(this,e)}async disconnect(e){let r=new m(o.DISCONNECT,e);await this.postTask(r)}async runQuery(e,r){let t=new m(o.RUN_QUERY,[e,r]);return await this.postTask(t)}async sendQuery(e,r){let t=new m(o.SEND_QUERY,[e,r]);return await this.postTask(t)}async fetchQueryResults(e){let r=new m(o.FETCH_QUERY_RESULTS,e);return await this.postTask(r)}async createPrepared(e,r){let t=new m(o.CREATE_PREPARED,[e,r]);return await this.postTask(t)}async closePrepared(e,r){let t=new m(o.CLOSE_PREPARED,[e,r]);await this.postTask(t)}async runPrepared(e,r,t){let s=new m(o.RUN_PREPARED,[e,r,t]);return await this.postTask(s)}async sendPrepared(e,r,t){let s=new m(o.SEND_PREPARED,[e,r,t]);return await this.postTask(s)}async registerFileText(e,r){let t=ce.encode(r);await this.registerFileBuffer(e,t)}async registerFileURL(e,r){r===void 0&&(r=e);let t=new m(o.REGISTER_FILE_URL,[e,r]);await this.postTask(t)}async registerEmptyFileBuffer(e){let r=new m(o.REGISTER_FILE_BUFFER,[e,new Uint8Array]);await this.postTask(r)}async registerFileBuffer(e,r){let t=new m(o.REGISTER_FILE_BUFFER,[e,r]);await this.postTask(t,[r.buffer])}async registerFileHandle(e,r){let t=new m(o.REGISTER_FILE_HANDLE,[e,r]);await this.postTask(t,[])}async collectFileStatistics(e,r){let t=new m(o.COLLECT_FILE_STATISTICS,[e,r]);await this.postTask(t,[])}async exportFileStatistics(e){let r=new m(o.EXPORT_FILE_STATISTICS,e);return await this.postTask(r,[])}async copyFileToBuffer(e){let r=new m(o.COPY_FILE_TO_BUFFER,e);return await this.postTask(r)}async copyFileToPath(e,r){let t=new m(o.COPY_FILE_TO_PATH,[e,r]);await this.postTask(t)}async insertArrowFromIPCStream(e,r,t){let s=new m(o.INSERT_ARROW_FROM_IPC_STREAM,[e,r,t]);await this.postTask(s,[r.buffer])}async insertCSVFromPath(e,r,t){if(t.columns!==void 0){let i=[];for(let c in t.columns){let b=t.columns[c];i.push(I(c,b))}t.columnsFlat=i,delete t.columns}let s=new m(o.INSERT_CSV_FROM_PATH,[e,r,t]);await this.postTask(s)}async insertJSONFromPath(e,r,t){if(t.columns!==void 0){let i=[];for(let c in t.columns){let b=t.columns[c];i.push(I(c,b))}t.columnsFlat=i,delete t.columns}let s=new m(o.INSERT_JSON_FROM_PATH,[e,r,t]);await this.postTask(s)}};var le=class{constructor(){this._bindings=null;this._nextMessageId=0}log(e){this.postMessage({messageId:this._nextMessageId++,requestId:0,type:u.LOG,data:e},[])}sendOK(e){this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.OK,data:null},[])}failWith(e,r){let t={name:r.name,message:r.message,stack:r.stack||void 0};this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.ERROR,data:t},[])}async onMessage(e){switch(e.type){case o.PING:this.sendOK(e);return;case o.INSTANTIATE:this._bindings!=null&&this.failWith(e,new Error("duckdb already initialized"));try{this._bindings=await this.instantiate(e.data[0],e.data[1]),this.sendOK(e)}catch(r){this._bindings=null,this.failWith(e,r)}return;default:break}if(!this._bindings)return this.failWith(e,new Error("duckdb is not initialized"));try{switch(e.type){case o.GET_VERSION:this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.VERSION_STRING,data:this._bindings.getVersion()},[]);break;case o.GET_FEATURE_FLAGS:this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.FEATURE_FLAGS,data:this._bindings.getFeatureFlags()},[]);break;case o.RESET:this._bindings.reset(),this.sendOK(e);break;case o.OPEN:this._bindings.open(e.data),this.sendOK(e);break;case o.DROP_FILE:this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.SUCCESS,data:this._bindings.dropFile(e.data)},[]);break;case o.DROP_FILES:this._bindings.dropFiles(),this.sendOK(e);break;case o.FLUSH_FILES:this._bindings.flushFiles(),this.sendOK(e);break;case o.CONNECT:{let r=this._bindings.connect();this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.CONNECTION_INFO,data:r.useUnsafe((t,s)=>s)},[]);break}case o.DISCONNECT:this._bindings.disconnect(e.data),this.sendOK(e);break;case o.CREATE_PREPARED:{let r=this._bindings.createPrepared(e.data[0],e.data[1]);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.PREPARED_STATEMENT_ID,data:r},[]);break}case o.CLOSE_PREPARED:{this._bindings.closePrepared(e.data[0],e.data[1]),this.sendOK(e);break}case o.RUN_PREPARED:{let r=this._bindings.runPrepared(e.data[0],e.data[1],e.data[2]);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.QUERY_RESULT,data:r},[r.buffer]);break}case o.RUN_QUERY:{let r=this._bindings.runQuery(e.data[0],e.data[1]);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.QUERY_RESULT,data:r},[r.buffer]);break}case o.SEND_PREPARED:{let r=this._bindings.sendPrepared(e.data[0],e.data[1],e.data[2]);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.QUERY_START,data:r},[r.buffer]);break}case o.SEND_QUERY:{let r=this._bindings.sendQuery(e.data[0],e.data[1]);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.QUERY_START,data:r},[r.buffer]);break}case o.FETCH_QUERY_RESULTS:{let r=this._bindings.fetchQueryResults(e.data);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.QUERY_RESULT_CHUNK,data:r},[r.buffer]);break}case o.REGISTER_FILE_URL:this._bindings.registerFileURL(e.data[0],e.data[1]),this.sendOK(e);break;case o.REGISTER_FILE_BUFFER:this._bindings.registerFileBuffer(e.data[0],e.data[1]),this.sendOK(e);break;case o.REGISTER_FILE_HANDLE:this._bindings.registerFileHandle(e.data[0],e.data[1]),this.sendOK(e);break;case o.COPY_FILE_TO_PATH:this._bindings.copyFileToPath(e.data[0],e.data[1]),this.sendOK(e);break;case o.COPY_FILE_TO_BUFFER:{let r=this._bindings.copyFileToBuffer(e.data);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.FILE_BUFFER,data:r},[]);break}case o.COLLECT_FILE_STATISTICS:this._bindings.collectFileStatistics(e.data[0],e.data[1]),this.sendOK(e);break;case o.EXPORT_FILE_STATISTICS:{this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.FILE_STATISTICS,data:this._bindings.exportFileStatistics(e.data)},[]);break}case o.INSERT_ARROW_FROM_IPC_STREAM:{this._bindings.insertArrowFromIPCStream(e.data[0],e.data[1],e.data[2]),this.sendOK(e);break}case o.INSERT_CSV_FROM_PATH:{this._bindings.insertCSVFromPath(e.data[0],e.data[1],e.data[2]),this.sendOK(e);break}case o.INSERT_JSON_FROM_PATH:{this._bindings.insertJSONFromPath(e.data[0],e.data[1],e.data[2]),this.sendOK(e);break}case o.TOKENIZE:{let r=this._bindings.tokenize(e.data);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.SCRIPT_TOKENS,data:r},[]);break}}}catch(r){return this.failWith(e,r)}}};import{bulkMemory as Oe,exceptions as Pe,simd as Ae,threads as Fe}from"wasm-feature-detect";var ue="@duckdb/duckdb-wasm",me="0.1.9",pe="DuckDB powered by WebAssembly",_e="MPL-2.0",Ee={type:"git",url:"https://github.com/duckdb/duckdb-wasm.git"},be={"@apache-arrow/esnext-esm":"^6.0.0","wasm-feature-detect":"^1.2.11"},he={"@types/emscripten":"^1.39.4","@types/jasmine":"^3.10.1","@typescript-eslint/eslint-plugin":"^5.2.0","@typescript-eslint/parser":"^5.2.0",esbuild:"^0.13.10",eslint:"^8.1.0","eslint-plugin-jasmine":"^4.1.2","eslint-plugin-react":"^7.26.1",jasmine:"^3.10.0","jasmine-core":"^3.10.1","jasmine-spec-reporter":"^7.0.0",karma:"^6.3.6","karma-chrome-launcher":"^3.1.0","karma-coverage":"^2.0.3","karma-firefox-launcher":"^2.1.1","karma-jasmine":"^4.0.1","karma-jasmine-html-reporter":"^1.7.0","karma-sourcemap-loader":"^0.3.8","karma-spec-reporter":"^0.0.32","make-dir":"^3.1.0",nyc:"^15.1.0",prettier:"^2.4.1",puppeteer:"^10.4.0",rimraf:"^3.0.2",typedoc:"^0.22.7",typescript:"^4.4.4","web-worker":"^1.1.0"},Re={fsevents:"*"},ge={"build:debug":"node bundle.mjs debug && tsc --emitDeclarationOnly","build:release":"node bundle.mjs release && tsc --emitDeclarationOnly",docs:"typedoc",report:"node ./coverage.mjs","test:node":"node --enable-source-maps --experimental-wasm-eh ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.js","test:node:debug":"node --inspect-brk --enable-source-maps --experimental-wasm-eh ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.js","test:node:filter":'node --enable-source-maps --experimental-wasm-eh ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.js --filter="CSV"',"test:node:coverage":"nyc -r json --report-dir ./coverage/node node --experimental-wasm-eh ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.js","test:firefox":"karma start ./karma/tests-firefox.cjs","test:chrome":"karma start ./karma/tests-chrome.cjs","test:chrome:eh":"karma start ./karma/tests-chrome-eh.cjs","test:chrome:coverage":"karma start ./karma/tests-chrome-coverage.cjs","test:browsers":"karma start ./karma/tests-all.cjs","test:debug":"karma start ./karma/tests-debug.cjs",test:"npm run test:chrome && npm run test:node","test:coverage":"npm run test:chrome:coverage && npm run test:node:coverage && npm run report",lint:"eslint src test"},Te=["dist","!dist/types/test"],ye="./dist/duckdb-node-async.js",Se="./dist/duckdb-node-async.d.ts",Ie="./dist/duckdb-esm.js",fe={"./dist/duckdb-node-async.js":"./dist/duckdb-browser-async.js","temp-write":!1,worker_threads:!1,perf_hooks:!1,fs:!1,os:!1,path:!1,buffer:!1,crypto:!1},O={name:ue,version:me,description:pe,license:_e,repository:Ee,dependencies:be,devDependencies:he,optionalDependencies:Re,scripts:ge,files:Te,main:ye,types:Se,module:Ie,browser:fe};var $=O.name,X=O.version,M=O.version.split("."),Kr=M[0],jr=M[1],Jr=M[2];function D(n){let e=`importScripts("${n}");`;return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))}function Xr(){let n=`https://cdn.jsdelivr.net/npm/${$}@${X}/dist/`;return{asyncDefault:{mainModule:`${n}duckdb.wasm`,mainWorker:D(`${n}duckdb-browser-async.worker.js`)},asyncNext:{mainModule:`${n}duckdb-next.wasm`,mainWorker:D(`${n}duckdb-browser-async-next.worker.js`)},asyncNextCOI:{mainModule:`${n}duckdb-next-coi.wasm`,mainWorker:D(`${n}duckdb-browser-async-next-coi.worker.js`),pthreadWorker:D(`${n}duckdb-browser-async-next-coi.pthread.worker.js`)}}}var x=null,G=null,H=null,V=null,Y=null;function ke(){return typeof process!="undefined"&&process.release.name==="node"}async function we(){return x==null&&(x=typeof BigInt64Array!="undefined"),G==null&&(G=await Pe()),H==null&&(H=await Fe()),V==null&&(V=await Ae()),Y==null&&(Y=await Oe()),{bigInt64Array:x,crossOriginIsolated:ke()||globalThis.crossOriginIsolated||!1,wasmExceptions:G,wasmSIMD:V,wasmThreads:H,wasmBulkMemory:Y}}async function Zr(n){let e=await we();if(e.wasmExceptions&&e.wasmSIMD){if(e.wasmThreads&&e.crossOriginIsolated&&n.asyncNextCOI)return{mainModule:n.asyncNextCOI.mainModule,mainWorker:n.asyncNextCOI.mainWorker,pthreadWorker:n.asyncNextCOI.pthreadWorker};if(n.asyncNext)return{mainModule:n.asyncNext.mainModule,mainWorker:n.asyncNext.mainWorker,pthreadWorker:null}}return{mainModule:n.asyncDefault.mainModule,mainWorker:n.asyncDefault.mainWorker,pthreadWorker:null}}export{de as AsyncDuckDB,B as AsyncDuckDBConnection,le as AsyncDuckDBDispatcher,q as AsyncPreparedStatement,v as AsyncResultStreamIterator,oe as ConsoleLogger,Ve as DEFAULT_RUNTIME,se as DuckDBBindingsBase,N as DuckDBConnection,K as DuckDBDataProtocol,j as DuckDBFeature,L as FileStatistics,z as InsertMode,J as JSONTableShape,g as LogEvent,T as LogLevel,y as LogOrigin,S as LogTopic,$ as PACKAGE_NAME,X as PACKAGE_VERSION,Kr as PACKAGE_VERSION_MAJOR,jr as PACKAGE_VERSION_MINOR,Jr as PACKAGE_VERSION_PATCH,Q as PreparedStatement,C as ResultStreamIterator,p as StatusCode,ie as VoidLogger,o as WorkerRequestType,u as WorkerResponseType,m as WorkerTask,E as callSRet,w as copyBuffer,te as decodeText,h as dropResponseBuffers,He as failWith,Xr as getJsDelivrBundles,br as getLogEventLabel,Er as getLogLevelLabel,Rr as getLogOriginLabel,hr as getLogTopicLabel,we as getPlatformFeatures,_ as readString,Zr as selectBundle};
1
+ import{RecordBatchReader as F,RecordBatchStreamWriter as ee,Table as U}from"apache-arrow";import{AsyncByteQueue as Z}from"apache-arrow";var P=class extends Z{flush(){let e=super.toUint8Array(!0);return this._values.length=0,e}};var N=class{constructor(e,r){this._bindings=e,this._conn=r}close(){this._bindings.disconnect(this._conn)}useUnsafe(e){return e(this._bindings,this._conn)}query(e){let r=this._bindings.runQuery(this._conn,e),t=F.from(r);return console.assert(t.isSync()),console.assert(t.isFile()),U.from(t)}send(e){let r=this._bindings.sendQuery(this._conn,e),t=new C(this._bindings,this._conn,r),s=F.from(t);return console.assert(s.isSync()),console.assert(s.isStream()),s}prepare(e){let r=this._bindings.createPrepared(this._conn,e);return new Q(this._bindings,this._conn,r)}insertArrowVectors(e,r){this.insertArrowTable(U.new(e),r)}insertArrowTable(e,r){e.schema.fields.length==0&&console.warn("The schema is empty! If you used arrow.Table.from, consider constructing schema and batches manually"),this.insertArrowBatches(e.schema,e.chunks,r)}insertArrowBatches(e,r,t){e.fields.length==0&&console.warn("The schema is empty! If you used arrow.Table.from, consider constructing schema and batches manually");let s=new P,i=new ee().reset(s,e),c=!0;for(let b of r)c||this._bindings.insertArrowFromIPCStream(this._conn,s.flush(),t),c=!1,i.write(b);i.finish(),this._bindings.insertArrowFromIPCStream(this._conn,s.flush(),t)}insertArrowFromIPCStream(e,r){this._bindings.insertArrowFromIPCStream(this._conn,e,r)}insertCSVFromPath(e,r){this._bindings.insertCSVFromPath(this._conn,e,r)}insertJSONFromPath(e,r){this._bindings.insertJSONFromPath(this._conn,e,r)}},C=class{constructor(e,r,t){this.bindings=e;this.conn=r;this.header=t;this._first=!0,this._depleted=!1}next(){if(this._first)return this._first=!1,{done:!1,value:this.header};if(this._depleted)return{done:!0,value:null};let e=this.bindings.fetchQueryResults(this.conn);return this._depleted=e.length==0,{done:this._depleted,value:e}}[Symbol.iterator](){return this}},Q=class{constructor(e,r,t){this.bindings=e,this.connectionId=r,this.statementId=t}close(){this.bindings.closePrepared(this.connectionId,this.statementId)}query(...e){let r=this.bindings.runPrepared(this.connectionId,this.statementId,e),t=F.from(r);return console.assert(t.isSync()),console.assert(t.isFile()),U.from(t)}send(...e){let r=this.bindings.sendPrepared(this.connectionId,this.statementId,e),t=new C(this.bindings,this.connectionId,r),s=F.from(t);return console.assert(s.isSync()),console.assert(s.isStream()),s}};var p;(function(e){e[e.SUCCESS=0]="SUCCESS"})(p||(p={}));function re(){let n=new TextDecoder;return e=>(typeof SharedArrayBuffer!="undefined"&&e.buffer instanceof SharedArrayBuffer&&(e=new Uint8Array(e)),n.decode(e))}var te=re();function He(n,e){console.error(e),n.ccall("duckdb_web_fail_with",null,["string"],[e])}function w(n,e,r){let t=n.HEAPU8.subarray(e,e+r),s=new Uint8Array(new ArrayBuffer(t.byteLength));return s.set(t),s}function _(n,e,r){return te(n.HEAPU8.subarray(e,e+r))}var K;(function(t){t[t.BUFFER=0]="BUFFER",t[t.NATIVE=1]="NATIVE",t[t.HTTP=3]="HTTP"})(K||(K={}));function E(n,e,r,t){let s=n.stackSave(),i=n.stackAlloc(3*8);r.unshift("number"),t.unshift(i),n.ccall(e,null,r,t);let c=n.HEAPF64[(i>>3)+0],b=n.HEAPF64[(i>>3)+1],f=n.HEAPF64[(i>>3)+2];return n.stackRestore(s),[c,b,f]}function h(n){n.ccall("duckdb_web_clear_response",null,[],[])}var Ve={testPlatformFeature:(n,e)=>!1,openFile:(n,e)=>{},syncFile:(n,e)=>{},closeFile:(n,e)=>{},getLastFileModificationTime:(n,e)=>0,getFileSize:(n,e)=>0,truncateFile:(n,e,r)=>{},readFile:(n,e,r,t,s)=>0,writeFile:(n,e,r,t,s)=>0,removeDirectory:(n,e,r)=>{},checkDirectory:(n,e,r)=>!1,createDirectory:(n,e,r)=>{},listDirectoryEntries:(n,e,r)=>!1,glob:(n,e,r)=>{},moveFile:(n,e,r,t,s)=>{},checkFile:(n,e,r)=>!1,removeFile:(n,e,r)=>{}};var L=class{constructor(e){let r=new Float64Array(e.buffer,e.byteOffset,e.byteLength/8),t=new Uint8Array(new ArrayBuffer(e.byteLength));t.set(e.subarray(7*8)),this.totalFileReadsCold=r[0],this.totalFileReadsAhead=r[1],this.totalFileReadsCached=r[2],this.totalFileWrites=r[3],this.totalPageAccesses=r[4],this.totalPageLoads=r[5],this.blockSize=r[6],this.blockStats=t}getBlockStats(e,r){return r=r||{file_reads_cold:0,file_reads_ahead:0,file_reads_cached:0,file_writes:0,page_accesses:0,page_loads:0},r.file_writes=this.blockStats[e*3+0]&15,r.file_reads_cold=this.blockStats[e*3+0]>>4,r.file_reads_ahead=this.blockStats[e*3+1]&15,r.file_reads_cached=this.blockStats[e*3+1]>>4,r.page_accesses=this.blockStats[e*3+1]&15,r.page_loads=this.blockStats[e*3+1]>>4,r}};import{Type as d}from"apache-arrow";function I(n,e){switch(e.typeId){case d.Binary:return{name:n,type:"binary"};case d.Bool:return{name:n,type:"bool"};case d.Date:return{name:n,type:"date"};case d.DateDay:return{name:n,type:"date32[d]"};case d.DateMillisecond:return{name:n,type:"date64[ms]"};case d.Decimal:{let r=e;return{name:n,type:"decimal",precision:r.precision,scale:r.scale}}case d.Float:return{name:n,type:"float"};case d.Float16:return{name:n,type:"float16"};case d.Float32:return{name:n,type:"float32"};case d.Float64:return{name:n,type:"float64"};case d.Int:return{name:n,type:"int32"};case d.Int16:return{name:n,type:"int16"};case d.Int32:return{name:n,type:"int32"};case d.Int64:return{name:n,type:"int64"};case d.Uint16:return{name:n,type:"uint16"};case d.Uint32:return{name:n,type:"uint32"};case d.Uint64:return{name:n,type:"uint64"};case d.Uint8:return{name:n,type:"uint8"};case d.IntervalDayTime:return{name:n,type:"interval[dt]"};case d.IntervalYearMonth:return{name:n,type:"interval[m]"};case d.List:{let r=e;return{name:n,type:"list",children:[I(r.valueField.name,r.valueField.type)]}}case d.FixedSizeBinary:return{name:n,type:"fixedsizebinary",byteWidth:e.byteWidth};case d.Null:return{name:n,type:"null"};case d.Utf8:return{name:n,type:"utf8"};case d.Struct:return{name:n,type:"struct",children:e.children.map(t=>I(t.name,t.type))};case d.Time:return{name:n,type:"time[s]"};case d.TimeMicrosecond:return{name:n,type:"time[us]"};case d.TimeMillisecond:return{name:n,type:"time[ms]"};case d.TimeNanosecond:return{name:n,type:"time[ns]"};case d.TimeSecond:return{name:n,type:"time[s]"};case d.Timestamp:return{name:n,type:"timestamp",timezone:e.timezone||void 0};case d.TimestampSecond:return{name:n,type:"timestamp[s]",timezone:e.timezone||void 0};case d.TimestampMicrosecond:return{name:n,type:"timestamp[us]",timezone:e.timezone||void 0};case d.TimestampNanosecond:return{name:n,type:"timestamp[ns]",timezone:e.timezone||void 0};case d.TimestampMillisecond:return{name:n,type:"timestamp[ms]",timezone:e.timezone||void 0}}throw new Error(`unsupported arrow type: ${e.toString()}`)}var ne=new TextEncoder,j;(function(i){i[i.WASM_EXCEPTIONS=1]="WASM_EXCEPTIONS",i[i.WASM_THREADS=2]="WASM_THREADS",i[i.WASM_SIMD=4]="WASM_SIMD",i[i.WASM_BULK_MEMORY=8]="WASM_BULK_MEMORY",i[i.EMIT_BIGINT=16]="EMIT_BIGINT"})(j||(j={}));var se=class{constructor(e,r){this._instance=null;this._initPromise=null;this._initPromiseResolver=()=>{};this._logger=e,this._runtime=r}get logger(){return this._logger}get mod(){return this._instance}get pthread(){return this.mod.PThread||null}async instantiate(){return this._instance!=null?this:(this._initPromise!=null&&await this._initPromise,this._initPromise=new Promise(e=>{this._initPromiseResolver=e}),this._instance=await this.instantiateImpl({print:console.log.bind(console),printErr:console.log.bind(console),onRuntimeInitialized:this._initPromiseResolver}),await this._initPromise,this._initPromise=null,this)}open(e){let[r,t,s]=E(this.mod,"duckdb_web_open",["string"],[JSON.stringify(e)]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,s));h(this.mod)}reset(){let[e,r,t]=E(this.mod,"duckdb_web_reset",[],[]);if(e!==p.SUCCESS)throw new Error(_(this.mod,r,t));h(this.mod)}getVersion(){let[e,r,t]=E(this.mod,"duckdb_web_get_version",[],[]);if(e!==p.SUCCESS)throw new Error(_(this.mod,r,t));let s=_(this.mod,r,t);return h(this.mod),s}getFeatureFlags(){return this.mod.ccall("duckdb_web_get_feature_flags","number",[],[])}tokenize(e){let[r,t,s]=E(this.mod,"duckdb_web_tokenize",["string"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,s));let i=_(this.mod,t,s);return h(this.mod),JSON.parse(i)}connect(){let e=this.mod.ccall("duckdb_web_connect","number",[],[]);return new N(this,e)}disconnect(e){this.mod.ccall("duckdb_web_disconnect",null,["number"],[e])}runQuery(e,r){let[t,s,i]=E(this.mod,"duckdb_web_query_run",["number","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i));let c=w(this.mod,s,i);return h(this.mod),c}sendQuery(e,r){let[t,s,i]=E(this.mod,"duckdb_web_query_send",["number","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i));let c=w(this.mod,s,i);return h(this.mod),c}fetchQueryResults(e){let[r,t,s]=E(this.mod,"duckdb_web_query_fetch_results",["number"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,s));let i=w(this.mod,t,s);return h(this.mod),i}createPrepared(e,r){let[t,s,i]=E(this.mod,"duckdb_web_prepared_create",["number","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i));return h(this.mod),s}closePrepared(e,r){let[t,s,i]=E(this.mod,"duckdb_web_prepared_close",["number","number"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i));h(this.mod)}runPrepared(e,r,t){let[s,i,c]=E(this.mod,"duckdb_web_prepared_run",["number","number","string"],[e,r,JSON.stringify(t)]);if(s!==p.SUCCESS)throw new Error(_(this.mod,i,c));let b=w(this.mod,i,c);return h(this.mod),b}sendPrepared(e,r,t){let[s,i,c]=E(this.mod,"duckdb_web_prepared_send",["number","number","string"],[e,r,JSON.stringify(t)]);if(s!==p.SUCCESS)throw new Error(_(this.mod,i,c));let b=w(this.mod,i,c);return h(this.mod),b}insertArrowFromIPCStream(e,r,t){let s=this.mod._malloc(r.length);this.mod.HEAPU8.subarray(s,s+r.length).set(r);let c=t?JSON.stringify(t):"",[b,f,k]=E(this.mod,"duckdb_web_insert_arrow_from_ipc_stream",["number","number","number","string"],[e,s,r.length,c]);if(b!==p.SUCCESS)throw new Error(_(this.mod,f,k))}insertCSVFromPath(e,r,t){if(t.columns!==void 0){t.columnsFlat=[];for(let k in t.columns)t.columnsFlat.push(I(k,t.columns[k]))}let s={...t};s.columns=s.columnsFlat,delete s.columnsFlat;let i=JSON.stringify(s),[c,b,f]=E(this.mod,"duckdb_web_insert_csv_from_path",["number","string","string"],[e,r,i]);if(c!==p.SUCCESS)throw new Error(_(this.mod,b,f))}insertJSONFromPath(e,r,t){if(t.columns!==void 0){t.columnsFlat=[];for(let k in t.columns)t.columnsFlat.push(I(k,t.columns[k]))}let s={...t};s.columns=s.columnsFlat,delete s.columnsFlat;let i=JSON.stringify(s),[c,b,f]=E(this.mod,"duckdb_web_insert_json_from_path",["number","string","string"],[e,r,i]);if(c!==p.SUCCESS)throw new Error(_(this.mod,b,f))}registerFileURL(e,r){r===void 0&&(r=e);let[t,s,i]=E(this.mod,"duckdb_web_fs_register_file_url",["string","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i));h(this.mod)}registerFileText(e,r){let t=ne.encode(r);this.registerFileBuffer(e,t)}registerFileBuffer(e,r){let t=this.mod._malloc(r.length);this.mod.HEAPU8.subarray(t,t+r.length).set(r);let[i,c,b]=E(this.mod,"duckdb_web_fs_register_file_buffer",["string","number","number"],[e,t,r.length]);if(i!==p.SUCCESS)throw new Error(_(this.mod,c,b));h(this.mod)}registerFileHandle(e,r){let[t,s,i]=E(this.mod,"duckdb_web_fs_register_file_url",["string","string"],[e,e]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i));if(h(this.mod),globalThis.DUCKDB_RUNTIME._files=(globalThis.DUCKDB_RUNTIME._files||new Map).set(e,r),this.pthread){for(let c of this.pthread.runningWorkers)c.postMessage({cmd:"registerFileHandle",fileName:e,fileHandle:r});for(let c of this.pthread.unusedWorkers)c.postMessage({cmd:"dropFileHandle",fileName:e})}}dropFile(e){return this.mod.ccall("duckdb_web_fs_drop_file","boolean",["string"],[e])}dropFiles(){this.mod.ccall("duckdb_web_fs_drop_files",null,[],[])}flushFiles(){this.mod.ccall("duckdb_web_flush_files",null,[],[])}copyFileToPath(e,r){let[t,s,i]=E(this.mod,"duckdb_web_copy_file_to_path",["string","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i));h(this.mod)}copyFileToBuffer(e){let[r,t,s]=E(this.mod,"duckdb_web_copy_file_to_buffer",["string"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,s));let i=this.mod.HEAPU8.subarray(t,t+s),c=new Uint8Array(i.length);return c.set(i),h(this.mod),c}collectFileStatistics(e,r){let[t,s,i]=E(this.mod,"duckdb_web_collect_file_stats",["string","boolean"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,s,i))}exportFileStatistics(e){let[r,t,s]=E(this.mod,"duckdb_web_export_file_stats",["string"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,s));return new L(this.mod.HEAPU8.subarray(t,t+s))}};var J;(function(r){r.ROW_ARRAY="row-array",r.COLUMN_OBJECT="column-object"})(J||(J={}));var z;(function(r){r[r.APPEND=0]="APPEND",r[r.IMPORT=1]="IMPORT"})(z||(z={}));var T;(function(i){i[i.NONE=0]="NONE",i[i.DEBUG=1]="DEBUG",i[i.INFO=2]="INFO",i[i.WARNING=3]="WARNING",i[i.ERROR=4]="ERROR"})(T||(T={}));var S;(function(i){i[i.NONE=0]="NONE",i[i.CONNECT=1]="CONNECT",i[i.DISCONNECT=2]="DISCONNECT",i[i.OPEN=3]="OPEN",i[i.QUERY=4]="QUERY"})(S||(S={}));var g;(function(c){c[c.NONE=0]="NONE",c[c.OK=1]="OK",c[c.ERROR=2]="ERROR",c[c.START=3]="START",c[c.RUN=4]="RUN",c[c.CAPTURE=5]="CAPTURE"})(g||(g={}));var y;(function(i){i[i.NONE=0]="NONE",i[i.WEB_WORKER=1]="WEB_WORKER",i[i.NODE_WORKER=2]="NODE_WORKER",i[i.BINDINGS=3]="BINDINGS",i[i.ASYNC_DUCKDB=4]="ASYNC_DUCKDB"})(y||(y={}));var ie=class{log(e){}},oe=class{log(e){console.log(e)}};function Er(n){switch(n){case 0:return"NONE";case 1:return"DEBUG";case 2:return"INFO";case 3:return"WARNING";case 4:return"ERROR";default:return"?"}}function br(n){switch(n){case 0:return"NONE";case 1:return"OK";case 2:return"ERROR";case 3:return"START";case 4:return"RUN";case 5:return"CAPTURE";default:return"?"}}function hr(n){switch(n){case 1:return"CONNECT";case 2:return"DISCONNECT";case 3:return"OPEN";case 4:return"QUERY";default:return"?"}}function Rr(n){switch(n){case 0:return"NONE";case 1:return"WEB WORKER";case 2:return"NODE WORKER";case 3:return"DUCKDB BINDINGS";case 4:return"DUCKDB";default:return"?"}}import{RecordBatchReader as A,RecordBatchStreamWriter as ae,Table as W}from"apache-arrow";var B=class{constructor(e,r){this._bindings=e,this._conn=r}get bindings(){return this._bindings}async close(){return this._bindings.disconnect(this._conn)}useUnsafe(e){return e(this._bindings,this._conn)}async query(e){this._bindings.logger.log({timestamp:new Date,level:T.INFO,origin:y.ASYNC_DUCKDB,topic:S.QUERY,event:g.RUN,value:e});let r=await this._bindings.runQuery(this._conn,e),t=A.from(r);return console.assert(t.isSync()),console.assert(t.isFile()),W.from(t)}async send(e){this._bindings.logger.log({timestamp:new Date,level:T.INFO,origin:y.ASYNC_DUCKDB,topic:S.QUERY,event:g.RUN,value:e});let r=await this._bindings.sendQuery(this._conn,e),t=new v(this._bindings,this._conn,r),s=await A.from(t);return console.assert(s.isAsync()),console.assert(s.isStream()),s}async prepare(e){let r=await this._bindings.createPrepared(this._conn,e);return new q(this._bindings,this._conn,r)}async insertArrowVectors(e,r){await this.insertArrowTable(W.new(e),r)}async insertArrowTable(e,r){e.schema.fields.length==0&&console.warn("The schema is empty! If you used arrow.Table.from, consider constructing schema and batches manually"),await this.insertArrowBatches(e.schema,e.chunks,r)}async insertArrowBatches(e,r,t){let s=new P,i=new ae().reset(s,e),c=!0;for(let b of r)c||await this._bindings.insertArrowFromIPCStream(this._conn,s.flush(),t),c=!1,i.write(b);i.finish(),await this._bindings.insertArrowFromIPCStream(this._conn,s.flush(),t)}async insertArrowFromIPCStream(e,r){await this._bindings.insertArrowFromIPCStream(this._conn,e,r)}async insertCSVFromPath(e,r){await this._bindings.insertCSVFromPath(this._conn,e,r)}async insertJSONFromPath(e,r){await this._bindings.insertJSONFromPath(this._conn,e,r)}},v=class{constructor(e,r,t){this.db=e;this.conn=r;this.header=t;this._first=!0,this._depleted=!1,this._inFlight=null}async next(){if(this._first)return this._first=!1,{done:!1,value:this.header};if(this._depleted)return{done:!0,value:null};let e;return this._inFlight!=null?(e=await this._inFlight,this._inFlight=null):e=await this.db.fetchQueryResults(this.conn),this._depleted=e.length==0,this._depleted||(this._inFlight=this.db.fetchQueryResults(this.conn)),{done:this._depleted,value:e}}[Symbol.asyncIterator](){return this}},q=class{constructor(e,r,t){this.bindings=e,this.connectionId=r,this.statementId=t}async close(){await this.bindings.closePrepared(this.connectionId,this.statementId)}async query(...e){let r=await this.bindings.runPrepared(this.connectionId,this.statementId,e),t=A.from(r);return console.assert(t.isSync()),console.assert(t.isFile()),W.from(t)}async send(...e){let r=await this.bindings.sendPrepared(this.connectionId,this.statementId,e),t=new v(this.bindings,this.connectionId,r),s=await A.from(t);return console.assert(s.isAsync()),console.assert(s.isStream()),s}};var o;(function(a){a.CLOSE_PREPARED="CLOSE_PREPARED",a.COLLECT_FILE_STATISTICS="COLLECT_FILE_STATISTICS",a.CONNECT="CONNECT",a.COPY_FILE_TO_BUFFER="COPY_FILE_TO_BUFFER",a.COPY_FILE_TO_PATH="COPY_FILE_TO_PATH",a.CREATE_PREPARED="CREATE_PREPARED",a.DISCONNECT="DISCONNECT",a.DROP_FILE="DROP_FILE",a.DROP_FILES="DROP_FILES",a.EXPORT_FILE_STATISTICS="EXPORT_FILE_STATISTICS",a.FETCH_QUERY_RESULTS="FETCH_QUERY_RESULTS",a.FLUSH_FILES="FLUSH_FILES",a.GET_FEATURE_FLAGS="GET_FEATURE_FLAGS",a.GET_VERSION="GET_VERSION",a.INSERT_ARROW_FROM_IPC_STREAM="INSERT_ARROW_FROM_IPC_STREAM",a.INSERT_CSV_FROM_PATH="IMPORT_CSV_FROM_PATH",a.INSERT_JSON_FROM_PATH="IMPORT_JSON_FROM_PATH",a.INSTANTIATE="INSTANTIATE",a.OPEN="OPEN",a.PING="PING",a.REGISTER_FILE_BUFFER="REGISTER_FILE_BUFFER",a.REGISTER_FILE_HANDLE="REGISTER_FILE_HANDLE",a.REGISTER_FILE_URL="REGISTER_FILE_URL",a.RESET="RESET",a.RUN_PREPARED="RUN_PREPARED",a.RUN_QUERY="RUN_QUERY",a.SEND_PREPARED="SEND_PREPARED",a.SEND_QUERY="SEND_QUERY",a.TOKENIZE="TOKENIZE"})(o||(o={}));var u;(function(l){l.CONNECTION_INFO="CONNECTION_INFO",l.ERROR="ERROR",l.FEATURE_FLAGS="FEATURE_FLAGS",l.FILE_BUFFER="FILE_BUFFER",l.FILE_SIZE="FILE_SIZE",l.FILE_STATISTICS="FILE_STATISTICS",l.LOG="LOG",l.OK="OK",l.PREPARED_STATEMENT_ID="PREPARED_STATEMENT_ID",l.QUERY_PLAN="QUERY_PLAN",l.QUERY_RESULT="QUERY_RESULT",l.QUERY_RESULT_CHUNK="QUERY_RESULT_CHUNK",l.QUERY_START="QUERY_START",l.REGISTERED_FILE="REGISTERED_FILE",l.SCRIPT_TOKENS="SCRIPT_TOKENS",l.SUCCESS="SUCCESS",l.VERSION_STRING="VERSION_STRING"})(u||(u={}));var m=class{constructor(e,r){this.promiseResolver=()=>{};this.promiseRejecter=()=>{};this.type=e,this.data=r,this.promise=new Promise((t,s)=>{this.promiseResolver=t,this.promiseRejecter=s})}};var ce=new TextEncoder,de=class{constructor(e,r=null){this._worker=null;this._workerShutdownPromise=null;this._workerShutdownResolver=()=>{};this._nextMessageId=0;this._pendingRequests=new Map;this._logger=e,this._onMessageHandler=this.onMessage.bind(this),this._onErrorHandler=this.onError.bind(this),this._onCloseHandler=this.onClose.bind(this),r!=null&&this.attach(r)}get logger(){return this._logger}attach(e){this._worker=e,this._worker.addEventListener("message",this._onMessageHandler),this._worker.addEventListener("error",this._onErrorHandler),this._worker.addEventListener("close",this._onCloseHandler),this._workerShutdownPromise=new Promise((r,t)=>{this._workerShutdownResolver=r})}detach(){!this._worker||(this._worker.removeEventListener("message",this._onMessageHandler),this._worker.removeEventListener("error",this._onErrorHandler),this._worker.removeEventListener("close",this._onCloseHandler),this._worker=null,this._workerShutdownResolver(null),this._workerShutdownPromise=null,this._workerShutdownResolver=()=>{})}async terminate(){!this._worker||(this._worker.terminate(),this._worker=null,this._workerShutdownPromise=null,this._workerShutdownResolver=()=>{})}async postTask(e,r=[]){if(!this._worker){console.error("cannot send a message since the worker is not set!");return}let t=this._nextMessageId++;return this._pendingRequests.set(t,e),this._worker.postMessage({messageId:t,type:e.type,data:e.data}),await e.promise}onMessage(e){let r=e.data;r.type==u.LOG&&this._logger.log(r.data);let t=this._pendingRequests.get(r.requestId);if(!t){console.warn(`unassociated response: [${r.requestId}, ${r.type.toString()}]`);return}if(this._pendingRequests.delete(r.requestId),r.type==u.ERROR){let s=new Error(r.data.message);s.name=r.data.name,s.stack=r.data.stack,t.promiseRejecter(s);return}switch(t.type){case o.CLOSE_PREPARED:case o.COLLECT_FILE_STATISTICS:case o.COPY_FILE_TO_PATH:case o.DISCONNECT:case o.DROP_FILES:case o.FLUSH_FILES:case o.INSERT_ARROW_FROM_IPC_STREAM:case o.INSERT_CSV_FROM_PATH:case o.INSERT_JSON_FROM_PATH:case o.INSTANTIATE:case o.OPEN:case o.PING:case o.REGISTER_FILE_BUFFER:case o.REGISTER_FILE_HANDLE:case o.REGISTER_FILE_URL:case o.RESET:if(r.type==u.OK){t.promiseResolver(r.data);return}break;case o.GET_VERSION:if(r.type==u.VERSION_STRING){t.promiseResolver(r.data);return}break;case o.GET_FEATURE_FLAGS:if(r.type==u.FEATURE_FLAGS){t.promiseResolver(r.data);return}break;case o.TOKENIZE:if(r.type==u.SCRIPT_TOKENS){t.promiseResolver(r.data);return}break;case o.DROP_FILE:if(r.type==u.SUCCESS){t.promiseResolver(r.data);return}break;case o.COPY_FILE_TO_BUFFER:if(r.type==u.FILE_BUFFER){t.promiseResolver(r.data);return}break;case o.EXPORT_FILE_STATISTICS:if(r.type==u.FILE_STATISTICS){t.promiseResolver(r.data);return}break;case o.CONNECT:if(r.type==u.CONNECTION_INFO){t.promiseResolver(r.data);return}break;case o.RUN_PREPARED:case o.RUN_QUERY:if(r.type==u.QUERY_RESULT){t.promiseResolver(r.data);return}break;case o.SEND_PREPARED:case o.SEND_QUERY:if(r.type==u.QUERY_START){t.promiseResolver(r.data);return}break;case o.FETCH_QUERY_RESULTS:if(r.type==u.QUERY_RESULT_CHUNK){t.promiseResolver(r.data);return}break;case o.CREATE_PREPARED:if(r.type==u.PREPARED_STATEMENT_ID){t.promiseResolver(r.data);return}break}t.promiseRejecter(new Error(`unexpected response type: ${r.type.toString()}`))}onError(e){console.error(e),console.error(`error in duckdb worker: ${e.message}`),this._pendingRequests.clear()}onClose(){if(this._workerShutdownResolver(null),this._pendingRequests.size!=0){console.warn(`worker terminated with ${this._pendingRequests.size} pending requests`);return}this._pendingRequests.clear()}async reset(){let e=new m(o.RESET,null);return await this.postTask(e)}async ping(){let e=new m(o.PING,null);await this.postTask(e)}async dropFile(e){let r=new m(o.DROP_FILE,e);return await this.postTask(r)}async dropFiles(){let e=new m(o.DROP_FILES,null);return await this.postTask(e)}async flushFiles(){let e=new m(o.FLUSH_FILES,null);return await this.postTask(e)}async instantiate(e,r=null){let t=new m(o.INSTANTIATE,[e,r]);return await this.postTask(t)}async getVersion(){let e=new m(o.GET_VERSION,null);return await this.postTask(e)}async getFeatureFlags(){let e=new m(o.GET_FEATURE_FLAGS,null);return await this.postTask(e)}async open(e){let r=new m(o.OPEN,e);await this.postTask(r)}async tokenize(e){let r=new m(o.TOKENIZE,e);return await this.postTask(r)}async connectInternal(){let e=new m(o.CONNECT,null);return await this.postTask(e)}async connect(){let e=await this.connectInternal();return new B(this,e)}async disconnect(e){let r=new m(o.DISCONNECT,e);await this.postTask(r)}async runQuery(e,r){let t=new m(o.RUN_QUERY,[e,r]);return await this.postTask(t)}async sendQuery(e,r){let t=new m(o.SEND_QUERY,[e,r]);return await this.postTask(t)}async fetchQueryResults(e){let r=new m(o.FETCH_QUERY_RESULTS,e);return await this.postTask(r)}async createPrepared(e,r){let t=new m(o.CREATE_PREPARED,[e,r]);return await this.postTask(t)}async closePrepared(e,r){let t=new m(o.CLOSE_PREPARED,[e,r]);await this.postTask(t)}async runPrepared(e,r,t){let s=new m(o.RUN_PREPARED,[e,r,t]);return await this.postTask(s)}async sendPrepared(e,r,t){let s=new m(o.SEND_PREPARED,[e,r,t]);return await this.postTask(s)}async registerFileText(e,r){let t=ce.encode(r);await this.registerFileBuffer(e,t)}async registerFileURL(e,r){r===void 0&&(r=e);let t=new m(o.REGISTER_FILE_URL,[e,r]);await this.postTask(t)}async registerEmptyFileBuffer(e){let r=new m(o.REGISTER_FILE_BUFFER,[e,new Uint8Array]);await this.postTask(r)}async registerFileBuffer(e,r){let t=new m(o.REGISTER_FILE_BUFFER,[e,r]);await this.postTask(t,[r.buffer])}async registerFileHandle(e,r){let t=new m(o.REGISTER_FILE_HANDLE,[e,r]);await this.postTask(t,[])}async collectFileStatistics(e,r){let t=new m(o.COLLECT_FILE_STATISTICS,[e,r]);await this.postTask(t,[])}async exportFileStatistics(e){let r=new m(o.EXPORT_FILE_STATISTICS,e);return await this.postTask(r,[])}async copyFileToBuffer(e){let r=new m(o.COPY_FILE_TO_BUFFER,e);return await this.postTask(r)}async copyFileToPath(e,r){let t=new m(o.COPY_FILE_TO_PATH,[e,r]);await this.postTask(t)}async insertArrowFromIPCStream(e,r,t){let s=new m(o.INSERT_ARROW_FROM_IPC_STREAM,[e,r,t]);await this.postTask(s,[r.buffer])}async insertCSVFromPath(e,r,t){if(t.columns!==void 0){let i=[];for(let c in t.columns){let b=t.columns[c];i.push(I(c,b))}t.columnsFlat=i,delete t.columns}let s=new m(o.INSERT_CSV_FROM_PATH,[e,r,t]);await this.postTask(s)}async insertJSONFromPath(e,r,t){if(t.columns!==void 0){let i=[];for(let c in t.columns){let b=t.columns[c];i.push(I(c,b))}t.columnsFlat=i,delete t.columns}let s=new m(o.INSERT_JSON_FROM_PATH,[e,r,t]);await this.postTask(s)}};var le=class{constructor(){this._bindings=null;this._nextMessageId=0}log(e){this.postMessage({messageId:this._nextMessageId++,requestId:0,type:u.LOG,data:e},[])}sendOK(e){this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.OK,data:null},[])}failWith(e,r){let t={name:r.name,message:r.message,stack:r.stack||void 0};this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.ERROR,data:t},[])}async onMessage(e){switch(e.type){case o.PING:this.sendOK(e);return;case o.INSTANTIATE:this._bindings!=null&&this.failWith(e,new Error("duckdb already initialized"));try{this._bindings=await this.instantiate(e.data[0],e.data[1]),this.sendOK(e)}catch(r){this._bindings=null,this.failWith(e,r)}return;default:break}if(!this._bindings)return this.failWith(e,new Error("duckdb is not initialized"));try{switch(e.type){case o.GET_VERSION:this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.VERSION_STRING,data:this._bindings.getVersion()},[]);break;case o.GET_FEATURE_FLAGS:this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.FEATURE_FLAGS,data:this._bindings.getFeatureFlags()},[]);break;case o.RESET:this._bindings.reset(),this.sendOK(e);break;case o.OPEN:this._bindings.open(e.data),this.sendOK(e);break;case o.DROP_FILE:this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.SUCCESS,data:this._bindings.dropFile(e.data)},[]);break;case o.DROP_FILES:this._bindings.dropFiles(),this.sendOK(e);break;case o.FLUSH_FILES:this._bindings.flushFiles(),this.sendOK(e);break;case o.CONNECT:{let r=this._bindings.connect();this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.CONNECTION_INFO,data:r.useUnsafe((t,s)=>s)},[]);break}case o.DISCONNECT:this._bindings.disconnect(e.data),this.sendOK(e);break;case o.CREATE_PREPARED:{let r=this._bindings.createPrepared(e.data[0],e.data[1]);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.PREPARED_STATEMENT_ID,data:r},[]);break}case o.CLOSE_PREPARED:{this._bindings.closePrepared(e.data[0],e.data[1]),this.sendOK(e);break}case o.RUN_PREPARED:{let r=this._bindings.runPrepared(e.data[0],e.data[1],e.data[2]);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.QUERY_RESULT,data:r},[r.buffer]);break}case o.RUN_QUERY:{let r=this._bindings.runQuery(e.data[0],e.data[1]);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.QUERY_RESULT,data:r},[r.buffer]);break}case o.SEND_PREPARED:{let r=this._bindings.sendPrepared(e.data[0],e.data[1],e.data[2]);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.QUERY_START,data:r},[r.buffer]);break}case o.SEND_QUERY:{let r=this._bindings.sendQuery(e.data[0],e.data[1]);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.QUERY_START,data:r},[r.buffer]);break}case o.FETCH_QUERY_RESULTS:{let r=this._bindings.fetchQueryResults(e.data);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.QUERY_RESULT_CHUNK,data:r},[r.buffer]);break}case o.REGISTER_FILE_URL:this._bindings.registerFileURL(e.data[0],e.data[1]),this.sendOK(e);break;case o.REGISTER_FILE_BUFFER:this._bindings.registerFileBuffer(e.data[0],e.data[1]),this.sendOK(e);break;case o.REGISTER_FILE_HANDLE:this._bindings.registerFileHandle(e.data[0],e.data[1]),this.sendOK(e);break;case o.COPY_FILE_TO_PATH:this._bindings.copyFileToPath(e.data[0],e.data[1]),this.sendOK(e);break;case o.COPY_FILE_TO_BUFFER:{let r=this._bindings.copyFileToBuffer(e.data);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.FILE_BUFFER,data:r},[]);break}case o.COLLECT_FILE_STATISTICS:this._bindings.collectFileStatistics(e.data[0],e.data[1]),this.sendOK(e);break;case o.EXPORT_FILE_STATISTICS:{this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.FILE_STATISTICS,data:this._bindings.exportFileStatistics(e.data)},[]);break}case o.INSERT_ARROW_FROM_IPC_STREAM:{this._bindings.insertArrowFromIPCStream(e.data[0],e.data[1],e.data[2]),this.sendOK(e);break}case o.INSERT_CSV_FROM_PATH:{this._bindings.insertCSVFromPath(e.data[0],e.data[1],e.data[2]),this.sendOK(e);break}case o.INSERT_JSON_FROM_PATH:{this._bindings.insertJSONFromPath(e.data[0],e.data[1],e.data[2]),this.sendOK(e);break}case o.TOKENIZE:{let r=this._bindings.tokenize(e.data);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:u.SCRIPT_TOKENS,data:r},[]);break}}}catch(r){return this.failWith(e,r)}}};import{bulkMemory as Oe,exceptions as Pe,simd as Ae,threads as Fe}from"wasm-feature-detect";var ue="@duckdb/duckdb-wasm",me="0.1.11",pe="DuckDB powered by WebAssembly",_e="MPL-2.0",Ee={type:"git",url:"https://github.com/duckdb/duckdb-wasm.git"},be={"@apache-arrow/esnext-esm":"^6.0.0","wasm-feature-detect":"^1.2.11"},he={"@types/emscripten":"^1.39.4","@types/jasmine":"^3.10.1","@typescript-eslint/eslint-plugin":"^5.2.0","@typescript-eslint/parser":"^5.2.0",esbuild:"^0.13.10",eslint:"^8.1.0","eslint-plugin-jasmine":"^4.1.2","eslint-plugin-react":"^7.26.1",jasmine:"^3.10.0","jasmine-core":"^3.10.1","jasmine-spec-reporter":"^7.0.0",karma:"^6.3.6","karma-chrome-launcher":"^3.1.0","karma-coverage":"^2.0.3","karma-firefox-launcher":"^2.1.1","karma-jasmine":"^4.0.1","karma-jasmine-html-reporter":"^1.7.0","karma-sourcemap-loader":"^0.3.8","karma-spec-reporter":"^0.0.32","make-dir":"^3.1.0",nyc:"^15.1.0",prettier:"^2.4.1",puppeteer:"^10.4.0",rimraf:"^3.0.2",typedoc:"^0.22.7",typescript:"^4.4.4","web-worker":"^1.1.0"},Re={fsevents:"*"},ge={"build:debug":"node bundle.mjs debug && tsc --emitDeclarationOnly","build:release":"node bundle.mjs release && tsc --emitDeclarationOnly",docs:"typedoc",report:"node ./coverage.mjs","test:node":"node --enable-source-maps --experimental-wasm-eh ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.js","test:node:debug":"node --inspect-brk --enable-source-maps --experimental-wasm-eh ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.js","test:node:filter":'node --enable-source-maps --experimental-wasm-eh ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.js --filter="CSV"',"test:node:coverage":"nyc -r json --report-dir ./coverage/node node --experimental-wasm-eh ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.js","test:firefox":"karma start ./karma/tests-firefox.cjs","test:chrome":"karma start ./karma/tests-chrome.cjs","test:chrome:eh":"karma start ./karma/tests-chrome-eh.cjs","test:chrome:coverage":"karma start ./karma/tests-chrome-coverage.cjs","test:browsers":"karma start ./karma/tests-all.cjs","test:debug":"karma start ./karma/tests-debug.cjs",test:"npm run test:chrome && npm run test:node","test:coverage":"npm run test:chrome:coverage && npm run test:node:coverage && npm run report",lint:"eslint src test"},Te=["dist","!dist/types/test"],ye="./dist/duckdb-node-async.js",Se="./dist/duckdb-node-async.d.ts",Ie="./dist/duckdb-esm.js",fe={"./dist/duckdb-node-async.js":"./dist/duckdb-browser-async.js","temp-write":!1,worker_threads:!1,perf_hooks:!1,fs:!1,os:!1,path:!1,buffer:!1,crypto:!1},O={name:ue,version:me,description:pe,license:_e,repository:Ee,dependencies:be,devDependencies:he,optionalDependencies:Re,scripts:ge,files:Te,main:ye,types:Se,module:Ie,browser:fe};var $=O.name,X=O.version,M=O.version.split("."),Kr=M[0],jr=M[1],Jr=M[2];function D(n){let e=`importScripts("${n}");`;return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))}function Xr(){let n=`https://cdn.jsdelivr.net/npm/${$}@${X}/dist/`;return{asyncDefault:{mainModule:`${n}duckdb.wasm`,mainWorker:D(`${n}duckdb-browser-async.worker.js`)},asyncNext:{mainModule:`${n}duckdb-next.wasm`,mainWorker:D(`${n}duckdb-browser-async-next.worker.js`)},asyncNextCOI:{mainModule:`${n}duckdb-next-coi.wasm`,mainWorker:D(`${n}duckdb-browser-async-next-coi.worker.js`),pthreadWorker:D(`${n}duckdb-browser-async-next-coi.pthread.worker.js`)}}}var x=null,G=null,H=null,V=null,Y=null;function ke(){return typeof process!="undefined"&&process.release.name==="node"}async function we(){return x==null&&(x=typeof BigInt64Array!="undefined"),G==null&&(G=await Pe()),H==null&&(H=await Fe()),V==null&&(V=await Ae()),Y==null&&(Y=await Oe()),{bigInt64Array:x,crossOriginIsolated:ke()||globalThis.crossOriginIsolated||!1,wasmExceptions:G,wasmSIMD:V,wasmThreads:H,wasmBulkMemory:Y}}async function Zr(n){let e=await we();if(e.wasmExceptions&&e.wasmSIMD){if(e.wasmThreads&&e.crossOriginIsolated&&n.asyncNextCOI)return{mainModule:n.asyncNextCOI.mainModule,mainWorker:n.asyncNextCOI.mainWorker,pthreadWorker:n.asyncNextCOI.pthreadWorker};if(n.asyncNext)return{mainModule:n.asyncNext.mainModule,mainWorker:n.asyncNext.mainWorker,pthreadWorker:null}}return{mainModule:n.asyncDefault.mainModule,mainWorker:n.asyncDefault.mainWorker,pthreadWorker:null}}export{de as AsyncDuckDB,B as AsyncDuckDBConnection,le as AsyncDuckDBDispatcher,q as AsyncPreparedStatement,v as AsyncResultStreamIterator,oe as ConsoleLogger,Ve as DEFAULT_RUNTIME,se as DuckDBBindingsBase,N as DuckDBConnection,K as DuckDBDataProtocol,j as DuckDBFeature,L as FileStatistics,z as InsertMode,J as JSONTableShape,g as LogEvent,T as LogLevel,y as LogOrigin,S as LogTopic,$ as PACKAGE_NAME,X as PACKAGE_VERSION,Kr as PACKAGE_VERSION_MAJOR,jr as PACKAGE_VERSION_MINOR,Jr as PACKAGE_VERSION_PATCH,Q as PreparedStatement,C as ResultStreamIterator,p as StatusCode,ie as VoidLogger,o as WorkerRequestType,u as WorkerResponseType,m as WorkerTask,E as callSRet,w as copyBuffer,te as decodeText,h as dropResponseBuffers,He as failWith,Xr as getJsDelivrBundles,br as getLogEventLabel,Er as getLogLevelLabel,Rr as getLogOriginLabel,hr as getLogTopicLabel,we as getPlatformFeatures,_ as readString,Zr as selectBundle};
2
2
  //# sourceMappingURL=duckdb-esm.js.map