firebird-wasm 0.1.1 → 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 (68) hide show
  1. package/CHANGELOG.md +203 -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 +282 -9
  9. package/dist/browser/firebird-browser.d.ts.map +1 -1
  10. package/dist/browser/firebird-browser.js +435 -42
  11. package/dist/browser/firebird-browser.js.map +1 -1
  12. package/dist/browser/index.d.ts +12 -2
  13. package/dist/browser/index.d.ts.map +1 -1
  14. package/dist/browser/index.js +23 -3
  15. package/dist/browser/index.js.map +1 -1
  16. package/dist/browser/leader-election.d.ts +55 -0
  17. package/dist/browser/leader-election.d.ts.map +1 -0
  18. package/dist/browser/leader-election.js +64 -0
  19. package/dist/browser/leader-election.js.map +1 -0
  20. package/dist/browser/opfs-fs.d.ts +72 -0
  21. package/dist/browser/opfs-fs.d.ts.map +1 -0
  22. package/dist/browser/opfs-fs.js +249 -0
  23. package/dist/browser/opfs-fs.js.map +1 -0
  24. package/dist/browser/shared-transport.d.ts +134 -0
  25. package/dist/browser/shared-transport.d.ts.map +1 -0
  26. package/dist/browser/shared-transport.js +366 -0
  27. package/dist/browser/shared-transport.js.map +1 -0
  28. package/dist/browser/statement-types.d.ts +18 -0
  29. package/dist/browser/statement-types.d.ts.map +1 -0
  30. package/dist/browser/statement-types.js +39 -0
  31. package/dist/browser/statement-types.js.map +1 -0
  32. package/dist/browser/value-types.d.ts +173 -0
  33. package/dist/browser/value-types.d.ts.map +1 -0
  34. package/dist/browser/value-types.js +222 -0
  35. package/dist/browser/value-types.js.map +1 -0
  36. package/dist/browser/worker-entry.d.ts.map +1 -1
  37. package/dist/browser/worker-entry.js +38 -1
  38. package/dist/browser/worker-entry.js.map +1 -1
  39. package/dist/browser/worker-protocol.d.ts +1 -1
  40. package/dist/browser/worker-protocol.d.ts.map +1 -1
  41. package/dist/browser/worker-transport.d.ts +8 -2
  42. package/dist/browser/worker-transport.d.ts.map +1 -1
  43. package/dist/browser/worker-transport.js +26 -2
  44. package/dist/browser/worker-transport.js.map +1 -1
  45. package/dist/firebird.d.ts +58 -5
  46. package/dist/firebird.d.ts.map +1 -1
  47. package/dist/firebird.js +161 -52
  48. package/dist/firebird.js.map +1 -1
  49. package/dist/index.d.ts +4 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +9 -1
  52. package/dist/index.js.map +1 -1
  53. package/dist/sql-tag.d.ts +184 -0
  54. package/dist/sql-tag.d.ts.map +1 -0
  55. package/dist/sql-tag.js +287 -0
  56. package/dist/sql-tag.js.map +1 -0
  57. package/dist/statement-types.d.ts +23 -0
  58. package/dist/statement-types.d.ts.map +1 -0
  59. package/dist/statement-types.js +44 -0
  60. package/dist/statement-types.js.map +1 -0
  61. package/dist/types.d.ts +62 -0
  62. package/dist/types.d.ts.map +1 -1
  63. package/dist/wasm/firebird-embedded.js +1 -1
  64. package/dist/wasm/firebird-embedded.wasm +0 -0
  65. package/dist/wasm-loader.d.ts +38 -2
  66. package/dist/wasm-loader.d.ts.map +1 -1
  67. package/dist/wasm-loader.js.map +1 -1
  68. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"firebird-browser.js","sourceRoot":"","sources":["../../src/browser/firebird-browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firebird-browser.js","sourceRoot":"","sources":["../../src/browser/firebird-browser.ts"],"names":[],"mappings":"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"}
@@ -9,16 +9,26 @@
9
9
  * ```
10
10
  */
11
11
  export { FirebirdBrowser, FirebirdBrowserTransaction } from './firebird-browser';
12
- export type { FirebirdBrowserOptions, ExecResult } from './firebird-browser';
12
+ export type { FirebirdBrowserOptions, ExecResult, LiveQuery, LiveQueryOptions, EventSubscription, ListenOptions, } from './firebird-browser';
13
+ export { sql, SqlFragment, RawSql, isSqlFragment, toStatement } from '../sql-tag';
14
+ export type { SqlTag, Statement } from '../sql-tag';
13
15
  export { encodeParams, encodeParamValue } from './params';
14
16
  export { firebirdTypeName } from './field-types';
17
+ export { statementKind } from '../statement-types';
18
+ export { decodeDescription, attachBlobs, BLOB_SIDE_CHANNEL } from './engine-transport';
15
19
  export { isolationCode, hasTransactionOptions } from './isolation';
20
+ export { applyTypes, applySerializers, hasTypeOptions } from './value-types';
21
+ export type { TypeOptions, Parser, Serializer } from './value-types';
16
22
  export { acquireDatabaseLock, databaseLockName, DatabaseLockedError, } from './db-lock';
17
23
  export type { DatabaseLock, DatabaseLockOptions } from './db-lock';
18
24
  export { splitStatements } from './sql-script';
19
25
  export type { ScriptStatement } from './sql-script';
20
26
  export { DirectTransport } from './engine-transport';
21
27
  export type { EngineTransport, EngineHandle, DirectTransportOptions, } from './engine-transport';
28
+ export { SharedEngineTransport } from './shared-transport';
29
+ export type { SharedEngineTransportOptions } from './shared-transport';
30
+ export { electLeader } from './leader-election';
31
+ export type { LeaderElection, LeaderElectionOptions } from './leader-election';
22
32
  export { WorkerTransport } from './worker-transport';
23
33
  export type { WorkerTransportOptions } from './worker-transport';
24
34
  export { serveEngine } from './worker-entry';
@@ -28,5 +38,5 @@ export { IndexedDBVFS } from './indexeddb-vfs';
28
38
  export type { IndexedDBVFSOptions, VFSMetadata } from './indexeddb-vfs';
29
39
  export { loadFirebirdWasm, allocString } from '../wasm-loader';
30
40
  export type { FirebirdWasmModule, WasmLoadOptions, EmscriptenFS, FbHandle, } from '../wasm-loader';
31
- export type { QueryResult, QueryParams, Row, FieldInfo, FirebirdTypeName, TransactionOptions, IsolationLevel, } from '../types';
41
+ export type { QueryResult, QueryParams, Row, FieldInfo, FirebirdTypeName, QueryOptions, QueryDescription, StatementKind, RowMode, ArrayRow, TransactionOptions, IsolationLevel, } from '../types';
32
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACjF,YAAY,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,eAAe,EACf,YAAY,EACZ,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EACV,QAAQ,EACR,aAAa,EACb,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,WAAW,EACX,WAAW,EACX,GAAG,EACH,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,GACf,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACjF,YAAY,EACV,sBAAsB,EACtB,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAClF,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7E,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAErE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,eAAe,EACf,YAAY,EACZ,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EACV,QAAQ,EACR,aAAa,EACb,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,WAAW,EACX,WAAW,EACX,GAAG,EACH,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,OAAO,EACP,QAAQ,EACR,kBAAkB,EAClB,cAAc,GACf,MAAM,UAAU,CAAC"}
@@ -10,26 +10,46 @@
10
10
  * ```
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.allocString = exports.loadFirebirdWasm = exports.IndexedDBVFS = exports.serveEngine = exports.WorkerTransport = 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; } });
49
+ var shared_transport_1 = require("./shared-transport");
50
+ Object.defineProperty(exports, "SharedEngineTransport", { enumerable: true, get: function () { return shared_transport_1.SharedEngineTransport; } });
51
+ var leader_election_1 = require("./leader-election");
52
+ Object.defineProperty(exports, "electLeader", { enumerable: true, get: function () { return leader_election_1.electLeader; } });
33
53
  var worker_transport_1 = require("./worker-transport");
34
54
  Object.defineProperty(exports, "WorkerTransport", { enumerable: true, get: function () { return worker_transport_1.WorkerTransport; } });
35
55
  var worker_entry_1 = require("./worker-entry");
@@ -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,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,55 @@
1
+ /**
2
+ * leader-election.ts – exactly one tab owns the engine; the rest wait.
3
+ *
4
+ * Built on the same Web Lock that {@link acquireDatabaseLock} already uses for
5
+ * multi-tab *safety*, because election is the same problem viewed from the
6
+ * other side. Refusing the second tab and serving it from the first differ
7
+ * only in what the loser does after losing.
8
+ *
9
+ * Every participant requests the lock and never gives it back voluntarily.
10
+ * Whoever holds it is the leader; everyone else is queued behind it. When the
11
+ * leader's context dies — closed, crashed, killed while backgrounded — the
12
+ * browser releases the lock and the next waiter is granted it and promoted.
13
+ * There is no heartbeat, no lease to expire, and no way to observe two leaders
14
+ * at once, because the browser will not grant an exclusive lock twice.
15
+ */
16
+ /** A participant in the election for one database. */
17
+ export interface LeaderElection {
18
+ /** Whether this context currently holds the lock. */
19
+ readonly isLeader: boolean;
20
+ /**
21
+ * Resolves the moment this context becomes leader.
22
+ *
23
+ * Already-resolved if it is the leader; otherwise pending until the current
24
+ * leader goes away. Never rejects on losing — losing is the normal case.
25
+ */
26
+ readonly promoted: Promise<void>;
27
+ /**
28
+ * Whether exclusion is actually enforced.
29
+ *
30
+ * `false` where the Web Locks API is missing, in which case every
31
+ * participant believes it is the leader. See {@link acquireDatabaseLock}.
32
+ */
33
+ readonly enforced: boolean;
34
+ /** Stop participating, releasing the lock if this context holds it. */
35
+ resign(): Promise<void>;
36
+ }
37
+ /** Options for {@link electLeader}. */
38
+ export interface LeaderElectionOptions {
39
+ /**
40
+ * Called once when this context is promoted.
41
+ *
42
+ * Runs before {@link LeaderElection.promoted} resolves, so a leader can
43
+ * finish standing up its engine before anyone is told it exists.
44
+ */
45
+ onPromoted?: () => void | Promise<void>;
46
+ }
47
+ /**
48
+ * Join the election for `dbName`.
49
+ *
50
+ * Returns as soon as participation has *started*, not when it is won — a
51
+ * follower must be usable immediately, and the first thing it does is proxy
52
+ * to whoever is already leading.
53
+ */
54
+ export declare function electLeader(dbName: string, options?: LeaderElectionOptions): LeaderElection;
55
+ //# sourceMappingURL=leader-election.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leader-election.d.ts","sourceRoot":"","sources":["../../src/browser/leader-election.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,uCAAuC;AACvC,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAA0B,GAClC,cAAc,CAyChB"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ /**
3
+ * leader-election.ts – exactly one tab owns the engine; the rest wait.
4
+ *
5
+ * Built on the same Web Lock that {@link acquireDatabaseLock} already uses for
6
+ * multi-tab *safety*, because election is the same problem viewed from the
7
+ * other side. Refusing the second tab and serving it from the first differ
8
+ * only in what the loser does after losing.
9
+ *
10
+ * Every participant requests the lock and never gives it back voluntarily.
11
+ * Whoever holds it is the leader; everyone else is queued behind it. When the
12
+ * leader's context dies — closed, crashed, killed while backgrounded — the
13
+ * browser releases the lock and the next waiter is granted it and promoted.
14
+ * There is no heartbeat, no lease to expire, and no way to observe two leaders
15
+ * at once, because the browser will not grant an exclusive lock twice.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.electLeader = electLeader;
19
+ const db_lock_1 = require("./db-lock");
20
+ /**
21
+ * Join the election for `dbName`.
22
+ *
23
+ * Returns as soon as participation has *started*, not when it is won — a
24
+ * follower must be usable immediately, and the first thing it does is proxy
25
+ * to whoever is already leading.
26
+ */
27
+ function electLeader(dbName, options = {}) {
28
+ let leader = false;
29
+ let enforced = true;
30
+ let lock = null;
31
+ let resigned = false;
32
+ const promoted = (async () => {
33
+ // Infinity, deliberately: a follower is not waiting on a timeout, it is
34
+ // waiting for the leader to go away, which may be never.
35
+ const held = await (0, db_lock_1.acquireDatabaseLock)(dbName, { timeoutMs: Infinity });
36
+ if (resigned) {
37
+ // resign() ran while this was queued. Release immediately rather than
38
+ // silently becoming a leader nobody is going to use.
39
+ await held.release();
40
+ return;
41
+ }
42
+ lock = held;
43
+ enforced = held.enforced;
44
+ leader = true;
45
+ await options.onPromoted?.();
46
+ })();
47
+ return {
48
+ get isLeader() {
49
+ return leader;
50
+ },
51
+ get enforced() {
52
+ return enforced;
53
+ },
54
+ promoted,
55
+ resign: async () => {
56
+ resigned = true;
57
+ const held = lock;
58
+ lock = null;
59
+ leader = false;
60
+ await held?.release();
61
+ },
62
+ };
63
+ }
64
+ //# sourceMappingURL=leader-election.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leader-election.js","sourceRoot":"","sources":["../../src/browser/leader-election.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AA6CH,kCA4CC;AAvFD,uCAAgD;AAoChD;;;;;;GAMG;AACH,SAAgB,WAAW,CACzB,MAAc,EACd,UAAiC,EAAE;IAEnC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,GAAwB,IAAI,CAAC;IACrC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;QAC3B,wEAAwE;QACxE,yDAAyD;QACzD,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAmB,EAAC,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAExE,IAAI,QAAQ,EAAE,CAAC;YACb,uEAAuE;YACvE,qDAAqD;YACrD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,GAAG,IAAI,CAAC;QACZ,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,MAAM,GAAG,IAAI,CAAC;QAEd,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;IAC/B,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO;QACL,IAAI,QAAQ;YACV,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,QAAQ;YACV,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,QAAQ;QACR,MAAM,EAAE,KAAK,IAAI,EAAE;YACjB,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC;YAClB,IAAI,GAAG,IAAI,CAAC;YACZ,MAAM,GAAG,KAAK,CAAC;YACf,MAAM,IAAI,EAAE,OAAO,EAAE,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -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