@spinajs/orm-sqlite 2.0.480 → 2.0.482

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/lib/mjs/index.js CHANGED
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { SqliteTableExistsCompiler, SqliteColumnCompiler, SqliteTableQueryCompiler, SqliteOrderByCompiler, SqliteOnDuplicateQueryCompiler, SqliteInsertQueryCompiler, SqliteTruncateTableQueryCompiler } from './compilers.js';
7
+ import { SqliteTableExistsCompiler, SqliteColumnCompiler, SqliteTableQueryCompiler, SqliteOrderByCompiler, SqliteOnDuplicateQueryCompiler, SqliteInsertQueryCompiler, SqliteTruncateTableQueryCompiler, SqliteAlterColumnQueryCompiler } from './compilers.js';
8
8
  /* eslint-disable @typescript-eslint/no-explicit-any */
9
9
  /* eslint-disable @typescript-eslint/no-unsafe-argument */
10
10
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
@@ -12,11 +12,15 @@ import { SqliteTableExistsCompiler, SqliteColumnCompiler, SqliteTableQueryCompil
12
12
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
13
13
  /* eslint-disable @typescript-eslint/require-await */
14
14
  /* eslint-disable prettier/prettier */
15
- import { LogLevel } from '@spinajs/log-common';
16
15
  export * from './compilers.js';
17
- import { QueryContext, ColumnQueryCompiler, TableQueryCompiler, OrderByQueryCompiler, JoinStatement, OnDuplicateQueryCompiler, InsertQueryCompiler, TableExistsCompiler, DefaultValueBuilder, TruncateTableQueryCompiler, ModelToSqlConverter, OrmException, ServerResponseMapper } from '@spinajs/orm';
16
+ // Union of all three sides: AlterColumnQueryCompiler is master's, and is registered below;
17
+ // IsolationLevel / ITransactionContext / ITransactionOptions are the transaction contract from
18
+ // orm-foundation; ConnectionState / IPoolMetrics are the connection-resilience additions from
19
+ // orm-infra. QueryBuilder / TransactionCallback / ITransaction went with the old
20
+ // `{ commit, rollback }` shape.
21
+ import { QueryContext, ColumnQueryCompiler, AlterColumnQueryCompiler, TableQueryCompiler, OrderByQueryCompiler, JoinStatement, OnDuplicateQueryCompiler, InsertQueryCompiler, TableExistsCompiler, DefaultValueBuilder, TruncateTableQueryCompiler, ModelToSqlConverter, OrmException, ServerResponseMapper, ConnectionState } from '@spinajs/orm';
18
22
  import sqlite3 from 'sqlite3';
19
- import { SqlDriver } from '@spinajs/orm-sql';
23
+ import { escapeIdentifier, SqlDriver } from '@spinajs/orm-sql';
20
24
  import { Injectable, NewInstance } from '@spinajs/di';
21
25
  import { SqlLiteJoinStatement } from './statements.js';
22
26
  import { ResourceDuplicated } from '@spinajs/exceptions';
@@ -24,20 +28,75 @@ import { format } from '@spinajs/configuration';
24
28
  import { SqlLiteDefaultValueBuilder } from './builders.js';
25
29
  import { SqliteModelToSqlConverter } from './converters.js';
26
30
  export class SqliteServerResponseMapper extends ServerResponseMapper {
27
- read(data, pkName) {
31
+ read(data, pkNames) {
32
+ // Upsert and returning-inserts resolve with the RETURNING rows; plain runs resolve with
33
+ // { RowsAffected, LastInsertId }.
34
+ if (Array.isArray(data)) {
35
+ const last = data.length !== 0 ? data[data.length - 1] : undefined;
36
+ const key = pkNames && pkNames.length === 1 && last ? last[pkNames[0]] : 0;
37
+ return {
38
+ RowsAffected: data.length,
39
+ // A uuid / assigned key is not a number and has no identity semantics.
40
+ LastInsertId: typeof key === 'number' ? key : 0,
41
+ Returning: data,
42
+ };
43
+ }
44
+ // A RETURNING insert already arrives normalized by executeOnDb, carrying its rows; a plain
45
+ // run carries none. Passing the rows through is what lets the caller read generated keys.
28
46
  return {
29
- LastInsertId: Array.isArray(data) ? data[data.length - 1][pkName] : data.LastInsertId,
47
+ RowsAffected: data?.RowsAffected ?? 0,
48
+ LastInsertId: data?.LastInsertId ?? 0,
49
+ Returning: Array.isArray(data?.Returning) ? data.Returning : [],
30
50
  };
31
51
  }
32
52
  }
33
53
  let SqliteOrmDriver = class SqliteOrmDriver extends SqlDriver {
34
54
  constructor() {
35
55
  super(...arguments);
36
- this.executionId = 0;
56
+ /**
57
+ * Read-only handles. SQLite serializes writers at the file level no matter how many handles are
58
+ * open, so a second WRITER handle buys nothing and invites SQLITE_BUSY; extra READ handles do
59
+ * parallelize SELECTs. Empty for `:memory:` and anonymous temporary databases, where each handle
60
+ * would open its own private database, and when `Pool.Max` is 1.
61
+ */
62
+ this.ReadPool = [];
63
+ this._readCursor = -1;
64
+ /**
65
+ * sqlite3 outside shared-cache mode serializes access to the database file, which is
66
+ * SERIALIZABLE and nothing else. Any other requested level is rejected by the base class
67
+ * rather than silently ignored.
68
+ */
69
+ this.SupportedIsolationLevels = ['SERIALIZABLE'];
70
+ }
71
+ // getNextExecutionId() went with the per-driver query timing that master centralised into
72
+ // `Perf.measure('orm.query', ...)` around SqlDriver.execute — its only caller is gone.
73
+ /**
74
+ * Picks the handle for a query. Everything that mutates, changes schema, or runs inside a
75
+ * transaction stays on the single writer handle — scattering a transaction's statements across
76
+ * handles would run them outside the transaction, and a read handle cannot see uncommitted
77
+ * writes made on the writer.
78
+ */
79
+ handleFor(queryContext) {
80
+ if (this.ReadPool.length === 0 || queryContext !== QueryContext.Select) {
81
+ return this.Db;
82
+ }
83
+ if (this.TransactionStorage.getStore()) {
84
+ return this.Db;
85
+ }
86
+ this._readCursor = (this._readCursor + 1) % this.ReadPool.length;
87
+ // eslint-disable-next-line security/detect-object-injection
88
+ return this.ReadPool[this._readCursor];
37
89
  }
38
- getNextExecutionId() {
39
- this.executionId = (this.executionId + 1) % Number.MAX_SAFE_INTEGER;
40
- return this.executionId;
90
+ /**
91
+ * The writer handle plus every read handle. SQLite has no queue of waiting callers — sqlite3
92
+ * serializes internally per handle — so InUse and Waiting are always zero.
93
+ */
94
+ poolMetrics() {
95
+ return {
96
+ Size: this.Db ? this.ReadPool.length + 1 : 0,
97
+ InUse: 0,
98
+ Waiting: 0,
99
+ };
41
100
  }
42
101
  executeOnDb(stmt, params, queryContext) {
43
102
  const queryParams = params ?? [];
@@ -45,13 +104,12 @@ let SqliteOrmDriver = class SqliteOrmDriver extends SqlDriver {
45
104
  if (!this.Db) {
46
105
  throw new Error('cannot execute sqlite statement, no db connection avaible');
47
106
  }
48
- const tName = `query-${this.getNextExecutionId()}`;
49
- this.Log.timeStart(`query-${tName}`);
107
+ const handle = this.handleFor(queryContext);
50
108
  return new Promise((resolve, reject) => {
51
109
  switch (queryContext) {
52
110
  case QueryContext.Update:
53
111
  case QueryContext.Delete:
54
- this.Db.run(stmt, ...queryParams, function (err) {
112
+ handle.run(stmt, ...queryParams, function (err) {
55
113
  if (err) {
56
114
  reject(new OrmException(`Failed to execute query`, {
57
115
  Host: self.Options.Host,
@@ -67,7 +125,8 @@ let SqliteOrmDriver = class SqliteOrmDriver extends SqlDriver {
67
125
  break;
68
126
  case QueryContext.Select:
69
127
  case QueryContext.Upsert:
70
- this.Db.all(stmt, ...queryParams, (err, rows) => {
128
+ case QueryContext.InsertReturning:
129
+ handle.all(stmt, ...queryParams, (err, rows) => {
71
130
  if (err) {
72
131
  reject(new OrmException(`Failed to execute query`, {
73
132
  Host: self.Options.Host,
@@ -76,11 +135,22 @@ let SqliteOrmDriver = class SqliteOrmDriver extends SqlDriver {
76
135
  }, stmt, params ? params.join(',') : 'none', err));
77
136
  return;
78
137
  }
138
+ // A RETURNING insert resolves with rows, so it must be normalized into the same
139
+ // IInsertResult shape the Db.run path produces.
140
+ if (queryContext === QueryContext.InsertReturning) {
141
+ const returned = rows ?? [];
142
+ resolve({
143
+ RowsAffected: returned.length,
144
+ LastInsertId: 0,
145
+ Returning: returned,
146
+ });
147
+ return;
148
+ }
79
149
  resolve(rows);
80
150
  });
81
151
  break;
82
152
  case QueryContext.Insert:
83
- this.Db.run(stmt, ...queryParams, function (err) {
153
+ handle.run(stmt, ...queryParams, function (err) {
84
154
  if (err) {
85
155
  if (err.code === 'SQLITE_CONSTRAINT') {
86
156
  reject(new ResourceDuplicated(err));
@@ -100,13 +170,14 @@ let SqliteOrmDriver = class SqliteOrmDriver extends SqlDriver {
100
170
  resolve({
101
171
  RowsAffected: this.changes,
102
172
  LastInsertId: this.lastID,
173
+ Returning: [],
103
174
  });
104
175
  });
105
176
  break;
106
177
  case QueryContext.Schema:
107
178
  case QueryContext.Transaction:
108
179
  default:
109
- this.Db.run(stmt, ...queryParams, (err, data) => {
180
+ handle.run(stmt, ...queryParams, (err, data) => {
110
181
  if (err) {
111
182
  reject(new OrmException(`Failed to execute query: ${stmt}, bindings: ${params ? params.join(',') : 'none'}`));
112
183
  return;
@@ -115,63 +186,75 @@ let SqliteOrmDriver = class SqliteOrmDriver extends SqlDriver {
115
186
  });
116
187
  break;
117
188
  }
118
- })
119
- .then((val) => {
120
- const tDiff = this.Log.timeEnd(`query-${tName}`);
121
- void this.Log.write({
122
- Level: LogLevel.Trace,
123
- Variables: {
124
- error: undefined,
125
- message: `Executed: ${stmt}, bindings: ${params ? params.join(',') : 'none'}`,
126
- logger: this.Log.Name,
127
- level: 'TRACE',
128
- duration: tDiff,
129
- },
130
- });
131
- return val;
132
- })
133
- .catch((err) => {
134
- const tDiff = this.Log.timeEnd(`query-${tName}`);
135
- void this.Log.write({
136
- Level: LogLevel.Error,
137
- Variables: {
138
- error: err,
139
- message: `Failed: ${stmt}, bindings: ${params ? params.join(',') : 'none'}`,
140
- logger: this.Log.Name,
141
- level: 'Error',
142
- duration: tDiff,
143
- },
144
- });
145
- throw err;
146
189
  });
147
190
  }
148
191
  supportedFeatures() {
149
- return { events: false };
192
+ // insertIdIsFirstOfBatch is false: sqlite3's `lastID` is the LAST rowid the statement
193
+ // produced, not the first. SQLite does not need it — it gets every key from RETURNING.
194
+ return { events: false, insertReturning: true, insertIdIsFirstOfBatch: false };
150
195
  }
151
196
  async ping() {
152
197
  return this.Db !== null && this.Db !== undefined;
153
198
  }
154
199
  async connect() {
155
- return new Promise((resolve, reject) => {
156
- this.Db = new sqlite3.Database(format({}, this.Options.Filename), (err) => {
200
+ const filename = format({}, this.Options.Filename);
201
+ await new Promise((resolve, reject) => {
202
+ this.Db = new sqlite3.Database(filename, (err) => {
157
203
  if (err) {
158
- // Clean up the database handle if connection fails
159
- if (this.Db) {
160
- this.Db.close(() => {
161
- this.Db = null;
162
- reject(err);
163
- });
164
- }
165
- else {
166
- reject(err);
167
- }
204
+ // Drop the handle, do NOT close it. sqlite3 never invokes the close callback for a
205
+ // database that failed to open, so closing here left this promise unsettled and
206
+ // `connect()` hung forever — an app pointed at a bad path, an unreadable file or a
207
+ // missing directory waited indefinitely instead of being told SQLITE_CANTOPEN.
208
+ // sqlite3 has already released whatever it allocated for a failed open; there is
209
+ // nothing here for us to clean up.
210
+ this.Db = null;
211
+ reject(err);
168
212
  return;
169
213
  }
170
- resolve(this);
214
+ resolve();
171
215
  });
172
216
  });
217
+ await this.openReadPool(filename);
218
+ this.setState(ConnectionState.Connected);
219
+ return this;
220
+ }
221
+ /**
222
+ * Opens `Pool.Max - 1` read-only handles. Skipped for `:memory:` and for anonymous temporary
223
+ * databases, where every handle gets its own private database and a read pool would query empty
224
+ * files. A handle that fails to open is dropped rather than failing the connection — the driver
225
+ * is fully usable on the writer alone.
226
+ */
227
+ async openReadPool(filename) {
228
+ const max = this.resolvedPoolOptions().Max;
229
+ const normalized = filename.trim();
230
+ await this.closeReadPool();
231
+ if (max <= 1 || normalized === ':memory:' || normalized === '') {
232
+ return;
233
+ }
234
+ const handles = await Promise.all(Array.from({ length: max - 1 }, () => new Promise((resolve) => {
235
+ const db = new sqlite3.Database(filename, sqlite3.OPEN_READONLY, (err) => {
236
+ if (err) {
237
+ this.Log.warn(`could not open a read-only sqlite handle for ${this.Options.Name}: ${err.message}`);
238
+ resolve(null);
239
+ return;
240
+ }
241
+ resolve(db);
242
+ });
243
+ })));
244
+ this.ReadPool = handles.filter((h) => h !== null);
245
+ this._readCursor = -1;
246
+ }
247
+ /** Closes every read handle. Safe to call when none are open. */
248
+ async closeReadPool() {
249
+ const handles = this.ReadPool;
250
+ this.ReadPool = [];
251
+ this._readCursor = -1;
252
+ await Promise.all(handles.map((db) => new Promise((resolve) => db.close(() => resolve()))));
173
253
  }
174
254
  async disconnect() {
255
+ this.stopHealthCheck();
256
+ this.setState(ConnectionState.Disconnected);
257
+ await this.closeReadPool();
175
258
  if (!this.Db) {
176
259
  return this;
177
260
  }
@@ -189,6 +272,7 @@ let SqliteOrmDriver = class SqliteOrmDriver extends SqlDriver {
189
272
  resolve() {
190
273
  super.resolve();
191
274
  this.Container.register(SqliteColumnCompiler).as(ColumnQueryCompiler);
275
+ this.Container.register(SqliteAlterColumnQueryCompiler).as(AlterColumnQueryCompiler);
192
276
  this.Container.register(SqliteTableQueryCompiler).as(TableQueryCompiler);
193
277
  this.Container.register(SqliteOrderByCompiler).as(OrderByQueryCompiler);
194
278
  this.Container.register(SqlLiteJoinStatement).as(JoinStatement);
@@ -200,37 +284,31 @@ let SqliteOrmDriver = class SqliteOrmDriver extends SqlDriver {
200
284
  this.Container.register(SqliteModelToSqlConverter).as(ModelToSqlConverter);
201
285
  this.Container.register(SqliteServerResponseMapper).as(ServerResponseMapper);
202
286
  }
203
- async transaction(qrOrCallback) {
204
- const trx = {
205
- commit: () => Promise.resolve(),
206
- rollback: () => Promise.resolve(),
207
- };
208
- if (!qrOrCallback) {
209
- return trx;
210
- }
287
+ async _begin(_options) {
211
288
  await this.executeOnDb('BEGIN TRANSACTION', [], QueryContext.Transaction);
212
- try {
213
- if (Array.isArray(qrOrCallback)) {
214
- for (const q of qrOrCallback) {
215
- await q;
216
- }
217
- }
218
- else {
219
- await qrOrCallback(this);
220
- }
221
- return {
222
- commit: async () => {
223
- await this.executeOnDb('COMMIT', [], QueryContext.Transaction);
224
- },
225
- rollback: async () => {
226
- await this.executeOnDb('ROLLBACK', [], QueryContext.Transaction);
227
- },
228
- };
229
- }
230
- catch (ex) {
231
- await this.executeOnDb('ROLLBACK', [], QueryContext.Transaction);
232
- throw ex;
233
- }
289
+ // sqlite3 gives us a single shared handle, so there is no per-transaction connection
290
+ // to carry — everything on this driver already runs on the same `this.Db`.
291
+ return { depth: 0 };
292
+ }
293
+ async _commit(_ctx) {
294
+ await this.executeOnDb('COMMIT', [], QueryContext.Transaction);
295
+ }
296
+ async _rollback(_ctx) {
297
+ await this.executeOnDb('ROLLBACK', [], QueryContext.Transaction);
298
+ }
299
+ // savepoint names cannot be bound parameters, so they are inlined through the identifier
300
+ // escaper rather than passed as `?`
301
+ async _savepoint(_ctx, name) {
302
+ await this.executeOnDb(`SAVEPOINT ${escapeIdentifier(name)}`, [], QueryContext.Transaction);
303
+ }
304
+ async _releaseSavepoint(_ctx, name) {
305
+ await this.executeOnDb(`RELEASE ${escapeIdentifier(name)}`, [], QueryContext.Transaction);
306
+ }
307
+ async _rollbackToSavepoint(_ctx, name) {
308
+ await this.executeOnDb(`ROLLBACK TO ${escapeIdentifier(name)}`, [], QueryContext.Transaction);
309
+ }
310
+ async _dispose(_ctx) {
311
+ // nothing to release — the sqlite3 handle is owned by the driver, not by the transaction
234
312
  }
235
313
  /**
236
314
  *
@@ -255,6 +333,9 @@ let SqliteOrmDriver = class SqliteOrmDriver extends SqlDriver {
255
333
  }
256
334
  // get all foreign keys
257
335
  const foreignKeys = (await this.executeOnDb(`PRAGMA foreign_key_list("${name}")`, [], QueryContext.Select));
336
+ // PRAGMA table_info reports `pk` as the 1-BASED POSITION within the primary key, not a
337
+ // boolean. Every column with pk > 0 is part of the key.
338
+ const pkColumnCount = tblInfo.filter((r) => r.pk > 0).length;
258
339
  return tblInfo.map((r) => {
259
340
  const fk = foreignKeys.find((i) => i.from === r.name);
260
341
  const converter = converters.get(r.type.toLocaleLowerCase());
@@ -266,7 +347,7 @@ let SqliteOrmDriver = class SqliteOrmDriver extends SqlDriver {
266
347
  NativeType: r.type,
267
348
  Unsigned: false,
268
349
  Nullable: r.notnull === 0,
269
- PrimaryKey: r.pk === 1,
350
+ PrimaryKey: r.pk > 0,
270
351
  Uuid: false,
271
352
  Ignore: false,
272
353
  IsForeignKey: fk !== undefined,
@@ -279,8 +360,9 @@ let SqliteOrmDriver = class SqliteOrmDriver extends SqlDriver {
279
360
  To: fk.to,
280
361
  }
281
362
  : null,
282
- // simply assumpt that integer pkeys are autoincement / auto fill by default
283
- AutoIncrement: r.pk === 1 && r.type === 'INTEGER',
363
+ // sqlite only auto-fills a lone INTEGER PRIMARY KEY ( the rowid alias ); a composite
364
+ // key never auto-increments, so the column count has to be checked too.
365
+ AutoIncrement: pkColumnCount === 1 && r.pk === 1 && r.type === 'INTEGER',
284
366
  Name: r.name,
285
367
  Converter: null,
286
368
  Schema: _schema ? _schema : this.Options.Database,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}