@run-trace/duckdb-wasm 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/duckdb-browser-coi.pthread.worker.js +9 -9
- package/dist/duckdb-browser-coi.pthread.worker.js.map +7 -0
- package/dist/duckdb-browser-coi.worker.js +7 -7
- package/dist/duckdb-browser-coi.worker.js.map +7 -0
- package/dist/duckdb-browser-eh.worker.js +3 -3
- package/dist/duckdb-browser-eh.worker.js.map +7 -0
- package/dist/duckdb-browser-mvp.worker.js +3 -3
- package/dist/duckdb-browser-mvp.worker.js.map +7 -0
- package/dist/duckdb-coi.wasm +0 -0
- package/dist/duckdb-eh.wasm +0 -0
- package/dist/duckdb-mvp.wasm +0 -0
- package/dist/duckdb-node-eh.worker.cjs +2 -2
- package/dist/duckdb-node-eh.worker.cjs.map +7 -0
- package/dist/duckdb-node-mvp.worker.cjs +2 -2
- package/dist/duckdb-node-mvp.worker.cjs.map +7 -0
- package/dist/duckdb-node.mjs.map +7 -0
- package/dist/types/bindings/duckdb_module.d.ts +3 -0
- package/dist/types/bindings/runtime.d.ts +7 -0
- package/package.json +2 -3
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/bindings/duckdb-eh.js", "../../js-sha256/src/sha256.js", "../src/targets/duckdb-browser-eh.worker.ts", "../src/bindings/connection.ts", "../src/status.ts", "../src/bindings/udf_runtime.ts", "../src/bindings/runtime.ts", "../src/bindings/file_stats.ts", "../src/bindings/bindings_base.ts", "../src/parallel/worker_dispatcher.ts", "../src/bindings/bindings_browser_eh.ts", "../src/bindings/bindings_browser_base.ts", "../src/utils/s3_helper.ts", "../src/bindings/runtime_browser.ts"],
|
|
4
|
+
"sourcesContent": ["var DuckDB = (() => {\n var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined;\n if (typeof __filename != 'undefined') _scriptName = _scriptName || __filename;\n return (\n async function(moduleArg = {}) {\n var moduleRtn;\n\n var Module = moduleArg;\n var readyPromiseResolve, readyPromiseReject;\n var readyPromise = new Promise((resolve, reject) => {\n readyPromiseResolve = resolve;\n readyPromiseReject = reject\n });\n var ENVIRONMENT_IS_WEB = typeof window == \"object\";\n var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != \"undefined\";\n var ENVIRONMENT_IS_NODE = typeof process == \"object\" && typeof process.versions == \"object\" && typeof process.versions.node == \"string\" && process.type != \"renderer\";\n if (ENVIRONMENT_IS_NODE) {}\n var moduleOverrides = Object.assign({}, Module);\n var arguments_ = [];\n var thisProgram = \"./this.program\";\n var quit_ = (status, toThrow) => {\n throw toThrow\n };\n var scriptDirectory = \"\";\n\n function locateFile(path) {\n if (Module[\"locateFile\"]) {\n return Module[\"locateFile\"](path, scriptDirectory)\n }\n return scriptDirectory + path\n }\n var readAsync, readBinary;\n if (ENVIRONMENT_IS_NODE) {\n var fs = require(\"fs\");\n var nodePath = require(\"path\");\n scriptDirectory = __dirname + \"/\";\n readBinary = filename => {\n filename = isFileURI(filename) ? new URL(filename) : filename;\n var ret = fs.readFileSync(filename);\n return ret\n };\n readAsync = async (filename, binary = true) => {\n filename = isFileURI(filename) ? new URL(filename) : filename;\n var ret = fs.readFileSync(filename, binary ? undefined : \"utf8\");\n return ret\n };\n if (!Module[\"thisProgram\"] && process.argv.length > 1) {\n thisProgram = process.argv[1].replace(/\\\\/g, \"/\")\n }\n arguments_ = process.argv.slice(2);\n quit_ = (status, toThrow) => {\n process.exitCode = status;\n throw toThrow\n }\n } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n if (ENVIRONMENT_IS_WORKER) {\n scriptDirectory = self.location.href\n } else if (typeof document != \"undefined\" && document.currentScript) {\n scriptDirectory = document.currentScript.src\n }\n if (_scriptName) {\n scriptDirectory = _scriptName\n }\n if (scriptDirectory.startsWith(\"blob:\")) {\n scriptDirectory = \"\"\n } else {\n scriptDirectory = scriptDirectory.slice(0, scriptDirectory.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1)\n } {\n if (ENVIRONMENT_IS_WORKER) {\n readBinary = url => {\n var xhr = new XMLHttpRequest;\n xhr.open(\"GET\", url, false);\n xhr.responseType = \"arraybuffer\";\n xhr.send(null);\n return new Uint8Array(xhr.response)\n }\n }\n readAsync = async url => {\n var response = await fetch(url, {\n credentials: \"same-origin\"\n });\n if (response.ok) {\n return response.arrayBuffer()\n }\n throw new Error(response.status + \" : \" + response.url)\n }\n }\n } else {}\n var out = Module[\"print\"] || console.log.bind(console);\n var err = Module[\"printErr\"] || console.error.bind(console);\n Object.assign(Module, moduleOverrides);\n moduleOverrides = null;\n if (Module[\"arguments\"]) arguments_ = Module[\"arguments\"];\n if (Module[\"thisProgram\"]) thisProgram = Module[\"thisProgram\"];\n var wasmBinary = Module[\"wasmBinary\"];\n var wasmMemory;\n var ABORT = false;\n var EXITSTATUS;\n\n function assert(condition, text) {\n if (!condition) {\n abort(text)\n }\n }\n var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAP64, HEAPU64, HEAPF64;\n var runtimeInitialized = false;\n var isFileURI = filename => filename.startsWith(\"file://\");\n\n function updateMemoryViews() {\n var b = wasmMemory.buffer;\n Module[\"HEAP8\"] = HEAP8 = new Int8Array(b);\n Module[\"HEAP16\"] = HEAP16 = new Int16Array(b);\n Module[\"HEAPU8\"] = HEAPU8 = new Uint8Array(b);\n Module[\"HEAPU16\"] = HEAPU16 = new Uint16Array(b);\n Module[\"HEAP32\"] = HEAP32 = new Int32Array(b);\n Module[\"HEAPU32\"] = HEAPU32 = new Uint32Array(b);\n Module[\"HEAPF32\"] = HEAPF32 = new Float32Array(b);\n Module[\"HEAPF64\"] = HEAPF64 = new Float64Array(b);\n Module[\"HEAP64\"] = HEAP64 = new BigInt64Array(b);\n Module[\"HEAPU64\"] = HEAPU64 = new BigUint64Array(b)\n }\n\n function preRun() {\n if (Module[\"preRun\"]) {\n if (typeof Module[\"preRun\"] == \"function\") Module[\"preRun\"] = [Module[\"preRun\"]];\n while (Module[\"preRun\"].length) {\n addOnPreRun(Module[\"preRun\"].shift())\n }\n }\n callRuntimeCallbacks(onPreRuns)\n }\n\n function initRuntime() {\n runtimeInitialized = true;\n wasmExports[\"ta\"]()\n }\n\n function preMain() {}\n\n function postRun() {\n if (Module[\"postRun\"]) {\n if (typeof Module[\"postRun\"] == \"function\") Module[\"postRun\"] = [Module[\"postRun\"]];\n while (Module[\"postRun\"].length) {\n addOnPostRun(Module[\"postRun\"].shift())\n }\n }\n callRuntimeCallbacks(onPostRuns)\n }\n var runDependencies = 0;\n var dependenciesFulfilled = null;\n\n function addRunDependency(id) {\n runDependencies++;\n Module[\"monitorRunDependencies\"]?.(runDependencies)\n }\n\n function removeRunDependency(id) {\n runDependencies--;\n Module[\"monitorRunDependencies\"]?.(runDependencies);\n if (runDependencies == 0) {\n if (dependenciesFulfilled) {\n var callback = dependenciesFulfilled;\n dependenciesFulfilled = null;\n callback()\n }\n }\n }\n\n function abort(what) {\n Module[\"onAbort\"]?.(what);\n what = \"Aborted(\" + what + \")\";\n err(what);\n ABORT = true;\n what += \". Build with -sASSERTIONS for more info.\";\n if (runtimeInitialized) {\n ___trap()\n }\n var e = new WebAssembly.RuntimeError(what);\n readyPromiseReject(e);\n throw e\n }\n var wasmBinaryFile;\n\n function findWasmBinary() {\n return locateFile(\"./duckdb-eh.wasm\")\n }\n\n function getBinarySync(file) {\n if (file == wasmBinaryFile && wasmBinary) {\n return new Uint8Array(wasmBinary)\n }\n if (readBinary) {\n return readBinary(file)\n }\n throw \"both async and sync fetching of the wasm failed\"\n }\n async function getWasmBinary(binaryFile) {\n if (!wasmBinary) {\n try {\n var response = await readAsync(binaryFile);\n return new Uint8Array(response)\n } catch {}\n }\n return getBinarySync(binaryFile)\n }\n async function instantiateArrayBuffer(binaryFile, imports) {\n try {\n var binary = await getWasmBinary(binaryFile);\n var instance = await WebAssembly.instantiate(binary, imports);\n return instance\n } catch (reason) {\n err(`failed to asynchronously prepare wasm: ${reason}`);\n abort(reason)\n }\n }\n async function instantiateAsync(binary, binaryFile, imports) {\n if (!binary && typeof WebAssembly.instantiateStreaming == \"function\" && !ENVIRONMENT_IS_NODE) {\n try {\n var response = fetch(binaryFile, {\n credentials: \"same-origin\"\n });\n var instantiationResult = await WebAssembly.instantiateStreaming(response, imports);\n return instantiationResult\n } catch (reason) {\n err(`wasm streaming compile failed: ${reason}`);\n err(\"falling back to ArrayBuffer instantiation\")\n }\n }\n return instantiateArrayBuffer(binaryFile, imports)\n }\n\n function getWasmImports() {\n return {\n a: wasmImports\n }\n }\n async function createWasm() {\n function receiveInstance(instance, module) {\n wasmExports = instance.exports;\n wasmExports = applySignatureConversions(wasmExports);\n wasmMemory = wasmExports[\"sa\"];\n updateMemoryViews();\n removeRunDependency(\"wasm-instantiate\");\n return wasmExports\n }\n addRunDependency(\"wasm-instantiate\");\n\n function receiveInstantiationResult(result) {\n return receiveInstance(result[\"instance\"])\n }\n var info = getWasmImports();\n if (Module[\"instantiateWasm\"]) {\n return new Promise((resolve, reject) => {\n Module[\"instantiateWasm\"](info, (mod, inst) => {\n receiveInstance(mod, inst);\n resolve(mod.exports)\n })\n })\n }\n wasmBinaryFile ??= findWasmBinary();\n try {\n var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info);\n var exports = receiveInstantiationResult(result);\n return exports\n } catch (e) {\n readyPromiseReject(e);\n return Promise.reject(e)\n }\n }\n var ASM_CONSTS = {\n 10294593: ($0, $1, $2, $3) => {\n var url = UTF8ToString($0);\n if (typeof XMLHttpRequest === \"undefined\") {\n return 0\n }\n const xhr = new XMLHttpRequest;\n if (false && url.startsWith(\"http://\")) {\n url = \"https://\" + url.substr(7)\n }\n xhr.open(UTF8ToString($3), url, false);\n xhr.responseType = \"arraybuffer\";\n var i = 0;\n var len = $1;\n while (i < len * 2) {\n var ptr1 = HEAP32[$2 / 4 + i >>> 0];\n var ptr2 = HEAP32[$2 / 4 + i + 1 >>> 0];\n try {\n var z = encodeURI(UTF8ToString(ptr1));\n if (z === \"Host\") z = \"X-Host-Override\";\n if (z === \"User-Agent\") z = \"X-user-agent\";\n if (z === \"Authorization\") {\n xhr.setRequestHeader(z, UTF8ToString(ptr2))\n } else {\n xhr.setRequestHeader(z, encodeURI(UTF8ToString(ptr2)))\n }\n } catch (error) {\n console.warn(\"Error while performing XMLHttpRequest.setRequestHeader()\", error)\n }\n i += 2\n }\n try {\n xhr.send(null)\n } catch {\n return 0\n }\n if (xhr.status >= 400) return 0;\n var uInt8Array = xhr.response;\n var len = uInt8Array.byteLength;\n var fileOnWasmHeap = _malloc(len + 4);\n var properArray = new Uint8Array(uInt8Array);\n for (var iii = 0; iii < len; iii++) {\n Module.HEAPU8[iii + fileOnWasmHeap + 4] = properArray[iii]\n }\n var LEN123 = new Uint8Array(4);\n LEN123[0] = len % 256;\n len -= LEN123[0];\n len /= 256;\n LEN123[1] = len % 256;\n len -= LEN123[1];\n len /= 256;\n LEN123[2] = len % 256;\n len -= LEN123[2];\n len /= 256;\n LEN123[3] = len % 256;\n len -= LEN123[3];\n len /= 256;\n Module.HEAPU8.set(LEN123, fileOnWasmHeap);\n return fileOnWasmHeap\n },\n 10296e3: ($0, $1, $2, $3, $4, $5) => {\n var url = UTF8ToString($0);\n if (typeof XMLHttpRequest === \"undefined\") {\n return 0\n }\n const xhr = new XMLHttpRequest;\n if (false && url.startsWith(\"http://\")) {\n url = \"https://\" + url.substr(7)\n }\n xhr.open(UTF8ToString($3), url, false);\n xhr.responseType = \"arraybuffer\";\n var i = 0;\n var len = $1;\n while (i < len * 2) {\n var ptr1 = HEAP32[$2 / 4 + i >>> 0];\n var ptr2 = HEAP32[$2 / 4 + i + 1 >>> 0];\n try {\n var z = encodeURI(UTF8ToString(ptr1));\n if (z === \"Host\") z = \"X-Host-Override\";\n if (z === \"User-Agent\") z = \"X-user-agent\";\n if (z === \"Authorization\") {\n xhr.setRequestHeader(z, UTF8ToString(ptr2))\n } else {\n xhr.setRequestHeader(z, encodeURI(UTF8ToString(ptr2)))\n }\n } catch (error) {\n console.warn(\"Error while performing XMLHttpRequest.setRequestHeader()\", error)\n }\n i += 2\n }\n try {\n var post_payload = new Uint8Array($5);\n for (var iii = 0; iii < $5; iii++) {\n post_payload[iii] = Module.HEAPU8[iii + $4]\n }\n xhr.send(post_payload)\n } catch {\n return 0\n }\n if (xhr.status >= 400) return 0;\n var uInt8Array = Uint8Array.from(Array.from(xhr.getResponseHeader(\"Etag\")).map(letter => letter.charCodeAt(0)));\n var len = uInt8Array.byteLength;\n var fileOnWasmHeap = _malloc(len + 4);\n var properArray = new Uint8Array(uInt8Array);\n for (var iii = 0; iii < len; iii++) {\n Module.HEAPU8[iii + fileOnWasmHeap + 4] = properArray[iii]\n }\n var LEN123 = new Uint8Array(4);\n LEN123[0] = len % 256;\n len -= LEN123[0];\n len /= 256;\n LEN123[1] = len % 256;\n len -= LEN123[1];\n len /= 256;\n LEN123[2] = len % 256;\n len -= LEN123[2];\n len /= 256;\n LEN123[3] = len % 256;\n len -= LEN123[3];\n len /= 256;\n Module.HEAPU8.set(LEN123, fileOnWasmHeap);\n return fileOnWasmHeap\n },\n 10297620: ($0, $1, $2, $3) => {\n var url = UTF8ToString($0);\n if (typeof XMLHttpRequest === \"undefined\") {\n return 0\n }\n const xhr = new XMLHttpRequest;\n if (false && url.startsWith(\"http://\")) {\n url = \"https://\" + url.substr(7)\n }\n xhr.open(UTF8ToString($3), url, false);\n xhr.responseType = \"arraybuffer\";\n var i = 0;\n var len = $1;\n while (i < len * 2) {\n var ptr1 = HEAP32[$2 / 4 + i >>> 0];\n var ptr2 = HEAP32[$2 / 4 + i + 1 >>> 0];\n try {\n var z = encodeURI(UTF8ToString(ptr1));\n if (z === \"Host\") z = \"X-Host-Override\";\n if (z === \"User-Agent\") z = \"X-user-agent\";\n if (z === \"Authorization\") {\n xhr.setRequestHeader(z, UTF8ToString(ptr2))\n } else {\n xhr.setRequestHeader(z, encodeURI(UTF8ToString(ptr2)))\n }\n } catch (error) {\n console.warn(\"Error while performing XMLHttpRequest.setRequestHeader()\", error)\n }\n i += 2\n }\n try {\n xhr.send(null)\n } catch {\n return 0\n }\n if (xhr.status >= 400) return 0;\n var uInt8Array = xhr.response;\n var len = uInt8Array.byteLength;\n var fileOnWasmHeap = _malloc(len + 8);\n var properArray = new Uint8Array(uInt8Array);\n for (var iii = 0; iii < len; iii++) {\n Module.HEAPU8[iii + fileOnWasmHeap + 8] = properArray[iii]\n }\n var LEN123 = new Uint8Array(4);\n LEN123[0] = len % 256;\n len -= LEN123[0];\n len /= 256;\n LEN123[1] = len % 256;\n len -= LEN123[1];\n len /= 256;\n LEN123[2] = len % 256;\n len -= LEN123[2];\n len /= 256;\n LEN123[3] = len % 256;\n len -= LEN123[3];\n len /= 256;\n Module.HEAPU8.set(LEN123, fileOnWasmHeap + 4);\n var headers = Uint8Array.from(Array.from(xhr.getAllResponseHeaders()).map(letter => letter.charCodeAt(0)));\n len = headers.byteLength;\n var headersOnWasmHeap = _malloc(len + 8);\n for (var iii = 0; iii < len; iii++) {\n Module.HEAPU8[iii + headersOnWasmHeap + 8] = headers[iii]\n }\n LEN123 = new Uint8Array(4);\n LEN123[0] = len % 256;\n len -= LEN123[0];\n len /= 256;\n LEN123[1] = len % 256;\n len -= LEN123[1];\n len /= 256;\n LEN123[2] = len % 256;\n len -= LEN123[2];\n len /= 256;\n LEN123[3] = len % 256;\n len -= LEN123[3];\n len /= 256;\n Module.HEAPU8.set(LEN123, headersOnWasmHeap + 4);\n len = headersOnWasmHeap;\n LEN123 = new Uint8Array(4);\n LEN123[0] = len % 256;\n len -= LEN123[0];\n len /= 256;\n LEN123[1] = len % 256;\n len -= LEN123[1];\n len /= 256;\n LEN123[2] = len % 256;\n len -= LEN123[2];\n len /= 256;\n LEN123[3] = len % 256;\n len -= LEN123[3];\n len /= 256;\n Module.HEAPU8.set(LEN123, fileOnWasmHeap);\n return fileOnWasmHeap\n },\n 10299904: ($0, $1, $2, $3) => {\n var url = UTF8ToString($0);\n if (typeof XMLHttpRequest === \"undefined\") {\n return 0\n }\n const xhr = new XMLHttpRequest;\n if (false && url.startsWith(\"http://\")) {\n url = \"https://\" + url.substr(7)\n }\n xhr.open(UTF8ToString($3), url, false);\n xhr.responseType = \"arraybuffer\";\n var i = 0;\n var len = $1;\n while (i < len * 2) {\n var ptr1 = HEAP32[$2 / 4 + i >>> 0];\n var ptr2 = HEAP32[$2 / 4 + i + 1 >>> 0];\n try {\n var z = encodeURI(UTF8ToString(ptr1));\n if (z === \"Host\") z = \"X-Host-Override\";\n if (z === \"User-Agent\") z = \"X-user-agent\";\n if (z === \"Authorization\") {\n xhr.setRequestHeader(z, UTF8ToString(ptr2))\n } else {\n xhr.setRequestHeader(z, encodeURI(UTF8ToString(ptr2)))\n }\n } catch (error) {\n console.warn(\"Error while performing XMLHttpRequest.setRequestHeader()\", error)\n }\n i += 2\n }\n try {\n xhr.send(null)\n } catch {\n return 0\n }\n if (xhr.status >= 400) return 0;\n var uInt8Array = xhr.response;\n var len = uInt8Array.byteLength;\n var fileOnWasmHeap = _malloc(len + 4);\n var properArray = new Uint8Array(uInt8Array);\n for (var iii = 0; iii < len; iii++) {\n Module.HEAPU8[iii + fileOnWasmHeap + 4] = properArray[iii]\n }\n var LEN123 = new Uint8Array(4);\n LEN123[0] = len % 256;\n len -= LEN123[0];\n len /= 256;\n LEN123[1] = len % 256;\n len -= LEN123[1];\n len /= 256;\n LEN123[2] = len % 256;\n len -= LEN123[2];\n len /= 256;\n LEN123[3] = len % 256;\n len -= LEN123[3];\n len /= 256;\n Module.HEAPU8.set(LEN123, fileOnWasmHeap);\n return fileOnWasmHeap\n },\n 10301311: ($0, $1, $2, $3, $4, $5) => {\n var url = UTF8ToString($0);\n if (typeof XMLHttpRequest === \"undefined\") {\n return 0\n }\n const xhr = new XMLHttpRequest;\n if (false && url.startsWith(\"http://\")) {\n url = \"https://\" + url.substr(7)\n }\n xhr.open(UTF8ToString($3), url, false);\n xhr.responseType = \"arraybuffer\";\n var i = 0;\n var len = $1;\n while (i < len * 2) {\n var ptr1 = HEAP32[$2 / 4 + i >>> 0];\n var ptr2 = HEAP32[$2 / 4 + i + 1 >>> 0];\n try {\n var z = encodeURI(UTF8ToString(ptr1));\n if (z === \"Host\") z = \"X-Host-Override\";\n if (z === \"User-Agent\") z = \"X-user-agent\";\n if (z === \"Authorization\") {\n xhr.setRequestHeader(z, UTF8ToString(ptr2))\n } else {\n xhr.setRequestHeader(z, encodeURI(UTF8ToString(ptr2)))\n }\n } catch (error) {\n console.warn(\"Error while performing XMLHttpRequest.setRequestHeader()\", error)\n }\n i += 2\n }\n try {\n var post_payload = new Uint8Array($5);\n for (var iii = 0; iii < $5; iii++) {\n post_payload[iii] = Module.HEAPU8[iii + $4]\n }\n xhr.send(post_payload)\n } catch {\n return 0\n }\n if (xhr.status >= 400) return 0;\n var uInt8Array = xhr.response;\n var len = uInt8Array.byteLength;\n var fileOnWasmHeap = _malloc(len + 4);\n var properArray = new Uint8Array(uInt8Array);\n for (var iii = 0; iii < len; iii++) {\n Module.HEAPU8[iii + fileOnWasmHeap + 4] = properArray[iii]\n }\n var LEN123 = new Uint8Array(4);\n LEN123[0] = len % 256;\n len -= LEN123[0];\n len /= 256;\n LEN123[1] = len % 256;\n len -= LEN123[1];\n len /= 256;\n LEN123[2] = len % 256;\n len -= LEN123[2];\n len /= 256;\n LEN123[3] = len % 256;\n len -= LEN123[3];\n len /= 256;\n Module.HEAPU8.set(LEN123, fileOnWasmHeap);\n return fileOnWasmHeap\n }\n };\n class ExitStatus {\n name = \"ExitStatus\";\n constructor(status) {\n this.message = `Program terminated with exit(${status})`;\n this.status = status\n }\n }\n var callRuntimeCallbacks = callbacks => {\n while (callbacks.length > 0) {\n callbacks.shift()(Module)\n }\n };\n var onPostRuns = [];\n var addOnPostRun = cb => onPostRuns.unshift(cb);\n var onPreRuns = [];\n var addOnPreRun = cb => onPreRuns.unshift(cb);\n var noExitRuntime = Module[\"noExitRuntime\"] || true;\n\n function SOCKFS() {\n abort(\"missing function: $SOCKFS\")\n }\n SOCKFS.stub = true;\n\n function FS() {\n abort(\"missing function: $FS\")\n }\n FS.stub = true;\n var getSocketFromFD = fd => {\n var socket = SOCKFS.getSocket(fd);\n if (!socket) throw new FS.ErrnoError(8);\n return socket\n };\n var inetNtop4 = addr => (addr & 255) + \".\" + (addr >> 8 & 255) + \".\" + (addr >> 16 & 255) + \".\" + (addr >> 24 & 255);\n var inetNtop6 = ints => {\n var str = \"\";\n var word = 0;\n var longest = 0;\n var lastzero = 0;\n var zstart = 0;\n var len = 0;\n var i = 0;\n var parts = [ints[0] & 65535, ints[0] >> 16, ints[1] & 65535, ints[1] >> 16, ints[2] & 65535, ints[2] >> 16, ints[3] & 65535, ints[3] >> 16];\n var hasipv4 = true;\n var v4part = \"\";\n for (i = 0; i < 5; i++) {\n if (parts[i] !== 0) {\n hasipv4 = false;\n break\n }\n }\n if (hasipv4) {\n v4part = inetNtop4(parts[6] | parts[7] << 16);\n if (parts[5] === -1) {\n str = \"::ffff:\";\n str += v4part;\n return str\n }\n if (parts[5] === 0) {\n str = \"::\";\n if (v4part === \"0.0.0.0\") v4part = \"\";\n if (v4part === \"0.0.0.1\") v4part = \"1\";\n str += v4part;\n return str\n }\n }\n for (word = 0; word < 8; word++) {\n if (parts[word] === 0) {\n if (word - lastzero > 1) {\n len = 0\n }\n lastzero = word;\n len++\n }\n if (len > longest) {\n longest = len;\n zstart = word - longest + 1\n }\n }\n for (word = 0; word < 8; word++) {\n if (longest > 1) {\n if (parts[word] === 0 && word >= zstart && word < zstart + longest) {\n if (word === zstart) {\n str += \":\";\n if (zstart === 0) str += \":\"\n }\n continue\n }\n }\n str += Number(_ntohs(parts[word] & 65535)).toString(16);\n str += word < 7 ? \":\" : \"\"\n }\n return str\n };\n var readSockaddr = (sa, salen) => {\n var family = HEAP16[sa >>> 1 >>> 0];\n var port = _ntohs(HEAPU16[sa + 2 >>> 1 >>> 0]);\n var addr;\n switch (family) {\n case 2:\n if (salen !== 16) {\n return {\n errno: 28\n }\n }\n addr = HEAP32[sa + 4 >>> 2 >>> 0];\n addr = inetNtop4(addr);\n break;\n case 10:\n if (salen !== 28) {\n return {\n errno: 28\n }\n }\n addr = [HEAP32[sa + 8 >>> 2 >>> 0], HEAP32[sa + 12 >>> 2 >>> 0], HEAP32[sa + 16 >>> 2 >>> 0], HEAP32[sa + 20 >>> 2 >>> 0]];\n addr = inetNtop6(addr);\n break;\n default:\n return {\n errno: 5\n }\n }\n return {\n family,\n addr,\n port\n }\n };\n var inetPton4 = str => {\n var b = str.split(\".\");\n for (var i = 0; i < 4; i++) {\n var tmp = Number(b[i]);\n if (isNaN(tmp)) return null;\n b[i] = tmp\n }\n return (b[0] | b[1] << 8 | b[2] << 16 | b[3] << 24) >>> 0\n };\n var jstoi_q = str => parseInt(str);\n var inetPton6 = str => {\n var words;\n var w, offset, z;\n var valid6regx = /^((?=.*::)(?!.*::.+::)(::)?([\\dA-F]{1,4}:(:|\\b)|){5}|([\\dA-F]{1,4}:){6})((([\\dA-F]{1,4}((?!\\3)::|:\\b|$))|(?!\\2\\3)){2}|(((2[0-4]|1\\d|[1-9])?\\d|25[0-5])\\.?\\b){4})$/i;\n var parts = [];\n if (!valid6regx.test(str)) {\n return null\n }\n if (str === \"::\") {\n return [0, 0, 0, 0, 0, 0, 0, 0]\n }\n if (str.startsWith(\"::\")) {\n str = str.replace(\"::\", \"Z:\")\n } else {\n str = str.replace(\"::\", \":Z:\")\n }\n if (str.indexOf(\".\") > 0) {\n str = str.replace(new RegExp(\"[.]\", \"g\"), \":\");\n words = str.split(\":\");\n words[words.length - 4] = jstoi_q(words[words.length - 4]) + jstoi_q(words[words.length - 3]) * 256;\n words[words.length - 3] = jstoi_q(words[words.length - 2]) + jstoi_q(words[words.length - 1]) * 256;\n words = words.slice(0, words.length - 2)\n } else {\n words = str.split(\":\")\n }\n offset = 0;\n z = 0;\n for (w = 0; w < words.length; w++) {\n if (typeof words[w] == \"string\") {\n if (words[w] === \"Z\") {\n for (z = 0; z < 8 - words.length + 1; z++) {\n parts[w + z] = 0\n }\n offset = z - 1\n } else {\n parts[w + offset] = _htons(parseInt(words[w], 16))\n }\n } else {\n parts[w + offset] = words[w]\n }\n }\n return [parts[1] << 16 | parts[0], parts[3] << 16 | parts[2], parts[5] << 16 | parts[4], parts[7] << 16 | parts[6]]\n };\n var DNS = {\n address_map: {\n id: 1,\n addrs: {},\n names: {}\n },\n lookup_name(name) {\n var res = inetPton4(name);\n if (res !== null) {\n return name\n }\n res = inetPton6(name);\n if (res !== null) {\n return name\n }\n var addr;\n if (DNS.address_map.addrs[name]) {\n addr = DNS.address_map.addrs[name]\n } else {\n var id = DNS.address_map.id++;\n assert(id < 65535, \"exceeded max address mappings of 65535\");\n addr = \"172.29.\" + (id & 255) + \".\" + (id & 65280);\n DNS.address_map.names[addr] = name;\n DNS.address_map.addrs[name] = addr\n }\n return addr\n },\n lookup_addr(addr) {\n if (DNS.address_map.names[addr]) {\n return DNS.address_map.names[addr]\n }\n return null\n }\n };\n var getSocketAddress = (addrp, addrlen) => {\n var info = readSockaddr(addrp, addrlen);\n if (info.errno) throw new FS.ErrnoError(info.errno);\n info.addr = DNS.lookup_addr(info.addr) || info.addr;\n return info\n };\n var INT53_MAX = 9007199254740992;\n var INT53_MIN = -9007199254740992;\n var bigintToI53Checked = num => num < INT53_MIN || num > INT53_MAX ? NaN : Number(num);\n\n function ___syscall_bind(fd, addr, addrlen, d1, d2, d3) {\n addr >>>= 0;\n addrlen >>>= 0;\n var sock = getSocketFromFD(fd);\n var info = getSocketAddress(addr, addrlen);\n sock.sock_ops.bind(sock, info.addr, info.port);\n return 0\n }\n\n function ___syscall_connect(fd, addr, addrlen, d1, d2, d3) {\n addr >>>= 0;\n addrlen >>>= 0;\n var sock = getSocketFromFD(fd);\n var info = getSocketAddress(addr, addrlen);\n sock.sock_ops.connect(sock, info.addr, info.port);\n return 0\n }\n var ___syscall_dup3 = (fd, newfd, flags) => {};\n\n function ___syscall_faccessat(dirfd, path, amode, flags) {\n path >>>= 0\n }\n var UTF8Decoder = typeof TextDecoder != \"undefined\" ? new TextDecoder : undefined;\n var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead = NaN) => {\n idx >>>= 0;\n var endIdx = idx + maxBytesToRead;\n var endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr;\n if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr))\n }\n var str = \"\";\n while (idx < endPtr) {\n var u0 = heapOrArray[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue\n }\n var u1 = heapOrArray[idx++] & 63;\n if ((u0 & 224) == 192) {\n str += String.fromCharCode((u0 & 31) << 6 | u1);\n continue\n }\n var u2 = heapOrArray[idx++] & 63;\n if ((u0 & 240) == 224) {\n u0 = (u0 & 15) << 12 | u1 << 6 | u2\n } else {\n u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0)\n } else {\n var ch = u0 - 65536;\n str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023)\n }\n }\n return str\n };\n var UTF8ToString = (ptr, maxBytesToRead) => {\n ptr >>>= 0;\n return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : \"\"\n };\n var SYSCALLS = {\n varargs: undefined,\n getStr(ptr) {\n var ret = UTF8ToString(ptr);\n return ret\n }\n };\n\n function ___syscall_fcntl64(fd, cmd, varargs) {\n varargs >>>= 0;\n SYSCALLS.varargs = varargs;\n return 0\n }\n\n function ___syscall_fstat64(fd, buf) {\n buf >>>= 0\n }\n\n function ___syscall_ftruncate64(fd, length) {\n length = bigintToI53Checked(length)\n }\n var lengthBytesUTF8 = str => {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n var c = str.charCodeAt(i);\n if (c <= 127) {\n len++\n } else if (c <= 2047) {\n len += 2\n } else if (c >= 55296 && c <= 57343) {\n len += 4;\n ++i\n } else {\n len += 3\n }\n }\n return len\n };\n Module[\"lengthBytesUTF8\"] = lengthBytesUTF8;\n var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {\n outIdx >>>= 0;\n if (!(maxBytesToWrite > 0)) return 0;\n var startIdx = outIdx;\n var endIdx = outIdx + maxBytesToWrite - 1;\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) {\n var u1 = str.charCodeAt(++i);\n u = 65536 + ((u & 1023) << 10) | u1 & 1023\n }\n if (u <= 127) {\n if (outIdx >= endIdx) break;\n heap[outIdx++ >>> 0] = u\n } else if (u <= 2047) {\n if (outIdx + 1 >= endIdx) break;\n heap[outIdx++ >>> 0] = 192 | u >> 6;\n heap[outIdx++ >>> 0] = 128 | u & 63\n } else if (u <= 65535) {\n if (outIdx + 2 >= endIdx) break;\n heap[outIdx++ >>> 0] = 224 | u >> 12;\n heap[outIdx++ >>> 0] = 128 | u >> 6 & 63;\n heap[outIdx++ >>> 0] = 128 | u & 63\n } else {\n if (outIdx + 3 >= endIdx) break;\n heap[outIdx++ >>> 0] = 240 | u >> 18;\n heap[outIdx++ >>> 0] = 128 | u >> 12 & 63;\n heap[outIdx++ >>> 0] = 128 | u >> 6 & 63;\n heap[outIdx++ >>> 0] = 128 | u & 63\n }\n }\n heap[outIdx >>> 0] = 0;\n return outIdx - startIdx\n };\n var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);\n Module[\"stringToUTF8\"] = stringToUTF8;\n\n function ___syscall_getcwd(buf, size) {\n buf >>>= 0;\n size >>>= 0\n }\n\n function ___syscall_getdents64(fd, dirp, count) {\n dirp >>>= 0;\n count >>>= 0\n }\n var zeroMemory = (address, size) => {\n HEAPU8.fill(0, address, address + size)\n };\n var writeSockaddr = (sa, family, addr, port, addrlen) => {\n switch (family) {\n case 2:\n addr = inetPton4(addr);\n zeroMemory(sa, 16);\n if (addrlen) {\n HEAP32[addrlen >>> 2 >>> 0] = 16\n }\n HEAP16[sa >>> 1 >>> 0] = family;\n HEAP32[sa + 4 >>> 2 >>> 0] = addr;\n HEAP16[sa + 2 >>> 1 >>> 0] = _htons(port);\n break;\n case 10:\n addr = inetPton6(addr);\n zeroMemory(sa, 28);\n if (addrlen) {\n HEAP32[addrlen >>> 2 >>> 0] = 28\n }\n HEAP32[sa >>> 2 >>> 0] = family;\n HEAP32[sa + 8 >>> 2 >>> 0] = addr[0];\n HEAP32[sa + 12 >>> 2 >>> 0] = addr[1];\n HEAP32[sa + 16 >>> 2 >>> 0] = addr[2];\n HEAP32[sa + 20 >>> 2 >>> 0] = addr[3];\n HEAP16[sa + 2 >>> 1 >>> 0] = _htons(port);\n break;\n default:\n return 5\n }\n return 0\n };\n\n function ___syscall_getpeername(fd, addr, addrlen, d1, d2, d3) {\n addr >>>= 0;\n addrlen >>>= 0;\n var sock = getSocketFromFD(fd);\n if (!sock.daddr) {\n return -53\n }\n var errno = writeSockaddr(addr, sock.family, DNS.lookup_name(sock.daddr), sock.dport, addrlen);\n return 0\n }\n\n function ___syscall_getsockname(fd, addr, addrlen, d1, d2, d3) {\n addr >>>= 0;\n addrlen >>>= 0;\n var sock = getSocketFromFD(fd);\n var errno = writeSockaddr(addr, sock.family, DNS.lookup_name(sock.saddr || \"0.0.0.0\"), sock.sport, addrlen);\n return 0\n }\n\n function ___syscall_getsockopt(fd, level, optname, optval, optlen, d1) {\n optval >>>= 0;\n optlen >>>= 0;\n var sock = getSocketFromFD(fd);\n if (level === 1) {\n if (optname === 4) {\n HEAP32[optval >>> 2 >>> 0] = sock.error;\n HEAP32[optlen >>> 2 >>> 0] = 4;\n sock.error = null;\n return 0\n }\n }\n return -50\n }\n\n function ___syscall_ioctl(fd, op, varargs) {\n varargs >>>= 0;\n SYSCALLS.varargs = varargs;\n return 0\n }\n\n function ___syscall_lstat64(path, buf) {\n path >>>= 0;\n buf >>>= 0\n }\n\n function ___syscall_mkdirat(dirfd, path, mode) {\n path >>>= 0\n }\n\n function ___syscall_newfstatat(dirfd, path, buf, flags) {\n path >>>= 0;\n buf >>>= 0\n }\n\n function ___syscall_openat(dirfd, path, flags, varargs) {\n path >>>= 0;\n varargs >>>= 0;\n SYSCALLS.varargs = varargs\n }\n\n function ___syscall_poll(fds, nfds, timeout) {\n fds >>>= 0\n }\n\n function ___syscall_recvfrom(fd, buf, len, flags, addr, addrlen) {\n buf >>>= 0;\n len >>>= 0;\n addr >>>= 0;\n addrlen >>>= 0;\n var sock = getSocketFromFD(fd);\n var msg = sock.sock_ops.recvmsg(sock, len);\n if (!msg) return 0;\n if (addr) {\n var errno = writeSockaddr(addr, sock.family, DNS.lookup_name(msg.addr), msg.port, addrlen)\n }\n HEAPU8.set(msg.buffer, buf >>> 0);\n return msg.buffer.byteLength\n }\n\n function ___syscall_renameat(olddirfd, oldpath, newdirfd, newpath) {\n oldpath >>>= 0;\n newpath >>>= 0\n }\n\n function ___syscall_rmdir(path) {\n path >>>= 0\n }\n\n function ___syscall_sendto(fd, message, length, flags, addr, addr_len) {\n message >>>= 0;\n length >>>= 0;\n addr >>>= 0;\n addr_len >>>= 0\n }\n var ___syscall_socket = (domain, type, protocol) => {};\n\n function ___syscall_stat64(path, buf) {\n path >>>= 0;\n buf >>>= 0\n }\n\n function ___syscall_statfs64(path, size, buf) {\n path >>>= 0;\n size >>>= 0;\n buf >>>= 0\n }\n\n function ___syscall_unlinkat(dirfd, path, flags) {\n path >>>= 0\n }\n var __abort_js = () => abort(\"\");\n\n function __emval_call_method() {\n abort(\"missing function: _emval_call_method\")\n }\n __emval_call_method.stub = true;\n\n function __emval_decref() {\n abort(\"missing function: _emval_decref\")\n }\n __emval_decref.stub = true;\n\n function __emval_get_global() {\n abort(\"missing function: _emval_get_global\")\n }\n __emval_get_global.stub = true;\n\n function __emval_get_method_caller() {\n abort(\"missing function: _emval_get_method_caller\")\n }\n __emval_get_method_caller.stub = true;\n\n function __emval_run_destructors() {\n abort(\"missing function: _emval_run_destructors\")\n }\n __emval_run_destructors.stub = true;\n var isLeapYear = year => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n var MONTH_DAYS_LEAP_CUMULATIVE = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n var MONTH_DAYS_REGULAR_CUMULATIVE = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n var ydayFromDate = date => {\n var leap = isLeapYear(date.getFullYear());\n var monthDaysCumulative = leap ? MONTH_DAYS_LEAP_CUMULATIVE : MONTH_DAYS_REGULAR_CUMULATIVE;\n var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1;\n return yday\n };\n\n function __localtime_js(time, tmPtr) {\n time = bigintToI53Checked(time);\n tmPtr >>>= 0;\n var date = new Date(time * 1e3);\n HEAP32[tmPtr >>> 2 >>> 0] = date.getSeconds();\n HEAP32[tmPtr + 4 >>> 2 >>> 0] = date.getMinutes();\n HEAP32[tmPtr + 8 >>> 2 >>> 0] = date.getHours();\n HEAP32[tmPtr + 12 >>> 2 >>> 0] = date.getDate();\n HEAP32[tmPtr + 16 >>> 2 >>> 0] = date.getMonth();\n HEAP32[tmPtr + 20 >>> 2 >>> 0] = date.getFullYear() - 1900;\n HEAP32[tmPtr + 24 >>> 2 >>> 0] = date.getDay();\n var yday = ydayFromDate(date) | 0;\n HEAP32[tmPtr + 28 >>> 2 >>> 0] = yday;\n HEAP32[tmPtr + 36 >>> 2 >>> 0] = -(date.getTimezoneOffset() * 60);\n var start = new Date(date.getFullYear(), 0, 1);\n var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset();\n var winterOffset = start.getTimezoneOffset();\n var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0;\n HEAP32[tmPtr + 32 >>> 2 >>> 0] = dst\n }\n\n function __mmap_js(len, prot, flags, fd, offset, allocated, addr) {\n len >>>= 0;\n offset = bigintToI53Checked(offset);\n allocated >>>= 0;\n addr >>>= 0;\n return -52\n }\n\n function __munmap_js(addr, len, prot, flags, fd, offset) {\n addr >>>= 0;\n len >>>= 0;\n offset = bigintToI53Checked(offset)\n }\n var __tzset_js = function(timezone, daylight, std_name, dst_name) {\n timezone >>>= 0;\n daylight >>>= 0;\n std_name >>>= 0;\n dst_name >>>= 0;\n var currentYear = (new Date).getFullYear();\n var winter = new Date(currentYear, 0, 1);\n var summer = new Date(currentYear, 6, 1);\n var winterOffset = winter.getTimezoneOffset();\n var summerOffset = summer.getTimezoneOffset();\n var stdTimezoneOffset = Math.max(winterOffset, summerOffset);\n HEAPU32[timezone >>> 2 >>> 0] = stdTimezoneOffset * 60;\n HEAP32[daylight >>> 2 >>> 0] = Number(winterOffset != summerOffset);\n var extractZone = timezoneOffset => {\n var sign = timezoneOffset >= 0 ? \"-\" : \"+\";\n var absOffset = Math.abs(timezoneOffset);\n var hours = String(Math.floor(absOffset / 60)).padStart(2, \"0\");\n var minutes = String(absOffset % 60).padStart(2, \"0\");\n return `UTC${sign}${hours}${minutes}`\n };\n var winterName = extractZone(winterOffset);\n var summerName = extractZone(summerOffset);\n if (summerOffset < winterOffset) {\n stringToUTF8(winterName, std_name, 17);\n stringToUTF8(summerName, dst_name, 17)\n } else {\n stringToUTF8(winterName, dst_name, 17);\n stringToUTF8(summerName, std_name, 17)\n }\n };\n var _emscripten_get_now = () => performance.now();\n var _emscripten_date_now = () => Date.now();\n var nowIsMonotonic = 1;\n var checkWasiClock = clock_id => clock_id >= 0 && clock_id <= 3;\n\n function _clock_time_get(clk_id, ignored_precision, ptime) {\n ignored_precision = bigintToI53Checked(ignored_precision);\n ptime >>>= 0;\n if (!checkWasiClock(clk_id)) {\n return 28\n }\n var now;\n if (clk_id === 0) {\n now = _emscripten_date_now()\n } else if (nowIsMonotonic) {\n now = _emscripten_get_now()\n } else {\n return 52\n }\n var nsec = Math.round(now * 1e3 * 1e3);\n HEAP64[ptime >>> 3] = BigInt(nsec);\n return 0\n }\n\n function _duckdb_web_fs_directory_create(path, pathLen) {\n path >>>= 0;\n return globalThis.DUCKDB_RUNTIME.createDirectory(Module, path, pathLen)\n }\n\n function _duckdb_web_fs_directory_exists(path, pathLen) {\n path >>>= 0;\n return globalThis.DUCKDB_RUNTIME.checkDirectory(Module, path, pathLen)\n }\n\n function _duckdb_web_fs_directory_list_files(path, pathLen) {\n path >>>= 0;\n return globalThis.DUCKDB_RUNTIME.listDirectoryEntries(Module, path, pathLen)\n }\n\n function _duckdb_web_fs_directory_remove(path, pathLen) {\n path >>>= 0;\n return globalThis.DUCKDB_RUNTIME.removeDirectory(Module, path, pathLen)\n }\n\n function _duckdb_web_fs_file_close(fileId) {\n return globalThis.DUCKDB_RUNTIME.closeFile(Module, fileId)\n }\n\n function _duckdb_web_fs_file_drop_file(fileName, fileNameLen) {\n fileName >>>= 0;\n return globalThis.DUCKDB_RUNTIME.dropFile(Module, fileName, fileNameLen)\n }\n\n function _duckdb_web_fs_file_exists(path, pathLen) {\n path >>>= 0;\n return globalThis.DUCKDB_RUNTIME.checkFile(Module, path, pathLen)\n }\n\n function _duckdb_web_fs_file_move(from, fromLen, to, toLen) {\n from >>>= 0;\n to >>>= 0;\n return globalThis.DUCKDB_RUNTIME.moveFile(Module, from, fromLen, to, toLen)\n }\n\n function _duckdb_web_fs_file_open(fileId, flags) {\n return globalThis.DUCKDB_RUNTIME.openFile(Module, fileId, flags)\n }\n\n function _duckdb_web_fs_file_read(fileId, buf, size, location) {\n buf >>>= 0;\n return globalThis.DUCKDB_RUNTIME.readFile(Module, fileId, buf, size, location)\n }\n\n function _duckdb_web_fs_file_truncate(fileId, newSize) {\n return globalThis.DUCKDB_RUNTIME.truncateFile(Module, fileId, newSize)\n }\n\n function _duckdb_web_fs_file_write(fileId, buf, size, location) {\n buf >>>= 0;\n return globalThis.DUCKDB_RUNTIME.writeFile(Module, fileId, buf, size, location)\n }\n\n function _duckdb_web_fs_get_default_data_protocol(Module) {\n return globalThis.DUCKDB_RUNTIME.getDefaultDataProtocol(Module)\n }\n\n function _duckdb_web_fs_glob(path, pathLen) {\n path >>>= 0;\n return globalThis.DUCKDB_RUNTIME.glob(Module, path, pathLen)\n }\n\n function _duckdb_web_test_platform_feature(feature) {\n return globalThis.DUCKDB_RUNTIME.testPlatformFeature(Module, feature)\n }\n\n function _duckdb_web_udf_scalar_call(funcId, descPtr, descSize, ptrsPtr, ptrsSize, response) {\n funcId >>>= 0;\n descSize >>>= 0;\n ptrsSize >>>= 0;\n return globalThis.DUCKDB_RUNTIME.callScalarUDF(Module, funcId, descPtr, descSize, ptrsPtr, ptrsSize, response)\n }\n var readEmAsmArgsArray = [];\n var readEmAsmArgs = (sigPtr, buf) => {\n readEmAsmArgsArray.length = 0;\n var ch;\n while (ch = HEAPU8[sigPtr++ >>> 0]) {\n var wide = ch != 105;\n wide &= ch != 112;\n buf += wide && buf % 8 ? 4 : 0;\n readEmAsmArgsArray.push(ch == 112 ? HEAPU32[buf >>> 2 >>> 0] : ch == 106 ? HEAP64[buf >>> 3] : ch == 105 ? HEAP32[buf >>> 2 >>> 0] : HEAPF64[buf >>> 3 >>> 0]);\n buf += wide ? 8 : 4\n }\n return readEmAsmArgsArray\n };\n var runEmAsmFunction = (code, sigPtr, argbuf) => {\n var args = readEmAsmArgs(sigPtr, argbuf);\n return ASM_CONSTS[code](...args)\n };\n\n function _emscripten_asm_const_ptr(code, sigPtr, argbuf) {\n code >>>= 0;\n sigPtr >>>= 0;\n argbuf >>>= 0;\n return runEmAsmFunction(code, sigPtr, argbuf)\n }\n var getHeapMax = () => 4294901760;\n\n function _emscripten_get_heap_max() {\n return getHeapMax()\n }\n var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;\n var growMemory = size => {\n var b = wasmMemory.buffer;\n var pages = (size - b.byteLength + 65535) / 65536 | 0;\n try {\n wasmMemory.grow(pages);\n updateMemoryViews();\n return 1\n } catch (e) {}\n };\n\n function _emscripten_resize_heap(requestedSize) {\n requestedSize >>>= 0;\n var oldSize = HEAPU8.length;\n var maxHeapSize = getHeapMax();\n if (requestedSize > maxHeapSize) {\n return false\n }\n for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {\n var overGrownHeapSize = oldSize * (1 + .2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536));\n var replacement = growMemory(newSize);\n if (replacement) {\n return true\n }\n }\n return false\n }\n var ENV = {};\n var getExecutableName = () => thisProgram || \"./this.program\";\n var getEnvStrings = () => {\n if (!getEnvStrings.strings) {\n var lang = (typeof navigator == \"object\" && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\";\n var env = {\n USER: \"web_user\",\n LOGNAME: \"web_user\",\n PATH: \"/\",\n PWD: \"/\",\n HOME: \"/home/web_user\",\n LANG: lang,\n _: getExecutableName()\n };\n for (var x in ENV) {\n if (ENV[x] === undefined) delete env[x];\n else env[x] = ENV[x]\n }\n var strings = [];\n for (var x in env) {\n strings.push(`${x}=${env[x]}`)\n }\n getEnvStrings.strings = strings\n }\n return getEnvStrings.strings\n };\n var stringToAscii = (str, buffer) => {\n for (var i = 0; i < str.length; ++i) {\n HEAP8[buffer++ >>> 0] = str.charCodeAt(i)\n }\n HEAP8[buffer >>> 0] = 0\n };\n var _environ_get = function(__environ, environ_buf) {\n __environ >>>= 0;\n environ_buf >>>= 0;\n var bufSize = 0;\n getEnvStrings().forEach((string, i) => {\n var ptr = environ_buf + bufSize;\n HEAPU32[__environ + i * 4 >>> 2 >>> 0] = ptr;\n stringToAscii(string, ptr);\n bufSize += string.length + 1\n });\n return 0\n };\n var _environ_sizes_get = function(penviron_count, penviron_buf_size) {\n penviron_count >>>= 0;\n penviron_buf_size >>>= 0;\n var strings = getEnvStrings();\n HEAPU32[penviron_count >>> 2 >>> 0] = strings.length;\n var bufSize = 0;\n strings.forEach(string => bufSize += string.length + 1);\n HEAPU32[penviron_buf_size >>> 2 >>> 0] = bufSize;\n return 0\n };\n var runtimeKeepaliveCounter = 0;\n var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0;\n var _proc_exit = code => {\n EXITSTATUS = code;\n if (!keepRuntimeAlive()) {\n Module[\"onExit\"]?.(code);\n ABORT = true\n }\n quit_(code, new ExitStatus(code))\n };\n var exitJS = (status, implicit) => {\n EXITSTATUS = status;\n _proc_exit(status)\n };\n var _exit = exitJS;\n var _fd_close = fd => 52;\n\n function _fd_fdstat_get(fd, pbuf) {\n pbuf >>>= 0;\n var rightsBase = 0;\n var rightsInheriting = 0;\n var flags = 0;\n {\n var type = 2;\n if (fd == 0) {\n rightsBase = 2\n } else if (fd == 1 || fd == 2) {\n rightsBase = 64\n }\n flags = 1\n }\n HEAP8[pbuf >>> 0] = type;\n HEAP16[pbuf + 2 >>> 1 >>> 0] = flags;\n HEAP64[pbuf + 8 >>> 3] = BigInt(rightsBase);\n HEAP64[pbuf + 16 >>> 3] = BigInt(rightsInheriting);\n return 0\n }\n\n function _fd_pread(fd, iov, iovcnt, offset, pnum) {\n iov >>>= 0;\n iovcnt >>>= 0;\n offset = bigintToI53Checked(offset);\n pnum >>>= 0;\n return 52\n }\n\n function _fd_pwrite(fd, iov, iovcnt, offset, pnum) {\n iov >>>= 0;\n iovcnt >>>= 0;\n offset = bigintToI53Checked(offset);\n pnum >>>= 0;\n return 52\n }\n\n function _fd_read(fd, iov, iovcnt, pnum) {\n iov >>>= 0;\n iovcnt >>>= 0;\n pnum >>>= 0;\n return 52\n }\n\n function _fd_seek(fd, offset, whence, newOffset) {\n offset = bigintToI53Checked(offset);\n newOffset >>>= 0;\n return 70\n }\n var _fd_sync = fd => 52;\n var printCharBuffers = [null, [],\n []\n ];\n var printChar = (stream, curr) => {\n var buffer = printCharBuffers[stream];\n if (curr === 0 || curr === 10) {\n (stream === 1 ? out : err)(UTF8ArrayToString(buffer));\n buffer.length = 0\n } else {\n buffer.push(curr)\n }\n };\n\n function _fd_write(fd, iov, iovcnt, pnum) {\n iov >>>= 0;\n iovcnt >>>= 0;\n pnum >>>= 0;\n var num = 0;\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAPU32[iov >>> 2 >>> 0];\n var len = HEAPU32[iov + 4 >>> 2 >>> 0];\n iov += 8;\n for (var j = 0; j < len; j++) {\n printChar(fd, HEAPU8[ptr + j >>> 0])\n }\n num += len\n }\n HEAPU32[pnum >>> 2 >>> 0] = num;\n return 0\n }\n\n function _getaddrinfo(node, service, hint, out) {\n node >>>= 0;\n service >>>= 0;\n hint >>>= 0;\n out >>>= 0;\n var addr = 0;\n var port = 0;\n var flags = 0;\n var family = 0;\n var type = 0;\n var proto = 0;\n var ai;\n\n function allocaddrinfo(family, type, proto, canon, addr, port) {\n var sa, salen, ai;\n var errno;\n salen = family === 10 ? 28 : 16;\n addr = family === 10 ? inetNtop6(addr) : inetNtop4(addr);\n sa = _malloc(salen);\n errno = writeSockaddr(sa, family, addr, port);\n assert(!errno);\n ai = _malloc(32);\n HEAP32[ai + 4 >>> 2 >>> 0] = family;\n HEAP32[ai + 8 >>> 2 >>> 0] = type;\n HEAP32[ai + 12 >>> 2 >>> 0] = proto;\n HEAPU32[ai + 24 >>> 2 >>> 0] = canon;\n HEAPU32[ai + 20 >>> 2 >>> 0] = sa;\n if (family === 10) {\n HEAP32[ai + 16 >>> 2 >>> 0] = 28\n } else {\n HEAP32[ai + 16 >>> 2 >>> 0] = 16\n }\n HEAP32[ai + 28 >>> 2 >>> 0] = 0;\n return ai\n }\n if (hint) {\n flags = HEAP32[hint >>> 2 >>> 0];\n family = HEAP32[hint + 4 >>> 2 >>> 0];\n type = HEAP32[hint + 8 >>> 2 >>> 0];\n proto = HEAP32[hint + 12 >>> 2 >>> 0]\n }\n if (type && !proto) {\n proto = type === 2 ? 17 : 6\n }\n if (!type && proto) {\n type = proto === 17 ? 2 : 1\n }\n if (proto === 0) {\n proto = 6\n }\n if (type === 0) {\n type = 1\n }\n if (!node && !service) {\n return -2\n }\n if (flags & ~(1 | 2 | 4 | 1024 | 8 | 16 | 32)) {\n return -1\n }\n if (hint !== 0 && HEAP32[hint >>> 2 >>> 0] & 2 && !node) {\n return -1\n }\n if (flags & 32) {\n return -2\n }\n if (type !== 0 && type !== 1 && type !== 2) {\n return -7\n }\n if (family !== 0 && family !== 2 && family !== 10) {\n return -6\n }\n if (service) {\n service = UTF8ToString(service);\n port = parseInt(service, 10);\n if (isNaN(port)) {\n if (flags & 1024) {\n return -2\n }\n return -8\n }\n }\n if (!node) {\n if (family === 0) {\n family = 2\n }\n if ((flags & 1) === 0) {\n if (family === 2) {\n addr = _htonl(2130706433)\n } else {\n addr = [0, 0, 0, _htonl(1)]\n }\n }\n ai = allocaddrinfo(family, type, proto, null, addr, port);\n HEAPU32[out >>> 2 >>> 0] = ai;\n return 0\n }\n node = UTF8ToString(node);\n addr = inetPton4(node);\n if (addr !== null) {\n if (family === 0 || family === 2) {\n family = 2\n } else if (family === 10 && flags & 8) {\n addr = [0, 0, _htonl(65535), addr];\n family = 10\n } else {\n return -2\n }\n } else {\n addr = inetPton6(node);\n if (addr !== null) {\n if (family === 0 || family === 10) {\n family = 10\n } else {\n return -2\n }\n }\n }\n if (addr != null) {\n ai = allocaddrinfo(family, type, proto, node, addr, port);\n HEAPU32[out >>> 2 >>> 0] = ai;\n return 0\n }\n if (flags & 4) {\n return -2\n }\n node = DNS.lookup_name(node);\n addr = inetPton4(node);\n if (family === 0) {\n family = 2\n } else if (family === 10) {\n addr = [0, 0, _htonl(65535), addr]\n }\n ai = allocaddrinfo(family, type, proto, null, addr, port);\n HEAPU32[out >>> 2 >>> 0] = ai;\n return 0\n }\n\n function _getnameinfo(sa, salen, node, nodelen, serv, servlen, flags) {\n sa >>>= 0;\n node >>>= 0;\n serv >>>= 0;\n var info = readSockaddr(sa, salen);\n if (info.errno) {\n return -6\n }\n var port = info.port;\n var addr = info.addr;\n var overflowed = false;\n if (node && nodelen) {\n var lookup;\n if (flags & 1 || !(lookup = DNS.lookup_addr(addr))) {\n if (flags & 8) {\n return -2\n }\n } else {\n addr = lookup\n }\n var numBytesWrittenExclNull = stringToUTF8(addr, node, nodelen);\n if (numBytesWrittenExclNull + 1 >= nodelen) {\n overflowed = true\n }\n }\n if (serv && servlen) {\n port = \"\" + port;\n var numBytesWrittenExclNull = stringToUTF8(port, serv, servlen);\n if (numBytesWrittenExclNull + 1 >= servlen) {\n overflowed = true\n }\n }\n if (overflowed) {\n return -12\n }\n return 0\n }\n var initRandomFill = () => {\n if (ENVIRONMENT_IS_NODE) {\n var nodeCrypto = [\"crypto\"].map(require);\n return view => nodeCrypto.randomFillSync(view)\n }\n return view => crypto.getRandomValues(view)\n };\n var randomFill = view => {\n (randomFill = initRandomFill())(view)\n };\n\n function _random_get(buffer, size) {\n buffer >>>= 0;\n size >>>= 0;\n randomFill(HEAPU8.subarray(buffer >>> 0, buffer + size >>> 0));\n return 0\n }\n var handleException = e => {\n if (e instanceof ExitStatus || e == \"unwind\") {\n return EXITSTATUS\n }\n quit_(1, e)\n };\n var getCFunc = ident => {\n var func = Module[\"_\" + ident];\n return func\n };\n var writeArrayToMemory = (array, buffer) => {\n HEAP8.set(array, buffer >>> 0)\n };\n var stackAlloc = sz => __emscripten_stack_alloc(sz);\n Module[\"stackAlloc\"] = stackAlloc;\n var stringToUTF8OnStack = str => {\n var size = lengthBytesUTF8(str) + 1;\n var ret = stackAlloc(size);\n stringToUTF8(str, ret, size);\n return ret\n };\n var stackSave = () => _emscripten_stack_get_current();\n var stackRestore = val => __emscripten_stack_restore(val);\n var ccall = (ident, returnType, argTypes, args, opts) => {\n var toC = {\n string: str => {\n var ret = 0;\n if (str !== null && str !== undefined && str !== 0) {\n ret = stringToUTF8OnStack(str)\n }\n return ret\n },\n array: arr => {\n var ret = stackAlloc(arr.length);\n writeArrayToMemory(arr, ret);\n return ret\n }\n };\n\n function convertReturnValue(ret) {\n if (returnType === \"string\") {\n return UTF8ToString(ret)\n }\n if (returnType === \"boolean\") return Boolean(ret);\n return ret\n }\n var func = getCFunc(ident);\n var cArgs = [];\n var stack = 0;\n if (args) {\n for (var i = 0; i < args.length; i++) {\n var converter = toC[argTypes[i]];\n if (converter) {\n if (stack === 0) stack = stackSave();\n cArgs[i] = converter(args[i])\n } else {\n cArgs[i] = args[i]\n }\n }\n }\n var ret = func(...cArgs);\n\n function onDone(ret) {\n if (stack !== 0) stackRestore(stack);\n return convertReturnValue(ret)\n }\n ret = onDone(ret);\n return ret\n };\n var getTempRet0 = val => __emscripten_tempret_get();\n var setTempRet0 = val => __emscripten_tempret_set(val);\n var wasmImports = {\n X: ___syscall_bind,\n W: ___syscall_connect,\n A: ___syscall_dup3,\n ja: ___syscall_faccessat,\n b: ___syscall_fcntl64,\n ia: ___syscall_fstat64,\n ca: ___syscall_ftruncate64,\n ka: ___syscall_getcwd,\n aa: ___syscall_getdents64,\n R: ___syscall_getpeername,\n Q: ___syscall_getsockname,\n U: ___syscall_getsockopt,\n i: ___syscall_ioctl,\n fa: ___syscall_lstat64,\n ba: ___syscall_mkdirat,\n ga: ___syscall_newfstatat,\n s: ___syscall_openat,\n V: ___syscall_poll,\n S: ___syscall_recvfrom,\n _: ___syscall_renameat,\n q: ___syscall_rmdir,\n T: ___syscall_sendto,\n p: ___syscall_socket,\n ha: ___syscall_stat64,\n la: ___syscall_statfs64,\n r: ___syscall_unlinkat,\n qa: __abort_js,\n x: __emval_call_method,\n y: __emval_decref,\n z: __emval_get_global,\n w: __emval_get_method_caller,\n u: __emval_run_destructors,\n Y: __localtime_js,\n O: __mmap_js,\n P: __munmap_js,\n oa: __tzset_js,\n ma: _clock_time_get,\n G: _duckdb_web_fs_directory_create,\n H: _duckdb_web_fs_directory_exists,\n E: _duckdb_web_fs_directory_list_files,\n F: _duckdb_web_fs_directory_remove,\n m: _duckdb_web_fs_file_close,\n K: _duckdb_web_fs_file_drop_file,\n C: _duckdb_web_fs_file_exists,\n D: _duckdb_web_fs_file_move,\n J: _duckdb_web_fs_file_open,\n g: _duckdb_web_fs_file_read,\n I: _duckdb_web_fs_file_truncate,\n h: _duckdb_web_fs_file_write,\n L: _duckdb_web_fs_get_default_data_protocol,\n B: _duckdb_web_fs_glob,\n k: _duckdb_web_test_platform_feature,\n N: _duckdb_web_udf_scalar_call,\n e: _emscripten_asm_const_ptr,\n j: _emscripten_date_now,\n na: _emscripten_get_heap_max,\n c: _emscripten_get_now,\n ra: _emscripten_resize_heap,\n pa: _environ_get,\n t: _environ_sizes_get,\n a: _exit,\n d: _fd_close,\n M: _fd_fdstat_get,\n ea: _fd_pread,\n da: _fd_pwrite,\n l: _fd_read,\n v: _fd_seek,\n $: _fd_sync,\n f: _fd_write,\n o: _getaddrinfo,\n n: _getnameinfo,\n Z: _random_get\n };\n var wasmExports = await createWasm();\n var _main = Module[\"_main\"] = wasmExports[\"ua\"];\n var _duckdb_web_fs_glob_add_path = Module[\"_duckdb_web_fs_glob_add_path\"] = wasmExports[\"wa\"];\n var _duckdb_web_clear_response = Module[\"_duckdb_web_clear_response\"] = wasmExports[\"xa\"];\n var _duckdb_web_fail_with = Module[\"_duckdb_web_fail_with\"] = wasmExports[\"ya\"];\n var _duckdb_web_reset = Module[\"_duckdb_web_reset\"] = wasmExports[\"za\"];\n var _duckdb_web_connect = Module[\"_duckdb_web_connect\"] = wasmExports[\"Aa\"];\n var _duckdb_web_disconnect = Module[\"_duckdb_web_disconnect\"] = wasmExports[\"Ba\"];\n var _duckdb_web_flush_files = Module[\"_duckdb_web_flush_files\"] = wasmExports[\"Ca\"];\n var _duckdb_web_flush_file = Module[\"_duckdb_web_flush_file\"] = wasmExports[\"Da\"];\n var _duckdb_web_open = Module[\"_duckdb_web_open\"] = wasmExports[\"Ea\"];\n var _duckdb_web_get_global_file_info = Module[\"_duckdb_web_get_global_file_info\"] = wasmExports[\"Fa\"];\n var _duckdb_web_collect_file_stats = Module[\"_duckdb_web_collect_file_stats\"] = wasmExports[\"Ga\"];\n var _duckdb_web_export_file_stats = Module[\"_duckdb_web_export_file_stats\"] = wasmExports[\"Ha\"];\n var _duckdb_web_fs_drop_file = Module[\"_duckdb_web_fs_drop_file\"] = wasmExports[\"Ia\"];\n var _duckdb_web_fs_drop_files = Module[\"_duckdb_web_fs_drop_files\"] = wasmExports[\"Ja\"];\n var _duckdb_web_fs_glob_file_infos = Module[\"_duckdb_web_fs_glob_file_infos\"] = wasmExports[\"Ka\"];\n var _duckdb_web_fs_get_file_info_by_id = Module[\"_duckdb_web_fs_get_file_info_by_id\"] = wasmExports[\"La\"];\n var _duckdb_web_fs_get_file_info_by_name = Module[\"_duckdb_web_fs_get_file_info_by_name\"] = wasmExports[\"Ma\"];\n var _duckdb_web_fs_register_file_url = Module[\"_duckdb_web_fs_register_file_url\"] = wasmExports[\"Na\"];\n var _duckdb_web_fs_register_file_buffer = Module[\"_duckdb_web_fs_register_file_buffer\"] = wasmExports[\"Oa\"];\n var _duckdb_web_copy_file_to_buffer = Module[\"_duckdb_web_copy_file_to_buffer\"] = wasmExports[\"Pa\"];\n var _duckdb_web_copy_file_to_path = Module[\"_duckdb_web_copy_file_to_path\"] = wasmExports[\"Qa\"];\n var _duckdb_web_get_version = Module[\"_duckdb_web_get_version\"] = wasmExports[\"Ra\"];\n var _duckdb_web_get_feature_flags = Module[\"_duckdb_web_get_feature_flags\"] = wasmExports[\"Sa\"];\n var _duckdb_web_tokenize = Module[\"_duckdb_web_tokenize\"] = wasmExports[\"Ta\"];\n var _duckdb_web_tokenize_buffer = Module[\"_duckdb_web_tokenize_buffer\"] = wasmExports[\"Ua\"];\n var _duckdb_web_udf_scalar_create = Module[\"_duckdb_web_udf_scalar_create\"] = wasmExports[\"Va\"];\n var _duckdb_web_prepared_create = Module[\"_duckdb_web_prepared_create\"] = wasmExports[\"Wa\"];\n var _duckdb_web_prepared_create_buffer = Module[\"_duckdb_web_prepared_create_buffer\"] = wasmExports[\"Xa\"];\n var _duckdb_web_prepared_close = Module[\"_duckdb_web_prepared_close\"] = wasmExports[\"Ya\"];\n var _duckdb_web_prepared_run = Module[\"_duckdb_web_prepared_run\"] = wasmExports[\"Za\"];\n var _duckdb_web_prepared_send = Module[\"_duckdb_web_prepared_send\"] = wasmExports[\"_a\"];\n var _duckdb_web_query_run = Module[\"_duckdb_web_query_run\"] = wasmExports[\"$a\"];\n var _duckdb_web_query_run_buffer = Module[\"_duckdb_web_query_run_buffer\"] = wasmExports[\"ab\"];\n var _duckdb_web_pending_query_start = Module[\"_duckdb_web_pending_query_start\"] = wasmExports[\"bb\"];\n var _duckdb_web_pending_query_start_buffer = Module[\"_duckdb_web_pending_query_start_buffer\"] = wasmExports[\"cb\"];\n var _duckdb_web_pending_query_poll = Module[\"_duckdb_web_pending_query_poll\"] = wasmExports[\"db\"];\n var _duckdb_web_pending_query_cancel = Module[\"_duckdb_web_pending_query_cancel\"] = wasmExports[\"eb\"];\n var _duckdb_web_query_fetch_results = Module[\"_duckdb_web_query_fetch_results\"] = wasmExports[\"fb\"];\n var _duckdb_web_get_tablenames = Module[\"_duckdb_web_get_tablenames\"] = wasmExports[\"gb\"];\n var _duckdb_web_get_tablenames_buffer = Module[\"_duckdb_web_get_tablenames_buffer\"] = wasmExports[\"hb\"];\n var _duckdb_web_insert_arrow_from_ipc_stream = Module[\"_duckdb_web_insert_arrow_from_ipc_stream\"] = wasmExports[\"ib\"];\n var _duckdb_web_insert_csv_from_path = Module[\"_duckdb_web_insert_csv_from_path\"] = wasmExports[\"jb\"];\n var _duckdb_web_insert_json_from_path = Module[\"_duckdb_web_insert_json_from_path\"] = wasmExports[\"kb\"];\n var _malloc = Module[\"_malloc\"] = wasmExports[\"ob\"];\n var _free = Module[\"_free\"] = wasmExports[\"pb\"];\n var _calloc = Module[\"_calloc\"] = wasmExports[\"qb\"];\n var __emscripten_tempret_set = wasmExports[\"sb\"];\n var __emscripten_tempret_get = wasmExports[\"tb\"];\n var __emscripten_stack_restore = wasmExports[\"ub\"];\n var __emscripten_stack_alloc = wasmExports[\"vb\"];\n var _emscripten_stack_get_current = wasmExports[\"wb\"];\n\n function applySignatureConversions(wasmExports) {\n wasmExports = Object.assign({}, wasmExports);\n var makeWrapper_pp = f => a0 => f(a0) >>> 0;\n var makeWrapper_ppp = f => (a0, a1) => f(a0, a1) >>> 0;\n var makeWrapper_p = f => () => f() >>> 0;\n wasmExports[\"ob\"] = makeWrapper_pp(wasmExports[\"ob\"]);\n wasmExports[\"qb\"] = makeWrapper_ppp(wasmExports[\"qb\"]);\n wasmExports[\"vb\"] = makeWrapper_pp(wasmExports[\"vb\"]);\n wasmExports[\"wb\"] = makeWrapper_p(wasmExports[\"wb\"]);\n return wasmExports\n }\n Module[\"stackSave\"] = stackSave;\n Module[\"stackRestore\"] = stackRestore;\n Module[\"stackAlloc\"] = stackAlloc;\n Module[\"getTempRet0\"] = getTempRet0;\n Module[\"setTempRet0\"] = setTempRet0;\n Module[\"ccall\"] = ccall;\n\n function callMain() {\n var entryFunction = _main;\n var argc = 0;\n var argv = 0;\n try {\n var ret = entryFunction(argc, argv);\n exitJS(ret, true);\n return ret\n } catch (e) {\n return handleException(e)\n }\n }\n\n function run() {\n if (runDependencies > 0) {\n dependenciesFulfilled = run;\n return\n }\n preRun();\n if (runDependencies > 0) {\n dependenciesFulfilled = run;\n return\n }\n\n function doRun() {\n Module[\"calledRun\"] = true;\n if (ABORT) return;\n initRuntime();\n preMain();\n readyPromiseResolve(Module);\n Module[\"onRuntimeInitialized\"]?.();\n var noInitialRun = Module[\"noInitialRun\"];\n if (!noInitialRun) callMain();\n postRun()\n }\n if (Module[\"setStatus\"]) {\n Module[\"setStatus\"](\"Running...\");\n setTimeout(() => {\n setTimeout(() => Module[\"setStatus\"](\"\"), 1);\n doRun()\n }, 1)\n } else {\n doRun()\n }\n }\n if (Module[\"preInit\"]) {\n if (typeof Module[\"preInit\"] == \"function\") Module[\"preInit\"] = [Module[\"preInit\"]];\n while (Module[\"preInit\"].length > 0) {\n Module[\"preInit\"].pop()()\n }\n }\n run();\n moduleRtn = readyPromise;\n\n\n return moduleRtn;\n }\n );\n})();\nif (typeof exports === 'object' && typeof module === 'object') {\n module.exports = DuckDB;\n // This default export looks redundant, but it allows TS to import this\n // commonjs style module.\n module.exports.default = DuckDB;\n} else if (typeof define === 'function' && define['amd'])\n define([], () => DuckDB);\n", "/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.11.1\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2025\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node && process.type != 'renderer';\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = require('crypto')\n var Buffer = require('buffer').Buffer;\n var algorithm = is224 ? 'sha224' : 'sha256';\n var bufferFrom;\n if (Buffer.from && !root.JS_SHA256_NO_BUFFER_FROM) {\n bufferFrom = Buffer.from;\n } else {\n bufferFrom = function (message) {\n return new Buffer(message);\n };\n }\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(bufferFrom(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n this.block = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >>> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >>> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >>> 2] |= (0xc0 | (code >>> 6)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >>> 2] |= (0xe0 | (code >>> 12)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >>> 2] |= (0xf0 | (code >>> 18)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >>> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n this.chromeBugWorkAround = true;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >>> 28) & 0x0F] + HEX_CHARS[(h0 >>> 24) & 0x0F] +\n HEX_CHARS[(h0 >>> 20) & 0x0F] + HEX_CHARS[(h0 >>> 16) & 0x0F] +\n HEX_CHARS[(h0 >>> 12) & 0x0F] + HEX_CHARS[(h0 >>> 8) & 0x0F] +\n HEX_CHARS[(h0 >>> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >>> 28) & 0x0F] + HEX_CHARS[(h1 >>> 24) & 0x0F] +\n HEX_CHARS[(h1 >>> 20) & 0x0F] + HEX_CHARS[(h1 >>> 16) & 0x0F] +\n HEX_CHARS[(h1 >>> 12) & 0x0F] + HEX_CHARS[(h1 >>> 8) & 0x0F] +\n HEX_CHARS[(h1 >>> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >>> 28) & 0x0F] + HEX_CHARS[(h2 >>> 24) & 0x0F] +\n HEX_CHARS[(h2 >>> 20) & 0x0F] + HEX_CHARS[(h2 >>> 16) & 0x0F] +\n HEX_CHARS[(h2 >>> 12) & 0x0F] + HEX_CHARS[(h2 >>> 8) & 0x0F] +\n HEX_CHARS[(h2 >>> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >>> 28) & 0x0F] + HEX_CHARS[(h3 >>> 24) & 0x0F] +\n HEX_CHARS[(h3 >>> 20) & 0x0F] + HEX_CHARS[(h3 >>> 16) & 0x0F] +\n HEX_CHARS[(h3 >>> 12) & 0x0F] + HEX_CHARS[(h3 >>> 8) & 0x0F] +\n HEX_CHARS[(h3 >>> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >>> 28) & 0x0F] + HEX_CHARS[(h4 >>> 24) & 0x0F] +\n HEX_CHARS[(h4 >>> 20) & 0x0F] + HEX_CHARS[(h4 >>> 16) & 0x0F] +\n HEX_CHARS[(h4 >>> 12) & 0x0F] + HEX_CHARS[(h4 >>> 8) & 0x0F] +\n HEX_CHARS[(h4 >>> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >>> 28) & 0x0F] + HEX_CHARS[(h5 >>> 24) & 0x0F] +\n HEX_CHARS[(h5 >>> 20) & 0x0F] + HEX_CHARS[(h5 >>> 16) & 0x0F] +\n HEX_CHARS[(h5 >>> 12) & 0x0F] + HEX_CHARS[(h5 >>> 8) & 0x0F] +\n HEX_CHARS[(h5 >>> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >>> 28) & 0x0F] + HEX_CHARS[(h6 >>> 24) & 0x0F] +\n HEX_CHARS[(h6 >>> 20) & 0x0F] + HEX_CHARS[(h6 >>> 16) & 0x0F] +\n HEX_CHARS[(h6 >>> 12) & 0x0F] + HEX_CHARS[(h6 >>> 8) & 0x0F] +\n HEX_CHARS[(h6 >>> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >>> 28) & 0x0F] + HEX_CHARS[(h7 >>> 24) & 0x0F] +\n HEX_CHARS[(h7 >>> 20) & 0x0F] + HEX_CHARS[(h7 >>> 16) & 0x0F] +\n HEX_CHARS[(h7 >>> 12) & 0x0F] + HEX_CHARS[(h7 >>> 8) & 0x0F] +\n HEX_CHARS[(h7 >>> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >>> 24) & 0xFF, (h0 >>> 16) & 0xFF, (h0 >>> 8) & 0xFF, h0 & 0xFF,\n (h1 >>> 24) & 0xFF, (h1 >>> 16) & 0xFF, (h1 >>> 8) & 0xFF, h1 & 0xFF,\n (h2 >>> 24) & 0xFF, (h2 >>> 16) & 0xFF, (h2 >>> 8) & 0xFF, h2 & 0xFF,\n (h3 >>> 24) & 0xFF, (h3 >>> 16) & 0xFF, (h3 >>> 8) & 0xFF, h3 & 0xFF,\n (h4 >>> 24) & 0xFF, (h4 >>> 16) & 0xFF, (h4 >>> 8) & 0xFF, h4 & 0xFF,\n (h5 >>> 24) & 0xFF, (h5 >>> 16) & 0xFF, (h5 >>> 8) & 0xFF, h5 & 0xFF,\n (h6 >>> 24) & 0xFF, (h6 >>> 16) & 0xFF, (h6 >>> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >>> 24) & 0xFF, (h7 >>> 16) & 0xFF, (h7 >>> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >>> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >>> 12));\n bytes[index++] = (0x80 | ((code >>> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >>> 18));\n bytes[index++] = (0x80 | ((code >>> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >>> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n", "import { AsyncDuckDBDispatcher, WorkerResponseVariant, WorkerRequestVariant } from '../parallel';\nimport { DuckDB } from '../bindings/bindings_browser_eh';\nimport { DuckDBBindings } from '../bindings';\nimport { BROWSER_RUNTIME } from '../bindings/runtime_browser';\nimport { InstantiationProgress } from '../bindings/progress';\n\n/** The duckdb worker API for web workers */\nclass WebWorker extends AsyncDuckDBDispatcher {\n /** Post a response back to the main thread */\n protected postMessage(response: WorkerResponseVariant, transfer: ArrayBuffer[]) {\n globalThis.postMessage(response, transfer);\n }\n\n /** Instantiate the wasm module */\n protected async instantiate(\n mainModuleURL: string,\n pthreadWorkerURL: string | null,\n progress: (p: InstantiationProgress) => void,\n ): Promise<DuckDBBindings> {\n const bindings = new DuckDB(this, BROWSER_RUNTIME, mainModuleURL, pthreadWorkerURL);\n return await bindings.instantiate(progress);\n }\n}\n\n/** Register the worker */\nexport function registerWorker(): void {\n const api = new WebWorker();\n globalThis.onmessage = async (event: MessageEvent<WorkerRequestVariant>) => {\n await api.onMessage(event.data);\n };\n}\n\nregisterWorker();\n", "import { DuckDBBindings } from './bindings_interface';\nimport { CSVInsertOptions, JSONInsertOptions, ArrowInsertOptions } from './insert_options';\n\n/** A thin helper to bind the connection id and talk record batches */\nexport class DuckDBConnection {\n /** The bindings */\n protected _bindings: DuckDBBindings;\n /** The connection handle */\n protected _conn: number;\n\n /** Constructor */\n constructor(bindings: DuckDBBindings, conn: number) {\n this._bindings = bindings;\n this._conn = conn;\n }\n\n /** Close a connection */\n public close(): void {\n this._bindings.disconnect(this._conn);\n }\n\n /** Brave souls may use this function to consume the underlying connection id */\n public useUnsafe<R>(callback: (bindings: DuckDBBindings, conn: number) => R) {\n return callback(this._bindings, this._conn);\n }\n\n /** Run a query */\n public query(text: string): Uint8Array {\n return this._bindings.runQuery(this._conn, text);\n }\n\n /** Send a query */\n public async send(\n text: string,\n allowStreamResult: boolean = false,\n ): Promise<Iterable<Uint8Array>> {\n let header = this._bindings.startPendingQuery(this._conn, text, allowStreamResult);\n while (header == null) {\n header = await new Promise((resolve, reject) => {\n try {\n resolve(this._bindings.pollPendingQuery(this._conn));\n } catch (e: any) {\n console.log(e);\n // If the worker is not set, the worker has been terminated\n if (e.message.includes('worker is not set!')) {\n reject(new Error('Worker has been terminated'));\n } else {\n //Otherwise, reject with the error\n reject(e);\n }\n }\n });\n }\n return new ResultStreamIterator(this._bindings, this._conn, header);\n }\n\n /** Cancel a query that was sent earlier */\n public cancelSent(): boolean {\n return this._bindings.cancelPendingQuery(this._conn);\n }\n\n /** Get table names */\n public getTableNames(query: string): string[] {\n return this._bindings.getTableNames(this._conn, query);\n }\n\n /** Create a prepared statement */\n public prepare(text: string): PreparedStatement {\n const stmt = this._bindings.createPrepared(this._conn, text);\n return new PreparedStatement(this._bindings, this._conn, stmt);\n }\n\n /** Create a scalar function */\n // public createScalarFunction(name: string, returns: arrow.DataType, func: (...args: any[]) => void): void {\n // this._bindings.createScalarFunction(this._conn, name, returns, func);\n // }\n\n /** Insert an arrow table from an ipc stream */\n public insertArrowFromIPCStream(buffer: Uint8Array, options: ArrowInsertOptions): void {\n this._bindings.insertArrowFromIPCStream(this._conn, buffer, options);\n }\n\n /** Inesrt csv file from path */\n public insertCSVFromPath(path: string, options: CSVInsertOptions): void {\n this._bindings.insertCSVFromPath(this._conn, path, options);\n }\n /** Insert json file from path */\n public insertJSONFromPath(path: string, options: JSONInsertOptions): void {\n this._bindings.insertJSONFromPath(this._conn, path, options);\n }\n}\n\n/** A result stream iterator */\nexport class ResultStreamIterator implements Iterable<Uint8Array> {\n /** First chunk? */\n _first: boolean;\n /** Reached end of stream? */\n _depleted: boolean;\n\n constructor(\n protected bindings: DuckDBBindings,\n protected conn: number,\n protected header: Uint8Array,\n ) {\n this._first = true;\n this._depleted = false;\n }\n\n next(): IteratorResult<Uint8Array> {\n if (this._first) {\n this._first = false;\n return { done: false, value: this.header };\n }\n if (this._depleted) {\n return { done: true, value: null };\n }\n let bufferI8 = null;\n do {\n bufferI8 = this.bindings.fetchQueryResults(this.conn);\n } while (bufferI8 == null);\n this._depleted = bufferI8.length == 0;\n return {\n done: this._depleted,\n value: bufferI8,\n };\n }\n\n [Symbol.iterator]() {\n return this;\n }\n}\n\n/** A thin helper to bind the prepared statement id*/\nexport class PreparedStatement {\n /** The bindings */\n protected readonly bindings: DuckDBBindings;\n /** The connection id */\n protected readonly connectionId: number;\n /** The statement id */\n protected readonly statementId: number;\n\n /** Constructor */\n constructor(bindings: DuckDBBindings, connectionId: number, statementId: number) {\n this.bindings = bindings;\n this.connectionId = connectionId;\n this.statementId = statementId;\n }\n\n /** Close a prepared statement */\n public close() {\n this.bindings.closePrepared(this.connectionId, this.statementId);\n }\n\n /** Run a prepared statement */\n public query(...params: any[]): Uint8Array {\n return this.bindings.runPrepared(this.connectionId, this.statementId, params);\n }\n\n /** Send a prepared statement */\n public send(...params: any[]): Iterable<Uint8Array> {\n const header = this.bindings.sendPrepared(this.connectionId, this.statementId, params);\n return new ResultStreamIterator(this.bindings, this.connectionId, header);\n }\n}\n", "export enum StatusCode {\n SUCCESS = 0,\n MAX_ARROW_ERROR = 255,\n DUCKDB_WASM_RETRY = 256,\n}\n\nexport function IsArrowBuffer(status: StatusCode): boolean {\n return status <= StatusCode.MAX_ARROW_ERROR;\n}\n\nexport function IsDuckDBWasmRetry(status: StatusCode): boolean {\n return status === StatusCode.DUCKDB_WASM_RETRY;\n}\n", "import { DuckDBRuntime } from './runtime';\nimport { DuckDBModule } from './duckdb_module';\n\nconst TEXT_ENCODER = new TextEncoder();\nconst TEXT_DECODER = new TextDecoder('utf-8');\n\nfunction storeError(mod: DuckDBModule, response: number, message: string) {\n const msgBuffer = TEXT_ENCODER.encode(message);\n const heapAddr = mod._malloc(msgBuffer.byteLength);\n const heapArray = mod.HEAPU8.subarray(heapAddr, heapAddr + msgBuffer.byteLength);\n heapArray.set(msgBuffer);\n mod.HEAPF64[(response >> 3) + 0] = 1;\n mod.HEAPF64[(response >> 3) + 1] = heapAddr;\n mod.HEAPF64[(response >> 3) + 2] = heapArray.byteLength;\n}\n\nfunction getTypeSize(ptype: string) {\n switch (ptype) {\n case 'UINT8':\n case 'INT8':\n return 1;\n case 'INT32':\n case 'FLOAT':\n return 4;\n case 'INT64':\n case 'UINT64':\n case 'DOUBLE':\n case 'VARCHAR':\n return 8;\n default:\n return 0;\n }\n}\n\nfunction ptrToArray(mod: DuckDBModule, ptr: number, ptype: string, n: number) {\n const heap = mod.HEAPU8.subarray(ptr, ptr + n * getTypeSize(ptype));\n switch (ptype) {\n case 'UINT8':\n return new Uint8Array(heap.buffer, heap.byteOffset, n);\n case 'INT8':\n return new Int8Array(heap.buffer, heap.byteOffset, n);\n case 'INT32':\n return new Int32Array(heap.buffer, heap.byteOffset, n);\n case 'FLOAT':\n return new Float32Array(heap.buffer, heap.byteOffset, n);\n case 'DOUBLE':\n return new Float64Array(heap.buffer, heap.byteOffset, n);\n case 'VARCHAR':\n return new Float64Array(heap.buffer, heap.byteOffset, n);\n default:\n return new Array<string | undefined | null>(0); // cough\n }\n}\n\nfunction ptrToUint8Array(mod: DuckDBModule, ptr: number, n: number) {\n const heap = mod.HEAPU8.subarray(ptr, ptr + n);\n return new Uint8Array(heap.buffer, heap.byteOffset, n);\n}\nfunction ptrToFloat64Array(mod: DuckDBModule, ptr: number, n: number) {\n const heap = mod.HEAPU8.subarray(ptr, ptr + n * 8);\n return new Float64Array(heap.buffer, heap.byteOffset, n);\n}\n\ninterface ArgumentTypeDescription {\n name?: string;\n sqlType: string;\n physicalType: string;\n validityBuffer?: number;\n dataBuffer?: number;\n lengthBuffer?: number;\n children?: ArgumentTypeDescription[];\n}\n\ninterface ReturnTypeDescription {\n sqlType: string;\n physicalType: string;\n}\n\ninterface SchemaDescription {\n rows: number;\n args: ArgumentTypeDescription[];\n ret: ReturnTypeDescription;\n}\n\ntype ArgumentResolver = (row: number) => any | null;\n\n// this is called from webdb.cc/CallScalarUDFFunction, changes here need to be matched there\nexport function callScalarUDF(\n runtime: DuckDBRuntime,\n mod: DuckDBModule,\n response: number,\n funcId: number,\n descPtr: number,\n descSize: number,\n ptrsPtr: number,\n ptrsSize: number,\n) {\n try {\n const udf = runtime._udfFunctions.get(funcId);\n if (!udf) {\n storeError(mod, response, 'Unknown UDF with id: ' + funcId);\n return;\n }\n const rawDesc = TEXT_DECODER.decode(mod.HEAPU8.subarray(descPtr, descPtr + descSize));\n const desc = JSON.parse(rawDesc) as SchemaDescription;\n const ptrs = ptrToFloat64Array(mod, ptrsPtr, ptrsSize / 8);\n\n const buildResolver = (arg: ArgumentTypeDescription): ArgumentResolver => {\n let validity: Uint8Array | null = null;\n if (arg.validityBuffer !== undefined) {\n validity = ptrToUint8Array(mod, ptrs[arg.validityBuffer] as number, desc.rows);\n }\n switch (arg.physicalType) {\n case 'VARCHAR': {\n if (arg.dataBuffer === null || arg.dataBuffer === undefined) {\n throw new Error('malformed data view, expected data buffer for VARCHAR argument');\n }\n if (arg.lengthBuffer === null || arg.lengthBuffer === undefined) {\n throw new Error('malformed data view, expected data length buffer for VARCHAR argument');\n }\n const raw = ptrToArray(mod, ptrs[arg.dataBuffer] as number, arg.physicalType, desc.rows);\n const strings: (string | null)[] = [];\n const stringLengths = ptrToFloat64Array(mod, ptrs[arg.lengthBuffer] as number, desc.rows);\n for (let j = 0; j < desc.rows; ++j) {\n if (validity != null && !validity[j]) {\n strings.push(null);\n continue;\n }\n const subarray = mod.HEAPU8.subarray(\n raw[j] as number,\n (raw[j] as number) + (stringLengths[j] as number),\n );\n const str = TEXT_DECODER.decode(subarray);\n strings.push(str);\n }\n return (row: number) => strings[row];\n }\n case 'STRUCT': {\n const tmp: any = {};\n const children: ArgumentResolver[] = [];\n for (let j = 0; j < (arg.children?.length || 0); ++j) {\n const attr = arg.children![j];\n const child = buildResolver(attr);\n children.push((row: number) => {\n tmp[attr.name!] = child(row);\n });\n }\n if (validity != null) {\n return (row: number) => {\n if (!validity![row]) {\n return null;\n }\n for (const resolver of children) {\n resolver(row);\n }\n return tmp;\n };\n } else {\n return (row: number) => {\n for (const resolver of children) {\n resolver(row);\n }\n return tmp;\n };\n }\n }\n default: {\n if (arg.dataBuffer === undefined) {\n throw new Error(\n 'malformed data view, expected data buffer for argument of type: ' + arg.physicalType,\n );\n }\n const data = ptrToArray(mod, ptrs[arg.dataBuffer] as number, arg.physicalType, desc.rows);\n if (validity != null) {\n return (row: number) => (!validity![row] ? null : data[row]);\n } else {\n return (row: number) => data[row];\n }\n }\n }\n };\n\n // Translate argument data\n const argResolvers = [];\n for (let i = 0; i < desc.args.length; ++i) {\n argResolvers.push(buildResolver(desc.args[i]));\n }\n\n // Prepare result buffers\n // TODO: we probably do not want to recreate those every time\n const resultDataLen = desc.rows * getTypeSize(desc.ret.physicalType);\n const resultDataPtr = mod._malloc(resultDataLen);\n const resultData = ptrToArray(mod, resultDataPtr, desc.ret.physicalType, desc.rows);\n const resultValidityPtr = mod._malloc(desc.rows);\n const resultValidity = ptrToUint8Array(mod, resultValidityPtr, desc.rows);\n if (resultData.length == 0 || resultValidity.length == 0) {\n storeError(mod, response, \"Can't create physical arrays for result\");\n return;\n }\n let rawResultData = resultData;\n if (desc.ret.physicalType == 'VARCHAR') {\n rawResultData = new Array<string | undefined | null>(desc.rows);\n }\n\n // Call the function\n const args = [];\n for (let i = 0; i < desc.args.length; ++i) {\n args.push(null);\n }\n for (let i = 0; i < desc.rows; ++i) {\n for (let j = 0; j < desc.args.length; ++j) {\n args[j] = argResolvers[j](i);\n }\n const res = udf.func(...args);\n rawResultData[i] = res;\n resultValidity[i] = res === undefined || res === null ? 0 : 1;\n }\n\n // Encode return values\n let resultLengthsPtr = 0;\n switch (desc.ret.physicalType) {\n case 'VARCHAR': {\n // Allocate result buffers\n const resultDataUTF8 = new Array<Uint8Array>(0); // cough\n resultLengthsPtr = mod._malloc(desc.rows * getTypeSize('DOUBLE'));\n const resultLengths = ptrToFloat64Array(mod, resultLengthsPtr, desc.rows);\n\n // TODO: We need two loops to figure out the total length but maybe we can avoid the double allocation\n let totalLength = 0;\n for (let row = 0; row < desc.rows; ++row) {\n const utf8 = TEXT_ENCODER.encode((rawResultData as (string | null | undefined)[])[row] || '');\n resultDataUTF8.push(utf8);\n resultLengths[row] = utf8.length;\n totalLength += utf8.length;\n }\n\n // We malloc a buffer for the strings to live in for now\n const resultStringPtr = mod._malloc(totalLength);\n const resultStringBuf = mod.HEAPU8.subarray(resultStringPtr, resultStringPtr + totalLength);\n\n // Now copy all the strings to the new buffer back to back\n let writerOffset = 0;\n for (let row = 0; row < desc.rows; ++row) {\n resultData[row] = writerOffset;\n const resultUTF8 = resultDataUTF8[row];\n const writer = resultStringBuf.subarray(writerOffset, writerOffset + resultUTF8.length);\n writer.set(resultUTF8);\n writerOffset += resultUTF8.length;\n }\n }\n }\n\n // Need to store three pointers, data, validity and length\n const retLen = 3 * 8;\n const retPtr = mod._malloc(retLen);\n const retBuffer = ptrToFloat64Array(mod, retPtr, 3);\n retBuffer[0] = resultDataPtr;\n retBuffer[1] = resultValidityPtr;\n retBuffer[2] = resultLengthsPtr;\n\n // Pack response\n mod.HEAPF64[(response >> 3) + 0] = 0;\n mod.HEAPF64[(response >> 3) + 1] = retPtr;\n mod.HEAPF64[(response >> 3) + 2] = 0;\n } catch (e: any) {\n storeError(mod, response, e.toString());\n }\n}\n", "import { DuckDBModule } from './duckdb_module';\nimport { UDFFunction } from './udf_function';\nimport * as udf_rt from './udf_runtime';\n\n/** Wrapper for TextDecoder to support shared array buffers */\nfunction TextDecoderWrapper(): (input?: BufferSource) => string {\n const decoder = new TextDecoder();\n return (data: any) => {\n if (typeof SharedArrayBuffer !== 'undefined' && data.buffer instanceof SharedArrayBuffer) {\n data = new Uint8Array(data);\n }\n return decoder.decode(data);\n };\n}\n/** Helper to decode text */\nexport const decodeText = TextDecoderWrapper();\n\n/** Copy a buffer */\nexport function failWith(mod: DuckDBModule, msg: string): void {\n console.error(`FAIL WITH: ${msg}`);\n mod.ccall('duckdb_web_fail_with', null, ['string'], [msg]);\n}\n\n/** In COI mode, another pthread can grow WASM memory at any time. When that\n * happens, wasmMemory.buffer changes but Module.HEAPU8/HEAPF64 still point\n * to views over the old (smaller) buffer. Emscripten's own GROWABLE_HEAP_*\n * wrappers handle this for generated glue code, but our TS bypasses them.\n * This mirrors that check: compare wasmMemory.buffer to HEAPU8.buffer and\n * refresh the views if they diverge. No-op for EH/MVP (wasmMemory unset). */\nexport function ensureFreshMemoryViews(mod: DuckDBModule): void {\n const wm = mod.wasmMemory;\n if (wm && wm.buffer !== mod.HEAPU8.buffer) {\n const b = wm.buffer;\n mod.HEAPU8 = new Uint8Array(b);\n mod.HEAPF64 = new Float64Array(b);\n }\n}\n\n/** Copy a buffer */\nexport function copyBuffer(mod: DuckDBModule, begin: number, length: number): Uint8Array {\n ensureFreshMemoryViews(mod);\n const buffer = new Uint8Array(mod.HEAPU8.buffer, begin, length);\n const copy = new Uint8Array(new ArrayBuffer(buffer.byteLength));\n copy.set(buffer);\n return copy;\n}\n\n/** Decode a string */\nexport function readString(mod: DuckDBModule, begin: number, length: number): string {\n ensureFreshMemoryViews(mod);\n return decodeText(new Uint8Array(mod.HEAPU8.buffer, begin, length));\n}\n\n/** The data protocol */\nexport enum DuckDBDataProtocol {\n BUFFER = 0,\n NODE_FS = 1,\n BROWSER_FILEREADER = 2,\n BROWSER_FSACCESS = 3,\n HTTP = 4,\n S3 = 5,\n}\n\n/** File flags for opening files*/\nexport enum FileFlags {\n //! Open file with read access\n FILE_FLAGS_READ = 1 << 0,\n //! Open file with write access\n FILE_FLAGS_WRITE = 1 << 1,\n //! Use direct IO when reading/writing to the file\n FILE_FLAGS_DIRECT_IO = 1 << 2,\n //! Create file if not exists, can only be used together with WRITE\n FILE_FLAGS_FILE_CREATE = 1 << 3,\n //! Always create a new file. If a file exists, the file is truncated. Cannot be used together with CREATE.\n FILE_FLAGS_FILE_CREATE_NEW = 1 << 4,\n //! Open file in append mode\n FILE_FLAGS_APPEND = 1 << 5,\n FILE_FLAGS_PRIVATE = 1 << 6,\n FILE_FLAGS_NULL_IF_NOT_EXISTS = 1 << 7,\n FILE_FLAGS_PARALLEL_ACCESS = 1 << 8,\n FILE_FLAGS_EXCLUSIVE_CREATE = 1 << 9,\n FILE_FLAGS_NULL_IF_EXISTS = 1 << 10\n}\n\n/** Configuration for the AWS S3 Filesystem */\nexport interface S3Config {\n region?: string;\n endpoint?: string;\n accessKeyId?: string;\n secretAccessKey?: string;\n sessionToken?: string;\n}\n\n/** An info for a file registered with DuckDB */\nexport interface DuckDBFileInfo {\n cacheEpoch: number;\n fileId: number;\n fileName: string;\n dataProtocol: DuckDBDataProtocol;\n dataUrl: string | null;\n reliableHeadRequests?: boolean;\n allowFullHttpReads?: boolean;\n forceFullHttpReads?: boolean;\n s3Config?: S3Config;\n}\n\n/** Global info for all files registered with DuckDB */\nexport interface DuckDBGlobalFileInfo {\n cacheEpoch: number;\n reliableHeadRequests?: boolean;\n allowFullHttpReads?: boolean;\n forceFullHttpReads?: boolean;\n s3Config?: S3Config;\n}\n\nexport interface PreparedDBFileHandle {\n path: string;\n handle: any;\n fromCached: boolean;\n}\n\n/** Call a function with packed response buffer */\nexport function callSRet(\n mod: DuckDBModule,\n funcName: string,\n argTypes: Array<Emscripten.JSType>,\n args: Array<any>,\n): [number, number, number] {\n const stackPointer = mod.stackSave();\n\n // Allocate the packed response buffer\n const response = mod.stackAlloc(3 * 8);\n argTypes.unshift('number');\n args.unshift(response);\n\n // Do the call \u2014 may trigger memory.grow() on this or another thread\n mod.ccall(funcName, null, argTypes, args);\n\n // Refresh heap views in case memory grew during ccall\n ensureFreshMemoryViews(mod);\n\n // Read the response\n const status = mod.HEAPF64[(response >> 3) + 0];\n const data = mod.HEAPF64[(response >> 3) + 1];\n const dataSize = mod.HEAPF64[(response >> 3) + 2];\n\n // Restore the stack\n mod.stackRestore(stackPointer);\n return [status, data, dataSize];\n}\n\n/** Drop response buffers */\nexport function dropResponseBuffers(mod: DuckDBModule): void {\n mod.ccall('duckdb_web_clear_response', null, [], []);\n}\n\n/** The duckdb runtime */\nexport interface DuckDBRuntime {\n _files?: Map<string, any>;\n _udfFunctions: Map<number, UDFFunction>;\n\n // Test a platform feature\n testPlatformFeature(mod: DuckDBModule, feature: number): boolean;\n\n // File APIs with dedicated file identifier\n getDefaultDataProtocol(mod: DuckDBModule): number;\n openFile(mod: DuckDBModule, fileId: number, flags: FileFlags): void;\n syncFile(mod: DuckDBModule, fileId: number): void;\n closeFile(mod: DuckDBModule, fileId: number): void;\n dropFile(mod: DuckDBModule, fileNamePtr: number, fileNameLen: number): void;\n getLastFileModificationTime(mod: DuckDBModule, fileId: number): number;\n truncateFile(mod: DuckDBModule, fileId: number, newSize: number): void;\n readFile(mod: DuckDBModule, fileId: number, buffer: number, bytes: number, location: number): number;\n writeFile(mod: DuckDBModule, fileId: number, buffer: number, bytes: number, location: number): number;\n\n // File APIs with path parameter\n removeDirectory(mod: DuckDBModule, pathPtr: number, pathLen: number): void;\n checkDirectory(mod: DuckDBModule, pathPtr: number, pathLen: number): boolean;\n createDirectory(mod: DuckDBModule, pathPtr: number, pathLen: number): void;\n listDirectoryEntries(mod: DuckDBModule, pathPtr: number, pathLen: number): boolean;\n glob(mod: DuckDBModule, pathPtr: number, pathLen: number): void;\n moveFile(mod: DuckDBModule, fromPtr: number, fromLen: number, toPtr: number, toLen: number): void;\n checkFile(mod: DuckDBModule, pathPtr: number, pathLen: number): boolean;\n removeFile(mod: DuckDBModule, pathPtr: number, pathLen: number): void;\n\n // Prepare a file handle that could only be acquired aschronously\n prepareFileHandle?: (path: string, protocol: DuckDBDataProtocol) => Promise<PreparedDBFileHandle[]>;\n prepareFileHandles?: (path: string[], protocol: DuckDBDataProtocol) => Promise<PreparedDBFileHandle[]>;\n prepareDBFileHandle?: (path: string, protocol: DuckDBDataProtocol) => Promise<PreparedDBFileHandle[]>;\n\n // Internal API - experimental\n progressUpdate(final: number, percentage: number, iteration: number): void;\n\n // Call a scalar UDF function\n callScalarUDF(\n mod: DuckDBModule,\n response: number,\n funcId: number,\n descPtr: number,\n descSize: number,\n ptrsPtr: number,\n ptrsSize: number,\n ): void;\n}\n\nexport const DEFAULT_RUNTIME: DuckDBRuntime = {\n _udfFunctions: new Map(),\n\n testPlatformFeature: (_mod: DuckDBModule, _feature: number): boolean => false,\n getDefaultDataProtocol: (_mod: DuckDBModule): number => DuckDBDataProtocol.BUFFER,\n openFile: (_mod: DuckDBModule, _fileId: number, flags: FileFlags): void => { },\n syncFile: (_mod: DuckDBModule, _fileId: number): void => { },\n closeFile: (_mod: DuckDBModule, _fileId: number): void => { },\n dropFile: (_mod: DuckDBModule, _fileNamePtr: number, _fileNameLen: number): void => { },\n getLastFileModificationTime: (_mod: DuckDBModule, _fileId: number): number => {\n return 0;\n },\n progressUpdate: (_final: number, _percentage: number, _iteration: number): void => {\n return;\n },\n truncateFile: (_mod: DuckDBModule, _fileId: number, _newSize: number): void => { },\n readFile: (_mod: DuckDBModule, _fileId: number, _buffer: number, _bytes: number, _location: number): number => {\n return 0;\n },\n writeFile: (_mod: DuckDBModule, _fileId: number, _buffer: number, _bytes: number, _location: number): number => {\n return 0;\n },\n\n removeDirectory: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): void => { },\n checkDirectory: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): boolean => {\n return false;\n },\n createDirectory: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): void => { },\n listDirectoryEntries: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): boolean => {\n return false;\n },\n glob: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): void => { },\n moveFile: (_mod: DuckDBModule, _fromPtr: number, _fromLen: number, _toPtr: number, _toLen: number): void => { },\n checkFile: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): boolean => {\n return false;\n },\n removeFile: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): void => { },\n callScalarUDF: (\n mod: DuckDBModule,\n response: number,\n funcId: number,\n descPtr: number,\n descSize: number,\n ptrsPtr: number,\n ptrsSize: number,\n ): void => {\n udf_rt.callScalarUDF(DEFAULT_RUNTIME, mod, response, funcId, descPtr, descSize, ptrsPtr, ptrsSize);\n },\n};\n", "export interface FileBlockStatistics {\n /** The file reads cold */\n file_reads_cold: number;\n /** The file reads aheads */\n file_reads_ahead: number;\n /** The file reads cached */\n file_reads_cached: number;\n /** The file writes */\n file_writes: number;\n /** The page accesses */\n page_accesses: number;\n /** The page loads */\n page_loads: number;\n}\n\n/** The file block statistics */\nexport class FileStatistics {\n /** The cold file reads */\n public totalFileReadsCold: number;\n /** The file readaheads */\n public totalFileReadsAhead: number;\n /** The cached file reads */\n public totalFileReadsCached: number;\n /** The file writes */\n public totalFileWrites: number;\n /** The page accesses */\n public totalPageAccesses: number;\n /** The page loads */\n public totalPageLoads: number;\n /** The blocks */\n public blockSize: number;\n /** The blocks */\n public blockStats: Uint8Array;\n\n constructor(u8array: Uint8Array) {\n const f64 = new Float64Array(u8array.buffer, u8array.byteOffset, u8array.byteLength / 8);\n const blocks = new Uint8Array(new ArrayBuffer(u8array.byteLength));\n blocks.set(u8array.subarray(7 * 8));\n this.totalFileReadsCold = f64[0];\n this.totalFileReadsAhead = f64[1];\n this.totalFileReadsCached = f64[2];\n this.totalFileWrites = f64[3];\n this.totalPageAccesses = f64[4];\n this.totalPageLoads = f64[5];\n this.blockSize = f64[6];\n this.blockStats = blocks;\n }\n\n /** The block stats */\n public getBlockStats(index: number, out?: FileBlockStatistics): FileBlockStatistics {\n out = out || {\n file_reads_cold: 0,\n file_reads_ahead: 0,\n file_reads_cached: 0,\n file_writes: 0,\n page_accesses: 0,\n page_loads: 0,\n };\n out.file_writes = this.blockStats[index * 3 + 0] & 0b1111;\n out.file_reads_cold = this.blockStats[index * 3 + 0] >> 4;\n out.file_reads_ahead = this.blockStats[index * 3 + 1] & 0b1111;\n out.file_reads_cached = this.blockStats[index * 3 + 1] >> 4;\n out.page_accesses = this.blockStats[index * 3 + 1] & 0b1111;\n out.page_loads = this.blockStats[index * 3 + 1] >> 4;\n return out;\n }\n}\n", "import { DuckDBModule, PThread } from './duckdb_module';\nimport { DuckDBConfig } from './config';\nimport { Logger } from '../log';\nimport { InstantiationProgress } from './progress';\nimport { DuckDBBindings } from './bindings_interface';\nimport { DuckDBConnection } from './connection';\nimport { StatusCode, IsArrowBuffer, IsDuckDBWasmRetry } from '../status';\nimport { dropResponseBuffers, DuckDBRuntime, readString, callSRet, copyBuffer, DuckDBDataProtocol, ensureFreshMemoryViews } from './runtime';\nimport { CSVInsertOptions, JSONInsertOptions, ArrowInsertOptions } from './insert_options';\nimport { ScriptTokens } from './tokens';\nimport { FileStatistics } from './file_stats';\nimport { WebFile } from './web_file';\n// import { UDFFunction, UDFFunctionDeclaration } from './udf_function';\n\nconst TEXT_ENCODER = new TextEncoder();\n\ndeclare global {\n // eslint-disable-next-line no-var\n var DUCKDB_RUNTIME: any;\n}\n\n/** A DuckDB Feature */\nexport enum DuckDBFeature {\n WASM_EXCEPTIONS = 1 << 0,\n WASM_THREADS = 1 << 1,\n WASM_SIMD = 1 << 2,\n WASM_BULK_MEMORY = 1 << 3,\n EMIT_BIGINT = 1 << 4,\n WASMFS = 1 << 5,\n}\n\nfunction isNotSuccess(s: StatusCode) {\n return s !== StatusCode.SUCCESS;\n}\n\n/** The proxy for either the browser- order node-based DuckDB API */\nexport abstract class DuckDBBindingsBase implements DuckDBBindings {\n /** The logger */\n protected readonly _logger: Logger;\n /** Backend-dependent native-glue code for DuckDB */\n protected readonly _runtime: DuckDBRuntime;\n /** The instance */\n protected _instance: DuckDBModule | null = null;\n /** The loading promise */\n protected _initPromise: Promise<void> | null = null;\n /** The resolver for the open promise (called by onRuntimeInitialized) */\n protected _initPromiseResolver: () => void = () => {};\n /** The next UDF id */\n protected _nextUDFId: number;\n\n constructor(logger: Logger, runtime: DuckDBRuntime) {\n this._logger = logger;\n this._runtime = runtime;\n this._nextUDFId = 1;\n }\n\n /** Get the logger */\n public get logger(): Logger {\n return this._logger;\n }\n /** Get the instance */\n public get mod(): DuckDBModule {\n return this._instance!;\n }\n /** Get the instance */\n public get pthread(): PThread | null {\n return this.mod.PThread || null;\n }\n\n /** Instantiate the module */\n protected abstract instantiateImpl(moduleOverrides: Partial<DuckDBModule>): Promise<DuckDBModule>;\n /** Instantiate the module */\n protected onInstantiationProgress: ((p: InstantiationProgress) => void)[] = [];\n /** Instantiate the database */\n public async instantiate(onProgress: (progress: InstantiationProgress) => void = _ => {}): Promise<this> {\n // Already opened?\n if (this._instance != null) {\n return this;\n }\n // Open in progress?\n if (this._initPromise != null) {\n this.onInstantiationProgress.push(onProgress);\n await this._initPromise;\n }\n // Create a promise that we can await\n this._initPromise = new Promise(resolve => {\n this._initPromiseResolver = resolve;\n });\n // Register progress handler\n this.onInstantiationProgress = [onProgress];\n // Initialize duckdb\n this._instance = await this.instantiateImpl({\n print: console.log.bind(console),\n printErr: console.log.bind(console),\n onRuntimeInitialized: this._initPromiseResolver,\n });\n // Wait for onRuntimeInitialized\n await this._initPromise;\n this._initPromise = null;\n // Remove own progress callback\n this.onInstantiationProgress = this.onInstantiationProgress.filter(x => x != onProgress);\n (globalThis as any).DUCKDB_BINDINGS = this;\n return this;\n }\n /** Open a database with a config */\n public open(config: DuckDBConfig): void {\n const [s, d, n] = callSRet(this.mod, 'duckdb_web_open', ['string'], [JSON.stringify(config)]);\n if (s !== StatusCode.SUCCESS) {\n throw new Error(readString(this.mod, d, n));\n }\n dropResponseBuffers(this.mod);\n }\n\n /** Reset the database */\n public reset(): void {\n const [s, d, n] = callSRet(this.mod, 'duckdb_web_reset', [], []);\n if (s !== StatusCode.SUCCESS) {\n throw new Error(readString(this.mod, d, n));\n }\n dropResponseBuffers(this.mod);\n }\n\n /** Get the version */\n public getVersion(): string {\n const [s, d, n] = callSRet(this.mod, 'duckdb_web_get_version', [], []);\n if (s !== StatusCode.SUCCESS) {\n throw new Error(readString(this.mod, d, n));\n }\n const version = readString(this.mod, d, n);\n dropResponseBuffers(this.mod);\n return version;\n }\n /** Get the feature flags */\n public getFeatureFlags(): number {\n return this.mod.ccall('duckdb_web_get_feature_flags', 'number', [], []);\n }\n\n /** Tokenize a script */\n public tokenize(text: string): ScriptTokens {\n const BUF = TEXT_ENCODER.encode(text);\n const bufferPtr = this.mod._malloc(BUF.length) >>> 0;\n const bufferOfs = new Uint8Array(this.mod.HEAPU8.buffer, bufferPtr, BUF.length);\n bufferOfs.set(BUF);\n const [s, d, n] = callSRet(\n this.mod,\n 'duckdb_web_tokenize_buffer',\n ['number', 'number'],\n [bufferPtr, BUF.length],\n );\n this.mod._free(bufferPtr);\n if (s !== StatusCode.SUCCESS) {\n throw new Error(readString(this.mod, d, n));\n }\n const res = readString(this.mod, d, n);\n dropResponseBuffers(this.mod);\n return JSON.parse(res) as ScriptTokens;\n }\n\n /** Connect to database */\n public connect(): DuckDBConnection {\n const conn = this.mod.ccall('duckdb_web_connect', 'number', [], []);\n return new DuckDBConnection(this, conn);\n }\n /** Disconnect from database */\n public disconnect(conn: number): void {\n this.mod.ccall('duckdb_web_disconnect', null, ['number'], [conn]);\n if (this.pthread) {\n for (const worker of [...this.pthread.runningWorkers, ...this.pthread.unusedWorkers]) {\n worker.postMessage({\n cmd: 'dropUDFFunctions',\n connectionId: conn,\n });\n }\n }\n }\n\n /** Send a query and return the full result */\n public runQuery(conn: number, text: string): Uint8Array {\n const BUF = TEXT_ENCODER.encode(text);\n const bufferPtr = this.mod._malloc(BUF.length) >>> 0;\n const bufferOfs = new Uint8Array(this.mod.HEAPU8.buffer, bufferPtr, BUF.length);\n bufferOfs.set(BUF);\n const [s, d, n] = callSRet(\n this.mod,\n 'duckdb_web_query_run_buffer',\n ['number', 'number', 'number'],\n [conn, bufferPtr, BUF.length],\n );\n this.mod._free(bufferPtr);\n if (s !== StatusCode.SUCCESS) {\n throw new Error(readString(this.mod, d, n));\n }\n const res = copyBuffer(this.mod, d, n);\n dropResponseBuffers(this.mod);\n return res;\n }\n /**\n * Start a pending query asynchronously.\n * This method returns either the arrow ipc schema or null.\n * On null, the query has to be executed using `pollPendingQuery` until that returns != null.\n * Results can then be fetched using `fetchQueryResults`\n */\n public startPendingQuery(conn: number, text: string, allowStreamResult: boolean = false): Uint8Array | null {\n const BUF = TEXT_ENCODER.encode(text);\n const bufferPtr = this.mod._malloc(BUF.length) >>> 0;\n const bufferOfs = new Uint8Array(this.mod.HEAPU8.buffer, bufferPtr, BUF.length);\n bufferOfs.set(BUF);\n const [s, d, n] = callSRet(\n this.mod,\n 'duckdb_web_pending_query_start_buffer',\n ['number', 'number', 'number', 'boolean'],\n [conn, bufferPtr, BUF.length, allowStreamResult],\n );\n this.mod._free(bufferPtr);\n if (s !== StatusCode.SUCCESS) {\n throw new Error(readString(this.mod, d, n));\n }\n if (d == 0) {\n return null;\n }\n const res = copyBuffer(this.mod, d, n);\n dropResponseBuffers(this.mod);\n return res;\n }\n /** Poll a pending query */\n public pollPendingQuery(conn: number): Uint8Array | null {\n const [s, d, n] = callSRet(this.mod, 'duckdb_web_pending_query_poll', ['number'], [conn]);\n if (s !== StatusCode.SUCCESS) {\n throw new Error(readString(this.mod, d, n));\n }\n if (d == 0) {\n return null;\n }\n const res = copyBuffer(this.mod, d, n);\n dropResponseBuffers(this.mod);\n return res;\n }\n /** Cancel a pending query */\n public cancelPendingQuery(conn: number): boolean {\n return this.mod.ccall('duckdb_web_pending_query_cancel', 'boolean', ['number'], [conn]);\n }\n /** Fetch query results */\n public fetchQueryResults(conn: number): Uint8Array | null {\n const [s, d, n] = callSRet(this.mod, 'duckdb_web_query_fetch_results', ['number'], [conn]);\n if (IsDuckDBWasmRetry(s)) {\n dropResponseBuffers(this.mod);\n return null; // Retry\n }\n\n if (!IsArrowBuffer(s)) {\n throw new Error(\n 'Unexpected StatusCode from duckdb_web_query_fetch_results (' +\n s +\n ') and with self reported error as' +\n readString(this.mod, d, n),\n );\n }\n if (s !== StatusCode.SUCCESS) {\n throw new Error(readString(this.mod, d, n));\n }\n\n const res = copyBuffer(this.mod, d, n);\n dropResponseBuffers(this.mod);\n return res;\n }\n /** Get table names */\n public getTableNames(conn: number, text: string): string[] {\n const BUF = TEXT_ENCODER.encode(text);\n const bufferPtr = this.mod._malloc(BUF.length) >>> 0;\n const bufferOfs = new Uint8Array(this.mod.HEAPU8.buffer, bufferPtr, BUF.length);\n bufferOfs.set(BUF);\n const [s, d, n] = callSRet(\n this.mod,\n 'duckdb_web_get_tablenames_buffer',\n ['number', 'number', 'number'],\n [conn, bufferPtr, BUF.length],\n );\n this.mod._free(bufferPtr);\n if (s !== StatusCode.SUCCESS) {\n throw new Error(readString(this.mod, d, n));\n }\n const res = readString(this.mod, d, n);\n dropResponseBuffers(this.mod);\n return JSON.parse(res) as string[];\n }\n\n /** Create a scalar function */\n // public createScalarFunction(\n // conn: number,\n // name: string,\n // returns: arrow.DataType,\n // func: (...args: any[]) => void,\n // ): void {\n // const decl: UDFFunctionDeclaration = {\n // functionId: this._nextUDFId,\n // name: name,\n // returnType: arrowToSQLType(returns),\n // };\n // const def: UDFFunction = {\n // functionId: decl.functionId,\n // connectionId: conn,\n // name: name,\n // returnType: returns,\n // func,\n // };\n // this._nextUDFId += 1;\n // const [s, d, n] = callSRet(\n // this.mod,\n // 'duckdb_web_udf_scalar_create',\n // ['number', 'string'],\n // [conn, JSON.stringify(decl)],\n // );\n // if (s !== StatusCode.SUCCESS) {\n // throw new Error(readString(this.mod, d, n));\n // }\n // dropResponseBuffers(this.mod);\n // globalThis.DUCKDB_RUNTIME._udfFunctions = (globalThis.DUCKDB_RUNTIME._udfFunctions || new Map()).set(\n // def.functionId,\n // def,\n // );\n // if (this.pthread) {\n // for (const worker of [...this.pthread.runningWorkers, ...this.pthread.unusedWorkers]) {\n // worker.postMessage({\n // cmd: 'registerUDFFunction',\n // udf: def,\n // });\n // }\n // }\n // }\n\n /** Prepare a statement and return its identifier */\n public createPrepared(conn: number, text: string): number {\n const BUF = TEXT_ENCODER.encode(text);\n const bufferPtr = this.mod._malloc(BUF.length) >>> 0;\n const bufferOfs = new Uint8Array(this.mod.HEAPU8.buffer, bufferPtr, BUF.length);\n bufferOfs.set(BUF);\n const [s, d, n] = callSRet(\n this.mod,\n 'duckdb_web_prepared_create_buffer',\n ['number', 'number', 'number'],\n [conn, bufferPtr, BUF.length],\n );\n this.mod._free(bufferPtr);\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n dropResponseBuffers(this.mod);\n return d;\n }\n\n /** Close a prepared statement */\n public closePrepared(conn: number, statement: number): void {\n const [s, d, n] = callSRet(this.mod, 'duckdb_web_prepared_close', ['number', 'number'], [conn, statement]);\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n dropResponseBuffers(this.mod);\n }\n\n /** Execute a prepared statement and return the full result */\n public runPrepared(conn: number, statement: number, params: any[]): Uint8Array {\n const [s, d, n] = callSRet(\n this.mod,\n 'duckdb_web_prepared_run',\n ['number', 'number', 'string'],\n [conn, statement, JSON.stringify(params)],\n );\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n const res = copyBuffer(this.mod, d, n);\n dropResponseBuffers(this.mod);\n return res;\n }\n\n /** Execute a prepared statement and stream the result */\n public sendPrepared(conn: number, statement: number, params: any[]): Uint8Array {\n const [s, d, n] = callSRet(\n this.mod,\n 'duckdb_web_prepared_send',\n ['number', 'number', 'string'],\n [conn, statement, JSON.stringify(params)],\n );\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n const res = copyBuffer(this.mod, d, n);\n dropResponseBuffers(this.mod);\n return res;\n }\n\n /** Insert record batches from an arrow ipc stream */\n public insertArrowFromIPCStream(conn: number, buffer: Uint8Array, options?: ArrowInsertOptions): void {\n if (buffer.length == 0) return;\n // Store buffer\n const bufferPtr = this.mod._malloc(buffer.length) >>> 0;\n const bufferOfs = new Uint8Array(this.mod.HEAPU8.buffer, bufferPtr, buffer.length);\n bufferOfs.set(buffer);\n const optJSON = options ? JSON.stringify(options) : '';\n\n // Call wasm function\n const [s, d, n] = callSRet(\n this.mod,\n 'duckdb_web_insert_arrow_from_ipc_stream',\n ['number', 'number', 'number', 'string'],\n [conn, bufferPtr, buffer.length, optJSON],\n );\n\n this.mod._free(bufferPtr);\n\n if (s !== StatusCode.SUCCESS) {\n throw new Error(readString(this.mod, d, n));\n }\n }\n\n /** Insert csv from path */\n public insertCSVFromPath(conn: number, path: string, options: CSVInsertOptions): void {\n // Stringify options\n const optJSON = JSON.stringify(options);\n\n // Call wasm function\n const [s, d, n] = callSRet(\n this.mod,\n 'duckdb_web_insert_csv_from_path',\n ['number', 'string', 'string'],\n [conn, path, optJSON],\n );\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n }\n /** Insert json from path */\n public insertJSONFromPath(conn: number, path: string, options: JSONInsertOptions): void {\n // Stringify options\n const optJSON = JSON.stringify(options);\n\n // Call wasm function\n const [s, d, n] = callSRet(\n this.mod,\n 'duckdb_web_insert_json_from_path',\n ['number', 'string', 'string'],\n [conn, path, optJSON],\n );\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n }\n /** Glob file infos */\n public globFiles(path: string): WebFile[] {\n const [s, d, n] = callSRet(this.mod, 'duckdb_web_fs_glob_file_infos', ['string'], [path]);\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n const infoStr = readString(this.mod, d, n);\n dropResponseBuffers(this.mod);\n const info = JSON.parse(infoStr) as WebFile[];\n if (info == null) {\n return [];\n }\n return info;\n }\n /** Register a file object URL */\n public registerFileURL(name: string, url: string, proto: DuckDBDataProtocol, directIO = false): void {\n if (url === undefined) {\n url = name;\n }\n const [s, d, n] = callSRet(\n this.mod,\n 'duckdb_web_fs_register_file_url',\n ['string', 'string'],\n [name, url, proto, directIO],\n );\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n dropResponseBuffers(this.mod);\n }\n /** Register file text */\n public registerFileText(name: string, text: string): void {\n const buffer = TEXT_ENCODER.encode(text);\n this.registerFileBuffer(name, buffer);\n }\n /** Register a file buffer */\n public registerFileBuffer(name: string, buffer: Uint8Array): void {\n const ptr = this.mod._malloc(buffer.length) >>> 0;\n const dst = new Uint8Array(this.mod.HEAPU8.buffer, ptr, buffer.length);\n dst.set(buffer);\n const [s, d, n] = callSRet(\n this.mod,\n 'duckdb_web_fs_register_file_buffer',\n ['string', 'number', 'number'],\n [name, ptr, buffer.length],\n );\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n dropResponseBuffers(this.mod);\n }\n public async prepareFileHandle(fileName: string, protocol: DuckDBDataProtocol): Promise<void> {\n if (protocol === DuckDBDataProtocol.BROWSER_FSACCESS && this._runtime.prepareFileHandles) {\n const list = await this._runtime.prepareFileHandles([fileName], DuckDBDataProtocol.BROWSER_FSACCESS);\n for (const item of list) {\n const { handle, path: filePath, fromCached } = item;\n if (!fromCached && handle.getSize()) {\n await this.registerFileHandleAsync(filePath, handle, DuckDBDataProtocol.BROWSER_FSACCESS, true);\n }\n }\n return;\n }\n throw new Error(`prepareFileHandle: unsupported protocol ${protocol}`);\n }\n /** Prepare a file handle that could only be acquired aschronously */\n public async prepareDBFileHandle(path: string, protocol: DuckDBDataProtocol): Promise<void> {\n if (protocol === DuckDBDataProtocol.BROWSER_FSACCESS && this._runtime.prepareDBFileHandle) {\n const list = await this._runtime.prepareDBFileHandle(path, DuckDBDataProtocol.BROWSER_FSACCESS);\n for (const item of list) {\n const { handle, path: filePath, fromCached } = item;\n if (!fromCached && handle.getSize()) {\n await this.registerFileHandleAsync(filePath, handle, DuckDBDataProtocol.BROWSER_FSACCESS, true);\n }\n }\n return;\n }\n throw new Error(`prepareDBFileHandle: unsupported protocol ${protocol}`);\n }\n /** Prepare a file object URL */\n public async prepareFileHandleAsync<HandleType>(\n name: string,\n handle: HandleType,\n protocol: DuckDBDataProtocol,\n directIO: boolean,\n ): Promise<HandleType> {\n if (protocol === DuckDBDataProtocol.BROWSER_FSACCESS) {\n if (handle instanceof FileSystemSyncAccessHandle) {\n // already a handle is sync handle.\n } else if (handle instanceof FileSystemFileHandle) {\n // handle is an async handle, should convert to sync handle\n const fileHandle: FileSystemFileHandle = handle as any;\n try {\n handle = (await fileHandle.createSyncAccessHandle()) as any;\n } catch (e: any) {\n throw new Error(e.message + ':' + name);\n }\n } else if (name != null) {\n // should get sync handle from the file name.\n try {\n const opfsRoot = await navigator.storage.getDirectory();\n const fileHandle = await opfsRoot.getFileHandle(name);\n handle = (await fileHandle.createSyncAccessHandle()) as any;\n } catch (e: any) {\n throw new Error(e.message + ':' + name);\n }\n }\n }\n return handle;\n }\n /** Register a file object URL async */\n public async registerFileHandleAsync<HandleType>(\n name: string,\n handle: HandleType,\n protocol: DuckDBDataProtocol,\n directIO: boolean,\n ): Promise<void> {\n const handle_inner = await this.prepareFileHandleAsync(name, handle, protocol, directIO);\n this.registerFileHandle(name, handle_inner, protocol, directIO);\n }\n /** Register a file object URL */\n public registerFileHandle<HandleType>(\n name: string,\n handle: HandleType,\n protocol: DuckDBDataProtocol,\n directIO: boolean,\n ): void {\n const [s, d, n] = callSRet(\n this.mod,\n 'duckdb_web_fs_register_file_url',\n ['string', 'string', 'number', 'boolean'],\n [name, name, protocol, directIO],\n );\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n dropResponseBuffers(this.mod);\n globalThis.DUCKDB_RUNTIME._files = (globalThis.DUCKDB_RUNTIME._files || new Map()).set(name, handle);\n if (globalThis.DUCKDB_RUNTIME._preparedHandles?.[name]) {\n delete globalThis.DUCKDB_RUNTIME._preparedHandles[name];\n }\n if (this.pthread) {\n for (const worker of this.pthread.runningWorkers) {\n worker.postMessage({\n cmd: 'registerFileHandle',\n fileName: name,\n fileHandle: handle,\n });\n }\n for (const worker of this.pthread.unusedWorkers) {\n worker.postMessage({\n cmd: 'dropFileHandle',\n fileName: name,\n });\n }\n }\n }\n /** Drop file */\n public dropFile(name: string): void {\n const [s, d, n] = callSRet(this.mod, 'duckdb_web_fs_drop_file', ['string'], [name]);\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n dropResponseBuffers(this.mod);\n }\n /** Drop files */\n public dropFiles(names?:string[]): void {\n const pointers:number[] = [];\n let pointerOfArray:number = -1;\n try {\n for (const str of (names ?? [])) {\n if (str !== null && str !== undefined && str.length > 0) {\n const size = this.mod.lengthBytesUTF8(str) + 1;\n const ret = this.mod._malloc(size) >>> 0;\n if (!ret) {\n throw new Error(`Failed to allocate memory for string: ${str}`);\n }\n this.mod.stringToUTF8(str, ret, size);\n pointers.push(ret);\n }\n }\n pointerOfArray = this.mod._malloc(pointers.length * 4) >>> 0;\n if (!pointerOfArray) {\n throw new Error(`Failed to allocate memory for pointers array`);\n }\n for (let i = 0; i < pointers.length; i++) {\n this.mod.HEAP32[(pointerOfArray >> 2) + i] = pointers[i];\n }\n const [s, d, n] = callSRet(\n this.mod,\n 'duckdb_web_fs_drop_files',\n [\n 'number',\n 'number'\n ],\n [\n pointerOfArray,\n pointers.length\n ]\n );\n if (s !== StatusCode.SUCCESS) {\n throw new Error(readString(this.mod, d, n));\n }\n dropResponseBuffers(this.mod);\n } finally {\n for (const pointer of pointers) {\n this.mod._free(pointer);\n }\n if( pointerOfArray > 0 ){\n this.mod._free(pointerOfArray);\n }\n }\n }\n /** Flush all files */\n public flushFiles(): void {\n this.mod.ccall('duckdb_web_flush_files', null, [], []);\n }\n /** Write a file to a path */\n public copyFileToPath(name: string, path: string): void {\n const [s, d, n] = callSRet(this.mod, 'duckdb_web_copy_file_to_path', ['string', 'string'], [name, path]);\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n dropResponseBuffers(this.mod);\n }\n /** Write a file to a buffer */\n public copyFileToBuffer(name: string): Uint8Array {\n const [s, d, n] = callSRet(this.mod, 'duckdb_web_copy_file_to_buffer', ['string'], [name]);\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n ensureFreshMemoryViews(this.mod);\n const buffer = new Uint8Array(this.mod.HEAPU8.buffer, d, n);\n const copy = new Uint8Array(buffer.length);\n copy.set(buffer);\n dropResponseBuffers(this.mod);\n return copy;\n }\n /** Enable tracking of file statistics */\n public async registerOPFSFileName(file: string): Promise<void> {\n if (file.startsWith('opfs://')) {\n return this.prepareFileHandle(file, DuckDBDataProtocol.BROWSER_FSACCESS);\n } else {\n throw new Error('Not an OPFS file name: ' + file);\n }\n }\n public collectFileStatistics(file: string, enable: boolean): void {\n const [s, d, n] = callSRet(this.mod, 'duckdb_web_collect_file_stats', ['string', 'boolean'], [file, enable]);\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n }\n /** Export file statistics */\n public exportFileStatistics(file: string): FileStatistics {\n const [s, d, n] = callSRet(this.mod, 'duckdb_web_export_file_stats', ['string'], [file]);\n if (isNotSuccess(s)) {\n throw new Error(readString(this.mod, d, n));\n }\n ensureFreshMemoryViews(this.mod);\n return new FileStatistics(new Uint8Array(this.mod.HEAPU8.buffer, d, n));\n }\n}\n", "import { DuckDBBindings, DuckDBDataProtocol, DuckDBFeature } from '../bindings';\nimport { WorkerResponseVariant, WorkerRequestVariant, WorkerRequestType, WorkerResponseType } from './worker_request';\nimport { Logger, LogEntryVariant } from '../log';\nimport { InstantiationProgress } from '../bindings/progress';\n\nexport abstract class AsyncDuckDBDispatcher implements Logger {\n /** The bindings */\n protected _bindings: DuckDBBindings | null = null;\n /** The next message id */\n protected _nextMessageId = 0;\n\n /** Instantiate the wasm module */\n protected abstract instantiate(\n mainModule: string,\n pthreadWorker: string | null,\n progress: (p: InstantiationProgress) => void,\n ): Promise<DuckDBBindings>;\n /** Post a response to the main thread */\n protected abstract postMessage(response: WorkerResponseVariant, transfer: ArrayBuffer[]): void;\n\n /** Send log entry to the main thread */\n public log(entry: LogEntryVariant): void {\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: 0,\n type: WorkerResponseType.LOG,\n data: entry,\n },\n [],\n );\n }\n\n /** Send plain OK without further data */\n protected sendOK(request: WorkerRequestVariant): void {\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.OK,\n data: null,\n },\n [],\n );\n }\n\n /** Fail with an error */\n protected failWith(request: WorkerRequestVariant, e: Error): void {\n // Workaround for Firefox not being able to perform structured-clone on Native Errors\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n const obj: any = {\n name: e.name,\n message: e.message,\n stack: e.stack || undefined,\n };\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.ERROR,\n data: obj,\n },\n [],\n );\n return;\n }\n\n /** Process a request from the main thread */\n public async onMessage(request: WorkerRequestVariant): Promise<void> {\n // First process those requests that don't need bindings\n switch (request.type) {\n case WorkerRequestType.PING:\n this.sendOK(request);\n return;\n case WorkerRequestType.INSTANTIATE:\n if (this._bindings != null) {\n this.failWith(request, new Error('duckdb already initialized'));\n }\n try {\n this._bindings = await this.instantiate(request.data[0], request.data[1], p => {\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.INSTANTIATE_PROGRESS,\n data: p,\n },\n [],\n );\n });\n this.sendOK(request);\n } catch (e: any) {\n console.log(e);\n this._bindings = null;\n this.failWith(request, e);\n }\n return;\n default:\n break;\n }\n\n // Bindings not initialized?\n if (!this._bindings) {\n return this.failWith(request, new Error('duckdb is not initialized'));\n }\n\n // Catch every exception and forward it as error message to the main thread\n try {\n switch (request.type) {\n case WorkerRequestType.GET_VERSION:\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.VERSION_STRING,\n data: this._bindings.getVersion(),\n },\n [],\n );\n break;\n case WorkerRequestType.GET_FEATURE_FLAGS:\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.FEATURE_FLAGS,\n data: this._bindings.getFeatureFlags(),\n },\n [],\n );\n break;\n case WorkerRequestType.RESET:\n this._bindings.reset();\n this.sendOK(request);\n break;\n\n case WorkerRequestType.OPEN: {\n const path = request.data.path;\n const hasWasmFS = !!(this._bindings!.getFeatureFlags() & DuckDBFeature.WASM_THREADS);\n if (path?.startsWith('opfs://') && !hasWasmFS) {\n // Only prepare sync access handles in JS (_preparedHandles) without\n // registering in C++ files_by_name_. This avoids FileExists() returning\n // true for empty OPFS files, which would cause DuckDB to try loading\n // an existing database from an empty file. The C++ OpenFile flow will\n // discover the handles via the JS openFile callback.\n // Skip when WasmFS is active: WasmFS handles OPFS via POSIX I/O directly.\n const runtime = globalThis.DUCKDB_RUNTIME;\n if (runtime?.prepareDBFileHandle) {\n await runtime.prepareDBFileHandle(path, DuckDBDataProtocol.BROWSER_FSACCESS);\n }\n request.data.useDirectIO = true;\n }\n this._bindings.open(request.data);\n this.sendOK(request);\n break;\n }\n case WorkerRequestType.DROP_FILE:\n this._bindings.dropFile(request.data);\n this.sendOK(request);\n break;\n case WorkerRequestType.DROP_FILES:\n this._bindings.dropFiles(request.data);\n this.sendOK(request);\n break;\n case WorkerRequestType.FLUSH_FILES:\n this._bindings.flushFiles();\n this.sendOK(request);\n break;\n case WorkerRequestType.CONNECT: {\n const conn = this._bindings.connect();\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.CONNECTION_INFO,\n data: conn.useUnsafe((_, c) => c),\n },\n [],\n );\n break;\n }\n case WorkerRequestType.DISCONNECT:\n this._bindings.disconnect(request.data);\n this.sendOK(request);\n break;\n case WorkerRequestType.CREATE_PREPARED: {\n const result = this._bindings.createPrepared(request.data[0], request.data[1]);\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.PREPARED_STATEMENT_ID,\n data: result,\n },\n [],\n );\n break;\n }\n case WorkerRequestType.CLOSE_PREPARED: {\n this._bindings.closePrepared(request.data[0], request.data[1]);\n this.sendOK(request);\n break;\n }\n case WorkerRequestType.RUN_PREPARED: {\n const result = this._bindings.runPrepared(request.data[0], request.data[1], request.data[2]);\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.QUERY_RESULT,\n data: result,\n },\n [result.buffer],\n );\n break;\n }\n case WorkerRequestType.RUN_QUERY: {\n const result = this._bindings.runQuery(request.data[0], request.data[1]);\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.QUERY_RESULT,\n data: result,\n },\n [result.buffer],\n );\n break;\n }\n case WorkerRequestType.SEND_PREPARED: {\n const result = this._bindings.sendPrepared(request.data[0], request.data[1], request.data[2]);\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.QUERY_RESULT_HEADER,\n data: result,\n },\n [result.buffer],\n );\n break;\n }\n case WorkerRequestType.START_PENDING_QUERY: {\n const result = this._bindings.startPendingQuery(request.data[0], request.data[1], request.data[2]);\n const transfer = [];\n if (result) {\n transfer.push(result.buffer);\n }\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.QUERY_RESULT_HEADER_OR_NULL,\n data: result,\n },\n transfer,\n );\n break;\n }\n case WorkerRequestType.POLL_PENDING_QUERY: {\n const result = this._bindings.pollPendingQuery(request.data);\n const transfer = [];\n if (result) {\n transfer.push(result.buffer);\n }\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.QUERY_RESULT_HEADER_OR_NULL,\n data: result,\n },\n transfer,\n );\n break;\n }\n case WorkerRequestType.CANCEL_PENDING_QUERY: {\n const result = this._bindings.cancelPendingQuery(request.data);\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.SUCCESS,\n data: result,\n },\n [],\n );\n break;\n }\n case WorkerRequestType.FETCH_QUERY_RESULTS: {\n const result = this._bindings.fetchQueryResults(request.data);\n const transfer = result ? [result.buffer] : [];\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.QUERY_RESULT_CHUNK,\n data: result,\n },\n transfer,\n );\n break;\n }\n case WorkerRequestType.GET_TABLE_NAMES: {\n const result = this._bindings.getTableNames(request.data[0], request.data[1]);\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.TABLE_NAMES,\n data: result,\n },\n [],\n );\n break;\n }\n case WorkerRequestType.GLOB_FILE_INFOS: {\n const infos = this._bindings.globFiles(request.data);\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.FILE_INFOS,\n data: infos,\n },\n [],\n );\n break;\n }\n\n case WorkerRequestType.REGISTER_FILE_URL:\n this._bindings.registerFileURL(request.data[0], request.data[1], request.data[2], request.data[3]);\n this.sendOK(request);\n break;\n\n case WorkerRequestType.REGISTER_FILE_BUFFER:\n this._bindings.registerFileBuffer(request.data[0], request.data[1]);\n this.sendOK(request);\n break;\n\n case WorkerRequestType.REGISTER_FILE_HANDLE:\n await this._bindings.registerFileHandleAsync(\n request.data[0],\n request.data[1],\n request.data[2],\n request.data[3],\n );\n this.sendOK(request);\n break;\n\n case WorkerRequestType.COPY_FILE_TO_PATH:\n this._bindings.copyFileToPath(request.data[0], request.data[1]);\n this.sendOK(request);\n break;\n\n case WorkerRequestType.COPY_FILE_TO_BUFFER: {\n const buffer = this._bindings.copyFileToBuffer(request.data);\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.FILE_BUFFER,\n data: buffer,\n },\n [],\n );\n break;\n }\n case WorkerRequestType.COLLECT_FILE_STATISTICS:\n this._bindings.collectFileStatistics(request.data[0], request.data[1]);\n this.sendOK(request);\n break;\n\n case WorkerRequestType.REGISTER_OPFS_FILE_NAME:\n await this._bindings.registerOPFSFileName(request.data[0]);\n this.sendOK(request);\n break;\n\n case WorkerRequestType.EXPORT_FILE_STATISTICS: {\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.FILE_STATISTICS,\n data: this._bindings.exportFileStatistics(request.data),\n },\n [],\n );\n break;\n }\n case WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM: {\n this._bindings.insertArrowFromIPCStream(request.data[0], request.data[1], request.data[2]);\n this.sendOK(request);\n break;\n }\n case WorkerRequestType.INSERT_CSV_FROM_PATH: {\n this._bindings.insertCSVFromPath(request.data[0], request.data[1], request.data[2]);\n this.sendOK(request);\n break;\n }\n case WorkerRequestType.INSERT_JSON_FROM_PATH: {\n this._bindings.insertJSONFromPath(request.data[0], request.data[1], request.data[2]);\n this.sendOK(request);\n break;\n }\n case WorkerRequestType.TOKENIZE: {\n const result = this._bindings.tokenize(request.data);\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.SCRIPT_TOKENS,\n data: result,\n },\n [],\n );\n break;\n }\n }\n } catch (e: any) {\n console.log(e);\n return this.failWith(request, e);\n }\n }\n}\n", "import DuckDBWasm from './duckdb-eh.js';\nimport { DuckDBBrowserBindings } from './bindings_browser_base';\nimport { DuckDBModule } from './duckdb_module';\nimport { DuckDBRuntime } from './runtime';\nimport { Logger } from '../log';\n\n/** DuckDB bindings for the browser */\nexport class DuckDB extends DuckDBBrowserBindings {\n /** Constructor */\n public constructor(\n logger: Logger,\n runtime: DuckDBRuntime,\n mainModuleURL: string,\n pthreadWorkerURL: string | null = null,\n ) {\n super(logger, runtime, mainModuleURL, pthreadWorkerURL);\n }\n\n /** Instantiate the bindings */\n protected instantiateImpl(moduleOverrides: Partial<DuckDBModule>): Promise<DuckDBModule> {\n return DuckDBWasm({\n ...moduleOverrides,\n instantiateWasm: this.instantiateWasm.bind(this),\n locateFile: this.locateFile.bind(this),\n });\n }\n}\n\nexport default DuckDB;\n", "import { DuckDBModule } from './duckdb_module';\nimport { DuckDBBindingsBase } from './bindings_base';\nimport { DuckDBRuntime } from './runtime';\nimport { Logger, LogLevel, LogTopic, LogOrigin, LogEvent } from '../log';\nimport { InstantiationProgress } from '.';\n\n/** DuckDB bindings for the browser */\nexport abstract class DuckDBBrowserBindings extends DuckDBBindingsBase {\n /** The path of the wasm module */\n protected readonly mainModuleURL: string;\n /** The path of the pthread worker script */\n protected readonly pthreadWorkerURL: string | null;\n\n /** Constructor */\n public constructor(logger: Logger, runtime: DuckDBRuntime, mainModuleURL: string, pthreadWorkerURL: string | null) {\n super(logger, runtime);\n this.mainModuleURL = mainModuleURL;\n this.pthreadWorkerURL = pthreadWorkerURL;\n }\n\n /** Locate a file */\n protected locateFile(path: string, prefix: string): string {\n if (path.endsWith('.wasm')) {\n return this.mainModuleURL;\n }\n if (path.endsWith('.worker.js')) {\n if (!this.pthreadWorkerURL) {\n throw new Error('Missing DuckDB worker URL!');\n }\n return this.pthreadWorkerURL!;\n }\n throw new Error(`WASM instantiation requested unexpected file: prefix=${prefix} path=${path}`);\n }\n\n /** Instantiate the wasm module */\n protected instantiateWasm(\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n imports: any,\n success: (instance: WebAssembly.Instance, module: WebAssembly.Module) => void,\n ): WebAssembly.Exports {\n // We rely on the following here:\n //\n // ...when a Request object is created using the Request.Request constructor,\n // the value of the mode property for that Request is set to cors.\n // [ref: MDN]\n //\n // Cloudflare throws when mode: 'cors' is set\n //\n globalThis.DUCKDB_RUNTIME = this._runtime;\n const handlers = this.onInstantiationProgress;\n\n // Does the browser support streaming instantiation?\n if (WebAssembly.instantiateStreaming) {\n // Does the browser support transform streams?\n if (typeof TransformStream === 'function') {\n const fetchWithProgress = async () => {\n // Try to determine file size\n const request = new Request(this.mainModuleURL);\n const response = await fetch(request);\n const contentLengthHdr = response.headers.get('content-length');\n const contentLength = contentLengthHdr ? parseInt(contentLengthHdr, 10) || 0 : 0;\n\n // Transform the stream\n const start = new Date();\n const progress: InstantiationProgress = {\n startedAt: start,\n updatedAt: start,\n bytesTotal: contentLength || 0,\n bytesLoaded: 0,\n };\n const tracker = {\n transform(chunk: any, ctrl: TransformStreamDefaultController) {\n progress.bytesLoaded += chunk.byteLength;\n const now = new Date();\n if (now.getTime() - progress.updatedAt.getTime() < 20) {\n progress.updatedAt = now;\n ctrl.enqueue(chunk);\n return;\n }\n for (const p of handlers) {\n p(progress);\n }\n ctrl.enqueue(chunk);\n },\n };\n const ts = new TransformStream(tracker);\n return new Response(response.body?.pipeThrough(ts), response);\n };\n // Instantiate streaming\n const response = fetchWithProgress();\n WebAssembly.instantiateStreaming(response, imports).then(output => {\n success(output.instance, output.module);\n });\n } else {\n console.warn('instantiating without progress handler since transform streams are unavailable');\n const request = new Request(this.mainModuleURL);\n WebAssembly.instantiateStreaming(fetch(request), imports).then(output => {\n success(output.instance, output.module);\n });\n }\n } else if (typeof XMLHttpRequest == 'function') {\n // Otherwise we fall back to XHRs\n const xhr = new XMLHttpRequest();\n const url = this.mainModuleURL;\n const start = new Date();\n const progress: InstantiationProgress = {\n startedAt: start,\n updatedAt: start,\n bytesTotal: 0,\n bytesLoaded: 0,\n };\n xhr.open('GET', url);\n xhr.responseType = 'arraybuffer';\n xhr.onerror = error => {\n this.logger.log({\n timestamp: new Date(),\n level: LogLevel.ERROR,\n origin: LogOrigin.BINDINGS,\n topic: LogTopic.INSTANTIATE,\n event: LogEvent.ERROR,\n value: 'Failed to load WASM: ' + error,\n });\n throw new Error(error.toString());\n };\n xhr.onprogress = e => {\n progress.bytesTotal = e.total;\n progress.bytesLoaded = e.loaded;\n const now = new Date();\n if (now.getTime() - progress.updatedAt.getTime() < 20) {\n progress.updatedAt = now;\n return;\n }\n for (const p of handlers) {\n p(progress);\n }\n };\n xhr.onload = () => {\n WebAssembly.instantiate(xhr.response, imports)\n .then(output => {\n success(output.instance, output.module);\n })\n .catch(error => {\n this.logger.log({\n timestamp: new Date(),\n level: LogLevel.ERROR,\n origin: LogOrigin.BINDINGS,\n topic: LogTopic.INSTANTIATE,\n event: LogEvent.ERROR,\n value: 'Failed to instantiate WASM: ' + error,\n });\n throw new Error(error);\n });\n };\n xhr.send();\n } else {\n console.warn('instantiating with manual fetch since streaming instantiation and xhrs are unavailable');\n const run = async () => {\n const request = new Request(this.mainModuleURL);\n const response = await fetch(request);\n const buffer = await response.arrayBuffer();\n WebAssembly.instantiate(buffer, imports).then(output => {\n success(output.instance, output.module);\n });\n };\n run();\n }\n return {};\n }\n\n /// Instantiation must be done by the browser variants\n protected abstract instantiateImpl(moduleOverrides: Partial<DuckDBModule>): Promise<DuckDBModule>;\n}\n", "import { S3Config } from '../bindings';\nimport { sha256 } from 'js-sha256';\n\nexport interface S3Params {\n url: string;\n query: string;\n host: string;\n region: string;\n service: string;\n method: string;\n accessKeyId: string;\n secretAccessKey: string;\n sessionToken: string;\n dateNow: string;\n datetimeNow: string;\n}\n\nexport interface S3PayloadParams {\n contentHash: string | null;\n contentType: string | null;\n}\n\nconst getHTTPHost = function (config: S3Config | undefined, url: string, bucket: string): string {\n if (config?.endpoint?.startsWith('http')) {\n // Endpoint is a full url, we append the bucket\n const httpHost = `${config?.endpoint}`;\n const offset = httpHost.indexOf('://') + 3;\n return httpHost.substring(offset);\n } else if (config?.endpoint) {\n // Endpoint is not a full url and the https://{bucket}.{domain} format will be used\n return `${bucket}.${config?.endpoint}`;\n } else {\n // Default aws s3 url\n return `${bucket}.s3.amazonaws.com`;\n }\n};\n\nexport function getS3Params(config: S3Config | undefined, url: string, method: string): S3Params {\n const parsedS3Url = parseS3Url(url);\n\n // when using S3 path-style access, the signed URL should also include the bucket name,\n // as it is present in the HTTP URL path.\n // See: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html#path-style-url-ex\n let path = parsedS3Url.path;\n if (isPathStyleAccess(config)) {\n path = `/${parsedS3Url.bucket}${path}`;\n }\n return {\n url: path,\n query: '',\n host: getHTTPHost(config, url, parsedS3Url.bucket),\n region: config?.region ?? '',\n service: 's3',\n method: method,\n accessKeyId: config?.accessKeyId ?? '',\n secretAccessKey: config?.secretAccessKey ?? '',\n sessionToken: config?.sessionToken ?? '',\n dateNow: new Date().toISOString().replace(/-/g, '').split('T')[0],\n datetimeNow: new Date().toISOString().replace(/-/g, '').replace(/:/g, '').split('.')[0] + 'Z',\n };\n}\n\nexport function uriEncode(input: string, encode_slash = false) {\n // https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html\n\n const hexDigit = '0123456789ABCDEF';\n let result = '';\n\n for (let i = 0; i < input.length; i++) {\n const ch: string = input[i];\n\n if (\n (ch >= 'A' && ch <= 'Z') ||\n (ch >= 'a' && ch <= 'z') ||\n (ch >= '0' && ch <= '9') ||\n ch == '_' ||\n ch == '-' ||\n ch == '~' ||\n ch == '.'\n ) {\n result += ch;\n } else if (ch == '/') {\n if (encode_slash) {\n result += '%2F';\n } else {\n result += ch;\n }\n } else {\n result += '%';\n result += hexDigit[ch.charCodeAt(0) >> 4];\n result += hexDigit[ch.charCodeAt(0) & 15];\n }\n }\n return result;\n}\n\nexport function createS3Headers(params: S3Params, payloadParams: S3PayloadParams | null = null): Map<string, string> {\n // this is the sha256 of the empty string, its useful since we have no payload for GET requests\n const payloadHash =\n payloadParams?.contentHash ?? 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855';\n\n const res = new Map<string, string>();\n // res.set(\"host\", params.host)\n res.set('x-amz-date', params.datetimeNow);\n res.set('x-amz-content-sha256', payloadHash);\n\n if (params.sessionToken) {\n res.set('x-amz-security-token', params.sessionToken);\n }\n\n // construct string to sign\n let signedHeaders = '';\n if (payloadParams?.contentType) {\n signedHeaders += 'content-type;';\n }\n signedHeaders += 'host;x-amz-content-sha256;x-amz-date';\n if (params.sessionToken) {\n signedHeaders += ';x-amz-security-token';\n }\n\n let canonicalRequest = params.method + '\\n' + uriEncode(params.url) + '\\n' + params.query;\n if (payloadParams?.contentType) {\n canonicalRequest += '\\ncontent-type:' + payloadParams?.contentType;\n }\n canonicalRequest +=\n '\\nhost:' + params.host + '\\nx-amz-content-sha256:' + payloadHash + '\\nx-amz-date:' + params.datetimeNow;\n if (params.sessionToken && params.sessionToken.length > 0) {\n canonicalRequest += '\\nx-amz-security-token:' + params.sessionToken;\n }\n\n canonicalRequest += '\\n\\n' + signedHeaders + '\\n' + payloadHash;\n const canonicalRequestHashStr = sha256(canonicalRequest);\n\n const stringToSign =\n 'AWS4-HMAC-SHA256\\n' +\n params.datetimeNow +\n '\\n' +\n params.dateNow +\n '/' +\n params.region +\n '/' +\n params.service +\n '/aws4_request\\n' +\n canonicalRequestHashStr;\n\n // ts-ignore's because library can accept array buffer as key, but TS arg is incorrect\n const signKey = 'AWS4' + params.secretAccessKey;\n const kDate = sha256.hmac.arrayBuffer(signKey, params.dateNow);\n\n // Note, js-sha256 has a bug in the TS interface that only supports strings as keys, while we need a bytearray\n // as key. PR is open but unmerged: https://github.com/emn178/js-sha256/pull/25\n // eslint-disable-next-line\n // @ts-ignore\n const kRegion = sha256.hmac.arrayBuffer(kDate, params.region);\n // eslint-disable-next-line\n // @ts-ignore\n const kService = sha256.hmac.arrayBuffer(kRegion, params.service);\n // eslint-disable-next-line\n // @ts-ignore\n const signingKey = sha256.hmac.arrayBuffer(kService, 'aws4_request');\n // eslint-disable-next-line\n // @ts-ignore\n const signature = sha256.hmac(signingKey, stringToSign);\n\n res.set(\n 'Authorization',\n 'AWS4-HMAC-SHA256 Credential=' +\n params.accessKeyId +\n '/' +\n params.dateNow +\n '/' +\n params.region +\n '/' +\n params.service +\n '/aws4_request, SignedHeaders=' +\n signedHeaders +\n ', Signature=' +\n signature,\n );\n\n return res;\n}\n\nconst createS3HeadersFromS3Config = function (\n config: S3Config | undefined,\n url: string,\n method: string,\n contentType: string | null = null,\n payload: Uint8Array | null = null,\n): Map<string, string> {\n const params = getS3Params(config, url, method);\n const payloadParams = {\n contentType: contentType,\n contentHash: payload ? sha256.hex(payload) : null,\n } as S3PayloadParams;\n return createS3Headers(params, payloadParams);\n};\n\nexport function addS3Headers(\n xhr: XMLHttpRequest,\n config: S3Config | undefined,\n url: string,\n method: string,\n contentType: string | null = null,\n payload: Uint8Array | null = null,\n) {\n if (config?.accessKeyId || config?.sessionToken) {\n const headers = createS3HeadersFromS3Config(config, url, method, contentType, payload);\n headers.forEach((value: string, header: string) => {\n xhr.setRequestHeader(header, value);\n });\n\n if (contentType) {\n xhr.setRequestHeader('content-type', contentType);\n }\n }\n}\n\nexport function parseS3Url(url: string): { bucket: string; path: string } {\n if (url.indexOf('s3://') != 0) {\n throw new Error('URL needs to start with s3://');\n }\n const slashPos = url.indexOf('/', 5);\n\n if (slashPos == -1) {\n throw new Error(\"URL needs to contain a '/' after the host\");\n }\n\n const bucket = url.substring(5, slashPos);\n if (!bucket) {\n throw new Error('URL needs to contain a bucket name');\n }\n const path = url.substring(slashPos);\n if (!path) {\n throw new Error('URL needs to contain key');\n }\n\n return { bucket: bucket, path: path };\n}\n\nfunction isPathStyleAccess(config: S3Config | undefined): boolean {\n if (config?.endpoint?.startsWith('http')) {\n return true;\n }\n return false;\n}\n\nexport function getHTTPUrl(config: S3Config | undefined, url: string): string {\n const parsedUrl = parseS3Url(url);\n if (isPathStyleAccess(config)) {\n // Endpoint is a full url, we append the bucket\n return `${config?.endpoint}/${parsedUrl.bucket}` + parsedUrl.path;\n }\n return 'https://' + getHTTPHost(config, url, parsedUrl.bucket) + parsedUrl.path;\n}\n", "import { StatusCode } from '../status';\nimport { WorkerResponseType } from '../parallel/worker_request';\nimport { addS3Headers, getHTTPUrl } from '../utils';\n\nimport {\n callSRet,\n dropResponseBuffers,\n DuckDBDataProtocol,\n DuckDBFileInfo,\n DuckDBGlobalFileInfo,\n DuckDBRuntime,\n failWith,\n FileFlags,\n readString,\n PreparedDBFileHandle,\n} from './runtime';\nimport { DuckDBModule } from './duckdb_module';\nimport * as udf from './udf_runtime';\n\nconst OPFS_PREFIX_LEN = 'opfs://'.length;\nconst PATH_SEP_REGEX = /\\/|\\\\/;\n\nexport const BROWSER_RUNTIME: DuckDBRuntime & {\n _files: Map<string, any>;\n _fileInfoCache: Map<number, DuckDBFileInfo>;\n _globalFileInfo: DuckDBGlobalFileInfo | null;\n _preparedHandles: Record<string, FileSystemSyncAccessHandle>;\n _opfsRoot: FileSystemDirectoryHandle | null;\n\n getFileInfo(mod: DuckDBModule, fileId: number): DuckDBFileInfo | null;\n getGlobalFileInfo(mod: DuckDBModule): DuckDBGlobalFileInfo | null;\n assignOPFSRoot(): Promise<void>;\n} = {\n _files: new Map<string, any>(),\n _fileInfoCache: new Map<number, DuckDBFileInfo>(),\n _udfFunctions: new Map(),\n _globalFileInfo: null,\n _preparedHandles: {} as any,\n _opfsRoot: null,\n\n getFileInfo(mod: DuckDBModule, fileId: number): DuckDBFileInfo | null {\n try {\n const cached = BROWSER_RUNTIME._fileInfoCache.get(fileId);\n const [s, d, n] = callSRet(\n mod,\n 'duckdb_web_fs_get_file_info_by_id',\n ['number', 'number'],\n [fileId, cached?.cacheEpoch || 0],\n );\n if (s !== StatusCode.SUCCESS) {\n return null;\n } else if (n === 0) {\n // Epoch is up to date\n return cached!;\n }\n const infoStr = readString(mod, d, n);\n dropResponseBuffers(mod);\n try {\n const info = JSON.parse(infoStr);\n if (info == null) {\n return null;\n }\n const file = { ...info, blob: null } as DuckDBFileInfo;\n BROWSER_RUNTIME._fileInfoCache.set(fileId, file);\n if (!BROWSER_RUNTIME._files.has(file.fileName) && BROWSER_RUNTIME._preparedHandles[file.fileName]) {\n BROWSER_RUNTIME._files.set(file.fileName, BROWSER_RUNTIME._preparedHandles[file.fileName]);\n delete BROWSER_RUNTIME._preparedHandles[file.fileName];\n }\n return file;\n } catch (error) {\n console.warn(error);\n return null;\n }\n } catch (e: any) {\n console.log(e);\n return null;\n }\n },\n\n getGlobalFileInfo(mod: DuckDBModule): DuckDBGlobalFileInfo | null {\n try {\n const [s, d, n] = callSRet(\n mod,\n 'duckdb_web_get_global_file_info',\n ['number'],\n [BROWSER_RUNTIME._globalFileInfo?.cacheEpoch || 0],\n );\n if (s !== StatusCode.SUCCESS) {\n return null;\n } else if (n === 0) {\n // Epoch is up to date\n return BROWSER_RUNTIME._globalFileInfo!;\n }\n const infoStr = readString(mod, d, n);\n dropResponseBuffers(mod);\n const info = JSON.parse(infoStr);\n if (info == null) {\n return null;\n }\n BROWSER_RUNTIME._globalFileInfo = { ...info, blob: null } as DuckDBGlobalFileInfo;\n\n return BROWSER_RUNTIME._globalFileInfo;\n } catch (e: any) {\n console.log(e);\n return null;\n }\n },\n async assignOPFSRoot(): Promise<void> {\n if (!BROWSER_RUNTIME._opfsRoot) {\n BROWSER_RUNTIME._opfsRoot = await navigator.storage.getDirectory();\n }\n },\n /** Prepare a file handle that could only be acquired aschronously */\n async prepareFileHandles(filePaths: string[], protocol: DuckDBDataProtocol): Promise<PreparedDBFileHandle[]> {\n if (protocol === DuckDBDataProtocol.BROWSER_FSACCESS) {\n await BROWSER_RUNTIME.assignOPFSRoot();\n const prepare = async (path: string): Promise<PreparedDBFileHandle> => {\n if (BROWSER_RUNTIME._files.has(path)) {\n return {\n path,\n handle: BROWSER_RUNTIME._files.get(path),\n fromCached: true,\n };\n }\n const opfsRoot = BROWSER_RUNTIME._opfsRoot!;\n let dirHandle: FileSystemDirectoryHandle = opfsRoot;\n // check if mkdir -p is needed\n const opfsPath = path.slice(OPFS_PREFIX_LEN);\n let fileName = opfsPath;\n if (PATH_SEP_REGEX.test(opfsPath)) {\n const folders = opfsPath.split(PATH_SEP_REGEX);\n if (folders.length === 0) {\n throw new Error(`Invalid path ${opfsPath}`);\n }\n fileName = folders[folders.length - 1];\n if (!fileName) {\n throw new Error(`Invalid path ${opfsPath}. File Not Found.`);\n }\n folders.pop();\n for (const folder of folders) {\n dirHandle = await dirHandle.getDirectoryHandle(folder, { create: true });\n }\n }\n const fileHandle = await dirHandle.getFileHandle(fileName, { create: false }).catch(e => {\n if (e?.name === 'NotFoundError') {\n console.debug(`File ${path} does not exists yet, creating...`);\n return dirHandle.getFileHandle(fileName, { create: true });\n }\n throw e;\n });\n try {\n const handle = await fileHandle.createSyncAccessHandle();\n BROWSER_RUNTIME._preparedHandles[path] = handle;\n return {\n path,\n handle,\n fromCached: false,\n };\n } catch (e: any) {\n throw new Error(e.message + ':' + name);\n }\n };\n const result: PreparedDBFileHandle[] = [];\n for (const filePath of filePaths) {\n const res = await prepare(filePath);\n result.push(res);\n }\n return result;\n }\n throw new Error(`Unsupported protocol ${protocol} for paths ${filePaths} with protocol ${protocol}`);\n },\n /** Prepare a file handle that could only be acquired aschronously */\n async prepareDBFileHandle(dbPath: string, protocol: DuckDBDataProtocol): Promise<PreparedDBFileHandle[]> {\n if (protocol === DuckDBDataProtocol.BROWSER_FSACCESS && this.prepareFileHandles) {\n const filePaths = [dbPath, `${dbPath}.wal`];\n return this.prepareFileHandles(filePaths, protocol);\n }\n throw new Error(`Unsupported protocol ${protocol} for path ${dbPath} with protocol ${protocol}`);\n },\n\n testPlatformFeature: (_mod: DuckDBModule, feature: number): boolean => {\n switch (feature) {\n case 1:\n return typeof BigInt64Array !== 'undefined';\n default:\n console.warn(`test for unknown feature: ${feature}`);\n return false;\n }\n },\n\n getDefaultDataProtocol(mod: DuckDBModule): number {\n return DuckDBDataProtocol.BROWSER_FILEREADER;\n },\n\n openFile: (mod: DuckDBModule, fileId: number, flags: FileFlags): number => {\n try {\n BROWSER_RUNTIME._fileInfoCache.delete(fileId);\n const file = BROWSER_RUNTIME.getFileInfo(mod, fileId);\n switch (file?.dataProtocol) {\n case DuckDBDataProtocol.HTTP:\n case DuckDBDataProtocol.S3: {\n if (flags & FileFlags.FILE_FLAGS_READ && flags & FileFlags.FILE_FLAGS_WRITE) {\n throw new Error(\n `Opening file ${file.fileName} failed: cannot open file with both read and write flags set`,\n );\n } else if (flags & FileFlags.FILE_FLAGS_APPEND) {\n throw new Error(\n `Opening file ${file.fileName} failed: appending to HTTP/S3 files is not supported`,\n );\n } else if (flags & FileFlags.FILE_FLAGS_WRITE) {\n // We send a HEAD request to try to determine if we can write to data_url\n const xhr = new XMLHttpRequest();\n if (file.dataProtocol == DuckDBDataProtocol.S3) {\n xhr.open('HEAD', getHTTPUrl(file.s3Config, file.dataUrl!), false);\n addS3Headers(xhr, file.s3Config, file.dataUrl!, 'HEAD');\n } else {\n xhr.open('HEAD', file.dataUrl!, false);\n }\n xhr.send(null);\n\n // Expect 200 for existing files that we will overwrite or 404 for non-existent files can be created\n if (xhr.status != 200 && xhr.status != 404) {\n throw new Error(\n `Opening file ${file.fileName} failed: Unexpected return status from server (${xhr.status})`,\n );\n } else if (\n xhr.status == 404 &&\n !(flags & FileFlags.FILE_FLAGS_FILE_CREATE || flags & FileFlags.FILE_FLAGS_FILE_CREATE_NEW)\n ) {\n throw new Error(\n `Opening file ${file.fileName} failed: Cannot write to non-existent file without FILE_FLAGS_FILE_CREATE or FILE_FLAGS_FILE_CREATE_NEW flag.`,\n );\n }\n // Return an empty buffer that can be used to buffer the writes to this s3/http file\n const data = mod._malloc(1);\n const src = new Uint8Array();\n mod.HEAPU8.set(src, data);\n const result = mod._malloc(3 * 8);\n mod.HEAPF64[(result >>> 3) + 0] = 1;\n mod.HEAPF64[(result >>> 3) + 1] = data;\n mod.HEAPF64[(result >>> 3) + 2] = new Date().getTime() / 1000;\n return result;\n } else if ((flags & FileFlags.FILE_FLAGS_READ) == 0) {\n throw new Error(`Opening file ${file.fileName} failed: unsupported file flags: ${flags}`);\n }\n\n // Supports ranges?\n let contentLength = null;\n let error: any | null = null;\n if (!file.forceFullHttpReads && (file.reliableHeadRequests || !file.allowFullHttpReads)) {\n try {\n // Send a dummy HEAD request with range protocol\n // -> good IFF status is 206 and contentLenght is present\n const xhr = new XMLHttpRequest();\n if (file.dataProtocol == DuckDBDataProtocol.S3) {\n xhr.open('HEAD', getHTTPUrl(file.s3Config, file.dataUrl!), false);\n addS3Headers(xhr, file.s3Config, file.dataUrl!, 'HEAD');\n } else {\n xhr.open('HEAD', file.dataUrl!, false);\n }\n xhr.setRequestHeader('Range', `bytes=0-`);\n xhr.send(null);\n\n // Supports range requests\n contentLength = null;\n try { contentLength = xhr.getResponseHeader('Content-Length'); } catch (e: any) {console.warn(`Failed to get Content-Length on request`);}\n if (contentLength !== null && xhr.status == 206) {\n const result = mod._malloc(3 * 8);\n mod.HEAPF64[(result >>> 3) + 0] = +contentLength;\n mod.HEAPF64[(result >>> 3) + 1] = 0;\n let modification_time = 0;\n try { modification_time = new Date(xhr.getResponseHeader('Last-Modified')??\"\").getTime() / 1000; } catch (e: any) {console.warn(`Failed to get Last-Modified on request`);}\n mod.HEAPF64[(result >>> 3) + 2] = +modification_time;\n return result;\n }\n } catch (e: any) {\n error = e;\n console.warn(`HEAD request with range header failed: ${e}`);\n }\n }\n\n // Try to fallback to full read?\n if (file.allowFullHttpReads) {\n if (!file.forceFullHttpReads) {\n // 2. Send a dummy GET range request querying the first byte of the file\n // -> good IFF status is 206 and contentLenght2 is 1\n // -> otherwise, iff 200 and contentLenght2 == contentLenght\n // we just downloaded the file, save it and move further\n const xhr = new XMLHttpRequest();\n if (file.dataProtocol == DuckDBDataProtocol.S3) {\n xhr.open('GET', getHTTPUrl(file.s3Config, file.dataUrl!), false);\n addS3Headers(xhr, file.s3Config, file.dataUrl!, 'GET');\n } else {\n xhr.open('GET', file.dataUrl!, false);\n }\n xhr.responseType = 'arraybuffer';\n xhr.setRequestHeader('Range', `bytes=0-0`);\n xhr.send(null);\n let contentRange: string | null | undefined = null;\n try { contentRange = xhr.getResponseHeader('Content-Range')?.split('/')[1]; } catch (e: any) {console.warn(`Failed to get Content-Range on request`);}\n let contentLength2: string | null = null;\n try { contentLength2 = xhr.getResponseHeader('Content-Length'); } catch (e: any) {console.warn(`Failed to get Content-Length on request`);}\n\n let presumedLength = null;\n if (contentRange !== undefined) {\n presumedLength = contentRange;\n } else if (!file.reliableHeadRequests) {\n // Send a dummy HEAD request with range protocol\n // -> good IFF status is 206 and contentLenght is present\n const head = new XMLHttpRequest();\n if (file.dataProtocol == DuckDBDataProtocol.S3) {\n head.open('HEAD', getHTTPUrl(file.s3Config, file.dataUrl!), false);\n addS3Headers(head, file.s3Config, file.dataUrl!, 'HEAD');\n } else {\n head.open('HEAD', file.dataUrl!, false);\n }\n head.setRequestHeader('Range', `bytes=0-`);\n head.send(null);\n\n // Supports range requests\n contentLength = null;\n try { contentLength = head.getResponseHeader('Content-Length'); } catch (e: any) {console.warn(`Failed to get Content-Length on request`);}\n if (contentLength !== null && +contentLength > 1) {\n presumedLength = contentLength;\n }\n }\n\n if (\n xhr.status == 206 &&\n contentLength2 !== null &&\n +contentLength2 == 1 &&\n presumedLength !== null\n ) {\n const result = mod._malloc(3 * 8);\n mod.HEAPF64[(result >>> 3) + 0] = +presumedLength;\n mod.HEAPF64[(result >>> 3) + 1] = 0;\n let modification_time = 0;\n try { modification_time = new Date(xhr.getResponseHeader('Last-Modified')??\"\").getTime() / 1000; } catch (e: any) {console.warn(`Failed to get Last-Modified on request`);}\n mod.HEAPF64[(result >>> 3) + 2] = +modification_time;\n return result;\n }\n if (\n xhr.status == 200 &&\n contentLength2 !== null &&\n contentLength !== null &&\n +contentLength2 == +contentLength\n ) {\n console.warn(`fall back to full HTTP read for: ${file.dataUrl}`);\n const data = mod._malloc(xhr.response.byteLength);\n const src = new Uint8Array(xhr.response, 0, xhr.response.byteLength);\n mod.HEAPU8.set(src, data);\n const result = mod._malloc(3 * 8);\n mod.HEAPF64[(result >>> 3) + 0] = xhr.response.byteLength;\n mod.HEAPF64[(result >>> 3) + 1] = data;\n let modification_time = 0;\n try { modification_time = new Date(xhr.getResponseHeader('Last-Modified')??\"\").getTime() / 1000; } catch (e: any) {console.warn(`Failed to get Last-Modified on request`);}\n mod.HEAPF64[(result >>> 3) + 2] = +modification_time;\n return result;\n }\n console.warn(`falling back to full HTTP read for: ${file.dataUrl}`);\n }\n // 3. Send non-range request\n const xhr = new XMLHttpRequest();\n if (file.dataProtocol == DuckDBDataProtocol.S3) {\n xhr.open('GET', getHTTPUrl(file.s3Config, file.dataUrl!), false);\n addS3Headers(xhr, file.s3Config, file.dataUrl!, 'GET');\n } else {\n xhr.open('GET', file.dataUrl!, false);\n }\n xhr.responseType = 'arraybuffer';\n xhr.send(null);\n\n // Return buffer\n if (xhr.status == 200) {\n const data = mod._malloc(xhr.response.byteLength);\n const src = new Uint8Array(xhr.response, 0, xhr.response.byteLength);\n mod.HEAPU8.set(src, data);\n const result = mod._malloc(3 * 8);\n mod.HEAPF64[(result >>> 3) + 0] = xhr.response.byteLength;\n mod.HEAPF64[(result >>> 3) + 1] = data;\n let modification_time = 0;\n try { modification_time = new Date(xhr.getResponseHeader('Last-Modified')??\"\").getTime() / 1000; } catch (e: any) {console.warn(`Failed to get Last-Modified on request`);}\n mod.HEAPF64[(result >>> 3) + 2] = +modification_time;\n return result;\n }\n }\n\n // Raise error?\n if (error != null) {\n throw new Error(`Reading file ${file.fileName} failed with error: ${error}`);\n }\n return 0;\n }\n // File reader File\n case DuckDBDataProtocol.BROWSER_FILEREADER: {\n const handle = BROWSER_RUNTIME._files?.get(file.fileName);\n if (handle) {\n const result = mod._malloc(3 * 8);\n mod.HEAPF64[(result >>> 3) + 0] = handle.size;\n mod.HEAPF64[(result >>> 3) + 1] = 0;\n mod.HEAPF64[(result >>> 3) + 2] = 0;\n return result;\n }\n\n // Depending on file flags, return nullptr\n if (flags & FileFlags.FILE_FLAGS_NULL_IF_NOT_EXISTS) {\n return 0;\n }\n\n // Fall back to empty buffered file in the browser\n console.warn(`Buffering missing file: ${file.fileName}`);\n const result = mod._malloc(3 * 8);\n const buffer = mod._malloc(1); // malloc(0) is allowed to return a nullptr\n mod.HEAPF64[(result >>> 3) + 0] = 1;\n mod.HEAPF64[(result >>> 3) + 1] = buffer;\n mod.HEAPF64[(result >>> 3) + 2] = 0;\n return result;\n }\n case DuckDBDataProtocol.BROWSER_FSACCESS: {\n const handle: FileSystemSyncAccessHandle = BROWSER_RUNTIME._files?.get(file.fileName);\n if (!handle) {\n throw new Error(`No OPFS access handle registered with name: ${file.fileName}`);\n }\n if (flags & FileFlags.FILE_FLAGS_FILE_CREATE_NEW) {\n handle.truncate(0);\n }\n const result = mod._malloc(3 * 8);\n const fileSize = handle.getSize();\n mod.HEAPF64[(result >>> 3) + 0] = fileSize;\n mod.HEAPF64[(result >>> 3) + 1] = 0;\n mod.HEAPF64[(result >>> 3) + 2] = 0;\n return result;\n }\n }\n } catch (e: any) {\n // TODO (samansmink): this path causes the WASM code to hang\n console.error(e.toString());\n failWith(mod, e.toString());\n }\n return 0;\n },\n glob: (mod: DuckDBModule, pathPtr: number, pathLen: number) => {\n try {\n const path = readString(mod, pathPtr, pathLen);\n // Starts with http?\n // Try a HTTP HEAD request\n if (path.startsWith('http') || path.startsWith('s3://')) {\n // Send a dummy range request querying the first byte of the file\n const xhr = new XMLHttpRequest();\n if (path.startsWith('s3://')) {\n const globalInfo = BROWSER_RUNTIME.getGlobalFileInfo(mod);\n xhr.open('HEAD', getHTTPUrl(globalInfo?.s3Config, path), false);\n addS3Headers(xhr, globalInfo?.s3Config, path, 'HEAD');\n } else {\n xhr.open('HEAD', path, false);\n }\n xhr.send(null);\n if (xhr.status != 200 && xhr.status !== 206) {\n // Pre-signed resources on S3 in common configurations fail on any HEAD request\n // https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/s3-example-presigned-urls.html\n // so we need (if enabled) to bump to a ranged GET\n if (!BROWSER_RUNTIME.getGlobalFileInfo(mod)?.allowFullHttpReads) {\n console.log(`HEAD request failed: ${path}, with full http reads are disabled`);\n return 0;\n }\n const xhr2 = new XMLHttpRequest();\n if (path.startsWith('s3://')) {\n const globalInfo = BROWSER_RUNTIME.getGlobalFileInfo(mod);\n xhr2.open('GET', getHTTPUrl(globalInfo?.s3Config, path), false);\n addS3Headers(xhr2, globalInfo?.s3Config, path, 'HEAD');\n } else {\n xhr2.open('GET', path, false);\n }\n xhr2.setRequestHeader('Range', `bytes=0-0`);\n xhr2.send(null);\n if (xhr2.status != 200 && xhr2.status !== 206) {\n console.log(`HEAD and GET requests failed: ${path}`);\n return 0;\n }\n let contentLength = null;\n try { contentLength = xhr2.getResponseHeader('Content-Length'); } catch (e: any) {console.warn(`Failed to get Content-Length on request`);}\n if (contentLength && +contentLength > 1) {\n console.warn(\n `Range request for ${path} did not return a partial response: ${xhr2.status} \"${xhr2.statusText}\"`,\n );\n }\n }\n mod.ccall('duckdb_web_fs_glob_add_path', null, ['string'], [path]);\n } else {\n for (const [filePath] of BROWSER_RUNTIME._files.entries() || []) {\n if (filePath.startsWith(path)) {\n mod.ccall('duckdb_web_fs_glob_add_path', null, ['string'], [filePath]);\n }\n }\n }\n } catch (e: any) {\n console.log(e);\n failWith(mod, e.toString());\n return 0;\n }\n },\n checkFile: (mod: DuckDBModule, pathPtr: number, pathLen: number): boolean => {\n try {\n const path = readString(mod, pathPtr, pathLen);\n // Starts with http or S3?\n // Try a HTTP HEAD request\n if (path.startsWith('http') || path.startsWith('s3://')) {\n // Send a dummy range request querying the first byte of the file\n const xhr = new XMLHttpRequest();\n if (path.startsWith('s3://')) {\n const globalInfo = BROWSER_RUNTIME.getGlobalFileInfo(mod);\n xhr.open('HEAD', getHTTPUrl(globalInfo?.s3Config, path), false);\n addS3Headers(xhr, globalInfo?.s3Config, path, 'HEAD');\n } else {\n xhr.open('HEAD', path, false);\n }\n xhr.send(null);\n return xhr.status == 206 || xhr.status == 200;\n } else {\n return BROWSER_RUNTIME._files.has(path);\n }\n } catch (e: any) {\n console.log(e);\n return false;\n }\n return false;\n },\n syncFile: (_mod: DuckDBModule, _fileId: number) => { },\n closeFile: (mod: DuckDBModule, fileId: number) => {\n const file = BROWSER_RUNTIME.getFileInfo(mod, fileId);\n BROWSER_RUNTIME._fileInfoCache.delete(fileId);\n try {\n switch (file?.dataProtocol) {\n case DuckDBDataProtocol.BUFFER:\n case DuckDBDataProtocol.HTTP:\n case DuckDBDataProtocol.S3:\n break;\n case DuckDBDataProtocol.NODE_FS:\n case DuckDBDataProtocol.BROWSER_FILEREADER:\n // XXX Remove from registry\n return;\n case DuckDBDataProtocol.BROWSER_FSACCESS: {\n const handle: FileSystemSyncAccessHandle = BROWSER_RUNTIME._files?.get(file.fileName);\n if (!handle) {\n throw new Error(`No OPFS access handle registered with name: ${file.fileName}`);\n }\n return handle.flush();\n }\n }\n } catch (e: any) {\n console.log(e);\n failWith(mod, e.toString());\n }\n },\n dropFile: (mod: DuckDBModule, fileNamePtr: number, fileNameLen: number) => {\n const fileName = readString(mod, fileNamePtr, fileNameLen);\n const handle: FileSystemSyncAccessHandle = BROWSER_RUNTIME._files?.get(fileName);\n if (handle) {\n BROWSER_RUNTIME._files.delete(fileName);\n if (handle instanceof FileSystemSyncAccessHandle) {\n try {\n handle.flush();\n handle.close();\n } catch (e: any) {\n throw new Error(`Cannot drop file with name: ${fileName}`);\n }\n }\n if (handle instanceof Blob) {\n // nothing\n }\n }\n },\n truncateFile: (mod: DuckDBModule, fileId: number, newSize: number) => {\n const file = BROWSER_RUNTIME.getFileInfo(mod, fileId);\n switch (file?.dataProtocol) {\n case DuckDBDataProtocol.HTTP:\n failWith(mod, `Cannot truncate a http file`);\n return;\n case DuckDBDataProtocol.S3:\n failWith(mod, `Cannot truncate an s3 file`);\n return;\n case DuckDBDataProtocol.BUFFER:\n case DuckDBDataProtocol.NODE_FS:\n case DuckDBDataProtocol.BROWSER_FILEREADER:\n failWith(mod, `truncateFile not implemented`);\n return;\n case DuckDBDataProtocol.BROWSER_FSACCESS: {\n const handle = BROWSER_RUNTIME._files?.get(file.fileName);\n if (!handle) {\n throw new Error(`No OPFS access handle registered with name: ${file.fileName}`);\n }\n return handle.truncate(newSize);\n }\n }\n return 0;\n },\n readFile(mod: DuckDBModule, fileId: number, buf: number, bytes: number, location: number) {\n if (bytes == 0) {\n // Be robust to empty reads\n return 0;\n }\n try {\n const file = BROWSER_RUNTIME.getFileInfo(mod, fileId);\n switch (file?.dataProtocol) {\n // File reading from BLOB or HTTP MUST be done with range requests.\n // We have to check in OPEN if such file supports range requests and upgrade to BUFFER if not.\n case DuckDBDataProtocol.HTTP:\n case DuckDBDataProtocol.S3: {\n if (!file.dataUrl) {\n throw new Error(`Missing data URL for file ${fileId}`);\n }\n try {\n const xhr = new XMLHttpRequest();\n if (file.dataProtocol == DuckDBDataProtocol.S3) {\n xhr.open('GET', getHTTPUrl(file?.s3Config, file.dataUrl), false);\n addS3Headers(xhr, file?.s3Config, file.dataUrl, 'GET');\n } else {\n xhr.open('GET', file.dataUrl, false);\n }\n xhr.responseType = 'arraybuffer';\n xhr.setRequestHeader('Range', `bytes=${location}-${location + bytes - 1}`);\n xhr.send(null);\n if (\n xhr.status == 206 /* Partial content */ ||\n (xhr.status == 200 && bytes == xhr.response.byteLength && location == 0)\n ) {\n const src = new Uint8Array(xhr.response, 0, Math.min(xhr.response.byteLength, bytes));\n mod.HEAPU8.set(src, buf);\n return src.byteLength;\n } else if (xhr.status == 200) {\n // TODO: here we are actually throwing away all non-relevant bytes, but this is still better than failing\n // proper solution would require notifying duckdb-wasm cache, while we are piggybackign on browser cache\n console.warn(\n `Range request for ${file.dataUrl} did not return a partial response: ${xhr.status} \"${xhr.statusText}\"`,\n );\n const src = new Uint8Array(\n xhr.response,\n location,\n Math.min(xhr.response.byteLength - location, bytes),\n );\n mod.HEAPU8.set(src, buf);\n return src.byteLength;\n } else {\n throw new Error(\n `Range request for ${file.dataUrl} did returned non-success status: ${xhr.status} \"${xhr.statusText}\"`,\n );\n }\n } catch (e) {\n console.log(e);\n throw new Error(`Range request for ${file.dataUrl} failed with error: ${e}\"`);\n }\n }\n case DuckDBDataProtocol.BROWSER_FILEREADER: {\n const handle = BROWSER_RUNTIME._files?.get(file.fileName);\n if (!handle) {\n throw new Error(`No HTML5 file registered with name: ${file.fileName}`);\n }\n const sliced = handle!.slice(location, location + bytes);\n const data = new Uint8Array(new FileReaderSync().readAsArrayBuffer(sliced));\n mod.HEAPU8.set(data, buf);\n return data.byteLength;\n }\n case DuckDBDataProtocol.BROWSER_FSACCESS: {\n const handle: FileSystemSyncAccessHandle = BROWSER_RUNTIME._files.get(file.fileName);\n if (!handle) {\n throw new Error(`No OPFS access handle registered with name: ${file.fileName}`);\n }\n const out = mod.HEAPU8.subarray(buf, buf + bytes);\n return handle.read(out, { at: location });\n }\n }\n return 0;\n } catch (e: any) {\n console.log(e);\n failWith(mod, e.toString());\n return 0;\n }\n },\n writeFile: (mod: DuckDBModule, fileId: number, buf: number, bytes: number, location: number) => {\n const file = BROWSER_RUNTIME.getFileInfo(mod, fileId);\n switch (file?.dataProtocol) {\n case DuckDBDataProtocol.HTTP:\n failWith(mod, 'Cannot write to HTTP file');\n return 0;\n case DuckDBDataProtocol.S3: {\n const buffer = mod.HEAPU8.subarray(buf, buf + bytes);\n const xhr = new XMLHttpRequest();\n xhr.open('PUT', getHTTPUrl(file?.s3Config, file.dataUrl!), false);\n addS3Headers(xhr, file?.s3Config, file.dataUrl!, 'PUT', '', buffer);\n xhr.send(buffer);\n if (xhr.status !== 200) {\n failWith(mod, 'Failed writing file: HTTP ' + xhr.status);\n return 0;\n }\n return bytes;\n }\n case DuckDBDataProtocol.BROWSER_FILEREADER:\n failWith(mod, 'cannot write using the html5 file reader api');\n return 0;\n case DuckDBDataProtocol.BROWSER_FSACCESS: {\n const handle: FileSystemSyncAccessHandle = BROWSER_RUNTIME._files?.get(file.fileName);\n if (!handle) {\n throw new Error(`No OPFS access handle registered with name: ${file.fileName}`);\n }\n const input = mod.HEAPU8.subarray(buf, buf + bytes);\n return handle.write(input, { at: location });\n }\n }\n return 0;\n },\n getLastFileModificationTime: (mod: DuckDBModule, fileId: number) => {\n const file = BROWSER_RUNTIME.getFileInfo(mod, fileId);\n switch (file?.dataProtocol) {\n case DuckDBDataProtocol.BROWSER_FILEREADER: {\n const handle = BROWSER_RUNTIME._files?.get(file.fileName);\n if (!handle) {\n throw Error(`No handle available for file: ${file.fileName}`);\n }\n return 0;\n }\n\n case DuckDBDataProtocol.HTTP:\n case DuckDBDataProtocol.S3:\n // getTime() returns milliseconds, we need seconds\n return new Date().getTime() / 1000;\n }\n return 0;\n },\n progressUpdate: (done: number, percentage: number, repeat: number): void => {\n if (postMessage) {\n postMessage({\n requestId: 0,\n type: WorkerResponseType.PROGRESS_UPDATE,\n data: { status: done ? 'completed' : 'in-progress', percentage: percentage, repetitions: repeat },\n });\n }\n },\n checkDirectory: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number) => {\n return false;\n },\n createDirectory: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number) => {\n },\n removeDirectory: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number) => {\n },\n listDirectoryEntries: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number) => {\n return false;\n },\n moveFile: (mod: DuckDBModule, fromPtr: number, fromLen: number, toPtr: number, toLen: number) => {\n const from = readString(mod, fromPtr, fromLen);\n const to = readString(mod, toPtr, toLen);\n const handle = BROWSER_RUNTIME._files?.get(from);\n if (handle !== undefined) {\n BROWSER_RUNTIME._files.delete(handle);\n BROWSER_RUNTIME._files.set(to, handle);\n }\n for (const [key, value] of BROWSER_RUNTIME._fileInfoCache?.entries() || []) {\n if (value.dataUrl == from) {\n BROWSER_RUNTIME._fileInfoCache.delete(key);\n break;\n }\n }\n return true;\n },\n removeFile: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number) => { },\n callScalarUDF: (\n mod: DuckDBModule,\n response: number,\n funcId: number,\n descPtr: number,\n descSize: number,\n ptrsPtr: number,\n ptrsSize: number,\n ): void => {\n udf.callScalarUDF(BROWSER_RUNTIME, mod, response, funcId, descPtr, descSize, ptrsPtr, ptrsSize);\n },\n};\n\nexport default BROWSER_RUNTIME;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["require_duckdb_eh", "__commonJSMin", "exports", "module", "DuckDB", "_a", "_scriptName", "moduleArg", "moduleRtn", "Module", "readyPromiseResolve", "readyPromiseReject", "readyPromise", "resolve", "reject", "ENVIRONMENT_IS_WEB", "ENVIRONMENT_IS_WORKER", "ENVIRONMENT_IS_NODE", "moduleOverrides", "arguments_", "thisProgram", "quit_", "status", "toThrow", "scriptDirectory", "locateFile", "path", "readAsync", "readBinary", "fs", "nodePath", "filename", "isFileURI", "ret", "binary", "url", "xhr", "response", "out", "err", "wasmBinary", "wasmMemory", "ABORT", "EXITSTATUS", "assert", "condition", "text", "abort", "HEAP8", "HEAPU8", "HEAP16", "HEAPU16", "HEAP32", "HEAPU32", "HEAPF32", "HEAP64", "HEAPU64", "HEAPF64", "runtimeInitialized", "updateMemoryViews", "b", "preRun", "addOnPreRun", "callRuntimeCallbacks", "onPreRuns", "initRuntime", "wasmExports", "preMain", "postRun", "addOnPostRun", "onPostRuns", "runDependencies", "dependenciesFulfilled", "addRunDependency", "id", "removeRunDependency", "callback", "what", "e", "wasmBinaryFile", "findWasmBinary", "getBinarySync", "file", "getWasmBinary", "binaryFile", "instantiateArrayBuffer", "imports", "instance", "reason", "instantiateAsync", "instantiationResult", "getWasmImports", "wasmImports", "createWasm", "receiveInstance", "applySignatureConversions", "receiveInstantiationResult", "result", "info", "mod", "inst", "ASM_CONSTS", "$0", "$1", "$2", "$3", "UTF8ToString", "i", "len", "ptr1", "ptr2", "z", "error", "uInt8Array", "fileOnWasmHeap", "_malloc", "properArray", "iii", "LEN123", "$4", "$5", "post_payload", "letter", "headers", "headersOnWasmHeap", "ExitStatus", "__publicField", "callbacks", "cb", "noExitRuntime", "SOCKFS", "FS", "getSocketFromFD", "fd", "socket", "inetNtop4", "addr", "inetNtop6", "ints", "str", "word", "longest", "lastzero", "zstart", "parts", "hasipv4", "v4part", "readSockaddr", "sa", "salen", "family", "port", "inetPton4", "tmp", "jstoi_q", "inetPton6", "words", "w", "offset", "valid6regx", "DNS", "name", "res", "getSocketAddress", "addrp", "addrlen", "INT53_MAX", "INT53_MIN", "bigintToI53Checked", "num", "___syscall_bind", "d1", "d2", "d3", "sock", "___syscall_connect", "___syscall_dup3", "newfd", "flags", "___syscall_faccessat", "dirfd", "amode", "UTF8Decoder", "UTF8ArrayToString", "heapOrArray", "idx", "maxBytesToRead", "endIdx", "endPtr", "u0", "u1", "u2", "ch", "ptr", "SYSCALLS", "___syscall_fcntl64", "cmd", "varargs", "___syscall_fstat64", "buf", "___syscall_ftruncate64", "length", "lengthBytesUTF8", "stringToUTF8Array", "heap", "outIdx", "maxBytesToWrite", "startIdx", "u", "stringToUTF8", "outPtr", "___syscall_getcwd", "size", "___syscall_getdents64", "dirp", "count", "zeroMemory", "address", "writeSockaddr", "___syscall_getpeername", "errno", "___syscall_getsockname", "___syscall_getsockopt", "level", "optname", "optval", "optlen", "___syscall_ioctl", "op", "___syscall_lstat64", "___syscall_mkdirat", "mode", "___syscall_newfstatat", "___syscall_openat", "___syscall_poll", "fds", "nfds", "timeout", "___syscall_recvfrom", "msg", "___syscall_renameat", "olddirfd", "oldpath", "newdirfd", "newpath", "___syscall_rmdir", "___syscall_sendto", "message", "addr_len", "___syscall_socket", "domain", "type", "protocol", "___syscall_stat64", "___syscall_statfs64", "___syscall_unlinkat", "__abort_js", "__emval_call_method", "__emval_decref", "__emval_get_global", "__emval_get_method_caller", "__emval_run_destructors", "isLeapYear", "year", "MONTH_DAYS_LEAP_CUMULATIVE", "MONTH_DAYS_REGULAR_CUMULATIVE", "ydayFromDate", "date", "leap", "monthDaysCumulative", "yday", "__localtime_js", "time", "tmPtr", "start", "summerOffset", "winterOffset", "dst", "__mmap_js", "prot", "allocated", "__munmap_js", "__tzset_js", "timezone", "daylight", "std_name", "dst_name", "currentYear", "winter", "summer", "stdTimezoneOffset", "extractZone", "timezoneOffset", "sign", "absOffset", "hours", "minutes", "winterName", "summerName", "_emscripten_get_now", "_emscripten_date_now", "nowIsMonotonic", "checkWasiClock", "clock_id", "_clock_time_get", "clk_id", "ignored_precision", "ptime", "now", "nsec", "_duckdb_web_fs_directory_create", "pathLen", "_duckdb_web_fs_directory_exists", "_duckdb_web_fs_directory_list_files", "_duckdb_web_fs_directory_remove", "_duckdb_web_fs_file_close", "fileId", "_duckdb_web_fs_file_drop_file", "fileName", "fileNameLen", "_duckdb_web_fs_file_exists", "_duckdb_web_fs_file_move", "from", "fromLen", "to", "toLen", "_duckdb_web_fs_file_open", "_duckdb_web_fs_file_read", "location", "_duckdb_web_fs_file_truncate", "newSize", "_duckdb_web_fs_file_write", "_duckdb_web_fs_get_default_data_protocol", "_duckdb_web_fs_glob", "_duckdb_web_test_platform_feature", "feature", "_duckdb_web_udf_scalar_call", "funcId", "descPtr", "descSize", "ptrsPtr", "ptrsSize", "readEmAsmArgsArray", "readEmAsmArgs", "sigPtr", "wide", "runEmAsmFunction", "code", "argbuf", "args", "_emscripten_asm_const_ptr", "getHeapMax", "_emscripten_get_heap_max", "alignMemory", "alignment", "growMemory", "pages", "_emscripten_resize_heap", "requestedSize", "oldSize", "maxHeapSize", "cutDown", "overGrownHeapSize", "replacement", "ENV", "getExecutableName", "getEnvStrings", "lang", "env", "x", "strings", "stringToAscii", "buffer", "_environ_get", "__environ", "environ_buf", "bufSize", "string", "_environ_sizes_get", "penviron_count", "penviron_buf_size", "runtimeKeepaliveCounter", "keepRuntimeAlive", "_proc_exit", "exitJS", "implicit", "_exit", "_fd_close", "_fd_fdstat_get", "pbuf", "rightsBase", "rightsInheriting", "_fd_pread", "iov", "iovcnt", "pnum", "_fd_pwrite", "_fd_read", "_fd_seek", "whence", "newOffset", "_fd_sync", "printCharBuffers", "printChar", "stream", "curr", "_fd_write", "j", "_getaddrinfo", "node", "service", "hint", "proto", "ai", "allocaddrinfo", "canon", "_getnameinfo", "nodelen", "serv", "servlen", "overflowed", "lookup", "numBytesWrittenExclNull", "initRandomFill", "nodeCrypto", "__require", "view", "randomFill", "_random_get", "handleException", "getCFunc", "ident", "func", "writeArrayToMemory", "array", "stackAlloc", "sz", "__emscripten_stack_alloc", "stringToUTF8OnStack", "stackSave", "_emscripten_stack_get_current", "stackRestore", "val", "__emscripten_stack_restore", "ccall", "returnType", "argTypes", "opts", "toC", "arr", "convertReturnValue", "cArgs", "stack", "converter", "onDone", "getTempRet0", "__emscripten_tempret_get", "setTempRet0", "__emscripten_tempret_set", "_main", "_duckdb_web_fs_glob_add_path", "_duckdb_web_clear_response", "_duckdb_web_fail_with", "_duckdb_web_reset", "_duckdb_web_connect", "_duckdb_web_disconnect", "_duckdb_web_flush_files", "_duckdb_web_flush_file", "_duckdb_web_open", "_duckdb_web_get_global_file_info", "_duckdb_web_collect_file_stats", "_duckdb_web_export_file_stats", "_duckdb_web_fs_drop_file", "_duckdb_web_fs_drop_files", "_duckdb_web_fs_glob_file_infos", "_duckdb_web_fs_get_file_info_by_id", "_duckdb_web_fs_get_file_info_by_name", "_duckdb_web_fs_register_file_url", "_duckdb_web_fs_register_file_buffer", "_duckdb_web_copy_file_to_buffer", "_duckdb_web_copy_file_to_path", "_duckdb_web_get_version", "_duckdb_web_get_feature_flags", "_duckdb_web_tokenize", "_duckdb_web_tokenize_buffer", "_duckdb_web_udf_scalar_create", "_duckdb_web_prepared_create", "_duckdb_web_prepared_create_buffer", "_duckdb_web_prepared_close", "_duckdb_web_prepared_run", "_duckdb_web_prepared_send", "_duckdb_web_query_run", "_duckdb_web_query_run_buffer", "_duckdb_web_pending_query_start", "_duckdb_web_pending_query_start_buffer", "_duckdb_web_pending_query_poll", "_duckdb_web_pending_query_cancel", "_duckdb_web_query_fetch_results", "_duckdb_web_get_tablenames", "_duckdb_web_get_tablenames_buffer", "_duckdb_web_insert_arrow_from_ipc_stream", "_duckdb_web_insert_csv_from_path", "_duckdb_web_insert_json_from_path", "_free", "_calloc", "makeWrapper_pp", "f", "a0", "makeWrapper_ppp", "a1", "makeWrapper_p", "callMain", "entryFunction", "argc", "argv", "run", "doRun", "noInitialRun", "require_sha256", "__commonJSMin", "exports", "module", "ERROR", "WINDOW", "root", "WEB_WORKER", "NODE_JS", "COMMON_JS", "AMD", "ARRAY_BUFFER", "HEX_CHARS", "EXTRA", "SHIFT", "K", "OUTPUT_TYPES", "blocks", "obj", "createOutputMethod", "outputType", "is224", "message", "Sha256", "createMethod", "method", "nodeWrap", "i", "type", "crypto", "Buffer", "algorithm", "bufferFrom", "nodeMethod", "createHmacOutputMethod", "key", "HmacSha256", "createHmacMethod", "sharedMemory", "notString", "code", "index", "length", "a", "b", "c", "d", "e", "f", "g", "h", "j", "s0", "s1", "maj", "t1", "t2", "ch", "ab", "da", "cd", "bc", "h0", "h1", "h2", "h3", "h4", "h5", "h6", "h7", "hex", "arr", "buffer", "dataView", "bytes", "oKeyPad", "iKeyPad", "innerHash", "duckdb_browser_eh_worker_exports", "__export", "registerWorker", "DuckDBConnection", "bindings", "conn", "callback", "text", "allowStreamResult", "header", "resolve", "reject", "e", "ResultStreamIterator", "query", "stmt", "PreparedStatement", "buffer", "options", "path", "bufferI8", "connectionId", "statementId", "params", "IsArrowBuffer", "status", "IsDuckDBWasmRetry", "TEXT_ENCODER", "TEXT_DECODER", "storeError", "mod", "response", "message", "msgBuffer", "heapAddr", "heapArray", "getTypeSize", "ptype", "ptrToArray", "ptr", "n", "heap", "ptrToUint8Array", "ptrToFloat64Array", "callScalarUDF", "runtime", "funcId", "descPtr", "descSize", "ptrsPtr", "ptrsSize", "udf", "rawDesc", "desc", "ptrs", "buildResolver", "arg", "_a", "validity", "raw", "strings", "stringLengths", "j", "subarray", "str", "row", "tmp", "children", "attr", "child", "resolver", "data", "argResolvers", "i", "resultDataLen", "resultDataPtr", "resultData", "resultValidityPtr", "resultValidity", "rawResultData", "args", "res", "resultLengthsPtr", "resultDataUTF8", "resultLengths", "totalLength", "utf8", "resultStringPtr", "resultStringBuf", "writerOffset", "resultUTF8", "retLen", "retPtr", "retBuffer", "e", "TextDecoderWrapper", "decoder", "data", "decodeText", "failWith", "mod", "msg", "ensureFreshMemoryViews", "wm", "b", "copyBuffer", "begin", "length", "buffer", "copy", "readString", "callSRet", "mod", "funcName", "argTypes", "args", "stackPointer", "response", "ensureFreshMemoryViews", "status", "data", "dataSize", "dropResponseBuffers", "FileStatistics", "u8array", "f64", "blocks", "index", "out", "TEXT_ENCODER", "isNotSuccess", "s", "DuckDBBindingsBase", "logger", "runtime", "onProgress", "_", "resolve", "x", "config", "d", "n", "callSRet", "readString", "dropResponseBuffers", "version", "text", "BUF", "TEXT_ENCODER", "bufferPtr", "res", "conn", "DuckDBConnection", "worker", "copyBuffer", "allowStreamResult", "IsDuckDBWasmRetry", "IsArrowBuffer", "statement", "params", "buffer", "options", "optJSON", "path", "infoStr", "info", "name", "url", "proto", "directIO", "ptr", "fileName", "protocol", "list", "item", "handle", "filePath", "fromCached", "fileHandle", "e", "handle_inner", "_a", "names", "pointers", "pointerOfArray", "str", "size", "ret", "i", "pointer", "ensureFreshMemoryViews", "copy", "file", "enable", "FileStatistics", "AsyncDuckDBDispatcher", "entry", "request", "e", "obj", "p", "path", "hasWasmFS", "runtime", "conn", "_", "c", "result", "transfer", "infos", "buffer", "import_duckdb_eh", "DuckDBBrowserBindings", "DuckDBBindingsBase", "logger", "runtime", "mainModuleURL", "pthreadWorkerURL", "path", "prefix", "imports", "success", "handlers", "response", "_a", "request", "contentLengthHdr", "contentLength", "start", "progress", "tracker", "chunk", "ctrl", "now", "p", "ts", "output", "xhr", "url", "error", "e", "buffer", "DuckDB", "DuckDBBrowserBindings", "logger", "runtime", "mainModuleURL", "pthreadWorkerURL", "moduleOverrides", "DuckDBWasm", "import_js_sha256", "getHTTPHost", "config", "url", "bucket", "_a", "httpHost", "offset", "getS3Params", "method", "_b", "_c", "_d", "parsedS3Url", "parseS3Url", "path", "isPathStyleAccess", "uriEncode", "input", "encode_slash", "hexDigit", "result", "i", "ch", "createS3Headers", "params", "payloadParams", "payloadHash", "res", "signedHeaders", "canonicalRequest", "canonicalRequestHashStr", "stringToSign", "signKey", "kDate", "kRegion", "kService", "signingKey", "signature", "createS3HeadersFromS3Config", "contentType", "payload", "addS3Headers", "xhr", "value", "header", "slashPos", "getHTTPUrl", "parsedUrl", "OPFS_PREFIX_LEN", "PATH_SEP_REGEX", "BROWSER_RUNTIME", "mod", "fileId", "cached", "s", "d", "n", "callSRet", "infoStr", "readString", "dropResponseBuffers", "info", "file", "error", "e", "_a", "filePaths", "protocol", "prepare", "path", "dirHandle", "opfsPath", "fileName", "folders", "folder", "fileHandle", "handle", "result", "filePath", "res", "dbPath", "_mod", "feature", "flags", "_b", "_c", "_d", "_e", "_f", "_g", "xhr", "getHTTPUrl", "addS3Headers", "data", "src", "contentLength", "modification_time", "contentRange", "contentLength2", "presumedLength", "head", "buffer", "fileSize", "failWith", "pathPtr", "pathLen", "globalInfo", "xhr2", "_fileId", "fileNamePtr", "fileNameLen", "newSize", "buf", "bytes", "location", "sliced", "out", "input", "done", "percentage", "repeat", "_pathPtr", "_pathLen", "fromPtr", "fromLen", "toPtr", "toLen", "from", "to", "key", "value", "response", "funcId", "descPtr", "descSize", "ptrsPtr", "ptrsSize", "callScalarUDF", "WebWorker", "AsyncDuckDBDispatcher", "response", "transfer", "mainModuleURL", "pthreadWorkerURL", "progress", "DuckDB", "BROWSER_RUNTIME", "registerWorker", "api", "event"]
|
|
7
|
+
}
|