@tursodatabase/database-common 0.5.0-pre.2 → 0.5.0-pre.20

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/dist/compat.d.ts CHANGED
@@ -95,7 +95,7 @@ declare class Statement {
95
95
  */
96
96
  columns(): import("./types.js").TableColumn[];
97
97
  get source(): void;
98
- get reader(): void;
98
+ get reader(): boolean;
99
99
  get database(): NativeDatabase;
100
100
  /**
101
101
  * Executes the SQL statement and returns an info object.
@@ -1 +1 @@
1
- {"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../compat.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAgC,MAAM,YAAY,CAAC;AAyB3F;;GAEG;AACH,cAAM,QAAQ;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IAEvB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,cAAc,CAAkB;IAExC;;;;;;;;;OASG;gBACS,EAAE,EAAE,cAAc;IAa9B;;;;OAIG;IACH,OAAO,CAAC,GAAG,KAAA;IAYX;;;;OAIG;IACH,WAAW,CAAC,EAAE,KAAA;IAmCd,MAAM,CAAC,MAAM,KAAA,EAAE,OAAO,KAAA;IAoBtB,MAAM,CAAC,QAAQ,KAAA,EAAE,OAAO,KAAA;IAIxB,SAAS,CAAC,OAAO,KAAA;IAIjB,QAAQ,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA,EAAE,EAAE,KAAA;IAI1B,SAAS,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA;IAIvB,KAAK,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA;IAInB,aAAa,CAAC,IAAI,KAAA;IAIlB,wBAAwB;IAIxB;;;;;OAKG;IACH,IAAI,CAAC,GAAG,KAAA;IAsBR;;OAEG;IACH,SAAS;IAIT;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,KAAA;IAI1B;;OAEG;IACH,KAAK;CAGN;AAED;;GAEG;AACH,cAAM,SAAS;IACb,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,cAAc,CAAC;gBAEP,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,cAAc;IAKrD;;;;OAIG;IACH,GAAG,CAAC,GAAG,KAAA;IAKP;;;;OAIG;IACH,KAAK,CAAC,SAAS,KAAA;IAKf;;;;OAIG;IACH,YAAY,CAAC,MAAM,KAAA;IAKnB;;;;OAIG;IACH,OAAO;IAIP,IAAI,MAAM,SAET;IAED,IAAI,MAAM,SAET;IAED,IAAI,QAAQ,mBAEX;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,cAAc,OAAA;;;;IA0BrB;;;;OAIG;IACH,GAAG,CAAC,GAAG,cAAc,OAAA;IAoBrB;;;;OAIG;IACF,OAAO,CAAC,GAAG,cAAc,OAAA;IAmB1B;;;;OAIG;IACH,GAAG,CAAC,GAAG,cAAc,OAAA;IAoBrB;;OAEG;IACH,SAAS;IAKT;;;;;OAKG;IACH,IAAI,CAAC,GAAG,cAAc,OAAA;IAStB,KAAK;CAGN;AAED,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../compat.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAgC,MAAM,YAAY,CAAC;AAyB3F;;GAEG;AACH,cAAM,QAAQ;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IAEvB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,cAAc,CAAkB;IAExC;;;;;;;;;OASG;gBACS,EAAE,EAAE,cAAc;IAa9B;;;;OAIG;IACH,OAAO,CAAC,GAAG,KAAA;IAeX;;;;OAIG;IACH,WAAW,CAAC,EAAE,KAAA;IAmCd,MAAM,CAAC,MAAM,KAAA,EAAE,OAAO,KAAA;IAoBtB,MAAM,CAAC,QAAQ,KAAA,EAAE,OAAO,KAAA;IAIxB,SAAS,CAAC,OAAO,KAAA;IAIjB,QAAQ,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA,EAAE,EAAE,KAAA;IAI1B,SAAS,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA;IAIvB,KAAK,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA;IAInB,aAAa,CAAC,IAAI,KAAA;IAIlB,wBAAwB;IAIxB;;;;;OAKG;IACH,IAAI,CAAC,GAAG,KAAA;IAyBR;;OAEG;IACH,SAAS;IAIT;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,KAAA;IAI1B;;OAEG;IACH,KAAK;CAGN;AAED;;GAEG;AACH,cAAM,SAAS;IACb,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,cAAc,CAAC;gBAEP,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,cAAc;IAKrD;;;;OAIG;IACH,GAAG,CAAC,GAAG,KAAA;IAKP;;;;OAIG;IACH,KAAK,CAAC,SAAS,KAAA;IAKf;;;;OAIG;IACH,YAAY,CAAC,MAAM,KAAA;IAKnB;;;;OAIG;IACH,OAAO;IAIP,IAAI,MAAM,SAET;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,QAAQ,mBAEX;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,cAAc,OAAA;;;;IA0BrB;;;;OAIG;IACH,GAAG,CAAC,GAAG,cAAc,OAAA;IAoBrB;;;;OAIG;IACF,OAAO,CAAC,GAAG,cAAc,OAAA;IAmB1B;;;;OAIG;IACH,GAAG,CAAC,GAAG,cAAc,OAAA;IAoBrB;;OAEG;IACH,SAAS;IAKT;;;;;OAKG;IACH,IAAI,CAAC,GAAG,cAAc,OAAA;IAStB,KAAK;CAGN;AAED,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA"}
package/dist/compat.js CHANGED
@@ -54,6 +54,9 @@ class Database {
54
54
  * @param {string} sql - The SQL statement string to prepare.
55
55
  */
56
56
  prepare(sql) {
57
+ if (!this.open) {
58
+ throw new TypeError("The database connection is not open");
59
+ }
57
60
  if (!sql) {
58
61
  throw new RangeError("The supplied SQL string contains no statements");
59
62
  }
@@ -148,6 +151,9 @@ class Database {
148
151
  * @param {string} sql - The string containing SQL statements to execute
149
152
  */
150
153
  exec(sql) {
154
+ if (!this.open) {
155
+ throw new TypeError("The database connection is not open");
156
+ }
151
157
  const exec = this.db.executor(sql);
152
158
  try {
153
159
  while (true) {
@@ -239,7 +245,7 @@ class Statement {
239
245
  throw new Error("not implemented");
240
246
  }
241
247
  get reader() {
242
- throw new Error("not implemented");
248
+ return this.stmt.columns().length > 0;
243
249
  }
244
250
  get database() {
245
251
  return this.db;
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { NativeDatabase, NativeStatement, DatabaseOpts } from "./types.js";
1
+ import { NativeDatabase, NativeStatement, DatabaseOpts, EncryptionCipher, EncryptionOpts } from "./types.js";
2
2
  import { Database as DatabaseCompat, Statement as StatementCompat } from "./compat.js";
3
3
  import { Database as DatabasePromise, Statement as StatementPromise } from "./promise.js";
4
4
  import { SqliteError } from "./sqlite-error.js";
5
5
  import { AsyncLock } from "./async-lock.js";
6
- export { DatabaseOpts, DatabaseCompat, StatementCompat, DatabasePromise, StatementPromise, NativeDatabase, NativeStatement, SqliteError, AsyncLock };
6
+ export { DatabaseOpts, EncryptionCipher, EncryptionOpts, DatabaseCompat, StatementCompat, DatabasePromise, StatementPromise, NativeDatabase, NativeStatement, SqliteError, AsyncLock };
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EACH,YAAY,EACZ,cAAc,EAAE,eAAe,EAC/B,eAAe,EAAE,gBAAgB,EACjC,cAAc,EAAE,eAAe,EAC/B,WAAW,EACX,SAAS,EACZ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7G,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EACH,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EAAE,eAAe,EAC/B,eAAe,EAAE,gBAAgB,EACjC,cAAc,EAAE,eAAe,EAC/B,WAAW,EACX,SAAS,EACZ,CAAA"}
package/dist/promise.d.ts CHANGED
@@ -60,6 +60,7 @@ declare class Database {
60
60
  * Closes the database connection.
61
61
  */
62
62
  close(): Promise<void>;
63
+ io(): Promise<void>;
63
64
  }
64
65
  interface MaybeLazy<T> {
65
66
  apply(fn: (value: T) => void): any;
@@ -102,7 +103,7 @@ declare class Statement {
102
103
  */
103
104
  columns(): import("./types.js").TableColumn[];
104
105
  get source(): void;
105
- get reader(): void;
106
+ get reader(): boolean;
106
107
  get database(): NativeDatabase;
107
108
  /**
108
109
  * Executes the SQL statement and returns an info object.
@@ -1 +1 @@
1
- {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../promise.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../promise.ts"],"names":[],"mappings":"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"}
package/dist/promise.js CHANGED
@@ -59,6 +59,11 @@ class Database {
59
59
  * @param {string} sql - The SQL statement string to prepare.
60
60
  */
61
61
  prepare(sql) {
62
+ // Only throw if we connected before but now the database is closed
63
+ // Allow implicit connection if not connected yet
64
+ if (this.connected && !this.open) {
65
+ throw new TypeError("The database connection is not open");
66
+ }
62
67
  if (!sql) {
63
68
  throw new RangeError("The supplied SQL string contains no statements");
64
69
  }
@@ -158,14 +163,16 @@ class Database {
158
163
  * @param {string} sql - The string containing SQL statements to execute
159
164
  */
160
165
  async exec(sql) {
166
+ if (!this.open) {
167
+ throw new TypeError("The database connection is not open");
168
+ }
161
169
  await this.execLock.acquire();
162
170
  const exec = this.db.executor(sql);
163
171
  try {
164
172
  while (true) {
165
173
  const stepResult = exec.stepSync();
166
174
  if (stepResult === STEP_IO) {
167
- await this.db.ioLoopAsync();
168
- await this.ioStep();
175
+ await this.io();
169
176
  continue;
170
177
  }
171
178
  if (stepResult === STEP_DONE) {
@@ -202,6 +209,12 @@ class Database {
202
209
  async close() {
203
210
  this.db.close();
204
211
  }
212
+ async io() {
213
+ // For WASM browser builds, ioStep awaits a promise that resolves when
214
+ // the OPFS Worker completes the I/O (via IONotifier in wasm-common).
215
+ // For in-memory / Node.js builds, ioStep is a no-op since I/O is synchronous.
216
+ await this.ioStep();
217
+ }
205
218
  }
206
219
  function maybePromise(arg) {
207
220
  let lazy = arg;
@@ -296,7 +309,7 @@ class Statement {
296
309
  throw new Error("not implemented");
297
310
  }
298
311
  get reader() {
299
- throw new Error("not implemented");
312
+ return this.stmt.must().columns().length > 0;
300
313
  }
301
314
  get database() {
302
315
  return this.db;
@@ -378,7 +391,7 @@ class Statement {
378
391
  while (true) {
379
392
  const stepResult = await stmt.stepSync();
380
393
  if (stepResult === STEP_IO) {
381
- await this.db.ioLoopAsync();
394
+ await this.io();
382
395
  continue;
383
396
  }
384
397
  if (stepResult === STEP_DONE) {
@@ -426,7 +439,6 @@ class Statement {
426
439
  }
427
440
  }
428
441
  async io() {
429
- await this.db.ioLoopAsync();
430
442
  await this.ioStep();
431
443
  }
432
444
  /**
package/dist/types.d.ts CHANGED
@@ -1,8 +1,21 @@
1
+ export type ExperimentalFeature = 'views' | 'strict' | 'encryption' | 'index_method' | 'autovacuum' | 'triggers' | 'attach';
2
+ /** Supported encryption ciphers for local database encryption. */
3
+ export type EncryptionCipher = 'aes128gcm' | 'aes256gcm' | 'aegis256' | 'aegis256x2' | 'aegis128l' | 'aegis128x2' | 'aegis128x4';
4
+ /** Encryption configuration for local encryption. */
5
+ export interface EncryptionOpts {
6
+ cipher: EncryptionCipher;
7
+ /** The hex-encoded encryption key */
8
+ hexkey: string;
9
+ }
1
10
  export interface DatabaseOpts {
2
11
  readonly?: boolean;
3
12
  fileMustExist?: boolean;
4
13
  timeout?: number;
5
14
  tracing?: 'info' | 'debug' | 'trace';
15
+ /** Experimental features to enable */
16
+ experimental?: ExperimentalFeature[];
17
+ /** Optional local encryption configuration */
18
+ encryption?: EncryptionOpts;
6
19
  }
7
20
  export interface NativeDatabase {
8
21
  memory: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;CACvC;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,KAAI,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC;IAElC,WAAW,QAAG;IACd,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B,UAAU,QAAG;IACb,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC;IAEtC,mBAAmB,CAAC,MAAM,EAAE,OAAO,OAAE;IACrC,YAAY,IAAI,MAAM,CAAC;IACvB,OAAO,IAAI,MAAM,CAAC;IAClB,eAAe,IAAI,MAAM,CAAC;IAC1B,KAAK,QAAG;CACX;AAID,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,OAAO,IAAI,CAAC;AAEzB,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,IAAI,MAAM,CAAC;IACnB,KAAK,QAAG;CACX;AACD,MAAM,WAAW,eAAe;IAC5B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,QAAQ,IAAI,MAAM,CAAC;IAEnB,KAAK,CAAC,SAAS,EAAE,OAAO,OAAE;IAC1B,YAAY,CAAC,MAAM,EAAE,OAAO,OAAE;IAC9B,GAAG,CAAC,MAAM,EAAE,OAAO,OAAE;IACrB,OAAO,IAAI,WAAW,EAAE,CAAC;IACzB,GAAG,IAAI,GAAG,CAAC;IACX,KAAK,QAAG;IACR,QAAQ,QAAG;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE5H,kEAAkE;AAClE,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,CAAA;AAEhI,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,gBAAgB,CAAA;IACxB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;IACpC,sCAAsC;IACtC,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAA;IACpC,8CAA8C;IAC9C,UAAU,CAAC,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,KAAI,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC;IAElC,WAAW,QAAG;IACd,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B,UAAU,QAAG;IACb,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC;IAEtC,mBAAmB,CAAC,MAAM,EAAE,OAAO,OAAE;IACrC,YAAY,IAAI,MAAM,CAAC;IACvB,OAAO,IAAI,MAAM,CAAC;IAClB,eAAe,IAAI,MAAM,CAAC;IAC1B,KAAK,QAAG;CACX;AAID,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,OAAO,IAAI,CAAC;AAEzB,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,IAAI,MAAM,CAAC;IACnB,KAAK,QAAG;CACX;AACD,MAAM,WAAW,eAAe;IAC5B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,QAAQ,IAAI,MAAM,CAAC;IAEnB,KAAK,CAAC,SAAS,EAAE,OAAO,OAAE;IAC1B,YAAY,CAAC,MAAM,EAAE,OAAO,OAAE;IAC9B,GAAG,CAAC,MAAM,EAAE,OAAO,OAAE;IACrB,OAAO,IAAI,WAAW,EAAE,CAAC;IACzB,GAAG,IAAI,GAAG,CAAC;IACX,KAAK,QAAG;IACR,QAAQ,QAAG;CACd"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tursodatabase/database-common",
3
- "version": "0.5.0-pre.2",
3
+ "version": "0.5.0-pre.20",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/tursodatabase/turso"