@vibeorm/runtime 2.1.0 → 2.3.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.
- package/dist/adapter-kit/index.d.ts +6 -3
- package/dist/adapter-kit/index.d.ts.map +1 -1
- package/dist/adapter-kit/index.js +178 -19
- package/dist/adapter-kit/index.js.map +8 -5
- package/dist/adapter-kit/nested-options.d.ts +22 -0
- package/dist/adapter-kit/nested-options.d.ts.map +1 -0
- package/dist/adapter-kit/savepoint-gate.d.ts +31 -0
- package/dist/adapter-kit/savepoint-gate.d.ts.map +1 -1
- package/dist/adapter-kit/session.d.ts +9 -0
- package/dist/adapter-kit/session.d.ts.map +1 -0
- package/dist/adapter-kit/sqlite-session.d.ts +8 -0
- package/dist/adapter-kit/sqlite-session.d.ts.map +1 -0
- package/dist/adapter.d.ts +34 -27
- package/dist/adapter.d.ts.map +1 -1
- package/dist/bulk-upsert.d.ts +5 -3
- package/dist/bulk-upsert.d.ts.map +1 -1
- package/dist/client-types.d.ts +14 -0
- package/dist/client-types.d.ts.map +1 -0
- package/dist/client.d.ts +29 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/codecs.d.ts +5 -0
- package/dist/codecs.d.ts.map +1 -1
- package/dist/database-module.d.ts +27 -0
- package/dist/database-module.d.ts.map +1 -0
- package/dist/diagnostics/index.d.ts +3 -1
- package/dist/diagnostics/index.d.ts.map +1 -1
- package/dist/diagnostics/plan.d.ts +39 -1
- package/dist/diagnostics/plan.d.ts.map +1 -1
- package/dist/diagnostics/preview.d.ts +3 -1
- package/dist/diagnostics/preview.d.ts.map +1 -1
- package/dist/diagnostics/statement-diagnostics.d.ts +176 -0
- package/dist/diagnostics/statement-diagnostics.d.ts.map +1 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1362 -566
- package/dist/index.js.map +24 -21
- package/dist/module-context.d.ts +20 -0
- package/dist/module-context.d.ts.map +1 -0
- package/dist/nested-writes.d.ts.map +1 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/query-builder.d.ts +11 -0
- package/dist/query-builder.d.ts.map +1 -1
- package/dist/read-only.d.ts.map +1 -1
- package/dist/relation-loader.d.ts +12 -0
- package/dist/relation-loader.d.ts.map +1 -1
- package/dist/relation-plan.d.ts +14 -0
- package/dist/relation-plan.d.ts.map +1 -1
- package/dist/rls-readiness.d.ts.map +1 -1
- package/dist/scoped.d.ts.map +1 -1
- package/dist/sql-access.d.ts +18 -2
- package/dist/sql-access.d.ts.map +1 -1
- package/dist/telemetry/statement.d.ts +7 -0
- package/dist/telemetry/statement.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SqlExecutor } from "../adapter.ts";
|
|
2
|
+
/** Hold SQLite's native file lock across transaction boundaries, then restore it. */
|
|
3
|
+
export declare function runSqliteSession<T>(params: {
|
|
4
|
+
readonly execute: SqlExecutor;
|
|
5
|
+
readonly run: (executor: SqlExecutor) => Promise<T>;
|
|
6
|
+
readonly inTransaction: () => boolean;
|
|
7
|
+
}): Promise<T>;
|
|
8
|
+
//# sourceMappingURL=sqlite-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-session.d.ts","sourceRoot":"","sources":["../../src/adapter-kit/sqlite-session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,qFAAqF;AACrF,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE;IAChD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC;CACvC,GAAG,OAAO,CAAC,CAAC,CAAC,CAmCb"}
|
package/dist/adapter.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* serialization/deadlock → VIBE_TRANSACTION, connection/other → VIBE_ADAPTER),
|
|
11
11
|
* with the driver error attached as `cause`.
|
|
12
12
|
*/
|
|
13
|
-
import type
|
|
13
|
+
import { type Dialect, type Provider } from "@vibeorm/schema";
|
|
14
14
|
import type { WireFidelity } from "@vibeorm/sql";
|
|
15
15
|
/** Transaction isolation levels (mapped per dialect by the adapter). */
|
|
16
16
|
export type IsolationLevel = "ReadCommitted" | "RepeatableRead" | "Serializable";
|
|
@@ -32,8 +32,8 @@ export type TransactionDeadlineEnforcement = "between-statements" | "cancel-runn
|
|
|
32
32
|
* from {@link TransactionOptions.timeout}, which bounds a single statement.
|
|
33
33
|
*
|
|
34
34
|
* The clock starts immediately before `BEGIN` is sent, so acquiring a
|
|
35
|
-
* connection
|
|
36
|
-
*
|
|
35
|
+
* connection is NOT counted against it. Acquisition is bounded separately
|
|
36
|
+
* only when the adapter declares `budgets.acquireTimeout: true`.
|
|
37
37
|
*
|
|
38
38
|
* On expiry the adapter refuses the next statement, refuses the commit and
|
|
39
39
|
* rolls back, and every handle of that transaction becomes unusable. Nothing
|
|
@@ -105,6 +105,8 @@ export type AdapterBudgetSupport = {
|
|
|
105
105
|
export type QueryResult = {
|
|
106
106
|
rows: Record<string, unknown>[];
|
|
107
107
|
affectedRows: number;
|
|
108
|
+
/** Exact generated identity, when supplied by the driver; absent keeps the last-id query fallback. */
|
|
109
|
+
readonly insertId?: number | string;
|
|
108
110
|
};
|
|
109
111
|
/**
|
|
110
112
|
* The primary interface every database adapter implements. Adapters own
|
|
@@ -177,6 +179,16 @@ export type DatabaseAdapter = {
|
|
|
177
179
|
text: string;
|
|
178
180
|
values: unknown[];
|
|
179
181
|
}): Promise<QueryResult>;
|
|
182
|
+
/**
|
|
183
|
+
* Bound raw execution with raw-path serialization and raw-session affinity.
|
|
184
|
+
* Optional: older adapters retain executeAffected/executeUnsafe routing.
|
|
185
|
+
* Implementations MUST bind parameters, never interpolate or retry via text
|
|
186
|
+
* escaping. Transactional handles must retain the same session and budget.
|
|
187
|
+
*/
|
|
188
|
+
executeRawBound?(params: {
|
|
189
|
+
text: string;
|
|
190
|
+
values: unknown[];
|
|
191
|
+
}): Promise<QueryResult>;
|
|
180
192
|
/**
|
|
181
193
|
* What timing budgets this adapter actually enforces (EPIC 6).
|
|
182
194
|
*
|
|
@@ -199,6 +211,13 @@ export type DatabaseAdapter = {
|
|
|
199
211
|
* pg/pglite/mysql/bun adapters and is forbidden by constitution rule 4.
|
|
200
212
|
*/
|
|
201
213
|
transaction<T>(fn: (txAdapter: DatabaseAdapter) => Promise<T>, options?: TransactionOptions): Promise<T>;
|
|
214
|
+
/**
|
|
215
|
+
* Reserve one physical session for the complete callback, without opening a
|
|
216
|
+
* transaction. It must never reconnect mid-callback and expires on return.
|
|
217
|
+
* SQLite implementations also exclude other connections for this lifetime.
|
|
218
|
+
* Optional for third-party adapters; migration use refuses when unavailable.
|
|
219
|
+
*/
|
|
220
|
+
readonly withSession?: SessionRunner;
|
|
202
221
|
/** Eagerly open/verify connectivity (pool warm-up or first connection). */
|
|
203
222
|
connect(): Promise<void>;
|
|
204
223
|
/**
|
|
@@ -216,33 +235,21 @@ export type DatabaseAdapter = {
|
|
|
216
235
|
*/
|
|
217
236
|
formatArrayParam(values: unknown[]): unknown;
|
|
218
237
|
};
|
|
219
|
-
/**
|
|
220
|
-
export type
|
|
238
|
+
/** Run a complete operation on one exclusively owned physical session. */
|
|
239
|
+
export type SessionRunner = <T>(params: {
|
|
240
|
+
run: (executor: SqlExecutor) => Promise<T>;
|
|
241
|
+
}) => Promise<T>;
|
|
242
|
+
/** Minimal SQL executor; its optional runner reserves an operation-wide session. */
|
|
243
|
+
export type SqlExecutor = ((params: {
|
|
221
244
|
text: string;
|
|
222
245
|
values?: unknown[];
|
|
223
|
-
}) => Promise<Record<string, unknown>[]
|
|
246
|
+
}) => Promise<Record<string, unknown>[]>) & {
|
|
247
|
+
readonly withSession?: SessionRunner;
|
|
248
|
+
};
|
|
224
249
|
/**
|
|
225
|
-
* Bridge
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
* `adapter.executeUnsafe`, which a pooled adapter runs on whatever connection
|
|
229
|
-
* the pool hands out. @vibeorm/migrate's executor contract requires the
|
|
230
|
-
* opposite (`packages/migrate/src/types.ts`): its session-scoped statements
|
|
231
|
-
* (`BEGIN`/`COMMIT`, `PRAGMA foreign_keys`, `pg_advisory_lock` / `GET_LOCK`)
|
|
232
|
-
* must all reach ONE session. pglite and sqlite satisfy that by construction;
|
|
233
|
-
* a POOLED adapter (pg, mysql, bun) used for migrate must be constructed with
|
|
234
|
-
* a single-connection pool (`max: 1`; mysql `connectionLimit: 1`), as the
|
|
235
|
-
* `vibeorm` CLI does, or the caller must pin a connection another way —
|
|
236
|
-
* otherwise the advisory lock is taken on one connection while each
|
|
237
|
-
* migration's `BEGIN` runs on another, and a driver that reaps the idle
|
|
238
|
-
* lock-holding connection (node-postgres does, after 10s by default) releases
|
|
239
|
-
* the migration lock mid-run, silently.
|
|
240
|
-
*
|
|
241
|
-
* RE-ENTRANCY HAZARD: `pg_advisory_lock` is re-entrant per SESSION, so two
|
|
242
|
-
* concurrent `applyMigrations` calls sharing one adapter (hence one pool) can
|
|
243
|
-
* both "acquire" it on the same underlying connection and get zero mutual
|
|
244
|
-
* exclusion — separate CLI processes never collide this way, a programmatic
|
|
245
|
-
* caller sharing one adapter can.
|
|
250
|
+
* Bridge an adapter to migration execution. Direct reads retain raw semantics;
|
|
251
|
+
* migration mutations use withSession to reserve one connection for the whole
|
|
252
|
+
* operation. Unsupported adapters refuse instead of guessing pool affinity.
|
|
246
253
|
*/
|
|
247
254
|
export declare function toSqlExecutor(params: {
|
|
248
255
|
adapter: DatabaseAdapter;
|
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/bulk-upsert.d.ts
CHANGED
|
@@ -186,9 +186,11 @@ export declare function assertNoDuplicateConflictKeys(params: {
|
|
|
186
186
|
*
|
|
187
187
|
* Comparison is byte equality, deliberately: byte-identical values are equal
|
|
188
188
|
* under every collation and every native type, so this can only refuse a batch
|
|
189
|
-
* the database would itself have folded.
|
|
190
|
-
*
|
|
191
|
-
* {@link assertConflictKeysAreComparable}
|
|
189
|
+
* the database would itself have folded. Byte-distinct values that a secondary
|
|
190
|
+
* index's collation or physical type folds are NOT protected by this check.
|
|
191
|
+
* {@link assertConflictKeysAreComparable} governs only the selected conflict
|
|
192
|
+
* target, not secondary unique groups. MySQL may silently collapse such rows;
|
|
193
|
+
* this remains the documented secondary-key limitation (MY-04).
|
|
192
194
|
*
|
|
193
195
|
* Rows that leave any of the group's columns unbound or NULL are skipped: an
|
|
194
196
|
* unbound column takes a default this layer cannot know, and mysql's unique
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-upsert.d.ts","sourceRoot":"","sources":["../src/bulk-upsert.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAa5D,qCAAqC;AACrC,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,UAAU,CAAA;CAAE,GAAG,OAAO,CAEjF;AAID,iDAAiD;AACjD,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,GACnE;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAEvF;AAmCD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,oBAAoB,CAkDvB;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE;IACxD,OAAO,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,sBAAsB,EAAE,OAAO,CAAC;CACjC,GAAG,IAAI,CAUP;AAID;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG,SAAS,SAAS,EAAE,CA4CvB;AAID;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IACvD,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,YAAY,EAAE,SAAS,SAAS,EAAE,CAAC;CACpC,GAAG,IAAI,CAmBP;AAsBD;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IACpD,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IACvD,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"bulk-upsert.d.ts","sourceRoot":"","sources":["../src/bulk-upsert.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Static context identity shared by separately generated packages. Runtime authority stays private. */
|
|
2
|
+
declare const clientContextKind: unique symbol;
|
|
3
|
+
/** Static operation classification shared by separately generated packages. */
|
|
4
|
+
declare const queryOperationAccess: unique symbol;
|
|
5
|
+
/** Generated handles carry a kind without exposing a connection or granting runtime authority. */
|
|
6
|
+
export type ClientContext<Kind extends "root" | "transaction" | "readOnly" | "restricted"> = {
|
|
7
|
+
readonly [clientContextKind]: Kind;
|
|
8
|
+
};
|
|
9
|
+
/** Only the owning runtime can admit an operation into an atomic batch. */
|
|
10
|
+
export type QueryOperation<T, Access extends "read" | "write" = "read"> = Promise<T> & {
|
|
11
|
+
readonly [queryOperationAccess]: Access;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=client-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-types.d.ts","sourceRoot":"","sources":["../src/client-types.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,OAAO,CAAC,MAAM,iBAAiB,EAAE,OAAO,MAAM,CAAC;AAC/C,+EAA+E;AAC/E,OAAO,CAAC,MAAM,oBAAoB,EAAE,OAAO,MAAM,CAAC;AAElD,kGAAkG;AAClG,MAAM,MAAM,aAAa,CAAC,IAAI,SAAS,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,YAAY,IAAI;IAC3F,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC;CACpC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,MAAM,SAAS,MAAM,GAAG,OAAO,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG;IACrF,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACzC,CAAC"}
|
package/dist/client.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ import type { WriteValidators } from "./validators.ts";
|
|
|
10
10
|
import type { PolicyContextValue } from "./policy.ts";
|
|
11
11
|
import type { ScopedClientConfig } from "./scoped.ts";
|
|
12
12
|
import type { UpsertManyResult } from "./bulk-upsert.ts";
|
|
13
|
+
import type { StatementDiagnosticsOptions } from "./diagnostics/statement-diagnostics.ts";
|
|
13
14
|
import type { TelemetryOptions } from "./telemetry/types.ts";
|
|
14
15
|
/** One executed statement, reported to `ClientOptions.onQuery`. */
|
|
15
16
|
export type QueryEvent = {
|
|
@@ -38,6 +39,21 @@ export type ClientOptions = {
|
|
|
38
39
|
* only). A per-query `relationStrategy` argument overrides it.
|
|
39
40
|
*/
|
|
40
41
|
readonly relationStrategy?: RelationStrategy;
|
|
42
|
+
/**
|
|
43
|
+
* Relation loading for the `"query"` strategy. `concurrency` (default 1) is
|
|
44
|
+
* how many of ONE query's relation statements may be in flight at once:
|
|
45
|
+
* sibling relations of a level, `_count` entries and a relation's key chunks.
|
|
46
|
+
*
|
|
47
|
+
* It is a LATENCY option, worth setting against a remote database with wide
|
|
48
|
+
* include trees — 4 siblings at 5 ms of network each cost 20 ms serially and
|
|
49
|
+
* 5 ms concurrently. It is ignored inside `$transaction` (those statements
|
|
50
|
+
* share one connection and must stay ordered), and it buys nothing on an
|
|
51
|
+
* embedded adapter or when the JavaScript thread is already the ceiling.
|
|
52
|
+
* Above 1 the connection pool must be able to lend that many connections.
|
|
53
|
+
*/
|
|
54
|
+
readonly relationLoading?: {
|
|
55
|
+
readonly concurrency?: number;
|
|
56
|
+
};
|
|
41
57
|
/**
|
|
42
58
|
* Append the primary key to ORDER BY when a find has no explicit orderBy
|
|
43
59
|
* (default false) — deterministic row order at the cost of a sort. v1 parity.
|
|
@@ -64,6 +80,19 @@ export type ClientOptions = {
|
|
|
64
80
|
* but never shuts it down.
|
|
65
81
|
*/
|
|
66
82
|
readonly telemetry?: TelemetryOptions;
|
|
83
|
+
/**
|
|
84
|
+
* Statement diagnostics: a slow-statement log with an automatic `EXPLAIN`.
|
|
85
|
+
* Every statement slower than `slowerThanMs` (default 0 = all) is handed to
|
|
86
|
+
* `sink` (default: one `console.warn` line) with its duration; with
|
|
87
|
+
* `explain: "estimate"` or `"analyze"` a plan summary is attached on
|
|
88
|
+
* PostgreSQL/PGlite for read statements that ran outside a transaction —
|
|
89
|
+
* `"analyze"` EXECUTES the statement again, inside a read-only transaction
|
|
90
|
+
* on its own pooled connection, after the caller's promise has settled.
|
|
91
|
+
* `VIBEORM_DIAGNOSTICS=<explain>[:<slowerThanMs>]` (e.g. `analyze:5`)
|
|
92
|
+
* switches it on for a run; the explicit option wins field by field. Local
|
|
93
|
+
* runs only — never production.
|
|
94
|
+
*/
|
|
95
|
+
readonly diagnostics?: StatementDiagnosticsOptions;
|
|
67
96
|
/**
|
|
68
97
|
* Strict argument handling (EPIC 2), **on by default**: an explicit
|
|
69
98
|
* `undefined` anywhere in ORM argument syntax is refused BEFORE a statement
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/codecs.d.ts
CHANGED
|
@@ -48,6 +48,11 @@ export declare function decodeValue(params: {
|
|
|
48
48
|
field: FieldMeta;
|
|
49
49
|
value: unknown;
|
|
50
50
|
}): unknown;
|
|
51
|
+
/** Validate arithmetic inputs without rounding exact BigInt or Decimal operands. */
|
|
52
|
+
export declare function validateAtomicOperand(params: {
|
|
53
|
+
field: FieldMeta;
|
|
54
|
+
value: unknown;
|
|
55
|
+
}): number | string | bigint;
|
|
51
56
|
/**
|
|
52
57
|
* Encode one COMPARISON operand (WHERE / cursor bounds). Identical to
|
|
53
58
|
* {@link encodeValue} everywhere except sqlite Decimal (SQL review B4):
|
package/dist/codecs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codecs.d.ts","sourceRoot":"","sources":["../src/codecs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,EACb,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI1E,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG,WAAW,CAInF;AAwBD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAWnG;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAYnG;
|
|
1
|
+
{"version":3,"file":"codecs.d.ts","sourceRoot":"","sources":["../src/codecs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { DatabaseModuleArtifact, DatabaseModuleManifest, DatabaseModuleOptions, SchemaIR } from "@vibeorm/schema";
|
|
2
|
+
import type { DatabaseAdapter } from "./adapter.ts";
|
|
3
|
+
import type { DynamicClient, ReadOnlyClient } from "./client.ts";
|
|
4
|
+
/** The untyped runtime behind the package's directly generated declarations. */
|
|
5
|
+
export type DatabaseModule = DatabaseModuleArtifact & {
|
|
6
|
+
readonly bind: {
|
|
7
|
+
(params: {
|
|
8
|
+
db: DynamicClient;
|
|
9
|
+
}): DynamicClient;
|
|
10
|
+
(params: {
|
|
11
|
+
db: ReadOnlyClient;
|
|
12
|
+
}): ReadOnlyClient;
|
|
13
|
+
(params: {
|
|
14
|
+
db: object;
|
|
15
|
+
}): DynamicClient | ReadOnlyClient;
|
|
16
|
+
};
|
|
17
|
+
readonly create: (params: {
|
|
18
|
+
adapter: DatabaseAdapter;
|
|
19
|
+
}) => DynamicClient;
|
|
20
|
+
};
|
|
21
|
+
/** Snapshot and validate a package artifact. Construction performs no database work. */
|
|
22
|
+
export declare function defineDatabaseModule(params: DatabaseModuleOptions & {
|
|
23
|
+
schema: SchemaIR;
|
|
24
|
+
/** Generated artifacts pin these fields; runtime refuses incompatible or modified output. */
|
|
25
|
+
manifest?: DatabaseModuleManifest;
|
|
26
|
+
}): DatabaseModule;
|
|
27
|
+
//# sourceMappingURL=database-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-module.d.ts","sourceRoot":"","sources":["../src/database-module.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACvH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGjE,gFAAgF;AAChF,MAAM,MAAM,cAAc,GAAG,sBAAsB,GAAG;IACpD,QAAQ,CAAC,IAAI,EAAE;QACb,CAAC,MAAM,EAAE;YAAE,EAAE,EAAE,aAAa,CAAA;SAAE,GAAG,aAAa,CAAC;QAC/C,CAAC,MAAM,EAAE;YAAE,EAAE,EAAE,cAAc,CAAA;SAAE,GAAG,cAAc,CAAC;QACjD,CAAC,MAAM,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,GAAG,aAAa,GAAG,cAAc,CAAC;KAC1D,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,KAAK,aAAa,CAAC;CAC1E,CAAC;AAeF,wFAAwF;AACxF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG;IACnE,MAAM,EAAE,QAAQ,CAAC;IACjB,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACnC,GAAG,cAAc,CAsBjB"}
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* Module barrel — the package's root barrel re-exports from here.
|
|
6
6
|
*/
|
|
7
7
|
export { parameterTypeTag, previewOperation } from "./preview.ts";
|
|
8
|
-
export { PLAN_DEFAULTS, explainOperation, explainSql, parsePostgresPlan } from "./plan.ts";
|
|
8
|
+
export { PLAN_DEFAULTS, explainOnSession, explainOperation, explainSql, isExecutableRead, parsePostgresPlan } from "./plan.ts";
|
|
9
|
+
export { STATEMENT_DIAGNOSTICS_DEFAULTS, createStatementDiagnostics, formatStatementDiagnostic, parseDiagnosticsEnv, resolveStatementDiagnostics, summarizePlan, } from "./statement-diagnostics.ts";
|
|
10
|
+
export type { ExplainSkipReason, ObservedStatement, ResolvedStatementDiagnostics, StatementDiagnostic, StatementDiagnosticPlan, StatementDiagnosticsHook, StatementDiagnosticsOptions, StatementExplainMode, } from "./statement-diagnostics.ts";
|
|
9
11
|
export { readWorkloadStatistics } from "./workload.ts";
|
|
10
12
|
export { DIAGNOSTIC_THRESHOLDS, analyzeOperationTelemetry, recommendFromPlan } from "./insight.ts";
|
|
11
13
|
export type { DiagnosticFinding, DiagnosticFindingCode, ExplainMode, IndexCandidate, IndexFacts, OperationPreview, ParsedPlan, PlanContext, PlanNode, PreviewLimitation, PreviewLimitationCode, PreviewStatement, QueryPlanReport, SlowOperation, SuspectedPattern, TableFacts, TelemetryDiagnosticReport, WorkloadAvailability, WorkloadReport, WorkloadStatement, } from "./types.ts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/diagnostics/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/diagnostics/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC/H,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,2BAA2B,EAC3B,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,4BAA4B,EAC5B,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACnG,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* The plan's own numbers are kept in their own units: planner cost units are
|
|
18
18
|
* not milliseconds, and estimated rows are not observed rows.
|
|
19
19
|
*/
|
|
20
|
-
import type { Dialect, SchemaIR } from "@vibeorm/schema";
|
|
20
|
+
import type { Dialect, SchemaIR, VibeExtension } from "@vibeorm/schema";
|
|
21
21
|
import type { SqlExecutor } from "../adapter.ts";
|
|
22
22
|
import type { BuilderClientOptions, QueryMethod, RelationStrategy } from "../query-builder.ts";
|
|
23
23
|
import type { ExplainMode, ParsedPlan, QueryPlanReport } from "./types.ts";
|
|
@@ -38,6 +38,15 @@ export declare function parsePostgresPlan(params: {
|
|
|
38
38
|
maxNodes?: number;
|
|
39
39
|
includeLiterals?: boolean;
|
|
40
40
|
}): ParsedPlan;
|
|
41
|
+
/**
|
|
42
|
+
* Is this SQL text one the executing explain mode would accept — a single
|
|
43
|
+
* statement led by `SELECT` / `WITH` / `TABLE` / `VALUES`? The same structural
|
|
44
|
+
* rule `explainSql` enforces for `analyze`, exposed for callers that must skip
|
|
45
|
+
* rather than refuse. Not a safety proof (see {@link executableReadRefusal}).
|
|
46
|
+
*/
|
|
47
|
+
export declare function isExecutableRead(params: {
|
|
48
|
+
text: string;
|
|
49
|
+
}): boolean;
|
|
41
50
|
/**
|
|
42
51
|
* Take a plan for already-rendered SQL.
|
|
43
52
|
*
|
|
@@ -64,6 +73,33 @@ export declare function explainSql(params: {
|
|
|
64
73
|
maxNodes?: number;
|
|
65
74
|
includeLiterals?: boolean;
|
|
66
75
|
}): Promise<QueryPlanReport>;
|
|
76
|
+
/**
|
|
77
|
+
* The plan-taking body of {@link explainSql}, for a caller that ALREADY owns
|
|
78
|
+
* the session: every statement here runs through `executor` on whatever
|
|
79
|
+
* connection it is bound to, and nothing here begins, commits or rolls back.
|
|
80
|
+
*
|
|
81
|
+
* The caller is responsible for the two guarantees the wrapper otherwise
|
|
82
|
+
* provides: a single connection (the context settings and the plan must share
|
|
83
|
+
* one session), and — for `analyze` — a `READ ONLY` transaction plus the
|
|
84
|
+
* read-statement check ({@link isExecutableRead}). The statement-diagnostics
|
|
85
|
+
* hook uses this inside the adapter's own `transaction()` so it never has to
|
|
86
|
+
* drive `BEGIN` through a pooled executor.
|
|
87
|
+
*/
|
|
88
|
+
export declare function explainOnSession(params: {
|
|
89
|
+
executor: SqlExecutor;
|
|
90
|
+
dialect: Dialect;
|
|
91
|
+
sql: {
|
|
92
|
+
readonly text: string;
|
|
93
|
+
readonly values: readonly unknown[];
|
|
94
|
+
};
|
|
95
|
+
mode: ExplainMode;
|
|
96
|
+
/** Warnings the wrapper already collected; the plan's own are appended. */
|
|
97
|
+
warnings?: string[];
|
|
98
|
+
rlsContext?: Readonly<Record<string, unknown>>;
|
|
99
|
+
requireRepresentativeContext?: boolean;
|
|
100
|
+
maxNodes?: number;
|
|
101
|
+
includeLiterals?: boolean;
|
|
102
|
+
}): Promise<QueryPlanReport>;
|
|
67
103
|
/**
|
|
68
104
|
* Take a plan for one ORM operation, built through the same pure planning path
|
|
69
105
|
* `previewOperation` uses. Multi-statement and data-dependent flows are refused
|
|
@@ -72,6 +108,8 @@ export declare function explainSql(params: {
|
|
|
72
108
|
export declare function explainOperation(params: {
|
|
73
109
|
executor: SqlExecutor;
|
|
74
110
|
schema: SchemaIR;
|
|
111
|
+
/** Live operator instances, registered exactly as for runtime queries. */
|
|
112
|
+
extensions?: readonly VibeExtension[];
|
|
75
113
|
dialect: Dialect;
|
|
76
114
|
model: string;
|
|
77
115
|
method: QueryMethod;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/diagnostics/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/diagnostics/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* rows that do not exist yet is REPORTED as such, with the statements that are
|
|
12
12
|
* knowable shown in full and the rest named as a limitation.
|
|
13
13
|
*/
|
|
14
|
-
import type { Dialect, SchemaIR } from "@vibeorm/schema";
|
|
14
|
+
import type { Dialect, SchemaIR, VibeExtension } from "@vibeorm/schema";
|
|
15
15
|
import type { BuilderClientOptions, QueryMethod, RelationStrategy } from "../query-builder.ts";
|
|
16
16
|
import type { OperationPreview } from "./types.ts";
|
|
17
17
|
/**
|
|
@@ -31,6 +31,8 @@ export declare function parameterTypeTag(params: {
|
|
|
31
31
|
*/
|
|
32
32
|
export declare function previewOperation(params: {
|
|
33
33
|
schema: SchemaIR;
|
|
34
|
+
/** Live operator instances, registered exactly as for runtime queries. */
|
|
35
|
+
extensions?: readonly VibeExtension[];
|
|
34
36
|
dialect: Dialect;
|
|
35
37
|
model: string;
|
|
36
38
|
method: QueryMethod;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/diagnostics/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/diagnostics/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAa,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAK1G,OAAO,KAAK,EAAE,gBAAgB,EAAuC,MAAM,YAAY,CAAC;AAKxF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CASnE;AA4CD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,MAAM,EAAE,QAAQ,CAAC;IACjB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,qFAAqF;IACrF,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,GAAG,gBAAgB,CA+HnB"}
|