neoorm 0.9.6 → 0.9.7
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/bin/neoorm.d.ts.map +1 -1
- package/dist/bin/neoorm.js +83 -141
- package/dist/bin/neoorm.js.map +1 -1
- package/dist/codegen/column-ts.d.ts.map +1 -1
- package/dist/codegen/column-ts.js +5 -2
- package/dist/codegen/column-ts.js.map +1 -1
- package/dist/codegen/emit-query-types.d.ts.map +1 -1
- package/dist/codegen/emit-query-types.js +35 -0
- package/dist/codegen/emit-query-types.js.map +1 -1
- package/dist/codegen/generate.d.ts +1 -0
- package/dist/codegen/generate.d.ts.map +1 -1
- package/dist/codegen/generate.js +8 -1
- package/dist/codegen/generate.js.map +1 -1
- package/dist/codegen/schema-to-manifest.d.ts.map +1 -1
- package/dist/codegen/schema-to-manifest.js +65 -0
- package/dist/codegen/schema-to-manifest.js.map +1 -1
- package/dist/codegen/validation/from-manifest.d.ts.map +1 -1
- package/dist/codegen/validation/from-manifest.js +12 -2
- package/dist/codegen/validation/from-manifest.js.map +1 -1
- package/dist/dialect/sqlite.test.js +9 -0
- package/dist/dialect/sqlite.test.js.map +1 -1
- package/dist/introspect/mysql/to-manifest.d.ts.map +1 -1
- package/dist/introspect/mysql/to-manifest.js +2 -1
- package/dist/introspect/mysql/to-manifest.js.map +1 -1
- package/dist/introspect/pull.d.ts +5 -0
- package/dist/introspect/pull.d.ts.map +1 -1
- package/dist/introspect/pull.js +160 -22
- package/dist/introspect/pull.js.map +1 -1
- package/dist/introspect/sqlite/to-manifest.d.ts.map +1 -1
- package/dist/introspect/sqlite/to-manifest.js +2 -1
- package/dist/introspect/sqlite/to-manifest.js.map +1 -1
- package/dist/introspect/table-map.d.ts +9 -0
- package/dist/introspect/table-map.d.ts.map +1 -0
- package/dist/introspect/table-map.js +21 -0
- package/dist/introspect/table-map.js.map +1 -0
- package/dist/introspect/to-manifest.d.ts.map +1 -1
- package/dist/introspect/to-manifest.js +2 -1
- package/dist/introspect/to-manifest.js.map +1 -1
- package/dist/migrate/dev-workflow.d.ts +36 -0
- package/dist/migrate/dev-workflow.d.ts.map +1 -0
- package/dist/migrate/dev-workflow.js +96 -0
- package/dist/migrate/dev-workflow.js.map +1 -0
- package/dist/migrate/runner.d.ts.map +1 -1
- package/dist/migrate/runner.js +23 -5
- package/dist/migrate/runner.js.map +1 -1
- package/dist/runtime/driver-sqlite.test.js +115 -0
- package/dist/runtime/driver-sqlite.test.js.map +1 -1
- package/dist/runtime/driver.d.ts +8 -0
- package/dist/runtime/driver.d.ts.map +1 -1
- package/dist/runtime/driver.js +51 -97
- package/dist/runtime/driver.js.map +1 -1
- package/dist/runtime/error-codes.d.ts +3 -0
- package/dist/runtime/error-codes.d.ts.map +1 -1
- package/dist/runtime/error-codes.js +3 -0
- package/dist/runtime/error-codes.js.map +1 -1
- package/dist/runtime/mysql-driver.d.ts.map +1 -1
- package/dist/runtime/mysql-driver.js +5 -1
- package/dist/runtime/mysql-driver.js.map +1 -1
- package/dist/runtime/mysql-family-pool.test.js +14 -1
- package/dist/runtime/mysql-family-pool.test.js.map +1 -1
- package/dist/runtime/mysql-placeholders.d.ts.map +1 -1
- package/dist/runtime/mysql-placeholders.js +12 -0
- package/dist/runtime/mysql-placeholders.js.map +1 -1
- package/dist/runtime/mysql-placeholders.test.js +15 -0
- package/dist/runtime/mysql-placeholders.test.js.map +1 -1
- package/dist/runtime/query/compile-where.d.ts.map +1 -1
- package/dist/runtime/query/compile-where.js +26 -1
- package/dist/runtime/query/compile-where.js.map +1 -1
- package/dist/runtime/query/find-or-create.test.js +19 -0
- package/dist/runtime/query/find-or-create.test.js.map +1 -1
- package/dist/runtime/query/update.d.ts.map +1 -1
- package/dist/runtime/query/update.js +9 -1
- package/dist/runtime/query/update.js.map +1 -1
- package/dist/runtime/query/upsert.d.ts.map +1 -1
- package/dist/runtime/query/upsert.js +12 -3
- package/dist/runtime/query/upsert.js.map +1 -1
- package/dist/runtime/regex-guard.d.ts +28 -0
- package/dist/runtime/regex-guard.d.ts.map +1 -0
- package/dist/runtime/regex-guard.js +124 -0
- package/dist/runtime/regex-guard.js.map +1 -0
- package/dist/runtime/regex-guard.test.d.ts +2 -0
- package/dist/runtime/regex-guard.test.d.ts.map +1 -0
- package/dist/runtime/regex-guard.test.js +63 -0
- package/dist/runtime/regex-guard.test.js.map +1 -0
- package/dist/runtime/sqlite-open.d.ts.map +1 -1
- package/dist/runtime/sqlite-open.js +22 -7
- package/dist/runtime/sqlite-open.js.map +1 -1
- package/dist/runtime/sqlite-open.test.d.ts +2 -0
- package/dist/runtime/sqlite-open.test.d.ts.map +1 -0
- package/dist/runtime/sqlite-open.test.js +66 -0
- package/dist/runtime/sqlite-open.test.js.map +1 -0
- package/dist/sql/split-statements.d.ts +15 -0
- package/dist/sql/split-statements.d.ts.map +1 -0
- package/dist/sql/split-statements.js +132 -0
- package/dist/sql/split-statements.js.map +1 -0
- package/docs/migrate-dev-workflow.md +84 -0
- package/docs/migrations.md +3 -0
- package/docs/sqlite.md +2 -0
- package/llms-full.txt +90 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/migrate/runner.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/migrate/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/migrate/runner.js
CHANGED
|
@@ -4,6 +4,7 @@ import { dirname, join } from "node:path";
|
|
|
4
4
|
import { diffManifest, formatDestructiveWarnings, resolveMigrationSql, } from "../codegen/diff-manifest.js";
|
|
5
5
|
import { compileSchemaToManifest, writeSnapshot } from "../codegen/generate.js";
|
|
6
6
|
import { applySchemaToManifest, DEFAULT_PG_SCHEMA, quoteQualifiedIdentifier, resolvePgSchemaName, } from "../dialect/postgres.js";
|
|
7
|
+
import { isMysqlFamilyDialect } from "../dialect/resolve.js";
|
|
7
8
|
import { introspectMysqlToManifest } from "../introspect/mysql/to-manifest.js";
|
|
8
9
|
import { introspectSqliteToManifest } from "../introspect/sqlite/to-manifest.js";
|
|
9
10
|
import { introspectToManifest } from "../introspect/to-manifest.js";
|
|
@@ -11,7 +12,20 @@ import { schemaError } from "../runtime/error-builders.js";
|
|
|
11
12
|
import { SchemaErrorCode } from "../runtime/error-codes.js";
|
|
12
13
|
import { NeoOrmDriverError } from "../runtime/errors.js";
|
|
13
14
|
import { enrichMigrationError, extractCreateTableSqlNames, resolveMigrateContext, } from "../runtime/schema-error.js";
|
|
15
|
+
import { splitStatements } from "../sql/split-statements.js";
|
|
14
16
|
const MIGRATIONS_TABLE = "_neoorm_migrations";
|
|
17
|
+
/**
|
|
18
|
+
* MySQL/MariaDB connections run a single statement per query
|
|
19
|
+
* (`multipleStatements` is off), so a whole migration file would come back
|
|
20
|
+
* as ER_PARSE_ERROR — split it into statements first. Other dialects accept
|
|
21
|
+
* multi-statement payloads and keep their existing error reporting.
|
|
22
|
+
*/
|
|
23
|
+
function migrationFileStatements(dialect, sql) {
|
|
24
|
+
const statements = isMysqlFamilyDialect(dialect)
|
|
25
|
+
? splitStatements(sql, { backslashEscapes: true })
|
|
26
|
+
: [sql];
|
|
27
|
+
return statements.filter((statement) => statement.trim().length > 0);
|
|
28
|
+
}
|
|
15
29
|
/** int4 classid for `pg_advisory_xact_lock` — distinct from table OIDs. */
|
|
16
30
|
const PG_MIGRATE_LOCK_CLASSID = 872014;
|
|
17
31
|
export function hashMigrationSql(sql) {
|
|
@@ -49,12 +63,14 @@ async function migrationsLedgerHasChecksumColumn(client, dialect, schema) {
|
|
|
49
63
|
}
|
|
50
64
|
case "mysql":
|
|
51
65
|
case "mariadb": {
|
|
52
|
-
|
|
66
|
+
// `exists` is a reserved word on MySQL/MariaDB — an unquoted alias
|
|
67
|
+
// is a ER 1064 syntax error, unlike on PostgreSQL.
|
|
68
|
+
const result = await client.query(`SELECT COUNT(*) AS checksum_count
|
|
53
69
|
FROM information_schema.COLUMNS
|
|
54
70
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
55
71
|
AND TABLE_NAME = $1
|
|
56
72
|
AND COLUMN_NAME = 'checksum'`, [MIGRATIONS_TABLE]);
|
|
57
|
-
return Number(result.rows[0]?.
|
|
73
|
+
return Number(result.rows[0]?.checksum_count ?? 0) > 0;
|
|
58
74
|
}
|
|
59
75
|
case "postgresql": {
|
|
60
76
|
const schemaName = resolvePgSchemaName(schema);
|
|
@@ -485,7 +501,9 @@ export async function applyMigration(client, dialect, migrationsDir, name, schem
|
|
|
485
501
|
if (schemaSql) {
|
|
486
502
|
await tx.query(schemaSql);
|
|
487
503
|
}
|
|
488
|
-
|
|
504
|
+
for (const statement of migrationFileStatements(dialect, sql)) {
|
|
505
|
+
await tx.query(statement);
|
|
506
|
+
}
|
|
489
507
|
await tx.query(`INSERT INTO ${migrationsTableRef(dialect, context.schema)} (name, checksum) VALUES ($1, $2)`, [name, hashMigrationSql(sql)]);
|
|
490
508
|
});
|
|
491
509
|
if (dialect.name === "sqlite") {
|
|
@@ -548,8 +566,8 @@ async function readSnapshotBefore(migrationsDir, name) {
|
|
|
548
566
|
export async function revertMigration(client, dialect, migrationsDir, name, schema) {
|
|
549
567
|
const sql = await readDownSql(migrationsDir, name);
|
|
550
568
|
await client.transaction(async (tx) => {
|
|
551
|
-
|
|
552
|
-
await tx.query(
|
|
569
|
+
for (const statement of migrationFileStatements(dialect, sql)) {
|
|
570
|
+
await tx.query(statement);
|
|
553
571
|
}
|
|
554
572
|
await tx.query(`DELETE FROM ${migrationsTableRef(dialect, schema)} WHERE name = $1`, [name]);
|
|
555
573
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/migrate/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/migrate/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -154,6 +154,29 @@ describe("sqlite production pragmas", () => {
|
|
|
154
154
|
expect(await pragmaValue(client, "busy_timeout")).toBe(2500);
|
|
155
155
|
await client.close();
|
|
156
156
|
});
|
|
157
|
+
it("re-applies changed pragmas instead of ignoring later options", async () => {
|
|
158
|
+
// The WeakMap caches one wrapper per db handle. A second call with
|
|
159
|
+
// different options must honor them (not silently keep the first
|
|
160
|
+
// wrap's pragmas) while still returning the same wrapper/mutex.
|
|
161
|
+
const db = new DatabaseSync(":memory:");
|
|
162
|
+
const first = sqliteClient(db, { busyTimeout: 2500 });
|
|
163
|
+
const second = sqliteClient(db, { busyTimeout: 100 });
|
|
164
|
+
expect(second).toBe(first);
|
|
165
|
+
expect(await pragmaValue(second, "busy_timeout")).toBe(100);
|
|
166
|
+
// busyTimeout: false must reset to the engine default (0), not leave
|
|
167
|
+
// the prior 100 in place.
|
|
168
|
+
const third = sqliteClient(db, { busyTimeout: false });
|
|
169
|
+
expect(third).toBe(first);
|
|
170
|
+
expect(await pragmaValue(third, "busy_timeout")).toBe(0);
|
|
171
|
+
await first.close();
|
|
172
|
+
});
|
|
173
|
+
it("keeps one wrapper for identical options", async () => {
|
|
174
|
+
const db = new DatabaseSync(":memory:");
|
|
175
|
+
const a = sqliteClient(db, { busyTimeout: 1234 });
|
|
176
|
+
const b = sqliteClient(db, { busyTimeout: 1234 });
|
|
177
|
+
expect(b).toBe(a);
|
|
178
|
+
await a.close();
|
|
179
|
+
});
|
|
157
180
|
});
|
|
158
181
|
describe("sqlite placeholders", () => {
|
|
159
182
|
it("reuses $1 instead of consuming a second bound value", async () => {
|
|
@@ -204,4 +227,96 @@ describe("sqlite readOnly transactions", () => {
|
|
|
204
227
|
await client.close();
|
|
205
228
|
});
|
|
206
229
|
});
|
|
230
|
+
describe("sqlite placeholder conversion $-quoting", () => {
|
|
231
|
+
function recordingClient() {
|
|
232
|
+
const prepared = [];
|
|
233
|
+
const fake = {
|
|
234
|
+
prepare(sql) {
|
|
235
|
+
prepared.push(sql);
|
|
236
|
+
return {
|
|
237
|
+
all: () => [],
|
|
238
|
+
get: () => undefined,
|
|
239
|
+
run: () => ({ changes: 0, lastInsertRowid: 0 }),
|
|
240
|
+
};
|
|
241
|
+
},
|
|
242
|
+
exec(sql) {
|
|
243
|
+
prepared.push(sql);
|
|
244
|
+
},
|
|
245
|
+
close() { },
|
|
246
|
+
};
|
|
247
|
+
return { client: sqliteClient(fake), prepared };
|
|
248
|
+
}
|
|
249
|
+
function lastNonPragma(prepared) {
|
|
250
|
+
return prepared.find((sql) => !sql.startsWith("PRAGMA")) ?? "";
|
|
251
|
+
}
|
|
252
|
+
it("copies $-quoted regions verbatim while converting real placeholders", async () => {
|
|
253
|
+
const { client, prepared } = recordingClient();
|
|
254
|
+
await client.query("SELECT $1, $$ body with $2 $$ AS b", ["a", "b"]);
|
|
255
|
+
expect(lastNonPragma(prepared)).toBe("SELECT ?1, $$ body with $2 $$ AS b");
|
|
256
|
+
});
|
|
257
|
+
it("copies tagged $-quoted regions verbatim", async () => {
|
|
258
|
+
const { client, prepared } = recordingClient();
|
|
259
|
+
await client.query("SELECT $1, $body$ keep $2 $body$ AS b", ["a", "b"]);
|
|
260
|
+
expect(lastNonPragma(prepared)).toBe("SELECT ?1, $body$ keep $2 $body$ AS b");
|
|
261
|
+
});
|
|
262
|
+
it("still converts $n when a $$ region is never closed", async () => {
|
|
263
|
+
const { client, prepared } = recordingClient();
|
|
264
|
+
await client.query("SELECT $$ open $1, id = $1", ["a"]);
|
|
265
|
+
expect(lastNonPragma(prepared)).toBe("SELECT $$ open ?1, id = ?1");
|
|
266
|
+
});
|
|
267
|
+
});
|
|
268
|
+
describe("sqlite REGEXP catastrophic-backtracking guard", () => {
|
|
269
|
+
// Long enough that an exponential pattern would take far longer than the
|
|
270
|
+
// test timeout if it ever reached the regex engine.
|
|
271
|
+
const evilValue = `${"a".repeat(30)}!`;
|
|
272
|
+
it("rejects nested-quantifier patterns on the regexp operator", async () => {
|
|
273
|
+
const db = new DatabaseSync(":memory:");
|
|
274
|
+
const client = sqliteClient(db);
|
|
275
|
+
await expect(client.query("SELECT ? REGEXP ? AS m", [evilValue, "(a+)+$"])).rejects.toThrow(/unsafeAllowRegex/);
|
|
276
|
+
db.close();
|
|
277
|
+
});
|
|
278
|
+
it("keeps the connection usable and benign patterns matching", async () => {
|
|
279
|
+
const db = new DatabaseSync(":memory:");
|
|
280
|
+
const client = sqliteClient(db);
|
|
281
|
+
await expect(client.query("SELECT ? REGEXP ? AS m", [evilValue, "(a+)+$"])).rejects.toThrow();
|
|
282
|
+
const ok = await client.query("SELECT 1 AS ok");
|
|
283
|
+
expect(ok.rows[0]?.ok).toBe(1);
|
|
284
|
+
const benign = await client.query("SELECT ? REGEXP ? AS m", [
|
|
285
|
+
"hello",
|
|
286
|
+
"^h",
|
|
287
|
+
]);
|
|
288
|
+
expect(benign.rows[0]?.m).toBe(1);
|
|
289
|
+
db.close();
|
|
290
|
+
});
|
|
291
|
+
it("guards regexp_i as well as regexp", async () => {
|
|
292
|
+
const db = new DatabaseSync(":memory:");
|
|
293
|
+
const client = sqliteClient(db);
|
|
294
|
+
await expect(client.query("SELECT regexp_i(?, ?) AS m", ["(a+)+$", evilValue])).rejects.toThrow(/unsafeAllowRegex/);
|
|
295
|
+
db.close();
|
|
296
|
+
});
|
|
297
|
+
it("allows catastrophic patterns when unsafeAllowRegex is set", async () => {
|
|
298
|
+
const db = new DatabaseSync(":memory:");
|
|
299
|
+
const client = sqliteClient(db, { unsafeAllowRegex: true });
|
|
300
|
+
// Short non-matching value so the allowed pattern finishes instantly.
|
|
301
|
+
const result = await client.query("SELECT ? REGEXP ? AS m", [
|
|
302
|
+
"b",
|
|
303
|
+
"(a+)+$",
|
|
304
|
+
]);
|
|
305
|
+
expect(result.rows[0]?.m).toBe(0);
|
|
306
|
+
db.close();
|
|
307
|
+
});
|
|
308
|
+
it("re-registers the guard when the option changes on a shared handle", async () => {
|
|
309
|
+
const db = new DatabaseSync(":memory:");
|
|
310
|
+
const guarded = sqliteClient(db);
|
|
311
|
+
await expect(guarded.query("SELECT ? REGEXP ? AS m", [evilValue, "(a+)+$"])).rejects.toThrow();
|
|
312
|
+
const unsafe = sqliteClient(db, { unsafeAllowRegex: true });
|
|
313
|
+
expect(unsafe).toBe(guarded);
|
|
314
|
+
const allowed = await unsafe.query("SELECT ? REGEXP ? AS m", [
|
|
315
|
+
"b",
|
|
316
|
+
"(a+)+$",
|
|
317
|
+
]);
|
|
318
|
+
expect(allowed.rows[0]?.m).toBe(0);
|
|
319
|
+
db.close();
|
|
320
|
+
});
|
|
321
|
+
});
|
|
207
322
|
//# sourceMappingURL=driver-sqlite.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver-sqlite.test.js","sourceRoot":"","sources":["../../src/runtime/driver-sqlite.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"driver-sqlite.test.js","sourceRoot":"","sources":["../../src/runtime/driver-sqlite.test.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/driver.d.ts
CHANGED
|
@@ -38,6 +38,14 @@ export type SqliteClientOptions = {
|
|
|
38
38
|
* @default true
|
|
39
39
|
*/
|
|
40
40
|
wal?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Allow `search`/REGEXP patterns that nest unbounded quantifiers
|
|
43
|
+
* (e.g. `(a+)+`), which can backtrack exponentially and freeze the
|
|
44
|
+
* process because SQLite runs them in-process. The guard rejects such
|
|
45
|
+
* patterns by default.
|
|
46
|
+
* @default false
|
|
47
|
+
*/
|
|
48
|
+
unsafeAllowRegex?: boolean;
|
|
41
49
|
};
|
|
42
50
|
export declare function sqliteClient(db: SqliteDatabaseLike, options?: SqliteClientOptions): DatabaseClient;
|
|
43
51
|
export declare function pgClient(pool: Pool): DatabaseClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/runtime/driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/runtime/driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,IAAI,CAAC;AAcxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACvD,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GAChB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,WAAW,CAAC,CAAC,EACZ,EAAE,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,EAC1C,OAAO,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB,CAAC;AAEF,KAAK,eAAe,GAAG;IACtB,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACrD,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC/D,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG;QAC1B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;KACjC,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAChC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;IACtC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GAAG,IAAI,CAAC;CACnE,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,mBAAmB,GAAG;IACjC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7B;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AA6JF,wBAAgB,YAAY,CAC3B,EAAE,EAAE,kBAAkB,EACtB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,cAAc,CAgBhB;AA6OD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc,CAsCnD"}
|
package/dist/runtime/driver.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { splitStatements } from "../sql/split-statements.js";
|
|
2
|
+
import { scanDollarQuoted } from "../sql/template.js";
|
|
1
3
|
import { NeoOrmDriverError } from "./errors.js";
|
|
4
|
+
import { catastrophicRegexMessage, hasCatastrophicBacktracking, } from "./regex-guard.js";
|
|
2
5
|
import { assertNoSavepointOptions, buildBeginSql, buildSqliteBeginSql, rollbackIgnoringFailure, } from "./transaction.js";
|
|
3
6
|
const SQLITE_DEFAULT_BUSY_TIMEOUT_MS = 5000;
|
|
4
7
|
function convertPlaceholders(sql) {
|
|
@@ -71,6 +74,16 @@ function convertPlaceholders(sql) {
|
|
|
71
74
|
out += ch;
|
|
72
75
|
continue;
|
|
73
76
|
}
|
|
77
|
+
if (ch === "$") {
|
|
78
|
+
// Copy $-quoted ($$ … $$ / $tag$ … $tag$) regions verbatim so
|
|
79
|
+
// `$N`-looking text inside them is not rewritten to a placeholder.
|
|
80
|
+
const dollarEnd = scanDollarQuoted(sql, i);
|
|
81
|
+
if (dollarEnd !== -1) {
|
|
82
|
+
out += sql.slice(i, dollarEnd);
|
|
83
|
+
i = dollarEnd - 1;
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
74
87
|
if (ch === "$" && next !== undefined && /\d/.test(next)) {
|
|
75
88
|
out += "?";
|
|
76
89
|
i++;
|
|
@@ -105,91 +118,6 @@ function serializeParam(value) {
|
|
|
105
118
|
function sqliteRows(result) {
|
|
106
119
|
return { rows: result, rowCount: result.length };
|
|
107
120
|
}
|
|
108
|
-
function splitStatements(sql) {
|
|
109
|
-
const statements = [];
|
|
110
|
-
let current = "";
|
|
111
|
-
let inSingle = false;
|
|
112
|
-
let inDouble = false;
|
|
113
|
-
let inLineComment = false;
|
|
114
|
-
let inBlockComment = false;
|
|
115
|
-
for (let i = 0; i < sql.length; i++) {
|
|
116
|
-
const ch = sql[i];
|
|
117
|
-
const next = sql[i + 1];
|
|
118
|
-
if (inLineComment) {
|
|
119
|
-
current += ch;
|
|
120
|
-
if (ch === "\n")
|
|
121
|
-
inLineComment = false;
|
|
122
|
-
continue;
|
|
123
|
-
}
|
|
124
|
-
if (inBlockComment) {
|
|
125
|
-
current += ch;
|
|
126
|
-
if (ch === "*" && next === "/") {
|
|
127
|
-
current += next;
|
|
128
|
-
i++;
|
|
129
|
-
inBlockComment = false;
|
|
130
|
-
}
|
|
131
|
-
continue;
|
|
132
|
-
}
|
|
133
|
-
if (inSingle) {
|
|
134
|
-
current += ch;
|
|
135
|
-
if (ch === "'") {
|
|
136
|
-
if (next === "'") {
|
|
137
|
-
current += next;
|
|
138
|
-
i++;
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
inSingle = false;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
if (inDouble) {
|
|
147
|
-
current += ch;
|
|
148
|
-
if (ch === '"') {
|
|
149
|
-
if (next === '"') {
|
|
150
|
-
current += next;
|
|
151
|
-
i++;
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
inDouble = false;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
continue;
|
|
158
|
-
}
|
|
159
|
-
if (ch === "-" && next === "-") {
|
|
160
|
-
inLineComment = true;
|
|
161
|
-
current += ch;
|
|
162
|
-
continue;
|
|
163
|
-
}
|
|
164
|
-
if (ch === "/" && next === "*") {
|
|
165
|
-
inBlockComment = true;
|
|
166
|
-
current += ch;
|
|
167
|
-
continue;
|
|
168
|
-
}
|
|
169
|
-
if (ch === "'") {
|
|
170
|
-
inSingle = true;
|
|
171
|
-
current += ch;
|
|
172
|
-
continue;
|
|
173
|
-
}
|
|
174
|
-
if (ch === '"') {
|
|
175
|
-
inDouble = true;
|
|
176
|
-
current += ch;
|
|
177
|
-
continue;
|
|
178
|
-
}
|
|
179
|
-
if (ch === ";") {
|
|
180
|
-
if (current.trim().length > 0) {
|
|
181
|
-
statements.push(current.trim());
|
|
182
|
-
}
|
|
183
|
-
current = "";
|
|
184
|
-
continue;
|
|
185
|
-
}
|
|
186
|
-
current += ch;
|
|
187
|
-
}
|
|
188
|
-
if (current.trim().length > 0) {
|
|
189
|
-
statements.push(current.trim());
|
|
190
|
-
}
|
|
191
|
-
return statements.length > 0 ? statements : [sql];
|
|
192
|
-
}
|
|
193
121
|
async function executeWriteStatements(db, sql) {
|
|
194
122
|
const statements = splitStatements(sql);
|
|
195
123
|
let changes = 0;
|
|
@@ -210,35 +138,61 @@ async function executeWriteStatements(db, sql) {
|
|
|
210
138
|
return { rows: [], rowCount: changes };
|
|
211
139
|
}
|
|
212
140
|
const sqliteClients = new WeakMap();
|
|
141
|
+
function sqliteOptionsKey(options) {
|
|
142
|
+
return JSON.stringify([
|
|
143
|
+
options?.busyTimeout ?? SQLITE_DEFAULT_BUSY_TIMEOUT_MS,
|
|
144
|
+
options?.wal ?? true,
|
|
145
|
+
options?.unsafeAllowRegex ?? false,
|
|
146
|
+
]);
|
|
147
|
+
}
|
|
213
148
|
export function sqliteClient(db, options) {
|
|
149
|
+
const optionsKey = sqliteOptionsKey(options);
|
|
214
150
|
const cached = sqliteClients.get(db);
|
|
215
151
|
if (cached) {
|
|
216
|
-
|
|
152
|
+
// Keep the single wrapper per handle (one FIFO mutex serializes the
|
|
153
|
+
// shared connection), but honor changed PRAGMA options by re-applying
|
|
154
|
+
// them instead of silently ignoring them.
|
|
155
|
+
if (cached.optionsKey !== optionsKey) {
|
|
156
|
+
applySqlitePragmas(db, options);
|
|
157
|
+
cached.optionsKey = optionsKey;
|
|
158
|
+
}
|
|
159
|
+
return cached.client;
|
|
217
160
|
}
|
|
218
161
|
const client = createSqliteClient(db, options);
|
|
219
|
-
sqliteClients.set(db, client);
|
|
162
|
+
sqliteClients.set(db, { client, optionsKey });
|
|
220
163
|
return client;
|
|
221
164
|
}
|
|
222
|
-
function sqliteRegexpMatch(pattern, value, flags) {
|
|
165
|
+
function sqliteRegexpMatch(pattern, value, flags, unsafeAllowRegex) {
|
|
223
166
|
if (pattern == null || value == null)
|
|
224
167
|
return 0;
|
|
225
|
-
|
|
168
|
+
const source = String(pattern);
|
|
169
|
+
// SQLite calls this per row on the shared connection's thread; an
|
|
170
|
+
// exponential-backtracking pattern would freeze the whole process, so
|
|
171
|
+
// reject the nested-quantifier shape before compiling.
|
|
172
|
+
if (!unsafeAllowRegex && hasCatastrophicBacktracking(source)) {
|
|
173
|
+
throw new Error(catastrophicRegexMessage(source));
|
|
174
|
+
}
|
|
175
|
+
return new RegExp(source, flags).test(String(value)) ? 1 : 0;
|
|
226
176
|
}
|
|
227
|
-
function registerSqliteRegexpFunctions(db) {
|
|
177
|
+
function registerSqliteRegexpFunctions(db, options) {
|
|
228
178
|
if (typeof db.function !== "function")
|
|
229
179
|
return;
|
|
230
|
-
|
|
231
|
-
db.function("
|
|
180
|
+
const unsafeAllowRegex = options?.unsafeAllowRegex === true;
|
|
181
|
+
db.function("regexp", (pattern, value) => sqliteRegexpMatch(pattern, value, "", unsafeAllowRegex));
|
|
182
|
+
db.function("regexp_i", (pattern, value) => sqliteRegexpMatch(pattern, value, "i", unsafeAllowRegex));
|
|
232
183
|
}
|
|
233
184
|
function applySqlitePragmas(db, options) {
|
|
234
185
|
db.exec("PRAGMA foreign_keys = ON");
|
|
235
|
-
registerSqliteRegexpFunctions(db);
|
|
236
|
-
|
|
237
|
-
|
|
186
|
+
registerSqliteRegexpFunctions(db, options);
|
|
187
|
+
// Always set busy_timeout (false → 0, the engine default) rather than
|
|
188
|
+
// skipping, so re-applying options to an already-wrapped connection is
|
|
189
|
+
// faithful instead of leaving a stale value from a prior wrap.
|
|
190
|
+
const busyTimeoutMs = options?.busyTimeout === false
|
|
191
|
+
? 0
|
|
192
|
+
: typeof options?.busyTimeout === "number"
|
|
238
193
|
? Math.max(0, Math.trunc(options.busyTimeout))
|
|
239
194
|
: SQLITE_DEFAULT_BUSY_TIMEOUT_MS;
|
|
240
|
-
|
|
241
|
-
}
|
|
195
|
+
db.exec(`PRAGMA busy_timeout = ${busyTimeoutMs}`);
|
|
242
196
|
if (options?.wal !== false) {
|
|
243
197
|
try {
|
|
244
198
|
db.exec("PRAGMA journal_mode = WAL");
|