@run-trace/duckdb-wasm 0.0.2 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +1 -2
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/worker_node.ts"],
|
|
4
|
+
"sourcesContent": ["import { Worker as NodeWorker } from 'worker_threads';\nimport { readFileSync } from 'fs';\n\n// Preamble injected into the worker to shim Web Worker globals using parentPort\nconst WORKER_PREAMBLE = `\nconst { parentPort } = require('worker_threads');\nglobalThis.postMessage = (data, transfer) => parentPort.postMessage(data, transfer);\nparentPort.on('message', (data) => {\n if (globalThis.onmessage) globalThis.onmessage({ data });\n});\n`;\n\n/**\n * Creates a Node.js worker_threads Worker with Web Worker API compatibility.\n * Shims globalThis.postMessage/onmessage inside the worker via parentPort,\n * and wraps the main-thread handle with addEventListener/postMessage.\n */\nexport function createWorker(workerPath: string): Worker {\n const worker = new NodeWorker(WORKER_PREAMBLE + readFileSync(workerPath, 'utf8'), { eval: true });\n const w = worker as any;\n\n w.addEventListener = (event: string, handler: (e: any) => void) => {\n if (event === 'message') {\n worker.on('message', (data: any) => handler({ data }));\n } else if (event === 'error') {\n worker.on('error', (error: any) => handler({ error, message: error?.message }));\n } else if (event === 'close') {\n worker.on('exit', () => handler({}));\n }\n };\n\n w.removeEventListener = () => {};\n\n const origPostMessage = worker.postMessage.bind(worker);\n const origTerminate = worker.terminate.bind(worker);\n w.postMessage = (data: any, transfer?: ArrayBuffer[]) => {\n origPostMessage(data, transfer);\n };\n\n w.terminate = () => origTerminate();\n\n return w as unknown as Worker;\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,UAAUA,MAAkB,iBACrC,OAAS,gBAAAC,MAAoB,KAG7B,IAAMC,EAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAajB,SAASC,EAAaC,EAA4B,CACrD,IAAMC,EAAS,IAAIL,EAAWE,EAAkBD,EAAaG,EAAY,MAAM,EAAG,CAAE,KAAM,EAAK,CAAC,EAC1FE,EAAID,EAEVC,EAAE,iBAAmB,CAACC,EAAeC,IAA8B,CAC3DD,IAAU,UACVF,EAAO,GAAG,UAAYI,GAAcD,EAAQ,CAAE,KAAAC,CAAK,CAAC,CAAC,EAC9CF,IAAU,QACjBF,EAAO,GAAG,QAAUK,GAAeF,EAAQ,CAAE,MAAAE,EAAO,QAASA,GAAA,YAAAA,EAAO,OAAQ,CAAC,CAAC,EACvEH,IAAU,SACjBF,EAAO,GAAG,OAAQ,IAAMG,EAAQ,CAAC,CAAC,CAAC,CAE3C,EAEAF,EAAE,oBAAsB,IAAM,CAAC,EAE/B,IAAMK,EAAkBN,EAAO,YAAY,KAAKA,CAAM,EAChDO,EAAgBP,EAAO,UAAU,KAAKA,CAAM,EAClD,OAAAC,EAAE,YAAc,CAACG,EAAWI,IAA6B,CACrDF,EAAgBF,EAAMI,CAAQ,CAClC,EAEAP,EAAE,UAAY,IAAMM,EAAc,EAE3BN,CACX",
|
|
6
|
+
"names": ["NodeWorker", "readFileSync", "WORKER_PREAMBLE", "createWorker", "workerPath", "worker", "w", "event", "handler", "data", "error", "origPostMessage", "origTerminate", "transfer"]
|
|
7
|
+
}
|
|
@@ -10,4 +10,7 @@ export interface DuckDBModule extends EmscriptenModule {
|
|
|
10
10
|
stringToUTF8: typeof stringToUTF8;
|
|
11
11
|
ccall: typeof ccall;
|
|
12
12
|
PThread: PThread;
|
|
13
|
+
/** WebAssembly.Memory object — exposed on Module for COI builds so TS code
|
|
14
|
+
* can detect memory growth from other threads (mirrors GROWABLE_HEAP pattern). */
|
|
15
|
+
wasmMemory?: WebAssembly.Memory;
|
|
13
16
|
}
|
|
@@ -4,6 +4,13 @@ import { UDFFunction } from './udf_function';
|
|
|
4
4
|
export declare const decodeText: (input?: BufferSource) => string;
|
|
5
5
|
/** Copy a buffer */
|
|
6
6
|
export declare function failWith(mod: DuckDBModule, msg: string): void;
|
|
7
|
+
/** In COI mode, another pthread can grow WASM memory at any time. When that
|
|
8
|
+
* happens, wasmMemory.buffer changes but Module.HEAPU8/HEAPF64 still point
|
|
9
|
+
* to views over the old (smaller) buffer. Emscripten's own GROWABLE_HEAP_*
|
|
10
|
+
* wrappers handle this for generated glue code, but our TS bypasses them.
|
|
11
|
+
* This mirrors that check: compare wasmMemory.buffer to HEAPU8.buffer and
|
|
12
|
+
* refresh the views if they diverge. No-op for EH/MVP (wasmMemory unset). */
|
|
13
|
+
export declare function ensureFreshMemoryViews(mod: DuckDBModule): void;
|
|
7
14
|
/** Copy a buffer */
|
|
8
15
|
export declare function copyBuffer(mod: DuckDBModule, begin: number, length: number): Uint8Array;
|
|
9
16
|
/** Decode a string */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@run-trace/duckdb-wasm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "A custom build of DuckDB-WASM with linked extensions, wasmfs, and example rust functions.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -41,7 +41,6 @@
|
|
|
41
41
|
"files": [
|
|
42
42
|
"dist",
|
|
43
43
|
"!dist/tests-*",
|
|
44
|
-
"!dist/**/*.map",
|
|
45
44
|
"!dist/types/test"
|
|
46
45
|
],
|
|
47
46
|
"main": "dist/duckdb-wasm.mjs",
|