firebird-wasm 0.6.1 → 0.8.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 +224 -0
- package/README.md +5 -4
- package/dist/.tsbuildinfo.build +1 -1
- package/dist/browser/db-lock.d.ts +11 -4
- package/dist/browser/db-lock.d.ts.map +1 -1
- package/dist/browser/db-lock.js +60 -10
- package/dist/browser/db-lock.js.map +1 -1
- package/dist/browser/engine-transport.d.ts +20 -2
- package/dist/browser/engine-transport.d.ts.map +1 -1
- package/dist/browser/engine-transport.js +111 -24
- package/dist/browser/engine-transport.js.map +1 -1
- package/dist/browser/firebird-browser.d.ts +14 -6
- package/dist/browser/firebird-browser.d.ts.map +1 -1
- package/dist/browser/firebird-browser.js +82 -33
- package/dist/browser/firebird-browser.js.map +1 -1
- package/dist/browser/index.d.ts +5 -2
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +14 -6
- package/dist/browser/index.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 +83 -0
- package/dist/electric/index.d.ts.map +1 -0
- package/dist/electric/index.js +210 -0
- package/dist/electric/index.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 +243 -0
- package/dist/electric/values.js.map +1 -0
- package/dist/electric-server/capture.d.ts +36 -0
- package/dist/electric-server/capture.d.ts.map +1 -0
- package/dist/electric-server/capture.js +148 -0
- package/dist/electric-server/capture.js.map +1 -0
- package/dist/electric-server/catalog.d.ts +59 -0
- package/dist/electric-server/catalog.d.ts.map +1 -0
- package/dist/electric-server/catalog.js +122 -0
- package/dist/electric-server/catalog.js.map +1 -0
- package/dist/electric-server/index.d.ts +58 -0
- package/dist/electric-server/index.d.ts.map +1 -0
- package/dist/electric-server/index.js +348 -0
- package/dist/electric-server/index.js.map +1 -0
- package/dist/firebird.d.ts +3 -1
- package/dist/firebird.d.ts.map +1 -1
- package/dist/firebird.js +250 -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 +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -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 +7 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +10 -0
- package/dist/version.js.map +1 -0
- 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 +5 -0
- package/dist/wasm/firebird-embedded-st.wasm +0 -0
- package/dist/wasm/firebird-embedded.js +4 -1
- package/dist/wasm/firebird-embedded.wasm +0 -0
- package/dist/wasm-loader.d.ts +82 -0
- package/dist/wasm-loader.d.ts.map +1 -1
- package/dist/wasm-loader.js +101 -9
- package/dist/wasm-loader.js.map +1 -1
- package/package.json +51 -3
- package/dist/browser/statement-types.d.ts +0 -18
- package/dist/browser/statement-types.d.ts.map +0 -1
- package/dist/browser/statement-types.js +0 -39
- package/dist/browser/statement-types.js.map +0 -1
package/dist/browser/db-lock.js
CHANGED
|
@@ -33,20 +33,32 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
33
33
|
exports.DatabaseLockedError = void 0;
|
|
34
34
|
exports.databaseLockName = databaseLockName;
|
|
35
35
|
exports.acquireDatabaseLock = acquireDatabaseLock;
|
|
36
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* Thrown when the database is already open: in another tab that did not
|
|
38
|
+
* release it in time, or by another instance in this very page.
|
|
39
|
+
*/
|
|
37
40
|
class DatabaseLockedError extends Error {
|
|
38
41
|
constructor(
|
|
39
42
|
/** The logical database name that is held elsewhere. */
|
|
40
43
|
dbName,
|
|
41
|
-
/** How long we waited, in milliseconds. */
|
|
42
|
-
waitedMs
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
`
|
|
47
|
-
|
|
44
|
+
/** How long we waited, in milliseconds (0 when it is held in this page). */
|
|
45
|
+
waitedMs,
|
|
46
|
+
/** Where it is held: another tab or worker, or this page itself. */
|
|
47
|
+
heldBy = 'other') {
|
|
48
|
+
super(heldBy === 'this-page'
|
|
49
|
+
? `Database "${dbName}" is already open in this page, by another ` +
|
|
50
|
+
`FirebirdBrowser that has not been closed. Both would use the one ` +
|
|
51
|
+
`file and each persist its own view of it, so one would silently ` +
|
|
52
|
+
`discard the other's writes. Share the open instance, or close() ` +
|
|
53
|
+
`it before opening the name again.`
|
|
54
|
+
: `Database "${dbName}" is already open in another tab or worker ` +
|
|
55
|
+
`(waited ${waitedMs}ms). Each tab keeps its own full copy of the ` +
|
|
56
|
+
`database, so allowing both would silently discard one tab's writes. ` +
|
|
57
|
+
`Close the other tab, or pass multiTab: 'allow-unsafe' if you are ` +
|
|
58
|
+
`certain only one of them writes.`);
|
|
48
59
|
this.dbName = dbName;
|
|
49
60
|
this.waitedMs = waitedMs;
|
|
61
|
+
this.heldBy = heldBy;
|
|
50
62
|
this.name = 'DatabaseLockedError';
|
|
51
63
|
}
|
|
52
64
|
}
|
|
@@ -55,6 +67,14 @@ exports.DatabaseLockedError = DatabaseLockedError;
|
|
|
55
67
|
// Implementation
|
|
56
68
|
// ---------------------------------------------------------------------------
|
|
57
69
|
const DEFAULT_TIMEOUT_MS = 5000;
|
|
70
|
+
/**
|
|
71
|
+
* The databases this realm (a page, a worker, a Node process) holds. Web
|
|
72
|
+
* Locks cannot tell a second instance in this page from another tab, so it
|
|
73
|
+
* would wait out the timeout and blame "another tab"; and where Web Locks are
|
|
74
|
+
* missing, as in Node, nothing would stop it at all. This page knows what it
|
|
75
|
+
* holds, so it refuses at once and says so.
|
|
76
|
+
*/
|
|
77
|
+
const heldHere = new Set();
|
|
58
78
|
/** Lock names are namespaced so they cannot collide with an app's own locks. */
|
|
59
79
|
function databaseLockName(dbName) {
|
|
60
80
|
return `firebird-wasm:db:${dbName}`;
|
|
@@ -81,12 +101,28 @@ function locksAvailable() {
|
|
|
81
101
|
*/
|
|
82
102
|
async function acquireDatabaseLock(dbName, options = {}) {
|
|
83
103
|
const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
104
|
+
if (heldHere.has(dbName)) {
|
|
105
|
+
throw new DatabaseLockedError(dbName, 0, 'this-page');
|
|
106
|
+
}
|
|
107
|
+
// Reserved now, not once granted: a second instance racing this one is in
|
|
108
|
+
// this page too, and must be told so rather than queue behind it.
|
|
109
|
+
heldHere.add(dbName);
|
|
110
|
+
try {
|
|
111
|
+
return await acquireCrossTab(dbName, timeoutMs, options);
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
heldHere.delete(dbName);
|
|
115
|
+
throw err;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/** The cross-tab half of {@link acquireDatabaseLock}: the Web Lock itself. */
|
|
119
|
+
async function acquireCrossTab(dbName, timeoutMs, options) {
|
|
84
120
|
if (!locksAvailable()) {
|
|
85
121
|
const warn = options.onUnavailable ?? ((m) => console.warn(m));
|
|
86
122
|
warn('[firebird-wasm] the Web Locks API is unavailable, so concurrent tabs ' +
|
|
87
123
|
'cannot be detected. Opening the same database in two places will ' +
|
|
88
124
|
'silently lose writes.');
|
|
89
|
-
return { enforced: false, release: async () => { } };
|
|
125
|
+
return holdHere(dbName, { enforced: false, release: async () => { } });
|
|
90
126
|
}
|
|
91
127
|
const name = databaseLockName(dbName);
|
|
92
128
|
const startedAt = nowMs();
|
|
@@ -132,7 +168,7 @@ async function acquireDatabaseLock(dbName, options = {}) {
|
|
|
132
168
|
if (timer !== null)
|
|
133
169
|
clearTimeout(timer);
|
|
134
170
|
let released = false;
|
|
135
|
-
return {
|
|
171
|
+
return holdHere(dbName, {
|
|
136
172
|
enforced: true,
|
|
137
173
|
release: async () => {
|
|
138
174
|
if (released)
|
|
@@ -143,6 +179,20 @@ async function acquireDatabaseLock(dbName, options = {}) {
|
|
|
143
179
|
// resolves: a caller that reopens immediately must not race itself.
|
|
144
180
|
await done.catch(() => { });
|
|
145
181
|
},
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
/** Keep `dbName` recorded as held in this realm until `lock` is released. */
|
|
185
|
+
function holdHere(dbName, lock) {
|
|
186
|
+
let released = false;
|
|
187
|
+
return {
|
|
188
|
+
enforced: lock.enforced,
|
|
189
|
+
release: async () => {
|
|
190
|
+
if (released)
|
|
191
|
+
return;
|
|
192
|
+
released = true;
|
|
193
|
+
heldHere.delete(dbName);
|
|
194
|
+
await lock.release();
|
|
195
|
+
},
|
|
146
196
|
};
|
|
147
197
|
}
|
|
148
198
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-lock.js","sourceRoot":"","sources":["../../src/browser/db-lock.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;;;
|
|
1
|
+
{"version":3,"file":"db-lock.js","sourceRoot":"","sources":["../../src/browser/db-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* Every method is async so the two are interchangeable, even though the direct
|
|
19
19
|
* one never actually suspends.
|
|
20
20
|
*/
|
|
21
|
-
import type { Row, QueryResult, QueryDescription, QueryParams, RowMode, TransactionOptions } from '../types';
|
|
21
|
+
import type { Row, QueryResult, QueryDescription, FieldInfo, QueryParams, RowMode, TransactionOptions } from '../types';
|
|
22
22
|
/** Where an OPFS-backed database is mounted inside the engine's filesystem. */
|
|
23
23
|
export declare const OPFS_MOUNT = "/opfs";
|
|
24
24
|
/** Opaque engine handle (database or transaction). 0 means "none". */
|
|
@@ -96,6 +96,8 @@ export interface EngineTransport {
|
|
|
96
96
|
export interface DirectTransportOptions {
|
|
97
97
|
wasmBinary?: ArrayBuffer | string;
|
|
98
98
|
locateFile?: (filename: string) => string;
|
|
99
|
+
/** Which build to load; see {@link import('../wasm-loader').WasmLoadOptions.threads}. */
|
|
100
|
+
threads?: boolean | 'auto';
|
|
99
101
|
}
|
|
100
102
|
/**
|
|
101
103
|
* Decode the engine's JSON result set.
|
|
@@ -105,11 +107,18 @@ export interface DirectTransportOptions {
|
|
|
105
107
|
* costs nothing to produce. Object mode is what the row builder above exists
|
|
106
108
|
* for, and what the decode benchmark measures.
|
|
107
109
|
*/
|
|
108
|
-
export declare function decodeResultSet<T = Row>(json: string, rowMode?: RowMode): QueryResult<T>;
|
|
110
|
+
export declare function decodeResultSet<T = Row>(json: string, rowMode?: RowMode, shapes?: (id: number) => readonly FieldInfo[]): QueryResult<T>;
|
|
109
111
|
/** Decode what `fb_describe` reports about a statement. */
|
|
110
112
|
export declare function decodeDescription(json: string): QueryDescription;
|
|
111
113
|
/** `flags` bit asking the engine to send binary BLOBs beside the JSON. */
|
|
112
114
|
export declare const BLOB_SIDE_CHANNEL = 1;
|
|
115
|
+
/**
|
|
116
|
+
* `fb_query` flag bit: a kept statement's result may name its columns by id,
|
|
117
|
+
* `{"shape":N,"rows":[...]}`, rather than describe them again. The ids are
|
|
118
|
+
* the engine module's own and never reused, so the transport that loaded the
|
|
119
|
+
* module keeps what each one means.
|
|
120
|
+
*/
|
|
121
|
+
export declare const SHAPE_IDS = 2;
|
|
113
122
|
/**
|
|
114
123
|
* Replace every `{"$blob":N}` placeholder with its bytes.
|
|
115
124
|
*
|
|
@@ -128,6 +137,15 @@ export declare class DirectTransport implements EngineTransport {
|
|
|
128
137
|
private readonly options;
|
|
129
138
|
private mod;
|
|
130
139
|
private initPromise;
|
|
140
|
+
/** What each shape id of this module's engine means (see SHAPE_IDS). */
|
|
141
|
+
private readonly shapes;
|
|
142
|
+
/**
|
|
143
|
+
* The fields of shape `id`: remembered, or asked of the engine once. Called
|
|
144
|
+
* while decoding, right after the query that named the id and before any
|
|
145
|
+
* other engine call, when the statement holding that shape is the cache's
|
|
146
|
+
* most recently used and still kept.
|
|
147
|
+
*/
|
|
148
|
+
private readonly shapeColumns;
|
|
131
149
|
constructor(options?: DirectTransportOptions);
|
|
132
150
|
init(): Promise<void>;
|
|
133
151
|
private doInit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-transport.d.ts","sourceRoot":"","sources":["../../src/browser/engine-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EACV,GAAG,EACH,WAAW,EACX,gBAAgB,
|
|
1
|
+
{"version":3,"file":"engine-transport.d.ts","sourceRoot":"","sources":["../../src/browser/engine-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* one never actually suspends.
|
|
21
21
|
*/
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.DirectTransport = exports.BLOB_SIDE_CHANNEL = exports.OPFS_MOUNT = void 0;
|
|
23
|
+
exports.DirectTransport = exports.SHAPE_IDS = exports.BLOB_SIDE_CHANNEL = exports.OPFS_MOUNT = void 0;
|
|
24
24
|
exports.decodeResultSet = decodeResultSet;
|
|
25
25
|
exports.decodeDescription = decodeDescription;
|
|
26
26
|
exports.attachBlobs = attachBlobs;
|
|
@@ -48,6 +48,64 @@ function engineError(mod, context, code) {
|
|
|
48
48
|
return new Error(detail ? `${context}${suffix}: ${detail}` : `${context}${suffix}`);
|
|
49
49
|
}
|
|
50
50
|
// ---------------------------------------------------------------------------
|
|
51
|
+
// Column descriptions
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
/**
|
|
54
|
+
* Decoded field lists by the text of their columns' JSON.
|
|
55
|
+
*
|
|
56
|
+
* A kept statement describes the same columns on every call, in the same
|
|
57
|
+
* bytes, so the description is parsed and turned into `FieldInfo`s once
|
|
58
|
+
* (bench/call-cost.js measured the decode of ten columns' description at
|
|
59
|
+
* about 7 µs a call). Bounded like `rowBuilders`, and for the same reason.
|
|
60
|
+
*/
|
|
61
|
+
const fieldLists = new Map();
|
|
62
|
+
const MAX_FIELD_LISTS = 256;
|
|
63
|
+
const COLUMNS_PREFIX = '{"columns":';
|
|
64
|
+
const SHAPE_PREFIX = '{"shape":';
|
|
65
|
+
const ROWS_KEY = ',"rows":';
|
|
66
|
+
const ROWS_INFIX = '],"rows":';
|
|
67
|
+
/**
|
|
68
|
+
* Split the engine's `{"columns":[…],"rows":[…]}` into its two parts,
|
|
69
|
+
* parsing the rows and taking the columns from the cache when it has them.
|
|
70
|
+
*
|
|
71
|
+
* The first `],"rows":` is the boundary: it cannot occur inside a column
|
|
72
|
+
* name, where every `"` is escaped. Anything else is parsed whole.
|
|
73
|
+
*/
|
|
74
|
+
function splitResultSet(json, shapes) {
|
|
75
|
+
if (shapes && json.startsWith(SHAPE_PREFIX)) {
|
|
76
|
+
const comma = json.indexOf(',', SHAPE_PREFIX.length);
|
|
77
|
+
const id = Number(json.slice(SHAPE_PREFIX.length, comma));
|
|
78
|
+
const rows = JSON.parse(json.slice(comma + ROWS_KEY.length, -1));
|
|
79
|
+
return { columns: shapes(id), rows };
|
|
80
|
+
}
|
|
81
|
+
const split = json.startsWith(COLUMNS_PREFIX) && json.endsWith('}') ? json.indexOf(ROWS_INFIX) : -1;
|
|
82
|
+
if (split < 0) {
|
|
83
|
+
const parsed = JSON.parse(json);
|
|
84
|
+
return { columns: toFields(parsed.columns), rows: parsed.rows };
|
|
85
|
+
}
|
|
86
|
+
const columnsText = json.slice(COLUMNS_PREFIX.length, split + 1);
|
|
87
|
+
let columns = fieldLists.get(columnsText);
|
|
88
|
+
if (!columns) {
|
|
89
|
+
columns = toFields(JSON.parse(columnsText));
|
|
90
|
+
if (fieldLists.size >= MAX_FIELD_LISTS)
|
|
91
|
+
fieldLists.clear();
|
|
92
|
+
fieldLists.set(columnsText, columns);
|
|
93
|
+
}
|
|
94
|
+
const rows = JSON.parse(json.slice(split + ROWS_INFIX.length, -1));
|
|
95
|
+
return { columns, rows };
|
|
96
|
+
}
|
|
97
|
+
function toFields(columns) {
|
|
98
|
+
return columns.map((c) => ({
|
|
99
|
+
name: c.name,
|
|
100
|
+
type: c.type,
|
|
101
|
+
typeName: (0, field_types_1.firebirdTypeName)(c.type, c.scale),
|
|
102
|
+
subType: c.subType,
|
|
103
|
+
scale: c.scale,
|
|
104
|
+
length: c.length,
|
|
105
|
+
nullable: c.nullable,
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
// ---------------------------------------------------------------------------
|
|
51
109
|
// Row construction
|
|
52
110
|
// ---------------------------------------------------------------------------
|
|
53
111
|
/**
|
|
@@ -94,10 +152,8 @@ function stringLiteral(name) {
|
|
|
94
152
|
* - A column named `__proto__`. As a literal key that sets the prototype
|
|
95
153
|
* instead of defining a property, so the value would be silently lost.
|
|
96
154
|
* `Object.fromEntries` defines it correctly, so the slow path is also the
|
|
97
|
-
* right path here.
|
|
98
|
-
*
|
|
99
|
-
* guard costs one comparison and the upper-casing is not this function's to
|
|
100
|
-
* rely on.
|
|
155
|
+
* right path here. A quoted alias keeps its case, so
|
|
156
|
+
* `SELECT 1 AS "__proto__"` reaches this.
|
|
101
157
|
* - A Content-Security-Policy without `unsafe-eval`, where `new Function`
|
|
102
158
|
* throws. Remembered, so it is attempted once rather than per query.
|
|
103
159
|
*/
|
|
@@ -135,33 +191,27 @@ function rowBuilder(names) {
|
|
|
135
191
|
* costs nothing to produce. Object mode is what the row builder above exists
|
|
136
192
|
* for, and what the decode benchmark measures.
|
|
137
193
|
*/
|
|
138
|
-
function decodeResultSet(json, rowMode = 'object') {
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
typeName: (0, field_types_1.firebirdTypeName)(c.type, c.scale),
|
|
144
|
-
subType: c.subType,
|
|
145
|
-
scale: c.scale,
|
|
146
|
-
length: c.length,
|
|
147
|
-
nullable: c.nullable,
|
|
148
|
-
}));
|
|
194
|
+
function decodeResultSet(json, rowMode = 'object', shapes) {
|
|
195
|
+
const { columns, rows: encodedRows } = splitResultSet(json, shapes);
|
|
196
|
+
// Copies: the cached list is shared by every call with these columns, and a
|
|
197
|
+
// caller is free to change the fields it was given.
|
|
198
|
+
const fields = columns.map((f) => ({ ...f }));
|
|
149
199
|
if (rowMode === 'array') {
|
|
150
200
|
// Handed straight through: no builder, no per-row object, and nothing to
|
|
151
201
|
// collide when two columns share a name.
|
|
152
|
-
return { rows:
|
|
202
|
+
return { rows: encodedRows, fields };
|
|
153
203
|
}
|
|
154
204
|
const names = fields.map((f) => f.name);
|
|
155
205
|
const build = rowBuilder(names);
|
|
156
206
|
const rows = (build
|
|
157
|
-
?
|
|
158
|
-
:
|
|
207
|
+
? encodedRows.map(build)
|
|
208
|
+
: encodedRows.map((cols) => Object.fromEntries(names.map((name, i) => [name, cols[i]]))));
|
|
159
209
|
return { rows, fields };
|
|
160
210
|
}
|
|
161
211
|
/** One field of a description, as the engine encodes it. */
|
|
162
212
|
function decodeField(c) {
|
|
163
213
|
return {
|
|
164
|
-
name: c.name
|
|
214
|
+
name: c.name,
|
|
165
215
|
type: c.type,
|
|
166
216
|
typeName: (0, field_types_1.firebirdTypeName)(c.type, c.scale),
|
|
167
217
|
subType: c.subType,
|
|
@@ -176,8 +226,7 @@ function decodeDescription(json) {
|
|
|
176
226
|
const fields = parsed.columns.map(decodeField);
|
|
177
227
|
return {
|
|
178
228
|
// Parameters are positional in Firebird and carry no name, so the engine
|
|
179
|
-
// sends ""
|
|
180
|
-
// type and position alone.
|
|
229
|
+
// sends "" — they are described by type and position alone.
|
|
181
230
|
params: parsed.params.map(decodeField),
|
|
182
231
|
fields,
|
|
183
232
|
statementType: (0, statement_types_1.statementKind)(parsed.statementType),
|
|
@@ -191,6 +240,13 @@ function decodeDescription(json) {
|
|
|
191
240
|
// ---------------------------------------------------------------------------
|
|
192
241
|
/** `flags` bit asking the engine to send binary BLOBs beside the JSON. */
|
|
193
242
|
exports.BLOB_SIDE_CHANNEL = 1;
|
|
243
|
+
/**
|
|
244
|
+
* `fb_query` flag bit: a kept statement's result may name its columns by id,
|
|
245
|
+
* `{"shape":N,"rows":[...]}`, rather than describe them again. The ids are
|
|
246
|
+
* the engine module's own and never reused, so the transport that loaded the
|
|
247
|
+
* module keeps what each one means.
|
|
248
|
+
*/
|
|
249
|
+
exports.SHAPE_IDS = 2;
|
|
194
250
|
function isBlobRef(value) {
|
|
195
251
|
return (typeof value === 'object' &&
|
|
196
252
|
value !== null &&
|
|
@@ -273,6 +329,36 @@ class DirectTransport {
|
|
|
273
329
|
this.options = options;
|
|
274
330
|
this.mod = null;
|
|
275
331
|
this.initPromise = null;
|
|
332
|
+
/** What each shape id of this module's engine means (see SHAPE_IDS). */
|
|
333
|
+
this.shapes = new Map();
|
|
334
|
+
/**
|
|
335
|
+
* The fields of shape `id`: remembered, or asked of the engine once. Called
|
|
336
|
+
* while decoding, right after the query that named the id and before any
|
|
337
|
+
* other engine call, when the statement holding that shape is the cache's
|
|
338
|
+
* most recently used and still kept.
|
|
339
|
+
*/
|
|
340
|
+
this.shapeColumns = (id) => {
|
|
341
|
+
const known = this.shapes.get(id);
|
|
342
|
+
if (known)
|
|
343
|
+
return known;
|
|
344
|
+
const mod = this.module;
|
|
345
|
+
const ptr = mod._fb_shape_columns(id);
|
|
346
|
+
if (ptr === 0) {
|
|
347
|
+
throw engineError(mod, `Firebird returned rows of a shape it no longer has (${id})`);
|
|
348
|
+
}
|
|
349
|
+
let parsed;
|
|
350
|
+
try {
|
|
351
|
+
parsed = JSON.parse(mod.UTF8ToString(ptr));
|
|
352
|
+
}
|
|
353
|
+
finally {
|
|
354
|
+
mod._fb_free_result(ptr);
|
|
355
|
+
}
|
|
356
|
+
const fields = toFields(parsed.columns);
|
|
357
|
+
if (this.shapes.size >= MAX_FIELD_LISTS)
|
|
358
|
+
this.shapes.clear();
|
|
359
|
+
this.shapes.set(id, fields);
|
|
360
|
+
return fields;
|
|
361
|
+
};
|
|
276
362
|
}
|
|
277
363
|
async init() {
|
|
278
364
|
// Concurrent first calls must not each load the module.
|
|
@@ -285,6 +371,7 @@ class DirectTransport {
|
|
|
285
371
|
this.mod = await (0, wasm_loader_1.loadFirebirdWasm)({
|
|
286
372
|
wasmBinary: this.options.wasmBinary,
|
|
287
373
|
locateFile: this.options.locateFile,
|
|
374
|
+
threads: this.options.threads,
|
|
288
375
|
});
|
|
289
376
|
const rc = this.mod._fb_init();
|
|
290
377
|
if (rc !== 0) {
|
|
@@ -380,7 +467,7 @@ class DirectTransport {
|
|
|
380
467
|
}
|
|
381
468
|
async query(dbHandle, txHandle, sql, params = [], rowMode = 'object', binaryBlobs = false) {
|
|
382
469
|
const mod = this.module;
|
|
383
|
-
const flags = binaryBlobs ? exports.BLOB_SIDE_CHANNEL : 0;
|
|
470
|
+
const flags = (binaryBlobs ? exports.BLOB_SIDE_CHANNEL : 0) | exports.SHAPE_IDS;
|
|
384
471
|
return this.withString(sql, (sqlPtr) => this.withParams(params, (paramPtr, paramLen) => {
|
|
385
472
|
const resultPtr = params.length === 0
|
|
386
473
|
? mod._fb_query(dbHandle, txHandle, sqlPtr, flags)
|
|
@@ -394,7 +481,7 @@ class DirectTransport {
|
|
|
394
481
|
// Read before anything else can run: the side buffer belongs to the
|
|
395
482
|
// engine and the next query replaces it.
|
|
396
483
|
const blobs = binaryBlobs ? readBlobs(mod) : null;
|
|
397
|
-
const result = decodeResultSet(json, rowMode);
|
|
484
|
+
const result = decodeResultSet(json, rowMode, this.shapeColumns);
|
|
398
485
|
return blobs ? attachBlobs(result, blobs, rowMode) : result;
|
|
399
486
|
}));
|
|
400
487
|
}
|
|
@@ -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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"}
|
|
@@ -115,16 +115,24 @@ export interface FirebirdBrowserOptions {
|
|
|
115
115
|
* @see {@link import('../wasm-loader').WasmLoadOptions.locateFile}
|
|
116
116
|
*/
|
|
117
117
|
locateFile?: (filename: string) => string;
|
|
118
|
+
/**
|
|
119
|
+
* Which build the engine loads in Node; see
|
|
120
|
+
* {@link import('../wasm-loader').WasmLoadOptions.threads}. In a browser
|
|
121
|
+
* the page chooses by the glue script it loads ({@link wasmGlueFile}).
|
|
122
|
+
*/
|
|
123
|
+
threads?: boolean | 'auto';
|
|
118
124
|
/**
|
|
119
125
|
* Worker running the engine.
|
|
120
126
|
*
|
|
121
|
-
* **Browsers need this
|
|
122
|
-
* on mutexes while opening a database, and a browser main
|
|
123
|
-
* allowed to block — without a Worker the page deadlocks.
|
|
124
|
-
* script from `firebird-wasm/browser/worker-entry`.
|
|
127
|
+
* **Browsers need this with the threaded build.** It uses pthreads, so
|
|
128
|
+
* Firebird blocks on mutexes while opening a database, and a browser main
|
|
129
|
+
* thread is not allowed to block — without a Worker the page deadlocks.
|
|
130
|
+
* Build the Worker script from `firebird-wasm/browser/worker-entry`.
|
|
125
131
|
*
|
|
126
|
-
* Omit it
|
|
127
|
-
*
|
|
132
|
+
* Omit it where blocking the calling thread is acceptable, such as Node or
|
|
133
|
+
* a test harness driving a stub engine, or with `firebird-embedded-st.js`,
|
|
134
|
+
* the build without threads, which never blocks and can run on the page
|
|
135
|
+
* thread (though a Worker still keeps long statements off it).
|
|
128
136
|
*
|
|
129
137
|
* With `multiTab: 'shared'` this must be a **factory**. It is called only
|
|
130
138
|
* if this tab wins the election, so a follower never downloads and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebird-browser.d.ts","sourceRoot":"","sources":["../../src/browser/firebird-browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAKxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAKjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,GAAG,EACH,WAAW,EACX,OAAO,EACP,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAElB,0EAA0E;AAC1E,KAAK,gBAAgB,GAAG,YAAY,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAM5D,2EAA2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,uEAAuE;AACvE,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IACnB,8DAA8D;IAC9D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,uEAAuE;IACvE,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,mDAAmD;AACnD,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,+DAA+D;AAC/D,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAClC;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C
|
|
1
|
+
{"version":3,"file":"firebird-browser.d.ts","sourceRoot":"","sources":["../../src/browser/firebird-browser.ts"],"names":[],"mappings":"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"}
|