uql-orm 0.14.0 → 0.15.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 (65) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +12 -2
  3. package/dist/bunSql/bunSqlQuerierPool.d.ts +2 -2
  4. package/dist/bunSql/bunSqlQuerierPool.d.ts.map +1 -1
  5. package/dist/bunSql/bunSqlQuerierPool.js +2 -2
  6. package/dist/bunSql/bunSqlQuerierPool.js.map +1 -1
  7. package/dist/cockroachdb/crdbQuerierPool.d.ts +1 -1
  8. package/dist/cockroachdb/crdbQuerierPool.d.ts.map +1 -1
  9. package/dist/context/context.browser.d.ts +2 -0
  10. package/dist/context/context.browser.d.ts.map +1 -1
  11. package/dist/context/context.browser.js +5 -0
  12. package/dist/context/context.browser.js.map +1 -1
  13. package/dist/context/context.d.ts +14 -0
  14. package/dist/context/context.d.ts.map +1 -1
  15. package/dist/context/context.js +17 -0
  16. package/dist/context/context.js.map +1 -1
  17. package/dist/d1/d1QuerierPool.d.ts +2 -2
  18. package/dist/d1/d1QuerierPool.d.ts.map +1 -1
  19. package/dist/d1/d1QuerierPool.js +2 -2
  20. package/dist/d1/d1QuerierPool.js.map +1 -1
  21. package/dist/libsql/libsqlQuerierPool.d.ts +2 -2
  22. package/dist/libsql/libsqlQuerierPool.d.ts.map +1 -1
  23. package/dist/libsql/libsqlQuerierPool.js +2 -2
  24. package/dist/libsql/libsqlQuerierPool.js.map +1 -1
  25. package/dist/maria/mariadbQuerierPool.d.ts +2 -2
  26. package/dist/maria/mariadbQuerierPool.d.ts.map +1 -1
  27. package/dist/maria/mariadbQuerierPool.js +2 -2
  28. package/dist/maria/mariadbQuerierPool.js.map +1 -1
  29. package/dist/mongo/mongodbQuerierPool.d.ts +1 -1
  30. package/dist/mongo/mongodbQuerierPool.d.ts.map +1 -1
  31. package/dist/mysql/mysql2QuerierPool.d.ts +2 -2
  32. package/dist/mysql/mysql2QuerierPool.d.ts.map +1 -1
  33. package/dist/mysql/mysql2QuerierPool.js +2 -2
  34. package/dist/mysql/mysql2QuerierPool.js.map +1 -1
  35. package/dist/neon/neonQuerierPool.d.ts +1 -1
  36. package/dist/postgres/abstractPgQuerierPool.d.ts +2 -2
  37. package/dist/postgres/abstractPgQuerierPool.d.ts.map +1 -1
  38. package/dist/postgres/abstractPgQuerierPool.js +2 -2
  39. package/dist/postgres/abstractPgQuerierPool.js.map +1 -1
  40. package/dist/postgres/pgQuerierPool.d.ts +1 -1
  41. package/dist/querier/abstractQuerierPool.d.ts +12 -4
  42. package/dist/querier/abstractQuerierPool.d.ts.map +1 -1
  43. package/dist/querier/abstractQuerierPool.js +26 -3
  44. package/dist/querier/abstractQuerierPool.js.map +1 -1
  45. package/dist/querier/abstractSqlQuerierPool.d.ts +12 -0
  46. package/dist/querier/abstractSqlQuerierPool.d.ts.map +1 -0
  47. package/dist/querier/abstractSqlQuerierPool.js +14 -0
  48. package/dist/querier/abstractSqlQuerierPool.js.map +1 -0
  49. package/dist/querier/index.d.ts +1 -0
  50. package/dist/querier/index.d.ts.map +1 -1
  51. package/dist/querier/index.js +1 -0
  52. package/dist/querier/index.js.map +1 -1
  53. package/dist/sqlite/sqliteQuerierPool.d.ts +8 -3
  54. package/dist/sqlite/sqliteQuerierPool.d.ts.map +1 -1
  55. package/dist/sqlite/sqliteQuerierPool.js +22 -20
  56. package/dist/sqlite/sqliteQuerierPool.js.map +1 -1
  57. package/dist/type/querierPool.d.ts +40 -5
  58. package/dist/type/querierPool.d.ts.map +1 -1
  59. package/dist/type/universalQuerier.d.ts +9 -9
  60. package/dist/type/universalQuerier.d.ts.map +1 -1
  61. package/dist/util/dialect.util.d.ts +3 -1
  62. package/dist/util/dialect.util.d.ts.map +1 -1
  63. package/dist/util/dialect.util.js +7 -2
  64. package/dist/util/dialect.util.js.map +1 -1
  65. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -4,6 +4,65 @@ All notable changes to this project will be documented in this file. Please add
4
4
 
5
5
  date format is [yyyy-mm-dd]
6
6
 
7
+ ## [0.15.0] - 2026-07-09
8
+
9
+ Pool-level query methods: each call acquires its own querier, runs the single operation, and releases it, so `Promise.all` fans out across connections without ceremony - the same default as Sequelize/TypeORM/Prisma. (Single-connection backends - better-sqlite3, Bun sqlite, D1 - stay correct but serialize on their one connection.)
10
+
11
+ ### Breaking
12
+
13
+ - **Pool base-class generics are now querier-first**, matching the `QuerierPool<Q, D>` interface they implement: `AbstractQuerierPool<Q, D>` (was `<D, Q>`), `AbstractSqlQuerierPool<Q, D>`, and `AbstractPgQuerierPool<C, Q, D>` (was `<C, D, Q>`). Only custom pool subclasses and explicit type annotations are affected - swap the two arguments; runtime behavior is unchanged.
14
+
15
+ ### Features
16
+
17
+ - **Read helpers on the pool** - `pool.findMany` / `pool.findOne` / `pool.findOneById` / `pool.findManyAndCount` / `pool.count` / `pool.aggregate`:
18
+
19
+ ```ts
20
+ // Two connections, in parallel:
21
+ const [invoices, total] = await Promise.all([pool.findMany(Invoice, { $where: { paid: false } }), pool.count(Invoice, {})]);
22
+
23
+ // vs. one pinned connection (queries queue) - still the right tool for a unit of work:
24
+ await pool.withQuerier((q) => Promise.all([q.findMany(Invoice, {}), q.count(Invoice, {})]));
25
+ ```
26
+
27
+ The ambient `withContext` still scopes these (so `security` filters apply). They take the entity-as-argument form; for the `{ $entity }` form, multi-statement work, or streaming, use `withQuerier` / `transaction`.
28
+
29
+ - **Raw SQL on SQL pools** - `pool.all(sql, values)` / `pool.run(sql, values)`, with the same connection-per-call semantics. Raw SQL bypasses query generation, so it is not scoped by `security` filters.
30
+
31
+ - **Types** - the pool surfaces are *derived* from the querier contracts (`QuerierPool extends Pick<UniversalQuerier, ...reads>`, `SqlQuerierPool extends Pick<SqlQuerier, 'all' | 'run'>`), so they cannot drift. To support this, `UniversalQuerier`'s read and update signatures gained the trailing `opts?: QueryOptions` that `Querier` already declared - a non-breaking widening.
32
+
33
+ ### Fixes
34
+
35
+ - **`Sqlite3QuerierPool` hands out a querier per acquisition** (sharing the single database handle) instead of one memoized querier, so transaction state is per unit of work like every other pool. Previously, a pool-level unit of work started while a transaction was open (e.g. a pool read inside `pool.transaction(...)`) received the *same* querier, and its `release()` threw `pending transaction`, rolling back the outer transaction. Covered by new pool integration tests across all backends.
36
+
37
+ ## [0.14.1] - 2026-07-09
38
+
39
+ Context ergonomics for event-driven apps (background pipelines, queue consumers, webhooks) - shaped by adopting the multi-tenancy filters in a real multimedia app.
40
+
41
+ ### Features
42
+
43
+ - **`captureContext()`** - carry the ambient context across event boundaries. `AsyncLocalStorage` does not propagate into emitter callbacks, timers, or queued work, so capture it once and replay it where the callback fires:
44
+
45
+ ```ts
46
+ const scoped = captureContext(); // e.g. when a session/queue item is created inside a scoped request
47
+ emitter.on('chunk', (chunk) => scoped(() => saveChunk(chunk))); // runs with the captured context
48
+ ```
49
+
50
+ - **Context per unit of work** - `pool.withQuerier(callback, { context })` and `pool.transaction(callback, { context })` run one unit of work under the given context. Same mechanism as `withContext`, picked by scope: `withContext` scopes a span (a request, a whole job); `{ context }` scopes a single pool call - flat and explicit for pipeline code that knows its tenant locally:
51
+
52
+ ```ts
53
+ await pool.withQuerier((q) => q.findMany(Invoice, {}), { context: { tenantId } });
54
+ ```
55
+
56
+ - **Trusted cross-tenant work with security filters** - a filter condition may now return `{}` to mean "resolved: no restriction", so maintenance jobs that must span all tenants (startup recovery, cleanup sweeps) can run under an explicit system context. A missing context still fails closed, and previously a `{}` condition generated broken SQL:
57
+
58
+ ```ts
59
+ condition: (ctx) => (ctx?.system ? {} : ctx?.tenantId != null ? { companyId: ctx.tenantId } : undefined),
60
+
61
+ await withContext({ system: true }, () => recoverStaleJobs()); // spans every tenant, deliberately
62
+ ```
63
+
64
+ - **Auto-fill the tenant column on insert** (documented pattern, works out of the box): `@Field({ onInsert: () => getContext()?.tenantId })` fills the field from the ambient context when the payload does not provide it - explicit values still win.
65
+
7
66
  ## [0.14.0] - 2026-07-08
8
67
 
9
68
  Query filters, multi-tenancy / row-level security, and soft-delete restore. Upgrade straight from 0.12.0 - 0.13.0 was pulled before anyone could install it (its root import dragged `node:async_hooks` into browser bundles), so 0.14.0 is the first published build of these features and bundles cleanly on the client again.
package/README.md CHANGED
@@ -41,7 +41,8 @@ Full docs: **[uql-orm.dev](https://uql-orm.dev)**
41
41
  | Query filters, multi-tenancy & row-level security | [Filters](https://uql-orm.dev/querying/filters) · [Multi-tenancy](https://uql-orm.dev/multi-tenancy) |
42
42
  | Aggregate queries, grouping, HAVING | [Aggregate](https://uql-orm.dev/querying/aggregate) |
43
43
  | Semantic search & vector similarity | [Semantic Search](https://uql-orm.dev/ai-semantic-search) |
44
- | Streaming, transactions, raw SQL | [Querying](https://uql-orm.dev/querying/querier) |
44
+ | Parallel reads & raw SQL on the pool | [Parallel reads](https://uql-orm.dev/querying/querier#parallel-reads-on-the-pool) · [Raw SQL](https://uql-orm.dev/querying/raw-sql) |
45
+ | Streaming, transactions | [Streaming](https://uql-orm.dev/querying/streaming) · [Transactions](https://uql-orm.dev/querying/transactions) |
45
46
  | REST API from your entities (any framework) | [HTTP](https://uql-orm.dev/extensions-http) |
46
47
  | Typed browser client, NestJS module | [Browser](https://uql-orm.dev/extensions-browser) · [NestJS](https://uql-orm.dev/nestjs) |
47
48
 
@@ -91,7 +92,16 @@ await querier.findMany(User, {
91
92
 
92
93
  25+ comparison operators (`$eq`, `$in`, `$between`, `$like`, `$elemMatch`), logical operators (`$and`, `$or`, `$not`, `$nor`), and type-safe JSON/JSONB dot-notation queries.
93
94
 
94
- > [Querying](https://uql-orm.dev/querying/querier) · [Operators](https://uql-orm.dev/querying/comparison-operators) · [JSON](https://uql-orm.dev/querying/json)
95
+ Independent reads run directly on the pool - each call gets its own connection, so `Promise.all` fans out in parallel:
96
+
97
+ ```ts
98
+ const [users, total] = await Promise.all([
99
+ pool.findMany(User, { $where: { status: 'active' } }),
100
+ pool.count(User, {}),
101
+ ]);
102
+ ```
103
+
104
+ > [Querying](https://uql-orm.dev/querying/querier) · [Parallel reads](https://uql-orm.dev/querying/querier#parallel-reads-on-the-pool) · [Operators](https://uql-orm.dev/querying/comparison-operators) · [JSON](https://uql-orm.dev/querying/json)
95
105
 
96
106
  ## Transactions
97
107
 
@@ -1,9 +1,9 @@
1
1
  import { SQL } from 'bun';
2
2
  import type { AbstractSqlDialect } from '../dialect/abstractSqlDialect.js';
3
- import { AbstractQuerierPool } from '../querier/index.js';
3
+ import { AbstractSqlQuerierPool } from '../querier/index.js';
4
4
  import type { ExtraOptions, SqlDialectName, SqlPoolCompat } from '../type/index.js';
5
5
  import { BunSqlQuerier } from './bunSqlQuerier.js';
6
- export declare class BunSqlQuerierPool extends AbstractQuerierPool<AbstractSqlDialect, BunSqlQuerier> {
6
+ export declare class BunSqlQuerierPool extends AbstractSqlQuerierPool<BunSqlQuerier, AbstractSqlDialect> {
7
7
  readonly config: SQL.Options;
8
8
  readonly sql: SQL;
9
9
  readonly sqlDialectName: SqlDialectName;
@@ -1 +1 @@
1
- {"version":3,"file":"bunSqlQuerierPool.d.ts","sourceRoot":"","sources":["../../src/bunSql/bunSqlQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,GAAG,EAAE,MAAM,KAAK,CAAC;AAG5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAWpF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAYnD,qBAAa,iBAAkB,SAAQ,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,CAAC;IAKzF,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO;IAJ9B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,YACW,MAAM,EAAE,GAAG,CAAC,OAAO,EAC5B,KAAK,CAAC,EAAE,YAAY,EAQrB;IAED;;;OAGG;IACH,IAAI,IAAI,IAAI,aAAa,CAWxB;IAEK,UAAU,2BASf;IAEK,GAAG,kBAER;CACF"}
1
+ {"version":3,"file":"bunSqlQuerierPool.d.ts","sourceRoot":"","sources":["../../src/bunSql/bunSqlQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,GAAG,EAAE,MAAM,KAAK,CAAC;AAG5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAWpF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAYnD,qBAAa,iBAAkB,SAAQ,sBAAsB,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAK5F,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO;IAJ9B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,YACW,MAAM,EAAE,GAAG,CAAC,OAAO,EAC5B,KAAK,CAAC,EAAE,YAAY,EAQrB;IAED;;;OAGG;IACH,IAAI,IAAI,IAAI,aAAa,CAWxB;IAEK,UAAU,2BASf;IAEK,GAAG,kBAER;CACF"}
@@ -2,7 +2,7 @@ import { SQL } from 'bun';
2
2
  import { CockroachDialect } from '../cockroachdb/cockroachDialect.js';
3
3
  import { MariaDialect } from '../maria/mariaDialect.js';
4
4
  import { MySqlDialect } from '../mysql/mysqlDialect.js';
5
- import { AbstractQuerierPool } from '../querier/index.js';
5
+ import { AbstractSqlQuerierPool } from '../querier/index.js';
6
6
  import { getAffectedRows, inferDialectName, isPoolableDialect, normalizeBunOpts, normalizeRows, } from './bunSql.util.js';
7
7
  import { BunSqliteDialect } from './bunSqliteDialect.js';
8
8
  import { BunSqlPostgresDialect } from './bunSqlPostgresDialect.js';
@@ -14,7 +14,7 @@ const DialectMap = {
14
14
  sqlite: BunSqliteDialect,
15
15
  cockroachdb: CockroachDialect,
16
16
  };
17
- export class BunSqlQuerierPool extends AbstractQuerierPool {
17
+ export class BunSqlQuerierPool extends AbstractSqlQuerierPool {
18
18
  config;
19
19
  sql;
20
20
  sqlDialectName;
@@ -1 +1 @@
1
- {"version":3,"file":"bunSqlQuerierPool.js","sourceRoot":"","sources":["../../src/bunSql/bunSqlQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,MAAM,UAAU,GAAyD;IACvE,QAAQ,EAAE,qBAAqB;IAC/B,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,gBAAgB;IACxB,WAAW,EAAE,gBAAgB;CAC9B,CAAC;AAEF,MAAM,OAAO,iBAAkB,SAAQ,mBAAsD;IAKhF,MAAM;IAJR,GAAG,CAAM;IACT,cAAc,CAAiB;IAExC,YACW,MAAmB,EAC5B,KAAoB;QAEpB,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;sBAJ5E,MAAM;QAKf,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;QAElC,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,IAAI,IAAI;QACN,OAAO;YACL,KAAK,EAAE,CAAC,IAAY,EAAE,MAAkB,EAAE,EAAE,CAC1C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAe,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACvF,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC;gBACxB,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC;aAC/B,CAAC,CAAC;YACL,EAAE,EAAE,GAAG,EAAE;gBACP,+BAA+B;YACjC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;YAC7B,gFAAgF;YAChF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC,GAAkB,CAAC;YACjC,CAAC;YACD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC,CAAC;QACF,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"bunSqlQuerierPool.js","sourceRoot":"","sources":["../../src/bunSql/bunSqlQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,MAAM,UAAU,GAAyD;IACvE,QAAQ,EAAE,qBAAqB;IAC/B,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,gBAAgB;IACxB,WAAW,EAAE,gBAAgB;CAC9B,CAAC;AAEF,MAAM,OAAO,iBAAkB,SAAQ,sBAAyD;IAKnF,MAAM;IAJR,GAAG,CAAM;IACT,cAAc,CAAiB;IAExC,YACW,MAAmB,EAC5B,KAAoB;QAEpB,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;sBAJ5E,MAAM;QAKf,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;QAElC,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,IAAI,IAAI;QACN,OAAO;YACL,KAAK,EAAE,CAAC,IAAY,EAAE,MAAkB,EAAE,EAAE,CAC1C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAe,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACvF,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC;gBACxB,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC;aAC/B,CAAC,CAAC;YACL,EAAE,EAAE,GAAG,EAAE;gBACP,+BAA+B;YACjC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;YAC7B,gFAAgF;YAChF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC,GAAkB,CAAC;YACjC,CAAC;YACD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC,CAAC;QACF,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF"}
@@ -6,7 +6,7 @@ import { CrdbQuerier } from './crdbQuerier.js';
6
6
  /**
7
7
  * QuerierPool for CockroachDB using the `pg` driver Pool.
8
8
  */
9
- export declare class CrdbQuerierPool extends AbstractPgQuerierPool<PoolClient, CockroachDialect, CrdbQuerier> {
9
+ export declare class CrdbQuerierPool extends AbstractPgQuerierPool<PoolClient, CrdbQuerier, CockroachDialect> {
10
10
  readonly pool: Pool;
11
11
  constructor(opts: PoolConfig, extra?: ExtraOptions);
12
12
  getQuerier(): Promise<CrdbQuerier>;
@@ -1 +1 @@
1
- {"version":3,"file":"crdbQuerierPool.d.ts","sourceRoot":"","sources":["../../src/cockroachdb/crdbQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,IAAI,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,qBAAqB,CAAC,UAAU,EAAE,gBAAgB,EAAE,WAAW,CAAC;IACnG,SAAiB,IAAI,EAAE,IAAI,CAAC;IAE5B,YAAY,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,YAAY,EAMjD;IAEK,UAAU,yBAEf;CACF"}
1
+ {"version":3,"file":"crdbQuerierPool.d.ts","sourceRoot":"","sources":["../../src/cockroachdb/crdbQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,IAAI,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,qBAAqB,CAAC,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC;IACnG,SAAiB,IAAI,EAAE,IAAI,CAAC;IAE5B,YAAY,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,YAAY,EAMjD;IAEK,UAAU,yBAEf;CACF"}
@@ -4,4 +4,6 @@ export * from './securityError.js';
4
4
  export declare function withContext<T>(context: UqlContext, callback: () => T): T;
5
5
  /** The ambient context set by the nearest enclosing {@link withContext}, or `undefined`. */
6
6
  export declare function getContext(): UqlContext | undefined;
7
+ /** Captures the current context and returns a runner that re-establishes it later. See `context.ts`. */
8
+ export declare function captureContext(): <T>(callback: () => T) => T;
7
9
  //# sourceMappingURL=context.browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.browser.d.ts","sourceRoot":"","sources":["../../src/context/context.browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,cAAc,oBAAoB,CAAC;AAcnC,oGAAoG;AACpG,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAQxE;AAED,4FAA4F;AAC5F,wBAAgB,UAAU,IAAI,UAAU,GAAG,SAAS,CAEnD"}
1
+ {"version":3,"file":"context.browser.d.ts","sourceRoot":"","sources":["../../src/context/context.browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,cAAc,oBAAoB,CAAC;AAcnC,oGAAoG;AACpG,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAQxE;AAED,4FAA4F;AAC5F,wBAAgB,UAAU,IAAI,UAAU,GAAG,SAAS,CAEnD;AAED,wGAAwG;AACxG,wBAAgB,cAAc,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAG5D"}
@@ -25,4 +25,9 @@ export function withContext(context, callback) {
25
25
  export function getContext() {
26
26
  return current;
27
27
  }
28
+ /** Captures the current context and returns a runner that re-establishes it later. See `context.ts`. */
29
+ export function captureContext() {
30
+ const context = getContext();
31
+ return (callback) => (context ? withContext(context, callback) : callback());
32
+ }
28
33
  //# sourceMappingURL=context.browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.browser.js","sourceRoot":"","sources":["../../src/context/context.browser.ts"],"names":[],"mappings":"AAEA,cAAc,oBAAoB,CAAC;AAEnC;;;;;;;;;GASG;AACH,IAAI,OAA+B,CAAC;AAEpC,oGAAoG;AACpG,MAAM,UAAU,WAAW,CAAI,OAAmB,EAAE,QAAiB;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC;IACzB,OAAO,GAAG,OAAO,CAAC;IAClB,IAAI,CAAC;QACH,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,OAAO,GAAG,QAAQ,CAAC;IACrB,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"context.browser.js","sourceRoot":"","sources":["../../src/context/context.browser.ts"],"names":[],"mappings":"AAEA,cAAc,oBAAoB,CAAC;AAEnC;;;;;;;;;GASG;AACH,IAAI,OAA+B,CAAC;AAEpC,oGAAoG;AACpG,MAAM,UAAU,WAAW,CAAI,OAAmB,EAAE,QAAiB;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC;IACzB,OAAO,GAAG,OAAO,CAAC;IAClB,IAAI,CAAC;QACH,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,OAAO,GAAG,QAAQ,CAAC;IACrB,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/E,CAAC"}
@@ -12,4 +12,18 @@ export * from './securityError.js';
12
12
  export declare function withContext<T>(context: UqlContext, callback: () => T): T;
13
13
  /** The ambient context set by the nearest enclosing {@link withContext}, or `undefined`. */
14
14
  export declare function getContext(): UqlContext | undefined;
15
+ /**
16
+ * Captures the current ambient context and returns a runner that re-establishes it later. Use it to
17
+ * carry the context across event boundaries where `AsyncLocalStorage` does not propagate - emitter
18
+ * callbacks, timers, and queued work run on their own async ticks, so a context set by
19
+ * {@link withContext} is not visible inside them unless replayed:
20
+ *
21
+ * ```ts
22
+ * const scoped = captureContext(); // e.g. inside a scoped request or job
23
+ * emitter.on('chunk', (chunk) => scoped(() => saveChunk(chunk))); // runs with that context
24
+ * ```
25
+ *
26
+ * When no context is active at capture time, the runner just invokes the callback.
27
+ */
28
+ export declare function captureContext(): <T>(callback: () => T) => T;
15
29
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,cAAc,oBAAoB,CAAC;AAKnC;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAExE;AAED,4FAA4F;AAC5F,wBAAgB,UAAU,IAAI,UAAU,GAAG,SAAS,CAEnD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,cAAc,oBAAoB,CAAC;AAKnC;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAExE;AAED,4FAA4F;AAC5F,wBAAgB,UAAU,IAAI,UAAU,GAAG,SAAS,CAEnD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAG5D"}
@@ -18,4 +18,21 @@ export function withContext(context, callback) {
18
18
  export function getContext() {
19
19
  return contextStorage.getStore();
20
20
  }
21
+ /**
22
+ * Captures the current ambient context and returns a runner that re-establishes it later. Use it to
23
+ * carry the context across event boundaries where `AsyncLocalStorage` does not propagate - emitter
24
+ * callbacks, timers, and queued work run on their own async ticks, so a context set by
25
+ * {@link withContext} is not visible inside them unless replayed:
26
+ *
27
+ * ```ts
28
+ * const scoped = captureContext(); // e.g. inside a scoped request or job
29
+ * emitter.on('chunk', (chunk) => scoped(() => saveChunk(chunk))); // runs with that context
30
+ * ```
31
+ *
32
+ * When no context is active at capture time, the runner just invokes the callback.
33
+ */
34
+ export function captureContext() {
35
+ const context = getContext();
36
+ return (callback) => (context ? withContext(context, callback) : callback());
37
+ }
21
38
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,cAAc,oBAAoB,CAAC;AAEnC,gGAAgG;AAChG,MAAM,cAAc,GAAG,IAAI,iBAAiB,EAAc,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAI,OAAmB,EAAE,QAAiB;IACnE,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,UAAU;IACxB,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,cAAc,oBAAoB,CAAC;AAEnC,gGAAgG;AAChG,MAAM,cAAc,GAAG,IAAI,iBAAiB,EAAc,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAI,OAAmB,EAAE,QAAiB;IACnE,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,UAAU;IACxB,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/E,CAAC"}
@@ -1,8 +1,8 @@
1
- import { AbstractQuerierPool } from '../querier/index.js';
1
+ import { AbstractSqlQuerierPool } from '../querier/index.js';
2
2
  import type { ExtraOptions } from '../type/index.js';
3
3
  import { type D1Database, D1Querier } from './d1Querier.js';
4
4
  import { D1SqliteDialect } from './d1SqliteDialect.js';
5
- export declare class D1QuerierPool extends AbstractQuerierPool<D1SqliteDialect, D1Querier> {
5
+ export declare class D1QuerierPool extends AbstractSqlQuerierPool<D1Querier, D1SqliteDialect> {
6
6
  readonly db: D1Database;
7
7
  constructor(db: D1Database, extra?: ExtraOptions);
8
8
  getQuerier(): Promise<D1Querier>;
@@ -1 +1 @@
1
- {"version":3,"file":"d1QuerierPool.d.ts","sourceRoot":"","sources":["../../src/d1/d1QuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,qBAAa,aAAc,SAAQ,mBAAmB,CAAC,eAAe,EAAE,SAAS,CAAC;IAChF,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IAExB,YAAY,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,YAAY,EAG/C;IAEK,UAAU,uBAEf;IAEK,GAAG,kBAER;CACF"}
1
+ {"version":3,"file":"d1QuerierPool.d.ts","sourceRoot":"","sources":["../../src/d1/d1QuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,qBAAa,aAAc,SAAQ,sBAAsB,CAAC,SAAS,EAAE,eAAe,CAAC;IACnF,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IAExB,YAAY,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,YAAY,EAG/C;IAEK,UAAU,uBAEf;IAEK,GAAG,kBAER;CACF"}
@@ -1,7 +1,7 @@
1
- import { AbstractQuerierPool } from '../querier/index.js';
1
+ import { AbstractSqlQuerierPool } from '../querier/index.js';
2
2
  import { D1Querier } from './d1Querier.js';
3
3
  import { D1SqliteDialect } from './d1SqliteDialect.js';
4
- export class D1QuerierPool extends AbstractQuerierPool {
4
+ export class D1QuerierPool extends AbstractSqlQuerierPool {
5
5
  db;
6
6
  constructor(db, extra) {
7
7
  super(new D1SqliteDialect({ namingStrategy: extra?.namingStrategy }), extra);
@@ -1 +1 @@
1
- {"version":3,"file":"d1QuerierPool.js","sourceRoot":"","sources":["../../src/d1/d1QuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAmB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,aAAc,SAAQ,mBAA+C;IACvE,EAAE,CAAa;IAExB,YAAY,EAAc,EAAE,KAAoB;QAC9C,KAAK,CAAC,IAAI,eAAe,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7E,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,GAAG;QACP,wBAAwB;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"d1QuerierPool.js","sourceRoot":"","sources":["../../src/d1/d1QuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAmB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,aAAc,SAAQ,sBAAkD;IAC1E,EAAE,CAAa;IAExB,YAAY,EAAc,EAAE,KAAoB;QAC9C,KAAK,CAAC,IAAI,eAAe,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7E,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,GAAG;QACP,wBAAwB;IAC1B,CAAC;CACF"}
@@ -1,11 +1,11 @@
1
1
  import { type Client, type Config } from '@libsql/client';
2
- import { AbstractQuerierPool } from '../querier/index.js';
2
+ import { AbstractSqlQuerierPool } from '../querier/index.js';
3
3
  import type { ExtraOptions } from '../type/index.js';
4
4
  import { LibsqlDialect } from './libsqlDialect.js';
5
5
  import { LibsqlQuerier } from './libsqlQuerier.js';
6
6
  /** Embedded replica: local `file:` DB + `syncUrl` remote - DDL should run on the remote (sqld). */
7
7
  export declare function libsqlUseRemoteForMigrations(config: Pick<Config, 'url' | 'syncUrl'>): boolean;
8
- export declare class LibsqlQuerierPool extends AbstractQuerierPool<LibsqlDialect, LibsqlQuerier> {
8
+ export declare class LibsqlQuerierPool extends AbstractSqlQuerierPool<LibsqlQuerier, LibsqlDialect> {
9
9
  readonly client: Client;
10
10
  private readonly libsqlConfig;
11
11
  constructor(conf: Config, extra?: ExtraOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"libsqlQuerierPool.d.ts","sourceRoot":"","sources":["../../src/libsql/libsqlQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAgB,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,mGAAmG;AACnG,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,SAAS,CAAC,GAAG,OAAO,CAE7F;AAQD,qBAAa,iBAAkB,SAAQ,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC;IACtF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,YAAY,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,EAI7C;IAEK,UAAU,2BAEf;IAED;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC,CAMlD;IAEK,GAAG,kBAER;CACF"}
1
+ {"version":3,"file":"libsqlQuerierPool.d.ts","sourceRoot":"","sources":["../../src/libsql/libsqlQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAgB,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,mGAAmG;AACnG,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,SAAS,CAAC,GAAG,OAAO,CAE7F;AAQD,qBAAa,iBAAkB,SAAQ,sBAAsB,CAAC,aAAa,EAAE,aAAa,CAAC;IACzF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,YAAY,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,EAI7C;IAEK,UAAU,2BAEf;IAED;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC,CAMlD;IAEK,GAAG,kBAER;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { createClient } from '@libsql/client';
2
- import { AbstractQuerierPool } from '../querier/index.js';
2
+ import { AbstractSqlQuerierPool } from '../querier/index.js';
3
3
  import { LibsqlDialect } from './libsqlDialect.js';
4
4
  import { LibsqlQuerier } from './libsqlQuerier.js';
5
5
  /** Embedded replica: local `file:` DB + `syncUrl` remote - DDL should run on the remote (sqld). */
@@ -11,7 +11,7 @@ function remoteMigrationClientConfig(config) {
11
11
  const { syncUrl, url: _localUrl, ...rest } = config;
12
12
  return { ...rest, url: syncUrl };
13
13
  }
14
- export class LibsqlQuerierPool extends AbstractQuerierPool {
14
+ export class LibsqlQuerierPool extends AbstractSqlQuerierPool {
15
15
  client;
16
16
  libsqlConfig;
17
17
  constructor(conf, extra) {
@@ -1 +1 @@
1
- {"version":3,"file":"libsqlQuerierPool.js","sourceRoot":"","sources":["../../src/libsql/libsqlQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,mGAAmG;AACnG,MAAM,UAAU,4BAA4B,CAAC,MAAuC;IAClF,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,uHAAuH;AACvH,SAAS,2BAA2B,CAAC,MAAc;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACpD,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,OAAQ,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,OAAO,iBAAkB,SAAQ,mBAAiD;IAC7E,MAAM,CAAS;IACP,YAAY,CAAS;IAEtC,YAAY,IAAY,EAAE,KAAoB;QAC5C,KAAK,CAAC,IAAI,aAAa,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB;QACvB,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3B,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5E,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"libsqlQuerierPool.js","sourceRoot":"","sources":["../../src/libsql/libsqlQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,mGAAmG;AACnG,MAAM,UAAU,4BAA4B,CAAC,MAAuC;IAClF,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,uHAAuH;AACvH,SAAS,2BAA2B,CAAC,MAAc;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACpD,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,OAAQ,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,OAAO,iBAAkB,SAAQ,sBAAoD;IAChF,MAAM,CAAS;IACP,YAAY,CAAS;IAEtC,YAAY,IAAY,EAAE,KAAoB;QAC5C,KAAK,CAAC,IAAI,aAAa,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB;QACvB,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3B,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5E,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF"}
@@ -1,10 +1,10 @@
1
1
  import { createPool, type Pool } from 'mariadb';
2
- import { AbstractQuerierPool } from '../querier/index.js';
2
+ import { AbstractSqlQuerierPool } from '../querier/index.js';
3
3
  import type { ExtraOptions } from '../type/index.js';
4
4
  import { MariaDialect } from './mariaDialect.js';
5
5
  import { MariadbQuerier } from './mariadbQuerier.js';
6
6
  type PoolConfig = Exclude<Parameters<typeof createPool>[0], string>;
7
- export declare class MariadbQuerierPool extends AbstractQuerierPool<MariaDialect, MariadbQuerier> {
7
+ export declare class MariadbQuerierPool extends AbstractSqlQuerierPool<MariadbQuerier, MariaDialect> {
8
8
  readonly pool: Pool;
9
9
  constructor(opts: PoolConfig, extra?: ExtraOptions);
10
10
  getQuerier(): Promise<MariadbQuerier>;
@@ -1 +1 @@
1
- {"version":3,"file":"mariadbQuerierPool.d.ts","sourceRoot":"","sources":["../../src/maria/mariadbQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAEpE,qBAAa,kBAAmB,SAAQ,mBAAmB,CAAC,YAAY,EAAE,cAAc,CAAC;IACvF,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAEpB,YAAY,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,YAAY,EAajD;IAEK,UAAU,4BAEf;IAEK,GAAG,kBAER;CACF"}
1
+ {"version":3,"file":"mariadbQuerierPool.d.ts","sourceRoot":"","sources":["../../src/maria/mariadbQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAEpE,qBAAa,kBAAmB,SAAQ,sBAAsB,CAAC,cAAc,EAAE,YAAY,CAAC;IAC1F,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAEpB,YAAY,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,YAAY,EAajD;IAEK,UAAU,4BAEf;IAEK,GAAG,kBAER;CACF"}
@@ -1,9 +1,9 @@
1
1
  import { createPool } from 'mariadb';
2
- import { AbstractQuerierPool } from '../querier/index.js';
2
+ import { AbstractSqlQuerierPool } from '../querier/index.js';
3
3
  import { attachPoolErrorHandler } from '../util/index.js';
4
4
  import { MariaDialect } from './mariaDialect.js';
5
5
  import { MariadbQuerier } from './mariadbQuerier.js';
6
- export class MariadbQuerierPool extends AbstractQuerierPool {
6
+ export class MariadbQuerierPool extends AbstractSqlQuerierPool {
7
7
  pool;
8
8
  constructor(opts, extra) {
9
9
  super(new MariaDialect({ namingStrategy: extra?.namingStrategy }), extra);
@@ -1 +1 @@
1
- {"version":3,"file":"mariadbQuerierPool.js","sourceRoot":"","sources":["../../src/maria/mariadbQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAA0B,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,MAAM,OAAO,kBAAmB,SAAQ,mBAAiD;IAC9E,IAAI,CAAO;IAEpB,YAAY,IAAgB,EAAE,KAAoB;QAChD,KAAK,CAAC,IAAI,YAAY,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7B,uEAAuE;QACvE,sEAAsE;QACtE,0EAA0E;QAC1E,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,sBAAsB,CACpB,IAAI,CAAC,IAAoC,EACzC,mDAAmD,CACpD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"mariadbQuerierPool.js","sourceRoot":"","sources":["../../src/maria/mariadbQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAA0B,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,MAAM,OAAO,kBAAmB,SAAQ,sBAAoD;IACjF,IAAI,CAAO;IAEpB,YAAY,IAAgB,EAAE,KAAoB;QAChD,KAAK,CAAC,IAAI,YAAY,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7B,uEAAuE;QACvE,sEAAsE;QACtE,0EAA0E;QAC1E,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,sBAAsB,CACpB,IAAI,CAAC,IAAoC,EACzC,mDAAmD,CACpD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;CACF"}
@@ -3,7 +3,7 @@ import { AbstractQuerierPool } from '../querier/index.js';
3
3
  import type { ExtraOptions } from '../type/index.js';
4
4
  import { MongodbNativeDialect } from './mongodbNativeDialect.js';
5
5
  import { MongodbQuerier } from './mongodbQuerier.js';
6
- export declare class MongodbQuerierPool extends AbstractQuerierPool<MongodbNativeDialect, MongodbQuerier> {
6
+ export declare class MongodbQuerierPool extends AbstractQuerierPool<MongodbQuerier, MongodbNativeDialect> {
7
7
  private readonly client;
8
8
  constructor(uri: string, opts?: MongoClientOptions, extra?: ExtraOptions);
9
9
  getQuerier(): Promise<MongodbQuerier>;
@@ -1 +1 @@
1
- {"version":3,"file":"mongodbQuerierPool.d.ts","sourceRoot":"","sources":["../../src/mongo/mongodbQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,qBAAa,kBAAmB,SAAQ,mBAAmB,CAAC,oBAAoB,EAAE,cAAc,CAAC;IAC/F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IAErC,YAAY,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,EAAE,YAAY,EAGvE;IAEK,UAAU,4BAGf;IAEK,GAAG,kBAER;CACF"}
1
+ {"version":3,"file":"mongodbQuerierPool.d.ts","sourceRoot":"","sources":["../../src/mongo/mongodbQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,qBAAa,kBAAmB,SAAQ,mBAAmB,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC/F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IAErC,YAAY,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,EAAE,YAAY,EAGvE;IAEK,UAAU,4BAGf;IAEK,GAAG,kBAER;CACF"}
@@ -1,9 +1,9 @@
1
1
  import { type Pool, type PoolOptions } from 'mysql2/promise';
2
- import { AbstractQuerierPool } from '../querier/index.js';
2
+ import { AbstractSqlQuerierPool } from '../querier/index.js';
3
3
  import type { ExtraOptions } from '../type/index.js';
4
4
  import { MySql2Dialect } from './mysql2Dialect.js';
5
5
  import { MySql2Querier } from './mysql2Querier.js';
6
- export declare class MySql2QuerierPool extends AbstractQuerierPool<MySql2Dialect, MySql2Querier> {
6
+ export declare class MySql2QuerierPool extends AbstractSqlQuerierPool<MySql2Querier, MySql2Dialect> {
7
7
  readonly pool: Pool;
8
8
  constructor(opts: PoolOptions, extra?: ExtraOptions);
9
9
  getQuerier(): Promise<MySql2Querier>;
@@ -1 +1 @@
1
- {"version":3,"file":"mysql2QuerierPool.d.ts","sourceRoot":"","sources":["../../src/mysql/mysql2QuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,qBAAa,iBAAkB,SAAQ,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC;IACtF,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAEpB,YAAY,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,YAAY,EAGlD;IAEK,UAAU,2BAEf;IAEK,GAAG,kBAER;CACF"}
1
+ {"version":3,"file":"mysql2QuerierPool.d.ts","sourceRoot":"","sources":["../../src/mysql/mysql2QuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,qBAAa,iBAAkB,SAAQ,sBAAsB,CAAC,aAAa,EAAE,aAAa,CAAC;IACzF,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAEpB,YAAY,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,YAAY,EAGlD;IAEK,UAAU,2BAEf;IAEK,GAAG,kBAER;CACF"}
@@ -1,8 +1,8 @@
1
1
  import { createPool } from 'mysql2/promise';
2
- import { AbstractQuerierPool } from '../querier/index.js';
2
+ import { AbstractSqlQuerierPool } from '../querier/index.js';
3
3
  import { MySql2Dialect } from './mysql2Dialect.js';
4
4
  import { MySql2Querier } from './mysql2Querier.js';
5
- export class MySql2QuerierPool extends AbstractQuerierPool {
5
+ export class MySql2QuerierPool extends AbstractSqlQuerierPool {
6
6
  pool;
7
7
  constructor(opts, extra) {
8
8
  super(new MySql2Dialect({ namingStrategy: extra?.namingStrategy }), extra);
@@ -1 +1 @@
1
- {"version":3,"file":"mysql2QuerierPool.js","sourceRoot":"","sources":["../../src/mysql/mysql2QuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA+B,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,iBAAkB,SAAQ,mBAAiD;IAC7E,IAAI,CAAO;IAEpB,YAAY,IAAiB,EAAE,KAAoB;QACjD,KAAK,CAAC,IAAI,aAAa,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"mysql2QuerierPool.js","sourceRoot":"","sources":["../../src/mysql/mysql2QuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA+B,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,iBAAkB,SAAQ,sBAAoD;IAChF,IAAI,CAAO;IAEpB,YAAY,IAAiB,EAAE,KAAoB;QACjD,KAAK,CAAC,IAAI,aAAa,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;CACF"}
@@ -3,7 +3,7 @@ import { AbstractPgQuerierPool } from '../postgres/abstractPgQuerierPool.js';
3
3
  import type { ExtraOptions } from '../type/index.js';
4
4
  import { NeonDialect } from './neonDialect.js';
5
5
  import { NeonQuerier } from './neonQuerier.js';
6
- export declare class NeonQuerierPool extends AbstractPgQuerierPool<PoolClient, NeonDialect, NeonQuerier> {
6
+ export declare class NeonQuerierPool extends AbstractPgQuerierPool<PoolClient, NeonQuerier, NeonDialect> {
7
7
  readonly pool: Pool;
8
8
  constructor(opts: PoolConfig, extra?: ExtraOptions);
9
9
  getQuerier(): Promise<NeonQuerier>;
@@ -1,5 +1,5 @@
1
1
  import type { AbstractSqlDialect } from '../dialect/index.js';
2
- import { AbstractQuerierPool } from '../querier/index.js';
2
+ import { AbstractSqlQuerierPool } from '../querier/index.js';
3
3
  import type { ExtraOptions } from '../type/index.js';
4
4
  import { type ErrorEmittingPool } from '../util/index.js';
5
5
  import type { AbstractPgQuerier, PgAnyClient } from './abstractPgQuerier.js';
@@ -14,7 +14,7 @@ export interface PgAnyPool<C extends PgAnyClient> extends ErrorEmittingPool {
14
14
  * pool subclass can't be added without it - the constructor takes the already
15
15
  * constructed pool and attaches the handler unconditionally.
16
16
  */
17
- export declare abstract class AbstractPgQuerierPool<C extends PgAnyClient, D extends AbstractSqlDialect, Q extends AbstractPgQuerier<C, D>> extends AbstractQuerierPool<D, Q> {
17
+ export declare abstract class AbstractPgQuerierPool<C extends PgAnyClient, Q extends AbstractPgQuerier<C, D>, D extends AbstractSqlDialect> extends AbstractSqlQuerierPool<Q, D> {
18
18
  readonly pool: PgAnyPool<C>;
19
19
  constructor(dialect: D, pool: PgAnyPool<C>, extra?: ExtraOptions);
20
20
  end(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"abstractPgQuerierPool.d.ts","sourceRoot":"","sources":["../../src/postgres/abstractPgQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE7E,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,iBAAiB;IACzE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,8BAAsB,qBAAqB,CACzC,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,kBAAkB,EAC5B,CAAC,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CACjC,SAAQ,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;IAG/B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAF7B,YACE,OAAO,EAAE,CAAC,EACD,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAC3B,KAAK,CAAC,EAAE,YAAY,EAIrB;IAEK,GAAG,kBAER;CACF"}
1
+ {"version":3,"file":"abstractPgQuerierPool.d.ts","sourceRoot":"","sources":["../../src/postgres/abstractPgQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE7E,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,iBAAiB;IACzE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,8BAAsB,qBAAqB,CACzC,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,EACjC,CAAC,SAAS,kBAAkB,CAC5B,SAAQ,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC;IAGlC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAF7B,YACE,OAAO,EAAE,CAAC,EACD,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAC3B,KAAK,CAAC,EAAE,YAAY,EAIrB;IAEK,GAAG,kBAER;CACF"}
@@ -1,4 +1,4 @@
1
- import { AbstractQuerierPool } from '../querier/index.js';
1
+ import { AbstractSqlQuerierPool } from '../querier/index.js';
2
2
  import { attachPoolErrorHandler } from '../util/index.js';
3
3
  /**
4
4
  * Shared base class for Postgres-compatible querier pools.
@@ -7,7 +7,7 @@ import { attachPoolErrorHandler } from '../util/index.js';
7
7
  * pool subclass can't be added without it - the constructor takes the already
8
8
  * constructed pool and attaches the handler unconditionally.
9
9
  */
10
- export class AbstractPgQuerierPool extends AbstractQuerierPool {
10
+ export class AbstractPgQuerierPool extends AbstractSqlQuerierPool {
11
11
  pool;
12
12
  constructor(dialect, pool, extra) {
13
13
  super(dialect, extra);
@@ -1 +1 @@
1
- {"version":3,"file":"abstractPgQuerierPool.js","sourceRoot":"","sources":["../../src/postgres/abstractPgQuerierPool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAA0B,MAAM,kBAAkB,CAAC;AAQlF;;;;;;GAMG;AACH,MAAM,OAAgB,qBAIpB,SAAQ,mBAAyB;IAGtB,IAAI;IAFf,YACE,OAAU,EACD,IAAkB,EAC3B,KAAoB;QAEpB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAHb,IAAI;QAIb,sBAAsB,CAAC,IAAI,EAAE,gDAAgD,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"abstractPgQuerierPool.js","sourceRoot":"","sources":["../../src/postgres/abstractPgQuerierPool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAA0B,MAAM,kBAAkB,CAAC;AAQlF;;;;;;GAMG;AACH,MAAM,OAAgB,qBAIpB,SAAQ,sBAA4B;IAGzB,IAAI;IAFf,YACE,OAAU,EACD,IAAkB,EAC3B,KAAoB;QAEpB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAHb,IAAI;QAIb,sBAAsB,CAAC,IAAI,EAAE,gDAAgD,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;CACF"}
@@ -3,7 +3,7 @@ import type { ExtraOptions } from '../type/index.js';
3
3
  import { AbstractPgQuerierPool } from './abstractPgQuerierPool.js';
4
4
  import { PgDialect } from './pgDialect.js';
5
5
  import { PgQuerier } from './pgQuerier.js';
6
- export declare class PgQuerierPool extends AbstractPgQuerierPool<PoolClient, PgDialect, PgQuerier> {
6
+ export declare class PgQuerierPool extends AbstractPgQuerierPool<PoolClient, PgQuerier, PgDialect> {
7
7
  readonly pool: Pool;
8
8
  constructor(opts: PoolConfig, extra?: ExtraOptions);
9
9
  getQuerier(): Promise<PgQuerier>;
@@ -1,9 +1,9 @@
1
1
  import type { AbstractDialect } from '../dialect/index.js';
2
- import type { ExtraOptions, Querier, QuerierPool, TransactionOptions } from '../type/index.js';
2
+ import type { ExtraOptions, IdValue, PoolRunOptions, Querier, QuerierPool, Query, QueryAggregate, QueryAggregateResult, QueryOne, QueryOptions, QuerySearch, TransactionOptions, Type } from '../type/index.js';
3
3
  /**
4
4
  * Base pool: dialect id and behavior come only from the `dialect` instance (see {@link QuerierPool}).
5
5
  */
6
- export declare abstract class AbstractQuerierPool<D extends AbstractDialect, Q extends Querier> implements QuerierPool<Q, D> {
6
+ export declare abstract class AbstractQuerierPool<Q extends Querier, D extends AbstractDialect> implements QuerierPool<Q, D> {
7
7
  readonly dialect: D;
8
8
  readonly extra?: ExtraOptions | undefined;
9
9
  constructor(dialect: D, extra?: ExtraOptions | undefined);
@@ -14,11 +14,19 @@ export declare abstract class AbstractQuerierPool<D extends AbstractDialect, Q e
14
14
  /**
15
15
  * get a querier from the pool and run the given callback inside a transaction.
16
16
  */
17
- transaction<T>(callback: (querier: Q) => Promise<T>, opts?: TransactionOptions): Promise<T>;
17
+ transaction<T>(callback: (querier: Q) => Promise<T>, opts?: TransactionOptions & PoolRunOptions): Promise<T>;
18
18
  /**
19
19
  * get a querier from the pool, run the given callback, and release the querier.
20
20
  */
21
- withQuerier<T>(callback: (querier: Q) => Promise<T>): Promise<T>;
21
+ withQuerier<T>(callback: (querier: Q) => Promise<T>, opts?: PoolRunOptions): Promise<T>;
22
+ /** Run `fn` under `context` (an enclosing {@link withContext}) when provided, else run it as-is. */
23
+ private runScoped;
24
+ findOneById<E extends object>(entity: Type<E>, id: IdValue<E>, q?: QueryOne<E>, opts?: QueryOptions): Promise<E | undefined>;
25
+ findOne<E extends object>(entity: Type<E>, q: QueryOne<E>, opts?: QueryOptions): Promise<E | undefined>;
26
+ findMany<E extends object>(entity: Type<E>, q: Query<E>, opts?: QueryOptions): Promise<E[]>;
27
+ findManyAndCount<E extends object>(entity: Type<E>, q: Query<E>, opts?: QueryOptions): Promise<[E[], number]>;
28
+ count<E extends object>(entity: Type<E>, q: QuerySearch<E>, opts?: QueryOptions): Promise<number>;
29
+ aggregate<E extends object, const A extends QueryAggregate<E>>(entity: Type<E>, q: A, opts?: QueryOptions): Promise<QueryAggregateResult<E, A['$group']>[]>;
22
30
  /**
23
31
  * end the pool.
24
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"abstractQuerierPool.d.ts","sourceRoot":"","sources":["../../src/querier/abstractQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE/F;;GAEG;AACH,8BAAsB,mBAAmB,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,OAAO,CAAE,YAAW,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IAEhH,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY;IAF/B,YACW,OAAO,EAAE,CAAC,EACV,KAAK,CAAC,EAAE,YAAY,YAAA,EAC3B;IAEJ;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IAElC;;OAEG;IACG,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAGhG;IAED;;OAEG;IACG,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOrE;IAED;;OAEG;IACH,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B"}
1
+ {"version":3,"file":"abstractQuerierPool.d.ts","sourceRoot":"","sources":["../../src/querier/abstractQuerierPool.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { withContext } from '../context/context.js';
1
2
  /**
2
3
  * Base pool: dialect id and behavior come only from the `dialect` instance (see {@link QuerierPool}).
3
4
  */
@@ -13,19 +14,41 @@ export class AbstractQuerierPool {
13
14
  */
14
15
  async transaction(callback, opts) {
15
16
  const querier = await this.getQuerier();
16
- return querier.transaction(() => callback(querier), opts);
17
+ return this.runScoped(opts?.context, () => querier.transaction(() => callback(querier), opts));
17
18
  }
18
19
  /**
19
20
  * get a querier from the pool, run the given callback, and release the querier.
20
21
  */
21
- async withQuerier(callback) {
22
+ async withQuerier(callback, opts) {
22
23
  const querier = await this.getQuerier();
23
24
  try {
24
- return await callback(querier);
25
+ return await this.runScoped(opts?.context, () => callback(querier));
25
26
  }
26
27
  finally {
27
28
  await querier.release();
28
29
  }
29
30
  }
31
+ /** Run `fn` under `context` (an enclosing {@link withContext}) when provided, else run it as-is. */
32
+ runScoped(context, fn) {
33
+ return context ? withContext(context, fn) : fn();
34
+ }
35
+ findOneById(entity, id, q, opts) {
36
+ return this.withQuerier((querier) => querier.findOneById(entity, id, q, opts));
37
+ }
38
+ findOne(entity, q, opts) {
39
+ return this.withQuerier((querier) => querier.findOne(entity, q, opts));
40
+ }
41
+ findMany(entity, q, opts) {
42
+ return this.withQuerier((querier) => querier.findMany(entity, q, opts));
43
+ }
44
+ findManyAndCount(entity, q, opts) {
45
+ return this.withQuerier((querier) => querier.findManyAndCount(entity, q, opts));
46
+ }
47
+ count(entity, q, opts) {
48
+ return this.withQuerier((querier) => querier.count(entity, q, opts));
49
+ }
50
+ aggregate(entity, q, opts) {
51
+ return this.withQuerier((querier) => querier.aggregate(entity, q, opts));
52
+ }
30
53
  }
31
54
  //# sourceMappingURL=abstractQuerierPool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"abstractQuerierPool.js","sourceRoot":"","sources":["../../src/querier/abstractQuerierPool.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAgB,mBAAmB;IAE5B,OAAO;IACP,KAAK;IAFhB,YACW,OAAU,EACV,KAAoB;uBADpB,OAAO;qBACP,KAAK;IACb,CAAC;IAOJ;;OAEG;IACH,KAAK,CAAC,WAAW,CAAI,QAAoC,EAAE,IAAyB;QAClF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAI,QAAoC;QACvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;CAMF"}
1
+ {"version":3,"file":"abstractQuerierPool.js","sourceRoot":"","sources":["../../src/querier/abstractQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAmBpD;;GAEG;AACH,MAAM,OAAgB,mBAAmB;IAE5B,OAAO;IACP,KAAK;IAFhB,YACW,OAAU,EACV,KAAoB;uBADpB,OAAO;qBACP,KAAK;IACb,CAAC;IAOJ;;OAEG;IACH,KAAK,CAAC,WAAW,CAAI,QAAoC,EAAE,IAA0C;QACnG,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAI,QAAoC,EAAE,IAAqB;QAC9E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACtE,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,oGAAoG;IAC5F,SAAS,CAAI,OAA+B,EAAE,EAAoB;QACxE,OAAO,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACnD,CAAC;IAED,WAAW,CACT,MAAe,EACf,EAAc,EACd,CAAe,EACf,IAAmB;QAEnB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,CAAmB,MAAe,EAAE,CAAc,EAAE,IAAmB;QAC5E,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,QAAQ,CAAmB,MAAe,EAAE,CAAW,EAAE,IAAmB;QAC1E,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,gBAAgB,CAAmB,MAAe,EAAE,CAAW,EAAE,IAAmB;QAClF,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAmB,MAAe,EAAE,CAAiB,EAAE,IAAmB;QAC7E,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,SAAS,CACP,MAAe,EACf,CAAI,EACJ,IAAmB;QAEnB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;CAMF"}
@@ -0,0 +1,12 @@
1
+ import type { AbstractSqlDialect } from '../dialect/index.js';
2
+ import type { QueryUpdateResult, SqlQuerier, SqlQuerierPool } from '../type/index.js';
3
+ import { AbstractQuerierPool } from './abstractQuerierPool.js';
4
+ /**
5
+ * Base pool for SQL dialects; implements the raw-SQL surface of {@link SqlQuerierPool}, which owns
6
+ * the connection-per-call semantics.
7
+ */
8
+ export declare abstract class AbstractSqlQuerierPool<Q extends SqlQuerier, D extends AbstractSqlDialect> extends AbstractQuerierPool<Q, D> implements SqlQuerierPool<Q, D> {
9
+ all<T>(query: string, values?: unknown[]): Promise<T[]>;
10
+ run(query: string, values?: unknown[]): Promise<QueryUpdateResult>;
11
+ }
12
+ //# sourceMappingURL=abstractSqlQuerierPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstractSqlQuerierPool.d.ts","sourceRoot":"","sources":["../../src/querier/abstractSqlQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;GAGG;AACH,8BAAsB,sBAAsB,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,kBAAkB,CAC7F,SAAQ,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAChC,YAAW,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IAE/B,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAEtD;IAED,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAEjE;CACF"}
@@ -0,0 +1,14 @@
1
+ import { AbstractQuerierPool } from './abstractQuerierPool.js';
2
+ /**
3
+ * Base pool for SQL dialects; implements the raw-SQL surface of {@link SqlQuerierPool}, which owns
4
+ * the connection-per-call semantics.
5
+ */
6
+ export class AbstractSqlQuerierPool extends AbstractQuerierPool {
7
+ all(query, values) {
8
+ return this.withQuerier((querier) => querier.all(query, values));
9
+ }
10
+ run(query, values) {
11
+ return this.withQuerier((querier) => querier.run(query, values));
12
+ }
13
+ }
14
+ //# sourceMappingURL=abstractSqlQuerierPool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstractSqlQuerierPool.js","sourceRoot":"","sources":["../../src/querier/abstractSqlQuerierPool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;GAGG;AACH,MAAM,OAAgB,sBACpB,SAAQ,mBAAyB;IAGjC,GAAG,CAAI,KAAa,EAAE,MAAkB;QACtC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAI,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,MAAkB;QACnC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  export * from './abstractQuerier.js';
2
2
  export * from './abstractQuerierPool.js';
3
3
  export * from './abstractSqlQuerier.js';
4
+ export * from './abstractSqlQuerierPool.js';
4
5
  export * from './decorator/index.js';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/querier/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/querier/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from './abstractQuerier.js';
2
2
  export * from './abstractQuerierPool.js';
3
3
  export * from './abstractSqlQuerier.js';
4
+ export * from './abstractSqlQuerierPool.js';
4
5
  export * from './decorator/index.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/querier/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/querier/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC"}
@@ -1,14 +1,19 @@
1
1
  import type { Options } from 'better-sqlite3';
2
- import { AbstractQuerierPool } from '../querier/index.js';
2
+ import { AbstractSqlQuerierPool } from '../querier/index.js';
3
3
  import type { ExtraOptions } from '../type/index.js';
4
4
  import { BetterSqlite3Dialect } from './betterSqlite3Dialect.js';
5
5
  import { SqliteQuerier } from './sqliteQuerier.js';
6
- export declare class Sqlite3QuerierPool extends AbstractQuerierPool<BetterSqlite3Dialect, SqliteQuerier> {
6
+ export declare class Sqlite3QuerierPool extends AbstractSqlQuerierPool<SqliteQuerier, BetterSqlite3Dialect> {
7
7
  readonly filename: string | Buffer;
8
8
  readonly opts?: Options | undefined;
9
- private querier?;
9
+ private db?;
10
10
  constructor(filename?: string | Buffer, opts?: Options | undefined, extra?: ExtraOptions);
11
+ /**
12
+ * The database handle is shared (single connection), but each acquisition gets its own querier
13
+ * so transaction state stays per unit of work.
14
+ */
11
15
  getQuerier(): Promise<SqliteQuerier>;
16
+ private openDb;
12
17
  end(): Promise<void>;
13
18
  }
14
19
  //# sourceMappingURL=sqliteQuerierPool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqliteQuerierPool.d.ts","sourceRoot":"","sources":["../../src/sqlite/sqliteQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,qBAAa,kBAAmB,SAAQ,mBAAmB,CAAC,oBAAoB,EAAE,aAAa,CAAC;IAI5F,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO;IAJzB,OAAO,CAAC,OAAO,CAAC,CAAgB;IAEhC,YACW,QAAQ,GAAE,MAAM,GAAG,MAAmB,EACtC,IAAI,CAAC,EAAE,OAAO,YAAA,EACvB,KAAK,CAAC,EAAE,YAAY,EAGrB;IAEK,UAAU,2BAgBf;IAEK,GAAG,kBAGR;CACF"}
1
+ {"version":3,"file":"sqliteQuerierPool.d.ts","sourceRoot":"","sources":["../../src/sqlite/sqliteQuerierPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,qBAAa,kBAAmB,SAAQ,sBAAsB,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAI/F,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO;IAJzB,OAAO,CAAC,EAAE,CAAC,CAAW;IAEtB,YACW,QAAQ,GAAE,MAAM,GAAG,MAAmB,EACtC,IAAI,CAAC,EAAE,OAAO,YAAA,EACvB,KAAK,CAAC,EAAE,YAAY,EAGrB;IAED;;;OAGG;IACG,UAAU,2BAGf;YAEa,MAAM;IAad,GAAG,kBAGR;CACF"}
@@ -1,36 +1,38 @@
1
- import { AbstractQuerierPool } from '../querier/index.js';
1
+ import { AbstractSqlQuerierPool } from '../querier/index.js';
2
2
  import { BetterSqlite3Dialect } from './betterSqlite3Dialect.js';
3
3
  import { SqliteQuerier } from './sqliteQuerier.js';
4
- export class Sqlite3QuerierPool extends AbstractQuerierPool {
4
+ export class Sqlite3QuerierPool extends AbstractSqlQuerierPool {
5
5
  filename;
6
6
  opts;
7
- querier;
7
+ db;
8
8
  constructor(filename = ':memory:', opts, extra) {
9
9
  super(new BetterSqlite3Dialect({ namingStrategy: extra?.namingStrategy }), extra);
10
10
  this.filename = filename;
11
11
  this.opts = opts;
12
12
  }
13
+ /**
14
+ * The database handle is shared (single connection), but each acquisition gets its own querier
15
+ * so transaction state stays per unit of work.
16
+ */
13
17
  async getQuerier() {
14
- if (!this.querier) {
15
- let db;
16
- if (typeof Bun !== 'undefined') {
17
- const { Database: BunDatabase } = await import('bun:sqlite');
18
- const bunDb = new BunDatabase(this.filename, this.opts);
19
- bunDb.run('PRAGMA journal_mode = WAL');
20
- db = bunDb;
21
- }
22
- else {
23
- const { default: BetterSqlite3 } = await import('better-sqlite3');
24
- db = new BetterSqlite3(this.filename, this.opts);
25
- db.pragma('journal_mode = WAL');
26
- }
27
- this.querier = new SqliteQuerier(db, this.dialect, this.extra);
18
+ this.db ??= await this.openDb();
19
+ return new SqliteQuerier(this.db, this.dialect, this.extra);
20
+ }
21
+ async openDb() {
22
+ if (typeof Bun !== 'undefined') {
23
+ const { Database: BunDatabase } = await import('bun:sqlite');
24
+ const bunDb = new BunDatabase(this.filename, this.opts);
25
+ bunDb.run('PRAGMA journal_mode = WAL');
26
+ return bunDb;
28
27
  }
29
- return this.querier;
28
+ const { default: BetterSqlite3 } = await import('better-sqlite3');
29
+ const db = new BetterSqlite3(this.filename, this.opts);
30
+ db.pragma('journal_mode = WAL');
31
+ return db;
30
32
  }
31
33
  async end() {
32
- await this.querier?.db.close();
33
- this.querier = undefined;
34
+ await this.db?.close();
35
+ this.db = undefined;
34
36
  }
35
37
  }
36
38
  //# sourceMappingURL=sqliteQuerierPool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqliteQuerierPool.js","sourceRoot":"","sources":["../../src/sqlite/sqliteQuerierPool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,kBAAmB,SAAQ,mBAAwD;IAInF,QAAQ;IACR,IAAI;IAJP,OAAO,CAAiB;IAEhC,YACW,QAAQ,GAAoB,UAAU,EACtC,IAAc,EACvB,KAAoB;QAEpB,KAAK,CAAC,IAAI,oBAAoB,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;wBAJzE,QAAQ;oBACR,IAAI;IAIf,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,EAAY,CAAC;YACjB,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE,CAAC;gBAC/B,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC7D,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClE,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACvC,EAAE,GAAG,KAA4B,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAClE,EAAE,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjD,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"sqliteQuerierPool.js","sourceRoot":"","sources":["../../src/sqlite/sqliteQuerierPool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,kBAAmB,SAAQ,sBAA2D;IAItF,QAAQ;IACR,IAAI;IAJP,EAAE,CAAY;IAEtB,YACW,QAAQ,GAAoB,UAAU,EACtC,IAAc,EACvB,KAAoB;QAEpB,KAAK,CAAC,IAAI,oBAAoB,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;wBAJzE,QAAQ;oBACR,IAAI;IAIf,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,MAAM;QAClB,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAClE,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACvC,OAAO,KAA4B,CAAC;QACtC,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAClE,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;IACtB,CAAC;CACF"}
@@ -1,12 +1,38 @@
1
- import type { AbstractDialect } from '../dialect/index.js';
2
- import type { ExtraOptions, Querier, TransactionOptions } from './querier.js';
1
+ import type { AbstractDialect, AbstractSqlDialect } from '../dialect/index.js';
2
+ import type { ExtraOptions, Querier, SqlQuerier, TransactionOptions } from './querier.js';
3
+ import type { UqlContext } from './query.js';
4
+ import type { UniversalQuerier } from './universalQuerier.js';
5
+ /** Options for a pool-level unit of work ({@link QuerierPool.withQuerier} / {@link QuerierPool.transaction}). */
6
+ export interface PoolRunOptions {
7
+ /**
8
+ * {@link UqlContext} to run the callback under, so parameterized/`security` filters scope every
9
+ * query inside it. Same mechanism as `withContext`, scoped to this unit of work - ideal where no
10
+ * ambient request context exists (background pipelines, queue consumers, webhooks) and the tenant
11
+ * is known locally: `pool.withQuerier((q) => q.findMany(Invoice, {}), { context: { tenantId } })`.
12
+ */
13
+ readonly context?: UqlContext;
14
+ }
3
15
  /**
4
16
  * Querier pool. Read the dialect id via `pool.dialect.dialectName` (see {@link AbstractDialect.dialectName}); queriers expose the same on `querier.dialect`.
5
17
  *
18
+ * The read methods of {@link UniversalQuerier} are available directly on the pool. Each call
19
+ * acquires its own querier, runs the single read, and releases it - so
20
+ * `Promise.all([pool.findMany(A, {}), pool.count(B, {})])` runs on separate connections in
21
+ * parallel, while the same calls inside one `withQuerier`/`transaction` callback share a pinned
22
+ * connection and serialize. Single-connection backends (better-sqlite3, Bun sqlite, D1) stay
23
+ * correct but always serialize on their one connection.
24
+ *
25
+ * An enclosing `withContext` scopes the pool reads (`security` filters apply); one wrapper covers a
26
+ * whole parallel fan-out, which is why the reads take no per-call `context` option (unlike
27
+ * `withQuerier`/`transaction`).
28
+ *
29
+ * Pool reads take the entity-as-argument form only. For the `{ $entity }` form, streaming, or
30
+ * writes (they need a unit of work), use `withQuerier`/`transaction`.
31
+ *
6
32
  * @typeParam Q - Querier implementation returned from the pool.
7
33
  * @typeParam D - Concrete dialect class held by the pool.
8
34
  */
9
- export interface QuerierPool<Q extends Querier = Querier, D extends AbstractDialect = AbstractDialect> {
35
+ export interface QuerierPool<Q extends Querier = Querier, D extends AbstractDialect = AbstractDialect> extends Pick<UniversalQuerier, 'findOneById' | 'findOne' | 'findMany' | 'findManyAndCount' | 'count' | 'aggregate'> {
10
36
  /**
11
37
  * Database dialect instance (single source of truth for dialect id and SQL/NoSQL behavior).
12
38
  */
@@ -29,16 +55,25 @@ export interface QuerierPool<Q extends Querier = Querier, D extends AbstractDial
29
55
  /**
30
56
  * get a querier from the pool and run the given callback inside a transaction.
31
57
  */
32
- transaction<T>(callback: (querier: Q) => Promise<T>, opts?: TransactionOptions): Promise<T>;
58
+ transaction<T>(callback: (querier: Q) => Promise<T>, opts?: TransactionOptions & PoolRunOptions): Promise<T>;
33
59
  /**
34
60
  * get a querier from the pool, run the given callback, and release the querier.
35
61
  */
36
- withQuerier<T>(callback: (querier: Q) => Promise<T>): Promise<T>;
62
+ withQuerier<T>(callback: (querier: Q) => Promise<T>, opts?: PoolRunOptions): Promise<T>;
37
63
  /**
38
64
  * end the pool.
39
65
  */
40
66
  end(): Promise<void>;
41
67
  }
68
+ /**
69
+ * SQL pool surface: adds the raw-SQL executors of {@link SqlQuerier} (`all`/`run`), with the same
70
+ * connection-per-call semantics as the {@link QuerierPool} read helpers (see that doc for the
71
+ * parallelism model and its single-connection caveat).
72
+ *
73
+ * Raw `all`/`run` bypass query generation, so they are **not** scoped by `security` filters/context.
74
+ */
75
+ export interface SqlQuerierPool<Q extends SqlQuerier = SqlQuerier, D extends AbstractSqlDialect = AbstractSqlDialect> extends QuerierPool<Q, D>, Pick<SqlQuerier, 'all' | 'run'> {
76
+ }
42
77
  /** Dialect class used by pool `P` (when `P` is a {@link QuerierPool}). */
43
78
  export type QuerierPoolDialect<P> = P extends QuerierPool<any, infer D> ? D : never;
44
79
  /** Querier type produced by pool `P`. */
@@ -1 +1 @@
1
- {"version":3,"file":"querierPool.d.ts","sourceRoot":"","sources":["../../src/type/querierPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,CAAC,SAAS,eAAe,GAAG,eAAe;IACnG;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAE9B;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAEvC;;OAEG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5F;;OAEG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEjE;;OAEG;IACH,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAED,0EAA0E;AAE1E,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpF,yCAAyC;AAEzC,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAExF;;OAEG;IACH,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;CACtE"}
1
+ {"version":3,"file":"querierPool.d.ts","sourceRoot":"","sources":["../../src/type/querierPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,iHAAiH;AACjH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,CAAC,SAAS,eAAe,GAAG,eAAe,CACnG,SAAQ,IAAI,CAAC,gBAAgB,EAAE,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,kBAAkB,GAAG,OAAO,GAAG,WAAW,CAAC;IACnH;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAE9B;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAEvC;;OAEG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7G;;OAEG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAExF;;OAEG;IACH,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,CAClH,SAAQ,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EACvB,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC;CAAG;AAEtC,0EAA0E;AAE1E,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpF,yCAAyC;AAEzC,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAExF;;OAEG;IACH,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;CACtE"}
@@ -12,21 +12,21 @@ export interface UniversalQuerier {
12
12
  * @param q the additional criteria options
13
13
  * @return the record
14
14
  */
15
- findOneById<E extends object>(entity: Type<E>, id: IdValue<E>, q?: QueryOne<E>): Promise<E | undefined>;
15
+ findOneById<E extends object>(entity: Type<E>, id: IdValue<E>, q?: QueryOne<E>, opts?: QueryOptions): Promise<E | undefined>;
16
16
  /**
17
17
  * obtains the first record matching the given search parameters.
18
18
  * @param entity the target entity
19
19
  * @param q the criteria options
20
20
  * @return the record
21
21
  */
22
- findOne<E extends object>(entity: Type<E>, q: QueryOne<E>): Promise<E | undefined>;
22
+ findOne<E extends object>(entity: Type<E>, q: QueryOne<E>, opts?: QueryOptions): Promise<E | undefined>;
23
23
  /**
24
24
  * obtains the records matching the given search parameters.
25
25
  * @param entity the target entity
26
26
  * @param q the criteria options
27
27
  * @return the records
28
28
  */
29
- findMany<E extends object>(entity: Type<E>, q: Query<E>): Promise<E[]>;
29
+ findMany<E extends object>(entity: Type<E>, q: Query<E>, opts?: QueryOptions): Promise<E[]>;
30
30
  /**
31
31
  * streams the records matching the given search parameters as an async iterable.
32
32
  * Does not fill relations or fire lifecycle hooks - designed for high-performance
@@ -35,7 +35,7 @@ export interface UniversalQuerier {
35
35
  * @param q the criteria options
36
36
  * @return an async iterable of records
37
37
  */
38
- findManyStream<E extends object>(entity: Type<E>, q: Query<E>): AsyncIterable<E>;
38
+ findManyStream<E extends object>(entity: Type<E>, q: Query<E>, opts?: QueryOptions): AsyncIterable<E>;
39
39
  /**
40
40
  * obtains the records matching the given search parameters,
41
41
  * also counts the number of matches ignoring pagination.
@@ -43,14 +43,14 @@ export interface UniversalQuerier {
43
43
  * @param q the criteria options
44
44
  * @return the records and the count
45
45
  */
46
- findManyAndCount<E extends object>(entity: Type<E>, q: Query<E>): Promise<[E[], number]>;
46
+ findManyAndCount<E extends object>(entity: Type<E>, q: Query<E>, opts?: QueryOptions): Promise<[E[], number]>;
47
47
  /**
48
48
  * counts the number of records matching the given search parameters.
49
49
  * @param entity the target entity
50
50
  * @param q the search options
51
51
  * @return the count
52
52
  */
53
- count<E extends object>(entity: Type<E>, q: QuerySearch<E>): Promise<number>;
53
+ count<E extends object>(entity: Type<E>, q: QuerySearch<E>, opts?: QueryOptions): Promise<number>;
54
54
  /**
55
55
  * inserts a record.
56
56
  * @param entity the entity to persist on
@@ -72,7 +72,7 @@ export interface UniversalQuerier {
72
72
  * @param payload the data to be persisted
73
73
  * @return the number of affected records
74
74
  */
75
- updateOneById<E extends object>(entity: Type<E>, id: IdValue<E>, payload: UpdatePayload<E>): Promise<number>;
75
+ updateOneById<E extends object>(entity: Type<E>, id: IdValue<E>, payload: UpdatePayload<E>, opts?: QueryOptions): Promise<number>;
76
76
  /**
77
77
  * updates many records partially.
78
78
  * @param entity the entity to persist on
@@ -80,7 +80,7 @@ export interface UniversalQuerier {
80
80
  * @param payload the data to be persisted
81
81
  * @return the number of affected records
82
82
  */
83
- updateMany?<E extends object>(entity: Type<E>, q: QuerySearch<E>, payload: UpdatePayload<E>): Promise<number>;
83
+ updateMany?<E extends object>(entity: Type<E>, q: QuerySearch<E>, payload: UpdatePayload<E>, opts?: QueryOptions): Promise<number>;
84
84
  /**
85
85
  * Insert or update a record given a search criteria.
86
86
  * @param entity the entity to persist on
@@ -131,6 +131,6 @@ export interface UniversalQuerier {
131
131
  * @param q the aggregate query options
132
132
  * @return the aggregate results
133
133
  */
134
- aggregate<E extends object, const Q extends QueryAggregate<E>>(entity: Type<E>, q: Q): Promise<QueryAggregateResult<E, Q['$group']>[]>;
134
+ aggregate<E extends object, const Q extends QueryAggregate<E>>(entity: Type<E>, q: Q, opts?: QueryOptions): Promise<QueryAggregateResult<E, Q['$group']>[]>;
135
135
  }
136
136
  //# sourceMappingURL=universalQuerier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"universalQuerier.d.ts","sourceRoot":"","sources":["../../src/type/universalQuerier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"universalQuerier.d.ts","sourceRoot":"","sources":["../../src/type/universalQuerier.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,9 @@ export declare function withoutSoftDeleteFilter(filters: QueryOptions['filters']
32
32
  *
33
33
  * `security` filters are always active (bypass is ignored) and AND-merged, so a client `$where` on the
34
34
  * same field can't override them. A security condition that returns `undefined` fails the query closed
35
- * (throws {@link UqlSecurityError}) unless its `onMissing` is `skip`.
35
+ * (throws {@link UqlSecurityError}) unless its `onMissing` is `skip`; one that returns an empty object
36
+ * (`{}`) resolved to "no restriction" and adds nothing - the escape hatch for trusted cross-tenant
37
+ * work (e.g. a maintenance job running under a `system` context).
36
38
  */
37
39
  export declare function applyFilters<E>(meta: EntityMeta<E>, whereMap: QueryWhereMap<E>, opts?: QueryOptions): QueryWhereMap<E>;
38
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dialect.util.d.ts","sourceRoot":"","sources":["../../src/util/dialect.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dialect.util.d.ts","sourceRoot":"","sources":["../../src/util/dialect.util.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { getContext, UqlSecurityError } from '../context/context.js';
2
2
  import { QueryRaw, } from '../type/index.js';
3
- import { getFieldKeys, getKeys } from './object.util.js';
3
+ import { getFieldKeys, getKeys, hasKeys } from './object.util.js';
4
4
  export function filterFieldKeys(meta, payload, callbackKey) {
5
5
  return getKeys(payload).filter((key) => {
6
6
  const fieldOpts = meta.fields[key];
@@ -109,7 +109,9 @@ export function withoutSoftDeleteFilter(filters) {
109
109
  *
110
110
  * `security` filters are always active (bypass is ignored) and AND-merged, so a client `$where` on the
111
111
  * same field can't override them. A security condition that returns `undefined` fails the query closed
112
- * (throws {@link UqlSecurityError}) unless its `onMissing` is `skip`.
112
+ * (throws {@link UqlSecurityError}) unless its `onMissing` is `skip`; one that returns an empty object
113
+ * (`{}`) resolved to "no restriction" and adds nothing - the escape hatch for trusted cross-tenant
114
+ * work (e.g. a maintenance job running under a `system` context).
113
115
  */
114
116
  export function applyFilters(meta, whereMap, opts) {
115
117
  if (!meta.filters) {
@@ -143,6 +145,9 @@ export function applyFilters(meta, whereMap, opts) {
143
145
  continue;
144
146
  }
145
147
  const conditionMap = buildQueryWhereAsMap(meta, condition);
148
+ if (!hasKeys(conditionMap)) {
149
+ continue; // resolved to "no restriction" (e.g. a trusted system context) - nothing to merge
150
+ }
146
151
  if (filter.security) {
147
152
  securityConditions.push(conditionMap);
148
153
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dialect.util.js","sourceRoot":"","sources":["../../src/util/dialect.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dialect.util.js","sourceRoot":"","sources":["../../src/util/dialect.util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "homepage": "https://uql-orm.dev",
4
4
  "description": "Fast, type-safe TypeScript ORM - one API for every database",
5
5
  "license": "MIT",
6
- "version": "0.14.0",
6
+ "version": "0.15.0",
7
7
  "type": "module",
8
8
  "main": "./dist/index.js",
9
9
  "types": "./dist/index.d.ts",
@@ -175,5 +175,5 @@
175
175
  "publishConfig": {
176
176
  "access": "public"
177
177
  },
178
- "gitHead": "2a650fdd09ef9c4c9c2ea519e4279ab01f1c064e"
178
+ "gitHead": "8add13b552f016141280b8ca4f41bac6fdd69645"
179
179
  }