@zukhruf/sqlite-federation 0.6.16 → 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/README.md CHANGED
@@ -20,18 +20,18 @@ The host gives `locate`. A statement names each database as a schema.
20
20
  import { mkdtempDisposable } from 'node:fs/promises';
21
21
  import { tmpdir } from 'node:os';
22
22
  import { join } from 'node:path';
23
- import { DatabaseSync } from 'node:sqlite';
24
23
 
25
24
  import { Federation } from '@zukhruf/sqlite-federation';
25
+ import { open } from '@zukhruf/sqlite-open';
26
26
 
27
27
  await using scratch = await mkdtempDisposable(join(tmpdir(), 'federation-'));
28
28
  const messagesPath = join(scratch.path, 'messages.sqlite');
29
29
  const contactsPath = join(scratch.path, 'contacts.sqlite');
30
30
  {
31
- using messages = new DatabaseSync(messagesPath);
31
+ using messages = open(messagesPath);
32
32
  messages.exec(`CREATE TABLE messages (handle TEXT, text TEXT);
33
33
  INSERT INTO messages VALUES ('+962790000000', 'See you at 6');`);
34
- using contacts = new DatabaseSync(contactsPath);
34
+ using contacts = open(contactsPath);
35
35
  contacts.exec(`CREATE TABLE contacts (phone TEXT, name TEXT);
36
36
  INSERT INTO contacts VALUES ('+962790000000', 'Sara');`);
37
37
  }
@@ -80,7 +80,7 @@ const result = federation.query('SELECT * FROM conversations');
80
80
 
81
81
  Qualified tables and PRAGMAs discover additional databases through `locate`. Both `PRAGMA contacts.table_info(contacts)` and `SELECT * FROM pragma_table_info('contacts', 'contacts')` locate Contacts, including when the schema is a bound parameter in a tagged query. Quoted schema names such as `"call-history"` work too. Every attachment made for the statement is detached afterwards, including on failure; `main` and temporary views remain on the connection. The additional databases count toward the attachment limit.
82
82
 
83
- The constructor accepts Node's `timeout` option for waiting on a writer's lock, in milliseconds. Omit it to use Node's native behavior. Hosts that need crash recovery perform it before supplying the paths, including inside `locate` for a named primary or additional database; Federation opens those files read-only.
83
+ The constructor accepts Node's `timeout` option for waiting on a writer's lock, in milliseconds. Without it, the handle waits 5000 ms, the busy timeout of `@zukhruf/sqlite-open`. Hosts that need crash recovery perform it before supplying the paths, including inside `locate` for a named primary or additional database; Federation opens those files read-only.
84
84
 
85
85
  ## Read a primary database
86
86
 
@@ -108,16 +108,17 @@ const result = database.query(
108
108
 
109
109
  ## Errors
110
110
 
111
- | Error | When |
112
- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
113
- | `TooManyDatabasesError` | A statement names more databases than the limit. `names` has at least one name more than the limit. The message tells you to split the statement. |
114
- | `Unknown main database <name>` | The constructor cannot locate the named primary database. |
115
- | `no such table: <name>.<table>` | The error of SQLite, when `locate` returns `undefined` for the name, or when the database does not have the table. |
116
- | `unable to open database file` | The error of SQLite, when `locate` returns a path with no file. |
117
- | `attempt to write a readonly database` | The error of SQLite, when a statement writes. |
118
- | The error of `locate` | The constructor or statement fails with that error. The databases that the statement attached before are detached. |
119
- | `unknown database <name>` | The error of SQLite, when a PRAGMA names a database that `locate` cannot find. Quoting follows the statement or the table-valued PRAGMA argument. |
120
- | `Run one SQL statement at a time` | A raw query contains a second statement. |
111
+ | Error | When |
112
+ | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
113
+ | `TooManyDatabasesError` | A statement names more databases than the limit. `names` has at least one name more than the limit. The message tells you to split the statement. |
114
+ | `Unknown main database <name>` | The constructor cannot locate the named primary database. |
115
+ | `no such table: <name>.<table>` | The error of SQLite, when `locate` returns `undefined` for the name, or when the database does not have the table. |
116
+ | `UnavailableError` | The constructor cannot open the primary database: the file is missing, or the system denies access. `path` is the path. `cause` is the error of SQLite. It is the class of `@zukhruf/sqlite-open`. |
117
+ | `unable to open database file` | The error of SQLite, when `locate` returns a path with no file for a database that a statement attaches. |
118
+ | `attempt to write a readonly database` | The error of SQLite, when a statement writes. |
119
+ | The error of `locate` | The constructor or statement fails with that error. The databases that the statement attached before are detached. |
120
+ | `unknown database <name>` | The error of SQLite, when a PRAGMA names a database that `locate` cannot find. Quoting follows the statement or the table-valued PRAGMA argument. |
121
+ | `Run one SQL statement at a time` | A raw query contains a second statement. |
121
122
 
122
123
  ## The same concepts in other systems
123
124
 
@@ -1,4 +1,4 @@
1
- import { type DatabaseSyncOptions, type SQLOutputValue, type SQLTagStore } from 'node:sqlite';
1
+ import type { DatabaseSyncOptions, SQLOutputValue, SQLTagStore } from 'node:sqlite';
2
2
  export type Query = Pick<SQLTagStore, 'all' | 'get'>;
3
3
  export type QueryResult = {
4
4
  readonly columns: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../src/federation.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAMrB,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;AAGrD,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;CACpE,CAAC;AAIF,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAE1D,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,GAAG;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAKF,qBAAa,UAAW,YAAW,UAAU;;IAC3C,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;gBAIR,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,iBAAiB;IAuB3D,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOvB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IA2D/B,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGzB"}
1
+ {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../src/federation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACnB,cAAc,EACd,WAAW,EACZ,MAAM,aAAa,CAAC;AAQrB,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;AAGrD,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;CACpE,CAAC;AAIF,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAE1D,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,GAAG;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAKF,qBAAa,UAAW,YAAW,UAAU;;IAC3C,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;gBAIR,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,iBAAiB;IAuB3D,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOvB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IA2D/B,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGzB"}
@@ -1,4 +1,4 @@
1
- import { DatabaseSync, } from 'node:sqlite';
1
+ import { open } from '@zukhruf/sqlite-open';
2
2
  import { TooManyDatabasesError } from "./too-many-databases-error.js";
3
3
  // One read-only handle over main and every database the host can locate, past
4
4
  // the limit on how many one SQLite connection attaches at once. Main stays
@@ -15,7 +15,7 @@ export class Federation {
15
15
  throw new Error(`Unknown main database ${main.name}`);
16
16
  main = path;
17
17
  }
18
- this.#connection = new DatabaseSync(main, {
18
+ this.#connection = open(main, {
19
19
  ...options,
20
20
  readOnly: true,
21
21
  });
@@ -1 +1 @@
1
- {"version":3,"file":"federation.js","sourceRoot":"","sources":["../src/federation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAIb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAqBtE,8EAA8E;AAC9E,2EAA2E;AAC3E,gFAAgF;AAChF,MAAM,OAAO,UAAU;IACZ,GAAG,CAAQ;IACX,WAAW,CAAe;IAC1B,OAAO,CAAS;IAEzB,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,EAAqB;QACzD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,IAAI,KAAK,SAAS;gBACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACxC,GAAG,OAAO;YACV,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QAChD,IAAI,CAAC,GAAG,GAAG;YACT,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE,CAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;YACtD,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE,CAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;SACvD,CAAC;IACJ,CAAC;IAED,uEAAuE;IACvE,0EAA0E;IAC1E,IAAI,CAAC,GAAW;QACd,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,8EAA8E;IAC9E,2EAA2E;IAC3E,2EAA2E;IAC3E,KAAK,CAAC,GAAW;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChD,mEAAmE;YACnE,uEAAuE;YACvE,qEAAqE;YACrE,qBAAqB;YACrB,IAAI,OAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,OAAO;oBACL,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;yBACnE,SAAS,KAAK,QAAQ,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,GAAG,CAAC,CACT,KAAK,YAAY,KAAK;oBACtB,MAAM,IAAI,KAAK;oBACf,CAAC,KAAK,CAAC,IAAI,KAAK,uBAAuB;wBACrC,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,CACtC,CAAC;YACJ,CAAC;YACD,IAAI,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAChE,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;gBACpD,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE;aACtB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,4EAA4E;IAC5E,6EAA6E;IAC7E,mEAAmE;IACnE,UAAU,CAAS,GAAiB;QAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,SAAS,CAAC;gBACR,IAAI,CAAC;oBACH,OAAO,GAAG,EAAE,CAAC;gBACf,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;oBACpC,IAAI,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAAE,MAAM,KAAK,CAAC;oBAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChC,IAAI,IAAI,KAAK,SAAS;wBAAE,MAAM,KAAK,CAAC;oBACpC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBAClD,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK;wBAC3B,MAAM,IAAI,qBAAqB,CAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,WAAW;yBACb,OAAO,CAAC,wBAAwB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;yBAC/C,GAAG,CAAC,IAAI,CAAC,CAAC;oBACb,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,KAAK,MAAM,IAAI,IAAI,QAAQ;gBACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF;AAED,0EAA0E;AAC1E,yEAAyE;AACzE,wEAAwE;AACxE,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,KAAK,KAAK,SAAS;QACrB,OAAO,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG;QACjD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IAC1B,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"federation.js","sourceRoot":"","sources":["../src/federation.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { Federation, type FederationOptions, type Locate, type Query, type QueryResult, } from './federation.ts';
2
2
  export { TooManyDatabasesError } from './too-many-databases-error.ts';
3
+ export { UnavailableError } from '@zukhruf/sqlite-open';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { Federation, } from "./federation.js";
2
2
  export { TooManyDatabasesError } from "./too-many-databases-error.js";
3
+ export { UnavailableError } from '@zukhruf/sqlite-open';
3
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GAKX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GAKX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zukhruf/sqlite-federation",
3
- "version": "0.6.16",
3
+ "version": "0.8.0",
4
4
  "description": "One read-only handle over many SQLite databases. Each statement attaches the databases it names and detaches them when it ends. So a host can keep more databases than the SQLite attach limit, and one statement can read 10 plus the primary database.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -40,7 +40,10 @@
40
40
  "publishConfig": {
41
41
  "access": "public"
42
42
  },
43
+ "dependencies": {
44
+ "@zukhruf/sqlite-open": "^0.8.0"
45
+ },
43
46
  "devDependencies": {
44
- "@zukhruf/testing": "^0.6.16"
47
+ "@zukhruf/testing": "^0.8.0"
45
48
  }
46
49
  }