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.
Files changed (64) hide show
  1. package/CHANGELOG.md +168 -0
  2. package/README.md +4 -1
  3. package/dist/.tsbuildinfo.build +1 -1
  4. package/dist/browser/engine-transport.d.ts +56 -5
  5. package/dist/browser/engine-transport.d.ts.map +1 -1
  6. package/dist/browser/engine-transport.js +271 -8
  7. package/dist/browser/engine-transport.js.map +1 -1
  8. package/dist/browser/firebird-browser.d.ts +228 -7
  9. package/dist/browser/firebird-browser.d.ts.map +1 -1
  10. package/dist/browser/firebird-browser.js +334 -26
  11. package/dist/browser/firebird-browser.js.map +1 -1
  12. package/dist/browser/index.d.ts +8 -2
  13. package/dist/browser/index.d.ts.map +1 -1
  14. package/dist/browser/index.js +19 -3
  15. package/dist/browser/index.js.map +1 -1
  16. package/dist/browser/opfs-fs.d.ts +72 -0
  17. package/dist/browser/opfs-fs.d.ts.map +1 -0
  18. package/dist/browser/opfs-fs.js +249 -0
  19. package/dist/browser/opfs-fs.js.map +1 -0
  20. package/dist/browser/shared-transport.d.ts +8 -2
  21. package/dist/browser/shared-transport.d.ts.map +1 -1
  22. package/dist/browser/shared-transport.js +29 -2
  23. package/dist/browser/shared-transport.js.map +1 -1
  24. package/dist/browser/statement-types.d.ts +18 -0
  25. package/dist/browser/statement-types.d.ts.map +1 -0
  26. package/dist/browser/statement-types.js +39 -0
  27. package/dist/browser/statement-types.js.map +1 -0
  28. package/dist/browser/value-types.d.ts +173 -0
  29. package/dist/browser/value-types.d.ts.map +1 -0
  30. package/dist/browser/value-types.js +222 -0
  31. package/dist/browser/value-types.js.map +1 -0
  32. package/dist/browser/worker-entry.d.ts.map +1 -1
  33. package/dist/browser/worker-entry.js +38 -1
  34. package/dist/browser/worker-entry.js.map +1 -1
  35. package/dist/browser/worker-protocol.d.ts +1 -1
  36. package/dist/browser/worker-protocol.d.ts.map +1 -1
  37. package/dist/browser/worker-transport.d.ts +8 -2
  38. package/dist/browser/worker-transport.d.ts.map +1 -1
  39. package/dist/browser/worker-transport.js +26 -2
  40. package/dist/browser/worker-transport.js.map +1 -1
  41. package/dist/firebird.d.ts +58 -5
  42. package/dist/firebird.d.ts.map +1 -1
  43. package/dist/firebird.js +161 -52
  44. package/dist/firebird.js.map +1 -1
  45. package/dist/index.d.ts +4 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +9 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/sql-tag.d.ts +184 -0
  50. package/dist/sql-tag.d.ts.map +1 -0
  51. package/dist/sql-tag.js +287 -0
  52. package/dist/sql-tag.js.map +1 -0
  53. package/dist/statement-types.d.ts +23 -0
  54. package/dist/statement-types.d.ts.map +1 -0
  55. package/dist/statement-types.js +44 -0
  56. package/dist/statement-types.js.map +1 -0
  57. package/dist/types.d.ts +62 -0
  58. package/dist/types.d.ts.map +1 -1
  59. package/dist/wasm/firebird-embedded.js +1 -1
  60. package/dist/wasm/firebird-embedded.wasm +0 -0
  61. package/dist/wasm-loader.d.ts +38 -2
  62. package/dist/wasm-loader.d.ts.map +1 -1
  63. package/dist/wasm-loader.js.map +1 -1
  64. package/package.json +3 -2
@@ -10,26 +10,42 @@
10
10
  * ```
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.allocString = exports.loadFirebirdWasm = exports.IndexedDBVFS = exports.serveEngine = exports.WorkerTransport = exports.electLeader = exports.SharedEngineTransport = exports.DirectTransport = exports.splitStatements = exports.DatabaseLockedError = exports.databaseLockName = exports.acquireDatabaseLock = exports.hasTransactionOptions = exports.isolationCode = exports.firebirdTypeName = exports.encodeParamValue = exports.encodeParams = exports.FirebirdBrowserTransaction = exports.FirebirdBrowser = void 0;
13
+ exports.allocString = exports.loadFirebirdWasm = exports.IndexedDBVFS = exports.serveEngine = exports.WorkerTransport = exports.electLeader = exports.SharedEngineTransport = exports.DirectTransport = exports.splitStatements = exports.DatabaseLockedError = exports.databaseLockName = exports.acquireDatabaseLock = exports.hasTypeOptions = exports.applySerializers = exports.applyTypes = exports.hasTransactionOptions = exports.isolationCode = exports.BLOB_SIDE_CHANNEL = exports.attachBlobs = exports.decodeDescription = exports.statementKind = exports.firebirdTypeName = exports.encodeParamValue = exports.encodeParams = exports.toStatement = exports.isSqlFragment = exports.RawSql = exports.SqlFragment = exports.sql = exports.FirebirdBrowserTransaction = exports.FirebirdBrowser = void 0;
14
14
  var firebird_browser_1 = require("./firebird-browser");
15
15
  Object.defineProperty(exports, "FirebirdBrowser", { enumerable: true, get: function () { return firebird_browser_1.FirebirdBrowser; } });
16
16
  Object.defineProperty(exports, "FirebirdBrowserTransaction", { enumerable: true, get: function () { return firebird_browser_1.FirebirdBrowserTransaction; } });
17
+ var sql_tag_1 = require("../sql-tag");
18
+ Object.defineProperty(exports, "sql", { enumerable: true, get: function () { return sql_tag_1.sql; } });
19
+ Object.defineProperty(exports, "SqlFragment", { enumerable: true, get: function () { return sql_tag_1.SqlFragment; } });
20
+ Object.defineProperty(exports, "RawSql", { enumerable: true, get: function () { return sql_tag_1.RawSql; } });
21
+ Object.defineProperty(exports, "isSqlFragment", { enumerable: true, get: function () { return sql_tag_1.isSqlFragment; } });
22
+ Object.defineProperty(exports, "toStatement", { enumerable: true, get: function () { return sql_tag_1.toStatement; } });
17
23
  var params_1 = require("./params");
18
24
  Object.defineProperty(exports, "encodeParams", { enumerable: true, get: function () { return params_1.encodeParams; } });
19
25
  Object.defineProperty(exports, "encodeParamValue", { enumerable: true, get: function () { return params_1.encodeParamValue; } });
20
26
  var field_types_1 = require("./field-types");
21
27
  Object.defineProperty(exports, "firebirdTypeName", { enumerable: true, get: function () { return field_types_1.firebirdTypeName; } });
28
+ var statement_types_1 = require("../statement-types");
29
+ Object.defineProperty(exports, "statementKind", { enumerable: true, get: function () { return statement_types_1.statementKind; } });
30
+ var engine_transport_1 = require("./engine-transport");
31
+ Object.defineProperty(exports, "decodeDescription", { enumerable: true, get: function () { return engine_transport_1.decodeDescription; } });
32
+ Object.defineProperty(exports, "attachBlobs", { enumerable: true, get: function () { return engine_transport_1.attachBlobs; } });
33
+ Object.defineProperty(exports, "BLOB_SIDE_CHANNEL", { enumerable: true, get: function () { return engine_transport_1.BLOB_SIDE_CHANNEL; } });
22
34
  var isolation_1 = require("./isolation");
23
35
  Object.defineProperty(exports, "isolationCode", { enumerable: true, get: function () { return isolation_1.isolationCode; } });
24
36
  Object.defineProperty(exports, "hasTransactionOptions", { enumerable: true, get: function () { return isolation_1.hasTransactionOptions; } });
37
+ var value_types_1 = require("./value-types");
38
+ Object.defineProperty(exports, "applyTypes", { enumerable: true, get: function () { return value_types_1.applyTypes; } });
39
+ Object.defineProperty(exports, "applySerializers", { enumerable: true, get: function () { return value_types_1.applySerializers; } });
40
+ Object.defineProperty(exports, "hasTypeOptions", { enumerable: true, get: function () { return value_types_1.hasTypeOptions; } });
25
41
  var db_lock_1 = require("./db-lock");
26
42
  Object.defineProperty(exports, "acquireDatabaseLock", { enumerable: true, get: function () { return db_lock_1.acquireDatabaseLock; } });
27
43
  Object.defineProperty(exports, "databaseLockName", { enumerable: true, get: function () { return db_lock_1.databaseLockName; } });
28
44
  Object.defineProperty(exports, "DatabaseLockedError", { enumerable: true, get: function () { return db_lock_1.DatabaseLockedError; } });
29
45
  var sql_script_1 = require("./sql-script");
30
46
  Object.defineProperty(exports, "splitStatements", { enumerable: true, get: function () { return sql_script_1.splitStatements; } });
31
- var engine_transport_1 = require("./engine-transport");
32
- Object.defineProperty(exports, "DirectTransport", { enumerable: true, get: function () { return engine_transport_1.DirectTransport; } });
47
+ var engine_transport_2 = require("./engine-transport");
48
+ Object.defineProperty(exports, "DirectTransport", { enumerable: true, get: function () { return engine_transport_2.DirectTransport; } });
33
49
  var shared_transport_1 = require("./shared-transport");
34
50
  Object.defineProperty(exports, "SharedEngineTransport", { enumerable: true, get: function () { return shared_transport_1.SharedEngineTransport; } });
35
51
  var leader_election_1 = require("./leader-election");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,uDAAiF;AAAxE,mHAAA,eAAe,OAAA;AAAE,8HAAA,0BAA0B,OAAA;AAGpD,mCAA0D;AAAjD,sGAAA,YAAY,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AAEvC,6CAAiD;AAAxC,+GAAA,gBAAgB,OAAA;AAEzB,yCAAmE;AAA1D,0GAAA,aAAa,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAE7C,qCAImB;AAHjB,8GAAA,mBAAmB,OAAA;AACnB,2GAAA,gBAAgB,OAAA;AAChB,8GAAA,mBAAmB,OAAA;AAIrB,2CAA+C;AAAtC,6GAAA,eAAe,OAAA;AAGxB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAOxB,uDAA2D;AAAlD,yHAAA,qBAAqB,OAAA;AAG9B,qDAAgD;AAAvC,8GAAA,WAAW,OAAA;AAGpB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAGxB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAQpB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAGrB,8CAA+D;AAAtD,+GAAA,gBAAgB,OAAA;AAAE,0GAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,uDAAiF;AAAxE,mHAAA,eAAe,OAAA;AAAE,8HAAA,0BAA0B,OAAA;AAUpD,sCAAkF;AAAzE,8FAAA,GAAG,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,iGAAA,MAAM,OAAA;AAAE,wGAAA,aAAa,OAAA;AAAE,sGAAA,WAAW,OAAA;AAG7D,mCAA0D;AAAjD,sGAAA,YAAY,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AAEvC,6CAAiD;AAAxC,+GAAA,gBAAgB,OAAA;AACzB,sDAAmD;AAA1C,gHAAA,aAAa,OAAA;AACtB,uDAAuF;AAA9E,qHAAA,iBAAiB,OAAA;AAAE,+GAAA,WAAW,OAAA;AAAE,qHAAA,iBAAiB,OAAA;AAE1D,yCAAmE;AAA1D,0GAAA,aAAa,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAE7C,6CAA6E;AAApE,yGAAA,UAAU,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AAAE,6GAAA,cAAc,OAAA;AAGrD,qCAImB;AAHjB,8GAAA,mBAAmB,OAAA;AACnB,2GAAA,gBAAgB,OAAA;AAChB,8GAAA,mBAAmB,OAAA;AAIrB,2CAA+C;AAAtC,6GAAA,eAAe,OAAA;AAGxB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAOxB,uDAA2D;AAAlD,yHAAA,qBAAqB,OAAA;AAG9B,qDAAgD;AAAvC,8GAAA,WAAW,OAAA;AAGpB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAGxB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAQpB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAGrB,8CAA+D;AAAtD,+GAAA,gBAAgB,OAAA;AAAE,0GAAA,WAAW,OAAA"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * opfs-fs.ts – an Emscripten filesystem backed by OPFS sync access handles.
3
+ *
4
+ * The IndexedDB path keeps the whole database in memory and copies the image
5
+ * out on every persist. That is a durability strategy bolted beside the engine.
6
+ * This is the other shape: Firebird's own reads and writes land in a file, and
7
+ * there is no persist step because there is nothing to copy.
8
+ *
9
+ * Three facts make it possible, and each was checked rather than assumed:
10
+ *
11
+ * 1. **Firebird's I/O reaches JavaScript.** A custom filesystem mounted in
12
+ * Emscripten's FS sees the engine's reads and writes — measured at 1,678
13
+ * writes and 14.1 MB for a create-plus-insert, all through `stream_ops`.
14
+ * 2. **`FileSystemSyncAccessHandle` is synchronous**, which is what a
15
+ * filesystem callback needs: `read`, `write`, `truncate` and `getSize`
16
+ * return values rather than promises. It exists only in a Worker, and the
17
+ * engine already runs in one — a browser cannot run it anywhere else.
18
+ * 3. **Handles are opened before the mount.** Opening one is async and a
19
+ * stream op cannot await, so the database's handle is acquired up front
20
+ * and the mount owns it from then on.
21
+ *
22
+ * What this deliberately does not do is host a general filesystem. One mount
23
+ * holds one database, because that is what Firebird opens: the probe recorded
24
+ * exactly one `open` for a create-and-query cycle. Temporary files, if the
25
+ * engine ever wants them, stay on MEMFS where they belong — they are scratch,
26
+ * and paying an OPFS round trip for them would be a cost with no durability to
27
+ * show for it.
28
+ */
29
+ import type { FirebirdWasmModule } from '../wasm-loader';
30
+ /**
31
+ * `FileSystemSyncAccessHandle`, as much of it as is used here.
32
+ *
33
+ * Declared rather than imported: the DOM lib in this project's TypeScript
34
+ * target does not carry it, and a hand-written interface says exactly which
35
+ * four methods this depends on.
36
+ */
37
+ interface SyncAccessHandle {
38
+ read(buffer: ArrayBufferView, options?: {
39
+ at?: number;
40
+ }): number;
41
+ write(buffer: ArrayBufferView, options?: {
42
+ at?: number;
43
+ }): number;
44
+ truncate(size: number): void;
45
+ getSize(): number;
46
+ flush(): void;
47
+ close(): void;
48
+ }
49
+ /** True where OPFS sync access handles can actually be used. */
50
+ export declare function opfsAvailable(): boolean;
51
+ /**
52
+ * Open — creating if needed — the sync access handle for one database.
53
+ *
54
+ * @throws if another handle on the same file is already open. OPFS enforces
55
+ * that exclusively, which is a stronger and more honest guarantee than the
56
+ * Web Lock the IndexedDB path uses: two tabs cannot both hold the file, and
57
+ * the second one is told so by the platform rather than by a convention.
58
+ */
59
+ export declare function openDatabaseHandle(name: string): Promise<SyncAccessHandle>;
60
+ /** Delete a database's file. Fails silently when there is nothing to delete. */
61
+ export declare function removeDatabaseFile(name: string): Promise<void>;
62
+ /**
63
+ * Mount a filesystem at `mountpoint` whose files are OPFS sync access handles.
64
+ *
65
+ * `files` maps a name inside the mount to its already-open handle. Nothing
66
+ * else can be created there: a filesystem that silently accepted a second file
67
+ * would be one that silently lost it, since only the listed handles are backed
68
+ * by anything.
69
+ */
70
+ export declare function mountOpfs(mod: FirebirdWasmModule, mountpoint: string, files: Map<string, SyncAccessHandle>): void;
71
+ export {};
72
+ //# sourceMappingURL=opfs-fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opfs-fs.d.ts","sourceRoot":"","sources":["../../src/browser/opfs-fs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAMzD;;;;;;GAMG;AACH,UAAU,gBAAgB;IACxB,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;IACjE,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,IAAI,MAAM,CAAC;IAClB,KAAK,IAAI,IAAI,CAAC;IACd,KAAK,IAAI,IAAI,CAAC;CACf;AAeD,gEAAgE;AAChE,wBAAgB,aAAa,IAAI,OAAO,CAgBvC;AASD;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAKhF;AAED,iFAAiF;AACjF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpE;AAuCD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,kBAAkB,EACvB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,GACnC,IAAI,CA8KN"}
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ /**
3
+ * opfs-fs.ts – an Emscripten filesystem backed by OPFS sync access handles.
4
+ *
5
+ * The IndexedDB path keeps the whole database in memory and copies the image
6
+ * out on every persist. That is a durability strategy bolted beside the engine.
7
+ * This is the other shape: Firebird's own reads and writes land in a file, and
8
+ * there is no persist step because there is nothing to copy.
9
+ *
10
+ * Three facts make it possible, and each was checked rather than assumed:
11
+ *
12
+ * 1. **Firebird's I/O reaches JavaScript.** A custom filesystem mounted in
13
+ * Emscripten's FS sees the engine's reads and writes — measured at 1,678
14
+ * writes and 14.1 MB for a create-plus-insert, all through `stream_ops`.
15
+ * 2. **`FileSystemSyncAccessHandle` is synchronous**, which is what a
16
+ * filesystem callback needs: `read`, `write`, `truncate` and `getSize`
17
+ * return values rather than promises. It exists only in a Worker, and the
18
+ * engine already runs in one — a browser cannot run it anywhere else.
19
+ * 3. **Handles are opened before the mount.** Opening one is async and a
20
+ * stream op cannot await, so the database's handle is acquired up front
21
+ * and the mount owns it from then on.
22
+ *
23
+ * What this deliberately does not do is host a general filesystem. One mount
24
+ * holds one database, because that is what Firebird opens: the probe recorded
25
+ * exactly one `open` for a create-and-query cycle. Temporary files, if the
26
+ * engine ever wants them, stay on MEMFS where they belong — they are scratch,
27
+ * and paying an OPFS round trip for them would be a cost with no durability to
28
+ * show for it.
29
+ */
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.opfsAvailable = opfsAvailable;
32
+ exports.openDatabaseHandle = openDatabaseHandle;
33
+ exports.removeDatabaseFile = removeDatabaseFile;
34
+ exports.mountOpfs = mountOpfs;
35
+ /** True where OPFS sync access handles can actually be used. */
36
+ function opfsAvailable() {
37
+ const scope = globalThis;
38
+ if (typeof scope.navigator?.storage?.getDirectory !== 'function')
39
+ return false;
40
+ // Sync access handles are Worker-only. On a main thread the API is present
41
+ // and `createSyncAccessHandle` rejects, which would surface as a failure deep
42
+ // inside a mount rather than as a refusal to start. `importScripts` is the
43
+ // cheapest reliable marker of a worker scope and needs no DOM lib types.
44
+ return (scope.WorkerGlobalScope !== undefined || typeof scope.importScripts === 'function');
45
+ }
46
+ // ---------------------------------------------------------------------------
47
+ // Opening the file
48
+ // ---------------------------------------------------------------------------
49
+ /** Directory under the OPFS root holding this library's databases. */
50
+ const OPFS_DIRECTORY = 'firebird';
51
+ /**
52
+ * Open — creating if needed — the sync access handle for one database.
53
+ *
54
+ * @throws if another handle on the same file is already open. OPFS enforces
55
+ * that exclusively, which is a stronger and more honest guarantee than the
56
+ * Web Lock the IndexedDB path uses: two tabs cannot both hold the file, and
57
+ * the second one is told so by the platform rather than by a convention.
58
+ */
59
+ async function openDatabaseHandle(name) {
60
+ const root = (await navigator.storage.getDirectory());
61
+ const dir = await root.getDirectoryHandle(OPFS_DIRECTORY, { create: true });
62
+ const file = await dir.getFileHandle(`${name}.fdb`, { create: true });
63
+ return file.createSyncAccessHandle();
64
+ }
65
+ /** Delete a database's file. Fails silently when there is nothing to delete. */
66
+ async function removeDatabaseFile(name) {
67
+ const root = (await navigator.storage.getDirectory());
68
+ const dir = await root.getDirectoryHandle(OPFS_DIRECTORY, { create: true });
69
+ await dir.removeEntry(`${name}.fdb`).catch(() => undefined);
70
+ }
71
+ const S_IFDIR = 0o040000;
72
+ const S_IFREG = 0o100000;
73
+ const ENOENT = 44;
74
+ const EPERM = 63;
75
+ /**
76
+ * Mount a filesystem at `mountpoint` whose files are OPFS sync access handles.
77
+ *
78
+ * `files` maps a name inside the mount to its already-open handle. Nothing
79
+ * else can be created there: a filesystem that silently accepted a second file
80
+ * would be one that silently lost it, since only the listed handles are backed
81
+ * by anything.
82
+ */
83
+ function mountOpfs(mod, mountpoint, files) {
84
+ const FS = mod.FS;
85
+ // A scratch buffer, because the WASM heap is a SharedArrayBuffer under
86
+ // pthreads and OPFS rejects views onto one. Grown as needed and reused, so
87
+ // the cost is one copy per operation rather than one allocation.
88
+ let scratch = new Uint8Array(65536);
89
+ const scratchFor = (length) => {
90
+ if (scratch.byteLength < length) {
91
+ scratch = new Uint8Array(Math.max(length, scratch.byteLength * 2));
92
+ }
93
+ return scratch.subarray(0, length);
94
+ };
95
+ const attrs = (node, size) => ({
96
+ dev: 1,
97
+ ino: node.id,
98
+ mode: node.mode,
99
+ nlink: 1,
100
+ uid: 0,
101
+ gid: 0,
102
+ rdev: node.rdev,
103
+ size,
104
+ atime: new Date(node.timestamp),
105
+ mtime: new Date(node.timestamp),
106
+ ctime: new Date(node.timestamp),
107
+ blksize: 4096,
108
+ blocks: Math.ceil(size / 4096),
109
+ });
110
+ const streamOps = {
111
+ open() {
112
+ /* The handle is already open; there is nothing per-stream to do. */
113
+ },
114
+ close() {
115
+ // Deliberately not closed here. The handle outlives any single open —
116
+ // Firebird opens and closes the database repeatedly within one session,
117
+ // and reopening a sync access handle is both async and exclusive, so a
118
+ // close here would make the next open fail.
119
+ },
120
+ llseek(stream, offset, whence) {
121
+ let position = offset;
122
+ if (whence === 1)
123
+ position += stream.position;
124
+ else if (whence === 2)
125
+ position += stream.node.handle.getSize();
126
+ if (position < 0)
127
+ throw new FS.ErrnoError(28); // EINVAL
128
+ return position;
129
+ },
130
+ read(stream, buffer, offset, length, position) {
131
+ const handle = stream.node.handle;
132
+ const target = scratchFor(length);
133
+ const read = handle.read(target, { at: position });
134
+ if (read > 0)
135
+ buffer.set(target.subarray(0, read), offset);
136
+ return read;
137
+ },
138
+ write(stream, buffer, offset, length, position) {
139
+ const handle = stream.node.handle;
140
+ const source = scratchFor(length);
141
+ source.set(buffer.subarray(offset, offset + length));
142
+ return handle.write(source, { at: position });
143
+ },
144
+ };
145
+ const fileOps = {
146
+ getattr(node) {
147
+ return attrs(node, node.handle.getSize());
148
+ },
149
+ setattr(node, attr) {
150
+ if (attr.mode !== undefined)
151
+ node.mode = attr.mode;
152
+ if (attr.timestamp !== undefined)
153
+ node.timestamp = attr.timestamp;
154
+ if (attr.size !== undefined)
155
+ node.handle.truncate(attr.size);
156
+ },
157
+ };
158
+ /**
159
+ * Bind a name to its pre-opened handle as a file node, once.
160
+ *
161
+ * Cached on the directory so `lookup` keeps returning the same node: the FS
162
+ * treats node identity as file identity, and a fresh object each time would
163
+ * make the same file look like a different one.
164
+ */
165
+ const materialise = (parent, name) => {
166
+ const existing = parent.contents?.[name];
167
+ if (existing)
168
+ return existing;
169
+ const handle = files.get(name);
170
+ if (!handle)
171
+ throw new FS.ErrnoError(ENOENT);
172
+ const node = FS.createNode(parent, name, S_IFREG | 0o666, 0);
173
+ node.node_ops = fileOps;
174
+ node.stream_ops = streamOps;
175
+ node.handle = handle;
176
+ node.timestamp = Date.now();
177
+ parent.contents[name] = node;
178
+ return node;
179
+ };
180
+ const dirOps = {
181
+ getattr(node) {
182
+ return attrs(node, 4096);
183
+ },
184
+ setattr(node, attr) {
185
+ if (attr.mode !== undefined)
186
+ node.mode = attr.mode;
187
+ if (attr.timestamp !== undefined)
188
+ node.timestamp = attr.timestamp;
189
+ },
190
+ /**
191
+ * A file exists here when its handle has bytes in it.
192
+ *
193
+ * Opening a sync access handle creates the underlying file, so the file is
194
+ * always *there* — which would make every database look pre-existing and
195
+ * Firebird's `O_CREAT | O_EXCL` fail with EEXIST on a database that has
196
+ * never been written. Size is what actually distinguishes "not yet a
197
+ * database" from "a database", so size is what existence means.
198
+ */
199
+ lookup(parent, name) {
200
+ const cached = parent.contents?.[name];
201
+ if (cached)
202
+ return cached;
203
+ const handle = files.get(name);
204
+ if (!handle || handle.getSize() === 0)
205
+ throw new FS.ErrnoError(ENOENT);
206
+ return materialise(parent, name);
207
+ },
208
+ mknod(parent, name) {
209
+ // Creating the database is the engine binding itself to the handle that
210
+ // was opened for it. Any other name has no backing store, and a file
211
+ // with none would read back empty later rather than failing now.
212
+ if (!files.has(name))
213
+ throw new FS.ErrnoError(EPERM);
214
+ return materialise(parent, name);
215
+ },
216
+ rename() {
217
+ throw new FS.ErrnoError(EPERM);
218
+ },
219
+ unlink() {
220
+ throw new FS.ErrnoError(EPERM);
221
+ },
222
+ rmdir() {
223
+ throw new FS.ErrnoError(EPERM);
224
+ },
225
+ readdir(node) {
226
+ return ['.', '..', ...Object.keys(node.contents ?? {})];
227
+ },
228
+ symlink() {
229
+ throw new FS.ErrnoError(EPERM);
230
+ },
231
+ };
232
+ const filesystem = {
233
+ mount() {
234
+ // Only the directory. Its files appear through `lookup`, which is what
235
+ // lets an unwritten database be absent rather than empty.
236
+ const root = FS.createNode(null, '/', S_IFDIR | 0o777, 0);
237
+ root.node_ops = dirOps;
238
+ root.stream_ops = {};
239
+ root.contents = {};
240
+ root.timestamp = Date.now();
241
+ return root;
242
+ },
243
+ };
244
+ if (!FS.analyzePath(mountpoint).exists) {
245
+ FS.mkdir(mountpoint);
246
+ }
247
+ FS.mount(filesystem, {}, mountpoint);
248
+ }
249
+ //# sourceMappingURL=opfs-fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opfs-fs.js","sourceRoot":"","sources":["../../src/browser/opfs-fs.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@
26
26
  * leader may have committed it and died before the reply, so re-issuing could
27
27
  * apply it twice. An error a caller can see beats a duplicate row it cannot.
28
28
  */
29
- import type { Row, QueryResult, QueryParams, TransactionOptions } from '../types';
29
+ import type { Row, QueryResult, QueryDescription, QueryParams, RowMode, TransactionOptions } from '../types';
30
30
  import type { EngineHandle, EngineTransport } from './engine-transport';
31
31
  /** Options for {@link SharedEngineTransport}. */
32
32
  export interface SharedEngineTransportOptions {
@@ -115,7 +115,8 @@ export declare class SharedEngineTransport implements EngineTransport {
115
115
  attachDatabase(path: string): Promise<EngineHandle>;
116
116
  detachDatabase(dbHandle: EngineHandle): Promise<void>;
117
117
  execute(dbHandle: EngineHandle, txHandle: EngineHandle, sql: string, params?: QueryParams): Promise<number>;
118
- query<T extends Row = Row>(dbHandle: EngineHandle, txHandle: EngineHandle, sql: string, params?: QueryParams): Promise<QueryResult<T>>;
118
+ query<T = Row>(dbHandle: EngineHandle, txHandle: EngineHandle, sql: string, params?: QueryParams, rowMode?: RowMode, binaryBlobs?: boolean): Promise<QueryResult<T>>;
119
+ describe(dbHandle: EngineHandle, txHandle: EngineHandle, sql: string): Promise<QueryDescription>;
119
120
  startTransaction(dbHandle: EngineHandle, options?: TransactionOptions): Promise<EngineHandle>;
120
121
  commit(txHandle: EngineHandle): Promise<void>;
121
122
  rollback(txHandle: EngineHandle): Promise<void>;
@@ -123,6 +124,11 @@ export declare class SharedEngineTransport implements EngineTransport {
123
124
  exists(path: string): Promise<boolean>;
124
125
  readFile(path: string): Promise<Uint8Array>;
125
126
  writeFile(path: string, data: Uint8Array): Promise<void>;
127
+ unlink(path: string): Promise<void>;
128
+ eventsSubscribe(dbHandle: EngineHandle, names: string[]): Promise<number>;
129
+ eventsPoll(subscription: number): Promise<Record<string, number>>;
130
+ eventsCancel(subscription: number): Promise<void>;
131
+ mountOpfs(dbName: string): Promise<string>;
126
132
  dispose(): Promise<void>;
127
133
  }
128
134
  //# sourceMappingURL=shared-transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared-transport.d.ts","sourceRoot":"","sources":["../../src/browser/shared-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-transport.d.ts","sourceRoot":"","sources":["../../src/browser/shared-transport.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,9 @@ const leader_election_1 = require("./leader-election");
40
40
  const REPLAYABLE = new Set([
41
41
  'init',
42
42
  'query',
43
+ // Prepares a statement and drops it, executing nothing, so re-issuing it is
44
+ // indistinguishable from issuing it once.
45
+ 'describe',
43
46
  'exists',
44
47
  'readFile',
45
48
  ]);
@@ -292,8 +295,16 @@ class SharedEngineTransport {
292
295
  execute(dbHandle, txHandle, sql, params = []) {
293
296
  return this.call('execute', dbHandle, txHandle, sql, params);
294
297
  }
295
- query(dbHandle, txHandle, sql, params = []) {
296
- return this.call('query', dbHandle, txHandle, sql, params);
298
+ query(dbHandle, txHandle, sql, params = [], rowMode = 'object', binaryBlobs = false) {
299
+ // Decoding happens on the far side, so both of these have to travel with
300
+ // the call rather than being applied to what comes back. They are a string
301
+ // and a boolean, so they survive structured cloning like the rest of the
302
+ // arguments — and the Uint8Arrays that come back from a side-channelled
303
+ // BLOB survive it too, which is what made this placement possible.
304
+ return this.call('query', dbHandle, txHandle, sql, params, rowMode, binaryBlobs);
305
+ }
306
+ describe(dbHandle, txHandle, sql) {
307
+ return this.call('describe', dbHandle, txHandle, sql);
297
308
  }
298
309
  startTransaction(dbHandle, options = {}) {
299
310
  return this.call('startTransaction', dbHandle, options);
@@ -316,6 +327,22 @@ class SharedEngineTransport {
316
327
  writeFile(path, data) {
317
328
  return this.call('writeFile', path, data);
318
329
  }
330
+ unlink(path) {
331
+ return this.call('unlink', path);
332
+ }
333
+ eventsSubscribe(dbHandle, names) {
334
+ return this.call('eventsSubscribe', dbHandle, names);
335
+ }
336
+ eventsPoll(subscription) {
337
+ return this.call('eventsPoll', subscription);
338
+ }
339
+ eventsCancel(subscription) {
340
+ return this.call('eventsCancel', subscription);
341
+ }
342
+ mountOpfs(dbName) {
343
+ // The mount happens on the far side; only the resulting path comes back.
344
+ return this.call('mountOpfs', dbName);
345
+ }
319
346
  async dispose() {
320
347
  if (this.disposed)
321
348
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"shared-transport.js","sourceRoot":"","sources":["../../src/browser/shared-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-transport.js","sourceRoot":"","sources":["../../src/browser/shared-transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * statement-types.ts – names for Firebird's statement-type codes.
3
+ *
4
+ * The engine reports what a statement *is* as one of the `isc_info_sql_stmt_*`
5
+ * constants. A caller asking `describeQuery()` what they have wants the name,
6
+ * not the number — the number is only meaningful next to a copy of
7
+ * `iberror.h`.
8
+ */
9
+ import type { StatementKind } from '../types';
10
+ /**
11
+ * Name a statement-type code.
12
+ *
13
+ * An unrecognised code is `'UNKNOWN'` rather than an error: a Firebird release
14
+ * may add one, and a name this library has not learned yet is no reason to
15
+ * fail a description that is otherwise complete.
16
+ */
17
+ export declare function statementKind(code: number): StatementKind;
18
+ //# sourceMappingURL=statement-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statement-types.d.ts","sourceRoot":"","sources":["../../src/browser/statement-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAoB9C;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAEzD"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /**
3
+ * statement-types.ts – names for Firebird's statement-type codes.
4
+ *
5
+ * The engine reports what a statement *is* as one of the `isc_info_sql_stmt_*`
6
+ * constants. A caller asking `describeQuery()` what they have wants the name,
7
+ * not the number — the number is only meaningful next to a copy of
8
+ * `iberror.h`.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.statementKind = statementKind;
12
+ // From firebird/impl/consts_pub.h (isc_info_sql_stmt_*).
13
+ const NAMES = {
14
+ 1: 'SELECT',
15
+ 2: 'INSERT',
16
+ 3: 'UPDATE',
17
+ 4: 'DELETE',
18
+ 5: 'DDL',
19
+ 6: 'GET_SEGMENT',
20
+ 7: 'PUT_SEGMENT',
21
+ 8: 'EXEC_PROCEDURE',
22
+ 9: 'START_TRANS',
23
+ 10: 'COMMIT',
24
+ 11: 'ROLLBACK',
25
+ 12: 'SELECT_FOR_UPD',
26
+ 13: 'SET_GENERATOR',
27
+ 14: 'SAVEPOINT',
28
+ };
29
+ /**
30
+ * Name a statement-type code.
31
+ *
32
+ * An unrecognised code is `'UNKNOWN'` rather than an error: a Firebird release
33
+ * may add one, and a name this library has not learned yet is no reason to
34
+ * fail a description that is otherwise complete.
35
+ */
36
+ function statementKind(code) {
37
+ return NAMES[code] ?? 'UNKNOWN';
38
+ }
39
+ //# sourceMappingURL=statement-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statement-types.js","sourceRoot":"","sources":["../../src/browser/statement-types.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AA6BH,sCAEC;AA3BD,yDAAyD;AACzD,MAAM,KAAK,GAAkC;IAC3C,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,gBAAgB;IACnB,CAAC,EAAE,aAAa;IAChB,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,eAAe;IACnB,EAAE,EAAE,WAAW;CAChB,CAAC;AAEF;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,IAAY;IACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;AAClC,CAAC"}