@duckdb/duckdb-wasm 0.0.41-dev394.0 → 0.0.41-dev399.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/duckdb-esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{AsyncByteQueue as z,RecordBatchReader as F,RecordBatchStreamWriter as q,Table as x}from"apache-arrow";var A=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}},C=class{constructor(e,r){this._bindings=e,this._conn=r}get handle(){return this._conn}close(){this._bindings.disconnect(this._conn)}runQuery(e){let r=this._bindings.runQuery(this._conn,e),t=F.from(r);return console.assert(t.isSync()),console.assert(t.isFile()),x.from(t)}sendQuery(e){let r=this._bindings.sendQuery(this._conn,e),t=new A(this._bindings,this._conn,r),i=F.from(t);return console.assert(i.isSync()),console.assert(i.isStream()),i}createPreparedStatement(e){return this._bindings.createPreparedStatement(this._conn,e)}closePreparedStatement(e){this._bindings.closePreparedStatement(this._conn,e)}runPreparedStatement(e,r){let t=this._bindings.runPreparedStatement(this._conn,e,r),i=F.from(t);return console.assert(i.isSync()),console.assert(i.isFile()),x.from(i)}sendPreparedStatement(e,r){let t=this._bindings.sendPreparedStatement(this._conn,e,r),i=new A(this._bindings,this._conn,t),s=F.from(i);return console.assert(s.isSync()),console.assert(s.isStream()),s}insertArrowFromIPCStream(e,r){this._bindings.insertArrowFromIPCStream(this._conn,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 i=new z,s=new q().reset(i,e);s.writeAll(r),s.close();let c=s.toUint8Array(!0);this._bindings.insertArrowFromIPCStream(this._conn,c,t)}insertCSVFromPath(e,r){this._bindings.insertCSVFromPath(this._conn,e,r)}insertJSONFromPath(e,r){this._bindings.insertJSONFromPath(this._conn,e,r)}};var p;(function(e){e[e.SUCCESS=0]="SUCCESS"})(p||(p={}));function $(){let n=new TextDecoder;return e=>(typeof SharedArrayBuffer!="undefined"&&e.buffer instanceof SharedArrayBuffer&&(e=new Uint8Array(e)),n.decode(e))}var Z=$();function Pe(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),i=new Uint8Array(new ArrayBuffer(t.byteLength));return i.set(t),i}function _(n,e,r){return Z(n.HEAPU8.subarray(e,e+r))}var G;(function(t){t[t.BUFFER=0]="BUFFER",t[t.NATIVE=1]="NATIVE",t[t.HTTP=3]="HTTP"})(G||(G={}));function E(n,e,r,t){let i=n.stackSave(),s=n.stackAlloc(3*8);r.unshift("number"),t.unshift(s),n.ccall(e,null,r,t);let c=n.HEAPF64[(s>>3)+0],b=n.HEAPF64[(s>>3)+1],k=n.HEAPF64[(s>>3)+2];return n.stackRestore(i),[c,b,k]}function h(n){n.ccall("duckdb_web_clear_response",null,[],[])}var De={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,i)=>0,writeFile:(n,e,r,t,i)=>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,i)=>{},checkFile:(n,e,r)=>!1,removeFile:(n,e,r)=>{}};var P=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 l}from"apache-arrow";function y(n,e){switch(e.typeId){case l.Binary:return{name:n,type:"binary"};case l.Bool:return{name:n,type:"bool"};case l.Date:return{name:n,type:"date"};case l.DateDay:return{name:n,type:"date32[d]"};case l.DateMillisecond:return{name:n,type:"date64[ms]"};case l.Decimal:{let r=e;return{name:n,type:"decimal",precision:r.precision,scale:r.scale}}case l.Float:return{name:n,type:"float"};case l.Float16:return{name:n,type:"float16"};case l.Float32:return{name:n,type:"float32"};case l.Float64:return{name:n,type:"float64"};case l.Int:return{name:n,type:"int32"};case l.Int16:return{name:n,type:"int16"};case l.Int32:return{name:n,type:"int32"};case l.Int64:return{name:n,type:"int64"};case l.Uint16:return{name:n,type:"uint16"};case l.Uint32:return{name:n,type:"uint32"};case l.Uint64:return{name:n,type:"uint64"};case l.Uint8:return{name:n,type:"uint8"};case l.IntervalDayTime:return{name:n,type:"interval[dt]"};case l.IntervalYearMonth:return{name:n,type:"interval[m]"};case l.List:{let r=e;return{name:n,type:"list",children:[y(r.valueField.name,r.valueField.type)]}}case l.FixedSizeBinary:return{name:n,type:"fixedsizebinary",byteWidth:e.byteWidth};case l.Null:return{name:n,type:"null"};case l.Utf8:return{name:n,type:"utf8"};case l.Struct:return{name:n,type:"struct",children:e.children.map(t=>y(t.name,t.type))};case l.Time:return{name:n,type:"time[s]"};case l.TimeMicrosecond:return{name:n,type:"time[us]"};case l.TimeMillisecond:return{name:n,type:"time[ms]"};case l.TimeNanosecond:return{name:n,type:"time[ns]"};case l.TimeSecond:return{name:n,type:"time[s]"};case l.Timestamp:return{name:n,type:"timestamp",timezone:e.timezone||void 0};case l.TimestampSecond:return{name:n,type:"timestamp[s]",timezone:e.timezone||void 0};case l.TimestampMicrosecond:return{name:n,type:"timestamp[us]",timezone:e.timezone||void 0};case l.TimestampNanosecond:return{name:n,type:"timestamp[ns]",timezone:e.timezone||void 0};case l.TimestampMillisecond:return{name:n,type:"timestamp[ms]",timezone:e.timezone||void 0}}throw new Error(`unsupported arrow type: ${e.toString()}`)}var X=new TextEncoder,H;(function(s){s[s.WASM_EXCEPTIONS=1]="WASM_EXCEPTIONS",s[s.WASM_THREADS=2]="WASM_THREADS",s[s.WASM_SIMD=4]="WASM_SIMD",s[s.WASM_BULK_MEMORY=8]="WASM_BULK_MEMORY",s[s.EMIT_BIGINT=16]="EMIT_BIGINT"})(H||(H={}));var ee=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,i]=E(this.mod,"duckdb_web_open",["string"],[JSON.stringify(e)]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,i));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 i=_(this.mod,r,t);return h(this.mod),i}getFeatureFlags(){return this.mod.ccall("duckdb_web_get_feature_flags","number",[],[])}tokenize(e){let[r,t,i]=E(this.mod,"duckdb_web_tokenize",["string"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,i));let s=_(this.mod,t,i);return h(this.mod),JSON.parse(s)}connect(){let e=this.mod.ccall("duckdb_web_connect","number",[],[]);return new C(this,e)}disconnect(e){this.mod.ccall("duckdb_web_disconnect",null,["number"],[e])}runQuery(e,r){let[t,i,s]=E(this.mod,"duckdb_web_query_run",["number","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s));let c=w(this.mod,i,s);return h(this.mod),c}sendQuery(e,r){let[t,i,s]=E(this.mod,"duckdb_web_query_send",["number","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s));let c=w(this.mod,i,s);return h(this.mod),c}fetchQueryResults(e){let[r,t,i]=E(this.mod,"duckdb_web_query_fetch_results",["number"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,i));let s=w(this.mod,t,i);return h(this.mod),s}createPreparedStatement(e,r){let[t,i,s]=E(this.mod,"duckdb_web_prepared_statement_create",["number","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s));return h(this.mod),i}closePreparedStatement(e,r){let[t,i,s]=E(this.mod,"duckdb_web_prepared_statement_close",["number","number"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s));h(this.mod)}runPreparedStatement(e,r,t){let[i,s,c]=E(this.mod,"duckdb_web_prepared_statement_run",["number","number","string"],[e,r,JSON.stringify(t)]);if(i!==p.SUCCESS)throw new Error(_(this.mod,s,c));let b=w(this.mod,s,c);return h(this.mod),b}sendPreparedStatement(e,r,t){let[i,s,c]=E(this.mod,"duckdb_web_prepared_statement_send",["number","number","string"],[e,r,JSON.stringify(t)]);if(i!==p.SUCCESS)throw new Error(_(this.mod,s,c));let b=w(this.mod,s,c);return h(this.mod),b}insertArrowFromIPCStream(e,r,t){let i=this.mod._malloc(r.length);this.mod.HEAPU8.subarray(i,i+r.length).set(r);let c=t?JSON.stringify(t):"",[b,k,f]=E(this.mod,"duckdb_web_insert_arrow_from_ipc_stream",["number","number","number","string"],[e,i,r.length,c]);if(b!==p.SUCCESS)throw new Error(_(this.mod,k,f))}insertCSVFromPath(e,r,t){if(t.columns!==void 0){t.columnsFlat=[];for(let f in t.columns)t.columnsFlat.push(y(f,t.columns[f]))}let i={...t};i.columns=i.columnsFlat,delete i.columnsFlat;let s=JSON.stringify(i),[c,b,k]=E(this.mod,"duckdb_web_insert_csv_from_path",["number","string","string"],[e,r,s]);if(c!==p.SUCCESS)throw new Error(_(this.mod,b,k))}insertJSONFromPath(e,r,t){if(t.columns!==void 0){t.columnsFlat=[];for(let f in t.columns)t.columnsFlat.push(y(f,t.columns[f]))}let i={...t};i.columns=i.columnsFlat,delete i.columnsFlat;let s=JSON.stringify(i),[c,b,k]=E(this.mod,"duckdb_web_insert_json_from_path",["number","string","string"],[e,r,s]);if(c!==p.SUCCESS)throw new Error(_(this.mod,b,k))}finishInsert(e,r){}registerFileURL(e,r){r===void 0&&(r=e);let[t,i,s]=E(this.mod,"duckdb_web_fs_register_file_url",["string","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s));h(this.mod)}registerFileText(e,r){let t=X.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[s,c,b]=E(this.mod,"duckdb_web_fs_register_file_buffer",["string","number","number"],[e,t,r.length]);if(s!==p.SUCCESS)throw new Error(_(this.mod,c,b));h(this.mod)}registerFileHandle(e,r){let[t,i,s]=E(this.mod,"duckdb_web_fs_register_file_url",["string","string"],[e,e]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s));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,i,s]=E(this.mod,"duckdb_web_copy_file_to_path",["string","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s));h(this.mod)}copyFileToBuffer(e){let[r,t,i]=E(this.mod,"duckdb_web_copy_file_to_buffer",["string"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,i));let s=this.mod.HEAPU8.subarray(t,t+i),c=new Uint8Array(s.length);return c.set(s),h(this.mod),c}collectFileStatistics(e,r){let[t,i,s]=E(this.mod,"duckdb_web_collect_file_stats",["string","boolean"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s))}exportFileStatistics(e){let[r,t,i]=E(this.mod,"duckdb_web_export_file_stats",["string"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,i));return new P(this.mod.HEAPU8.subarray(t,t+i))}};var V;(function(r){r.ROW_ARRAY="row-array",r.COLUMN_OBJECT="column-object"})(V||(V={}));var Q;(function(r){r[r.APPEND=0]="APPEND",r[r.IMPORT=1]="IMPORT"})(Q||(Q={}));var R;(function(s){s[s.NONE=0]="NONE",s[s.DEBUG=1]="DEBUG",s[s.INFO=2]="INFO",s[s.WARNING=3]="WARNING",s[s.ERROR=4]="ERROR"})(R||(R={}));var I;(function(s){s[s.NONE=0]="NONE",s[s.CONNECT=1]="CONNECT",s[s.DISCONNECT=2]="DISCONNECT",s[s.OPEN=3]="OPEN",s[s.QUERY=4]="QUERY"})(I||(I={}));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 S;(function(s){s[s.NONE=0]="NONE",s[s.WEB_WORKER=1]="WEB_WORKER",s[s.NODE_WORKER=2]="NODE_WORKER",s[s.BINDINGS=3]="BINDINGS",s[s.ASYNC_DUCKDB=4]="ASYNC_DUCKDB"})(S||(S={}));var re=class{log(e){}},te=class{log(e){console.log(e)}};function sr(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 ir(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 or(n){switch(n){case 1:return"CONNECT";case 2:return"DISCONNECT";case 3:return"OPEN";case 4:return"QUERY";default:return"?"}}function ar(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{AsyncByteQueue as se,RecordBatchReader as K,RecordBatchStreamWriter as ie,Table as ne}from"apache-arrow";var Y=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}},D=class{constructor(e,r){this._instance=e,this._conn=r}get instance(){return this._instance}async close(){return this._instance.disconnect(this._conn)}async runQuery(e){this._instance.logger.log({timestamp:new Date,level:R.INFO,origin:S.ASYNC_DUCKDB,topic:I.QUERY,event:g.RUN,value:e});let r=await this._instance.runQuery(this._conn,e),t=K.from(r);return console.assert(t.isSync()),console.assert(t.isFile()),ne.from(t)}async sendQuery(e){this._instance.logger.log({timestamp:new Date,level:R.INFO,origin:S.ASYNC_DUCKDB,topic:I.QUERY,event:g.RUN,value:e});let r=await this._instance.sendQuery(this._conn,e),t=new Y(this._instance,this._conn,r),i=await K.from(t);return console.assert(i.isAsync()),console.assert(i.isStream()),i}async insertArrowFromIPCStream(e,r){await this._instance.insertArrowFromIPCStream(this._conn,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 i=new se,s=new ie().reset(i,e);s.writeAll(r),s.close();let c=s.toUint8Array(!0);await this._instance.insertArrowFromIPCStream(this._conn,c,t)}async insertCSVFromPath(e,r){await this._instance.insertCSVFromPath(this._conn,e,r)}async insertJSONFromPath(e,r){await this._instance.insertJSONFromPath(this._conn,e,r)}};var o;(function(a){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.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_QUERY="RUN_QUERY",a.SEND_QUERY="SEND_QUERY",a.TOKENIZE="TOKENIZE"})(o||(o={}));var u;(function(d){d.CONNECTION_INFO="CONNECTION_INFO",d.ERROR="ERROR",d.FEATURE_FLAGS="FEATURE_FLAGS",d.FILE_BUFFER="FILE_BUFFER",d.FILE_SIZE="FILE_SIZE",d.FILE_STATISTICS="FILE_STATISTICS",d.LOG="LOG",d.OK="OK",d.QUERY_PLAN="QUERY_PLAN",d.QUERY_RESULT="QUERY_RESULT",d.QUERY_RESULT_CHUNK="QUERY_RESULT_CHUNK",d.QUERY_START="QUERY_START",d.REGISTERED_FILE="REGISTERED_FILE",d.SCRIPT_TOKENS="SCRIPT_TOKENS",d.SUCCESS="SUCCESS",d.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,i)=>{this.promiseResolver=t,this.promiseRejecter=i})}};var oe=new TextEncoder,ae=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 i=new Error(r.data.message);i.name=r.data.name,i.stack=r.data.stack,t.promiseRejecter(i);return}switch(t.type){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_QUERY:if(r.type==u.QUERY_RESULT){t.promiseResolver(r.data);return}break;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}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 D(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 registerFileText(e,r){let t=oe.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 i=new m(o.INSERT_ARROW_FROM_IPC_STREAM,[e,r,t]);await this.postTask(i,[r.buffer])}async insertCSVFromPath(e,r,t){if(t.columns!==void 0){let s=[];for(let c in t.columns){let b=t.columns[c];s.push(y(c,b))}t.columnsFlat=s,delete t.columns}let i=new m(o.INSERT_CSV_FROM_PATH,[e,r,t]);await this.postTask(i)}async insertJSONFromPath(e,r,t){if(t.columns!==void 0){let s=[];for(let c in t.columns){let b=t.columns[c];s.push(y(c,b))}t.columnsFlat=s,delete t.columns}let i=new m(o.INSERT_JSON_FROM_PATH,[e,r,t]);await this.postTask(i)}};var ce=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.handle},[]);break}case o.DISCONNECT:this._bindings.disconnect(e.data),this.sendOK(e);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_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 fe,simd as Fe,threads as we}from"wasm-feature-detect";var le="@duckdb/duckdb-wasm",de="0.0.41-dev394.0",ue="DuckDB powered by WebAssembly",me={type:"git",url:"https://github.com/duckdb/duckdb-wasm.git"},pe="MIT",_e={"apache-arrow":"^4.0.0","wasm-feature-detect":"^1.2.11"},Ee={"@types/emscripten":"^1.39.4","@types/jasmine":"^3.10.1","@typescript-eslint/eslint-plugin":"^4.33.0","@typescript-eslint/parser":"^4.33.0",esbuild:"^0.13.9",eslint:"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-jasmine":"^4.1.2","eslint-plugin-prettier":"^4.0.0","eslint-plugin-react":"^7.26.1",jasmine:"^3.10.0","jasmine-core":"^3.10.1","jasmine-spec-reporter":"^7.0.0",karma:"^6.3.5","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"},be={fsevents:"*"},he={"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 types"},Te=["dist","!dist/types/test"],ge="./dist/duckdb-node-async.js",Re="./dist/duckdb-node-async.d.ts",Se="./dist/duckdb-esm.js",Ie={"./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:le,version:de,description:ue,repository:me,license:pe,dependencies:_e,devDependencies:Ee,optionalDependencies:be,scripts:he,files:Te,main:ge,types:Re,module:Se,browser:Ie};var j=O.name,J=O.version,U=O.version.split("."),Dr=U[0],Ur=U[1],Lr=U[2];function N(n){let e=`importScripts("${n}");`;return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))}function Wr(){let n=`https://cdn.jsdelivr.net/npm/${j}@${J}/dist/`;return{asyncDefault:{mainModule:`${n}duckdb.wasm`,mainWorker:N(`${n}duckdb-browser-async.worker.js`)},asyncNext:{mainModule:`${n}duckdb-next.wasm`,mainWorker:N(`${n}duckdb-browser-async-next.worker.js`)},asyncNextCOI:{mainModule:`${n}duckdb-next-coi.wasm`,mainWorker:N(`${n}duckdb-browser-async-next-coi.worker.js`),pthreadWorker:N(`${n}duckdb-browser-async-next-coi.pthread.worker.js`)}}}var L=null,v=null,B=null,M=null,W=null;function ye(){return typeof process!="undefined"&&process.release.name==="node"}async function ke(){return L==null&&(L=typeof BigInt64Array!="undefined"),v==null&&(v=await fe()),B==null&&(B=await we()),M==null&&(M=await Fe()),W==null&&(W=await Oe()),{bigInt64Array:L,crossOriginIsolated:ye()||globalThis.crossOriginIsolated||!1,wasmExceptions:v,wasmSIMD:M,wasmThreads:B,wasmBulkMemory:W}}async function xr(n){let e=await ke();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{ae as AsyncDuckDB,D as AsyncDuckDBConnection,ce as AsyncDuckDBDispatcher,te as ConsoleLogger,De as DEFAULT_RUNTIME,ee as DuckDBBindings,C as DuckDBConnection,G as DuckDBDataProtocol,H as DuckDBFeature,P as FileStatistics,Q as InsertMode,V as JSONTableShape,g as LogEvent,R as LogLevel,S as LogOrigin,I as LogTopic,j as PACKAGE_NAME,J as PACKAGE_VERSION,Dr as PACKAGE_VERSION_MAJOR,Ur as PACKAGE_VERSION_MINOR,Lr as PACKAGE_VERSION_PATCH,p as StatusCode,re as VoidLogger,o as WorkerRequestType,u as WorkerResponseType,m as WorkerTask,E as callSRet,w as copyBuffer,Z as decodeText,h as dropResponseBuffers,Pe as failWith,Wr as getJsDelivrBundles,ir as getLogEventLabel,sr as getLogLevelLabel,ar as getLogOriginLabel,or as getLogTopicLabel,ke as getPlatformFeatures,_ as readString,xr as selectBundle};
|
|
1
|
+
import{AsyncByteQueue as z,RecordBatchReader as F,RecordBatchStreamWriter as q,Table as x}from"apache-arrow";var A=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}},C=class{constructor(e,r){this._bindings=e,this._conn=r}get handle(){return this._conn}close(){this._bindings.disconnect(this._conn)}runQuery(e){let r=this._bindings.runQuery(this._conn,e),t=F.from(r);return console.assert(t.isSync()),console.assert(t.isFile()),x.from(t)}sendQuery(e){let r=this._bindings.sendQuery(this._conn,e),t=new A(this._bindings,this._conn,r),i=F.from(t);return console.assert(i.isSync()),console.assert(i.isStream()),i}createPreparedStatement(e){return this._bindings.createPreparedStatement(this._conn,e)}closePreparedStatement(e){this._bindings.closePreparedStatement(this._conn,e)}runPreparedStatement(e,r){let t=this._bindings.runPreparedStatement(this._conn,e,r),i=F.from(t);return console.assert(i.isSync()),console.assert(i.isFile()),x.from(i)}sendPreparedStatement(e,r){let t=this._bindings.sendPreparedStatement(this._conn,e,r),i=new A(this._bindings,this._conn,t),s=F.from(i);return console.assert(s.isSync()),console.assert(s.isStream()),s}insertArrowFromIPCStream(e,r){this._bindings.insertArrowFromIPCStream(this._conn,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 i=new z,s=new q().reset(i,e);s.writeAll(r),s.close();let c=s.toUint8Array(!0);this._bindings.insertArrowFromIPCStream(this._conn,c,t)}insertCSVFromPath(e,r){this._bindings.insertCSVFromPath(this._conn,e,r)}insertJSONFromPath(e,r){this._bindings.insertJSONFromPath(this._conn,e,r)}};var p;(function(e){e[e.SUCCESS=0]="SUCCESS"})(p||(p={}));function $(){let n=new TextDecoder;return e=>(typeof SharedArrayBuffer!="undefined"&&e.buffer instanceof SharedArrayBuffer&&(e=new Uint8Array(e)),n.decode(e))}var Z=$();function Pe(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),i=new Uint8Array(new ArrayBuffer(t.byteLength));return i.set(t),i}function _(n,e,r){return Z(n.HEAPU8.subarray(e,e+r))}var G;(function(t){t[t.BUFFER=0]="BUFFER",t[t.NATIVE=1]="NATIVE",t[t.HTTP=3]="HTTP"})(G||(G={}));function E(n,e,r,t){let i=n.stackSave(),s=n.stackAlloc(3*8);r.unshift("number"),t.unshift(s),n.ccall(e,null,r,t);let c=n.HEAPF64[(s>>3)+0],b=n.HEAPF64[(s>>3)+1],k=n.HEAPF64[(s>>3)+2];return n.stackRestore(i),[c,b,k]}function h(n){n.ccall("duckdb_web_clear_response",null,[],[])}var De={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,i)=>0,writeFile:(n,e,r,t,i)=>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,i)=>{},checkFile:(n,e,r)=>!1,removeFile:(n,e,r)=>{}};var P=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 l}from"apache-arrow";function y(n,e){switch(e.typeId){case l.Binary:return{name:n,type:"binary"};case l.Bool:return{name:n,type:"bool"};case l.Date:return{name:n,type:"date"};case l.DateDay:return{name:n,type:"date32[d]"};case l.DateMillisecond:return{name:n,type:"date64[ms]"};case l.Decimal:{let r=e;return{name:n,type:"decimal",precision:r.precision,scale:r.scale}}case l.Float:return{name:n,type:"float"};case l.Float16:return{name:n,type:"float16"};case l.Float32:return{name:n,type:"float32"};case l.Float64:return{name:n,type:"float64"};case l.Int:return{name:n,type:"int32"};case l.Int16:return{name:n,type:"int16"};case l.Int32:return{name:n,type:"int32"};case l.Int64:return{name:n,type:"int64"};case l.Uint16:return{name:n,type:"uint16"};case l.Uint32:return{name:n,type:"uint32"};case l.Uint64:return{name:n,type:"uint64"};case l.Uint8:return{name:n,type:"uint8"};case l.IntervalDayTime:return{name:n,type:"interval[dt]"};case l.IntervalYearMonth:return{name:n,type:"interval[m]"};case l.List:{let r=e;return{name:n,type:"list",children:[y(r.valueField.name,r.valueField.type)]}}case l.FixedSizeBinary:return{name:n,type:"fixedsizebinary",byteWidth:e.byteWidth};case l.Null:return{name:n,type:"null"};case l.Utf8:return{name:n,type:"utf8"};case l.Struct:return{name:n,type:"struct",children:e.children.map(t=>y(t.name,t.type))};case l.Time:return{name:n,type:"time[s]"};case l.TimeMicrosecond:return{name:n,type:"time[us]"};case l.TimeMillisecond:return{name:n,type:"time[ms]"};case l.TimeNanosecond:return{name:n,type:"time[ns]"};case l.TimeSecond:return{name:n,type:"time[s]"};case l.Timestamp:return{name:n,type:"timestamp",timezone:e.timezone||void 0};case l.TimestampSecond:return{name:n,type:"timestamp[s]",timezone:e.timezone||void 0};case l.TimestampMicrosecond:return{name:n,type:"timestamp[us]",timezone:e.timezone||void 0};case l.TimestampNanosecond:return{name:n,type:"timestamp[ns]",timezone:e.timezone||void 0};case l.TimestampMillisecond:return{name:n,type:"timestamp[ms]",timezone:e.timezone||void 0}}throw new Error(`unsupported arrow type: ${e.toString()}`)}var X=new TextEncoder,H;(function(s){s[s.WASM_EXCEPTIONS=1]="WASM_EXCEPTIONS",s[s.WASM_THREADS=2]="WASM_THREADS",s[s.WASM_SIMD=4]="WASM_SIMD",s[s.WASM_BULK_MEMORY=8]="WASM_BULK_MEMORY",s[s.EMIT_BIGINT=16]="EMIT_BIGINT"})(H||(H={}));var ee=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,i]=E(this.mod,"duckdb_web_open",["string"],[JSON.stringify(e)]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,i));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 i=_(this.mod,r,t);return h(this.mod),i}getFeatureFlags(){return this.mod.ccall("duckdb_web_get_feature_flags","number",[],[])}tokenize(e){let[r,t,i]=E(this.mod,"duckdb_web_tokenize",["string"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,i));let s=_(this.mod,t,i);return h(this.mod),JSON.parse(s)}connect(){let e=this.mod.ccall("duckdb_web_connect","number",[],[]);return new C(this,e)}disconnect(e){this.mod.ccall("duckdb_web_disconnect",null,["number"],[e])}runQuery(e,r){let[t,i,s]=E(this.mod,"duckdb_web_query_run",["number","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s));let c=w(this.mod,i,s);return h(this.mod),c}sendQuery(e,r){let[t,i,s]=E(this.mod,"duckdb_web_query_send",["number","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s));let c=w(this.mod,i,s);return h(this.mod),c}fetchQueryResults(e){let[r,t,i]=E(this.mod,"duckdb_web_query_fetch_results",["number"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,i));let s=w(this.mod,t,i);return h(this.mod),s}createPreparedStatement(e,r){let[t,i,s]=E(this.mod,"duckdb_web_prepared_statement_create",["number","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s));return h(this.mod),i}closePreparedStatement(e,r){let[t,i,s]=E(this.mod,"duckdb_web_prepared_statement_close",["number","number"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s));h(this.mod)}runPreparedStatement(e,r,t){let[i,s,c]=E(this.mod,"duckdb_web_prepared_statement_run",["number","number","string"],[e,r,JSON.stringify(t)]);if(i!==p.SUCCESS)throw new Error(_(this.mod,s,c));let b=w(this.mod,s,c);return h(this.mod),b}sendPreparedStatement(e,r,t){let[i,s,c]=E(this.mod,"duckdb_web_prepared_statement_send",["number","number","string"],[e,r,JSON.stringify(t)]);if(i!==p.SUCCESS)throw new Error(_(this.mod,s,c));let b=w(this.mod,s,c);return h(this.mod),b}insertArrowFromIPCStream(e,r,t){let i=this.mod._malloc(r.length);this.mod.HEAPU8.subarray(i,i+r.length).set(r);let c=t?JSON.stringify(t):"",[b,k,f]=E(this.mod,"duckdb_web_insert_arrow_from_ipc_stream",["number","number","number","string"],[e,i,r.length,c]);if(b!==p.SUCCESS)throw new Error(_(this.mod,k,f))}insertCSVFromPath(e,r,t){if(t.columns!==void 0){t.columnsFlat=[];for(let f in t.columns)t.columnsFlat.push(y(f,t.columns[f]))}let i={...t};i.columns=i.columnsFlat,delete i.columnsFlat;let s=JSON.stringify(i),[c,b,k]=E(this.mod,"duckdb_web_insert_csv_from_path",["number","string","string"],[e,r,s]);if(c!==p.SUCCESS)throw new Error(_(this.mod,b,k))}insertJSONFromPath(e,r,t){if(t.columns!==void 0){t.columnsFlat=[];for(let f in t.columns)t.columnsFlat.push(y(f,t.columns[f]))}let i={...t};i.columns=i.columnsFlat,delete i.columnsFlat;let s=JSON.stringify(i),[c,b,k]=E(this.mod,"duckdb_web_insert_json_from_path",["number","string","string"],[e,r,s]);if(c!==p.SUCCESS)throw new Error(_(this.mod,b,k))}finishInsert(e,r){}registerFileURL(e,r){r===void 0&&(r=e);let[t,i,s]=E(this.mod,"duckdb_web_fs_register_file_url",["string","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s));h(this.mod)}registerFileText(e,r){let t=X.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[s,c,b]=E(this.mod,"duckdb_web_fs_register_file_buffer",["string","number","number"],[e,t,r.length]);if(s!==p.SUCCESS)throw new Error(_(this.mod,c,b));h(this.mod)}registerFileHandle(e,r){let[t,i,s]=E(this.mod,"duckdb_web_fs_register_file_url",["string","string"],[e,e]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s));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,i,s]=E(this.mod,"duckdb_web_copy_file_to_path",["string","string"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s));h(this.mod)}copyFileToBuffer(e){let[r,t,i]=E(this.mod,"duckdb_web_copy_file_to_buffer",["string"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,i));let s=this.mod.HEAPU8.subarray(t,t+i),c=new Uint8Array(s.length);return c.set(s),h(this.mod),c}collectFileStatistics(e,r){let[t,i,s]=E(this.mod,"duckdb_web_collect_file_stats",["string","boolean"],[e,r]);if(t!==p.SUCCESS)throw new Error(_(this.mod,i,s))}exportFileStatistics(e){let[r,t,i]=E(this.mod,"duckdb_web_export_file_stats",["string"],[e]);if(r!==p.SUCCESS)throw new Error(_(this.mod,t,i));return new P(this.mod.HEAPU8.subarray(t,t+i))}};var V;(function(r){r.ROW_ARRAY="row-array",r.COLUMN_OBJECT="column-object"})(V||(V={}));var Q;(function(r){r[r.APPEND=0]="APPEND",r[r.IMPORT=1]="IMPORT"})(Q||(Q={}));var R;(function(s){s[s.NONE=0]="NONE",s[s.DEBUG=1]="DEBUG",s[s.INFO=2]="INFO",s[s.WARNING=3]="WARNING",s[s.ERROR=4]="ERROR"})(R||(R={}));var I;(function(s){s[s.NONE=0]="NONE",s[s.CONNECT=1]="CONNECT",s[s.DISCONNECT=2]="DISCONNECT",s[s.OPEN=3]="OPEN",s[s.QUERY=4]="QUERY"})(I||(I={}));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 S;(function(s){s[s.NONE=0]="NONE",s[s.WEB_WORKER=1]="WEB_WORKER",s[s.NODE_WORKER=2]="NODE_WORKER",s[s.BINDINGS=3]="BINDINGS",s[s.ASYNC_DUCKDB=4]="ASYNC_DUCKDB"})(S||(S={}));var re=class{log(e){}},te=class{log(e){console.log(e)}};function sr(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 ir(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 or(n){switch(n){case 1:return"CONNECT";case 2:return"DISCONNECT";case 3:return"OPEN";case 4:return"QUERY";default:return"?"}}function ar(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{AsyncByteQueue as se,RecordBatchReader as K,RecordBatchStreamWriter as ie,Table as ne}from"apache-arrow";var Y=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}},D=class{constructor(e,r){this._instance=e,this._conn=r}get instance(){return this._instance}async close(){return this._instance.disconnect(this._conn)}async runQuery(e){this._instance.logger.log({timestamp:new Date,level:R.INFO,origin:S.ASYNC_DUCKDB,topic:I.QUERY,event:g.RUN,value:e});let r=await this._instance.runQuery(this._conn,e),t=K.from(r);return console.assert(t.isSync()),console.assert(t.isFile()),ne.from(t)}async sendQuery(e){this._instance.logger.log({timestamp:new Date,level:R.INFO,origin:S.ASYNC_DUCKDB,topic:I.QUERY,event:g.RUN,value:e});let r=await this._instance.sendQuery(this._conn,e),t=new Y(this._instance,this._conn,r),i=await K.from(t);return console.assert(i.isAsync()),console.assert(i.isStream()),i}async insertArrowFromIPCStream(e,r){await this._instance.insertArrowFromIPCStream(this._conn,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 i=new se,s=new ie().reset(i,e);s.writeAll(r),s.close();let c=s.toUint8Array(!0);await this._instance.insertArrowFromIPCStream(this._conn,c,t)}async insertCSVFromPath(e,r){await this._instance.insertCSVFromPath(this._conn,e,r)}async insertJSONFromPath(e,r){await this._instance.insertJSONFromPath(this._conn,e,r)}};var o;(function(a){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.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_QUERY="RUN_QUERY",a.SEND_QUERY="SEND_QUERY",a.TOKENIZE="TOKENIZE"})(o||(o={}));var u;(function(d){d.CONNECTION_INFO="CONNECTION_INFO",d.ERROR="ERROR",d.FEATURE_FLAGS="FEATURE_FLAGS",d.FILE_BUFFER="FILE_BUFFER",d.FILE_SIZE="FILE_SIZE",d.FILE_STATISTICS="FILE_STATISTICS",d.LOG="LOG",d.OK="OK",d.QUERY_PLAN="QUERY_PLAN",d.QUERY_RESULT="QUERY_RESULT",d.QUERY_RESULT_CHUNK="QUERY_RESULT_CHUNK",d.QUERY_START="QUERY_START",d.REGISTERED_FILE="REGISTERED_FILE",d.SCRIPT_TOKENS="SCRIPT_TOKENS",d.SUCCESS="SUCCESS",d.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,i)=>{this.promiseResolver=t,this.promiseRejecter=i})}};var oe=new TextEncoder,ae=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 i=new Error(r.data.message);i.name=r.data.name,i.stack=r.data.stack,t.promiseRejecter(i);return}switch(t.type){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_QUERY:if(r.type==u.QUERY_RESULT){t.promiseResolver(r.data);return}break;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}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 D(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 registerFileText(e,r){let t=oe.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 i=new m(o.INSERT_ARROW_FROM_IPC_STREAM,[e,r,t]);await this.postTask(i,[r.buffer])}async insertCSVFromPath(e,r,t){if(t.columns!==void 0){let s=[];for(let c in t.columns){let b=t.columns[c];s.push(y(c,b))}t.columnsFlat=s,delete t.columns}let i=new m(o.INSERT_CSV_FROM_PATH,[e,r,t]);await this.postTask(i)}async insertJSONFromPath(e,r,t){if(t.columns!==void 0){let s=[];for(let c in t.columns){let b=t.columns[c];s.push(y(c,b))}t.columnsFlat=s,delete t.columns}let i=new m(o.INSERT_JSON_FROM_PATH,[e,r,t]);await this.postTask(i)}};var ce=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.handle},[]);break}case o.DISCONNECT:this._bindings.disconnect(e.data),this.sendOK(e);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_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 fe,simd as Fe,threads as we}from"wasm-feature-detect";var le="@duckdb/duckdb-wasm",de="0.0.41-dev399.0",ue="DuckDB powered by WebAssembly",me={type:"git",url:"https://github.com/duckdb/duckdb-wasm.git"},pe="MIT",_e={"apache-arrow":"^4.0.0","wasm-feature-detect":"^1.2.11"},Ee={"@types/emscripten":"^1.39.4","@types/jasmine":"^3.10.1","@typescript-eslint/eslint-plugin":"^4.33.0","@typescript-eslint/parser":"^4.33.0",esbuild:"^0.13.9",eslint:"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-jasmine":"^4.1.2","eslint-plugin-prettier":"^4.0.0","eslint-plugin-react":"^7.26.1",jasmine:"^3.10.0","jasmine-core":"^3.10.1","jasmine-spec-reporter":"^7.0.0",karma:"^6.3.5","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"},be={fsevents:"*"},he={"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 types"},Te=["dist","!dist/types/test"],ge="./dist/duckdb-node-async.js",Re="./dist/duckdb-node-async.d.ts",Se="./dist/duckdb-esm.js",Ie={"./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:le,version:de,description:ue,repository:me,license:pe,dependencies:_e,devDependencies:Ee,optionalDependencies:be,scripts:he,files:Te,main:ge,types:Re,module:Se,browser:Ie};var j=O.name,J=O.version,U=O.version.split("."),Dr=U[0],Ur=U[1],Lr=U[2];function N(n){let e=`importScripts("${n}");`;return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))}function Wr(){let n=`https://cdn.jsdelivr.net/npm/${j}@${J}/dist/`;return{asyncDefault:{mainModule:`${n}duckdb.wasm`,mainWorker:N(`${n}duckdb-browser-async.worker.js`)},asyncNext:{mainModule:`${n}duckdb-next.wasm`,mainWorker:N(`${n}duckdb-browser-async-next.worker.js`)},asyncNextCOI:{mainModule:`${n}duckdb-next-coi.wasm`,mainWorker:N(`${n}duckdb-browser-async-next-coi.worker.js`),pthreadWorker:N(`${n}duckdb-browser-async-next-coi.pthread.worker.js`)}}}var L=null,v=null,B=null,M=null,W=null;function ye(){return typeof process!="undefined"&&process.release.name==="node"}async function ke(){return L==null&&(L=typeof BigInt64Array!="undefined"),v==null&&(v=await fe()),B==null&&(B=await we()),M==null&&(M=await Fe()),W==null&&(W=await Oe()),{bigInt64Array:L,crossOriginIsolated:ye()||globalThis.crossOriginIsolated||!1,wasmExceptions:v,wasmSIMD:M,wasmThreads:B,wasmBulkMemory:W}}async function xr(n){let e=await ke();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{ae as AsyncDuckDB,D as AsyncDuckDBConnection,ce as AsyncDuckDBDispatcher,te as ConsoleLogger,De as DEFAULT_RUNTIME,ee as DuckDBBindings,C as DuckDBConnection,G as DuckDBDataProtocol,H as DuckDBFeature,P as FileStatistics,Q as InsertMode,V as JSONTableShape,g as LogEvent,R as LogLevel,S as LogOrigin,I as LogTopic,j as PACKAGE_NAME,J as PACKAGE_VERSION,Dr as PACKAGE_VERSION_MAJOR,Ur as PACKAGE_VERSION_MINOR,Lr as PACKAGE_VERSION_PATCH,p as StatusCode,re as VoidLogger,o as WorkerRequestType,u as WorkerResponseType,m as WorkerTask,E as callSRet,w as copyBuffer,Z as decodeText,h as dropResponseBuffers,Pe as failWith,Wr as getJsDelivrBundles,ir as getLogEventLabel,sr as getLogLevelLabel,ar as getLogOriginLabel,or as getLogTopicLabel,ke as getPlatformFeatures,_ as readString,xr as selectBundle};
|
|
2
2
|
//# sourceMappingURL=duckdb-esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var Y=Object.create;var y=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var U=t=>y(t,"__esModule",{value:!0});var q=(t,e)=>{U(t);for(var r in e)y(t,r,{get:e[r],enumerable:!0})},J=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Q(e))!j.call(t,n)&&n!=="default"&&y(t,n,{get:()=>e[n],enumerable:!(r=V(e,n))||r.enumerable});return t},F=t=>J(U(y(t!=null?Y(K(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);q(exports,{AsyncDuckDB:()=>M,AsyncDuckDBConnection:()=>k,AsyncDuckDBDispatcher:()=>x,ConsoleLogger:()=>W,LogEvent:()=>T,LogLevel:()=>_,LogOrigin:()=>R,LogTopic:()=>m,StatusCode:()=>w,VoidLogger:()=>D,WorkerRequestType:()=>s,WorkerResponseType:()=>l,WorkerTask:()=>d,getJsDelivrBundles:()=>_e,getLogEventLabel:()=>$,getLogLevelLabel:()=>z,getLogOriginLabel:()=>X,getLogTopicLabel:()=>Z,getPlatformFeatures:()=>H,selectBundle:()=>me});var _;(function(o){o[o.NONE=0]="NONE",o[o.DEBUG=1]="DEBUG",o[o.INFO=2]="INFO",o[o.WARNING=3]="WARNING",o[o.ERROR=4]="ERROR"})(_||(_={}));var m;(function(o){o[o.NONE=0]="NONE",o[o.CONNECT=1]="CONNECT",o[o.DISCONNECT=2]="DISCONNECT",o[o.OPEN=3]="OPEN",o[o.QUERY=4]="QUERY"})(m||(m={}));var T;(function(u){u[u.NONE=0]="NONE",u[u.OK=1]="OK",u[u.ERROR=2]="ERROR",u[u.START=3]="START",u[u.RUN=4]="RUN",u[u.CAPTURE=5]="CAPTURE"})(T||(T={}));var R;(function(o){o[o.NONE=0]="NONE",o[o.WEB_WORKER=1]="WEB_WORKER",o[o.NODE_WORKER=2]="NODE_WORKER",o[o.BINDINGS=3]="BINDINGS",o[o.ASYNC_DUCKDB=4]="ASYNC_DUCKDB"})(R||(R={}));var D=class{log(e){}},W=class{log(e){console.log(e)}};function z(t){switch(t){case 0:return"NONE";case 1:return"DEBUG";case 2:return"INFO";case 3:return"WARNING";case 4:return"ERROR";default:return"?"}}function $(t){switch(t){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 Z(t){switch(t){case 1:return"CONNECT";case 2:return"DISCONNECT";case 3:return"OPEN";case 4:return"QUERY";default:return"?"}}function X(t){switch(t){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"?"}}var w;(function(e){e[e.SUCCESS=0]="SUCCESS"})(w||(w={}));var I=F(require("apache-arrow")),v=class{constructor(e,r,n){this.db=e;this.conn=r;this.header=n;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}},k=class{constructor(e,r){this._instance=e,this._conn=r}get instance(){return this._instance}async close(){return this._instance.disconnect(this._conn)}async runQuery(e){this._instance.logger.log({timestamp:new Date,level:_.INFO,origin:R.ASYNC_DUCKDB,topic:m.QUERY,event:T.RUN,value:e});let r=await this._instance.runQuery(this._conn,e),n=I.RecordBatchReader.from(r);return console.assert(n.isSync()),console.assert(n.isFile()),I.Table.from(n)}async sendQuery(e){this._instance.logger.log({timestamp:new Date,level:_.INFO,origin:R.ASYNC_DUCKDB,topic:m.QUERY,event:T.RUN,value:e});let r=await this._instance.sendQuery(this._conn,e),n=new v(this._instance,this._conn,r),E=await I.RecordBatchReader.from(n);return console.assert(E.isAsync()),console.assert(E.isStream()),E}async insertArrowFromIPCStream(e,r){await this._instance.insertArrowFromIPCStream(this._conn,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,n){let E=new I.AsyncByteQueue,o=new I.RecordBatchStreamWriter().reset(E,e);o.writeAll(r),o.close();let u=o.toUint8Array(!0);await this._instance.insertArrowFromIPCStream(this._conn,u,n)}async insertCSVFromPath(e,r){await this._instance.insertCSVFromPath(this._conn,e,r)}async insertJSONFromPath(e,r){await this._instance.insertJSONFromPath(this._conn,e,r)}};var s;(function(i){i.COLLECT_FILE_STATISTICS="COLLECT_FILE_STATISTICS",i.CONNECT="CONNECT",i.COPY_FILE_TO_BUFFER="COPY_FILE_TO_BUFFER",i.COPY_FILE_TO_PATH="COPY_FILE_TO_PATH",i.DISCONNECT="DISCONNECT",i.DROP_FILE="DROP_FILE",i.DROP_FILES="DROP_FILES",i.EXPORT_FILE_STATISTICS="EXPORT_FILE_STATISTICS",i.FETCH_QUERY_RESULTS="FETCH_QUERY_RESULTS",i.FLUSH_FILES="FLUSH_FILES",i.GET_FEATURE_FLAGS="GET_FEATURE_FLAGS",i.GET_VERSION="GET_VERSION",i.INSERT_ARROW_FROM_IPC_STREAM="INSERT_ARROW_FROM_IPC_STREAM",i.INSERT_CSV_FROM_PATH="IMPORT_CSV_FROM_PATH",i.INSERT_JSON_FROM_PATH="IMPORT_JSON_FROM_PATH",i.INSTANTIATE="INSTANTIATE",i.OPEN="OPEN",i.PING="PING",i.REGISTER_FILE_BUFFER="REGISTER_FILE_BUFFER",i.REGISTER_FILE_HANDLE="REGISTER_FILE_HANDLE",i.REGISTER_FILE_URL="REGISTER_FILE_URL",i.RESET="RESET",i.RUN_QUERY="RUN_QUERY",i.SEND_QUERY="SEND_QUERY",i.TOKENIZE="TOKENIZE"})(s||(s={}));var l;(function(c){c.CONNECTION_INFO="CONNECTION_INFO",c.ERROR="ERROR",c.FEATURE_FLAGS="FEATURE_FLAGS",c.FILE_BUFFER="FILE_BUFFER",c.FILE_SIZE="FILE_SIZE",c.FILE_STATISTICS="FILE_STATISTICS",c.LOG="LOG",c.OK="OK",c.QUERY_PLAN="QUERY_PLAN",c.QUERY_RESULT="QUERY_RESULT",c.QUERY_RESULT_CHUNK="QUERY_RESULT_CHUNK",c.QUERY_START="QUERY_START",c.REGISTERED_FILE="REGISTERED_FILE",c.SCRIPT_TOKENS="SCRIPT_TOKENS",c.SUCCESS="SUCCESS",c.VERSION_STRING="VERSION_STRING"})(l||(l={}));var d=class{constructor(e,r){this.promiseResolver=()=>{};this.promiseRejecter=()=>{};this.type=e,this.data=r,this.promise=new Promise((n,E)=>{this.promiseResolver=n,this.promiseRejecter=E})}};var a=F(require("apache-arrow"));function S(t,e){switch(e.typeId){case a.Type.Binary:return{name:t,type:"binary"};case a.Type.Bool:return{name:t,type:"bool"};case a.Type.Date:return{name:t,type:"date"};case a.Type.DateDay:return{name:t,type:"date32[d]"};case a.Type.DateMillisecond:return{name:t,type:"date64[ms]"};case a.Type.Decimal:{let r=e;return{name:t,type:"decimal",precision:r.precision,scale:r.scale}}case a.Type.Float:return{name:t,type:"float"};case a.Type.Float16:return{name:t,type:"float16"};case a.Type.Float32:return{name:t,type:"float32"};case a.Type.Float64:return{name:t,type:"float64"};case a.Type.Int:return{name:t,type:"int32"};case a.Type.Int16:return{name:t,type:"int16"};case a.Type.Int32:return{name:t,type:"int32"};case a.Type.Int64:return{name:t,type:"int64"};case a.Type.Uint16:return{name:t,type:"uint16"};case a.Type.Uint32:return{name:t,type:"uint32"};case a.Type.Uint64:return{name:t,type:"uint64"};case a.Type.Uint8:return{name:t,type:"uint8"};case a.Type.IntervalDayTime:return{name:t,type:"interval[dt]"};case a.Type.IntervalYearMonth:return{name:t,type:"interval[m]"};case a.Type.List:{let r=e;return{name:t,type:"list",children:[S(r.valueField.name,r.valueField.type)]}}case a.Type.FixedSizeBinary:return{name:t,type:"fixedsizebinary",byteWidth:e.byteWidth};case a.Type.Null:return{name:t,type:"null"};case a.Type.Utf8:return{name:t,type:"utf8"};case a.Type.Struct:return{name:t,type:"struct",children:e.children.map(n=>S(n.name,n.type))};case a.Type.Time:return{name:t,type:"time[s]"};case a.Type.TimeMicrosecond:return{name:t,type:"time[us]"};case a.Type.TimeMillisecond:return{name:t,type:"time[ms]"};case a.Type.TimeNanosecond:return{name:t,type:"time[ns]"};case a.Type.TimeSecond:return{name:t,type:"time[s]"};case a.Type.Timestamp:return{name:t,type:"timestamp",timezone:e.timezone||void 0};case a.Type.TimestampSecond:return{name:t,type:"timestamp[s]",timezone:e.timezone||void 0};case a.Type.TimestampMicrosecond:return{name:t,type:"timestamp[us]",timezone:e.timezone||void 0};case a.Type.TimestampNanosecond:return{name:t,type:"timestamp[ns]",timezone:e.timezone||void 0};case a.Type.TimestampMillisecond:return{name:t,type:"timestamp[ms]",timezone:e.timezone||void 0}}throw new Error(`unsupported arrow type: ${e.toString()}`)}var ee=new TextEncoder,M=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,n)=>{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 n=this._nextMessageId++;return this._pendingRequests.set(n,e),this._worker.postMessage({messageId:n,type:e.type,data:e.data}),await e.promise}onMessage(e){let r=e.data;r.type==l.LOG&&this._logger.log(r.data);let n=this._pendingRequests.get(r.requestId);if(!n){console.warn(`unassociated response: [${r.requestId}, ${r.type.toString()}]`);return}if(this._pendingRequests.delete(r.requestId),r.type==l.ERROR){let E=new Error(r.data.message);E.name=r.data.name,E.stack=r.data.stack,n.promiseRejecter(E);return}switch(n.type){case s.COLLECT_FILE_STATISTICS:case s.COPY_FILE_TO_PATH:case s.DISCONNECT:case s.DROP_FILES:case s.FLUSH_FILES:case s.INSERT_ARROW_FROM_IPC_STREAM:case s.INSERT_CSV_FROM_PATH:case s.INSERT_JSON_FROM_PATH:case s.INSTANTIATE:case s.OPEN:case s.PING:case s.REGISTER_FILE_BUFFER:case s.REGISTER_FILE_HANDLE:case s.REGISTER_FILE_URL:case s.RESET:if(r.type==l.OK){n.promiseResolver(r.data);return}break;case s.GET_VERSION:if(r.type==l.VERSION_STRING){n.promiseResolver(r.data);return}break;case s.GET_FEATURE_FLAGS:if(r.type==l.FEATURE_FLAGS){n.promiseResolver(r.data);return}break;case s.TOKENIZE:if(r.type==l.SCRIPT_TOKENS){n.promiseResolver(r.data);return}break;case s.DROP_FILE:if(r.type==l.SUCCESS){n.promiseResolver(r.data);return}break;case s.COPY_FILE_TO_BUFFER:if(r.type==l.FILE_BUFFER){n.promiseResolver(r.data);return}break;case s.EXPORT_FILE_STATISTICS:if(r.type==l.FILE_STATISTICS){n.promiseResolver(r.data);return}break;case s.CONNECT:if(r.type==l.CONNECTION_INFO){n.promiseResolver(r.data);return}break;case s.RUN_QUERY:if(r.type==l.QUERY_RESULT){n.promiseResolver(r.data);return}break;case s.SEND_QUERY:if(r.type==l.QUERY_START){n.promiseResolver(r.data);return}break;case s.FETCH_QUERY_RESULTS:if(r.type==l.QUERY_RESULT_CHUNK){n.promiseResolver(r.data);return}break}n.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 d(s.RESET,null);return await this.postTask(e)}async ping(){let e=new d(s.PING,null);await this.postTask(e)}async dropFile(e){let r=new d(s.DROP_FILE,e);return await this.postTask(r)}async dropFiles(){let e=new d(s.DROP_FILES,null);return await this.postTask(e)}async flushFiles(){let e=new d(s.FLUSH_FILES,null);return await this.postTask(e)}async instantiate(e,r=null){let n=new d(s.INSTANTIATE,[e,r]);return await this.postTask(n)}async getVersion(){let e=new d(s.GET_VERSION,null);return await this.postTask(e)}async getFeatureFlags(){let e=new d(s.GET_FEATURE_FLAGS,null);return await this.postTask(e)}async open(e){let r=new d(s.OPEN,e);await this.postTask(r)}async tokenize(e){let r=new d(s.TOKENIZE,e);return await this.postTask(r)}async connectInternal(){let e=new d(s.CONNECT,null);return await this.postTask(e)}async connect(){let e=await this.connectInternal();return new k(this,e)}async disconnect(e){let r=new d(s.DISCONNECT,e);await this.postTask(r)}async runQuery(e,r){let n=new d(s.RUN_QUERY,[e,r]);return await this.postTask(n)}async sendQuery(e,r){let n=new d(s.SEND_QUERY,[e,r]);return await this.postTask(n)}async fetchQueryResults(e){let r=new d(s.FETCH_QUERY_RESULTS,e);return await this.postTask(r)}async registerFileText(e,r){let n=ee.encode(r);await this.registerFileBuffer(e,n)}async registerFileURL(e,r){r===void 0&&(r=e);let n=new d(s.REGISTER_FILE_URL,[e,r]);await this.postTask(n)}async registerEmptyFileBuffer(e){let r=new d(s.REGISTER_FILE_BUFFER,[e,new Uint8Array]);await this.postTask(r)}async registerFileBuffer(e,r){let n=new d(s.REGISTER_FILE_BUFFER,[e,r]);await this.postTask(n,[r.buffer])}async registerFileHandle(e,r){let n=new d(s.REGISTER_FILE_HANDLE,[e,r]);await this.postTask(n,[])}async collectFileStatistics(e,r){let n=new d(s.COLLECT_FILE_STATISTICS,[e,r]);await this.postTask(n,[])}async exportFileStatistics(e){let r=new d(s.EXPORT_FILE_STATISTICS,e);return await this.postTask(r,[])}async copyFileToBuffer(e){let r=new d(s.COPY_FILE_TO_BUFFER,e);return await this.postTask(r)}async copyFileToPath(e,r){let n=new d(s.COPY_FILE_TO_PATH,[e,r]);await this.postTask(n)}async insertArrowFromIPCStream(e,r,n){let E=new d(s.INSERT_ARROW_FROM_IPC_STREAM,[e,r,n]);await this.postTask(E,[r.buffer])}async insertCSVFromPath(e,r,n){if(n.columns!==void 0){let o=[];for(let u in n.columns){let N=n.columns[u];o.push(S(u,N))}n.columnsFlat=o,delete n.columns}let E=new d(s.INSERT_CSV_FROM_PATH,[e,r,n]);await this.postTask(E)}async insertJSONFromPath(e,r,n){if(n.columns!==void 0){let o=[];for(let u in n.columns){let N=n.columns[u];o.push(S(u,N))}n.columnsFlat=o,delete n.columns}let E=new d(s.INSERT_JSON_FROM_PATH,[e,r,n]);await this.postTask(E)}};var x=class{constructor(){this._bindings=null;this._nextMessageId=0}log(e){this.postMessage({messageId:this._nextMessageId++,requestId:0,type:l.LOG,data:e},[])}sendOK(e){this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.OK,data:null},[])}failWith(e,r){let n={name:r.name,message:r.message,stack:r.stack||void 0};this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.ERROR,data:n},[])}async onMessage(e){switch(e.type){case s.PING:this.sendOK(e);return;case s.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 s.GET_VERSION:this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.VERSION_STRING,data:this._bindings.getVersion()},[]);break;case s.GET_FEATURE_FLAGS:this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.FEATURE_FLAGS,data:this._bindings.getFeatureFlags()},[]);break;case s.RESET:this._bindings.reset(),this.sendOK(e);break;case s.OPEN:this._bindings.open(e.data),this.sendOK(e);break;case s.DROP_FILE:this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.SUCCESS,data:this._bindings.dropFile(e.data)},[]);break;case s.DROP_FILES:this._bindings.dropFiles(),this.sendOK(e);break;case s.FLUSH_FILES:this._bindings.flushFiles(),this.sendOK(e);break;case s.CONNECT:{let r=this._bindings.connect();this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.CONNECTION_INFO,data:r.handle},[]);break}case s.DISCONNECT:this._bindings.disconnect(e.data),this.sendOK(e);break;case s.RUN_QUERY:{let r=this._bindings.runQuery(e.data[0],e.data[1]);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.QUERY_RESULT,data:r},[r.buffer]);break}case s.SEND_QUERY:{let r=this._bindings.sendQuery(e.data[0],e.data[1]);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.QUERY_START,data:r},[r.buffer]);break}case s.FETCH_QUERY_RESULTS:{let r=this._bindings.fetchQueryResults(e.data);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.QUERY_RESULT_CHUNK,data:r},[r.buffer]);break}case s.REGISTER_FILE_URL:this._bindings.registerFileURL(e.data[0],e.data[1]),this.sendOK(e);break;case s.REGISTER_FILE_BUFFER:this._bindings.registerFileBuffer(e.data[0],e.data[1]),this.sendOK(e);break;case s.REGISTER_FILE_HANDLE:this._bindings.registerFileHandle(e.data[0],e.data[1]),this.sendOK(e);break;case s.COPY_FILE_TO_PATH:this._bindings.copyFileToPath(e.data[0],e.data[1]),this.sendOK(e);break;case s.COPY_FILE_TO_BUFFER:{let r=this._bindings.copyFileToBuffer(e.data);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.FILE_BUFFER,data:r},[]);break}case s.COLLECT_FILE_STATISTICS:this._bindings.collectFileStatistics(e.data[0],e.data[1]),this.sendOK(e);break;case s.EXPORT_FILE_STATISTICS:{this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.FILE_STATISTICS,data:this._bindings.exportFileStatistics(e.data)},[]);break}case s.INSERT_ARROW_FROM_IPC_STREAM:{this._bindings.insertArrowFromIPCStream(e.data[0],e.data[1],e.data[2]),this.sendOK(e);break}case s.INSERT_CSV_FROM_PATH:{this._bindings.insertCSVFromPath(e.data[0],e.data[1],e.data[2]),this.sendOK(e);break}case s.INSERT_JSON_FROM_PATH:{this._bindings.insertJSONFromPath(e.data[0],e.data[1],e.data[2]),this.sendOK(e);break}case s.TOKENIZE:{let r=this._bindings.tokenize(e.data);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.SCRIPT_TOKENS,data:r},[]);break}}}catch(r){return this.failWith(e,r)}}};var g=F(require("wasm-feature-detect"));var re="@duckdb/duckdb-wasm",te="0.0.41-dev394.0",se="DuckDB powered by WebAssembly",ne={type:"git",url:"https://github.com/duckdb/duckdb-wasm.git"},ie="MIT",oe={"apache-arrow":"^4.0.0","wasm-feature-detect":"^1.2.11"},ae={"@types/emscripten":"^1.39.4","@types/jasmine":"^3.10.1","@typescript-eslint/eslint-plugin":"^4.33.0","@typescript-eslint/parser":"^4.33.0",esbuild:"^0.13.9",eslint:"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-jasmine":"^4.1.2","eslint-plugin-prettier":"^4.0.0","eslint-plugin-react":"^7.26.1",jasmine:"^3.10.0","jasmine-core":"^3.10.1","jasmine-spec-reporter":"^7.0.0",karma:"^6.3.5","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"},ce={fsevents:"*"},le={"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 types"},de=["dist","!dist/types/test"],ue="./dist/duckdb-node-async.js",Ee="./dist/duckdb-node-async.d.ts",pe="./dist/duckdb-esm.js",Te={"./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},h={name:re,version:te,description:se,repository:ne,license:ie,dependencies:oe,devDependencies:ae,optionalDependencies:ce,scripts:le,files:de,main:ue,types:Ee,module:pe,browser:Te};var B=h.name,G=h.version,b=h.version.split("."),Qe=b[0],Ke=b[1],je=b[2];function O(t){let e=`importScripts("${t}");`;return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))}function _e(){let t=`https://cdn.jsdelivr.net/npm/${B}@${G}/dist/`;return{asyncDefault:{mainModule:`${t}duckdb.wasm`,mainWorker:O(`${t}duckdb-browser-async.worker.js`)},asyncNext:{mainModule:`${t}duckdb-next.wasm`,mainWorker:O(`${t}duckdb-browser-async-next.worker.js`)},asyncNextCOI:{mainModule:`${t}duckdb-next-coi.wasm`,mainWorker:O(`${t}duckdb-browser-async-next-coi.worker.js`),pthreadWorker:O(`${t}duckdb-browser-async-next-coi.pthread.worker.js`)}}}var C=null,A=null,f=null,L=null,P=null;function Re(){return typeof process!="undefined"&&process.release.name==="node"}async function H(){return C==null&&(C=typeof BigInt64Array!="undefined"),A==null&&(A=await g.exceptions()),f==null&&(f=await g.threads()),L==null&&(L=await g.simd()),P==null&&(P=await g.bulkMemory()),{bigInt64Array:C,crossOriginIsolated:Re()||globalThis.crossOriginIsolated||!1,wasmExceptions:A,wasmSIMD:L,wasmThreads:f,wasmBulkMemory:P}}async function me(t){let e=await H();if(e.wasmExceptions&&e.wasmSIMD){if(e.wasmThreads&&e.crossOriginIsolated&&t.asyncNextCOI)return{mainModule:t.asyncNextCOI.mainModule,mainWorker:t.asyncNextCOI.mainWorker,pthreadWorker:t.asyncNextCOI.pthreadWorker};if(t.asyncNext)return{mainModule:t.asyncNext.mainModule,mainWorker:t.asyncNext.mainWorker,pthreadWorker:null}}return{mainModule:t.asyncDefault.mainModule,mainWorker:t.asyncDefault.mainWorker,pthreadWorker:null}}0&&(module.exports={AsyncDuckDB,AsyncDuckDBConnection,AsyncDuckDBDispatcher,ConsoleLogger,LogEvent,LogLevel,LogOrigin,LogTopic,StatusCode,VoidLogger,WorkerRequestType,WorkerResponseType,WorkerTask,getJsDelivrBundles,getLogEventLabel,getLogLevelLabel,getLogOriginLabel,getLogTopicLabel,getPlatformFeatures,selectBundle});
|
|
1
|
+
var Y=Object.create;var y=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var U=t=>y(t,"__esModule",{value:!0});var q=(t,e)=>{U(t);for(var r in e)y(t,r,{get:e[r],enumerable:!0})},J=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Q(e))!j.call(t,n)&&n!=="default"&&y(t,n,{get:()=>e[n],enumerable:!(r=V(e,n))||r.enumerable});return t},F=t=>J(U(y(t!=null?Y(K(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);q(exports,{AsyncDuckDB:()=>M,AsyncDuckDBConnection:()=>k,AsyncDuckDBDispatcher:()=>x,ConsoleLogger:()=>W,LogEvent:()=>T,LogLevel:()=>_,LogOrigin:()=>R,LogTopic:()=>m,StatusCode:()=>w,VoidLogger:()=>D,WorkerRequestType:()=>s,WorkerResponseType:()=>l,WorkerTask:()=>d,getJsDelivrBundles:()=>_e,getLogEventLabel:()=>$,getLogLevelLabel:()=>z,getLogOriginLabel:()=>X,getLogTopicLabel:()=>Z,getPlatformFeatures:()=>H,selectBundle:()=>me});var _;(function(o){o[o.NONE=0]="NONE",o[o.DEBUG=1]="DEBUG",o[o.INFO=2]="INFO",o[o.WARNING=3]="WARNING",o[o.ERROR=4]="ERROR"})(_||(_={}));var m;(function(o){o[o.NONE=0]="NONE",o[o.CONNECT=1]="CONNECT",o[o.DISCONNECT=2]="DISCONNECT",o[o.OPEN=3]="OPEN",o[o.QUERY=4]="QUERY"})(m||(m={}));var T;(function(u){u[u.NONE=0]="NONE",u[u.OK=1]="OK",u[u.ERROR=2]="ERROR",u[u.START=3]="START",u[u.RUN=4]="RUN",u[u.CAPTURE=5]="CAPTURE"})(T||(T={}));var R;(function(o){o[o.NONE=0]="NONE",o[o.WEB_WORKER=1]="WEB_WORKER",o[o.NODE_WORKER=2]="NODE_WORKER",o[o.BINDINGS=3]="BINDINGS",o[o.ASYNC_DUCKDB=4]="ASYNC_DUCKDB"})(R||(R={}));var D=class{log(e){}},W=class{log(e){console.log(e)}};function z(t){switch(t){case 0:return"NONE";case 1:return"DEBUG";case 2:return"INFO";case 3:return"WARNING";case 4:return"ERROR";default:return"?"}}function $(t){switch(t){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 Z(t){switch(t){case 1:return"CONNECT";case 2:return"DISCONNECT";case 3:return"OPEN";case 4:return"QUERY";default:return"?"}}function X(t){switch(t){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"?"}}var w;(function(e){e[e.SUCCESS=0]="SUCCESS"})(w||(w={}));var I=F(require("apache-arrow")),v=class{constructor(e,r,n){this.db=e;this.conn=r;this.header=n;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}},k=class{constructor(e,r){this._instance=e,this._conn=r}get instance(){return this._instance}async close(){return this._instance.disconnect(this._conn)}async runQuery(e){this._instance.logger.log({timestamp:new Date,level:_.INFO,origin:R.ASYNC_DUCKDB,topic:m.QUERY,event:T.RUN,value:e});let r=await this._instance.runQuery(this._conn,e),n=I.RecordBatchReader.from(r);return console.assert(n.isSync()),console.assert(n.isFile()),I.Table.from(n)}async sendQuery(e){this._instance.logger.log({timestamp:new Date,level:_.INFO,origin:R.ASYNC_DUCKDB,topic:m.QUERY,event:T.RUN,value:e});let r=await this._instance.sendQuery(this._conn,e),n=new v(this._instance,this._conn,r),E=await I.RecordBatchReader.from(n);return console.assert(E.isAsync()),console.assert(E.isStream()),E}async insertArrowFromIPCStream(e,r){await this._instance.insertArrowFromIPCStream(this._conn,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,n){let E=new I.AsyncByteQueue,o=new I.RecordBatchStreamWriter().reset(E,e);o.writeAll(r),o.close();let u=o.toUint8Array(!0);await this._instance.insertArrowFromIPCStream(this._conn,u,n)}async insertCSVFromPath(e,r){await this._instance.insertCSVFromPath(this._conn,e,r)}async insertJSONFromPath(e,r){await this._instance.insertJSONFromPath(this._conn,e,r)}};var s;(function(i){i.COLLECT_FILE_STATISTICS="COLLECT_FILE_STATISTICS",i.CONNECT="CONNECT",i.COPY_FILE_TO_BUFFER="COPY_FILE_TO_BUFFER",i.COPY_FILE_TO_PATH="COPY_FILE_TO_PATH",i.DISCONNECT="DISCONNECT",i.DROP_FILE="DROP_FILE",i.DROP_FILES="DROP_FILES",i.EXPORT_FILE_STATISTICS="EXPORT_FILE_STATISTICS",i.FETCH_QUERY_RESULTS="FETCH_QUERY_RESULTS",i.FLUSH_FILES="FLUSH_FILES",i.GET_FEATURE_FLAGS="GET_FEATURE_FLAGS",i.GET_VERSION="GET_VERSION",i.INSERT_ARROW_FROM_IPC_STREAM="INSERT_ARROW_FROM_IPC_STREAM",i.INSERT_CSV_FROM_PATH="IMPORT_CSV_FROM_PATH",i.INSERT_JSON_FROM_PATH="IMPORT_JSON_FROM_PATH",i.INSTANTIATE="INSTANTIATE",i.OPEN="OPEN",i.PING="PING",i.REGISTER_FILE_BUFFER="REGISTER_FILE_BUFFER",i.REGISTER_FILE_HANDLE="REGISTER_FILE_HANDLE",i.REGISTER_FILE_URL="REGISTER_FILE_URL",i.RESET="RESET",i.RUN_QUERY="RUN_QUERY",i.SEND_QUERY="SEND_QUERY",i.TOKENIZE="TOKENIZE"})(s||(s={}));var l;(function(c){c.CONNECTION_INFO="CONNECTION_INFO",c.ERROR="ERROR",c.FEATURE_FLAGS="FEATURE_FLAGS",c.FILE_BUFFER="FILE_BUFFER",c.FILE_SIZE="FILE_SIZE",c.FILE_STATISTICS="FILE_STATISTICS",c.LOG="LOG",c.OK="OK",c.QUERY_PLAN="QUERY_PLAN",c.QUERY_RESULT="QUERY_RESULT",c.QUERY_RESULT_CHUNK="QUERY_RESULT_CHUNK",c.QUERY_START="QUERY_START",c.REGISTERED_FILE="REGISTERED_FILE",c.SCRIPT_TOKENS="SCRIPT_TOKENS",c.SUCCESS="SUCCESS",c.VERSION_STRING="VERSION_STRING"})(l||(l={}));var d=class{constructor(e,r){this.promiseResolver=()=>{};this.promiseRejecter=()=>{};this.type=e,this.data=r,this.promise=new Promise((n,E)=>{this.promiseResolver=n,this.promiseRejecter=E})}};var a=F(require("apache-arrow"));function S(t,e){switch(e.typeId){case a.Type.Binary:return{name:t,type:"binary"};case a.Type.Bool:return{name:t,type:"bool"};case a.Type.Date:return{name:t,type:"date"};case a.Type.DateDay:return{name:t,type:"date32[d]"};case a.Type.DateMillisecond:return{name:t,type:"date64[ms]"};case a.Type.Decimal:{let r=e;return{name:t,type:"decimal",precision:r.precision,scale:r.scale}}case a.Type.Float:return{name:t,type:"float"};case a.Type.Float16:return{name:t,type:"float16"};case a.Type.Float32:return{name:t,type:"float32"};case a.Type.Float64:return{name:t,type:"float64"};case a.Type.Int:return{name:t,type:"int32"};case a.Type.Int16:return{name:t,type:"int16"};case a.Type.Int32:return{name:t,type:"int32"};case a.Type.Int64:return{name:t,type:"int64"};case a.Type.Uint16:return{name:t,type:"uint16"};case a.Type.Uint32:return{name:t,type:"uint32"};case a.Type.Uint64:return{name:t,type:"uint64"};case a.Type.Uint8:return{name:t,type:"uint8"};case a.Type.IntervalDayTime:return{name:t,type:"interval[dt]"};case a.Type.IntervalYearMonth:return{name:t,type:"interval[m]"};case a.Type.List:{let r=e;return{name:t,type:"list",children:[S(r.valueField.name,r.valueField.type)]}}case a.Type.FixedSizeBinary:return{name:t,type:"fixedsizebinary",byteWidth:e.byteWidth};case a.Type.Null:return{name:t,type:"null"};case a.Type.Utf8:return{name:t,type:"utf8"};case a.Type.Struct:return{name:t,type:"struct",children:e.children.map(n=>S(n.name,n.type))};case a.Type.Time:return{name:t,type:"time[s]"};case a.Type.TimeMicrosecond:return{name:t,type:"time[us]"};case a.Type.TimeMillisecond:return{name:t,type:"time[ms]"};case a.Type.TimeNanosecond:return{name:t,type:"time[ns]"};case a.Type.TimeSecond:return{name:t,type:"time[s]"};case a.Type.Timestamp:return{name:t,type:"timestamp",timezone:e.timezone||void 0};case a.Type.TimestampSecond:return{name:t,type:"timestamp[s]",timezone:e.timezone||void 0};case a.Type.TimestampMicrosecond:return{name:t,type:"timestamp[us]",timezone:e.timezone||void 0};case a.Type.TimestampNanosecond:return{name:t,type:"timestamp[ns]",timezone:e.timezone||void 0};case a.Type.TimestampMillisecond:return{name:t,type:"timestamp[ms]",timezone:e.timezone||void 0}}throw new Error(`unsupported arrow type: ${e.toString()}`)}var ee=new TextEncoder,M=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,n)=>{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 n=this._nextMessageId++;return this._pendingRequests.set(n,e),this._worker.postMessage({messageId:n,type:e.type,data:e.data}),await e.promise}onMessage(e){let r=e.data;r.type==l.LOG&&this._logger.log(r.data);let n=this._pendingRequests.get(r.requestId);if(!n){console.warn(`unassociated response: [${r.requestId}, ${r.type.toString()}]`);return}if(this._pendingRequests.delete(r.requestId),r.type==l.ERROR){let E=new Error(r.data.message);E.name=r.data.name,E.stack=r.data.stack,n.promiseRejecter(E);return}switch(n.type){case s.COLLECT_FILE_STATISTICS:case s.COPY_FILE_TO_PATH:case s.DISCONNECT:case s.DROP_FILES:case s.FLUSH_FILES:case s.INSERT_ARROW_FROM_IPC_STREAM:case s.INSERT_CSV_FROM_PATH:case s.INSERT_JSON_FROM_PATH:case s.INSTANTIATE:case s.OPEN:case s.PING:case s.REGISTER_FILE_BUFFER:case s.REGISTER_FILE_HANDLE:case s.REGISTER_FILE_URL:case s.RESET:if(r.type==l.OK){n.promiseResolver(r.data);return}break;case s.GET_VERSION:if(r.type==l.VERSION_STRING){n.promiseResolver(r.data);return}break;case s.GET_FEATURE_FLAGS:if(r.type==l.FEATURE_FLAGS){n.promiseResolver(r.data);return}break;case s.TOKENIZE:if(r.type==l.SCRIPT_TOKENS){n.promiseResolver(r.data);return}break;case s.DROP_FILE:if(r.type==l.SUCCESS){n.promiseResolver(r.data);return}break;case s.COPY_FILE_TO_BUFFER:if(r.type==l.FILE_BUFFER){n.promiseResolver(r.data);return}break;case s.EXPORT_FILE_STATISTICS:if(r.type==l.FILE_STATISTICS){n.promiseResolver(r.data);return}break;case s.CONNECT:if(r.type==l.CONNECTION_INFO){n.promiseResolver(r.data);return}break;case s.RUN_QUERY:if(r.type==l.QUERY_RESULT){n.promiseResolver(r.data);return}break;case s.SEND_QUERY:if(r.type==l.QUERY_START){n.promiseResolver(r.data);return}break;case s.FETCH_QUERY_RESULTS:if(r.type==l.QUERY_RESULT_CHUNK){n.promiseResolver(r.data);return}break}n.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 d(s.RESET,null);return await this.postTask(e)}async ping(){let e=new d(s.PING,null);await this.postTask(e)}async dropFile(e){let r=new d(s.DROP_FILE,e);return await this.postTask(r)}async dropFiles(){let e=new d(s.DROP_FILES,null);return await this.postTask(e)}async flushFiles(){let e=new d(s.FLUSH_FILES,null);return await this.postTask(e)}async instantiate(e,r=null){let n=new d(s.INSTANTIATE,[e,r]);return await this.postTask(n)}async getVersion(){let e=new d(s.GET_VERSION,null);return await this.postTask(e)}async getFeatureFlags(){let e=new d(s.GET_FEATURE_FLAGS,null);return await this.postTask(e)}async open(e){let r=new d(s.OPEN,e);await this.postTask(r)}async tokenize(e){let r=new d(s.TOKENIZE,e);return await this.postTask(r)}async connectInternal(){let e=new d(s.CONNECT,null);return await this.postTask(e)}async connect(){let e=await this.connectInternal();return new k(this,e)}async disconnect(e){let r=new d(s.DISCONNECT,e);await this.postTask(r)}async runQuery(e,r){let n=new d(s.RUN_QUERY,[e,r]);return await this.postTask(n)}async sendQuery(e,r){let n=new d(s.SEND_QUERY,[e,r]);return await this.postTask(n)}async fetchQueryResults(e){let r=new d(s.FETCH_QUERY_RESULTS,e);return await this.postTask(r)}async registerFileText(e,r){let n=ee.encode(r);await this.registerFileBuffer(e,n)}async registerFileURL(e,r){r===void 0&&(r=e);let n=new d(s.REGISTER_FILE_URL,[e,r]);await this.postTask(n)}async registerEmptyFileBuffer(e){let r=new d(s.REGISTER_FILE_BUFFER,[e,new Uint8Array]);await this.postTask(r)}async registerFileBuffer(e,r){let n=new d(s.REGISTER_FILE_BUFFER,[e,r]);await this.postTask(n,[r.buffer])}async registerFileHandle(e,r){let n=new d(s.REGISTER_FILE_HANDLE,[e,r]);await this.postTask(n,[])}async collectFileStatistics(e,r){let n=new d(s.COLLECT_FILE_STATISTICS,[e,r]);await this.postTask(n,[])}async exportFileStatistics(e){let r=new d(s.EXPORT_FILE_STATISTICS,e);return await this.postTask(r,[])}async copyFileToBuffer(e){let r=new d(s.COPY_FILE_TO_BUFFER,e);return await this.postTask(r)}async copyFileToPath(e,r){let n=new d(s.COPY_FILE_TO_PATH,[e,r]);await this.postTask(n)}async insertArrowFromIPCStream(e,r,n){let E=new d(s.INSERT_ARROW_FROM_IPC_STREAM,[e,r,n]);await this.postTask(E,[r.buffer])}async insertCSVFromPath(e,r,n){if(n.columns!==void 0){let o=[];for(let u in n.columns){let N=n.columns[u];o.push(S(u,N))}n.columnsFlat=o,delete n.columns}let E=new d(s.INSERT_CSV_FROM_PATH,[e,r,n]);await this.postTask(E)}async insertJSONFromPath(e,r,n){if(n.columns!==void 0){let o=[];for(let u in n.columns){let N=n.columns[u];o.push(S(u,N))}n.columnsFlat=o,delete n.columns}let E=new d(s.INSERT_JSON_FROM_PATH,[e,r,n]);await this.postTask(E)}};var x=class{constructor(){this._bindings=null;this._nextMessageId=0}log(e){this.postMessage({messageId:this._nextMessageId++,requestId:0,type:l.LOG,data:e},[])}sendOK(e){this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.OK,data:null},[])}failWith(e,r){let n={name:r.name,message:r.message,stack:r.stack||void 0};this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.ERROR,data:n},[])}async onMessage(e){switch(e.type){case s.PING:this.sendOK(e);return;case s.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 s.GET_VERSION:this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.VERSION_STRING,data:this._bindings.getVersion()},[]);break;case s.GET_FEATURE_FLAGS:this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.FEATURE_FLAGS,data:this._bindings.getFeatureFlags()},[]);break;case s.RESET:this._bindings.reset(),this.sendOK(e);break;case s.OPEN:this._bindings.open(e.data),this.sendOK(e);break;case s.DROP_FILE:this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.SUCCESS,data:this._bindings.dropFile(e.data)},[]);break;case s.DROP_FILES:this._bindings.dropFiles(),this.sendOK(e);break;case s.FLUSH_FILES:this._bindings.flushFiles(),this.sendOK(e);break;case s.CONNECT:{let r=this._bindings.connect();this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.CONNECTION_INFO,data:r.handle},[]);break}case s.DISCONNECT:this._bindings.disconnect(e.data),this.sendOK(e);break;case s.RUN_QUERY:{let r=this._bindings.runQuery(e.data[0],e.data[1]);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.QUERY_RESULT,data:r},[r.buffer]);break}case s.SEND_QUERY:{let r=this._bindings.sendQuery(e.data[0],e.data[1]);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.QUERY_START,data:r},[r.buffer]);break}case s.FETCH_QUERY_RESULTS:{let r=this._bindings.fetchQueryResults(e.data);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.QUERY_RESULT_CHUNK,data:r},[r.buffer]);break}case s.REGISTER_FILE_URL:this._bindings.registerFileURL(e.data[0],e.data[1]),this.sendOK(e);break;case s.REGISTER_FILE_BUFFER:this._bindings.registerFileBuffer(e.data[0],e.data[1]),this.sendOK(e);break;case s.REGISTER_FILE_HANDLE:this._bindings.registerFileHandle(e.data[0],e.data[1]),this.sendOK(e);break;case s.COPY_FILE_TO_PATH:this._bindings.copyFileToPath(e.data[0],e.data[1]),this.sendOK(e);break;case s.COPY_FILE_TO_BUFFER:{let r=this._bindings.copyFileToBuffer(e.data);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.FILE_BUFFER,data:r},[]);break}case s.COLLECT_FILE_STATISTICS:this._bindings.collectFileStatistics(e.data[0],e.data[1]),this.sendOK(e);break;case s.EXPORT_FILE_STATISTICS:{this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.FILE_STATISTICS,data:this._bindings.exportFileStatistics(e.data)},[]);break}case s.INSERT_ARROW_FROM_IPC_STREAM:{this._bindings.insertArrowFromIPCStream(e.data[0],e.data[1],e.data[2]),this.sendOK(e);break}case s.INSERT_CSV_FROM_PATH:{this._bindings.insertCSVFromPath(e.data[0],e.data[1],e.data[2]),this.sendOK(e);break}case s.INSERT_JSON_FROM_PATH:{this._bindings.insertJSONFromPath(e.data[0],e.data[1],e.data[2]),this.sendOK(e);break}case s.TOKENIZE:{let r=this._bindings.tokenize(e.data);this.postMessage({messageId:this._nextMessageId++,requestId:e.messageId,type:l.SCRIPT_TOKENS,data:r},[]);break}}}catch(r){return this.failWith(e,r)}}};var g=F(require("wasm-feature-detect"));var re="@duckdb/duckdb-wasm",te="0.0.41-dev399.0",se="DuckDB powered by WebAssembly",ne={type:"git",url:"https://github.com/duckdb/duckdb-wasm.git"},ie="MIT",oe={"apache-arrow":"^4.0.0","wasm-feature-detect":"^1.2.11"},ae={"@types/emscripten":"^1.39.4","@types/jasmine":"^3.10.1","@typescript-eslint/eslint-plugin":"^4.33.0","@typescript-eslint/parser":"^4.33.0",esbuild:"^0.13.9",eslint:"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-jasmine":"^4.1.2","eslint-plugin-prettier":"^4.0.0","eslint-plugin-react":"^7.26.1",jasmine:"^3.10.0","jasmine-core":"^3.10.1","jasmine-spec-reporter":"^7.0.0",karma:"^6.3.5","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"},ce={fsevents:"*"},le={"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 types"},de=["dist","!dist/types/test"],ue="./dist/duckdb-node-async.js",Ee="./dist/duckdb-node-async.d.ts",pe="./dist/duckdb-esm.js",Te={"./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},h={name:re,version:te,description:se,repository:ne,license:ie,dependencies:oe,devDependencies:ae,optionalDependencies:ce,scripts:le,files:de,main:ue,types:Ee,module:pe,browser:Te};var B=h.name,G=h.version,b=h.version.split("."),Qe=b[0],Ke=b[1],je=b[2];function O(t){let e=`importScripts("${t}");`;return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))}function _e(){let t=`https://cdn.jsdelivr.net/npm/${B}@${G}/dist/`;return{asyncDefault:{mainModule:`${t}duckdb.wasm`,mainWorker:O(`${t}duckdb-browser-async.worker.js`)},asyncNext:{mainModule:`${t}duckdb-next.wasm`,mainWorker:O(`${t}duckdb-browser-async-next.worker.js`)},asyncNextCOI:{mainModule:`${t}duckdb-next-coi.wasm`,mainWorker:O(`${t}duckdb-browser-async-next-coi.worker.js`),pthreadWorker:O(`${t}duckdb-browser-async-next-coi.pthread.worker.js`)}}}var C=null,A=null,f=null,L=null,P=null;function Re(){return typeof process!="undefined"&&process.release.name==="node"}async function H(){return C==null&&(C=typeof BigInt64Array!="undefined"),A==null&&(A=await g.exceptions()),f==null&&(f=await g.threads()),L==null&&(L=await g.simd()),P==null&&(P=await g.bulkMemory()),{bigInt64Array:C,crossOriginIsolated:Re()||globalThis.crossOriginIsolated||!1,wasmExceptions:A,wasmSIMD:L,wasmThreads:f,wasmBulkMemory:P}}async function me(t){let e=await H();if(e.wasmExceptions&&e.wasmSIMD){if(e.wasmThreads&&e.crossOriginIsolated&&t.asyncNextCOI)return{mainModule:t.asyncNextCOI.mainModule,mainWorker:t.asyncNextCOI.mainWorker,pthreadWorker:t.asyncNextCOI.pthreadWorker};if(t.asyncNext)return{mainModule:t.asyncNext.mainModule,mainWorker:t.asyncNext.mainWorker,pthreadWorker:null}}return{mainModule:t.asyncDefault.mainModule,mainWorker:t.asyncDefault.mainWorker,pthreadWorker:null}}0&&(module.exports={AsyncDuckDB,AsyncDuckDBConnection,AsyncDuckDBDispatcher,ConsoleLogger,LogEvent,LogLevel,LogOrigin,LogTopic,StatusCode,VoidLogger,WorkerRequestType,WorkerResponseType,WorkerTask,getJsDelivrBundles,getLogEventLabel,getLogLevelLabel,getLogOriginLabel,getLogTopicLabel,getPlatformFeatures,selectBundle});
|
|
2
2
|
//# sourceMappingURL=duckdb-node-async.js.map
|
package/dist/tests-browser.js
CHANGED
|
@@ -20884,7 +20884,7 @@ return true;`);
|
|
|
20884
20884
|
|
|
20885
20885
|
// package.json
|
|
20886
20886
|
var name = "@duckdb/duckdb-wasm";
|
|
20887
|
-
var version = "0.0.41-
|
|
20887
|
+
var version = "0.0.41-dev399.0";
|
|
20888
20888
|
var description = "DuckDB powered by WebAssembly";
|
|
20889
20889
|
var repository = {
|
|
20890
20890
|
type: "git",
|