@mark1russell7/docker-sqlite 0.1.0 → 0.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -27,7 +27,7 @@
27
27
  * ```
28
28
  */
29
29
  export type { ConnectionConfig, ConnectionCallback, QueryResult, ExecuteResult, Migration, MigrationStatus, } from "./types.js";
30
- export { withConnection, createConnection } from "./connect.js";
30
+ export { withConnection, createConnection, DatabaseFileChangedError } from "./connect.js";
31
31
  export { query, execute, execMultiple, lastInsertRowId, tableExists, } from "./query.js";
32
32
  export { getMigrationStatus, runMigrations, rollbackMigration, createMigration, } from "./migrate.js";
33
33
  export type { Database } from "sql.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,SAAS,EACT,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhE,OAAO,EACL,KAAK,EACL,OAAO,EACP,YAAY,EACZ,eAAe,EACf,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,SAAS,EACT,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAG1F,OAAO,EACL,KAAK,EACL,OAAO,EACP,YAAY,EACZ,eAAe,EACf,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC"}
package/dist/index.js CHANGED
@@ -27,7 +27,7 @@
27
27
  * ```
28
28
  */
29
29
  // Connection utilities
30
- export { withConnection, createConnection } from "./connect.js";
30
+ export { withConnection, createConnection, DatabaseFileChangedError } from "./connect.js";
31
31
  // Query utilities
32
32
  export { query, execute, execMultiple, lastInsertRowId, tableExists, } from "./query.js";
33
33
  // Migration utilities
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAYH,uBAAuB;AACvB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhE,kBAAkB;AAClB,OAAO,EACL,KAAK,EACL,OAAO,EACP,YAAY,EACZ,eAAe,EACf,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAYH,uBAAuB;AACvB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAE1F,kBAAkB;AAClB,OAAO,EACL,KAAK,EACL,OAAO,EACP,YAAY,EACZ,eAAe,EACf,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAqB7D;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,SAAS,EAAE,GACtB,eAAe,CAwBjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAyBhF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,SAAS,EAAE,GACtB,SAAS,GAAG,IAAI,CA4BlB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,MAAM,GACZ,SAAS,CAMX"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAwJ7D;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,SAAS,EAAE,GACtB,eAAe,CAwBjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAyBhF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,SAAS,EAAE,GACtB,SAAS,GAAG,IAAI,CA+BlB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,MAAM,GACZ,SAAS,CAMX"}
package/dist/migrate.js CHANGED
@@ -5,12 +5,12 @@ import { query, execute, execMultiple } from "./query.js";
5
5
  /**
6
6
  * Schema for tracking migrations
7
7
  */
8
- const MIGRATIONS_TABLE_SQL = `
9
- CREATE TABLE IF NOT EXISTS _migrations (
10
- version INTEGER PRIMARY KEY,
11
- description TEXT NOT NULL,
12
- applied_at TEXT NOT NULL DEFAULT (datetime('now'))
13
- )
8
+ const MIGRATIONS_TABLE_SQL = `
9
+ CREATE TABLE IF NOT EXISTS _migrations (
10
+ version INTEGER PRIMARY KEY,
11
+ description TEXT NOT NULL,
12
+ applied_at TEXT NOT NULL DEFAULT (datetime('now'))
13
+ )
14
14
  `;
15
15
  /**
16
16
  * Ensure the migrations table exists
@@ -18,6 +18,141 @@ const MIGRATIONS_TABLE_SQL = `
18
18
  function ensureMigrationsTable(db) {
19
19
  execMultiple(db, MIGRATIONS_TABLE_SQL);
20
20
  }
21
+ /** The name of the savepoint that holds one migration and its record. */
22
+ const SAVEPOINT = "docker_sqlite_migration";
23
+ /**
24
+ * The first words of the statements that control transactions, cannot run in a transaction
25
+ * (VACUUM, ATTACH) or can do nothing there (PRAGMA foreign_keys).
26
+ */
27
+ const OUTSIDE_A_TRANSACTION = new Set([
28
+ "BEGIN",
29
+ "COMMIT",
30
+ "END",
31
+ "ROLLBACK",
32
+ "SAVEPOINT",
33
+ "RELEASE",
34
+ "VACUUM",
35
+ "ATTACH",
36
+ "DETACH",
37
+ "PRAGMA",
38
+ ]);
39
+ /**
40
+ * The tokens of SQL text: the words in upper case, ";" for each semicolon, and "?" for each
41
+ * other token. Comments are skipped. A string or a quoted name is one "?" token, so a word in it
42
+ * is not a keyword.
43
+ */
44
+ function* tokens(sql) {
45
+ const word = /[\p{L}_][\p{L}\p{N}_$]*/uy;
46
+ let i = 0;
47
+ while (i < sql.length) {
48
+ const c = sql[i];
49
+ if (/\s/.test(c)) {
50
+ i++;
51
+ }
52
+ else if (c === "-" && sql[i + 1] === "-") {
53
+ const end = sql.indexOf("\n", i);
54
+ i = end < 0 ? sql.length : end + 1;
55
+ }
56
+ else if (c === "/" && sql[i + 1] === "*") {
57
+ const end = sql.indexOf("*/", i + 2);
58
+ i = end < 0 ? sql.length : end + 2;
59
+ }
60
+ else if (c === "'" || c === '"' || c === "`" || c === "[") {
61
+ // A quote in the text is two quotes. A name in brackets cannot hold "]".
62
+ const close = c === "[" ? "]" : c;
63
+ let end = sql.indexOf(close, i + 1);
64
+ while (end >= 0 && close !== "]" && sql[end + 1] === close) {
65
+ end = sql.indexOf(close, end + 2);
66
+ }
67
+ i = end < 0 ? sql.length : end + 1;
68
+ yield "?";
69
+ }
70
+ else if (c === ";") {
71
+ i++;
72
+ yield ";";
73
+ }
74
+ else {
75
+ word.lastIndex = i;
76
+ const match = word.exec(sql);
77
+ if (match) {
78
+ i += match[0].length;
79
+ yield match[0].toUpperCase();
80
+ }
81
+ else {
82
+ i++;
83
+ yield "?";
84
+ }
85
+ }
86
+ }
87
+ }
88
+ /**
89
+ * The first word of each statement of `sql`, in upper case. The statements in the body of a
90
+ * trigger are part of the trigger: like sqlite3_complete(), the trigger ends at "; END ;".
91
+ */
92
+ function statementKeywords(sql) {
93
+ const keywords = [];
94
+ let words = [];
95
+ let trigger = false;
96
+ let afterSemicolon = false;
97
+ let afterEnd = false;
98
+ for (const token of tokens(sql)) {
99
+ if (token === ";") {
100
+ if (!trigger || afterEnd) {
101
+ words = [];
102
+ trigger = false;
103
+ afterEnd = false;
104
+ }
105
+ else {
106
+ afterSemicolon = true;
107
+ }
108
+ continue;
109
+ }
110
+ if (words.length === 0) {
111
+ keywords.push(token);
112
+ }
113
+ if (words.length < 3) {
114
+ words.push(token);
115
+ const [first, second, third] = words;
116
+ trigger ||=
117
+ first === "CREATE" &&
118
+ (second === "TRIGGER" || ((second === "TEMP" || second === "TEMPORARY") && third === "TRIGGER"));
119
+ }
120
+ afterEnd = trigger && afterSemicolon && token === "END";
121
+ afterSemicolon = false;
122
+ }
123
+ return keywords;
124
+ }
125
+ /**
126
+ * Run `work` in a savepoint: its changes stay only when it succeeds. Before, a migration that
127
+ * failed after its first statement kept the changes of those statements, and was not recorded:
128
+ * the next run ran it again and failed ("table already exists").
129
+ *
130
+ * A savepoint also works in a transaction of the caller, and keeps that transaction open. SQL
131
+ * that controls transactions itself (BEGIN, COMMIT, VACUUM, PRAGMA and the others in
132
+ * OUTSIDE_A_TRANSACTION) runs without a savepoint, as before: in a transaction it fails or does
133
+ * nothing.
134
+ */
135
+ function atomically(db, sql, work) {
136
+ if (statementKeywords(sql).some((keyword) => OUTSIDE_A_TRANSACTION.has(keyword))) {
137
+ work();
138
+ return;
139
+ }
140
+ db.exec(`SAVEPOINT ${SAVEPOINT}`);
141
+ try {
142
+ work();
143
+ db.exec(`RELEASE ${SAVEPOINT}`);
144
+ }
145
+ catch (error) {
146
+ try {
147
+ db.exec(`ROLLBACK TO ${SAVEPOINT}`);
148
+ db.exec(`RELEASE ${SAVEPOINT}`);
149
+ }
150
+ catch {
151
+ // Some errors end the transaction (ON CONFLICT ROLLBACK): then the savepoint is gone
152
+ }
153
+ throw error;
154
+ }
155
+ }
21
156
  /**
22
157
  * Get the current migration status
23
158
  */
@@ -66,10 +201,11 @@ export function runMigrations(db, migrations) {
66
201
  const applied = [];
67
202
  for (const migration of status.pendingMigrations) {
68
203
  try {
69
- // Run the migration
70
- execMultiple(db, migration.up);
71
- // Record it as applied
72
- execute(db, "INSERT INTO _migrations (version, description) VALUES (?, ?)", [migration.version, migration.description]);
204
+ // Run the migration and record it as applied, in one savepoint
205
+ atomically(db, migration.up, () => {
206
+ execMultiple(db, migration.up);
207
+ execute(db, "INSERT INTO _migrations (version, description) VALUES (?, ?)", [migration.version, migration.description]);
208
+ });
73
209
  applied.push(migration);
74
210
  }
75
211
  catch (error) {
@@ -93,9 +229,12 @@ export function rollbackMigration(db, migrations) {
93
229
  if (!migration.down) {
94
230
  throw new Error(`Migration ${migration.version} (${migration.description}) has no down migration`);
95
231
  }
232
+ const down = migration.down;
96
233
  try {
97
- execMultiple(db, migration.down);
98
- execute(db, "DELETE FROM _migrations WHERE version = ?", [migration.version]);
234
+ atomically(db, down, () => {
235
+ execMultiple(db, down);
236
+ execute(db, "DELETE FROM _migrations WHERE version = ?", [migration.version]);
237
+ });
99
238
  return migration;
100
239
  }
101
240
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"}
package/dist/query.d.ts CHANGED
@@ -1,52 +1,52 @@
1
- /**
2
- * Query helper utilities for SQLite
3
- */
4
- import type { Database } from "sql.js";
5
- import type { QueryResult, ExecuteResult } from "./types.js";
6
- /**
7
- * Execute a SELECT query and return results
8
- *
9
- * @example
10
- * ```typescript
11
- * const result = query(db, 'SELECT * FROM users WHERE age > ?', [21]);
12
- * console.log(result.columns); // ['id', 'name', 'age']
13
- * console.log(result.rows); // [{ id: 1, name: 'Alice', age: 25 }, ...]
14
- * ```
15
- */
16
- export declare function query<T = Record<string, unknown>>(db: Database, sql: string, params?: unknown[]): QueryResult<T>;
17
- /**
18
- * Execute an INSERT, UPDATE, DELETE, or other statement
19
- *
20
- * @example
21
- * ```typescript
22
- * const result = execute(db, 'INSERT INTO users (name, age) VALUES (?, ?)', ['Bob', 30]);
23
- * console.log(result.changes); // 1
24
- * ```
25
- */
26
- export declare function execute(db: Database, sql: string, params?: unknown[]): ExecuteResult;
27
- /**
28
- * True when `sql` holds more than one statement. Nothing runs: the function only prepares the
29
- * first statement and examines the SQL after it.
30
- */
31
- export declare function hasSeveralStatements(db: Database, sql: string): boolean;
32
- /**
33
- * Execute multiple statements (for schema setup, etc.)
34
- *
35
- * @example
36
- * ```typescript
37
- * execMultiple(db, `
38
- * CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT);
39
- * CREATE TABLE IF NOT EXISTS posts (id INTEGER PRIMARY KEY, user_id INTEGER);
40
- * `);
41
- * ```
42
- */
43
- export declare function execMultiple(db: Database, sql: string): void;
44
- /**
45
- * Get the last inserted row ID
46
- */
47
- export declare function lastInsertRowId(db: Database): number;
48
- /**
49
- * Check if a table exists
50
- */
51
- export declare function tableExists(db: Database, tableName: string): boolean;
1
+ /**
2
+ * Query helper utilities for SQLite
3
+ */
4
+ import type { Database } from "sql.js";
5
+ import type { QueryResult, ExecuteResult } from "./types.js";
6
+ /**
7
+ * Execute a SELECT query and return results
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const result = query(db, 'SELECT * FROM users WHERE age > ?', [21]);
12
+ * console.log(result.columns); // ['id', 'name', 'age']
13
+ * console.log(result.rows); // [{ id: 1, name: 'Alice', age: 25 }, ...]
14
+ * ```
15
+ */
16
+ export declare function query<T = Record<string, unknown>>(db: Database, sql: string, params?: unknown[]): QueryResult<T>;
17
+ /**
18
+ * Execute an INSERT, UPDATE, DELETE, or other statement
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const result = execute(db, 'INSERT INTO users (name, age) VALUES (?, ?)', ['Bob', 30]);
23
+ * console.log(result.changes); // 1
24
+ * ```
25
+ */
26
+ export declare function execute(db: Database, sql: string, params?: unknown[]): ExecuteResult;
27
+ /**
28
+ * True when `sql` holds more than one statement. Nothing runs: the function only prepares the
29
+ * first statement and examines the SQL after it.
30
+ */
31
+ export declare function hasSeveralStatements(db: Database, sql: string): boolean;
32
+ /**
33
+ * Execute multiple statements (for schema setup, etc.)
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * execMultiple(db, `
38
+ * CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT);
39
+ * CREATE TABLE IF NOT EXISTS posts (id INTEGER PRIMARY KEY, user_id INTEGER);
40
+ * `);
41
+ * ```
42
+ */
43
+ export declare function execMultiple(db: Database, sql: string): void;
44
+ /**
45
+ * Get the last inserted row ID
46
+ */
47
+ export declare function lastInsertRowId(db: Database): number;
48
+ /**
49
+ * Check if a table exists
50
+ */
51
+ export declare function tableExists(db: Database, tableName: string): boolean;
52
52
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7D;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/C,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,OAAO,EAAO,GACrB,WAAW,CAAC,CAAC,CAAC,CAoBhB;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,OAAO,EAAO,GACrB,aAAa,CAiBf;AAiBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAiBvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAE5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAGpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAOpE"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7D;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/C,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,OAAO,EAAO,GACrB,WAAW,CAAC,CAAC,CAAC,CAmBhB;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,OAAO,EAAO,GACrB,aAAa,CAiBf;AAiBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAiBvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAE5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAGpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAOpE"}
package/dist/query.js CHANGED
@@ -15,12 +15,11 @@ export function query(db, sql, params = []) {
15
15
  const stmt = db.prepare(sql);
16
16
  try {
17
17
  stmt.bind(params);
18
+ // The statement knows its columns before the first step. Before, the columns came from the
19
+ // first row, so a result with no rows had no columns.
20
+ const columns = stmt.getColumnNames();
18
21
  const rows = [];
19
- let columns = [];
20
22
  while (stmt.step()) {
21
- if (columns.length === 0) {
22
- columns = stmt.getColumnNames();
23
- }
24
23
  rows.push(stmt.getAsObject());
25
24
  }
26
25
  return { columns, rows };
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,86 +1,80 @@
1
- {
2
- "$schema": "https://json.schemastore.org/package",
3
- "name": "@mark1russell7/docker-sqlite",
4
- "version": "0.1.0",
5
- "description": "SQLite for Node.js with no native build: sql.js (SQLite in WebAssembly) with safe file access (one call at a time per file, atomic saves, no write on read), queries, migrations and an optional Docker Compose web UI.",
6
- "keywords": [
7
- "sqlite",
8
- "sqlite3",
9
- "sql.js",
10
- "wasm",
11
- "webassembly",
12
- "database",
13
- "migrations",
14
- "schema-migrations",
15
- "query",
16
- "embedded-database",
17
- "docker",
18
- "docker-compose",
19
- "sqlite-web",
20
- "typescript",
21
- "node"
22
- ],
23
- "homepage": "https://github.com/mark1russell7/docker-sqlite#readme",
24
- "bugs": {
25
- "url": "https://github.com/mark1russell7/docker-sqlite/issues"
26
- },
27
- "repository": {
28
- "type": "git",
29
- "url": "git+https://github.com/mark1russell7/docker-sqlite.git"
30
- },
31
- "license": "MIT",
32
- "author": "Mark Russell (https://github.com/mark1russell7)",
33
- "type": "module",
34
- "main": "./dist/index.js",
35
- "types": "./dist/index.d.ts",
36
- "exports": {
37
- ".": {
38
- "types": "./dist/index.d.ts",
39
- "import": "./dist/index.js"
40
- },
41
- "./docker-compose.yml": "./docker-compose.yml",
42
- "./schema/*": "./schema/*",
43
- "./package.json": "./package.json"
44
- },
45
- "files": [
46
- "dist",
47
- "src",
48
- "!dist/**/*.test.*",
49
- "!src/**/*.test.ts",
50
- "schema",
51
- "docker-compose.yml",
52
- "README.md",
53
- "CHANGELOG.md",
54
- "LICENSE"
55
- ],
56
- "scripts": {
57
- "build": "tsc -b",
58
- "typecheck": "tsc --noEmit",
59
- "clean": "rm -rf dist .tsbuildinfo",
60
- "prepare": "npm run build",
61
- "test": "vitest run"
62
- },
63
- "dependencies": {
64
- "@types/sql.js": "^1.4.11",
65
- "sql.js": "^1.11.0"
66
- },
67
- "devDependencies": {
68
- "@mark1russell7/cue": "github:mark1russell7/cue#main",
69
- "@types/node": "^22.0.0",
70
- "typescript": "^5.9.3",
71
- "vitest": "^4.1.11"
72
- },
73
- "engines": {
74
- "node": ">=22"
75
- },
76
- "sideEffects": false,
77
- "publishConfig": {
78
- "access": "public",
79
- "provenance": true
80
- },
81
- "pnpm": {
82
- "onlyBuiltDependencies": [
83
- "@mark1russell7/cue"
84
- ]
85
- }
86
- }
1
+ {
2
+ "$schema": "https://json.schemastore.org/package",
3
+ "name": "@mark1russell7/docker-sqlite",
4
+ "version": "0.2.0",
5
+ "description": "SQLite for Node.js with no native build: sql.js (SQLite in WebAssembly) with safe file access (one call at a time per file, atomic saves, no write on read), queries, migrations and an optional Docker Compose web UI.",
6
+ "keywords": [
7
+ "sqlite",
8
+ "sqlite3",
9
+ "sql.js",
10
+ "wasm",
11
+ "webassembly",
12
+ "database",
13
+ "migrations",
14
+ "schema-migrations",
15
+ "query",
16
+ "embedded-database",
17
+ "docker",
18
+ "docker-compose",
19
+ "sqlite-web",
20
+ "typescript",
21
+ "node"
22
+ ],
23
+ "homepage": "https://github.com/mark1russell7/docker-sqlite#readme",
24
+ "bugs": {
25
+ "url": "https://github.com/mark1russell7/docker-sqlite/issues"
26
+ },
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/mark1russell7/docker-sqlite.git"
30
+ },
31
+ "license": "MIT",
32
+ "author": "Mark Russell (https://github.com/mark1russell7)",
33
+ "type": "module",
34
+ "main": "./dist/index.js",
35
+ "types": "./dist/index.d.ts",
36
+ "exports": {
37
+ ".": {
38
+ "types": "./dist/index.d.ts",
39
+ "import": "./dist/index.js"
40
+ },
41
+ "./docker-compose.yml": "./docker-compose.yml",
42
+ "./schema/*": "./schema/*",
43
+ "./package.json": "./package.json"
44
+ },
45
+ "files": [
46
+ "dist",
47
+ "src",
48
+ "!dist/**/*.test.*",
49
+ "!src/**/*.test.ts",
50
+ "schema",
51
+ "docker-compose.yml",
52
+ "README.md",
53
+ "CHANGELOG.md",
54
+ "LICENSE"
55
+ ],
56
+ "dependencies": {
57
+ "@types/sql.js": "^1.4.11",
58
+ "sql.js": "^1.11.0"
59
+ },
60
+ "devDependencies": {
61
+ "@mark1russell7/cue": "github:mark1russell7/cue#main",
62
+ "@types/node": "^22.0.0",
63
+ "typescript": "^5.9.3",
64
+ "vitest": "^4.1.11"
65
+ },
66
+ "engines": {
67
+ "node": ">=22"
68
+ },
69
+ "sideEffects": false,
70
+ "publishConfig": {
71
+ "access": "public",
72
+ "provenance": true
73
+ },
74
+ "scripts": {
75
+ "build": "tsc -b",
76
+ "typecheck": "tsc --noEmit",
77
+ "clean": "rm -rf dist .tsbuildinfo",
78
+ "test": "vitest run"
79
+ }
80
+ }
package/schema/logs.sql CHANGED
@@ -1,21 +1,21 @@
1
- -- Log table schema for CLI logging
2
- -- This is a reference schema, not applied automatically
3
-
4
- CREATE TABLE IF NOT EXISTS logs (
5
- id INTEGER PRIMARY KEY AUTOINCREMENT,
6
- timestamp TEXT NOT NULL DEFAULT (datetime('now')),
7
- level TEXT NOT NULL CHECK (level IN ('trace', 'debug', 'info', 'warn', 'error')),
8
- message TEXT NOT NULL,
9
- data TEXT, -- JSON serialized additional data
10
- session_id TEXT, -- Groups logs by CLI session
11
- command TEXT, -- CLI command that generated the log (e.g., 'lib.refresh')
12
- context TEXT, -- Additional context (e.g., package name)
13
- error_stack TEXT, -- Stack trace if error
14
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
15
- );
16
-
17
- -- Indexes for common queries
18
- CREATE INDEX IF NOT EXISTS idx_logs_session ON logs(session_id);
19
- CREATE INDEX IF NOT EXISTS idx_logs_level ON logs(level);
20
- CREATE INDEX IF NOT EXISTS idx_logs_timestamp ON logs(timestamp);
21
- CREATE INDEX IF NOT EXISTS idx_logs_command ON logs(command);
1
+ -- Log table schema for CLI logging
2
+ -- This is a reference schema, not applied automatically
3
+
4
+ CREATE TABLE IF NOT EXISTS logs (
5
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
6
+ timestamp TEXT NOT NULL DEFAULT (datetime('now')),
7
+ level TEXT NOT NULL CHECK (level IN ('trace', 'debug', 'info', 'warn', 'error')),
8
+ message TEXT NOT NULL,
9
+ data TEXT, -- JSON serialized additional data
10
+ session_id TEXT, -- Groups logs by CLI session
11
+ command TEXT, -- CLI command that generated the log (e.g., 'lib.refresh')
12
+ context TEXT, -- Additional context (e.g., package name)
13
+ error_stack TEXT, -- Stack trace if error
14
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
15
+ );
16
+
17
+ -- Indexes for common queries
18
+ CREATE INDEX IF NOT EXISTS idx_logs_session ON logs(session_id);
19
+ CREATE INDEX IF NOT EXISTS idx_logs_level ON logs(level);
20
+ CREATE INDEX IF NOT EXISTS idx_logs_timestamp ON logs(timestamp);
21
+ CREATE INDEX IF NOT EXISTS idx_logs_command ON logs(command);