@motherduck/wasm-client 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/index.js +1 -1
- package/index_with_arrow.js +8 -8
- package/package.json +2 -2
- package/types/duckdb/types/DuckDBType.d.ts +0 -110
- package/types/duckdb/types/DuckDBTypes.d.ts +0 -39
- package/types/duckdb/types/index.d.ts +0 -2
- package/types/observability.d.ts +0 -26
package/README.md
CHANGED
|
@@ -19,8 +19,8 @@ Our current intention is to align more closely with the DuckDB WASM API in the f
|
|
|
19
19
|
## DuckDB Version Support
|
|
20
20
|
|
|
21
21
|
- Versions of this package before 0.5.0 no longer work.
|
|
22
|
-
- Versions 0.5.x of this package use DuckDB 0.9.2, and will work as long as MotherDuck continues to support that version of DuckDB. MotherDuck will stop supporting DuckDB 0.9.2 in the
|
|
23
|
-
- Versions 0.6.x of this package use DuckDB 0.10.2+, and will
|
|
22
|
+
- Versions 0.5.x of this package use DuckDB 0.9.2, and will work as long as MotherDuck continues to support that version of DuckDB. Ensure your user is in 0.9.2 mode to use these versions. MotherDuck will stop supporting DuckDB 0.9.2 in the near future.
|
|
23
|
+
- Versions 0.6.x of this package use DuckDB 0.10.2+, and will work for the foreseeable future. Ensure your user is in 0.10.2+ mode to use these versions. MotherDuck will be backwards-compatible with DuckDB 0.10.2+ even after it supports newer DuckDB versions.
|
|
24
24
|
|
|
25
25
|
## Installation
|
|
26
26
|
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var u=class e{constructor(){}static BIGINT={name:"BIGINT"};static BIT={name:"BIT"};static BOOLEAN={name:"BOOLEAN"};static BLOB={name:"BLOB"};static DATE={name:"DATE"};static DOUBLE={name:"DOUBLE"};static default_DECIMAL={name:"DECIMAL"};static DECIMAL(t,r){return t===void 0&&r===void 0?e.default_DECIMAL:{name:"DECIMAL",width:t,scale:r}}static ENUM={name:"ENUM"};static HUGEINT={name:"HUGEINT"};static INTEGER={name:"INTEGER"};static INTERVAL={name:"INTERVAL"};static LIST(t){return{name:"LIST",valueType:t}}static MAP(t,r){return{name:"MAP",keyType:t,valueType:r}}static REAL={name:"REAL"};static SMALLINT={name:"SMALLINT"};static SQLNULL={name:"SQLNULL"};static STRUCT(t){return{name:"STRUCT",entries:t}}static STRUCT_entry(t,r){return{key:t,valueType:r}}static TIME={name:"TIME"};static TIMESTAMP={name:"TIMESTAMP"};static TIMESTAMP_S={name:"TIMESTAMP_S"};static TIMESTAMP_MS={name:"TIMESTAMP_MS"};static TIMESTAMP_NS={name:"TIMESTAMP_NS"};static TIMESTAMP_TZ={name:"TIMESTAMP_TZ"};static TINYINT={name:"TINYINT"};static UBIGINT={name:"UBIGINT"};static UINTEGER={name:"UINTEGER"};static USMALLINT={name:"USMALLINT"};static UTINYINT={name:"UTINYINT"};static UUID={name:"UUID"};static UNION(t){return{name:"UNION",alternatives:t}}static UNION_alternative(t,r){return{tag:t,valueType:r}}static VARCHAR={name:"VARCHAR"};static VARCHAR_withLength(t){return{name:"VARCHAR",length:t}}};import*as E from"apache-arrow";import*as o from"apache-arrow";var Ze=Object.create,ke=Object.defineProperty,Xe=Object.getOwnPropertyDescriptor,et=Object.getOwnPropertyNames,tt=Object.getPrototypeOf,rt=Object.prototype.hasOwnProperty,st=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),nt=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of et(t))!rt.call(e,n)&&n!==r&&ke(e,n,{get:()=>t[n],enumerable:!(s=Xe(t,n))||s.enumerable});return e},at=(e,t,r)=>(r=e!=null?Ze(tt(e)):{},nt(t||!e||!e.__esModule?ke(r,"default",{value:e,enumerable:!0}):r,e)),it=st((e,t)=>{t.exports=Worker}),ot=(e=>(e[e.UNDEFINED=0]="UNDEFINED",e[e.AUTOMATIC=1]="AUTOMATIC",e[e.READ_ONLY=2]="READ_ONLY",e[e.READ_WRITE=3]="READ_WRITE",e))(ot||{}),ye=(e=>(e[e.IDENTIFIER=0]="IDENTIFIER",e[e.NUMERIC_CONSTANT=1]="NUMERIC_CONSTANT",e[e.STRING_CONSTANT=2]="STRING_CONSTANT",e[e.OPERATOR=3]="OPERATOR",e[e.KEYWORD=4]="KEYWORD",e[e.COMMENT=5]="COMMENT",e))(ye||{}),Z=(e=>(e[e.NONE=0]="NONE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARNING=3]="WARNING",e[e.ERROR=4]="ERROR",e))(Z||{}),ct=(e=>(e[e.NONE=0]="NONE",e[e.CONNECT=1]="CONNECT",e[e.DISCONNECT=2]="DISCONNECT",e[e.OPEN=3]="OPEN",e[e.QUERY=4]="QUERY",e[e.INSTANTIATE=5]="INSTANTIATE",e))(ct||{}),ut=(e=>(e[e.NONE=0]="NONE",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR",e[e.START=3]="START",e[e.RUN=4]="RUN",e[e.CAPTURE=5]="CAPTURE",e))(ut||{}),dt=(e=>(e[e.NONE=0]="NONE",e[e.WEB_WORKER=1]="WEB_WORKER",e[e.NODE_WORKER=2]="NODE_WORKER",e[e.BINDINGS=3]="BINDINGS",e[e.ASYNC_DUCKDB=4]="ASYNC_DUCKDB",e))(dt||{});var Re=class{constructor(e=2){this.level=e}log(e){e.level>=this.level&&console.log(e)}};var lt=(e=>(e[e.SUCCESS=0]="SUCCESS",e))(lt||{}),mt=class{constructor(e,t){this._bindings=e,this._conn=t}get bindings(){return this._bindings}async close(){return this._bindings.disconnect(this._conn)}useUnsafe(e){return e(this._bindings,this._conn)}async query(e){this._bindings.logger.log({timestamp:new Date,level:2,origin:4,topic:4,event:4,value:e});let t=await this._bindings.runQuery(this._conn,e),r=E.RecordBatchReader.from(t);return console.assert(r.isSync(),"Reader is not sync"),console.assert(r.isFile(),"Reader is not file"),new E.Table(r)}async send(e){this._bindings.logger.log({timestamp:new Date,level:2,origin:4,topic:4,event:4,value:e});let t=await this._bindings.startPendingQuery(this._conn,e);for(;t==null;)t=await this._bindings.pollPendingQuery(this._conn);let r=new Se(this._bindings,this._conn,t),s=await E.RecordBatchReader.from(r);return console.assert(s.isAsync()),console.assert(s.isStream()),s}async cancelSent(){return await this._bindings.cancelPendingQuery(this._conn)}async getTableNames(e){return await this._bindings.getTableNames(this._conn,e)}async prepare(e){let t=await this._bindings.createPrepared(this._conn,e);return new pt(this._bindings,this._conn,t)}async insertArrowTable(e,t){let r=E.tableToIPC(e,"stream");await this.insertArrowFromIPCStream(r,t)}async insertArrowFromIPCStream(e,t){await this._bindings.insertArrowFromIPCStream(this._conn,e,t)}async insertCSVFromPath(e,t){await this._bindings.insertCSVFromPath(this._conn,e,t)}async insertJSONFromPath(e,t){await this._bindings.insertJSONFromPath(this._conn,e,t)}},Se=class{constructor(e,t,r){this.db=e,this.conn=t,this.header=r,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}},pt=class{constructor(e,t,r){this.bindings=e,this.connectionId=t,this.statementId=r}async close(){await this.bindings.closePrepared(this.connectionId,this.statementId)}async query(...e){let t=await this.bindings.runPrepared(this.connectionId,this.statementId,e),r=E.RecordBatchReader.from(t);return console.assert(r.isSync()),console.assert(r.isFile()),new E.Table(r)}async send(...e){let t=await this.bindings.sendPrepared(this.connectionId,this.statementId,e),r=new Se(this.bindings,this.connectionId,t),s=await E.RecordBatchReader.from(r);return console.assert(s.isAsync()),console.assert(s.isStream()),s}},ht=(e=>(e.CANCEL_PENDING_QUERY="CANCEL_PENDING_QUERY",e.CLOSE_PREPARED="CLOSE_PREPARED",e.COLLECT_FILE_STATISTICS="COLLECT_FILE_STATISTICS",e.CONNECT="CONNECT",e.COPY_FILE_TO_BUFFER="COPY_FILE_TO_BUFFER",e.COPY_FILE_TO_PATH="COPY_FILE_TO_PATH",e.CREATE_PREPARED="CREATE_PREPARED",e.DISCONNECT="DISCONNECT",e.DROP_FILE="DROP_FILE",e.DROP_FILES="DROP_FILES",e.EXPORT_FILE_STATISTICS="EXPORT_FILE_STATISTICS",e.FETCH_QUERY_RESULTS="FETCH_QUERY_RESULTS",e.FLUSH_FILES="FLUSH_FILES",e.GET_FEATURE_FLAGS="GET_FEATURE_FLAGS",e.GET_TABLE_NAMES="GET_TABLE_NAMES",e.GET_VERSION="GET_VERSION",e.GLOB_FILE_INFOS="GLOB_FILE_INFOS",e.INSERT_ARROW_FROM_IPC_STREAM="INSERT_ARROW_FROM_IPC_STREAM",e.INSERT_CSV_FROM_PATH="IMPORT_CSV_FROM_PATH",e.INSERT_JSON_FROM_PATH="IMPORT_JSON_FROM_PATH",e.INSTANTIATE="INSTANTIATE",e.OPEN="OPEN",e.PING="PING",e.POLL_PENDING_QUERY="POLL_PENDING_QUERY",e.REGISTER_FILE_BUFFER="REGISTER_FILE_BUFFER",e.REGISTER_FILE_HANDLE="REGISTER_FILE_HANDLE",e.REGISTER_FILE_URL="REGISTER_FILE_URL",e.RESET="RESET",e.RUN_PREPARED="RUN_PREPARED",e.RUN_QUERY="RUN_QUERY",e.SEND_PREPARED="SEND_PREPARED",e.START_PENDING_QUERY="START_PENDING_QUERY",e.TOKENIZE="TOKENIZE",e))(ht||{}),Dt=(e=>(e.CONNECTION_INFO="CONNECTION_INFO",e.ERROR="ERROR",e.FEATURE_FLAGS="FEATURE_FLAGS",e.FILE_BUFFER="FILE_BUFFER",e.FILE_INFOS="FILE_INFOS",e.FILE_SIZE="FILE_SIZE",e.FILE_STATISTICS="FILE_STATISTICS",e.INSTANTIATE_PROGRESS="INSTANTIATE_PROGRESS",e.LOG="LOG",e.OK="OK",e.PREPARED_STATEMENT_ID="PREPARED_STATEMENT_ID",e.QUERY_PLAN="QUERY_PLAN",e.QUERY_RESULT="QUERY_RESULT",e.QUERY_RESULT_CHUNK="QUERY_RESULT_CHUNK",e.QUERY_RESULT_HEADER="QUERY_RESULT_HEADER",e.QUERY_RESULT_HEADER_OR_NULL="QUERY_RESULT_HEADER_OR_NULL",e.REGISTERED_FILE="REGISTERED_FILE",e.SCRIPT_TOKENS="SCRIPT_TOKENS",e.SUCCESS="SUCCESS",e.TABLE_NAMES="TABLE_NAMES",e.VERSION_STRING="VERSION_STRING",e))(Dt||{}),c=class{constructor(e,t){this.promiseResolver=()=>{},this.promiseRejecter=()=>{},this.type=e,this.data=t,this.promise=new Promise((r,s)=>{this.promiseResolver=r,this.promiseRejecter=s})}};function J(e){switch(e.typeId){case o.Type.Binary:return{sqlType:"binary"};case o.Type.Bool:return{sqlType:"bool"};case o.Type.Date:return{sqlType:"date"};case o.Type.DateDay:return{sqlType:"date32[d]"};case o.Type.DateMillisecond:return{sqlType:"date64[ms]"};case o.Type.Decimal:{let t=e;return{sqlType:"decimal",precision:t.precision,scale:t.scale}}case o.Type.Float:return{sqlType:"float"};case o.Type.Float16:return{sqlType:"float16"};case o.Type.Float32:return{sqlType:"float32"};case o.Type.Float64:return{sqlType:"float64"};case o.Type.Int:return{sqlType:"int32"};case o.Type.Int16:return{sqlType:"int16"};case o.Type.Int32:return{sqlType:"int32"};case o.Type.Int64:return{sqlType:"int64"};case o.Type.Uint16:return{sqlType:"uint16"};case o.Type.Uint32:return{sqlType:"uint32"};case o.Type.Uint64:return{sqlType:"uint64"};case o.Type.Uint8:return{sqlType:"uint8"};case o.Type.IntervalDayTime:return{sqlType:"interval[dt]"};case o.Type.IntervalYearMonth:return{sqlType:"interval[m]"};case o.Type.List:return{sqlType:"list",valueType:J(e.valueType)};case o.Type.FixedSizeBinary:return{sqlType:"fixedsizebinary",byteWidth:e.byteWidth};case o.Type.Null:return{sqlType:"null"};case o.Type.Utf8:return{sqlType:"utf8"};case o.Type.Struct:return{sqlType:"struct",fields:e.children.map(t=>re(t.name,t.type))};case o.Type.Map:{let t=e;return{sqlType:"map",keyType:J(t.keyType),valueType:J(t.valueType)}}case o.Type.Time:return{sqlType:"time[s]"};case o.Type.TimeMicrosecond:return{sqlType:"time[us]"};case o.Type.TimeMillisecond:return{sqlType:"time[ms]"};case o.Type.TimeNanosecond:return{sqlType:"time[ns]"};case o.Type.TimeSecond:return{sqlType:"time[s]"};case o.Type.Timestamp:return{sqlType:"timestamp",timezone:e.timezone||void 0};case o.Type.TimestampSecond:return{sqlType:"timestamp[s]",timezone:e.timezone||void 0};case o.Type.TimestampMicrosecond:return{sqlType:"timestamp[us]",timezone:e.timezone||void 0};case o.Type.TimestampNanosecond:return{sqlType:"timestamp[ns]",timezone:e.timezone||void 0};case o.Type.TimestampMillisecond:return{sqlType:"timestamp[ms]",timezone:e.timezone||void 0}}throw new Error("unsupported arrow type: ".concat(e.toString()))}function re(e,t){let r=J(t);return r.name=e,r}var gt=new TextEncoder,be=class{constructor(e,t=null){this._onInstantiationProgress=[],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),t!=null&&this.attach(t)}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((t,r)=>{this._workerShutdownResolver=t})}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,t=[]){if(!this._worker){console.error("cannot send a message since the worker is not set!");return}let r=this._nextMessageId++;return this._pendingRequests.set(r,e),this._worker.postMessage({messageId:r,type:e.type,data:e.data},t),await e.promise}onMessage(e){var t;let r=e.data;switch(r.type){case"LOG":{this._logger.log(r.data);return}case"INSTANTIATE_PROGRESS":{for(let n of this._onInstantiationProgress)n(r.data);return}}let s=this._pendingRequests.get(r.requestId);if(!s){console.warn("unassociated response: [".concat(r.requestId,", ").concat(r.type.toString(),"]"));return}if(this._pendingRequests.delete(r.requestId),r.type=="ERROR"){let n=new Error(r.data.message);n.name=r.data.name,(t=Object.getOwnPropertyDescriptor(n,"stack"))!=null&&t.writable&&(n.stack=r.data.stack),s.promiseRejecter(n);return}switch(s.type){case"CLOSE_PREPARED":case"COLLECT_FILE_STATISTICS":case"COPY_FILE_TO_PATH":case"DISCONNECT":case"DROP_FILE":case"DROP_FILES":case"FLUSH_FILES":case"INSERT_ARROW_FROM_IPC_STREAM":case"IMPORT_CSV_FROM_PATH":case"IMPORT_JSON_FROM_PATH":case"OPEN":case"PING":case"REGISTER_FILE_BUFFER":case"REGISTER_FILE_HANDLE":case"REGISTER_FILE_URL":case"RESET":if(r.type=="OK"){s.promiseResolver(r.data);return}break;case"INSTANTIATE":if(this._onInstantiationProgress=[],r.type=="OK"){s.promiseResolver(r.data);return}break;case"GLOB_FILE_INFOS":if(r.type=="FILE_INFOS"){s.promiseResolver(r.data);return}break;case"GET_VERSION":if(r.type=="VERSION_STRING"){s.promiseResolver(r.data);return}break;case"GET_FEATURE_FLAGS":if(r.type=="FEATURE_FLAGS"){s.promiseResolver(r.data);return}break;case"GET_TABLE_NAMES":if(r.type=="TABLE_NAMES"){s.promiseResolver(r.data);return}break;case"TOKENIZE":if(r.type=="SCRIPT_TOKENS"){s.promiseResolver(r.data);return}break;case"COPY_FILE_TO_BUFFER":if(r.type=="FILE_BUFFER"){s.promiseResolver(r.data);return}break;case"EXPORT_FILE_STATISTICS":if(r.type=="FILE_STATISTICS"){s.promiseResolver(r.data);return}break;case"CONNECT":if(r.type=="CONNECTION_INFO"){s.promiseResolver(r.data);return}break;case"RUN_PREPARED":case"RUN_QUERY":if(r.type=="QUERY_RESULT"){s.promiseResolver(r.data);return}break;case"SEND_PREPARED":if(r.type=="QUERY_RESULT_HEADER"){s.promiseResolver(r.data);return}break;case"START_PENDING_QUERY":if(r.type=="QUERY_RESULT_HEADER_OR_NULL"){s.promiseResolver(r.data);return}break;case"POLL_PENDING_QUERY":if(r.type=="QUERY_RESULT_HEADER_OR_NULL"){s.promiseResolver(r.data);return}break;case"CANCEL_PENDING_QUERY":if(this._onInstantiationProgress=[],r.type=="SUCCESS"){s.promiseResolver(r.data);return}break;case"FETCH_QUERY_RESULTS":if(r.type=="QUERY_RESULT_CHUNK"){s.promiseResolver(r.data);return}break;case"CREATE_PREPARED":if(r.type=="PREPARED_STATEMENT_ID"){s.promiseResolver(r.data);return}break}s.promiseRejecter(new Error("unexpected response type: ".concat(r.type.toString())))}onError(e){console.error(e),console.error("error in duckdb worker: ".concat(e.message)),this._pendingRequests.clear()}onClose(){if(this._workerShutdownResolver(null),this._pendingRequests.size!=0){console.warn("worker terminated with ".concat(this._pendingRequests.size," pending requests"));return}this._pendingRequests.clear()}async reset(){let e=new c("RESET",null);return await this.postTask(e)}async ping(){let e=new c("PING",null);await this.postTask(e)}async dropFile(e){let t=new c("DROP_FILE",e);return await this.postTask(t)}async dropFiles(){let e=new c("DROP_FILES",null);return await this.postTask(e)}async flushFiles(){let e=new c("FLUSH_FILES",null);return await this.postTask(e)}async instantiate(e,t=null,r=s=>{}){this._onInstantiationProgress.push(r);let s=new c("INSTANTIATE",[e,t]);return await this.postTask(s)}async getVersion(){let e=new c("GET_VERSION",null);return await this.postTask(e)}async getFeatureFlags(){let e=new c("GET_FEATURE_FLAGS",null);return await this.postTask(e)}async open(e){let t=new c("OPEN",e);await this.postTask(t)}async tokenize(e){let t=new c("TOKENIZE",e);return await this.postTask(t)}async connectInternal(){let e=new c("CONNECT",null);return await this.postTask(e)}async connect(){let e=await this.connectInternal();return new mt(this,e)}async disconnect(e){let t=new c("DISCONNECT",e);await this.postTask(t)}async runQuery(e,t){let r=new c("RUN_QUERY",[e,t]);return await this.postTask(r)}async startPendingQuery(e,t){let r=new c("START_PENDING_QUERY",[e,t]);return await this.postTask(r)}async pollPendingQuery(e){let t=new c("POLL_PENDING_QUERY",e);return await this.postTask(t)}async cancelPendingQuery(e){let t=new c("CANCEL_PENDING_QUERY",e);return await this.postTask(t)}async fetchQueryResults(e){let t=new c("FETCH_QUERY_RESULTS",e);return await this.postTask(t)}async getTableNames(e,t){let r=new c("GET_TABLE_NAMES",[e,t]);return await this.postTask(r)}async createPrepared(e,t){let r=new c("CREATE_PREPARED",[e,t]);return await this.postTask(r)}async closePrepared(e,t){let r=new c("CLOSE_PREPARED",[e,t]);await this.postTask(r)}async runPrepared(e,t,r){let s=new c("RUN_PREPARED",[e,t,r]);return await this.postTask(s)}async sendPrepared(e,t,r){let s=new c("SEND_PREPARED",[e,t,r]);return await this.postTask(s)}async globFiles(e){let t=new c("GLOB_FILE_INFOS",e);return await this.postTask(t)}async registerFileText(e,t){let r=gt.encode(t);await this.registerFileBuffer(e,r)}async registerFileURL(e,t,r,s){t===void 0&&(t=e);let n=new c("REGISTER_FILE_URL",[e,t,r,s]);await this.postTask(n)}async registerEmptyFileBuffer(e){let t=new c("REGISTER_FILE_BUFFER",[e,new Uint8Array]);await this.postTask(t)}async registerFileBuffer(e,t){let r=new c("REGISTER_FILE_BUFFER",[e,t]);await this.postTask(r,[t.buffer])}async registerFileHandle(e,t,r,s){let n=new c("REGISTER_FILE_HANDLE",[e,t,r,s]);await this.postTask(n,[])}async collectFileStatistics(e,t){let r=new c("COLLECT_FILE_STATISTICS",[e,t]);await this.postTask(r,[])}async exportFileStatistics(e){let t=new c("EXPORT_FILE_STATISTICS",e);return await this.postTask(t,[])}async copyFileToBuffer(e){let t=new c("COPY_FILE_TO_BUFFER",e);return await this.postTask(t)}async copyFileToPath(e,t){let r=new c("COPY_FILE_TO_PATH",[e,t]);await this.postTask(r)}async insertArrowFromIPCStream(e,t,r){if(t.length==0)return;let s=new c("INSERT_ARROW_FROM_IPC_STREAM",[e,t,r]);await this.postTask(s,[t.buffer])}async insertCSVFromPath(e,t,r){if(r.columns!==void 0){let n=[];for(let a in r.columns){let i=r.columns[a];n.push(re(a,i))}r.columnsFlat=n,delete r.columns}let s=new c("IMPORT_CSV_FROM_PATH",[e,t,r]);await this.postTask(s)}async insertJSONFromPath(e,t,r){if(r.columns!==void 0){let n=[];for(let a in r.columns){let i=r.columns[a];n.push(re(a,i))}r.columnsFlat=n,delete r.columns}let s=new c("IMPORT_JSON_FROM_PATH",[e,t,r]);await this.postTask(s)}};var se={name:"@duckdb/duckdb-wasm",version:"1.11.0",description:"DuckDB powered by WebAssembly",license:"MIT",repository:{type:"git",url:"https://github.com/duckdb/duckdb-wasm.git"},keywords:["sql","duckdb","relational","database","data","query","wasm","analytics","olap","arrow","parquet","json","csv"],dependencies:{"apache-arrow":"^14.0.1"},devDependencies:{"@types/emscripten":"^1.39.10","@types/jasmine":"^5.1.4","@typescript-eslint/eslint-plugin":"^6.18.0","@typescript-eslint/parser":"^6.18.0",esbuild:"^0.20.0",eslint:"^8.56.0","eslint-plugin-jasmine":"^4.1.3","eslint-plugin-react":"^7.33.2","fast-glob":"^3.3.2",jasmine:"^5.1.0","jasmine-core":"^5.1.1","jasmine-spec-reporter":"^7.0.0","js-sha256":"^0.11.0",karma:"^6.4.2","karma-chrome-launcher":"^3.2.0","karma-coverage":"^2.2.1","karma-firefox-launcher":"^2.1.2","karma-jasmine":"^5.1.0","karma-jasmine-html-reporter":"^2.1.0","karma-sourcemap-loader":"^0.4.0","karma-spec-reporter":"^0.0.36","make-dir":"^4.0.0",nyc:"^15.1.0",prettier:"^3.2.4",puppeteer:"^21.7.0",rimraf:"^5.0.5",s3rver:"^3.7.1",typedoc:"^0.25.7",typescript:"^5.3.3","wasm-feature-detect":"^1.6.1","web-worker":"^1.2.0"},scripts:{"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 ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs","test:node:debug":"node --inspect-brk --enable-source-maps ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs","test:node:coverage":"nyc -r json --report-dir ./coverage/node node ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs","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:browser":"karma start ./karma/tests-all.cjs","test:browser: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"},files:["dist","!dist/types/test"],main:"dist/duckdb-browser.cjs",module:"dist/duckdb-browser.mjs",types:"dist/duckdb-browser.d.ts",jsdelivr:"dist/duckdb-browser.cjs",unpkg:"dist/duckdb-browser.mjs",sideEffects:!1,browser:{fs:!1,path:!1,perf_hooks:!1,os:!1,worker_threads:!1},exports:{"./dist/duckdb-mvp.wasm":"./dist/duckdb-mvp.wasm","./dist/duckdb-eh.wasm":"./dist/duckdb-eh.wasm","./dist/duckdb-coi.wasm":"./dist/duckdb-coi.wasm","./dist/duckdb-browser":"./dist/duckdb-browser.mjs","./dist/duckdb-browser.cjs":"./dist/duckdb-browser.cjs","./dist/duckdb-browser.mjs":"./dist/duckdb-browser.mjs","./dist/duckdb-browser-blocking":"./dist/duckdb-browser-blocking.mjs","./dist/duckdb-browser-blocking.mjs":"./dist/duckdb-browser-blocking.mjs","./dist/duckdb-browser-blocking.cjs":"./dist/duckdb-browser-blocking.cjs","./dist/duckdb-browser-coi.pthread.worker.js":"./dist/duckdb-browser-coi.pthread.worker.js","./dist/duckdb-browser-coi.worker.js":"./dist/duckdb-browser-coi.worker.js","./dist/duckdb-browser-eh.worker.js":"./dist/duckdb-browser-eh.worker.js","./dist/duckdb-browser-mvp.worker.js":"./dist/duckdb-browser-mvp.worker.js","./dist/duckdb-node":"./dist/duckdb-node.cjs","./dist/duckdb-node.cjs":"./dist/duckdb-node.cjs","./dist/duckdb-node-blocking":"./dist/duckdb-node-blocking.cjs","./dist/duckdb-node-blocking.cjs":"./dist/duckdb-node-blocking.cjs","./dist/duckdb-node-eh.worker.cjs":"./dist/duckdb-node-eh.worker.cjs","./dist/duckdb-node-mvp.worker.cjs":"./dist/duckdb-node-mvp.worker.cjs","./blocking":{browser:{types:"./dist/duckdb-browser-blocking.d.ts",import:"./dist/duckdb-browser-blocking.mjs",require:"./dist/duckdb-browser-blocking.cjs"},node:{types:"./dist/duckdb-node-blocking.d.ts",require:"./dist/duckdb-node-blocking.cjs",import:"./dist/duckdb-node-blocking.cjs"},types:"./dist/duckdb-browser-blocking.d.ts",import:"./dist/duckdb-browser-blocking.mjs",require:"./dist/duckdb-browser-blocking.cjs"},".":{browser:{types:"./dist/duckdb-browser.d.ts",import:"./dist/duckdb-browser.mjs",require:"./dist/duckdb-browser.cjs"},node:{types:"./dist/duckdb-node.d.ts",import:"./dist/duckdb-node.cjs",require:"./dist/duckdb-node.cjs"},types:"./dist/duckdb-browser.d.ts",import:"./dist/duckdb-browser.mjs",require:"./dist/duckdb-browser.cjs"}}},Br=se.name,Ar=se.version,ne=se.version.split("."),Or=ne[0],Fr=ne[1],Lr=ne[2];var Cr=at(it());function Tt(){let e=new TextDecoder;return t=>(typeof SharedArrayBuffer<"u"&&t.buffer instanceof SharedArrayBuffer&&(t=new Uint8Array(t)),e.decode(t))}var Mr=Tt(),ae=(e=>(e[e.BUFFER=0]="BUFFER",e[e.NODE_FS=1]="NODE_FS",e[e.BROWSER_FILEREADER=2]="BROWSER_FILEREADER",e[e.BROWSER_FSACCESS=3]="BROWSER_FSACCESS",e[e.HTTP=4]="HTTP",e[e.S3=5]="S3",e))(ae||{});var _=class{singleValue(){let{columnCount:t,rowCount:r}=this;if(t===0)throw Error("no column data");if(r===0)throw Error("no rows");if(t>1)throw Error("more than one column");if(r>1)throw Error("more than one row");return this.value(0,0)}columnNames(){let{columnCount:t}=this,r=[];for(let s=0;s<t;s++)r.push(this.columnName(s));return r}deduplicatedColumnNames(){let{columnCount:t}=this,r=[],s={};for(let n=0;n<t;n++){let a=this.columnName(n),i=(s[a]||0)+1;s[a]=i,i>1?r.push(`${a}:${i-1}`):r.push(a)}return r}toRows(){let{rowCount:t,columnCount:r}=this,s=this.deduplicatedColumnNames(),n=[];for(let a=0;a<t;a++){let i={};for(let l=0;l<r;l++)i[s[l]]=this.value(l,a);n.push(i)}return n}};import{DateUnit as Ie,IntervalUnit as ie,Precision as oe,TimeUnit as R,Type as m,UnionMode as _e}from"apache-arrow";function I(e){switch(e.typeId){case m.Null:return u.SQLNULL;case m.Int:{let{isSigned:t,bitWidth:r}=e;if(t)switch(r){case 8:return u.TINYINT;case 16:return u.SMALLINT;case 32:return u.INTEGER;case 64:return u.BIGINT;default:throw Error(`unexpected integer bit width: ${r}`)}else switch(r){case 8:return u.UTINYINT;case 16:return u.USMALLINT;case 32:return u.UINTEGER;case 64:return u.UBIGINT;default:throw Error(`unexpected integer bit width: ${r}`)}}case m.Float:{let{precision:t}=e;switch(t){case oe.HALF:throw Error("DuckDB does not support half-precision floats");case oe.SINGLE:return u.REAL;case oe.DOUBLE:return u.DOUBLE;default:throw Error(`unexpected precision: ${t}`)}}case m.Binary:return u.BLOB;case m.Utf8:return u.VARCHAR;case m.Bool:return u.BOOLEAN;case m.Decimal:{let{precision:t,scale:r}=e;return(t==null||t===18)&&(r==null||r===3)?u.DECIMAL():u.DECIMAL(t,r)}case m.Date:{let{unit:t}=e;switch(t){case Ie.DAY:return u.DATE;case Ie.MILLISECOND:throw Error("DuckDB does not support millisecond-unit dates");default:throw Error(`unexpected date unit: ${t}`)}}case m.Time:{let{unit:t}=e;switch(t){case R.SECOND:throw Error("DuckDB does not support second-unit times");case R.MILLISECOND:throw Error("DuckDB does not support millisecond-unit times");case R.MICROSECOND:return u.TIME;case R.NANOSECOND:throw Error("DuckDB does not support nanosecond-unit times");default:throw Error(`unexpected time unit: ${t}`)}}case m.Timestamp:{let{unit:t,timezone:r}=e;switch(t){case R.SECOND:if(r)throw Error("DuckDB does not support second-unit timestamps with timezone");return u.TIMESTAMP_S;case R.MILLISECOND:if(r)throw Error("DuckDB does not support millisecond-unit timestamps with timezone");return u.TIMESTAMP_MS;case R.MICROSECOND:return r?u.TIMESTAMP_TZ:u.TIMESTAMP;case R.NANOSECOND:if(r)throw Error("DuckDB does not support nanosecond-unit timestamps with timezone");return u.TIMESTAMP_NS;default:throw Error(`unexpected time unit: ${t}`)}}case m.Interval:{let{unit:t}=e;switch(t){case ie.YEAR_MONTH:throw Error("DuckDB does not support year-month intervals");case ie.DAY_TIME:throw Error("DuckDB does not support day-time intervals");case ie.MONTH_DAY_NANO:return u.INTERVAL;default:throw Error(`unexpected interval unit: ${t}`)}}case m.List:{let{valueType:t}=e;return u.LIST(I(t))}case m.Struct:{let{children:t}=e,r=t.map(s=>({key:s.name,valueType:I(s.type)}));return u.STRUCT(r)}case m.Union:{let{mode:t}=e;switch(t){case _e.Dense:throw Error("DuckDB does not support dense unions");case _e.Sparse:{let r=e.children.map(s=>({tag:s.name,valueType:I(s.type)}));return u.UNION(r)}default:throw Error(`unexpected union mode: ${t}`)}}case m.FixedSizeBinary:throw Error("DuckDB does not support fixed-size binary");case m.FixedSizeList:throw Error("DuckDB does not support fixed-size lists");case m.Map:{let{keyType:t,valueType:r}=e;return u.MAP(I(t),I(r))}case m.Dictionary:return u.ENUM;default:throw Error(`unexpected type id: ${e.typeId}`)}}import{DateUnit as Ce,IntervalUnit as he,Precision as De,TimeUnit as b,Type as p,UnionMode as Me}from"apache-arrow";function fe(e){let t="";for(let r of e)r<=31||r===34||r===39||r>=127?t+=`\\x${r.toString(16).toUpperCase().padStart(2,"0")}`:t+=String.fromCharCode(r);return t}var d=class{toString(){return this.toDuckDBString()}};var O=class extends d{constructor(r){super();this.bytes=r}toDuckDBString(){return fe(this.bytes)}};var ue=BigInt(1e6),Et=BigInt(1e3),kt=BigInt(1e3),we=BigInt(60),Ne=BigInt(60),X=BigInt(864e8),yt=BigInt("-9223372036854775807"),Rt=BigInt("9223372036854775807");function St(e,t,r){let s=String(Math.abs(e)).padStart(4,"0"),n=String(t).padStart(2,"0"),a=String(r).padStart(2,"0");return`${s}-${n}-${a}${e<0?" (BC)":""}`}function de(e){let t=Math.abs(e),r=e<0?-1:1,s=Math.floor(t/146097),n=r*s*400,a=t%146097,i=r*a*864e5,l=new Date(i),h=n+l.getUTCFullYear();h<0&&h--;let T=l.getUTCMonth()+1,A=l.getUTCDate();return St(h,T,A)}function bt(e,t,r,s){let n=String(e).padStart(2,"0"),a=String(t).padStart(2,"0"),i=String(r).padStart(2,"0"),l=String(s).padStart(6,"0").replace(/0+$/,"");return`${n}:${a}:${i}${l.length>0?`.${l}`:""}`}function Be(e){let t=e%ue,r=e/ue,s=r%we,n=r/we,a=n%Ne,i=n/Ne;return bt(i,a,s,t)}function le(e){let t=e<0?e+X:e;return Be(t)}function It(e){let t=e<0,r=t?-e:e,s=Be(r);return t?`-${s}`:s}function _t(e,t,r){let s=de(Number(e)),n=le(t),a=r?` ${r}`:"";return`${s} ${n}${a}`}function F(e,t){if(e===yt)return"-infinity";if(e===Rt)return"infinity";let r=e/X,s=e%X;return s<0&&(r--,s+=X),_t(r,s,t)}function Ae(e,t){return F(e*ue,t)}function Oe(e,t){return F(e*Et,t)}function Fe(e,t){return F(e/kt,t)}function ce(e,t){return`${e} ${t}${e!==1?"s":""}`}function Le(e,t,r){let s=[];if(e!==0){let n=e<0?-1:1,a=Math.abs(e),i=Math.floor(a/12),l=n*i,h=n*(a-i*12);l!==0&&s.push(ce(l,"year")),h!==0&&s.push(ce(h,"month"))}return t!==0&&s.push(ce(t,"day")),r!==BigInt(0)&&s.push(It(r)),s.length>0?s.join(" "):"00:00:00"}var L=class extends d{constructor(r){super();this.days=r}toDuckDBString(){return de(this.days)}};function ft(e){return new Intl.NumberFormat(e,{useGrouping:!1}).formatToParts(.1).find(r=>r.type==="decimal")?.value??"."}var me={};function wt(e){let t=JSON.stringify(e);if(t in me)return me[t];let r=ft(e);return me[t]=r,r}function Nt(e,t){if(e){let{minimumFractionDigits:r,maximumFractionDigits:s,...n}=e.options??{};return t.toLocaleString(e?.locales,n)}return String(t)}function Bt(e,t,r){let s=String(t).padStart(r,"0");if(!e)return s;let n=e?.options?.minimumFractionDigits??0,a=e?.options?.maximumFractionDigits??20;return s.padEnd(n,"0").slice(0,a)}function pe(e,t,r){if(t>0){let s=BigInt(10)**BigInt(t),n=e<0?-e:e,a=e<0?"-":"",i=n/s,l=Nt(r,i),h=n%s,T=Bt(r,h,t),A=r?wt(r.locales):".";return`${a}${l}${A}${T}`}return r?e.toLocaleString(r?.locales,r?.options):String(e)}var C=class extends d{constructor(r,s){super();this.scaledValue=r,this.scale=s}toDuckDBString(){return pe(this.scaledValue,this.scale)}toLocaleString(r,s){return pe(this.scaledValue,this.scale,{locales:r,options:s})}};var M=class extends d{constructor(r,s,n){super();this.months=r,this.days=s,this.microseconds=n}toDuckDBString(){return Le(this.months,this.days,this.microseconds)}};function S(e){return e==null?"NULL":typeof e=="string"?`'${e.replace("'","''")}'`:String(e)}var P=class extends d{constructor(r){super();this.values=r}toDuckDBString(){return`[${this.values.map(S).join(", ")}]`}};var v=class extends d{constructor(r){super();this.entries=r}toDuckDBString(){return`{${this.entries.map(({key:s,value:n})=>`${S(s)}: ${S(n)}`).join(", ")}}`}};var U=class extends d{constructor(r){super();this.entries=r}toDuckDBString(){return`{${this.entries.map(({key:s,value:n})=>`${S(s)}: ${S(n)}`).join(", ")}}`}};var x=class extends d{constructor(r){super();this.microseconds=r}toDuckDBString(){return le(this.microseconds)}};var Q=class extends d{constructor(r,s){super();this.microseconds=r,this.timezone=s}toDuckDBString(){return F(this.microseconds,this.timezone)}};var q=class extends d{constructor(r){super();this.milliseconds=r}toDuckDBString(){return Oe(this.milliseconds)}};var j=class extends d{constructor(r){super();this.nanoseconds=r}toDuckDBString(){return Fe(this.nanoseconds)}};var V=class extends d{constructor(r){super();this.seconds=r}toDuckDBString(){return Ae(this.seconds)}};var At=new TextDecoder;function Ot(e,t,r){return e.getValid(t)?r(e,t):null}function D(e){return(t,r)=>Ot(t,r,e)}function Ft(e,t,r,s){return Array.from({length:r-t}).map((n,a)=>s(e,t+a))}function Pe(e){return new BigInt64Array(e.values.buffer,e.values.byteOffset,e.values.length/2)}function G(e,t){return Pe(e)[t]}function Lt(e,t){let r=Pe(e),s=r[t*2];return(r[t*2+1]<<BigInt(64))+(s&BigInt.asUintN(64,BigInt(-1)))}function ve(e,t){let{values:r,valueOffsets:s}=e,n=s[t],a=s[t+1];return r.subarray(n,a)}function Ct(e,t){return null}function Mt(e,t){return e.values[t]}var k=D(Mt);function Pt(e,t){return new O(ve(e,t))}var vt=D(Pt);function Ut(e,t){return At.decode(ve(e,t))}var xt=D(Ut);function Qt(e,t){let r=e.offset+t;return(e.values[r>>3]&1<<r%8)!==0}var qt=D(Qt);function jt(e,t){return new C(Lt(e,t),e.type.scale)}var Vt=D(jt);function Gt(e,t){return new L(e.values[t])}var Wt=D(Gt);function Yt(e,t){return new x(e.values[t])}var $t=D(Yt);function Ht(e,t){return new V(G(e,t))}var zt=D(Ht);function Kt(e,t){return new q(G(e,t))}var Jt=D(Kt);function Zt(e,t){return new Q(G(e,t),e.type.timezone)}var Xt=D(Zt);function er(e,t){return new j(G(e,t))}var tr=D(er);function rr(e,t){return new M(e.values[t*4],e.values[t*4+1],G(e,t*2+1)/BigInt(1e3))}var sr=D(rr);function nr(e,t){let{children:r,valueOffsets:s}=e,n=s[t],a=s[t+1];return new P(pr(r[0],n,a))}var ar=D(nr);function ir(e,t){let r=[],{children:s,type:n}=e,a=n.children;for(let i=0;i<s.length;i++){let l=s[i],h=a[i].name,T=f(l,t);r.push({key:h,value:T})}return new U(r)}var or=D(ir);function cr(e,t){let{children:r,typeIds:s}=e,n=s[t],a=e.type.typeIdToChildIndex[n],i=r[a];return f(i,t)}function ur(e,t){let r=[],{children:s,valueOffsets:n}=e,a=n[t],i=n[t+1],[l,h]=s[0].children;for(let T=a;T<i;T++)r.push({key:f(l,T),value:f(h,T)});return new v(r)}var dr=D(ur);function lr(e,t){return e.dictionary&&e.dictionary.length>0?e.dictionary.get(e.values[t]):e.values[t]}var mr=D(lr);function Ue(e){switch(e.typeId){case p.Null:return Ct;case p.Int:{let{isSigned:t,bitWidth:r}=e;if(t)switch(r){case 8:return k;case 16:return k;case 32:return k;case 64:return k;default:throw Error(`unexpected integer bit width: ${r}`)}else switch(r){case 8:return k;case 16:return k;case 32:return k;case 64:return k;default:throw Error(`unexpected integer bit width: ${r}`)}}case p.Float:{let{precision:t}=e;switch(t){case De.HALF:throw Error("DuckDB does not support half-precision floats");case De.SINGLE:return k;case De.DOUBLE:return k;default:throw Error(`unexpected precision: ${t}`)}}case p.Binary:return vt;case p.Utf8:return xt;case p.Bool:return qt;case p.Decimal:return Vt;case p.Date:{let{unit:t}=e;switch(t){case Ce.DAY:return Wt;case Ce.MILLISECOND:throw Error("DuckDB does not support millisecond-unit dates");default:throw Error(`unexpected date unit: ${t}`)}}case p.Time:{let{unit:t}=e;switch(t){case b.SECOND:throw Error("DuckDB does not support second-unit times");case b.MILLISECOND:throw Error("DuckDB does not support millisecond-unit times");case b.MICROSECOND:return $t;case b.NANOSECOND:throw Error("DuckDB does not support nanosecond-unit times");default:throw Error(`unexpected time unit: ${t}`)}}case p.Timestamp:{let{unit:t,timezone:r}=e;switch(t){case b.SECOND:if(r)throw Error("DuckDB does not support second-unit timestamps with time zone");return zt;case b.MILLISECOND:if(r)throw Error("DuckDB does not support millisecond-unit timestamps with time zone");return Jt;case b.MICROSECOND:return Xt;case b.NANOSECOND:if(r)throw Error("DuckDB does not support nanosecond-unit timestamps with time zone");return tr;default:throw Error(`unexpected time unit: ${t}`)}}case p.Interval:{let{unit:t}=e;switch(t){case he.YEAR_MONTH:throw Error("DuckDB does not support year-month intervals");case he.DAY_TIME:throw Error("DuckDB does not support day-time intervals");case he.MONTH_DAY_NANO:return sr;default:throw Error(`unexpected interval unit: ${t}`)}}case p.List:return ar;case p.Struct:return or;case p.Union:{let{mode:t}=e;switch(t){case Me.Dense:throw Error("DuckDB does not support dense unions");case Me.Sparse:return cr;default:throw Error(`unexpected union mode: ${t}`)}}case p.FixedSizeBinary:throw Error("DuckDB does not support fixed-size binary");case p.FixedSizeList:throw Error("DuckDB does not support fixed-size lists");case p.Map:return dr;case p.Dictionary:return mr;default:throw Error(`unexpected type id: ${e.typeId}`)}}function f(e,t){return Ue(e.type)(e,t)}function pr(e,t,r){let s=Ue(e.type);return Ft(e,t,r,s)}var ee=class extends _{constructor(r){super();this.recordBatch=r}get columnCount(){return this.recordBatch.schema.fields.length}get rowCount(){return this.recordBatch.data.length}columnName(r){return this.recordBatch.schema.fields[r].name}columnType(r){let s=this.recordBatch.schema.fields[r];return I(s.type)}value(r,s){let n=this.recordBatch.data.children[r];return f(n,s)}};var ge=Object.freeze({done:!0,value:void 0}),w=class{constructor(t){this.recordBatchIterator=t}async next(){let{done:t,value:r}=await this.recordBatchIterator.next();return r?{done:!!t,value:new ee(r)}:ge}async return(t){return this.recordBatchIterator.return&&await this.recordBatchIterator.return(),t?{done:!0,value:t}:ge}async throw(t){return this.recordBatchIterator.throw&&await this.recordBatchIterator.throw(t),ge}[Symbol.asyncIterator](){return this}};var N=class extends _{constructor(r){super();this.iteratorDone=!1;this.totalRowsRead=0;this.batches=[];this.batchSizeRuns=[];this.iterator=r}get columnCount(){return this.batches.length===0?0:this.batches[0].columnCount}get rowCount(){return this.totalRowsRead}columnName(r){if(this.batches.length===0)throw Error("no column data");return this.batches[0].columnName(r)}columnType(r){if(this.batches.length===0)throw Error("no column data");return this.batches[0].columnType(r)}value(r,s){if(this.totalRowsRead===0)throw Error("no data");let n=0,a=s;for(let i of this.batchSizeRuns){if(a<i.rowCount){n+=Math.floor(a/i.batchSize);let l=a%i.batchSize;return this.batches[n].value(r,l)}n+=i.batchCount,a-=i.rowCount}throw Error(`Row index ${s} requested, but only ${this.totalRowsRead} row have been read so far.`)}get done(){return this.iteratorDone}async readAll(){return this.read()}async readUntil(r){return this.read(r)}async read(r){for(;!(this.iteratorDone||r!==void 0&&this.totalRowsRead>=r);){let{value:s,done:n}=await this.iterator.next();s&&(this.updateBatchSizeRuns(s),this.batches.push(s),this.totalRowsRead+=s.rowCount),n&&(this.iteratorDone=n)}}updateBatchSizeRuns(r){if(this.batchSizeRuns.length>0){let s=this.batchSizeRuns[this.batchSizeRuns.length-1];if(s.batchSize===r.rowCount){s.batchCount+=1,s.rowCount+=s.batchSize;return}}this.batchSizeRuns.push({batchCount:1,batchSize:r.rowCount,rowCount:r.rowCount})}};var B=class{constructor(t,r,s){this.connection=null;this.deferredConnection=t,this.query=r,this.args=s}async run(){let t=performance.now(),r=await this.sendQuery(),s=new w(r),n=new N(s);await n.readAll();let a=performance.now();return{type:"materialized",startTimeMs:t,endTimeMs:a,data:n}}async cancel(){return(this.connection||await this.getConnection()).cancelSent()}async getConnection(){return this.connection=await this.deferredConnection,this.connection}async sendQuery(){let t=this.connection||await this.getConnection();return this.args&&this.args?.length>0?(await t.prepare(this.query)).send(...this.args):t.send(this.query)}};var W=class{constructor(t,r,s){this.connection=null;this.deferredConnection=t,this.query=r,this.args=s}async run(){let t=await this.sendQuery(),r=new w(t),s=new N(r);return{type:"streaming",arrowStream:t,dataStream:r,dataReader:s}}async cancel(){return(this.connection||await this.getConnection()).cancelSent()}async getConnection(){return this.connection=await this.deferredConnection,this.connection}async sendQuery(){let t=this.connection||await this.getConnection();return this.args&&this.args?.length>0?(await t.prepare(this.query)).send(this.args):t.send(this.query)}};function xe(){throw new Error("should never be called")}function Qe(){let e=xe,t=xe;return{promise:new Promise((s,n)=>{e=s,t=n}),resolve:e,reject:t}}var te=class{constructor(t){this.nextTaskId=1;this.queuedTaskIds=[];this.queuedTasksById={};this.processingQueue=!1;this.logSink=t}incompleteTaskCount(){let t=0;for(let r of this.queuedTaskIds){let s=this.queuedTasksById[r];s&&(s.state===0||s.state===1)&&t++}return t}enqueueTask(t){let r=this.createTaskId();return this.logDebug(`enqueueTask: creating task id = ${r}`),this.addQueuedTask({id:r,task:t,state:0,deferred:Qe(),cancelled:!1}),this.scheduleProcessQueueIfNeeded(),r}async cancelTask(t,r){this.logDebug(`cancelTask(${t}): called`);let s=this.queuedTasksById[t];if(!s)throw new Error(`Task with id ${t} not found`);switch(s.state){case 0:return s.cancelled?this.logDebug(`cancelTask(${t}): cancelling pending task (already cancelled)`):(this.logDebug(`cancelTask(${t}): cancelling pending task`),s.cancelled=!0,s.deferred.reject(new Error(r??"pending task cancelled")),this.scheduleProcessQueueIfNeeded()),!0;case 1:return this.logDebug(`cancelTask(${t}): cancelling running task`),s.cancelled=!0,s.task.cancel();case 2:return this.logDebug(`cancelTask(${t}): can't cancel resolved task`),!1;case 3:return this.logDebug(`cancelTask(${t}): can't cancel rejected task`),!1;default:throw s.state,new Error("unreachable")}}taskResult(t){this.logDebug(`taskResults(${t}): called`);let r=this.queuedTasksById[t];if(!r)throw new Error(`Task with id ${t} not found`);return r.deferred.promise}logDebug(t){this.logSink&&this.logSink.debug(t)}logWarn(t){this.logSink&&this.logSink.warn(t)}createTaskId(){return`t${this.nextTaskId++}`}addQueuedTask(t){this.queuedTaskIds.push(t.id),this.queuedTasksById[t.id]=t}scheduleProcessQueueIfNeeded(){this.processingQueue?this.logDebug("scheduleProcessQueueIfNeeded: processQueue already scheduled"):(this.logDebug("scheduleProcessQueueIfNeeded: scheduling processQueue"),this.processingQueue=!0,setTimeout(()=>{this.processQueue(),this.processingQueue=!1},0))}processQueue(){this.logDebug("processQueue: processing started");let t;do t=this.processFirstQueuedTask();while(t);this.logDebug("processQueue: processing completed")}processFirstQueuedTask(){if(this.queuedTaskIds.length===0)return this.logDebug("processFirstQueuedTask: queue empty"),!1;let t=this.queuedTaskIds[0];this.logDebug(`processFirstQueuedTask: processing task ${t}`);let r=this.queuedTasksById[t];if(!r)return this.logWarn(`processFirstQueuedTask: task ${t} not found in map`),this.queuedTaskIds.shift(),!0;switch(r.state){case 0:return r.cancelled?(this.logDebug(`processFirstQueuedTask: removing cancelled pending task ${t} from queue`),this.queuedTaskIds.shift(),delete this.queuedTasksById[r.id],!0):(this.logDebug(`processFirstQueuedTask: running pending task ${t}`),r.state=1,r.task.run().then(s=>{this.logDebug(`processFirstQueuedTask: task ${t} resolved`),r.state=2,r.deferred.resolve(s)}).catch(s=>{this.logDebug(`processFirstQueuedTask: task ${t} rejected`),r.state=3,r.deferred.reject(s)}).finally(()=>{this.scheduleProcessQueueIfNeeded()}),!1);case 1:return this.logDebug(`processFirstQueuedTask: task ${t} at front of queue is already running`),!1;case 2:case 3:return this.logDebug(`processFirstQueuedTask: task ${t} at front of queue is completed, removing from queue`),this.queuedTaskIds.shift(),delete this.queuedTasksById[r.id],!0;default:throw r.state,new Error("unreachable")}}};var Te="CatalogChangeEvent",Y=null;async function Ge(e){let r=await(await $(e)).connect();return e.skipWelcomePack||await r.query("PRAGMA MD_USE_DEFAULT"),r}async function $(e){return Y||(Y=gr(e),Y)}function hr(e){return e?e.endsWith("/")?e:`${e}/`:"https://app.motherduck.com/"}async function Dr(e,t){let r=We(t),s=`${e}${r}${r.length>0?"/":""}`,n=`${s}duckdb-assets.json`,i=await(await fetch(n)).json();return i.coi&&(i.coi.mainModule=s+i.coi.mainModule,i.coi.mainWorker=s+i.coi.mainWorker,i.coi.pthreadWorker=s+i.coi.pthreadWorker),i.mvp&&(i.mvp.mainModule=s+i.mvp.mainModule,i.mvp.mainWorker=s+i.mvp.mainWorker),i.eh&&(i.eh.mainModule=s+i.eh.mainModule,i.eh.mainWorker=s+i.eh.mainWorker),i}function qe(e,t){return URL.createObjectURL(new Blob([`importScripts("${t}");`],{type:"text/javascript"}))}async function gr(e){let t=await Rr(),r=hr(e.duckDBAssetsURLPrefix),s=e.version||await kr(r),n=await Dr(r,s),a=e.useDuckDBWasmCOI?n.coi:n.eh;if(!a)throw new Error("Could not find DuckDB WASM asset URLs in duckdb-assets.json");let i=/^https?:\/\//.test(r),l=i?qe(r,a.mainWorker):a.mainWorker,h=i&&a.pthreadWorker?qe(r,a.pthreadWorker):a.pthreadWorker,T=new Worker(l);T.addEventListener("message",g=>{g?.data?.type==="MD_EVENT"&&(g.data.name===Te?document.dispatchEvent(new CustomEvent(Te,{detail:g.data})):console.error("Received unknown event",g.data))}),t||T.addEventListener("message",g=>{if(g&&g.data&&g.data.type==="Initialize"){let K=new Worker(g.data.workerUrl);URL.revokeObjectURL(g.data.workerUrl),K.postMessage(g.data,[g.data.port])}});let A=e.enableDebugLogging?Z.INFO:Z.WARNING,Ke=new Re(A),H=new be(Ke,T);await H.instantiate(a.mainModule,h),i&&(URL.revokeObjectURL(l),h&&URL.revokeObjectURL(h));let y=await H.connect();await yr(y,r,s),await y.query("LOAD icu;");let z=new URL(e.mdServerURL||"https://api.motherduck.com");await y.query(`SET motherduck_host='${z.hostname}';`),z.port&&await y.query(`SET motherduck_port='${z.port}';`),z.protocol==="http:"&&await y.query("SET motherduck_use_tls=false;"),await y.query(`SET motherduck_token='${e.mdToken}';`);let Ee=!1;for(let g=0;g<6e3;++g){if(await Tr(y)){Ee=!0;break}await new Promise(K=>setTimeout(K,10))}if(!Ee)throw new Error("Could not initialize worker after 1 minute.");let Je=e.enableDebugLogging?"debug":"error";return await y.query(`SET motherduck_log_level='${Je}';`),Y=H,H}async function Tr(e){return(await e.query("from MD_IS_NETWORK_READY();")).toArray()[0].Success}var Er="0.9.2",je="app.motherduck.com",Ve="app.staging.motherduck.com";async function kr(e){let t=e.startsWith(`https://${je}`),r=e.startsWith(`https://${Ve}`);return t||r?(await(await fetch(`${e}duckdb_version_range/${Er}/manifest`)).json())[r?Ve:je]:(await(await fetch(`${e}version`)).json()).version}function We(e){return!e||e.startsWith("DEV-")?"":e}async function yr(e,t,r){let s=We(r),n=t==="/"?`${window.origin}${s.length>0?"/":""}`:t;await e.query([`SET custom_extension_repository="${n}${s}";`,"LOAD motherduck;","RESET custom_extension_repository;"].join(""))}async function Rr(){return new Promise(e=>{let t=URL.createObjectURL(new Blob(["self.postMessage({ canCreateWorker: !!self.Worker });"],{type:"application/javascript"})),r=new Worker(t);URL.revokeObjectURL(t),r.addEventListener("message",s);function s(n){r.removeEventListener("message",s),r.terminate(),e(n.data.canCreateWorker)}})}function Ye(e){let t=/^[^{]*({.*})/.exec(e);if(t){let r=t[1];try{let s=JSON.parse(r);if(s.message)return s.message}catch{return e}}return e}function Sr(e){return typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"}function $e(e){if(Sr(e))return e.message;try{return JSON.stringify(e)}catch{return String(e)}}var br=0;function Ir(){return`MDConnection_${br++}`}var He=class e{static{this.idMap={}}constructor(t,r,s){this.params=t,this.deferredDdbConnection=r,this.id=s,this.sequencer=new te(t.logSink)}static create(t){let r=Ir(),s=Ge(t),n=new e(t,s,r);return this.idMap[r]=n,n}async isInitialized(){return await this.deferredDdbConnection,!0}static getById(t){return this.idMap[t]}async tokenize(t){return(await this.deferredDdbConnection).bindings.tokenize(t)}incompleteQueryCount(){return this.sequencer.incompleteTaskCount()}enqueueQuery(t,r){return this.sequencer.enqueueTask(new B(this.deferredDdbConnection,t,r))}async safeEvaluateQuery(t){try{return{status:"success",result:await this.evaluateQuery(t)}}catch(r){return{status:"error",err:r}}}async safeEvaluatePreparedStatement(t,...r){try{return{status:"success",result:await this.evaluatePreparedStatement(t,r)}}catch(s){return{status:"error",err:s}}}async safeEvaluateStreamingQuery(t){try{return{status:"success",result:await this.evaluateStreamingQuery(t)}}catch(r){return{status:"error",err:r}}}async safeEvaluateStreamingPreparedStatement(t,r){try{return{status:"success",result:await this.evaluateStreamingPreparedStatement(t,r)}}catch(s){return{status:"error",err:s}}}async safeEvaluateQueuedQuery(t){try{return{status:"success",result:await this.evaluateQueuedQuery(t)}}catch(r){return{status:"error",err:r}}}async evaluateQuery(t){return this.evaluateExclusive(new B(this.deferredDdbConnection,t))}async evaluatePreparedStatement(t,r){return this.evaluateExclusive(new B(this.deferredDdbConnection,t,r))}async evaluateStreamingQuery(t){return this.evaluateExclusive(new W(this.deferredDdbConnection,t,void 0))}async evaluateStreamingPreparedStatement(t,r){return this.evaluateExclusive(new W(this.deferredDdbConnection,t,r))}async evaluateExclusive(t){let r=this.sequencer.enqueueTask(t);return this.sequencer.taskResult(r).catch(ze)}async evaluateQueuedQuery(t){return this.sequencer.taskResult(t).catch(ze)}async cancelQuery(t,r){return this.sequencer.cancelTask(t,r)}async close(){return(await this.deferredDdbConnection).close()}};function ze(e){throw new Error(Ye($e(e)))}async function va(e,t){let r=await $(e);for(let s=0;s<t.length;++s){let n=t.item(s);await r.dropFile(n.name),await r.registerFileHandle(n.name,n,ae.BROWSER_FILEREADER,!1)}}async function Ua(e){return(await $(e)).globFiles("*")}export{Te as CATALOG_CHANGE_EVENT,O as DuckDBBlob,_ as DuckDBData,N as DuckDBDataReader,L as DuckDBDate,C as DuckDBDecimal,M as DuckDBInterval,P as DuckDBList,v as DuckDBMap,U as DuckDBStruct,x as DuckDBTime,Q as DuckDBTimestampMicroseconds,q as DuckDBTimestampMilliseconds,j as DuckDBTimestampNanoseconds,V as DuckDBTimestampSeconds,u as DuckDBTypes,He as MDConnection,d as SpecialDuckDBValue,ye as TokenType,$ as getAsyncDuckDb,Ua as readLocalFS,va as registerFiles};
|
|
1
|
+
var c=class e{constructor(){}static BIGINT={name:"BIGINT"};static BIT={name:"BIT"};static BOOLEAN={name:"BOOLEAN"};static BLOB={name:"BLOB"};static DATE={name:"DATE"};static DOUBLE={name:"DOUBLE"};static default_DECIMAL={name:"DECIMAL"};static DECIMAL(t,r){return t===void 0&&r===void 0?e.default_DECIMAL:{name:"DECIMAL",width:t,scale:r}}static ENUM={name:"ENUM"};static HUGEINT={name:"HUGEINT"};static INTEGER={name:"INTEGER"};static INTERVAL={name:"INTERVAL"};static LIST(t){return{name:"LIST",valueType:t}}static MAP(t,r){return{name:"MAP",keyType:t,valueType:r}}static REAL={name:"REAL"};static SMALLINT={name:"SMALLINT"};static SQLNULL={name:"SQLNULL"};static STRUCT(t){return{name:"STRUCT",entries:t}}static STRUCT_entry(t,r){return{key:t,valueType:r}}static TIME={name:"TIME"};static TIMESTAMP={name:"TIMESTAMP"};static TIMESTAMP_S={name:"TIMESTAMP_S"};static TIMESTAMP_MS={name:"TIMESTAMP_MS"};static TIMESTAMP_NS={name:"TIMESTAMP_NS"};static TIMESTAMP_TZ={name:"TIMESTAMP_TZ"};static TINYINT={name:"TINYINT"};static UBIGINT={name:"UBIGINT"};static UINTEGER={name:"UINTEGER"};static USMALLINT={name:"USMALLINT"};static UTINYINT={name:"UTINYINT"};static UUID={name:"UUID"};static UNION(t){return{name:"UNION",alternatives:t}}static UNION_alternative(t,r){return{tag:t,valueType:r}}static VARCHAR={name:"VARCHAR"};static VARCHAR_withLength(t){return{name:"VARCHAR",length:t}}};import*as E from"apache-arrow";import*as o from"apache-arrow";var Ze=Object.create,ke=Object.defineProperty,Xe=Object.getOwnPropertyDescriptor,et=Object.getOwnPropertyNames,tt=Object.getPrototypeOf,rt=Object.prototype.hasOwnProperty,st=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),nt=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of et(t))!rt.call(e,n)&&n!==r&&ke(e,n,{get:()=>t[n],enumerable:!(s=Xe(t,n))||s.enumerable});return e},at=(e,t,r)=>(r=e!=null?Ze(tt(e)):{},nt(t||!e||!e.__esModule?ke(r,"default",{value:e,enumerable:!0}):r,e)),it=st((e,t)=>{t.exports=Worker}),ot=(e=>(e[e.UNDEFINED=0]="UNDEFINED",e[e.AUTOMATIC=1]="AUTOMATIC",e[e.READ_ONLY=2]="READ_ONLY",e[e.READ_WRITE=3]="READ_WRITE",e))(ot||{}),ye=(e=>(e[e.IDENTIFIER=0]="IDENTIFIER",e[e.NUMERIC_CONSTANT=1]="NUMERIC_CONSTANT",e[e.STRING_CONSTANT=2]="STRING_CONSTANT",e[e.OPERATOR=3]="OPERATOR",e[e.KEYWORD=4]="KEYWORD",e[e.COMMENT=5]="COMMENT",e))(ye||{}),Z=(e=>(e[e.NONE=0]="NONE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARNING=3]="WARNING",e[e.ERROR=4]="ERROR",e))(Z||{}),ct=(e=>(e[e.NONE=0]="NONE",e[e.CONNECT=1]="CONNECT",e[e.DISCONNECT=2]="DISCONNECT",e[e.OPEN=3]="OPEN",e[e.QUERY=4]="QUERY",e[e.INSTANTIATE=5]="INSTANTIATE",e))(ct||{}),ut=(e=>(e[e.NONE=0]="NONE",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR",e[e.START=3]="START",e[e.RUN=4]="RUN",e[e.CAPTURE=5]="CAPTURE",e))(ut||{}),dt=(e=>(e[e.NONE=0]="NONE",e[e.WEB_WORKER=1]="WEB_WORKER",e[e.NODE_WORKER=2]="NODE_WORKER",e[e.BINDINGS=3]="BINDINGS",e[e.ASYNC_DUCKDB=4]="ASYNC_DUCKDB",e))(dt||{});var Re=class{constructor(e=2){this.level=e}log(e){e.level>=this.level&&console.log(e)}};var lt=(e=>(e[e.SUCCESS=0]="SUCCESS",e))(lt||{}),mt=class{constructor(e,t){this._bindings=e,this._conn=t}get bindings(){return this._bindings}async close(){return this._bindings.disconnect(this._conn)}useUnsafe(e){return e(this._bindings,this._conn)}async query(e){this._bindings.logger.log({timestamp:new Date,level:2,origin:4,topic:4,event:4,value:e});let t=await this._bindings.runQuery(this._conn,e),r=E.RecordBatchReader.from(t);return console.assert(r.isSync(),"Reader is not sync"),console.assert(r.isFile(),"Reader is not file"),new E.Table(r)}async send(e){this._bindings.logger.log({timestamp:new Date,level:2,origin:4,topic:4,event:4,value:e});let t=await this._bindings.startPendingQuery(this._conn,e);for(;t==null;)t=await this._bindings.pollPendingQuery(this._conn);let r=new Se(this._bindings,this._conn,t),s=await E.RecordBatchReader.from(r);return console.assert(s.isAsync()),console.assert(s.isStream()),s}async cancelSent(){return await this._bindings.cancelPendingQuery(this._conn)}async getTableNames(e){return await this._bindings.getTableNames(this._conn,e)}async prepare(e){let t=await this._bindings.createPrepared(this._conn,e);return new pt(this._bindings,this._conn,t)}async insertArrowTable(e,t){let r=E.tableToIPC(e,"stream");await this.insertArrowFromIPCStream(r,t)}async insertArrowFromIPCStream(e,t){await this._bindings.insertArrowFromIPCStream(this._conn,e,t)}async insertCSVFromPath(e,t){await this._bindings.insertCSVFromPath(this._conn,e,t)}async insertJSONFromPath(e,t){await this._bindings.insertJSONFromPath(this._conn,e,t)}},Se=class{constructor(e,t,r){this.db=e,this.conn=t,this.header=r,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}},pt=class{constructor(e,t,r){this.bindings=e,this.connectionId=t,this.statementId=r}async close(){await this.bindings.closePrepared(this.connectionId,this.statementId)}async query(...e){let t=await this.bindings.runPrepared(this.connectionId,this.statementId,e),r=E.RecordBatchReader.from(t);return console.assert(r.isSync()),console.assert(r.isFile()),new E.Table(r)}async send(...e){let t=await this.bindings.sendPrepared(this.connectionId,this.statementId,e),r=new Se(this.bindings,this.connectionId,t),s=await E.RecordBatchReader.from(r);return console.assert(s.isAsync()),console.assert(s.isStream()),s}},ht=(e=>(e.CANCEL_PENDING_QUERY="CANCEL_PENDING_QUERY",e.CLOSE_PREPARED="CLOSE_PREPARED",e.COLLECT_FILE_STATISTICS="COLLECT_FILE_STATISTICS",e.CONNECT="CONNECT",e.COPY_FILE_TO_BUFFER="COPY_FILE_TO_BUFFER",e.COPY_FILE_TO_PATH="COPY_FILE_TO_PATH",e.CREATE_PREPARED="CREATE_PREPARED",e.DISCONNECT="DISCONNECT",e.DROP_FILE="DROP_FILE",e.DROP_FILES="DROP_FILES",e.EXPORT_FILE_STATISTICS="EXPORT_FILE_STATISTICS",e.FETCH_QUERY_RESULTS="FETCH_QUERY_RESULTS",e.FLUSH_FILES="FLUSH_FILES",e.GET_FEATURE_FLAGS="GET_FEATURE_FLAGS",e.GET_TABLE_NAMES="GET_TABLE_NAMES",e.GET_VERSION="GET_VERSION",e.GLOB_FILE_INFOS="GLOB_FILE_INFOS",e.INSERT_ARROW_FROM_IPC_STREAM="INSERT_ARROW_FROM_IPC_STREAM",e.INSERT_CSV_FROM_PATH="IMPORT_CSV_FROM_PATH",e.INSERT_JSON_FROM_PATH="IMPORT_JSON_FROM_PATH",e.INSTANTIATE="INSTANTIATE",e.OPEN="OPEN",e.PING="PING",e.POLL_PENDING_QUERY="POLL_PENDING_QUERY",e.REGISTER_FILE_BUFFER="REGISTER_FILE_BUFFER",e.REGISTER_FILE_HANDLE="REGISTER_FILE_HANDLE",e.REGISTER_FILE_URL="REGISTER_FILE_URL",e.RESET="RESET",e.RUN_PREPARED="RUN_PREPARED",e.RUN_QUERY="RUN_QUERY",e.SEND_PREPARED="SEND_PREPARED",e.START_PENDING_QUERY="START_PENDING_QUERY",e.TOKENIZE="TOKENIZE",e))(ht||{}),Dt=(e=>(e.CONNECTION_INFO="CONNECTION_INFO",e.ERROR="ERROR",e.FEATURE_FLAGS="FEATURE_FLAGS",e.FILE_BUFFER="FILE_BUFFER",e.FILE_INFOS="FILE_INFOS",e.FILE_SIZE="FILE_SIZE",e.FILE_STATISTICS="FILE_STATISTICS",e.INSTANTIATE_PROGRESS="INSTANTIATE_PROGRESS",e.LOG="LOG",e.OK="OK",e.PREPARED_STATEMENT_ID="PREPARED_STATEMENT_ID",e.QUERY_PLAN="QUERY_PLAN",e.QUERY_RESULT="QUERY_RESULT",e.QUERY_RESULT_CHUNK="QUERY_RESULT_CHUNK",e.QUERY_RESULT_HEADER="QUERY_RESULT_HEADER",e.QUERY_RESULT_HEADER_OR_NULL="QUERY_RESULT_HEADER_OR_NULL",e.REGISTERED_FILE="REGISTERED_FILE",e.SCRIPT_TOKENS="SCRIPT_TOKENS",e.SUCCESS="SUCCESS",e.TABLE_NAMES="TABLE_NAMES",e.VERSION_STRING="VERSION_STRING",e))(Dt||{}),u=class{constructor(e,t){this.promiseResolver=()=>{},this.promiseRejecter=()=>{},this.type=e,this.data=t,this.promise=new Promise((r,s)=>{this.promiseResolver=r,this.promiseRejecter=s})}};function J(e){switch(e.typeId){case o.Type.Binary:return{sqlType:"binary"};case o.Type.Bool:return{sqlType:"bool"};case o.Type.Date:return{sqlType:"date"};case o.Type.DateDay:return{sqlType:"date32[d]"};case o.Type.DateMillisecond:return{sqlType:"date64[ms]"};case o.Type.Decimal:{let t=e;return{sqlType:"decimal",precision:t.precision,scale:t.scale}}case o.Type.Float:return{sqlType:"float"};case o.Type.Float16:return{sqlType:"float16"};case o.Type.Float32:return{sqlType:"float32"};case o.Type.Float64:return{sqlType:"float64"};case o.Type.Int:return{sqlType:"int32"};case o.Type.Int16:return{sqlType:"int16"};case o.Type.Int32:return{sqlType:"int32"};case o.Type.Int64:return{sqlType:"int64"};case o.Type.Uint16:return{sqlType:"uint16"};case o.Type.Uint32:return{sqlType:"uint32"};case o.Type.Uint64:return{sqlType:"uint64"};case o.Type.Uint8:return{sqlType:"uint8"};case o.Type.IntervalDayTime:return{sqlType:"interval[dt]"};case o.Type.IntervalYearMonth:return{sqlType:"interval[m]"};case o.Type.List:return{sqlType:"list",valueType:J(e.valueType)};case o.Type.FixedSizeBinary:return{sqlType:"fixedsizebinary",byteWidth:e.byteWidth};case o.Type.Null:return{sqlType:"null"};case o.Type.Utf8:return{sqlType:"utf8"};case o.Type.Struct:return{sqlType:"struct",fields:e.children.map(t=>re(t.name,t.type))};case o.Type.Map:{let t=e;return{sqlType:"map",keyType:J(t.keyType),valueType:J(t.valueType)}}case o.Type.Time:return{sqlType:"time[s]"};case o.Type.TimeMicrosecond:return{sqlType:"time[us]"};case o.Type.TimeMillisecond:return{sqlType:"time[ms]"};case o.Type.TimeNanosecond:return{sqlType:"time[ns]"};case o.Type.TimeSecond:return{sqlType:"time[s]"};case o.Type.Timestamp:return{sqlType:"timestamp",timezone:e.timezone||void 0};case o.Type.TimestampSecond:return{sqlType:"timestamp[s]",timezone:e.timezone||void 0};case o.Type.TimestampMicrosecond:return{sqlType:"timestamp[us]",timezone:e.timezone||void 0};case o.Type.TimestampNanosecond:return{sqlType:"timestamp[ns]",timezone:e.timezone||void 0};case o.Type.TimestampMillisecond:return{sqlType:"timestamp[ms]",timezone:e.timezone||void 0}}throw new Error("unsupported arrow type: ".concat(e.toString()))}function re(e,t){let r=J(t);return r.name=e,r}var gt=new TextEncoder,be=class{constructor(e,t=null){this._onInstantiationProgress=[],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),t!=null&&this.attach(t)}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((t,r)=>{this._workerShutdownResolver=t})}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,t=[]){if(!this._worker){console.error("cannot send a message since the worker is not set!");return}let r=this._nextMessageId++;return this._pendingRequests.set(r,e),this._worker.postMessage({messageId:r,type:e.type,data:e.data},t),await e.promise}onMessage(e){var t;let r=e.data;switch(r.type){case"LOG":{this._logger.log(r.data);return}case"INSTANTIATE_PROGRESS":{for(let n of this._onInstantiationProgress)n(r.data);return}}let s=this._pendingRequests.get(r.requestId);if(!s){console.warn("unassociated response: [".concat(r.requestId,", ").concat(r.type.toString(),"]"));return}if(this._pendingRequests.delete(r.requestId),r.type=="ERROR"){let n=new Error(r.data.message);n.name=r.data.name,(t=Object.getOwnPropertyDescriptor(n,"stack"))!=null&&t.writable&&(n.stack=r.data.stack),s.promiseRejecter(n);return}switch(s.type){case"CLOSE_PREPARED":case"COLLECT_FILE_STATISTICS":case"COPY_FILE_TO_PATH":case"DISCONNECT":case"DROP_FILE":case"DROP_FILES":case"FLUSH_FILES":case"INSERT_ARROW_FROM_IPC_STREAM":case"IMPORT_CSV_FROM_PATH":case"IMPORT_JSON_FROM_PATH":case"OPEN":case"PING":case"REGISTER_FILE_BUFFER":case"REGISTER_FILE_HANDLE":case"REGISTER_FILE_URL":case"RESET":if(r.type=="OK"){s.promiseResolver(r.data);return}break;case"INSTANTIATE":if(this._onInstantiationProgress=[],r.type=="OK"){s.promiseResolver(r.data);return}break;case"GLOB_FILE_INFOS":if(r.type=="FILE_INFOS"){s.promiseResolver(r.data);return}break;case"GET_VERSION":if(r.type=="VERSION_STRING"){s.promiseResolver(r.data);return}break;case"GET_FEATURE_FLAGS":if(r.type=="FEATURE_FLAGS"){s.promiseResolver(r.data);return}break;case"GET_TABLE_NAMES":if(r.type=="TABLE_NAMES"){s.promiseResolver(r.data);return}break;case"TOKENIZE":if(r.type=="SCRIPT_TOKENS"){s.promiseResolver(r.data);return}break;case"COPY_FILE_TO_BUFFER":if(r.type=="FILE_BUFFER"){s.promiseResolver(r.data);return}break;case"EXPORT_FILE_STATISTICS":if(r.type=="FILE_STATISTICS"){s.promiseResolver(r.data);return}break;case"CONNECT":if(r.type=="CONNECTION_INFO"){s.promiseResolver(r.data);return}break;case"RUN_PREPARED":case"RUN_QUERY":if(r.type=="QUERY_RESULT"){s.promiseResolver(r.data);return}break;case"SEND_PREPARED":if(r.type=="QUERY_RESULT_HEADER"){s.promiseResolver(r.data);return}break;case"START_PENDING_QUERY":if(r.type=="QUERY_RESULT_HEADER_OR_NULL"){s.promiseResolver(r.data);return}break;case"POLL_PENDING_QUERY":if(r.type=="QUERY_RESULT_HEADER_OR_NULL"){s.promiseResolver(r.data);return}break;case"CANCEL_PENDING_QUERY":if(this._onInstantiationProgress=[],r.type=="SUCCESS"){s.promiseResolver(r.data);return}break;case"FETCH_QUERY_RESULTS":if(r.type=="QUERY_RESULT_CHUNK"){s.promiseResolver(r.data);return}break;case"CREATE_PREPARED":if(r.type=="PREPARED_STATEMENT_ID"){s.promiseResolver(r.data);return}break}s.promiseRejecter(new Error("unexpected response type: ".concat(r.type.toString())))}onError(e){console.error(e),console.error("error in duckdb worker: ".concat(e.message)),this._pendingRequests.clear()}onClose(){if(this._workerShutdownResolver(null),this._pendingRequests.size!=0){console.warn("worker terminated with ".concat(this._pendingRequests.size," pending requests"));return}this._pendingRequests.clear()}async reset(){let e=new u("RESET",null);return await this.postTask(e)}async ping(){let e=new u("PING",null);await this.postTask(e)}async dropFile(e){let t=new u("DROP_FILE",e);return await this.postTask(t)}async dropFiles(){let e=new u("DROP_FILES",null);return await this.postTask(e)}async flushFiles(){let e=new u("FLUSH_FILES",null);return await this.postTask(e)}async instantiate(e,t=null,r=s=>{}){this._onInstantiationProgress.push(r);let s=new u("INSTANTIATE",[e,t]);return await this.postTask(s)}async getVersion(){let e=new u("GET_VERSION",null);return await this.postTask(e)}async getFeatureFlags(){let e=new u("GET_FEATURE_FLAGS",null);return await this.postTask(e)}async open(e){let t=new u("OPEN",e);await this.postTask(t)}async tokenize(e){let t=new u("TOKENIZE",e);return await this.postTask(t)}async connectInternal(){let e=new u("CONNECT",null);return await this.postTask(e)}async connect(){let e=await this.connectInternal();return new mt(this,e)}async disconnect(e){let t=new u("DISCONNECT",e);await this.postTask(t)}async runQuery(e,t){let r=new u("RUN_QUERY",[e,t]);return await this.postTask(r)}async startPendingQuery(e,t){let r=new u("START_PENDING_QUERY",[e,t]);return await this.postTask(r)}async pollPendingQuery(e){let t=new u("POLL_PENDING_QUERY",e);return await this.postTask(t)}async cancelPendingQuery(e){let t=new u("CANCEL_PENDING_QUERY",e);return await this.postTask(t)}async fetchQueryResults(e){let t=new u("FETCH_QUERY_RESULTS",e);return await this.postTask(t)}async getTableNames(e,t){let r=new u("GET_TABLE_NAMES",[e,t]);return await this.postTask(r)}async createPrepared(e,t){let r=new u("CREATE_PREPARED",[e,t]);return await this.postTask(r)}async closePrepared(e,t){let r=new u("CLOSE_PREPARED",[e,t]);await this.postTask(r)}async runPrepared(e,t,r){let s=new u("RUN_PREPARED",[e,t,r]);return await this.postTask(s)}async sendPrepared(e,t,r){let s=new u("SEND_PREPARED",[e,t,r]);return await this.postTask(s)}async globFiles(e){let t=new u("GLOB_FILE_INFOS",e);return await this.postTask(t)}async registerFileText(e,t){let r=gt.encode(t);await this.registerFileBuffer(e,r)}async registerFileURL(e,t,r,s){t===void 0&&(t=e);let n=new u("REGISTER_FILE_URL",[e,t,r,s]);await this.postTask(n)}async registerEmptyFileBuffer(e){}async registerFileBuffer(e,t){let r=new u("REGISTER_FILE_BUFFER",[e,t]);await this.postTask(r,[t.buffer])}async registerFileHandle(e,t,r,s){let n=new u("REGISTER_FILE_HANDLE",[e,t,r,s]);await this.postTask(n,[])}async collectFileStatistics(e,t){let r=new u("COLLECT_FILE_STATISTICS",[e,t]);await this.postTask(r,[])}async exportFileStatistics(e){let t=new u("EXPORT_FILE_STATISTICS",e);return await this.postTask(t,[])}async copyFileToBuffer(e){let t=new u("COPY_FILE_TO_BUFFER",e);return await this.postTask(t)}async copyFileToPath(e,t){let r=new u("COPY_FILE_TO_PATH",[e,t]);await this.postTask(r)}async insertArrowFromIPCStream(e,t,r){if(t.length==0)return;let s=new u("INSERT_ARROW_FROM_IPC_STREAM",[e,t,r]);await this.postTask(s,[t.buffer])}async insertCSVFromPath(e,t,r){if(r.columns!==void 0){let n=[];for(let a in r.columns){let i=r.columns[a];n.push(re(a,i))}r.columnsFlat=n,delete r.columns}let s=new u("IMPORT_CSV_FROM_PATH",[e,t,r]);await this.postTask(s)}async insertJSONFromPath(e,t,r){if(r.columns!==void 0){let n=[];for(let a in r.columns){let i=r.columns[a];n.push(re(a,i))}r.columnsFlat=n,delete r.columns}let s=new u("IMPORT_JSON_FROM_PATH",[e,t,r]);await this.postTask(s)}};var se={name:"@duckdb/duckdb-wasm",version:"1.11.0",description:"DuckDB powered by WebAssembly",license:"MIT",repository:{type:"git",url:"https://github.com/duckdb/duckdb-wasm.git"},keywords:["sql","duckdb","relational","database","data","query","wasm","analytics","olap","arrow","parquet","json","csv"],dependencies:{"apache-arrow":"^15.0.0"},devDependencies:{"@types/emscripten":"^1.39.10","@types/jasmine":"^5.1.4","@typescript-eslint/eslint-plugin":"^6.21.0","@typescript-eslint/parser":"^6.21.0",esbuild:"^0.20.1",eslint:"^8.56.0","eslint-plugin-jasmine":"^4.1.3","eslint-plugin-react":"^7.34.0","fast-glob":"^3.3.2",jasmine:"^5.1.0","jasmine-core":"^5.1.2","jasmine-spec-reporter":"^7.0.0","js-sha256":"^0.11.0",karma:"^6.4.2","karma-chrome-launcher":"^3.2.0","karma-coverage":"^2.2.1","karma-firefox-launcher":"^2.1.3","karma-jasmine":"^5.1.0","karma-jasmine-html-reporter":"^2.1.0","karma-sourcemap-loader":"^0.4.0","karma-spec-reporter":"^0.0.36","make-dir":"^4.0.0",nyc:"^15.1.0",prettier:"^3.2.5",puppeteer:"^21.7.0",rimraf:"^5.0.5",s3rver:"^3.7.1",typedoc:"^0.25.7",typescript:"^5.3.3","wasm-feature-detect":"^1.6.1","web-worker":"^1.2.0"},scripts:{"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 ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs","test:node:debug":"node --inspect-brk --enable-source-maps ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs","test:node:coverage":"nyc -r json --report-dir ./coverage/node node ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs","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:browser":"karma start ./karma/tests-all.cjs","test:browser: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"},files:["dist","!dist/tests-*","!dist/duckdb-browser-mvp.worker.js.map","!dist/types/test"],main:"dist/duckdb-browser.cjs",module:"dist/duckdb-browser.mjs",types:"dist/duckdb-browser.d.ts",jsdelivr:"dist/duckdb-browser.cjs",unpkg:"dist/duckdb-browser.mjs",sideEffects:!1,browser:{fs:!1,path:!1,perf_hooks:!1,os:!1,worker_threads:!1},exports:{"./dist/duckdb-mvp.wasm":"./dist/duckdb-mvp.wasm","./dist/duckdb-eh.wasm":"./dist/duckdb-eh.wasm","./dist/duckdb-coi.wasm":"./dist/duckdb-coi.wasm","./dist/duckdb-browser":"./dist/duckdb-browser.mjs","./dist/duckdb-browser.cjs":"./dist/duckdb-browser.cjs","./dist/duckdb-browser.mjs":"./dist/duckdb-browser.mjs","./dist/duckdb-browser-blocking":"./dist/duckdb-browser-blocking.mjs","./dist/duckdb-browser-blocking.mjs":"./dist/duckdb-browser-blocking.mjs","./dist/duckdb-browser-blocking.cjs":"./dist/duckdb-browser-blocking.cjs","./dist/duckdb-browser-coi.pthread.worker.js":"./dist/duckdb-browser-coi.pthread.worker.js","./dist/duckdb-browser-coi.worker.js":"./dist/duckdb-browser-coi.worker.js","./dist/duckdb-browser-eh.worker.js":"./dist/duckdb-browser-eh.worker.js","./dist/duckdb-browser-mvp.worker.js":"./dist/duckdb-browser-mvp.worker.js","./dist/duckdb-node":"./dist/duckdb-node.cjs","./dist/duckdb-node.cjs":"./dist/duckdb-node.cjs","./dist/duckdb-node-blocking":"./dist/duckdb-node-blocking.cjs","./dist/duckdb-node-blocking.cjs":"./dist/duckdb-node-blocking.cjs","./dist/duckdb-node-eh.worker.cjs":"./dist/duckdb-node-eh.worker.cjs","./dist/duckdb-node-mvp.worker.cjs":"./dist/duckdb-node-mvp.worker.cjs","./blocking":{browser:{types:"./dist/duckdb-browser-blocking.d.ts",import:"./dist/duckdb-browser-blocking.mjs",require:"./dist/duckdb-browser-blocking.cjs"},node:{types:"./dist/duckdb-node-blocking.d.ts",require:"./dist/duckdb-node-blocking.cjs",import:"./dist/duckdb-node-blocking.cjs"},types:"./dist/duckdb-browser-blocking.d.ts",import:"./dist/duckdb-browser-blocking.mjs",require:"./dist/duckdb-browser-blocking.cjs"},".":{browser:{types:"./dist/duckdb-browser.d.ts",import:"./dist/duckdb-browser.mjs",require:"./dist/duckdb-browser.cjs"},node:{types:"./dist/duckdb-node.d.ts",import:"./dist/duckdb-node.cjs",require:"./dist/duckdb-node.cjs"},types:"./dist/duckdb-browser.d.ts",import:"./dist/duckdb-browser.mjs",require:"./dist/duckdb-browser.cjs"}}},Br=se.name,Ar=se.version,ne=se.version.split("."),Or=ne[0],Fr=ne[1],Lr=ne[2];var Cr=at(it());function Tt(){let e=new TextDecoder;return t=>(typeof SharedArrayBuffer<"u"&&t.buffer instanceof SharedArrayBuffer&&(t=new Uint8Array(t)),e.decode(t))}var Mr=Tt(),ae=(e=>(e[e.BUFFER=0]="BUFFER",e[e.NODE_FS=1]="NODE_FS",e[e.BROWSER_FILEREADER=2]="BROWSER_FILEREADER",e[e.BROWSER_FSACCESS=3]="BROWSER_FSACCESS",e[e.HTTP=4]="HTTP",e[e.S3=5]="S3",e))(ae||{});var _=class{singleValue(){let{columnCount:t,rowCount:r}=this;if(t===0)throw Error("no column data");if(r===0)throw Error("no rows");if(t>1)throw Error("more than one column");if(r>1)throw Error("more than one row");return this.value(0,0)}columnNames(){let{columnCount:t}=this,r=[];for(let s=0;s<t;s++)r.push(this.columnName(s));return r}deduplicatedColumnNames(){let{columnCount:t}=this,r=[],s={};for(let n=0;n<t;n++){let a=this.columnName(n),i=(s[a]||0)+1;s[a]=i,i>1?r.push(`${a}:${i-1}`):r.push(a)}return r}toRows(){let{rowCount:t,columnCount:r}=this,s=this.deduplicatedColumnNames(),n=[];for(let a=0;a<t;a++){let i={};for(let l=0;l<r;l++)i[s[l]]=this.value(l,a);n.push(i)}return n}};import{DateUnit as Ie,IntervalUnit as ie,Precision as oe,TimeUnit as R,Type as m,UnionMode as _e}from"apache-arrow";function I(e){switch(e.typeId){case m.Null:return c.SQLNULL;case m.Int:{let{isSigned:t,bitWidth:r}=e;if(t)switch(r){case 8:return c.TINYINT;case 16:return c.SMALLINT;case 32:return c.INTEGER;case 64:return c.BIGINT;default:throw Error(`unexpected integer bit width: ${r}`)}else switch(r){case 8:return c.UTINYINT;case 16:return c.USMALLINT;case 32:return c.UINTEGER;case 64:return c.UBIGINT;default:throw Error(`unexpected integer bit width: ${r}`)}}case m.Float:{let{precision:t}=e;switch(t){case oe.HALF:throw Error("DuckDB does not support half-precision floats");case oe.SINGLE:return c.REAL;case oe.DOUBLE:return c.DOUBLE;default:throw Error(`unexpected precision: ${t}`)}}case m.Binary:return c.BLOB;case m.Utf8:return c.VARCHAR;case m.Bool:return c.BOOLEAN;case m.Decimal:{let{precision:t,scale:r}=e;return(t==null||t===18)&&(r==null||r===3)?c.DECIMAL():c.DECIMAL(t,r)}case m.Date:{let{unit:t}=e;switch(t){case Ie.DAY:return c.DATE;case Ie.MILLISECOND:throw Error("DuckDB does not support millisecond-unit dates");default:throw Error(`unexpected date unit: ${t}`)}}case m.Time:{let{unit:t}=e;switch(t){case R.SECOND:throw Error("DuckDB does not support second-unit times");case R.MILLISECOND:throw Error("DuckDB does not support millisecond-unit times");case R.MICROSECOND:return c.TIME;case R.NANOSECOND:throw Error("DuckDB does not support nanosecond-unit times");default:throw Error(`unexpected time unit: ${t}`)}}case m.Timestamp:{let{unit:t,timezone:r}=e;switch(t){case R.SECOND:if(r)throw Error("DuckDB does not support second-unit timestamps with timezone");return c.TIMESTAMP_S;case R.MILLISECOND:if(r)throw Error("DuckDB does not support millisecond-unit timestamps with timezone");return c.TIMESTAMP_MS;case R.MICROSECOND:return r?c.TIMESTAMP_TZ:c.TIMESTAMP;case R.NANOSECOND:if(r)throw Error("DuckDB does not support nanosecond-unit timestamps with timezone");return c.TIMESTAMP_NS;default:throw Error(`unexpected time unit: ${t}`)}}case m.Interval:{let{unit:t}=e;switch(t){case ie.YEAR_MONTH:throw Error("DuckDB does not support year-month intervals");case ie.DAY_TIME:throw Error("DuckDB does not support day-time intervals");case ie.MONTH_DAY_NANO:return c.INTERVAL;default:throw Error(`unexpected interval unit: ${t}`)}}case m.List:{let{valueType:t}=e;return c.LIST(I(t))}case m.Struct:{let{children:t}=e,r=t.map(s=>({key:s.name,valueType:I(s.type)}));return c.STRUCT(r)}case m.Union:{let{mode:t}=e;switch(t){case _e.Dense:throw Error("DuckDB does not support dense unions");case _e.Sparse:{let r=e.children.map(s=>({tag:s.name,valueType:I(s.type)}));return c.UNION(r)}default:throw Error(`unexpected union mode: ${t}`)}}case m.FixedSizeBinary:throw Error("DuckDB does not support fixed-size binary");case m.FixedSizeList:throw Error("DuckDB does not support fixed-size lists");case m.Map:{let{keyType:t,valueType:r}=e;return c.MAP(I(t),I(r))}case m.Dictionary:return c.ENUM;default:throw Error(`unexpected type id: ${e.typeId}`)}}import{DateUnit as Ce,IntervalUnit as he,Precision as De,TimeUnit as b,Type as p,UnionMode as Me}from"apache-arrow";function fe(e){let t="";for(let r of e)r<=31||r===34||r===39||r>=127?t+=`\\x${r.toString(16).toUpperCase().padStart(2,"0")}`:t+=String.fromCharCode(r);return t}var d=class{toString(){return this.toDuckDBString()}};var O=class extends d{constructor(r){super();this.bytes=r}toDuckDBString(){return fe(this.bytes)}};var ue=BigInt(1e6),Et=BigInt(1e3),kt=BigInt(1e3),we=BigInt(60),Ne=BigInt(60),X=BigInt(864e8),yt=BigInt("-9223372036854775807"),Rt=BigInt("9223372036854775807");function St(e,t,r){let s=String(Math.abs(e)).padStart(4,"0"),n=String(t).padStart(2,"0"),a=String(r).padStart(2,"0");return`${s}-${n}-${a}${e<0?" (BC)":""}`}function de(e){let t=Math.abs(e),r=e<0?-1:1,s=Math.floor(t/146097),n=r*s*400,a=t%146097,i=r*a*864e5,l=new Date(i),h=n+l.getUTCFullYear();h<0&&h--;let T=l.getUTCMonth()+1,A=l.getUTCDate();return St(h,T,A)}function bt(e,t,r,s){let n=String(e).padStart(2,"0"),a=String(t).padStart(2,"0"),i=String(r).padStart(2,"0"),l=String(s).padStart(6,"0").replace(/0+$/,"");return`${n}:${a}:${i}${l.length>0?`.${l}`:""}`}function Be(e){let t=e%ue,r=e/ue,s=r%we,n=r/we,a=n%Ne,i=n/Ne;return bt(i,a,s,t)}function le(e){let t=e<0?e+X:e;return Be(t)}function It(e){let t=e<0,r=t?-e:e,s=Be(r);return t?`-${s}`:s}function _t(e,t,r){let s=de(Number(e)),n=le(t),a=r?` ${r}`:"";return`${s} ${n}${a}`}function F(e,t){if(e===yt)return"-infinity";if(e===Rt)return"infinity";let r=e/X,s=e%X;return s<0&&(r--,s+=X),_t(r,s,t)}function Ae(e,t){return F(e*ue,t)}function Oe(e,t){return F(e*Et,t)}function Fe(e,t){return F(e/kt,t)}function ce(e,t){return`${e} ${t}${e!==1?"s":""}`}function Le(e,t,r){let s=[];if(e!==0){let n=e<0?-1:1,a=Math.abs(e),i=Math.floor(a/12),l=n*i,h=n*(a-i*12);l!==0&&s.push(ce(l,"year")),h!==0&&s.push(ce(h,"month"))}return t!==0&&s.push(ce(t,"day")),r!==BigInt(0)&&s.push(It(r)),s.length>0?s.join(" "):"00:00:00"}var L=class extends d{constructor(r){super();this.days=r}toDuckDBString(){return de(this.days)}};function ft(e){return new Intl.NumberFormat(e,{useGrouping:!1}).formatToParts(.1).find(r=>r.type==="decimal")?.value??"."}var me={};function wt(e){let t=JSON.stringify(e);if(t in me)return me[t];let r=ft(e);return me[t]=r,r}function Nt(e,t){if(e){let{minimumFractionDigits:r,maximumFractionDigits:s,...n}=e.options??{};return t.toLocaleString(e?.locales,n)}return String(t)}function Bt(e,t,r){let s=String(t).padStart(r,"0");if(!e)return s;let n=e?.options?.minimumFractionDigits??0,a=e?.options?.maximumFractionDigits??20;return s.padEnd(n,"0").slice(0,a)}function pe(e,t,r){if(t>0){let s=BigInt(10)**BigInt(t),n=e<0?-e:e,a=e<0?"-":"",i=n/s,l=Nt(r,i),h=n%s,T=Bt(r,h,t),A=r?wt(r.locales):".";return`${a}${l}${A}${T}`}return r?e.toLocaleString(r?.locales,r?.options):String(e)}var C=class extends d{constructor(r,s){super();this.scaledValue=r,this.scale=s}toDuckDBString(){return pe(this.scaledValue,this.scale)}toLocaleString(r,s){return pe(this.scaledValue,this.scale,{locales:r,options:s})}};var M=class extends d{constructor(r,s,n){super();this.months=r,this.days=s,this.microseconds=n}toDuckDBString(){return Le(this.months,this.days,this.microseconds)}};function S(e){return e==null?"NULL":typeof e=="string"?`'${e.replace("'","''")}'`:String(e)}var P=class extends d{constructor(r){super();this.values=r}toDuckDBString(){return`[${this.values.map(S).join(", ")}]`}};var v=class extends d{constructor(r){super();this.entries=r}toDuckDBString(){return`{${this.entries.map(({key:s,value:n})=>`${S(s)}: ${S(n)}`).join(", ")}}`}};var U=class extends d{constructor(r){super();this.entries=r}toDuckDBString(){return`{${this.entries.map(({key:s,value:n})=>`${S(s)}: ${S(n)}`).join(", ")}}`}};var x=class extends d{constructor(r){super();this.microseconds=r}toDuckDBString(){return le(this.microseconds)}};var Q=class extends d{constructor(r,s){super();this.microseconds=r,this.timezone=s}toDuckDBString(){return F(this.microseconds,this.timezone)}};var q=class extends d{constructor(r){super();this.milliseconds=r}toDuckDBString(){return Oe(this.milliseconds)}};var j=class extends d{constructor(r){super();this.nanoseconds=r}toDuckDBString(){return Fe(this.nanoseconds)}};var V=class extends d{constructor(r){super();this.seconds=r}toDuckDBString(){return Ae(this.seconds)}};var At=new TextDecoder;function Ot(e,t,r){return e.getValid(t)?r(e,t):null}function D(e){return(t,r)=>Ot(t,r,e)}function Ft(e,t,r,s){return Array.from({length:r-t}).map((n,a)=>s(e,t+a))}function Pe(e){return new BigInt64Array(e.values.buffer,e.values.byteOffset,e.values.length/2)}function G(e,t){return Pe(e)[t]}function Lt(e,t){let r=Pe(e),s=r[t*2];return(r[t*2+1]<<BigInt(64))+(s&BigInt.asUintN(64,BigInt(-1)))}function ve(e,t){let{values:r,valueOffsets:s}=e,n=s[t],a=s[t+1];return r.subarray(n,a)}function Ct(e,t){return null}function Mt(e,t){return e.values[t]}var k=D(Mt);function Pt(e,t){return new O(ve(e,t))}var vt=D(Pt);function Ut(e,t){return At.decode(ve(e,t))}var xt=D(Ut);function Qt(e,t){let r=e.offset+t;return(e.values[r>>3]&1<<r%8)!==0}var qt=D(Qt);function jt(e,t){return new C(Lt(e,t),e.type.scale)}var Vt=D(jt);function Gt(e,t){return new L(e.values[t])}var Wt=D(Gt);function Yt(e,t){return new x(e.values[t])}var $t=D(Yt);function Ht(e,t){return new V(G(e,t))}var zt=D(Ht);function Kt(e,t){return new q(G(e,t))}var Jt=D(Kt);function Zt(e,t){return new Q(G(e,t),e.type.timezone)}var Xt=D(Zt);function er(e,t){return new j(G(e,t))}var tr=D(er);function rr(e,t){return new M(e.values[t*4],e.values[t*4+1],G(e,t*2+1)/BigInt(1e3))}var sr=D(rr);function nr(e,t){let{children:r,valueOffsets:s}=e,n=s[t],a=s[t+1];return new P(pr(r[0],n,a))}var ar=D(nr);function ir(e,t){let r=[],{children:s,type:n}=e,a=n.children;for(let i=0;i<s.length;i++){let l=s[i],h=a[i].name,T=f(l,t);r.push({key:h,value:T})}return new U(r)}var or=D(ir);function cr(e,t){let{children:r,typeIds:s}=e,n=s[t],a=e.type.typeIdToChildIndex[n],i=r[a];return f(i,t)}function ur(e,t){let r=[],{children:s,valueOffsets:n}=e,a=n[t],i=n[t+1],[l,h]=s[0].children;for(let T=a;T<i;T++)r.push({key:f(l,T),value:f(h,T)});return new v(r)}var dr=D(ur);function lr(e,t){return e.dictionary&&e.dictionary.length>0?e.dictionary.get(e.values[t]):e.values[t]}var mr=D(lr);function Ue(e){switch(e.typeId){case p.Null:return Ct;case p.Int:{let{isSigned:t,bitWidth:r}=e;if(t)switch(r){case 8:return k;case 16:return k;case 32:return k;case 64:return k;default:throw Error(`unexpected integer bit width: ${r}`)}else switch(r){case 8:return k;case 16:return k;case 32:return k;case 64:return k;default:throw Error(`unexpected integer bit width: ${r}`)}}case p.Float:{let{precision:t}=e;switch(t){case De.HALF:throw Error("DuckDB does not support half-precision floats");case De.SINGLE:return k;case De.DOUBLE:return k;default:throw Error(`unexpected precision: ${t}`)}}case p.Binary:return vt;case p.Utf8:return xt;case p.Bool:return qt;case p.Decimal:return Vt;case p.Date:{let{unit:t}=e;switch(t){case Ce.DAY:return Wt;case Ce.MILLISECOND:throw Error("DuckDB does not support millisecond-unit dates");default:throw Error(`unexpected date unit: ${t}`)}}case p.Time:{let{unit:t}=e;switch(t){case b.SECOND:throw Error("DuckDB does not support second-unit times");case b.MILLISECOND:throw Error("DuckDB does not support millisecond-unit times");case b.MICROSECOND:return $t;case b.NANOSECOND:throw Error("DuckDB does not support nanosecond-unit times");default:throw Error(`unexpected time unit: ${t}`)}}case p.Timestamp:{let{unit:t,timezone:r}=e;switch(t){case b.SECOND:if(r)throw Error("DuckDB does not support second-unit timestamps with time zone");return zt;case b.MILLISECOND:if(r)throw Error("DuckDB does not support millisecond-unit timestamps with time zone");return Jt;case b.MICROSECOND:return Xt;case b.NANOSECOND:if(r)throw Error("DuckDB does not support nanosecond-unit timestamps with time zone");return tr;default:throw Error(`unexpected time unit: ${t}`)}}case p.Interval:{let{unit:t}=e;switch(t){case he.YEAR_MONTH:throw Error("DuckDB does not support year-month intervals");case he.DAY_TIME:throw Error("DuckDB does not support day-time intervals");case he.MONTH_DAY_NANO:return sr;default:throw Error(`unexpected interval unit: ${t}`)}}case p.List:return ar;case p.Struct:return or;case p.Union:{let{mode:t}=e;switch(t){case Me.Dense:throw Error("DuckDB does not support dense unions");case Me.Sparse:return cr;default:throw Error(`unexpected union mode: ${t}`)}}case p.FixedSizeBinary:throw Error("DuckDB does not support fixed-size binary");case p.FixedSizeList:throw Error("DuckDB does not support fixed-size lists");case p.Map:return dr;case p.Dictionary:return mr;default:throw Error(`unexpected type id: ${e.typeId}`)}}function f(e,t){return Ue(e.type)(e,t)}function pr(e,t,r){let s=Ue(e.type);return Ft(e,t,r,s)}var ee=class extends _{constructor(r){super();this.recordBatch=r}get columnCount(){return this.recordBatch.schema.fields.length}get rowCount(){return this.recordBatch.data.length}columnName(r){return this.recordBatch.schema.fields[r].name}columnType(r){let s=this.recordBatch.schema.fields[r];return I(s.type)}value(r,s){let n=this.recordBatch.data.children[r];return f(n,s)}};var ge=Object.freeze({done:!0,value:void 0}),w=class{constructor(t){this.recordBatchIterator=t}async next(){let{done:t,value:r}=await this.recordBatchIterator.next();return r?{done:!!t,value:new ee(r)}:ge}async return(t){return this.recordBatchIterator.return&&await this.recordBatchIterator.return(),t?{done:!0,value:t}:ge}async throw(t){return this.recordBatchIterator.throw&&await this.recordBatchIterator.throw(t),ge}[Symbol.asyncIterator](){return this}};var N=class extends _{constructor(r){super();this.iteratorDone=!1;this.totalRowsRead=0;this.batches=[];this.batchSizeRuns=[];this.iterator=r}get columnCount(){return this.batches.length===0?0:this.batches[0].columnCount}get rowCount(){return this.totalRowsRead}columnName(r){if(this.batches.length===0)throw Error("no column data");return this.batches[0].columnName(r)}columnType(r){if(this.batches.length===0)throw Error("no column data");return this.batches[0].columnType(r)}value(r,s){if(this.totalRowsRead===0)throw Error("no data");let n=0,a=s;for(let i of this.batchSizeRuns){if(a<i.rowCount){n+=Math.floor(a/i.batchSize);let l=a%i.batchSize;return this.batches[n].value(r,l)}n+=i.batchCount,a-=i.rowCount}throw Error(`Row index ${s} requested, but only ${this.totalRowsRead} row have been read so far.`)}get done(){return this.iteratorDone}async readAll(){return this.read()}async readUntil(r){return this.read(r)}async read(r){for(;!(this.iteratorDone||r!==void 0&&this.totalRowsRead>=r);){let{value:s,done:n}=await this.iterator.next();s&&(this.updateBatchSizeRuns(s),this.batches.push(s),this.totalRowsRead+=s.rowCount),n&&(this.iteratorDone=n)}}updateBatchSizeRuns(r){if(this.batchSizeRuns.length>0){let s=this.batchSizeRuns[this.batchSizeRuns.length-1];if(s.batchSize===r.rowCount){s.batchCount+=1,s.rowCount+=s.batchSize;return}}this.batchSizeRuns.push({batchCount:1,batchSize:r.rowCount,rowCount:r.rowCount})}};var B=class{constructor(t,r,s){this.connection=null;this.deferredConnection=t,this.query=r,this.args=s}async run(){let t=performance.now(),r=await this.sendQuery(),s=new w(r),n=new N(s);await n.readAll();let a=performance.now();return{type:"materialized",startTimeMs:t,endTimeMs:a,data:n}}async cancel(){return(this.connection||await this.getConnection()).cancelSent()}async getConnection(){return this.connection=await this.deferredConnection,this.connection}async sendQuery(){let t=this.connection||await this.getConnection();return this.args&&this.args?.length>0?(await t.prepare(this.query)).send(...this.args):t.send(this.query)}};var W=class{constructor(t,r,s){this.connection=null;this.deferredConnection=t,this.query=r,this.args=s}async run(){let t=await this.sendQuery(),r=new w(t),s=new N(r);return{type:"streaming",arrowStream:t,dataStream:r,dataReader:s}}async cancel(){return(this.connection||await this.getConnection()).cancelSent()}async getConnection(){return this.connection=await this.deferredConnection,this.connection}async sendQuery(){let t=this.connection||await this.getConnection();return this.args&&this.args?.length>0?(await t.prepare(this.query)).send(this.args):t.send(this.query)}};function xe(){throw new Error("should never be called")}function Qe(){let e=xe,t=xe;return{promise:new Promise((s,n)=>{e=s,t=n}),resolve:e,reject:t}}var te=class{constructor(t){this.nextTaskId=1;this.queuedTaskIds=[];this.queuedTasksById={};this.processingQueue=!1;this.logSink=t}incompleteTaskCount(){let t=0;for(let r of this.queuedTaskIds){let s=this.queuedTasksById[r];s&&(s.state===0||s.state===1)&&t++}return t}enqueueTask(t){let r=this.createTaskId();return this.logDebug(`enqueueTask: creating task id = ${r}`),this.addQueuedTask({id:r,task:t,state:0,deferred:Qe(),cancelled:!1}),this.scheduleProcessQueueIfNeeded(),r}async cancelTask(t,r){this.logDebug(`cancelTask(${t}): called`);let s=this.queuedTasksById[t];if(!s)throw new Error(`Task with id ${t} not found`);switch(s.state){case 0:return s.cancelled?this.logDebug(`cancelTask(${t}): cancelling pending task (already cancelled)`):(this.logDebug(`cancelTask(${t}): cancelling pending task`),s.cancelled=!0,s.deferred.reject(new Error(r??"pending task cancelled")),this.scheduleProcessQueueIfNeeded()),!0;case 1:return this.logDebug(`cancelTask(${t}): cancelling running task`),s.cancelled=!0,s.task.cancel();case 2:return this.logDebug(`cancelTask(${t}): can't cancel resolved task`),!1;case 3:return this.logDebug(`cancelTask(${t}): can't cancel rejected task`),!1;default:throw s.state,new Error("unreachable")}}taskResult(t){this.logDebug(`taskResults(${t}): called`);let r=this.queuedTasksById[t];if(!r)throw new Error(`Task with id ${t} not found`);return r.deferred.promise}logDebug(t){this.logSink&&this.logSink.debug(t)}logWarn(t){this.logSink&&this.logSink.warn(t)}createTaskId(){return`t${this.nextTaskId++}`}addQueuedTask(t){this.queuedTaskIds.push(t.id),this.queuedTasksById[t.id]=t}scheduleProcessQueueIfNeeded(){this.processingQueue?this.logDebug("scheduleProcessQueueIfNeeded: processQueue already scheduled"):(this.logDebug("scheduleProcessQueueIfNeeded: scheduling processQueue"),this.processingQueue=!0,setTimeout(()=>{this.processQueue(),this.processingQueue=!1},0))}processQueue(){this.logDebug("processQueue: processing started");let t;do t=this.processFirstQueuedTask();while(t);this.logDebug("processQueue: processing completed")}processFirstQueuedTask(){if(this.queuedTaskIds.length===0)return this.logDebug("processFirstQueuedTask: queue empty"),!1;let t=this.queuedTaskIds[0];this.logDebug(`processFirstQueuedTask: processing task ${t}`);let r=this.queuedTasksById[t];if(!r)return this.logWarn(`processFirstQueuedTask: task ${t} not found in map`),this.queuedTaskIds.shift(),!0;switch(r.state){case 0:return r.cancelled?(this.logDebug(`processFirstQueuedTask: removing cancelled pending task ${t} from queue`),this.queuedTaskIds.shift(),delete this.queuedTasksById[r.id],!0):(this.logDebug(`processFirstQueuedTask: running pending task ${t}`),r.state=1,r.task.run().then(s=>{this.logDebug(`processFirstQueuedTask: task ${t} resolved`),r.state=2,r.deferred.resolve(s)}).catch(s=>{this.logDebug(`processFirstQueuedTask: task ${t} rejected`),r.state=3,r.deferred.reject(s)}).finally(()=>{this.scheduleProcessQueueIfNeeded()}),!1);case 1:return this.logDebug(`processFirstQueuedTask: task ${t} at front of queue is already running`),!1;case 2:case 3:return this.logDebug(`processFirstQueuedTask: task ${t} at front of queue is completed, removing from queue`),this.queuedTaskIds.shift(),delete this.queuedTasksById[r.id],!0;default:throw r.state,new Error("unreachable")}}};var Te="CatalogChangeEvent",Y=null;async function Ge(e){let r=await(await $(e)).connect();return e.skipWelcomePack||await r.query("PRAGMA MD_USE_DEFAULT"),r}async function $(e){return Y||(Y=gr(e),Y)}function hr(e){return e?e.endsWith("/")?e:`${e}/`:"https://app.motherduck.com/"}async function Dr(e,t){let r=We(t),s=`${e}${r}${r.length>0?"/":""}`,n=`${s}duckdb-assets.json`,i=await(await fetch(n)).json();return i.coi&&(i.coi.mainModule=s+i.coi.mainModule,i.coi.mainWorker=s+i.coi.mainWorker,i.coi.pthreadWorker=s+i.coi.pthreadWorker),i.mvp&&(i.mvp.mainModule=s+i.mvp.mainModule,i.mvp.mainWorker=s+i.mvp.mainWorker),i.eh&&(i.eh.mainModule=s+i.eh.mainModule,i.eh.mainWorker=s+i.eh.mainWorker),i}function qe(e,t){return URL.createObjectURL(new Blob([`importScripts("${t}");`],{type:"text/javascript"}))}async function gr(e){let t=await Rr(),r=hr(e.duckDBAssetsURLPrefix),s=e.version||await kr(r),n=await Dr(r,s),a=e.useDuckDBWasmCOI?n.coi:n.eh;if(!a)throw new Error("Could not find DuckDB WASM asset URLs in duckdb-assets.json");let i=/^https?:\/\//.test(r),l=i?qe(r,a.mainWorker):a.mainWorker,h=i&&a.pthreadWorker?qe(r,a.pthreadWorker):a.pthreadWorker,T=new Worker(l);T.addEventListener("message",g=>{g?.data?.type==="MD_EVENT"&&(g.data.name===Te?document.dispatchEvent(new CustomEvent(Te,{detail:g.data})):console.error("Received unknown event",g.data))}),t||T.addEventListener("message",g=>{if(g&&g.data&&g.data.type==="Initialize"){let K=new Worker(g.data.workerUrl);URL.revokeObjectURL(g.data.workerUrl),K.postMessage(g.data,[g.data.port])}});let A=e.enableDebugLogging?Z.INFO:Z.WARNING,Ke=new Re(A),H=new be(Ke,T);await H.instantiate(a.mainModule,h),i&&(URL.revokeObjectURL(l),h&&URL.revokeObjectURL(h));let y=await H.connect();await yr(y,r,s),await y.query("LOAD icu;");let z=new URL(e.mdServerURL||"https://api.motherduck.com");await y.query(`SET motherduck_host='${z.hostname}';`),z.port&&await y.query(`SET motherduck_port='${z.port}';`),z.protocol==="http:"&&await y.query("SET motherduck_use_tls=false;"),await y.query(`SET motherduck_token='${e.mdToken}';`);let Ee=!1;for(let g=0;g<6e3;++g){if(await Tr(y)){Ee=!0;break}await new Promise(K=>setTimeout(K,10))}if(!Ee)throw new Error("Could not initialize worker after 1 minute.");let Je=e.enableDebugLogging?"debug":"error";return await y.query(`SET motherduck_log_level='${Je}';`),Y=H,H}async function Tr(e){return(await e.query("from MD_IS_NETWORK_READY();")).toArray()[0].Success}var Er="0.10-plus",je="app.motherduck.com",Ve="app.staging.motherduck.com";async function kr(e){let t=e.startsWith(`https://${je}`),r=e.startsWith(`https://${Ve}`);return t||r?(await(await fetch(`${e}duckdb_version_range/${Er}/manifest`)).json())[r?Ve:je]:(await(await fetch(`${e}version`)).json()).version}function We(e){return!e||e.startsWith("DEV-")?"":e}async function yr(e,t,r){let s=We(r),n=t==="/"?`${window.origin}${s.length>0?"/":""}`:t;await e.query([`SET custom_extension_repository="${n}${s}${s.length>0?"/":""}duckdb-wasm";`,"LOAD motherduck;","RESET custom_extension_repository;"].join(""))}async function Rr(){return new Promise(e=>{let t=URL.createObjectURL(new Blob(["self.postMessage({ canCreateWorker: !!self.Worker });"],{type:"application/javascript"})),r=new Worker(t);URL.revokeObjectURL(t),r.addEventListener("message",s);function s(n){r.removeEventListener("message",s),r.terminate(),e(n.data.canCreateWorker)}})}function Ye(e){let t=/^[^{]*({.*})/.exec(e);if(t){let r=t[1];try{let s=JSON.parse(r);if(s.message)return s.message}catch{return e}}return e}function Sr(e){return typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"}function $e(e){if(Sr(e))return e.message;try{return JSON.stringify(e)}catch{return String(e)}}var br=0;function Ir(){return`MDConnection_${br++}`}var He=class e{static{this.idMap={}}constructor(t,r,s){this.params=t,this.deferredDdbConnection=r,this.id=s,this.sequencer=new te(t.logSink)}static create(t){let r=Ir(),s=Ge(t),n=new e(t,s,r);return this.idMap[r]=n,n}async isInitialized(){return await this.deferredDdbConnection,!0}static getById(t){return this.idMap[t]}async tokenize(t){return(await this.deferredDdbConnection).bindings.tokenize(t)}incompleteQueryCount(){return this.sequencer.incompleteTaskCount()}enqueueQuery(t,r){return this.sequencer.enqueueTask(new B(this.deferredDdbConnection,t,r))}async safeEvaluateQuery(t){try{return{status:"success",result:await this.evaluateQuery(t)}}catch(r){return{status:"error",err:r}}}async safeEvaluatePreparedStatement(t,...r){try{return{status:"success",result:await this.evaluatePreparedStatement(t,r)}}catch(s){return{status:"error",err:s}}}async safeEvaluateStreamingQuery(t){try{return{status:"success",result:await this.evaluateStreamingQuery(t)}}catch(r){return{status:"error",err:r}}}async safeEvaluateStreamingPreparedStatement(t,r){try{return{status:"success",result:await this.evaluateStreamingPreparedStatement(t,r)}}catch(s){return{status:"error",err:s}}}async safeEvaluateQueuedQuery(t){try{return{status:"success",result:await this.evaluateQueuedQuery(t)}}catch(r){return{status:"error",err:r}}}async evaluateQuery(t){return this.evaluateExclusive(new B(this.deferredDdbConnection,t))}async evaluatePreparedStatement(t,r){return this.evaluateExclusive(new B(this.deferredDdbConnection,t,r))}async evaluateStreamingQuery(t){return this.evaluateExclusive(new W(this.deferredDdbConnection,t,void 0))}async evaluateStreamingPreparedStatement(t,r){return this.evaluateExclusive(new W(this.deferredDdbConnection,t,r))}async evaluateExclusive(t){let r=this.sequencer.enqueueTask(t);return this.sequencer.taskResult(r).catch(ze)}async evaluateQueuedQuery(t){return this.sequencer.taskResult(t).catch(ze)}async cancelQuery(t,r){return this.sequencer.cancelTask(t,r)}async close(){return(await this.deferredDdbConnection).close()}};function ze(e){throw new Error(Ye($e(e)))}async function va(e,t){let r=await $(e);for(let s=0;s<t.length;++s){let n=t.item(s);await r.dropFile(n.name),await r.registerFileHandle(n.name,n,ae.BROWSER_FILEREADER,!1)}}async function Ua(e){return(await $(e)).globFiles("*")}export{Te as CATALOG_CHANGE_EVENT,O as DuckDBBlob,_ as DuckDBData,N as DuckDBDataReader,L as DuckDBDate,C as DuckDBDecimal,M as DuckDBInterval,P as DuckDBList,v as DuckDBMap,U as DuckDBStruct,x as DuckDBTime,Q as DuckDBTimestampMicroseconds,q as DuckDBTimestampMilliseconds,j as DuckDBTimestampNanoseconds,V as DuckDBTimestampSeconds,c as DuckDBTypes,He as MDConnection,d as SpecialDuckDBValue,ye as TokenType,$ as getAsyncDuckDb,Ua as readLocalFS,va as registerFiles};
|