@procedures/sqlite 0.7.0 → 0.8.1
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 +53 -0
- package/README.md +2 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +22 -0
- package/dist/module.js.map +1 -1
- package/dist/storage.d.ts +24 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +35 -1
- package/dist/storage.js.map +1 -1
- package/package.json +5 -4
- package/src/module.ts +28 -1
- package/src/storage.ts +51 -1
package/dist/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAkF,KAAK,eAAe,EAAuC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AA+gBvM;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,eAIvB,CAAC;eAEU,YAAY;AAE3B;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,GAAE,iBAAsC,GAAG,IAAI,CAE/F"}
|
package/dist/module.js
CHANGED
|
@@ -15,6 +15,19 @@ import { DEFAULT_DB_PATH, LOG_LEVELS, } from "./types.js";
|
|
|
15
15
|
import { dbTables, dbSchema, dbTransaction, dbMigrate, dbBackup } from "./procedures/db/index.js";
|
|
16
16
|
import { DbTablesInputSchema, DbTablesOutputSchema, DbSchemaInputSchema, DbSchemaOutputSchema, DbTransactionInputSchema, DbTransactionOutputSchema, DbMigrateInputSchema, DbMigrateOutputSchema, DbBackupInputSchema, DbBackupOutputSchema, } from "./types.js";
|
|
17
17
|
// =============================================================================
|
|
18
|
+
// The rules under a root of the files (roadmap R33)
|
|
19
|
+
// =============================================================================
|
|
20
|
+
// The procedures open the file in the process with sql.js, which keeps the database in memory. An
|
|
21
|
+
// ATTACH or a VACUUM INTO of the SQL goes to the memory file system of sql.js, not to the disk.
|
|
22
|
+
// So the paths of the input are all the paths that a call reaches. The default database (the CLI
|
|
23
|
+
// log database in the home folder) is outside a root, so under a root a call must give dbPath.
|
|
24
|
+
/** A procedure of one database file. `:memory:` is a database in memory, not a path. */
|
|
25
|
+
const DATABASE_IN_A_ROOT = { paths: ["dbPath"], required: ["dbPath"], values: [":memory:"] };
|
|
26
|
+
/** `sqlite.migrate`: the database file and the folder of the migrations. */
|
|
27
|
+
const MIGRATE_IN_A_ROOT = { paths: ["dbPath", "folder"], required: ["dbPath"], values: [":memory:"] };
|
|
28
|
+
/** `sqlite.backup`: the database file and the new file. The copy of a database in memory has no use. */
|
|
29
|
+
const BACKUP_IN_A_ROOT = { paths: ["dbPath", "to"], required: ["dbPath"] };
|
|
30
|
+
// =============================================================================
|
|
18
31
|
// Schemas
|
|
19
32
|
// =============================================================================
|
|
20
33
|
// Real schemas (roadmap 2.1): the input is validated before the handler, and the MCP tool list
|
|
@@ -133,6 +146,7 @@ const sqliteQueryProcedure = createProcedure()
|
|
|
133
146
|
// PRAGMA query_only refuses each statement that changes the database, so the procedure only
|
|
134
147
|
// reads (CAP-1). Before, any statement ran, and the file kept its changes.
|
|
135
148
|
effects: { reads: ["fs"], writes: [] },
|
|
149
|
+
fsRoot: DATABASE_IN_A_ROOT,
|
|
136
150
|
})
|
|
137
151
|
.handler(async (input) => {
|
|
138
152
|
const dbPath = input.dbPath ?? DEFAULT_DB_PATH;
|
|
@@ -157,6 +171,7 @@ const sqliteExecuteProcedure = createProcedure()
|
|
|
157
171
|
.meta({
|
|
158
172
|
description: "Execute a SQL statement (INSERT, UPDATE, DELETE)",
|
|
159
173
|
effects: { reads: ["fs"], writes: ["fs"] },
|
|
174
|
+
fsRoot: DATABASE_IN_A_ROOT,
|
|
160
175
|
})
|
|
161
176
|
.handler(async (input) => {
|
|
162
177
|
const dbPath = input.dbPath ?? DEFAULT_DB_PATH;
|
|
@@ -178,6 +193,7 @@ const logsStoreProcedure = createProcedure()
|
|
|
178
193
|
description: "Store a log entry in the database",
|
|
179
194
|
// It adds a row, and the logs table when it is missing
|
|
180
195
|
effects: { reads: ["fs"], writes: ["fs"], destructive: false },
|
|
196
|
+
fsRoot: DATABASE_IN_A_ROOT,
|
|
181
197
|
})
|
|
182
198
|
.handler(async (input) => {
|
|
183
199
|
const dbPath = input.dbPath ?? DEFAULT_DB_PATH;
|
|
@@ -228,6 +244,7 @@ const logsQueryProcedure = createProcedure()
|
|
|
228
244
|
// A missing file or table gives no entries, and the query makes neither (CAP-3). Before, the
|
|
229
245
|
// first query made the database file and its table.
|
|
230
246
|
effects: { reads: ["fs"], writes: [] },
|
|
247
|
+
fsRoot: DATABASE_IN_A_ROOT,
|
|
231
248
|
})
|
|
232
249
|
.handler(async (input) => {
|
|
233
250
|
const dbPath = input.dbPath ?? DEFAULT_DB_PATH;
|
|
@@ -305,6 +322,7 @@ const sqliteTablesProcedure = createProcedure()
|
|
|
305
322
|
.meta({
|
|
306
323
|
description: "The tables and views of a database (read only: a missing file is an error)",
|
|
307
324
|
effects: { reads: ["fs"], writes: [] },
|
|
325
|
+
fsRoot: DATABASE_IN_A_ROOT,
|
|
308
326
|
args: [],
|
|
309
327
|
shorts: {},
|
|
310
328
|
output: "json",
|
|
@@ -318,6 +336,7 @@ const sqliteSchemaProcedure = createProcedure()
|
|
|
318
336
|
.meta({
|
|
319
337
|
description: "The columns, indexes and foreign keys of a table (read only)",
|
|
320
338
|
effects: { reads: ["fs"], writes: [] },
|
|
339
|
+
fsRoot: DATABASE_IN_A_ROOT,
|
|
321
340
|
args: ["table"],
|
|
322
341
|
shorts: {},
|
|
323
342
|
output: "json",
|
|
@@ -332,6 +351,7 @@ const sqliteTransactionProcedure = createProcedure()
|
|
|
332
351
|
description: "Run statements in one transaction: they all take effect, or none does",
|
|
333
352
|
// The statements of the caller can change or delete any row
|
|
334
353
|
effects: { reads: ["fs"], writes: ["fs"] },
|
|
354
|
+
fsRoot: DATABASE_IN_A_ROOT,
|
|
335
355
|
args: [],
|
|
336
356
|
shorts: {},
|
|
337
357
|
output: "json",
|
|
@@ -346,6 +366,7 @@ const sqliteMigrateProcedure = createProcedure()
|
|
|
346
366
|
description: "Apply the numbered migrations (a folder or a list) that a database does not have, in one transaction",
|
|
347
367
|
// A migration can drop a table: destructive. A second call applies nothing.
|
|
348
368
|
effects: { reads: ["fs"], writes: ["fs"], idempotent: true },
|
|
369
|
+
fsRoot: MIGRATE_IN_A_ROOT,
|
|
349
370
|
args: [],
|
|
350
371
|
shorts: {},
|
|
351
372
|
output: "json",
|
|
@@ -360,6 +381,7 @@ const sqliteBackupProcedure = createProcedure()
|
|
|
360
381
|
description: "Copy a database to a new file (it does not replace a file)",
|
|
361
382
|
// It makes a new file, and never replaces one. A second call finds the file and fails.
|
|
362
383
|
effects: { reads: ["fs"], writes: ["fs"], destructive: false, idempotent: false },
|
|
384
|
+
fsRoot: BACKUP_IN_A_ROOT,
|
|
363
385
|
args: ["to"],
|
|
364
386
|
shorts: {},
|
|
365
387
|
output: "json",
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
|
package/dist/storage.d.ts
CHANGED
|
@@ -16,11 +16,14 @@
|
|
|
16
16
|
* id, and `_storage_versions` has the version of each collection: `<epoch>:<seq>`, as
|
|
17
17
|
* `InMemoryStorage` has. The epoch stays in the file, so a version stays valid after a restart.
|
|
18
18
|
* - Each write runs in a transaction. A batch that fails changes nothing.
|
|
19
|
+
* - `query()` runs a JSON selector of `@procedures/client/query` on the rows of one read, under a
|
|
20
|
+
* query policy. `patch()` changes an item in one transaction, so two processes keep the fields
|
|
21
|
+
* of each patch.
|
|
19
22
|
* - The storages of one file in one process share one database. Thus the storages of two tables
|
|
20
23
|
* in one file keep the changes of each other.
|
|
21
24
|
* - A storage that only reads does not make the file.
|
|
22
25
|
*/
|
|
23
|
-
import { type CollectionStorage, type Duration, type StorageChanges, type StorageMetadata } from "@procedures/client";
|
|
26
|
+
import { type CollectionStorage, type Duration, type StorageChanges, type StorageMetadata, type StoragePatch, type StorageQueryOptions, type StorageQueryPolicy, type StorageSelector } from "@procedures/client";
|
|
24
27
|
import { type SqliteEngine, type SqliteEngineName } from "./engines.js";
|
|
25
28
|
export { MEMORY_PATH, isNodeSqliteAvailable, type SqliteEngine, type SqliteEngineName } from "./engines.js";
|
|
26
29
|
/** The options of a `SqliteStorage`. */
|
|
@@ -63,6 +66,12 @@ export interface SqliteStorageOptions {
|
|
|
63
66
|
* @default 5 seconds
|
|
64
67
|
*/
|
|
65
68
|
busyTimeout?: Duration;
|
|
69
|
+
/**
|
|
70
|
+
* The query policy of `query()` for a call without a policy. The procedure `find` gives the
|
|
71
|
+
* policy of its host.
|
|
72
|
+
* @default DEFAULT_QUERY_POLICY: no `$regex`
|
|
73
|
+
*/
|
|
74
|
+
queryPolicy?: StorageQueryPolicy | undefined;
|
|
66
75
|
}
|
|
67
76
|
/**
|
|
68
77
|
* This function gives the name when it is a permitted table name. Else it throws a `TypeError`. The name goes
|
|
@@ -90,6 +99,8 @@ export declare class SqliteStorage<T> implements CollectionStorage<T> {
|
|
|
90
99
|
/** The engine choice of the options. `getEngine()` gives the engine that the storage uses. */
|
|
91
100
|
readonly engine: SqliteEngine;
|
|
92
101
|
private readonly maxTombstones;
|
|
102
|
+
/** The query policy of a call without a policy */
|
|
103
|
+
private readonly queryPolicy;
|
|
93
104
|
/** The quoted table name, for the SQL text. */
|
|
94
105
|
private readonly quoted;
|
|
95
106
|
private readonly opening;
|
|
@@ -109,9 +120,21 @@ export declare class SqliteStorage<T> implements CollectionStorage<T> {
|
|
|
109
120
|
*/
|
|
110
121
|
getChangesSince(since?: string): Promise<StorageChanges<T>>;
|
|
111
122
|
find(predicate: (item: T) => boolean): Promise<T[]>;
|
|
123
|
+
/**
|
|
124
|
+
* The entries whose items match the selector, with the order, the skip and the limit of
|
|
125
|
+
* `queryEntries()` (roadmap CLI-14), under the policy of the call or of the options. The storage
|
|
126
|
+
* reads the rows in the order of the entries, and runs the query on them.
|
|
127
|
+
*/
|
|
128
|
+
query(selector: StorageSelector, options?: StorageQueryOptions, policy?: StorageQueryPolicy): Promise<Array<[string, T]>>;
|
|
112
129
|
has(id: string): Promise<boolean>;
|
|
113
130
|
size(): Promise<number>;
|
|
114
131
|
set(id: string, value: T): Promise<void>;
|
|
132
|
+
/**
|
|
133
|
+
* This method changes the item of the id in one transaction (a JSON Merge Patch, or the
|
|
134
|
+
* operations `$set` and `$unset`), and gives a copy of the new item. A missing id stays missing,
|
|
135
|
+
* and the result is undefined. A patch that cannot apply to the item changes nothing.
|
|
136
|
+
*/
|
|
137
|
+
patch(id: string, fields: StoragePatch): Promise<T | undefined>;
|
|
115
138
|
delete(id: string): Promise<boolean>;
|
|
116
139
|
clear(): Promise<void>;
|
|
117
140
|
/** This method sets several items in one transaction. When one value is not JSON, nothing changes. */
|
package/dist/storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
package/dist/storage.js
CHANGED
|
@@ -16,13 +16,17 @@
|
|
|
16
16
|
* id, and `_storage_versions` has the version of each collection: `<epoch>:<seq>`, as
|
|
17
17
|
* `InMemoryStorage` has. The epoch stays in the file, so a version stays valid after a restart.
|
|
18
18
|
* - Each write runs in a transaction. A batch that fails changes nothing.
|
|
19
|
+
* - `query()` runs a JSON selector of `@procedures/client/query` on the rows of one read, under a
|
|
20
|
+
* query policy. `patch()` changes an item in one transaction, so two processes keep the fields
|
|
21
|
+
* of each patch.
|
|
19
22
|
* - The storages of one file in one process share one database. Thus the storages of two tables
|
|
20
23
|
* in one file keep the changes of each other.
|
|
21
24
|
* - A storage that only reads does not make the file.
|
|
22
25
|
*/
|
|
23
26
|
import { randomUUID } from "node:crypto";
|
|
24
27
|
import { resolve } from "node:path";
|
|
25
|
-
import { optionalMs } from "@procedures/client";
|
|
28
|
+
import { optionalMs, } from "@procedures/client";
|
|
29
|
+
import { applyPatch, patchProblems, queryEntries } from "@procedures/client/query";
|
|
26
30
|
import { MEMORY_PATH, checkEngine, openEngine, } from "./engines.js";
|
|
27
31
|
export { MEMORY_PATH, isNodeSqliteAvailable } from "./engines.js";
|
|
28
32
|
/** The pattern of a table name: a letter, then letters, digits and underscores. */
|
|
@@ -326,6 +330,8 @@ export class SqliteStorage {
|
|
|
326
330
|
/** The engine choice of the options. `getEngine()` gives the engine that the storage uses. */
|
|
327
331
|
engine;
|
|
328
332
|
maxTombstones;
|
|
333
|
+
/** The query policy of a call without a policy */
|
|
334
|
+
queryPolicy;
|
|
329
335
|
/** The quoted table name, for the SQL text. */
|
|
330
336
|
quoted;
|
|
331
337
|
opening;
|
|
@@ -340,6 +346,7 @@ export class SqliteStorage {
|
|
|
340
346
|
const busyTimeoutMs = optionalMs(options.busyTimeout, "busyTimeout") ?? 5000;
|
|
341
347
|
this.quoted = `"${this.table}"`;
|
|
342
348
|
this.maxTombstones = Math.max(0, options.maxTombstones ?? 10_000);
|
|
349
|
+
this.queryPolicy = options.queryPolicy;
|
|
343
350
|
this.opening = this.open(busyTimeoutMs);
|
|
344
351
|
// An operation gives the error of the open. This handler only stops an unhandled rejection.
|
|
345
352
|
this.opening.catch(() => undefined);
|
|
@@ -393,6 +400,14 @@ export class SqliteStorage {
|
|
|
393
400
|
async find(predicate) {
|
|
394
401
|
return (await this.getAll()).filter((item) => predicate(item));
|
|
395
402
|
}
|
|
403
|
+
/**
|
|
404
|
+
* The entries whose items match the selector, with the order, the skip and the limit of
|
|
405
|
+
* `queryEntries()` (roadmap CLI-14), under the policy of the call or of the options. The storage
|
|
406
|
+
* reads the rows in the order of the entries, and runs the query on them.
|
|
407
|
+
*/
|
|
408
|
+
async query(selector, options, policy) {
|
|
409
|
+
return queryEntries(this.entries(await this.database()), selector, options, policy ?? this.queryPolicy);
|
|
410
|
+
}
|
|
396
411
|
async has(id) {
|
|
397
412
|
const db = await this.database();
|
|
398
413
|
return db.all(`SELECT 1 FROM ${this.quoted} WHERE id = ? LIMIT 1`, [checkId(id)]).length > 0;
|
|
@@ -409,6 +424,25 @@ export class SqliteStorage {
|
|
|
409
424
|
const text = toJson(checkId(id), value);
|
|
410
425
|
await this.write((db, next) => this.put(db, id, text, next));
|
|
411
426
|
}
|
|
427
|
+
/**
|
|
428
|
+
* This method changes the item of the id in one transaction (a JSON Merge Patch, or the
|
|
429
|
+
* operations `$set` and `$unset`), and gives a copy of the new item. A missing id stays missing,
|
|
430
|
+
* and the result is undefined. A patch that cannot apply to the item changes nothing.
|
|
431
|
+
*/
|
|
432
|
+
async patch(id, fields) {
|
|
433
|
+
checkId(id);
|
|
434
|
+
const [problem] = patchProblems(fields);
|
|
435
|
+
if (problem !== undefined)
|
|
436
|
+
throw new TypeError(`The patch of ${JSON.stringify(id)} is not correct: ${problem}`);
|
|
437
|
+
return this.write((db, next) => {
|
|
438
|
+
const [row] = db.all(`SELECT value FROM ${this.quoted} WHERE id = ?`, [id]);
|
|
439
|
+
if (row === undefined)
|
|
440
|
+
return undefined;
|
|
441
|
+
const text = toJson(id, applyPatch(JSON.parse(row.value), fields));
|
|
442
|
+
this.put(db, id, text, next);
|
|
443
|
+
return JSON.parse(text);
|
|
444
|
+
});
|
|
445
|
+
}
|
|
412
446
|
async delete(id) {
|
|
413
447
|
checkId(id);
|
|
414
448
|
return this.write((db, next) => this.remove(db, id, next));
|
package/dist/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package",
|
|
3
3
|
"name": "@procedures/sqlite",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.8.1",
|
|
5
5
|
"description": "SQLite procedures with sql.js and no native build: queries, tables and schemas, transactions, migrations, backups and structured logs, safe for concurrent writes, and SqliteStorage, a durable collection storage with a change log on node:sqlite or sql.js.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"sqlite",
|
|
@@ -65,14 +65,15 @@
|
|
|
65
65
|
"procedures": "./dist/register.js"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@procedures/client": "0.7.0",
|
|
69
68
|
"@mark1russell7/docker-sqlite": "^0.1.0",
|
|
69
|
+
"@procedures/client": "0.8.1",
|
|
70
70
|
"zod": "^4.6.5"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"@mark1russell7/cue": "^1.0.0",
|
|
74
|
-
"@procedures/collections": "0.
|
|
75
|
-
"@procedures/
|
|
74
|
+
"@procedures/collections": "0.8.1",
|
|
75
|
+
"@procedures/fs": "0.8.1",
|
|
76
|
+
"@procedures/store": "0.8.1",
|
|
76
77
|
"@types/node": "^22.0.0",
|
|
77
78
|
"typescript": "^7.0.2",
|
|
78
79
|
"vitest": "^5.0.3"
|
package/src/module.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* This file is referenced by package.json's client.procedures field.
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import { createProcedure, zodAdapter, defineModule, type AnyProcedure, type ProcedureModule, PROCEDURE_REGISTRY, registerModules, type ProcedureRegistry } from "@procedures/client";
|
|
12
|
+
import { createProcedure, zodAdapter, defineModule, type AnyProcedure, type FsRootRules, type ProcedureModule, PROCEDURE_REGISTRY, registerModules, type ProcedureRegistry } from "@procedures/client";
|
|
13
13
|
import { z } from "zod";
|
|
14
14
|
import {
|
|
15
15
|
withConnection,
|
|
@@ -58,6 +58,24 @@ import {
|
|
|
58
58
|
type DbBackupOutput,
|
|
59
59
|
} from "./types.js";
|
|
60
60
|
|
|
61
|
+
// =============================================================================
|
|
62
|
+
// The rules under a root of the files (roadmap R33)
|
|
63
|
+
// =============================================================================
|
|
64
|
+
|
|
65
|
+
// The procedures open the file in the process with sql.js, which keeps the database in memory. An
|
|
66
|
+
// ATTACH or a VACUUM INTO of the SQL goes to the memory file system of sql.js, not to the disk.
|
|
67
|
+
// So the paths of the input are all the paths that a call reaches. The default database (the CLI
|
|
68
|
+
// log database in the home folder) is outside a root, so under a root a call must give dbPath.
|
|
69
|
+
|
|
70
|
+
/** A procedure of one database file. `:memory:` is a database in memory, not a path. */
|
|
71
|
+
const DATABASE_IN_A_ROOT: FsRootRules = { paths: ["dbPath"], required: ["dbPath"], values: [":memory:"] };
|
|
72
|
+
|
|
73
|
+
/** `sqlite.migrate`: the database file and the folder of the migrations. */
|
|
74
|
+
const MIGRATE_IN_A_ROOT: FsRootRules = { paths: ["dbPath", "folder"], required: ["dbPath"], values: [":memory:"] };
|
|
75
|
+
|
|
76
|
+
/** `sqlite.backup`: the database file and the new file. The copy of a database in memory has no use. */
|
|
77
|
+
const BACKUP_IN_A_ROOT: FsRootRules = { paths: ["dbPath", "to"], required: ["dbPath"] };
|
|
78
|
+
|
|
61
79
|
// =============================================================================
|
|
62
80
|
// Schemas
|
|
63
81
|
// =============================================================================
|
|
@@ -204,6 +222,7 @@ const sqliteQueryProcedure = createProcedure()
|
|
|
204
222
|
// PRAGMA query_only refuses each statement that changes the database, so the procedure only
|
|
205
223
|
// reads (CAP-1). Before, any statement ran, and the file kept its changes.
|
|
206
224
|
effects: { reads: ["fs"], writes: [] },
|
|
225
|
+
fsRoot: DATABASE_IN_A_ROOT,
|
|
207
226
|
})
|
|
208
227
|
.handler(async (input: DbQueryInput): Promise<DbQueryOutput> => {
|
|
209
228
|
const dbPath = input.dbPath ?? DEFAULT_DB_PATH;
|
|
@@ -231,6 +250,7 @@ const sqliteExecuteProcedure = createProcedure()
|
|
|
231
250
|
.meta({
|
|
232
251
|
description: "Execute a SQL statement (INSERT, UPDATE, DELETE)",
|
|
233
252
|
effects: { reads: ["fs"], writes: ["fs"] },
|
|
253
|
+
fsRoot: DATABASE_IN_A_ROOT,
|
|
234
254
|
})
|
|
235
255
|
.handler(async (input: DbExecuteInput): Promise<DbExecuteOutput> => {
|
|
236
256
|
const dbPath = input.dbPath ?? DEFAULT_DB_PATH;
|
|
@@ -255,6 +275,7 @@ const logsStoreProcedure = createProcedure()
|
|
|
255
275
|
description: "Store a log entry in the database",
|
|
256
276
|
// It adds a row, and the logs table when it is missing
|
|
257
277
|
effects: { reads: ["fs"], writes: ["fs"], destructive: false },
|
|
278
|
+
fsRoot: DATABASE_IN_A_ROOT,
|
|
258
279
|
})
|
|
259
280
|
.handler(async (input: LogsStoreInput): Promise<LogsStoreOutput> => {
|
|
260
281
|
const dbPath = input.dbPath ?? DEFAULT_DB_PATH;
|
|
@@ -319,6 +340,7 @@ const logsQueryProcedure = createProcedure()
|
|
|
319
340
|
// A missing file or table gives no entries, and the query makes neither (CAP-3). Before, the
|
|
320
341
|
// first query made the database file and its table.
|
|
321
342
|
effects: { reads: ["fs"], writes: [] },
|
|
343
|
+
fsRoot: DATABASE_IN_A_ROOT,
|
|
322
344
|
})
|
|
323
345
|
.handler(async (input: LogsQueryInput): Promise<LogsQueryOutput> => {
|
|
324
346
|
const dbPath = input.dbPath ?? DEFAULT_DB_PATH;
|
|
@@ -424,6 +446,7 @@ const sqliteTablesProcedure = createProcedure()
|
|
|
424
446
|
.meta({
|
|
425
447
|
description: "The tables and views of a database (read only: a missing file is an error)",
|
|
426
448
|
effects: { reads: ["fs"], writes: [] },
|
|
449
|
+
fsRoot: DATABASE_IN_A_ROOT,
|
|
427
450
|
args: [],
|
|
428
451
|
shorts: {},
|
|
429
452
|
output: "json",
|
|
@@ -438,6 +461,7 @@ const sqliteSchemaProcedure = createProcedure()
|
|
|
438
461
|
.meta({
|
|
439
462
|
description: "The columns, indexes and foreign keys of a table (read only)",
|
|
440
463
|
effects: { reads: ["fs"], writes: [] },
|
|
464
|
+
fsRoot: DATABASE_IN_A_ROOT,
|
|
441
465
|
args: ["table"],
|
|
442
466
|
shorts: {},
|
|
443
467
|
output: "json",
|
|
@@ -453,6 +477,7 @@ const sqliteTransactionProcedure = createProcedure()
|
|
|
453
477
|
description: "Run statements in one transaction: they all take effect, or none does",
|
|
454
478
|
// The statements of the caller can change or delete any row
|
|
455
479
|
effects: { reads: ["fs"], writes: ["fs"] },
|
|
480
|
+
fsRoot: DATABASE_IN_A_ROOT,
|
|
456
481
|
args: [],
|
|
457
482
|
shorts: {},
|
|
458
483
|
output: "json",
|
|
@@ -468,6 +493,7 @@ const sqliteMigrateProcedure = createProcedure()
|
|
|
468
493
|
description: "Apply the numbered migrations (a folder or a list) that a database does not have, in one transaction",
|
|
469
494
|
// A migration can drop a table: destructive. A second call applies nothing.
|
|
470
495
|
effects: { reads: ["fs"], writes: ["fs"], idempotent: true },
|
|
496
|
+
fsRoot: MIGRATE_IN_A_ROOT,
|
|
471
497
|
args: [],
|
|
472
498
|
shorts: {},
|
|
473
499
|
output: "json",
|
|
@@ -483,6 +509,7 @@ const sqliteBackupProcedure = createProcedure()
|
|
|
483
509
|
description: "Copy a database to a new file (it does not replace a file)",
|
|
484
510
|
// It makes a new file, and never replaces one. A second call finds the file and fails.
|
|
485
511
|
effects: { reads: ["fs"], writes: ["fs"], destructive: false, idempotent: false },
|
|
512
|
+
fsRoot: BACKUP_IN_A_ROOT,
|
|
486
513
|
args: ["to"],
|
|
487
514
|
shorts: {},
|
|
488
515
|
output: "json",
|
package/src/storage.ts
CHANGED
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
* id, and `_storage_versions` has the version of each collection: `<epoch>:<seq>`, as
|
|
17
17
|
* `InMemoryStorage` has. The epoch stays in the file, so a version stays valid after a restart.
|
|
18
18
|
* - Each write runs in a transaction. A batch that fails changes nothing.
|
|
19
|
+
* - `query()` runs a JSON selector of `@procedures/client/query` on the rows of one read, under a
|
|
20
|
+
* query policy. `patch()` changes an item in one transaction, so two processes keep the fields
|
|
21
|
+
* of each patch.
|
|
19
22
|
* - The storages of one file in one process share one database. Thus the storages of two tables
|
|
20
23
|
* in one file keep the changes of each other.
|
|
21
24
|
* - A storage that only reads does not make the file.
|
|
@@ -23,7 +26,18 @@
|
|
|
23
26
|
|
|
24
27
|
import { randomUUID } from "node:crypto";
|
|
25
28
|
import { resolve } from "node:path";
|
|
26
|
-
import {
|
|
29
|
+
import {
|
|
30
|
+
optionalMs,
|
|
31
|
+
type CollectionStorage,
|
|
32
|
+
type Duration,
|
|
33
|
+
type StorageChanges,
|
|
34
|
+
type StorageMetadata,
|
|
35
|
+
type StoragePatch,
|
|
36
|
+
type StorageQueryOptions,
|
|
37
|
+
type StorageQueryPolicy,
|
|
38
|
+
type StorageSelector,
|
|
39
|
+
} from "@procedures/client";
|
|
40
|
+
import { applyPatch, patchProblems, queryEntries } from "@procedures/client/query";
|
|
27
41
|
import {
|
|
28
42
|
MEMORY_PATH,
|
|
29
43
|
checkEngine,
|
|
@@ -78,6 +92,12 @@ export interface SqliteStorageOptions {
|
|
|
78
92
|
* @default 5 seconds
|
|
79
93
|
*/
|
|
80
94
|
busyTimeout?: Duration;
|
|
95
|
+
/**
|
|
96
|
+
* The query policy of `query()` for a call without a policy. The procedure `find` gives the
|
|
97
|
+
* policy of its host.
|
|
98
|
+
* @default DEFAULT_QUERY_POLICY: no `$regex`
|
|
99
|
+
*/
|
|
100
|
+
queryPolicy?: StorageQueryPolicy | undefined;
|
|
81
101
|
}
|
|
82
102
|
|
|
83
103
|
/** The pattern of a table name: a letter, then letters, digits and underscores. */
|
|
@@ -415,6 +435,8 @@ export class SqliteStorage<T> implements CollectionStorage<T> {
|
|
|
415
435
|
/** The engine choice of the options. `getEngine()` gives the engine that the storage uses. */
|
|
416
436
|
readonly engine: SqliteEngine;
|
|
417
437
|
private readonly maxTombstones: number;
|
|
438
|
+
/** The query policy of a call without a policy */
|
|
439
|
+
private readonly queryPolicy: StorageQueryPolicy | undefined;
|
|
418
440
|
/** The quoted table name, for the SQL text. */
|
|
419
441
|
private readonly quoted: string;
|
|
420
442
|
private readonly opening: Promise<SharedDatabase>;
|
|
@@ -430,6 +452,7 @@ export class SqliteStorage<T> implements CollectionStorage<T> {
|
|
|
430
452
|
const busyTimeoutMs = optionalMs(options.busyTimeout, "busyTimeout") ?? 5000;
|
|
431
453
|
this.quoted = `"${this.table}"`;
|
|
432
454
|
this.maxTombstones = Math.max(0, options.maxTombstones ?? 10_000);
|
|
455
|
+
this.queryPolicy = options.queryPolicy;
|
|
433
456
|
this.opening = this.open(busyTimeoutMs);
|
|
434
457
|
// An operation gives the error of the open. This handler only stops an unhandled rejection.
|
|
435
458
|
this.opening.catch(() => undefined);
|
|
@@ -494,6 +517,15 @@ export class SqliteStorage<T> implements CollectionStorage<T> {
|
|
|
494
517
|
return (await this.getAll()).filter((item) => predicate(item));
|
|
495
518
|
}
|
|
496
519
|
|
|
520
|
+
/**
|
|
521
|
+
* The entries whose items match the selector, with the order, the skip and the limit of
|
|
522
|
+
* `queryEntries()` (roadmap CLI-14), under the policy of the call or of the options. The storage
|
|
523
|
+
* reads the rows in the order of the entries, and runs the query on them.
|
|
524
|
+
*/
|
|
525
|
+
async query(selector: StorageSelector, options?: StorageQueryOptions, policy?: StorageQueryPolicy): Promise<Array<[string, T]>> {
|
|
526
|
+
return queryEntries(this.entries(await this.database()), selector, options, policy ?? this.queryPolicy);
|
|
527
|
+
}
|
|
528
|
+
|
|
497
529
|
async has(id: string): Promise<boolean> {
|
|
498
530
|
const db = await this.database();
|
|
499
531
|
return db.all(`SELECT 1 FROM ${this.quoted} WHERE id = ? LIMIT 1`, [checkId(id)]).length > 0;
|
|
@@ -514,6 +546,24 @@ export class SqliteStorage<T> implements CollectionStorage<T> {
|
|
|
514
546
|
await this.write((db, next) => this.put(db, id, text, next));
|
|
515
547
|
}
|
|
516
548
|
|
|
549
|
+
/**
|
|
550
|
+
* This method changes the item of the id in one transaction (a JSON Merge Patch, or the
|
|
551
|
+
* operations `$set` and `$unset`), and gives a copy of the new item. A missing id stays missing,
|
|
552
|
+
* and the result is undefined. A patch that cannot apply to the item changes nothing.
|
|
553
|
+
*/
|
|
554
|
+
async patch(id: string, fields: StoragePatch): Promise<T | undefined> {
|
|
555
|
+
checkId(id);
|
|
556
|
+
const [problem] = patchProblems(fields);
|
|
557
|
+
if (problem !== undefined) throw new TypeError(`The patch of ${JSON.stringify(id)} is not correct: ${problem}`);
|
|
558
|
+
return this.write((db, next) => {
|
|
559
|
+
const [row] = db.all<{ value: string }>(`SELECT value FROM ${this.quoted} WHERE id = ?`, [id]);
|
|
560
|
+
if (row === undefined) return undefined;
|
|
561
|
+
const text = toJson(id, applyPatch(JSON.parse(row.value), fields));
|
|
562
|
+
this.put(db, id, text, next);
|
|
563
|
+
return JSON.parse(text) as T;
|
|
564
|
+
});
|
|
565
|
+
}
|
|
566
|
+
|
|
517
567
|
async delete(id: string): Promise<boolean> {
|
|
518
568
|
checkId(id);
|
|
519
569
|
return this.write((db, next) => this.remove(db, id, next));
|