firebird-wasm 0.7.0 → 0.9.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/CHANGELOG.md +266 -0
- package/README.md +31 -15
- package/dist/.tsbuildinfo.build +1 -1
- package/dist/browser/engine-transport.d.ts +2 -0
- package/dist/browser/engine-transport.d.ts.map +1 -1
- package/dist/browser/engine-transport.js +43 -11
- package/dist/browser/engine-transport.js.map +1 -1
- package/dist/browser/firebird-browser.d.ts.map +1 -1
- package/dist/browser/firebird-browser.js +59 -20
- package/dist/browser/firebird-browser.js.map +1 -1
- package/dist/browser/index.d.ts +3 -3
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +6 -3
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/params.d.ts +8 -2
- package/dist/browser/params.d.ts.map +1 -1
- package/dist/browser/params.js +14 -5
- package/dist/browser/params.js.map +1 -1
- package/dist/browser/serve-engine.d.ts +30 -0
- package/dist/browser/serve-engine.d.ts.map +1 -0
- package/dist/browser/serve-engine.js +93 -0
- package/dist/browser/serve-engine.js.map +1 -0
- package/dist/browser/worker-entry.d.ts +8 -22
- package/dist/browser/worker-entry.d.ts.map +1 -1
- package/dist/browser/worker-entry.js +18 -79
- package/dist/browser/worker-entry.js.map +1 -1
- package/dist/electric/apply.d.ts +53 -0
- package/dist/electric/apply.d.ts.map +1 -0
- package/dist/electric/apply.js +88 -0
- package/dist/electric/apply.js.map +1 -0
- package/dist/electric/index.d.ts +133 -0
- package/dist/electric/index.d.ts.map +1 -0
- package/dist/electric/index.js +378 -0
- package/dist/electric/index.js.map +1 -0
- package/dist/electric/serial.d.ts +20 -0
- package/dist/electric/serial.d.ts.map +1 -0
- package/dist/electric/serial.js +29 -0
- package/dist/electric/serial.js.map +1 -0
- package/dist/electric/values.d.ts +65 -0
- package/dist/electric/values.d.ts.map +1 -0
- package/dist/electric/values.js +257 -0
- package/dist/electric/values.js.map +1 -0
- package/dist/electric/writes.d.ts +99 -0
- package/dist/electric/writes.d.ts.map +1 -0
- package/dist/electric/writes.js +282 -0
- package/dist/electric/writes.js.map +1 -0
- package/dist/electric-server/capture.d.ts +51 -0
- package/dist/electric-server/capture.d.ts.map +1 -0
- package/dist/electric-server/capture.js +224 -0
- package/dist/electric-server/capture.js.map +1 -0
- package/dist/electric-server/catalog.d.ts +61 -0
- package/dist/electric-server/catalog.d.ts.map +1 -0
- package/dist/electric-server/catalog.js +137 -0
- package/dist/electric-server/catalog.js.map +1 -0
- package/dist/electric-server/index.d.ts +85 -0
- package/dist/electric-server/index.d.ts.map +1 -0
- package/dist/electric-server/index.js +528 -0
- package/dist/electric-server/index.js.map +1 -0
- package/dist/electric-server/where.d.ts +30 -0
- package/dist/electric-server/where.d.ts.map +1 -0
- package/dist/electric-server/where.js +243 -0
- package/dist/electric-server/where.js.map +1 -0
- package/dist/firebird.d.ts +3 -1
- package/dist/firebird.d.ts.map +1 -1
- package/dist/firebird.js +259 -22
- package/dist/firebird.js.map +1 -1
- package/dist/frameworks/query-store.d.ts +99 -0
- package/dist/frameworks/query-store.d.ts.map +1 -0
- package/dist/frameworks/query-store.js +166 -0
- package/dist/frameworks/query-store.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/react/index.d.ts +68 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +92 -0
- package/dist/react/index.js.map +1 -0
- package/dist/repl/index.d.ts +76 -0
- package/dist/repl/index.d.ts.map +1 -0
- package/dist/repl/index.js +328 -0
- package/dist/repl/index.js.map +1 -0
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/vue/index.d.ts +68 -0
- package/dist/vue/index.d.ts.map +1 -0
- package/dist/vue/index.js +107 -0
- package/dist/vue/index.js.map +1 -0
- package/dist/wasm/firebird-embedded-st.js +1 -1
- package/dist/wasm/firebird-embedded-st.wasm +0 -0
- package/dist/wasm/firebird-embedded.js +1 -1
- package/dist/wasm/firebird-embedded.wasm +0 -0
- package/dist/wasm-loader.d.ts +57 -7
- package/dist/wasm-loader.d.ts.map +1 -1
- package/dist/wasm-loader.js +106 -21
- package/dist/wasm-loader.js.map +1 -1
- package/package.json +50 -3
package/dist/wasm-loader.d.ts
CHANGED
|
@@ -45,6 +45,19 @@ export interface FirebirdWasmModule {
|
|
|
45
45
|
* {@link FirebirdWasmModule._fb_last_error}.
|
|
46
46
|
*/
|
|
47
47
|
_fb_init(): number;
|
|
48
|
+
/**
|
|
49
|
+
* End the engine for good: detach every database (rolling back what is
|
|
50
|
+
* open) and shut Firebird down. `_fb_init` fails afterwards. Call
|
|
51
|
+
* {@link disposeFirebirdWasm} rather than this: it also ends the threaded
|
|
52
|
+
* build's workers and lets the module go. Returns 0, or non-zero when a
|
|
53
|
+
* detach or the shutdown failed.
|
|
54
|
+
*/
|
|
55
|
+
_fb_dispose(): number;
|
|
56
|
+
/**
|
|
57
|
+
* The threaded build only: terminate its worker pool (wasm/post-threads.js).
|
|
58
|
+
* Called by {@link disposeFirebirdWasm}.
|
|
59
|
+
*/
|
|
60
|
+
fbTerminateThreads?: () => void;
|
|
48
61
|
/**
|
|
49
62
|
* Pointer to a NUL-terminated message describing the most recent failure,
|
|
50
63
|
* or to an empty string when the last call succeeded.
|
|
@@ -108,6 +121,12 @@ export interface FirebirdWasmModule {
|
|
|
108
121
|
* Any change empties every database's cache.
|
|
109
122
|
*/
|
|
110
123
|
_fb_statement_cache(size: number): number;
|
|
124
|
+
/**
|
|
125
|
+
* How many metadata changes (committed DDL, from any statement, procedure
|
|
126
|
+
* or attachment) the engine has seen in this module. A database's kept
|
|
127
|
+
* statements are emptied when it moves; reads and writes never move it.
|
|
128
|
+
*/
|
|
129
|
+
_fb_metadata_commits(): number;
|
|
111
130
|
/**
|
|
112
131
|
* 1 runs this database's autocommit SELECTs in a read-only transaction it
|
|
113
132
|
* keeps open, 0 (the default) each in one of its own; returns the previous
|
|
@@ -204,8 +223,10 @@ export interface WasmLoadOptions {
|
|
|
204
223
|
* Workers, whose heap is a `SharedArrayBuffer` and which a browser gives
|
|
205
224
|
* only to a cross-origin isolated page. `false` is
|
|
206
225
|
* `firebird-embedded-st.js`: no threads and a plain `ArrayBuffer` heap, at
|
|
207
|
-
* the cost of statement and idle timeouts. `'auto'` (the default) is
|
|
208
|
-
*
|
|
226
|
+
* the cost of statement and idle timeouts. `'auto'` (the default) is
|
|
227
|
+
* `false` since 0.9.0: the build without threads runs everywhere, starts in
|
|
228
|
+
* about a third of the time and was not slower in anything measured. Pass
|
|
229
|
+
* `true` for the threaded build (Node, or a cross-origin isolated page).
|
|
209
230
|
*
|
|
210
231
|
* In Node this picks the file the loader requires. In a browser the page
|
|
211
232
|
* loads the glue itself, so the choice is made there:
|
|
@@ -216,22 +237,28 @@ export interface WasmLoadOptions {
|
|
|
216
237
|
/**
|
|
217
238
|
* The glue script of the build `threads` selects.
|
|
218
239
|
*
|
|
219
|
-
* `'auto'` (the default)
|
|
220
|
-
*
|
|
221
|
-
*
|
|
222
|
-
*
|
|
240
|
+
* `'auto'` (the default) is the build without threads, which runs anywhere:
|
|
241
|
+
* it needs no `SharedArrayBuffer`, so no cross-origin isolation, and no
|
|
242
|
+
* Worker. `true` is the threaded build, which a page can run only when it is
|
|
243
|
+
* cross-origin isolated; it adds statement and idle timeouts. Until 0.9.0
|
|
244
|
+
* `'auto'` picked the threaded build where it could run.
|
|
223
245
|
*
|
|
224
246
|
* @example
|
|
225
247
|
* ```js
|
|
226
248
|
* // in the engine's Worker, before the transport loads the module
|
|
227
249
|
* importScripts(`/wasm/${wasmGlueFile()}`);
|
|
250
|
+
* // threads where the page allows them
|
|
251
|
+
* importScripts(`/wasm/${wasmGlueFile(self.crossOriginIsolated)}`);
|
|
228
252
|
* ```
|
|
229
253
|
*/
|
|
230
254
|
export declare function wasmGlueFile(threads?: boolean | 'auto'): string;
|
|
231
255
|
/**
|
|
232
256
|
* Load the Firebird Embedded WASM module.
|
|
233
257
|
*
|
|
234
|
-
* The result is cached – subsequent calls return the same module instance
|
|
258
|
+
* The result is cached – subsequent calls return the same module instance –
|
|
259
|
+
* and kept until {@link disposeFirebirdWasm}: whoever calls this owns the
|
|
260
|
+
* module. `FirebirdBrowser` does not call it; its transport takes the module
|
|
261
|
+
* with {@link acquireFirebirdWasm}, and closing the last database disposes it.
|
|
235
262
|
*
|
|
236
263
|
* @param options - optional overrides for locating the WASM artefacts.
|
|
237
264
|
* @returns The initialised Emscripten module with Firebird bindings.
|
|
@@ -241,9 +268,32 @@ export declare function wasmGlueFile(threads?: boolean | 'auto'): string;
|
|
|
241
268
|
* const mod = await loadFirebirdWasm();
|
|
242
269
|
* mod._fb_init();
|
|
243
270
|
* const dbHandle = mod._fb_create_database(allocString(mod, '/data/test.fdb'));
|
|
271
|
+
* // …
|
|
272
|
+
* await disposeFirebirdWasm(mod);
|
|
244
273
|
* ```
|
|
245
274
|
*/
|
|
246
275
|
export declare function loadFirebirdWasm(options?: WasmLoadOptions): Promise<FirebirdWasmModule>;
|
|
276
|
+
/**
|
|
277
|
+
* The module for `options`, counted as used until {@link releaseFirebirdWasm}.
|
|
278
|
+
* For transports: the last release of a module nobody loaded with
|
|
279
|
+
* {@link loadFirebirdWasm} disposes it.
|
|
280
|
+
*/
|
|
281
|
+
export declare function acquireFirebirdWasm(options?: WasmLoadOptions): Promise<FirebirdWasmModule>;
|
|
282
|
+
/** Done with a module from {@link acquireFirebirdWasm}. */
|
|
283
|
+
export declare function releaseFirebirdWasm(mod: FirebirdWasmModule): Promise<void>;
|
|
284
|
+
/**
|
|
285
|
+
* End a module and let it go: every database is detached (what is open is
|
|
286
|
+
* rolled back) and the engine shut down, the threaded build's workers are
|
|
287
|
+
* terminated, the process listeners its glue added are removed, and the
|
|
288
|
+
* module leaves the cache, so its memory can be collected. Until 0.9.0 a
|
|
289
|
+
* module stayed for the life of the process; the threaded build's worker pool
|
|
290
|
+
* alone held about 400 MB in Node.
|
|
291
|
+
*
|
|
292
|
+
* Anything still holding the module must not use it afterwards: the engine
|
|
293
|
+
* refuses (`_fb_init` fails). The next {@link loadFirebirdWasm} loads a new
|
|
294
|
+
* one. Idempotent.
|
|
295
|
+
*/
|
|
296
|
+
export declare function disposeFirebirdWasm(mod: FirebirdWasmModule): Promise<void>;
|
|
247
297
|
/** Options for {@link cdnArtifacts}. */
|
|
248
298
|
export interface CdnOptions {
|
|
249
299
|
/** Which build; as {@link wasmGlueFile}. Default `'auto'`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-loader.d.ts","sourceRoot":"","sources":["../src/wasm-loader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"wasm-loader.d.ts","sourceRoot":"","sources":["../src/wasm-loader.ts"],"names":[],"mappings":"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"}
|
package/dist/wasm-loader.js
CHANGED
|
@@ -13,42 +13,40 @@
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.wasmGlueFile = wasmGlueFile;
|
|
15
15
|
exports.loadFirebirdWasm = loadFirebirdWasm;
|
|
16
|
+
exports.acquireFirebirdWasm = acquireFirebirdWasm;
|
|
17
|
+
exports.releaseFirebirdWasm = releaseFirebirdWasm;
|
|
18
|
+
exports.disposeFirebirdWasm = disposeFirebirdWasm;
|
|
16
19
|
exports.cdnArtifacts = cdnArtifacts;
|
|
17
20
|
exports.hasSharedHeap = hasSharedHeap;
|
|
18
21
|
exports.allocString = allocString;
|
|
19
22
|
exports.lastError = lastError;
|
|
20
23
|
const version_1 = require("./version");
|
|
21
|
-
// ---------------------------------------------------------------------------
|
|
22
|
-
// Module state
|
|
23
|
-
// ---------------------------------------------------------------------------
|
|
24
|
-
/** One module per build: the two can live side by side in one process. */
|
|
25
24
|
const cachedModules = new Map();
|
|
25
|
+
/** Loads one at a time, so each knows which process listeners are its own. */
|
|
26
|
+
let loading = Promise.resolve();
|
|
26
27
|
/**
|
|
27
28
|
* The glue script of the build `threads` selects.
|
|
28
29
|
*
|
|
29
|
-
* `'auto'` (the default)
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
30
|
+
* `'auto'` (the default) is the build without threads, which runs anywhere:
|
|
31
|
+
* it needs no `SharedArrayBuffer`, so no cross-origin isolation, and no
|
|
32
|
+
* Worker. `true` is the threaded build, which a page can run only when it is
|
|
33
|
+
* cross-origin isolated; it adds statement and idle timeouts. Until 0.9.0
|
|
34
|
+
* `'auto'` picked the threaded build where it could run.
|
|
33
35
|
*
|
|
34
36
|
* @example
|
|
35
37
|
* ```js
|
|
36
38
|
* // in the engine's Worker, before the transport loads the module
|
|
37
39
|
* importScripts(`/wasm/${wasmGlueFile()}`);
|
|
40
|
+
* // threads where the page allows them
|
|
41
|
+
* importScripts(`/wasm/${wasmGlueFile(self.crossOriginIsolated)}`);
|
|
38
42
|
* ```
|
|
39
43
|
*/
|
|
40
44
|
function wasmGlueFile(threads = 'auto') {
|
|
41
45
|
return useThreads(threads) ? 'firebird-embedded.js' : 'firebird-embedded-st.js';
|
|
42
46
|
}
|
|
43
47
|
function useThreads(threads) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const g = globalThis;
|
|
47
|
-
if (typeof g['process'] !== 'undefined' && typeof g['window'] === 'undefined'
|
|
48
|
-
&& typeof g['WorkerGlobalScope'] === 'undefined') {
|
|
49
|
-
return true;
|
|
50
|
-
}
|
|
51
|
-
return g['crossOriginIsolated'] === true;
|
|
48
|
+
// 'auto' and undefined: the build without threads, everywhere.
|
|
49
|
+
return threads === true;
|
|
52
50
|
}
|
|
53
51
|
// ---------------------------------------------------------------------------
|
|
54
52
|
// Public API
|
|
@@ -56,7 +54,10 @@ function useThreads(threads) {
|
|
|
56
54
|
/**
|
|
57
55
|
* Load the Firebird Embedded WASM module.
|
|
58
56
|
*
|
|
59
|
-
* The result is cached – subsequent calls return the same module instance
|
|
57
|
+
* The result is cached – subsequent calls return the same module instance –
|
|
58
|
+
* and kept until {@link disposeFirebirdWasm}: whoever calls this owns the
|
|
59
|
+
* module. `FirebirdBrowser` does not call it; its transport takes the module
|
|
60
|
+
* with {@link acquireFirebirdWasm}, and closing the last database disposes it.
|
|
60
61
|
*
|
|
61
62
|
* @param options - optional overrides for locating the WASM artefacts.
|
|
62
63
|
* @returns The initialised Emscripten module with Firebird bindings.
|
|
@@ -66,13 +67,86 @@ function useThreads(threads) {
|
|
|
66
67
|
* const mod = await loadFirebirdWasm();
|
|
67
68
|
* mod._fb_init();
|
|
68
69
|
* const dbHandle = mod._fb_create_database(allocString(mod, '/data/test.fdb'));
|
|
70
|
+
* // …
|
|
71
|
+
* await disposeFirebirdWasm(mod);
|
|
69
72
|
* ```
|
|
70
73
|
*/
|
|
71
74
|
async function loadFirebirdWasm(options = {}) {
|
|
75
|
+
const entry = moduleEntry(options);
|
|
76
|
+
entry.pinned = true;
|
|
77
|
+
return entry.module;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* The module for `options`, counted as used until {@link releaseFirebirdWasm}.
|
|
81
|
+
* For transports: the last release of a module nobody loaded with
|
|
82
|
+
* {@link loadFirebirdWasm} disposes it.
|
|
83
|
+
*/
|
|
84
|
+
async function acquireFirebirdWasm(options = {}) {
|
|
85
|
+
const entry = moduleEntry(options);
|
|
86
|
+
entry.users++;
|
|
87
|
+
try {
|
|
88
|
+
return await entry.module;
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
entry.users--;
|
|
92
|
+
throw err;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/** Done with a module from {@link acquireFirebirdWasm}. */
|
|
96
|
+
async function releaseFirebirdWasm(mod) {
|
|
97
|
+
const entry = [...cachedModules.values()].find((e) => e.loaded === mod);
|
|
98
|
+
if (!entry)
|
|
99
|
+
return; // disposed already
|
|
100
|
+
entry.users = Math.max(0, entry.users - 1);
|
|
101
|
+
if (entry.users === 0 && !entry.pinned)
|
|
102
|
+
await disposeFirebirdWasm(mod);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* End a module and let it go: every database is detached (what is open is
|
|
106
|
+
* rolled back) and the engine shut down, the threaded build's workers are
|
|
107
|
+
* terminated, the process listeners its glue added are removed, and the
|
|
108
|
+
* module leaves the cache, so its memory can be collected. Until 0.9.0 a
|
|
109
|
+
* module stayed for the life of the process; the threaded build's worker pool
|
|
110
|
+
* alone held about 400 MB in Node.
|
|
111
|
+
*
|
|
112
|
+
* Anything still holding the module must not use it afterwards: the engine
|
|
113
|
+
* refuses (`_fb_init` fails). The next {@link loadFirebirdWasm} loads a new
|
|
114
|
+
* one. Idempotent.
|
|
115
|
+
*/
|
|
116
|
+
async function disposeFirebirdWasm(mod) {
|
|
117
|
+
const entry = [...cachedModules.values()].find((e) => e.loaded === mod);
|
|
118
|
+
if (entry)
|
|
119
|
+
cachedModules.delete(entry.glueFile);
|
|
120
|
+
mod._fb_dispose?.();
|
|
121
|
+
mod.fbTerminateThreads?.();
|
|
122
|
+
const proc = nodeProcess();
|
|
123
|
+
for (const [event, listener] of entry?.listeners ?? [])
|
|
124
|
+
proc?.removeListener(event, listener);
|
|
125
|
+
}
|
|
126
|
+
function moduleEntry(options) {
|
|
72
127
|
const glueFile = wasmGlueFile(options.threads);
|
|
73
|
-
|
|
74
|
-
if (
|
|
75
|
-
|
|
128
|
+
let entry = cachedModules.get(glueFile);
|
|
129
|
+
if (!entry) {
|
|
130
|
+
const created = { glueFile, module: Promise.resolve(null), users: 0, pinned: false, listeners: [] };
|
|
131
|
+
const load = loading.catch(() => undefined).then(() => loadModule(glueFile, options, created));
|
|
132
|
+
loading = load;
|
|
133
|
+
created.module = load;
|
|
134
|
+
created.module.catch(() => {
|
|
135
|
+
// A failed load is not kept: the next call tries again.
|
|
136
|
+
if (cachedModules.get(glueFile) === created)
|
|
137
|
+
cachedModules.delete(glueFile);
|
|
138
|
+
});
|
|
139
|
+
cachedModules.set(glueFile, created);
|
|
140
|
+
entry = created;
|
|
141
|
+
}
|
|
142
|
+
return entry;
|
|
143
|
+
}
|
|
144
|
+
const LISTENED = ['uncaughtException', 'unhandledRejection', 'exit'];
|
|
145
|
+
function nodeProcess() {
|
|
146
|
+
const proc = globalThis['process'];
|
|
147
|
+
return typeof proc?.listeners === 'function' && typeof proc.removeListener === 'function' ? proc : undefined;
|
|
148
|
+
}
|
|
149
|
+
async function loadModule(glueFile, options, entry) {
|
|
76
150
|
// The Emscripten glue script exports a factory function named
|
|
77
151
|
// `createFirebirdModule` (configured via `-s EXPORT_NAME` in CMake).
|
|
78
152
|
// In Node it can be `require()`-d; in browsers it is expected to be
|
|
@@ -99,8 +173,19 @@ async function loadFirebirdWasm(options = {}) {
|
|
|
99
173
|
moduleOptions['wasmBinary'] = options.wasmBinary;
|
|
100
174
|
}
|
|
101
175
|
}
|
|
176
|
+
// The glue adds process listeners in Node (the threaded build an
|
|
177
|
+
// uncaughtException handler), which hold the whole module: note them so a
|
|
178
|
+
// dispose can take them off.
|
|
179
|
+
const proc = nodeProcess();
|
|
180
|
+
const before = new Map(LISTENED.map((event) => [event, new Set(proc?.listeners(event) ?? [])]));
|
|
102
181
|
const mod = await factory(moduleOptions);
|
|
103
|
-
|
|
182
|
+
for (const event of LISTENED) {
|
|
183
|
+
for (const listener of proc?.listeners(event) ?? []) {
|
|
184
|
+
if (!before.get(event).has(listener))
|
|
185
|
+
entry.listeners.push([event, listener]);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
entry.loaded = mod;
|
|
104
189
|
return mod;
|
|
105
190
|
}
|
|
106
191
|
/**
|
package/dist/wasm-loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-loader.js","sourceRoot":"","sources":["../src/wasm-loader.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;
|
|
1
|
+
{"version":3,"file":"wasm-loader.js","sourceRoot":"","sources":["../src/wasm-loader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "firebird-wasm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Firebird embedded database in WebAssembly — runs in the browser and Node, like PGlite for PostgreSQL",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -13,7 +13,32 @@
|
|
|
13
13
|
"./browser": {
|
|
14
14
|
"types": "./dist/browser/index.d.ts",
|
|
15
15
|
"default": "./dist/browser/index.js"
|
|
16
|
-
}
|
|
16
|
+
},
|
|
17
|
+
"./browser/worker-entry": {
|
|
18
|
+
"types": "./dist/browser/worker-entry.d.ts",
|
|
19
|
+
"default": "./dist/browser/worker-entry.js"
|
|
20
|
+
},
|
|
21
|
+
"./react": {
|
|
22
|
+
"types": "./dist/react/index.d.ts",
|
|
23
|
+
"default": "./dist/react/index.js"
|
|
24
|
+
},
|
|
25
|
+
"./vue": {
|
|
26
|
+
"types": "./dist/vue/index.d.ts",
|
|
27
|
+
"default": "./dist/vue/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./repl": {
|
|
30
|
+
"types": "./dist/repl/index.d.ts",
|
|
31
|
+
"default": "./dist/repl/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./electric": {
|
|
34
|
+
"types": "./dist/electric/index.d.ts",
|
|
35
|
+
"default": "./dist/electric/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./electric-server": {
|
|
38
|
+
"types": "./dist/electric-server/index.d.ts",
|
|
39
|
+
"default": "./dist/electric-server/index.js"
|
|
40
|
+
},
|
|
41
|
+
"./package.json": "./package.json"
|
|
17
42
|
},
|
|
18
43
|
"scripts": {
|
|
19
44
|
"build": "tsc -p tsconfig.build.json",
|
|
@@ -40,15 +65,37 @@
|
|
|
40
65
|
"dependencies": {
|
|
41
66
|
"node-firebird-driver": "^3.5.0"
|
|
42
67
|
},
|
|
68
|
+
"peerDependencies": {
|
|
69
|
+
"react": ">=18",
|
|
70
|
+
"vue": ">=3.3",
|
|
71
|
+
"@electric-sql/client": ">=1.5"
|
|
72
|
+
},
|
|
73
|
+
"peerDependenciesMeta": {
|
|
74
|
+
"react": {
|
|
75
|
+
"optional": true
|
|
76
|
+
},
|
|
77
|
+
"vue": {
|
|
78
|
+
"optional": true
|
|
79
|
+
},
|
|
80
|
+
"@electric-sql/client": {
|
|
81
|
+
"optional": true
|
|
82
|
+
}
|
|
83
|
+
},
|
|
43
84
|
"devDependencies": {
|
|
85
|
+
"@electric-sql/client": "^1.5.28",
|
|
44
86
|
"@types/jest": "^29.5.12",
|
|
45
87
|
"@types/node": "^20.14.10",
|
|
88
|
+
"@types/react": "^19.2.2",
|
|
89
|
+
"@types/react-dom": "^19.2.2",
|
|
46
90
|
"@typescript-eslint/eslint-plugin": "^7.17.0",
|
|
47
91
|
"@typescript-eslint/parser": "^7.17.0",
|
|
48
92
|
"eslint": "^8.57.0",
|
|
49
93
|
"jest": "^29.7.0",
|
|
94
|
+
"react": "^19.2.0",
|
|
95
|
+
"react-dom": "^19.2.0",
|
|
50
96
|
"ts-jest": "^29.2.2",
|
|
51
|
-
"typescript": "^5.5.3"
|
|
97
|
+
"typescript": "^5.5.3",
|
|
98
|
+
"vue": "^3.5.22"
|
|
52
99
|
},
|
|
53
100
|
"jest": {
|
|
54
101
|
"preset": "ts-jest",
|