firebird-wasm 0.2.0 → 0.3.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 +168 -0
- package/README.md +4 -1
- package/dist/.tsbuildinfo.build +1 -1
- package/dist/browser/engine-transport.d.ts +56 -5
- package/dist/browser/engine-transport.d.ts.map +1 -1
- package/dist/browser/engine-transport.js +271 -8
- package/dist/browser/engine-transport.js.map +1 -1
- package/dist/browser/firebird-browser.d.ts +228 -7
- package/dist/browser/firebird-browser.d.ts.map +1 -1
- package/dist/browser/firebird-browser.js +334 -26
- package/dist/browser/firebird-browser.js.map +1 -1
- package/dist/browser/index.d.ts +8 -2
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +19 -3
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/opfs-fs.d.ts +72 -0
- package/dist/browser/opfs-fs.d.ts.map +1 -0
- package/dist/browser/opfs-fs.js +249 -0
- package/dist/browser/opfs-fs.js.map +1 -0
- package/dist/browser/shared-transport.d.ts +8 -2
- package/dist/browser/shared-transport.d.ts.map +1 -1
- package/dist/browser/shared-transport.js +29 -2
- package/dist/browser/shared-transport.js.map +1 -1
- package/dist/browser/statement-types.d.ts +18 -0
- package/dist/browser/statement-types.d.ts.map +1 -0
- package/dist/browser/statement-types.js +39 -0
- package/dist/browser/statement-types.js.map +1 -0
- package/dist/browser/value-types.d.ts +173 -0
- package/dist/browser/value-types.d.ts.map +1 -0
- package/dist/browser/value-types.js +222 -0
- package/dist/browser/value-types.js.map +1 -0
- package/dist/browser/worker-entry.d.ts.map +1 -1
- package/dist/browser/worker-entry.js +38 -1
- package/dist/browser/worker-entry.js.map +1 -1
- package/dist/browser/worker-protocol.d.ts +1 -1
- package/dist/browser/worker-protocol.d.ts.map +1 -1
- package/dist/browser/worker-transport.d.ts +8 -2
- package/dist/browser/worker-transport.d.ts.map +1 -1
- package/dist/browser/worker-transport.js +26 -2
- package/dist/browser/worker-transport.js.map +1 -1
- package/dist/firebird.d.ts +58 -5
- package/dist/firebird.d.ts.map +1 -1
- package/dist/firebird.js +161 -52
- package/dist/firebird.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/sql-tag.d.ts +184 -0
- package/dist/sql-tag.d.ts.map +1 -0
- package/dist/sql-tag.js +287 -0
- package/dist/sql-tag.js.map +1 -0
- package/dist/statement-types.d.ts +23 -0
- package/dist/statement-types.d.ts.map +1 -0
- package/dist/statement-types.js +44 -0
- package/dist/statement-types.js.map +1 -0
- package/dist/types.d.ts +62 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/wasm/firebird-embedded.js +1 -1
- package/dist/wasm/firebird-embedded.wasm +0 -0
- package/dist/wasm-loader.d.ts +38 -2
- package/dist/wasm-loader.d.ts.map +1 -1
- package/dist/wasm-loader.js.map +1 -1
- package/package.json +3 -2
|
@@ -20,12 +20,18 @@
|
|
|
20
20
|
* one never actually suspends.
|
|
21
21
|
*/
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.DirectTransport = void 0;
|
|
23
|
+
exports.DirectTransport = exports.BLOB_SIDE_CHANNEL = exports.OPFS_MOUNT = void 0;
|
|
24
24
|
exports.decodeResultSet = decodeResultSet;
|
|
25
|
+
exports.decodeDescription = decodeDescription;
|
|
26
|
+
exports.attachBlobs = attachBlobs;
|
|
25
27
|
const wasm_loader_1 = require("../wasm-loader");
|
|
26
28
|
const isolation_1 = require("./isolation");
|
|
27
29
|
const params_1 = require("./params");
|
|
28
30
|
const field_types_1 = require("./field-types");
|
|
31
|
+
const statement_types_1 = require("../statement-types");
|
|
32
|
+
const opfs_fs_1 = require("./opfs-fs");
|
|
33
|
+
/** Where an OPFS-backed database is mounted inside the engine's filesystem. */
|
|
34
|
+
exports.OPFS_MOUNT = '/opfs';
|
|
29
35
|
// ---------------------------------------------------------------------------
|
|
30
36
|
// Shared helpers
|
|
31
37
|
// ---------------------------------------------------------------------------
|
|
@@ -41,8 +47,95 @@ function engineError(mod, context, code) {
|
|
|
41
47
|
const suffix = code === undefined ? '' : ` (code ${code})`;
|
|
42
48
|
return new Error(detail ? `${context}${suffix}: ${detail}` : `${context}${suffix}`);
|
|
43
49
|
}
|
|
44
|
-
|
|
45
|
-
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
// Row construction
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
/**
|
|
54
|
+
* Row builders, keyed by the column-name signature.
|
|
55
|
+
*
|
|
56
|
+
* Building one costs more than it saves on a single small result, so a query
|
|
57
|
+
* run repeatedly — which is most of them — has to reuse the builder. Measured
|
|
58
|
+
* on 5 columns: rebuilding per call turns 2.5 ms into 5.5 ms across 2000
|
|
59
|
+
* one-row queries, while reusing turns it into 1.1 ms.
|
|
60
|
+
*/
|
|
61
|
+
const rowBuilders = new Map();
|
|
62
|
+
/**
|
|
63
|
+
* Cap on distinct shapes remembered. Cleared wholesale rather than evicted
|
|
64
|
+
* one at a time: this exists to stop unbounded growth in a process issuing
|
|
65
|
+
* endlessly varied `SELECT` lists, not to be a good cache.
|
|
66
|
+
*/
|
|
67
|
+
const MAX_ROW_BUILDERS = 64;
|
|
68
|
+
/** Set once `new Function` is known to be unavailable — see {@link rowBuilder}. */
|
|
69
|
+
let codeGenerationBlocked = false;
|
|
70
|
+
/**
|
|
71
|
+
* A column name as a JavaScript string literal.
|
|
72
|
+
*
|
|
73
|
+
* `JSON.stringify` handles quotes, backslashes and control characters. U+2028
|
|
74
|
+
* and U+2029 are legal in string literals from ES2019 and are escaped anyway,
|
|
75
|
+
* because the cost is nothing and the failure would be a syntax error at
|
|
76
|
+
* runtime on an older engine.
|
|
77
|
+
*/
|
|
78
|
+
function stringLiteral(name) {
|
|
79
|
+
return JSON.stringify(name)
|
|
80
|
+
.replace(/\u2028/g, '\\u2028')
|
|
81
|
+
.replace(/\u2029/g, '\\u2029');
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Build a function that turns one row of values into an object.
|
|
85
|
+
*
|
|
86
|
+
* Generated with literal keys, which is the whole point: every row then shares
|
|
87
|
+
* one hidden class, and the engine can compile the construction. The obvious
|
|
88
|
+
* safe alternative — computed keys, `{[name]: c[0]}` — forces dictionary-mode
|
|
89
|
+
* objects and measured *no faster than `Object.fromEntries`* (14.7 ms against
|
|
90
|
+
* 15.2 ms on 10,000 rows), so it is not a trade worth making.
|
|
91
|
+
*
|
|
92
|
+
* Returns null when the caller must fall back:
|
|
93
|
+
*
|
|
94
|
+
* - A column named `__proto__`. As a literal key that sets the prototype
|
|
95
|
+
* instead of defining a property, so the value would be silently lost.
|
|
96
|
+
* `Object.fromEntries` defines it correctly, so the slow path is also the
|
|
97
|
+
* right path here. Unreachable today, because column names are upper-cased
|
|
98
|
+
* before they get here and `__PROTO__` is an ordinary key — kept because the
|
|
99
|
+
* guard costs one comparison and the upper-casing is not this function's to
|
|
100
|
+
* rely on.
|
|
101
|
+
* - A Content-Security-Policy without `unsafe-eval`, where `new Function`
|
|
102
|
+
* throws. Remembered, so it is attempted once rather than per query.
|
|
103
|
+
*/
|
|
104
|
+
function rowBuilder(names) {
|
|
105
|
+
if (codeGenerationBlocked || names.includes('__proto__')) {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
// \u0000 cannot appear in a Firebird identifier, so it cannot make two
|
|
109
|
+
// different column lists collide.
|
|
110
|
+
const signature = names.join('\u0000');
|
|
111
|
+
const cached = rowBuilders.get(signature);
|
|
112
|
+
if (cached)
|
|
113
|
+
return cached;
|
|
114
|
+
let built;
|
|
115
|
+
try {
|
|
116
|
+
built = new Function('c', 'return {' + names.map((n, i) => `${stringLiteral(n)}:c[${i}]`).join(',') + '}');
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
// A strict CSP. Every later result set takes the fallback without
|
|
120
|
+
// re-testing, and nothing about the returned rows changes.
|
|
121
|
+
codeGenerationBlocked = true;
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
if (rowBuilders.size >= MAX_ROW_BUILDERS) {
|
|
125
|
+
rowBuilders.clear();
|
|
126
|
+
}
|
|
127
|
+
rowBuilders.set(signature, built);
|
|
128
|
+
return built;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Decode the engine's JSON result set.
|
|
132
|
+
*
|
|
133
|
+
* `rowMode: 'array'` returns the parsed rows as they arrive — the engine
|
|
134
|
+
* already sends each row as an array of values, so this is the one shape that
|
|
135
|
+
* costs nothing to produce. Object mode is what the row builder above exists
|
|
136
|
+
* for, and what the decode benchmark measures.
|
|
137
|
+
*/
|
|
138
|
+
function decodeResultSet(json, rowMode = 'object') {
|
|
46
139
|
const parsed = JSON.parse(json);
|
|
47
140
|
const fields = parsed.columns.map((c) => ({
|
|
48
141
|
name: c.name.toUpperCase(),
|
|
@@ -53,9 +146,119 @@ function decodeResultSet(json) {
|
|
|
53
146
|
length: c.length,
|
|
54
147
|
nullable: c.nullable,
|
|
55
148
|
}));
|
|
56
|
-
|
|
149
|
+
if (rowMode === 'array') {
|
|
150
|
+
// Handed straight through: no builder, no per-row object, and nothing to
|
|
151
|
+
// collide when two columns share a name.
|
|
152
|
+
return { rows: parsed.rows, fields };
|
|
153
|
+
}
|
|
154
|
+
const names = fields.map((f) => f.name);
|
|
155
|
+
const build = rowBuilder(names);
|
|
156
|
+
const rows = (build
|
|
157
|
+
? parsed.rows.map(build)
|
|
158
|
+
: parsed.rows.map((cols) => Object.fromEntries(names.map((name, i) => [name, cols[i]]))));
|
|
57
159
|
return { rows, fields };
|
|
58
160
|
}
|
|
161
|
+
/** One field of a description, as the engine encodes it. */
|
|
162
|
+
function decodeField(c) {
|
|
163
|
+
return {
|
|
164
|
+
name: c.name.toUpperCase(),
|
|
165
|
+
type: c.type,
|
|
166
|
+
typeName: (0, field_types_1.firebirdTypeName)(c.type, c.scale),
|
|
167
|
+
subType: c.subType,
|
|
168
|
+
scale: c.scale,
|
|
169
|
+
length: c.length,
|
|
170
|
+
nullable: c.nullable,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
/** Decode what `fb_describe` reports about a statement. */
|
|
174
|
+
function decodeDescription(json) {
|
|
175
|
+
const parsed = JSON.parse(json);
|
|
176
|
+
const fields = parsed.columns.map(decodeField);
|
|
177
|
+
return {
|
|
178
|
+
// Parameters are positional in Firebird and carry no name, so the engine
|
|
179
|
+
// sends "" and upper-casing it changes nothing — they are described by
|
|
180
|
+
// type and position alone.
|
|
181
|
+
params: parsed.params.map(decodeField),
|
|
182
|
+
fields,
|
|
183
|
+
statementType: (0, statement_types_1.statementKind)(parsed.statementType),
|
|
184
|
+
// Derived rather than reported separately: a statement yields rows exactly
|
|
185
|
+
// when it describes some.
|
|
186
|
+
hasResultSet: fields.length > 0,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
// ---------------------------------------------------------------------------
|
|
190
|
+
// Binary BLOB side channel
|
|
191
|
+
// ---------------------------------------------------------------------------
|
|
192
|
+
/** `flags` bit asking the engine to send binary BLOBs beside the JSON. */
|
|
193
|
+
exports.BLOB_SIDE_CHANNEL = 1;
|
|
194
|
+
function isBlobRef(value) {
|
|
195
|
+
return (typeof value === 'object' &&
|
|
196
|
+
value !== null &&
|
|
197
|
+
typeof value.$blob === 'number');
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Copy the side buffer out of the WASM heap into one JavaScript buffer.
|
|
201
|
+
*
|
|
202
|
+
* One copy, and it is not the "no copy" the plan hoped for. A `Uint8Array`
|
|
203
|
+
* over `HEAPU8.buffer` is a view into memory the engine reuses on the next
|
|
204
|
+
* query and that `ALLOW_MEMORY_GROWTH` can detach from underneath it, so
|
|
205
|
+
* handing such a view to a caller would be handing them something that goes
|
|
206
|
+
* wrong later and elsewhere. What the side channel actually removes is the
|
|
207
|
+
* 33% base64 inflation, the JSON string for those bytes, and the `atob` plus
|
|
208
|
+
* per-byte loop that decoded them — measured in the benchmark.
|
|
209
|
+
*
|
|
210
|
+
* The single buffer is deliberate: it is what a Worker can *transfer* rather
|
|
211
|
+
* than clone, which is the other half of the win and impossible for a base64
|
|
212
|
+
* string.
|
|
213
|
+
*/
|
|
214
|
+
function readBlobs(mod) {
|
|
215
|
+
const ptr = mod._fb_last_blobs();
|
|
216
|
+
const size = mod._fb_last_blobs_size();
|
|
217
|
+
if (ptr === 0 || size === 0)
|
|
218
|
+
return null;
|
|
219
|
+
// Re-read HEAPU8 rather than closing over it: the query may have grown the
|
|
220
|
+
// heap, which replaces the buffer and detaches older views.
|
|
221
|
+
const heap = mod.HEAPU8;
|
|
222
|
+
const view = new DataView(heap.buffer, heap.byteOffset + ptr, size);
|
|
223
|
+
const count = view.getUint32(0, true);
|
|
224
|
+
const headerBytes = 4 * (1 + count);
|
|
225
|
+
const blobs = new Array(count);
|
|
226
|
+
let offset = headerBytes;
|
|
227
|
+
for (let i = 0; i < count; i++) {
|
|
228
|
+
const length = view.getUint32(4 * (1 + i), true);
|
|
229
|
+
// slice() copies; subarray() would alias the heap.
|
|
230
|
+
blobs[i] = heap.slice(ptr + offset, ptr + offset + length);
|
|
231
|
+
offset += length;
|
|
232
|
+
}
|
|
233
|
+
return blobs;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Replace every `{"$blob":N}` placeholder with its bytes.
|
|
237
|
+
*
|
|
238
|
+
* Walks the decoded rows rather than the JSON text: the values are already
|
|
239
|
+
* parsed, and a placeholder is the only object a row can contain, so
|
|
240
|
+
* recognising one is a type check rather than a search.
|
|
241
|
+
*/
|
|
242
|
+
function attachBlobs(result, blobs, rowMode) {
|
|
243
|
+
for (const row of result.rows) {
|
|
244
|
+
if (rowMode === 'array') {
|
|
245
|
+
const values = row;
|
|
246
|
+
for (let i = 0; i < values.length; i++) {
|
|
247
|
+
const value = values[i];
|
|
248
|
+
if (isBlobRef(value))
|
|
249
|
+
values[i] = blobs[value.$blob];
|
|
250
|
+
}
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
253
|
+
const target = row;
|
|
254
|
+
for (const key of Object.keys(target)) {
|
|
255
|
+
const value = target[key];
|
|
256
|
+
if (isBlobRef(value))
|
|
257
|
+
target[key] = blobs[value.$blob];
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
return result;
|
|
261
|
+
}
|
|
59
262
|
// ---------------------------------------------------------------------------
|
|
60
263
|
// DirectTransport
|
|
61
264
|
// ---------------------------------------------------------------------------
|
|
@@ -156,21 +359,39 @@ class DirectTransport {
|
|
|
156
359
|
}
|
|
157
360
|
return mod._fb_last_affected_rows();
|
|
158
361
|
}
|
|
159
|
-
async query(dbHandle, txHandle, sql, params = []) {
|
|
362
|
+
async query(dbHandle, txHandle, sql, params = [], rowMode = 'object', binaryBlobs = false) {
|
|
160
363
|
const mod = this.module;
|
|
364
|
+
const flags = binaryBlobs ? exports.BLOB_SIDE_CHANNEL : 0;
|
|
161
365
|
return this.withString(sql, (sqlPtr) => this.withParams(params, (paramPtr, paramLen) => {
|
|
162
366
|
const resultPtr = params.length === 0
|
|
163
|
-
? mod._fb_query(dbHandle, txHandle, sqlPtr)
|
|
164
|
-
: mod._fb_query_params(dbHandle, txHandle, sqlPtr, paramPtr, paramLen);
|
|
367
|
+
? mod._fb_query(dbHandle, txHandle, sqlPtr, flags)
|
|
368
|
+
: mod._fb_query_params(dbHandle, txHandle, sqlPtr, paramPtr, paramLen, flags);
|
|
165
369
|
if (resultPtr === 0) {
|
|
166
370
|
throw engineError(mod, `Firebird query failed for: ${sql}`);
|
|
167
371
|
}
|
|
168
372
|
// The engine owns the buffer until fb_free_result.
|
|
169
373
|
const json = mod.UTF8ToString(resultPtr);
|
|
170
374
|
mod._fb_free_result(resultPtr);
|
|
171
|
-
|
|
375
|
+
// Read before anything else can run: the side buffer belongs to the
|
|
376
|
+
// engine and the next query replaces it.
|
|
377
|
+
const blobs = binaryBlobs ? readBlobs(mod) : null;
|
|
378
|
+
const result = decodeResultSet(json, rowMode);
|
|
379
|
+
return blobs ? attachBlobs(result, blobs, rowMode) : result;
|
|
172
380
|
}));
|
|
173
381
|
}
|
|
382
|
+
async describe(dbHandle, txHandle, sql) {
|
|
383
|
+
const mod = this.module;
|
|
384
|
+
return this.withString(sql, (sqlPtr) => {
|
|
385
|
+
const resultPtr = mod._fb_describe(dbHandle, txHandle, sqlPtr);
|
|
386
|
+
if (resultPtr === 0) {
|
|
387
|
+
throw engineError(mod, `Firebird could not describe: ${sql}`);
|
|
388
|
+
}
|
|
389
|
+
// Same ownership rule as a result set: the engine owns it until freed.
|
|
390
|
+
const json = mod.UTF8ToString(resultPtr);
|
|
391
|
+
mod._fb_free_result(resultPtr);
|
|
392
|
+
return decodeDescription(json);
|
|
393
|
+
});
|
|
394
|
+
}
|
|
174
395
|
async startTransaction(dbHandle, options = {}) {
|
|
175
396
|
const mod = this.module;
|
|
176
397
|
const txHandle = mod._fb_start_transaction_ex(dbHandle, (0, isolation_1.isolationCode)(options), options.readOnly === true ? 1 : 0);
|
|
@@ -207,6 +428,48 @@ class DirectTransport {
|
|
|
207
428
|
async writeFile(path, data) {
|
|
208
429
|
this.module.FS.writeFile(path, data);
|
|
209
430
|
}
|
|
431
|
+
async unlink(path) {
|
|
432
|
+
if (this.module.FS.analyzePath(path).exists) {
|
|
433
|
+
this.module.FS.unlink(path);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
async eventsSubscribe(dbHandle, names) {
|
|
437
|
+
const mod = this.module;
|
|
438
|
+
return this.withString(names.join(','), (namesPtr) => {
|
|
439
|
+
const handle = mod._fb_events_subscribe(dbHandle, namesPtr);
|
|
440
|
+
if (handle === 0) {
|
|
441
|
+
throw engineError(mod, `Could not subscribe to events: ${names.join(', ')}`);
|
|
442
|
+
}
|
|
443
|
+
return handle;
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
async eventsPoll(subscription) {
|
|
447
|
+
const mod = this.module;
|
|
448
|
+
const ptr = mod._fb_events_poll(subscription);
|
|
449
|
+
if (ptr === 0) {
|
|
450
|
+
throw engineError(mod, 'Could not poll events');
|
|
451
|
+
}
|
|
452
|
+
const json = mod.UTF8ToString(ptr);
|
|
453
|
+
mod._free(ptr);
|
|
454
|
+
return JSON.parse(json);
|
|
455
|
+
}
|
|
456
|
+
async eventsCancel(subscription) {
|
|
457
|
+
// A subscription that is already gone is not an error worth raising: the
|
|
458
|
+
// caller is unsubscribing, and it is unsubscribed.
|
|
459
|
+
this.module._fb_events_cancel(subscription);
|
|
460
|
+
}
|
|
461
|
+
async mountOpfs(dbName) {
|
|
462
|
+
if (!(0, opfs_fs_1.opfsAvailable)()) {
|
|
463
|
+
throw new Error('OPFS storage needs a Worker: FileSystemSyncAccessHandle is not ' +
|
|
464
|
+
'available on a main thread, and Node has no OPFS at all. Pass a ' +
|
|
465
|
+
'`worker` to FirebirdBrowser, or use an IndexedDB or memory:// database');
|
|
466
|
+
}
|
|
467
|
+
// Opened before the mount, because a filesystem callback cannot await.
|
|
468
|
+
const handle = await (0, opfs_fs_1.openDatabaseHandle)(dbName);
|
|
469
|
+
const fileName = `${dbName}.fdb`;
|
|
470
|
+
(0, opfs_fs_1.mountOpfs)(this.module, exports.OPFS_MOUNT, new Map([[fileName, handle]]));
|
|
471
|
+
return `${exports.OPFS_MOUNT}/${fileName}`;
|
|
472
|
+
}
|
|
210
473
|
async dispose() {
|
|
211
474
|
// The module is cached process-wide by loadFirebirdWasm and shared with
|
|
212
475
|
// any other instance, so it is deliberately not torn down here.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-transport.js","sourceRoot":"","sources":["../../src/browser/engine-transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine-transport.js","sourceRoot":"","sources":["../../src/browser/engine-transport.ts"],"names":[],"mappings":"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"}
|