@procedures/sqlite 0.2.3 → 0.4.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 (59) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/README.md +147 -17
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/index.d.ts +5 -3
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +8 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/module.d.ts +13 -2
  9. package/dist/module.d.ts.map +1 -1
  10. package/dist/module.js +135 -18
  11. package/dist/module.js.map +1 -1
  12. package/dist/procedures/db/backup.d.ts +19 -0
  13. package/dist/procedures/db/backup.d.ts.map +1 -0
  14. package/dist/procedures/db/backup.js +61 -0
  15. package/dist/procedures/db/backup.js.map +1 -0
  16. package/dist/procedures/db/index.d.ts +6 -0
  17. package/dist/procedures/db/index.d.ts.map +1 -0
  18. package/dist/procedures/db/index.js +6 -0
  19. package/dist/procedures/db/index.js.map +1 -0
  20. package/dist/procedures/db/migrate.d.ts +24 -0
  21. package/dist/procedures/db/migrate.d.ts.map +1 -0
  22. package/dist/procedures/db/migrate.js +110 -0
  23. package/dist/procedures/db/migrate.js.map +1 -0
  24. package/dist/procedures/db/schema.d.ts +13 -0
  25. package/dist/procedures/db/schema.d.ts.map +1 -0
  26. package/dist/procedures/db/schema.js +33 -0
  27. package/dist/procedures/db/schema.js.map +1 -0
  28. package/dist/procedures/db/shared.d.ts +25 -0
  29. package/dist/procedures/db/shared.d.ts.map +1 -0
  30. package/dist/procedures/db/shared.js +105 -0
  31. package/dist/procedures/db/shared.js.map +1 -0
  32. package/dist/procedures/db/tables.d.ts +12 -0
  33. package/dist/procedures/db/tables.d.ts.map +1 -0
  34. package/dist/procedures/db/tables.js +22 -0
  35. package/dist/procedures/db/tables.js.map +1 -0
  36. package/dist/procedures/db/transaction.d.ts +14 -0
  37. package/dist/procedures/db/transaction.d.ts.map +1 -0
  38. package/dist/procedures/db/transaction.js +44 -0
  39. package/dist/procedures/db/transaction.js.map +1 -0
  40. package/dist/storage.d.ts +123 -0
  41. package/dist/storage.d.ts.map +1 -0
  42. package/dist/storage.js +525 -0
  43. package/dist/storage.js.map +1 -0
  44. package/dist/types.d.ts +131 -0
  45. package/dist/types.d.ts.map +1 -1
  46. package/dist/types.js +109 -0
  47. package/dist/types.js.map +1 -1
  48. package/package.json +9 -3
  49. package/src/index.ts +28 -2
  50. package/src/module.ts +167 -19
  51. package/src/procedures/db/backup.ts +62 -0
  52. package/src/procedures/db/index.ts +5 -0
  53. package/src/procedures/db/migrate.ts +121 -0
  54. package/src/procedures/db/schema.ts +71 -0
  55. package/src/procedures/db/shared.ts +109 -0
  56. package/src/procedures/db/tables.ts +27 -0
  57. package/src/procedures/db/transaction.ts +43 -0
  58. package/src/storage.ts +591 -0
  59. package/src/types.ts +270 -2
package/dist/index.d.ts CHANGED
@@ -10,8 +10,8 @@
10
10
  *
11
11
  * const client = new Client(...);
12
12
  *
13
- * // Execute a query
14
- * const result = await client.call(["db", "query"], {
13
+ * // Execute a query (sqlite.query: the old name db.query is a deprecated alias)
14
+ * const result = await client.call(["sqlite", "query"], {
15
15
  * sql: "SELECT * FROM logs WHERE level = ?",
16
16
  * params: ["error"]
17
17
  * });
@@ -33,9 +33,11 @@
33
33
  * });
34
34
  * ```
35
35
  */
36
- export type { DbQueryInput, DbQueryOutput, DbExecuteInput, DbExecuteOutput, LogsStoreInput, LogsStoreOutput, LogsQueryInput, LogsQueryOutput, LogEntry, LogLevel, } from "./types.js";
36
+ export type { DbQueryInput, DbQueryOutput, DbExecuteInput, DbExecuteOutput, LogsStoreInput, LogsStoreOutput, LogsQueryInput, LogsQueryOutput, LogEntry, LogLevel, DbTablesInput, DbTablesOutput, DbTableInfo, DbSchemaInput, DbSchemaOutput, DbColumnInfo, DbIndexInfo, DbForeignKeyInfo, DbStatement, DbStatementResult, DbTransactionInput, DbTransactionOutput, DbMigration, DbMigrateInput, DbMigrateOutput, DbBackupInput, DbBackupOutput, } from "./types.js";
37
37
  export { DEFAULT_DB_PATH, LOG_LEVELS } from "./types.js";
38
+ export { dbTables, dbSchema, dbTransaction, dbMigrate, dbBackup } from "./procedures/db/index.js";
38
39
  export { registerSqliteProcedures } from "./module.js";
40
+ export { SqliteStorage, checkTableName, MEMORY_PATH, type SqliteStorageOptions } from "./storage.js";
39
41
  export { withConnection, createConnection, query, execute, execMultiple, lastInsertRowId, tableExists, getMigrationStatus, runMigrations, rollbackMigration, createMigration, } from "@mark1russell7/docker-sqlite";
40
42
  export type { ConnectionConfig, ConnectionCallback, QueryResult, ExecuteResult, Migration, MigrationStatus, Database, } from "@mark1russell7/docker-sqlite";
41
43
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAMH,YAAY,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,QAAQ,EACR,QAAQ,GACT,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAMvD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,OAAO,EACP,YAAY,EACZ,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,SAAS,EACT,eAAe,EACf,QAAQ,GACT,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAMH,YAAY,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGzD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAMlG,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAMvD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAMrG,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,OAAO,EACP,YAAY,EACZ,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,SAAS,EACT,eAAe,EACf,QAAQ,GACT,MAAM,8BAA8B,CAAC"}
package/dist/index.js CHANGED
@@ -10,8 +10,8 @@
10
10
  *
11
11
  * const client = new Client(...);
12
12
  *
13
- * // Execute a query
14
- * const result = await client.call(["db", "query"], {
13
+ * // Execute a query (sqlite.query: the old name db.query is a deprecated alias)
14
+ * const result = await client.call(["sqlite", "query"], {
15
15
  * sql: "SELECT * FROM logs WHERE level = ?",
16
16
  * params: ["error"]
17
17
  * });
@@ -34,11 +34,17 @@
34
34
  * ```
35
35
  */
36
36
  export { DEFAULT_DB_PATH, LOG_LEVELS } from "./types.js";
37
+ // The sqlite.* procedures of roadmap R44, for direct use
38
+ export { dbTables, dbSchema, dbTransaction, dbMigrate, dbBackup } from "./procedures/db/index.js";
37
39
  // =============================================================================
38
40
  // Registration
39
41
  // =============================================================================
40
42
  export { registerSqliteProcedures } from "./module.js";
41
43
  // =============================================================================
44
+ // The collection storage (roadmap R45). The entry @procedures/sqlite/storage has it alone.
45
+ // =============================================================================
46
+ export { SqliteStorage, checkTableName, MEMORY_PATH } from "./storage.js";
47
+ // =============================================================================
42
48
  // Re-export docker-sqlite utilities for direct use
43
49
  // =============================================================================
44
50
  export { withConnection, createConnection, query, execute, execMultiple, lastInsertRowId, tableExists, getMigrationStatus, runMigrations, rollbackMigration, createMigration, } from "@mark1russell7/docker-sqlite";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAmBH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEzD,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,gFAAgF;AAChF,mDAAmD;AACnD,gFAAgF;AAEhF,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,OAAO,EACP,YAAY,EACZ,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAoCH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEzD,yDAAyD;AACzD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAElG,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,gFAAgF;AAChF,2FAA2F;AAC3F,gFAAgF;AAEhF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAA6B,MAAM,cAAc,CAAC;AAErG,gFAAgF;AAChF,mDAAmD;AACnD,gFAAgF;AAEhF,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,OAAO,EACP,YAAY,EACZ,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,8BAA8B,CAAC"}
package/dist/module.d.ts CHANGED
@@ -3,10 +3,21 @@
3
3
  *
4
4
  * Procedure Registration for SQLite
5
5
  *
6
- * Registers database and logging procedures with the client system.
6
+ * The module has the database and logging procedures: sqlite.query, sqlite.execute,
7
+ * sqlite.tables, sqlite.schema, sqlite.transaction, sqlite.migrate, sqlite.backup, logs.store
8
+ * and logs.query. The old names db.* stay for one release as deprecated aliases (refer to
9
+ * `deprecatedDbAlias`).
7
10
  * This file is referenced by package.json's client.procedures field.
8
11
  */
9
- import { type ProcedureModule, type ProcedureRegistry } from "@procedures/client";
12
+ import { type AnyProcedure, type ProcedureModule, type ProcedureRegistry } from "@procedures/client";
13
+ /**
14
+ * This function gives the deprecated alias `db.<name>` of the procedure `sqlite.<name>`. The alias
15
+ * has the same schemas, handler and effects. Its description names the new procedure. The aliases
16
+ * go away in the next release. The MCP server does not expose them (`bundle-mcp`).
17
+ */
18
+ export declare function deprecatedDbAlias(procedure: AnyProcedure): AnyProcedure;
19
+ /** The deprecated aliases `db.query`, `db.execute`, `db.tables`, `db.schema`, `db.transaction`, `db.migrate` and `db.backup`. */
20
+ export declare const dbAliasProcedures: readonly AnyProcedure[];
10
21
  /**
11
22
  * The module of this package, for `createRegistry()`: its procedures as data. Importing this
12
23
  * file registers nothing. (`register.ts` registers the same procedures in the global registry.)
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAA6C,KAAK,eAAe,EAAuC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AA2XlK;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,eAKvB,CAAC;eAEU,YAAY;AAE3B;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,GAAE,iBAAsC,GAAG,IAAI,CAE/F"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAA6C,KAAK,YAAY,EAAE,KAAK,eAAe,EAAuC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAgfrL;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,YAAY,GAAG,YAAY,CAavE;AAED,iIAAiI;AACjI,eAAO,MAAM,iBAAiB,EAAE,SAAS,YAAY,EAA4C,CAAC;AAMlG;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,eAMvB,CAAC;eAEU,YAAY;AAE3B;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,GAAE,iBAAsC,GAAG,IAAI,CAE/F"}
package/dist/module.js CHANGED
@@ -3,22 +3,28 @@
3
3
  *
4
4
  * Procedure Registration for SQLite
5
5
  *
6
- * Registers database and logging procedures with the client system.
6
+ * The module has the database and logging procedures: sqlite.query, sqlite.execute,
7
+ * sqlite.tables, sqlite.schema, sqlite.transaction, sqlite.migrate, sqlite.backup, logs.store
8
+ * and logs.query. The old names db.* stay for one release as deprecated aliases (refer to
9
+ * `deprecatedDbAlias`).
7
10
  * This file is referenced by package.json's client.procedures field.
8
11
  */
9
12
  import { createProcedure, zodAdapter, defineModule, PROCEDURE_REGISTRY, registerModules } from "@procedures/client";
10
13
  import { z } from "zod";
11
- import { withConnection, query, execute, lastInsertRowId, runMigrations, } from "@mark1russell7/docker-sqlite";
14
+ import { withConnection, query, execute, lastInsertRowId, runMigrations, tableExists, } from "@mark1russell7/docker-sqlite";
12
15
  import { DEFAULT_DB_PATH, LOG_LEVELS, } from "./types.js";
16
+ import { dbTables, dbSchema, dbTransaction, dbMigrate, dbBackup } from "./procedures/db/index.js";
17
+ import { DbTablesInputSchema, DbTablesOutputSchema, DbSchemaInputSchema, DbSchemaOutputSchema, DbTransactionInputSchema, DbTransactionOutputSchema, DbMigrateInputSchema, DbMigrateOutputSchema, DbBackupInputSchema, DbBackupOutputSchema, } from "./types.js";
13
18
  // =============================================================================
14
19
  // Schemas
15
20
  // =============================================================================
16
21
  // Real schemas (roadmap 2.1): the input is validated before the handler, and the MCP tool list
17
22
  // and the help of mark describe each field. zodAdapter<T> checks each schema against its type.
23
+ // The description is the same on each computer: it does not show the home folder of this one
18
24
  const dbPathField = z
19
25
  .string()
20
26
  .optional()
21
- .describe(`The SQLite database file (default: ${DEFAULT_DB_PATH}). A query does not make a missing file.`);
27
+ .describe("The SQLite database file (default: the CLI log database, ~/logs/cli/cli.db). A query does not make a missing file.");
22
28
  const paramsField = z
23
29
  .array(z.unknown())
24
30
  .optional()
@@ -117,21 +123,23 @@ async function ensureLogsTable(dbPath) {
117
123
  });
118
124
  }
119
125
  // =============================================================================
120
- // db.query Procedure
126
+ // sqlite.query Procedure
121
127
  // =============================================================================
122
- const dbQueryProcedure = createProcedure()
123
- .path(["db", "query"])
128
+ const sqliteQueryProcedure = createProcedure()
129
+ .path(["sqlite", "query"])
124
130
  .input(dbQueryInputSchema)
125
131
  .output(dbQueryOutputSchema)
126
132
  .meta({
127
- description: "Execute a SQL SELECT query",
128
- // The SQL is not limited to SELECT: the first statement runs, and the file keeps its changes
129
- effects: { reads: ["fs"], writes: ["fs"] },
133
+ description: "Execute a SQL SELECT query (read only: a statement that changes data fails)",
134
+ // PRAGMA query_only refuses each statement that changes the database, so the procedure only
135
+ // reads (CAP-1). Before, any statement ran, and the file kept its changes.
136
+ effects: { reads: ["fs"], writes: [] },
130
137
  })
131
138
  .handler(async (input) => {
132
139
  const dbPath = input.dbPath ?? DEFAULT_DB_PATH;
133
140
  const params = input.params ?? [];
134
141
  return withConnection({ dbPath }, (db) => {
142
+ db.run("PRAGMA query_only = 1");
135
143
  const result = query(db, input.sql, params);
136
144
  return {
137
145
  columns: result.columns,
@@ -141,10 +149,10 @@ const dbQueryProcedure = createProcedure()
141
149
  })
142
150
  .build();
143
151
  // =============================================================================
144
- // db.execute Procedure
152
+ // sqlite.execute Procedure
145
153
  // =============================================================================
146
- const dbExecuteProcedure = createProcedure()
147
- .path(["db", "execute"])
154
+ const sqliteExecuteProcedure = createProcedure()
155
+ .path(["sqlite", "execute"])
148
156
  .input(dbExecuteInputSchema)
149
157
  .output(dbExecuteOutputSchema)
150
158
  .meta({
@@ -218,14 +226,17 @@ const logsQueryProcedure = createProcedure()
218
226
  .output(logsQueryOutputSchema)
219
227
  .meta({
220
228
  description: "Query log entries from the database",
221
- // It makes the database file and the logs table when they are missing
222
- effects: { reads: ["fs"], writes: ["fs"], destructive: false, idempotent: true },
229
+ // A missing file or table gives no entries, and the query makes neither (CAP-3). Before, the
230
+ // first query made the database file and its table.
231
+ effects: { reads: ["fs"], writes: [] },
223
232
  })
224
233
  .handler(async (input) => {
225
234
  const dbPath = input.dbPath ?? DEFAULT_DB_PATH;
226
- // Ensure table exists
227
- await ensureLogsTable(dbPath);
228
235
  return withConnection({ dbPath }, (db) => {
236
+ if (!tableExists(db, "logs")) {
237
+ return { logs: [] };
238
+ }
239
+ db.run("PRAGMA query_only = 1");
229
240
  const conditions = [];
230
241
  const params = [];
231
242
  if (input.sessionId !== undefined) {
@@ -286,6 +297,111 @@ const logsQueryProcedure = createProcedure()
286
297
  })
287
298
  .build();
288
299
  // =============================================================================
300
+ // sqlite.tables, sqlite.schema, sqlite.transaction, sqlite.migrate and sqlite.backup (roadmap R44)
301
+ // =============================================================================
302
+ const sqliteTablesProcedure = createProcedure()
303
+ .path(["sqlite", "tables"])
304
+ .input(zodAdapter(DbTablesInputSchema))
305
+ .output(zodAdapter(DbTablesOutputSchema))
306
+ .meta({
307
+ description: "The tables and views of a database (read only: a missing file is an error)",
308
+ effects: { reads: ["fs"], writes: [] },
309
+ args: [],
310
+ shorts: {},
311
+ output: "json",
312
+ })
313
+ .handler(async (input) => dbTables(input))
314
+ .build();
315
+ const sqliteSchemaProcedure = createProcedure()
316
+ .path(["sqlite", "schema"])
317
+ .input(zodAdapter(DbSchemaInputSchema))
318
+ .output(zodAdapter(DbSchemaOutputSchema))
319
+ .meta({
320
+ description: "The columns, indexes and foreign keys of a table (read only)",
321
+ effects: { reads: ["fs"], writes: [] },
322
+ args: ["table"],
323
+ shorts: {},
324
+ output: "json",
325
+ })
326
+ .handler(async (input) => dbSchema(input))
327
+ .build();
328
+ const sqliteTransactionProcedure = createProcedure()
329
+ .path(["sqlite", "transaction"])
330
+ .input(zodAdapter(DbTransactionInputSchema))
331
+ .output(zodAdapter(DbTransactionOutputSchema))
332
+ .meta({
333
+ description: "Run statements in one transaction: they all take effect, or none does",
334
+ // The statements of the caller can change or delete any row
335
+ effects: { reads: ["fs"], writes: ["fs"] },
336
+ args: [],
337
+ shorts: {},
338
+ output: "json",
339
+ })
340
+ .handler(async (input) => dbTransaction(input))
341
+ .build();
342
+ const sqliteMigrateProcedure = createProcedure()
343
+ .path(["sqlite", "migrate"])
344
+ .input(zodAdapter(DbMigrateInputSchema))
345
+ .output(zodAdapter(DbMigrateOutputSchema))
346
+ .meta({
347
+ description: "Apply the numbered migrations (a folder or a list) that a database does not have, in one transaction",
348
+ // A migration can drop a table: destructive. A second call applies nothing.
349
+ effects: { reads: ["fs"], writes: ["fs"], idempotent: true },
350
+ args: [],
351
+ shorts: {},
352
+ output: "json",
353
+ })
354
+ .handler(async (input) => dbMigrate(input))
355
+ .build();
356
+ const sqliteBackupProcedure = createProcedure()
357
+ .path(["sqlite", "backup"])
358
+ .input(zodAdapter(DbBackupInputSchema))
359
+ .output(zodAdapter(DbBackupOutputSchema))
360
+ .meta({
361
+ description: "Copy a database to a new file (it does not replace a file)",
362
+ // It makes a new file, and never replaces one. A second call finds the file and fails.
363
+ effects: { reads: ["fs"], writes: ["fs"], destructive: false, idempotent: false },
364
+ args: ["to"],
365
+ shorts: {},
366
+ output: "json",
367
+ })
368
+ .handler(async (input) => dbBackup(input))
369
+ .build();
370
+ // =============================================================================
371
+ // The deprecated db.* aliases (one release)
372
+ // =============================================================================
373
+ /** The procedures of the `sqlite` namespace. Each one has a deprecated alias in `db`. */
374
+ const sqliteProcedures = [
375
+ sqliteQueryProcedure,
376
+ sqliteExecuteProcedure,
377
+ sqliteTablesProcedure,
378
+ sqliteSchemaProcedure,
379
+ sqliteTransactionProcedure,
380
+ sqliteMigrateProcedure,
381
+ sqliteBackupProcedure,
382
+ ];
383
+ /**
384
+ * This function gives the deprecated alias `db.<name>` of the procedure `sqlite.<name>`. The alias
385
+ * has the same schemas, handler and effects. Its description names the new procedure. The aliases
386
+ * go away in the next release. The MCP server does not expose them (`bundle-mcp`).
387
+ */
388
+ export function deprecatedDbAlias(procedure) {
389
+ const name = procedure.path.slice(1).join(".");
390
+ const description = typeof procedure.metadata.description === "string" ? ` ${procedure.metadata.description}` : "";
391
+ return {
392
+ ...procedure,
393
+ path: ["db", ...procedure.path.slice(1)],
394
+ metadata: {
395
+ ...procedure.metadata,
396
+ description: `Deprecated: use sqlite.${name}.${description}`,
397
+ deprecated: true,
398
+ deprecationMessage: `Use sqlite.${name}. The alias db.${name} goes away in the next release.`,
399
+ },
400
+ };
401
+ }
402
+ /** The deprecated aliases `db.query`, `db.execute`, `db.tables`, `db.schema`, `db.transaction`, `db.migrate` and `db.backup`. */
403
+ export const dbAliasProcedures = sqliteProcedures.map(deprecatedDbAlias);
404
+ // =============================================================================
289
405
  // Registration
290
406
  // =============================================================================
291
407
  /**
@@ -293,10 +409,11 @@ const logsQueryProcedure = createProcedure()
293
409
  * file registers nothing. (`register.ts` registers the same procedures in the global registry.)
294
410
  */
295
411
  export const sqliteModule = defineModule("@procedures/sqlite", [
296
- dbQueryProcedure,
297
- dbExecuteProcedure,
412
+ ...sqliteProcedures,
298
413
  logsStoreProcedure,
299
414
  logsQueryProcedure,
415
+ // The old names, for one release
416
+ ...dbAliasProcedures,
300
417
  ]);
301
418
  export default sqliteModule;
302
419
  /**
@@ -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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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * sqlite.backup procedure (roadmap R44)
3
+ *
4
+ * A copy of a database in a new file. The package runs SQLite in WebAssembly (sql.js): the
5
+ * database is in the memory of the module, and `VACUUM INTO` and the backup API write into the
6
+ * file system of the module, not to the disk. So the procedure takes the image of the database
7
+ * (`export()`, the serialized database) in the file queue of the database, where no other call
8
+ * of this process changes it. It writes the image to a file next to the target, checks it with
9
+ * `PRAGMA integrity_check`, and renames it.
10
+ *
11
+ * - The procedure does not replace a file, and it does not write the source.
12
+ * - With `vacuum: true`, it compacts the copy (VACUUM on the copy): the result of `VACUUM INTO`.
13
+ */
14
+ import type { DbBackupInput, DbBackupOutput } from "../../types.js";
15
+ /**
16
+ * Copy a database to a new file
17
+ */
18
+ export declare function dbBackup(input: DbBackupInput): Promise<DbBackupOutput>;
19
+ //# sourceMappingURL=backup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../../src/procedures/db/backup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AASpE;;GAEG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CA+B5E"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * sqlite.backup procedure (roadmap R44)
3
+ *
4
+ * A copy of a database in a new file. The package runs SQLite in WebAssembly (sql.js): the
5
+ * database is in the memory of the module, and `VACUUM INTO` and the backup API write into the
6
+ * file system of the module, not to the disk. So the procedure takes the image of the database
7
+ * (`export()`, the serialized database) in the file queue of the database, where no other call
8
+ * of this process changes it. It writes the image to a file next to the target, checks it with
9
+ * `PRAGMA integrity_check`, and renames it.
10
+ *
11
+ * - The procedure does not replace a file, and it does not write the source.
12
+ * - With `vacuum: true`, it compacts the copy (VACUUM on the copy): the result of `VACUUM INTO`.
13
+ */
14
+ import { existsSync } from "node:fs";
15
+ import { rename, stat, unlink, writeFile } from "node:fs/promises";
16
+ import { resolve } from "node:path";
17
+ import { query, withConnection } from "@mark1russell7/docker-sqlite";
18
+ import { databasePath, requireDatabaseFile } from "./shared.js";
19
+ /** The key of a file path: Windows file names do not depend on case. */
20
+ function fileKey(path) {
21
+ const absolute = resolve(path);
22
+ return process.platform === "win32" ? absolute.toLowerCase() : absolute;
23
+ }
24
+ /**
25
+ * Copy a database to a new file
26
+ */
27
+ export async function dbBackup(input) {
28
+ const source = databasePath(input.dbPath);
29
+ requireDatabaseFile("sqlite.backup", source);
30
+ const target = resolve(input.to);
31
+ if (source !== ":memory:" && fileKey(source) === fileKey(target)) {
32
+ throw new Error("sqlite.backup: the copy cannot be the database file itself");
33
+ }
34
+ if (existsSync(target)) {
35
+ const error = new Error(`sqlite.backup: the file exists already: ${target}. The procedure does not replace a file.`);
36
+ error.code = "EEXIST";
37
+ throw error;
38
+ }
39
+ const image = await withConnection({ dbPath: source }, (db) => db.export());
40
+ const temporary = `${target}.${process.pid}.${Date.now()}.tmp`;
41
+ try {
42
+ await writeFile(temporary, image);
43
+ if (input.vacuum) {
44
+ // The VACUUM changes the copy only: withConnection saves it to the temporary file
45
+ await withConnection({ dbPath: temporary }, (db) => db.run("VACUUM"));
46
+ }
47
+ const check = await withConnection({ dbPath: temporary }, (db) => query(db, "PRAGMA integrity_check").rows);
48
+ const verdict = check.map((row) => row.integrity_check).join("; ");
49
+ if (verdict !== "ok")
50
+ throw new Error(`sqlite.backup: the copy is not valid: ${verdict}`);
51
+ if (existsSync(target))
52
+ throw new Error(`sqlite.backup: the file exists already: ${target}. The procedure does not replace a file.`);
53
+ await rename(temporary, target);
54
+ }
55
+ catch (error) {
56
+ await unlink(temporary).catch(() => undefined);
57
+ throw error;
58
+ }
59
+ return { path: target, bytes: (await stat(target)).size };
60
+ }
61
+ //# sourceMappingURL=backup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../../src/procedures/db/backup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { dbTables } from "./tables.js";
2
+ export { dbSchema } from "./schema.js";
3
+ export { dbTransaction } from "./transaction.js";
4
+ export { dbMigrate } from "./migrate.js";
5
+ export { dbBackup } from "./backup.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/procedures/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { dbTables } from "./tables.js";
2
+ export { dbSchema } from "./schema.js";
3
+ export { dbTransaction } from "./transaction.js";
4
+ export { dbMigrate } from "./migrate.js";
5
+ export { dbBackup } from "./backup.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/procedures/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * sqlite.migrate procedure (roadmap R44)
3
+ *
4
+ * The procedure applies the numbered migrations that the database does not have, in the order
5
+ * of their numbers. The migrations come from a folder (files named `<number>_<name>.sql`) or
6
+ * from the input. A table of the database (default `schema_migrations`) records each applied
7
+ * migration with the sha256 of its SQL.
8
+ *
9
+ * - The pending migrations run in one transaction: when one fails, none is applied.
10
+ * - A second call applies nothing, and does not write the file.
11
+ * - The SQL of an applied migration must not change: a different sha256 is an error, and the
12
+ * call applies nothing. (The sha256 reads line ends as LF, so a checkout with CRLF is the same.)
13
+ * - A migration must not hold BEGIN, COMMIT or ROLLBACK: the procedure runs the transaction.
14
+ */
15
+ import { type DbMigrateInput, type DbMigrateOutput, type DbMigration } from "../../types.js";
16
+ /** The default table of the applied migrations. */
17
+ export declare const DEFAULT_MIGRATION_TABLE = "schema_migrations";
18
+ /** The migrations of a folder: each file `<number>_<name>.sql`. Other files are not migrations. */
19
+ export declare function migrationsOfFolder(folder: string): Promise<DbMigration[]>;
20
+ /**
21
+ * Apply the numbered migrations that a database does not have
22
+ */
23
+ export declare function dbMigrate(input: DbMigrateInput): Promise<DbMigrateOutput>;
24
+ //# sourceMappingURL=migrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/procedures/db/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,EAA2B,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMtH,mDAAmD;AACnD,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAa3D,mGAAmG;AACnG,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAU/E;AAgBD;;GAEG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAmD/E"}