@prisma-next/sql-runtime 0.13.0 → 0.14.0-dev.2
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/README.md +24 -43
- package/dist/{exports-DDqF-xmg.mjs → exports-BXdIMaxT.mjs} +79 -120
- package/dist/exports-BXdIMaxT.mjs.map +1 -0
- package/dist/index.d.mts +80 -2
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +2 -2
- package/dist/{index-JOQlRa75.d.mts → prepared-statement-FQyyQnkC.d.mts} +172 -107
- package/dist/prepared-statement-FQyyQnkC.d.mts.map +1 -0
- package/dist/test/utils.d.mts +18 -7
- package/dist/test/utils.d.mts.map +1 -1
- package/dist/test/utils.mjs +23 -4
- package/dist/test/utils.mjs.map +1 -1
- package/package.json +12 -12
- package/src/codecs/ast-codec-resolver.ts +9 -53
- package/src/codecs/validation.ts +19 -30
- package/src/exports/index.ts +6 -2
- package/src/middleware/budgets.ts +7 -2
- package/src/middleware/lints.ts +3 -1
- package/src/runtime-spi.ts +1 -1
- package/src/sql-context.ts +18 -56
- package/src/sql-runtime.ts +39 -48
- package/dist/exports-DDqF-xmg.mjs.map +0 -1
- package/dist/index-JOQlRa75.d.mts.map +0 -1
|
@@ -1,28 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { AnyCodecDescriptor, CodecDescriptor } from "@prisma-next/framework-components/codec";
|
|
2
|
+
import { AfterExecuteResult, AsyncIterableResult, ExecutionPlan, RuntimeCore, RuntimeExecuteOptions, RuntimeLog, RuntimeMiddleware, RuntimeMiddlewareContext } from "@prisma-next/framework-components/runtime";
|
|
3
|
+
import { Adapter, AnyQueryAst, Codec, CodecRef, ContractCodecRegistry, LoweredParam, LoweredStatement, MarkerReadResult, SqlCodecCallContext, SqlConnection, SqlDriver, SqlQueryable } from "@prisma-next/sql-relational-core/ast";
|
|
4
|
+
import { ExecutionStack, RuntimeAdapterDescriptor, RuntimeAdapterInstance, RuntimeDriverDescriptor, RuntimeDriverInstance, RuntimeExtensionDescriptor, RuntimeExtensionInstance, RuntimeTargetDescriptor, RuntimeTargetInstance } from "@prisma-next/framework-components/execution";
|
|
5
5
|
import { SqlOperationDescriptors } from "@prisma-next/sql-operations";
|
|
6
6
|
import { SqlParamRefMutator } from "@prisma-next/sql-relational-core/middleware";
|
|
7
7
|
import { Contract, JsonValue, PlanMeta } from "@prisma-next/contract/types";
|
|
8
|
-
import {
|
|
8
|
+
import { SqlStorage } from "@prisma-next/sql-contract/types";
|
|
9
|
+
import { ExecutionContext, TypeHelperRegistry } from "@prisma-next/sql-relational-core/query-lane-context";
|
|
9
10
|
import { SqlExecutionPlan, SqlQueryPlan } from "@prisma-next/sql-relational-core/plan";
|
|
10
11
|
import { CodecTypesBase, CodecValue, Expression, RawCodecInferer } from "@prisma-next/sql-relational-core/expression";
|
|
11
12
|
import { RuntimeScope } from "@prisma-next/sql-relational-core/types";
|
|
12
|
-
import { AnyCodecDescriptor, CodecDescriptor } from "@prisma-next/framework-components/codec";
|
|
13
13
|
|
|
14
|
-
//#region src/codecs/ast-codec-registry.d.ts
|
|
15
|
-
/**
|
|
16
|
-
* Build a contract-free {@link ContractCodecRegistry} that resolves codecs
|
|
17
|
-
* purely from AST-supplied {@link import('@prisma-next/framework-components/codec').CodecRef}s
|
|
18
|
-
* against a target's descriptor registry.
|
|
19
|
-
*
|
|
20
|
-
* Dispatch is driven entirely by `CodecRef`s embedded in AST nodes; no
|
|
21
|
-
* contract walk is needed. `forColumn` always returns `undefined` — this
|
|
22
|
-
* registry carries no column-to-codec mappings.
|
|
23
|
-
*/
|
|
24
|
-
declare function createAstCodecRegistry(descriptors: CodecDescriptorRegistry): ContractCodecRegistry;
|
|
25
|
-
//#endregion
|
|
26
14
|
//#region src/codecs/encoding.d.ts
|
|
27
15
|
interface ParamMetadata {
|
|
28
16
|
readonly codec: CodecRef | undefined;
|
|
@@ -31,23 +19,6 @@ interface ParamMetadata {
|
|
|
31
19
|
declare function deriveParamMetadata(ast: AnyQueryAst): readonly ParamMetadata[];
|
|
32
20
|
declare function encodeParamsWithMetadata(values: readonly unknown[], metadata: readonly ParamMetadata[], ctx: SqlCodecCallContext, contractCodecs?: ContractCodecRegistry): Promise<readonly unknown[]>;
|
|
33
21
|
//#endregion
|
|
34
|
-
//#region src/codecs/validation.d.ts
|
|
35
|
-
declare function extractCodecIds(contract: Contract<SqlStorage>): Set<string>;
|
|
36
|
-
declare function validateContractCodecMappings(registry: CodecDescriptorRegistry, contract: Contract<SqlStorage>): void;
|
|
37
|
-
declare function validateCodecRegistryCompleteness(registry: CodecDescriptorRegistry, contract: Contract<SqlStorage>): void;
|
|
38
|
-
//#endregion
|
|
39
|
-
//#region src/lower-sql-plan.d.ts
|
|
40
|
-
/**
|
|
41
|
-
* Lowers a SQL query plan to an executable Plan by calling the adapter's lower method.
|
|
42
|
-
*
|
|
43
|
-
* Ad-hoc lowerings produce only `{kind: 'literal'}` slots; this helper
|
|
44
|
-
* unwraps them into the bare-value array `SqlExecutionPlan` exposes.
|
|
45
|
-
* Encountering a `{kind: 'bind'}` slot here means the caller passed an
|
|
46
|
-
* AST containing `PreparedParamRef` to the ad-hoc execute path — that's a
|
|
47
|
-
* caller error, surfaced as `RUNTIME.PREPARE_BIND_ON_ADHOC`.
|
|
48
|
-
*/
|
|
49
|
-
declare function lowerSqlPlan<Row>(adapter: Adapter<AnyQueryAst, Contract<SqlStorage>, LoweredStatement>, contract: Contract<SqlStorage>, queryPlan: SqlQueryPlan<Row>): SqlExecutionPlan<Row>;
|
|
50
|
-
//#endregion
|
|
51
22
|
//#region src/middleware/sql-middleware.d.ts
|
|
52
23
|
interface SqlMiddlewareContext extends RuntimeMiddlewareContext {
|
|
53
24
|
readonly contract: Contract<SqlStorage>;
|
|
@@ -111,46 +82,50 @@ interface SqlMiddleware<TCodecMap extends Record<string, unknown> = Record<strin
|
|
|
111
82
|
afterExecute?(plan: SqlExecutionPlan, result: AfterExecuteResult, ctx: SqlMiddlewareContext): Promise<void>;
|
|
112
83
|
}
|
|
113
84
|
//#endregion
|
|
114
|
-
//#region src/
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
readonly
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
85
|
+
//#region src/codecs/decoding.d.ts
|
|
86
|
+
type ColumnRef = {
|
|
87
|
+
table: string;
|
|
88
|
+
column: string;
|
|
89
|
+
};
|
|
90
|
+
interface DecodeContext {
|
|
91
|
+
readonly aliases: ReadonlyArray<string> | undefined;
|
|
92
|
+
readonly codecs: ReadonlyMap<string, Codec>;
|
|
93
|
+
readonly columnRefs: ReadonlyMap<string, ColumnRef>;
|
|
94
|
+
readonly includeAliases: ReadonlySet<string>;
|
|
124
95
|
}
|
|
125
|
-
declare function budgets(options?: BudgetsOptions): SqlMiddleware;
|
|
126
96
|
//#endregion
|
|
127
|
-
//#region src/
|
|
128
|
-
|
|
129
|
-
readonly
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
97
|
+
//#region src/prepared/types.d.ts
|
|
98
|
+
type ParamSpec<CT extends CodecTypesBase = CodecTypesBase> = (keyof CT & string) | {
|
|
99
|
+
readonly codecId: keyof CT & string;
|
|
100
|
+
readonly typeParams?: JsonValue;
|
|
101
|
+
readonly nullable?: boolean;
|
|
102
|
+
};
|
|
103
|
+
type Declaration<CT extends CodecTypesBase = CodecTypesBase> = Readonly<Record<string, ParamSpec<CT>>>;
|
|
104
|
+
type DeclaredCodecId<S> = S extends string ? S : S extends {
|
|
105
|
+
readonly codecId: infer C extends string;
|
|
106
|
+
} ? C : never;
|
|
107
|
+
type DeclaredNullable<S> = S extends {
|
|
108
|
+
readonly nullable: true;
|
|
109
|
+
} ? true : false;
|
|
110
|
+
type BindSiteParams<D> = { readonly [K in keyof D]: Expression<{
|
|
111
|
+
codecId: DeclaredCodecId<D[K]>;
|
|
112
|
+
nullable: DeclaredNullable<D[K]>;
|
|
113
|
+
}> };
|
|
114
|
+
type ParamsFromDeclaration<D, CT extends CodecTypesBase> = { readonly [K in keyof D]: CodecValue<DeclaredCodecId<D[K]>, DeclaredNullable<D[K]>, CT> };
|
|
115
|
+
type PrepareCallback<D, Row> = (params: BindSiteParams<D>) => SqlQueryPlan<Row>;
|
|
116
|
+
interface PreparedStatement<Params, Row> {
|
|
117
|
+
readonly sql: string;
|
|
118
|
+
readonly ast: AnyQueryAst;
|
|
119
|
+
readonly meta: PlanMeta;
|
|
120
|
+
readonly slots: readonly LoweredParam[];
|
|
121
|
+
/**
|
|
122
|
+
* Run this prepared statement against the given target. The target carries
|
|
123
|
+
* the execution scope (top-level runtime, an explicit connection, an active
|
|
124
|
+
* transaction). It is required and explicit — there is no implicit binding
|
|
125
|
+
* back to the runtime that produced this statement.
|
|
126
|
+
*/
|
|
127
|
+
execute(target: RuntimeQueryable, params: Params, options?: RuntimeExecuteOptions): AsyncIterableResult<Row>;
|
|
138
128
|
}
|
|
139
|
-
/**
|
|
140
|
-
* AST-first lint middleware for SQL plans. When `plan.ast` is a SQL QueryAst, inspects
|
|
141
|
-
* the AST structurally. When `plan.ast` is missing, falls back to raw heuristic
|
|
142
|
-
* guardrails or skips linting depending on `fallbackWhenAstMissing`.
|
|
143
|
-
*
|
|
144
|
-
* Rules (AST-based):
|
|
145
|
-
* - DELETE without WHERE: blocks execution (configurable severity, default error)
|
|
146
|
-
* - UPDATE without WHERE: blocks execution (configurable severity, default error)
|
|
147
|
-
* - Unbounded SELECT: warn/error (severity from noLimit)
|
|
148
|
-
* - SELECT * intent: warn/error (severity from selectStar)
|
|
149
|
-
*
|
|
150
|
-
* Fallback: When ast is missing, `fallbackWhenAstMissing: 'raw'` uses heuristic
|
|
151
|
-
* SQL parsing; `'skip'` skips all lints. Default is `'raw'`.
|
|
152
|
-
*/
|
|
153
|
-
declare function lints(options?: LintsOptions): SqlMiddleware;
|
|
154
129
|
//#endregion
|
|
155
130
|
//#region src/runtime-spi.d.ts
|
|
156
131
|
/**
|
|
@@ -160,7 +135,7 @@ interface MarkerReader {
|
|
|
160
135
|
readMarker(queryable: SqlQueryable): Promise<MarkerReadResult>;
|
|
161
136
|
}
|
|
162
137
|
/**
|
|
163
|
-
* SQL family adapter SPI consumed by `
|
|
138
|
+
* SQL family adapter SPI consumed by `SqlRuntimeBase`. Encapsulates the
|
|
164
139
|
* runtime contract, marker reader, and plan validation logic so the
|
|
165
140
|
* runtime can be unit-tested without a concrete SQL adapter profile.
|
|
166
141
|
*
|
|
@@ -275,16 +250,20 @@ declare function createExecutionContext<TContract extends Contract<SqlStorage> =
|
|
|
275
250
|
}): ExecutionContext<TContract>;
|
|
276
251
|
//#endregion
|
|
277
252
|
//#region src/sql-runtime.d.ts
|
|
278
|
-
type Log
|
|
279
|
-
interface
|
|
280
|
-
readonly stackInstance: ExecutionStackInstance<'sql', TTargetId, SqlRuntimeAdapterInstance<TTargetId>, RuntimeDriverInstance<'sql', TTargetId>, SqlRuntimeExtensionInstance<TTargetId>>;
|
|
253
|
+
type Log = RuntimeLog;
|
|
254
|
+
interface RuntimeOptions<TContract extends Contract<SqlStorage> = Contract<SqlStorage>> {
|
|
281
255
|
readonly context: ExecutionContext<TContract>;
|
|
256
|
+
readonly adapter: Adapter<AnyQueryAst, Contract<SqlStorage>, LoweredStatement>;
|
|
282
257
|
readonly driver: SqlDriver<unknown>;
|
|
283
258
|
readonly verifyMarker?: VerifyMarkerOption;
|
|
284
259
|
readonly middleware?: readonly SqlMiddleware[];
|
|
285
260
|
readonly mode?: 'strict' | 'permissive';
|
|
286
|
-
readonly log?: Log
|
|
261
|
+
readonly log?: Log;
|
|
287
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* SQL-family runtime interface. Named `Runtime` (not `SqlRuntime`) by deliberate exception
|
|
265
|
+
* to avoid a repo-wide rename; see ADR 230 (runtime target layer) for the recorded decision.
|
|
266
|
+
*/
|
|
288
267
|
interface Runtime extends RuntimeQueryable {
|
|
289
268
|
connection(): Promise<RuntimeConnection>;
|
|
290
269
|
telemetry(): RuntimeTelemetryEvent | null;
|
|
@@ -327,41 +306,127 @@ interface RuntimeQueryable extends RuntimeScope {
|
|
|
327
306
|
interface TransactionContext extends RuntimeQueryable {
|
|
328
307
|
readonly invalidated: boolean;
|
|
329
308
|
}
|
|
330
|
-
|
|
331
|
-
|
|
309
|
+
/**
|
|
310
|
+
* Abstract family-layer base for SQL runtimes. Subclass to build a target runtime
|
|
311
|
+
* (e.g. `PostgresRuntimeImpl`); app code should consume the `Runtime` interface returned
|
|
312
|
+
* by the target factories, never this class directly.
|
|
313
|
+
*/
|
|
314
|
+
declare abstract class SqlRuntimeBase<TContract extends Contract<SqlStorage> = Contract<SqlStorage>> extends RuntimeCore<SqlQueryPlan, SqlExecutionPlan, SqlMiddleware> implements Runtime {
|
|
315
|
+
#private;
|
|
316
|
+
private readonly contract;
|
|
317
|
+
private readonly adapter;
|
|
318
|
+
private readonly driver;
|
|
319
|
+
private readonly familyAdapter;
|
|
320
|
+
private readonly contractCodecs;
|
|
321
|
+
private readonly codecDescriptors;
|
|
322
|
+
private readonly sqlCtx;
|
|
323
|
+
private readonly verifyMarkerOption;
|
|
324
|
+
private verifyMarkerPromise;
|
|
325
|
+
private codecRegistryValidated;
|
|
326
|
+
private _telemetry;
|
|
327
|
+
constructor(options: RuntimeOptions<TContract>);
|
|
328
|
+
/**
|
|
329
|
+
* Lower a `SqlQueryPlan` (AST + meta) into a `SqlExecutionPlan`
|
|
330
|
+
* with encoded parameters ready for the driver.
|
|
331
|
+
*
|
|
332
|
+
* Implementation note: SQL splits lower-then-encode across
|
|
333
|
+
* {@link lowerToDraft} + {@link encodeDraftParams} so the runtime
|
|
334
|
+
* can fire the `beforeExecute` middleware chain between them
|
|
335
|
+
* (cipherstash bulk-encrypt, for example, mutates pre-encode
|
|
336
|
+
* `ParamRef.value` slots). This protected hook composes the two
|
|
337
|
+
* back into the cross-family `lower()` shape `RuntimeCore.execute`
|
|
338
|
+
* expects, and is called from the no-middleware fast paths /
|
|
339
|
+
* fixtures that hit `RuntimeCore`'s default template directly.
|
|
340
|
+
* `execute()` overrides the template and uses the split form so
|
|
341
|
+
* `beforeExecute` lands between the two halves.
|
|
342
|
+
*
|
|
343
|
+
* `ctx: SqlCodecCallContext` is forwarded to `encodeParams` so
|
|
344
|
+
* per-query cancellation reaches every codec body during parameter
|
|
345
|
+
* encoding. SQL params do not populate `ctx.column` — encode-side
|
|
346
|
+
* column metadata is the middleware's domain.
|
|
347
|
+
*/
|
|
348
|
+
protected lower(plan: SqlQueryPlan, ctx: SqlCodecCallContext): Promise<SqlExecutionPlan>;
|
|
349
|
+
/**
|
|
350
|
+
* AST → pre-encode draft. The returned plan has `sql` rendered and
|
|
351
|
+
* `params` populated with the user-domain values the lowering site
|
|
352
|
+
* collected from `ParamRef` nodes. No codec encode has happened
|
|
353
|
+
* yet; consumers can mutate `params` via the `SqlParamRefMutator`
|
|
354
|
+
* before {@link encodeDraftParams} runs.
|
|
355
|
+
*/
|
|
356
|
+
private lowerToDraft;
|
|
357
|
+
/**
|
|
358
|
+
* Encode a draft plan's params through the per-column codecs and
|
|
359
|
+
* freeze the result into the final `SqlExecutionPlan` the driver
|
|
360
|
+
* sees. Errors surface as `RUNTIME.ENCODE_FAILED` envelopes from
|
|
361
|
+
* {@link encodeParams}.
|
|
362
|
+
*/
|
|
363
|
+
private encodeDraftParams;
|
|
364
|
+
/**
|
|
365
|
+
* Default driver invocation required by the abstract `RuntimeCore` contract. Every production path overrides `execute()` and routes through `executeAgainstQueryable`, so this hook is defensive only — subclasses that delegate back to `super.execute()` would land here.
|
|
366
|
+
*/
|
|
367
|
+
protected runDriver(exec: SqlExecutionPlan): AsyncIterable<Record<string, unknown>>;
|
|
368
|
+
/**
|
|
369
|
+
* SQL pre-compile hook. Runs the registered middleware `beforeCompile` chain over the plan's draft (AST + meta). Returns the original plan unchanged when no middleware rewrote the AST; otherwise returns a new plan carrying the rewritten AST and meta. The AST is the authoritative source of execution metadata, so a rewrite needs no sidecar reconciliation here — the lowering adapter and the encoder both walk the rewritten
|
|
370
|
+
* AST directly.
|
|
371
|
+
*/
|
|
372
|
+
protected runBeforeCompile(plan: SqlQueryPlan): Promise<SqlQueryPlan>;
|
|
373
|
+
execute<Row>(plan: (SqlExecutionPlan<unknown> | SqlQueryPlan<unknown>) & {
|
|
374
|
+
readonly _row?: Row;
|
|
375
|
+
}, options?: RuntimeExecuteOptions): AsyncIterableResult<Row>;
|
|
376
|
+
executePrepared<Params, Row>(ps: PreparedStatement<Params, Row>, params: Params, options?: RuntimeExecuteOptions): AsyncIterableResult<Row>;
|
|
377
|
+
/**
|
|
378
|
+
* Returns the raw driver connection. The connection is a `SqlQueryable` — SQL
|
|
379
|
+
* issued on it runs below the middleware/codec/telemetry pipeline. It carries
|
|
380
|
+
* its own lifecycle (`release`/`destroy`/`beginTransaction`); the caller owns
|
|
381
|
+
* disposal.
|
|
382
|
+
*/
|
|
383
|
+
protected acquireRawConnection(): Promise<SqlConnection>;
|
|
384
|
+
private streamRows;
|
|
385
|
+
/**
|
|
386
|
+
* Execute a plan against a caller-supplied queryable, running the full
|
|
387
|
+
* middleware/codec/telemetry pipeline. Use `acquireRawConnection` to obtain a
|
|
388
|
+
* queryable that subclasses can bind typed plans to.
|
|
389
|
+
*/
|
|
390
|
+
protected executeAgainstQueryable<Row>(plan: SqlExecutionPlan<unknown> | SqlQueryPlan<unknown>, queryable: SqlQueryable, options?: RuntimeExecuteOptions): AsyncIterableResult<Row>;
|
|
391
|
+
prepare<D extends Declaration<CT>, Row, CT extends CodecTypesBase = CodecTypesBase>(declaration: D, callback: PrepareCallback<D, Row>): Promise<PreparedStatement<ParamsFromDeclaration<D, CT>, Row>>;
|
|
392
|
+
/**
|
|
393
|
+
* Execute a prepared statement against a caller-supplied queryable, running
|
|
394
|
+
* the full middleware/codec/telemetry pipeline.
|
|
395
|
+
*/
|
|
396
|
+
protected executePreparedAgainstQueryable<P, Row>(ps: PreparedStatementImpl<P, Row>, userParams: Record<string, unknown>, queryable: SqlQueryable, options?: RuntimeExecuteOptions): AsyncIterableResult<Row>;
|
|
397
|
+
connection(): Promise<RuntimeConnection>;
|
|
398
|
+
private wrapTransaction;
|
|
399
|
+
telemetry(): RuntimeTelemetryEvent | null;
|
|
400
|
+
close(): Promise<void>;
|
|
401
|
+
private ensureCodecRegistryValidated;
|
|
402
|
+
private verifyMarker;
|
|
403
|
+
private recordTelemetry;
|
|
404
|
+
}
|
|
405
|
+
/** Minimal structural type `withTransaction` depends on — anything that can open a connection. */
|
|
406
|
+
interface ConnectionProvider {
|
|
407
|
+
connection(): Promise<RuntimeConnection>;
|
|
408
|
+
}
|
|
409
|
+
declare function withTransaction<R>(runtime: ConnectionProvider, fn: (tx: TransactionContext) => PromiseLike<R>): Promise<R>;
|
|
332
410
|
//#endregion
|
|
333
|
-
//#region src/prepared/
|
|
334
|
-
|
|
335
|
-
readonly codecId: keyof CT & string;
|
|
336
|
-
readonly typeParams?: JsonValue;
|
|
337
|
-
readonly nullable?: boolean;
|
|
338
|
-
};
|
|
339
|
-
type Declaration<CT extends CodecTypesBase = CodecTypesBase> = Readonly<Record<string, ParamSpec<CT>>>;
|
|
340
|
-
type DeclaredCodecId<S> = S extends string ? S : S extends {
|
|
341
|
-
readonly codecId: infer C extends string;
|
|
342
|
-
} ? C : never;
|
|
343
|
-
type DeclaredNullable<S> = S extends {
|
|
344
|
-
readonly nullable: true;
|
|
345
|
-
} ? true : false;
|
|
346
|
-
type BindSiteParams<D> = { readonly [K in keyof D]: Expression<{
|
|
347
|
-
codecId: DeclaredCodecId<D[K]>;
|
|
348
|
-
nullable: DeclaredNullable<D[K]>;
|
|
349
|
-
}> };
|
|
350
|
-
type ParamsFromDeclaration<D, CT extends CodecTypesBase> = { readonly [K in keyof D]: CodecValue<DeclaredCodecId<D[K]>, DeclaredNullable<D[K]>, CT> };
|
|
351
|
-
type PrepareCallback<D, Row> = (params: BindSiteParams<D>) => SqlQueryPlan<Row>;
|
|
352
|
-
interface PreparedStatement<Params, Row> {
|
|
411
|
+
//#region src/prepared/prepared-statement.d.ts
|
|
412
|
+
interface PreparedStatementInternals {
|
|
353
413
|
readonly sql: string;
|
|
354
414
|
readonly ast: AnyQueryAst;
|
|
355
415
|
readonly meta: PlanMeta;
|
|
356
416
|
readonly slots: readonly LoweredParam[];
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
417
|
+
readonly decodeContext: DecodeContext;
|
|
418
|
+
readonly paramMetadata: readonly ParamMetadata[];
|
|
419
|
+
}
|
|
420
|
+
declare class PreparedStatementImpl<Params, Row> implements PreparedStatement<Params, Row>, PreparedStatementInternals {
|
|
421
|
+
readonly sql: string;
|
|
422
|
+
readonly ast: AnyQueryAst;
|
|
423
|
+
readonly meta: PlanMeta;
|
|
424
|
+
readonly slots: readonly LoweredParam[];
|
|
425
|
+
readonly decodeContext: DecodeContext;
|
|
426
|
+
readonly paramMetadata: readonly ParamMetadata[];
|
|
427
|
+
constructor(internals: PreparedStatementInternals);
|
|
363
428
|
execute(target: RuntimeQueryable, params: Params, options?: RuntimeExecuteOptions): AsyncIterableResult<Row>;
|
|
364
429
|
}
|
|
365
430
|
//#endregion
|
|
366
|
-
export {
|
|
367
|
-
//# sourceMappingURL=
|
|
431
|
+
export { RuntimeTelemetryEvent as A, PreparedStatement as B, SqlRuntimeTargetDescriptor as C, createSqlExecutionStack as D, createExecutionContext as E, DeclaredCodecId as F, SqlMiddlewareContext as H, DeclaredNullable as I, ParamSpec as L, VerifyMarkerOption as M, BindSiteParams as N, MarkerReader as O, Declaration as P, ParamsFromDeclaration as R, SqlRuntimeExtensionInstance as S, TypeHelperRegistry as T, deriveParamMetadata as U, SqlMiddleware as V, encodeParamsWithMetadata as W, SqlExecutionStackWithDriver as _, RuntimeConnection as a, SqlRuntimeDriverInstance as b, RuntimeTransaction as c, withTransaction as d, ExecutionContext as f, SqlExecutionStack as g, RuntimeParameterizedCodecDescriptor as h, Runtime as i, TelemetryOutcome as j, RuntimeFamilyAdapter as k, SqlRuntimeBase as l, RuntimeMutationDefaultGenerator as m, PreparedStatementInternals as n, RuntimeOptions as o, GeneratorStability as p, ConnectionProvider as r, RuntimeQueryable as s, PreparedStatementImpl as t, TransactionContext as u, SqlRuntimeAdapterDescriptor as v, SqlStaticContributions as w, SqlRuntimeExtensionDescriptor as x, SqlRuntimeAdapterInstance as y, PrepareCallback as z };
|
|
432
|
+
//# sourceMappingURL=prepared-statement-FQyyQnkC.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepared-statement-FQyyQnkC.d.mts","names":[],"sources":["../src/codecs/encoding.ts","../src/middleware/sql-middleware.ts","../src/codecs/decoding.ts","../src/prepared/types.ts","../src/runtime-spi.ts","../src/sql-context.ts","../src/sql-runtime.ts","../src/prepared/prepared-statement.ts"],"mappings":"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"}
|
package/dist/test/utils.d.mts
CHANGED
|
@@ -1,23 +1,34 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { C as SqlRuntimeTargetDescriptor, S as SqlRuntimeExtensionInstance, b as SqlRuntimeDriverInstance, f as ExecutionContext, i as Runtime, o as RuntimeOptions, v as SqlRuntimeAdapterDescriptor, x as SqlRuntimeExtensionDescriptor, y as SqlRuntimeAdapterInstance } from "../prepared-statement-FQyyQnkC.mjs";
|
|
2
|
+
import { CodecDescriptor } from "@prisma-next/framework-components/codec";
|
|
2
3
|
import { ResultType } from "@prisma-next/framework-components/runtime";
|
|
3
4
|
import { Adapter, AnyQueryAst, Codec, ContractCodecRegistry, LoweredStatement, SelectAst } from "@prisma-next/sql-relational-core/ast";
|
|
4
5
|
import { RuntimeDriverDescriptor } from "@prisma-next/framework-components/execution";
|
|
5
|
-
import { SqlStorage, SqlStorageInput, StorageTableInput, buildSqlNamespace } from "@prisma-next/sql-contract/types";
|
|
6
6
|
import { Contract, ContractModelBase } from "@prisma-next/contract/types";
|
|
7
|
+
import { SqlStorage, SqlStorageInput, StorageTableInput, buildSqlNamespace } from "@prisma-next/sql-contract/types";
|
|
7
8
|
import { DevDatabase, collectAsync, createDevDatabase, teardownTestDatabase, withClient } from "@prisma-next/test-utils";
|
|
8
9
|
import { SqlExecutionPlan, SqlQueryPlan } from "@prisma-next/sql-relational-core/plan";
|
|
9
|
-
import { CodecDescriptor } from "@prisma-next/framework-components/codec";
|
|
10
10
|
import { Client } from "pg";
|
|
11
11
|
|
|
12
12
|
//#region test/utils.d.ts
|
|
13
|
+
type CreateTestRuntimeOptions<TContract extends Contract<SqlStorage>> = Omit<RuntimeOptions<TContract>, 'adapter'> & {
|
|
14
|
+
readonly stackInstance: {
|
|
15
|
+
readonly adapter: RuntimeOptions<TContract>['adapter'];
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Test-only concrete runtime. Unpacks `stackInstance.adapter` and forwards
|
|
20
|
+
* the rest into `TestSqlRuntime`, a trivial concrete leaf of the abstract
|
|
21
|
+
* `SqlRuntimeBase`.
|
|
22
|
+
*/
|
|
23
|
+
declare function createTestRuntime<TContract extends Contract<SqlStorage>>(options: CreateTestRuntimeOptions<TContract>): Runtime;
|
|
13
24
|
/**
|
|
14
25
|
* Executes a plan and collects all results into an array. This helper DRYs up the common pattern of executing plans in tests. The return type is inferred from the plan's type parameter.
|
|
15
26
|
*/
|
|
16
|
-
declare function executePlanAndCollect<P extends SqlExecutionPlan<ResultType<P>> | SqlQueryPlan<ResultType<P>>>(runtime:
|
|
27
|
+
declare function executePlanAndCollect<P extends SqlExecutionPlan<ResultType<P>> | SqlQueryPlan<ResultType<P>>>(runtime: Runtime, plan: P): Promise<ResultType<P>[]>;
|
|
17
28
|
/**
|
|
18
29
|
* Drains a plan execution, consuming all results without collecting them. Useful for testing side effects without memory overhead.
|
|
19
30
|
*/
|
|
20
|
-
declare function drainPlanExecution(runtime:
|
|
31
|
+
declare function drainPlanExecution(runtime: Runtime, plan: SqlExecutionPlan | SqlQueryPlan<unknown>): Promise<void>;
|
|
21
32
|
/**
|
|
22
33
|
* Sets up database schema and data, then writes the contract marker. This helper DRYs up the common pattern of database setup in tests.
|
|
23
34
|
*
|
|
@@ -89,7 +100,7 @@ type StubAdapter = Adapter<SelectAst, Contract<SqlStorage>, LoweredStatement> &
|
|
|
89
100
|
*/
|
|
90
101
|
declare function createStubAdapter(): StubAdapter;
|
|
91
102
|
declare function unboundNamespaceWithTables(tables: Record<string, StorageTableInput>): ReturnType<typeof buildSqlNamespace>;
|
|
92
|
-
declare function emptySqlTestDomain(): import("@prisma-next/contract/types").ApplicationDomain
|
|
103
|
+
declare function emptySqlTestDomain(): import("@prisma-next/contract/types").ApplicationDomain;
|
|
93
104
|
declare function createTestContract(contract: Partial<Omit<Contract<SqlStorage>, 'profileHash' | 'storage' | 'domain'>> & {
|
|
94
105
|
storageHash?: string;
|
|
95
106
|
profileHash?: string;
|
|
@@ -99,5 +110,5 @@ declare function createTestContract(contract: Partial<Omit<Contract<SqlStorage>,
|
|
|
99
110
|
}): Contract<SqlStorage>;
|
|
100
111
|
declare function stubAst(): AnyQueryAst;
|
|
101
112
|
//#endregion
|
|
102
|
-
export { type DevDatabase, SeedMarkerInput, StubAdapter, buildTestContractCodecs, collectAsync, createDevDatabase, createStubAdapter, createTestAdapterDescriptor, createTestContext, createTestContract, createTestStackInstance, createTestTargetDescriptor, descriptorsFromCodecs, drainPlanExecution, emptySqlTestDomain, executePlanAndCollect, seedTestMarker, setupTestDatabase, stubAst, teardownTestDatabase, unboundNamespaceWithTables, withClient, writeTestContractMarker };
|
|
113
|
+
export { type DevDatabase, SeedMarkerInput, StubAdapter, buildTestContractCodecs, collectAsync, createDevDatabase, createStubAdapter, createTestAdapterDescriptor, createTestContext, createTestContract, createTestRuntime, createTestStackInstance, createTestTargetDescriptor, descriptorsFromCodecs, drainPlanExecution, emptySqlTestDomain, executePlanAndCollect, seedTestMarker, setupTestDatabase, stubAst, teardownTestDatabase, unboundNamespaceWithTables, withClient, writeTestContractMarker };
|
|
103
114
|
//# sourceMappingURL=utils.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.mts","names":[],"sources":["../../test/utils.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.mts","names":[],"sources":["../../test/utils.ts"],"mappings":";;;;;;;;;;;;KAgEK,wBAAA,mBAA2C,QAAA,CAAS,UAAA,KAAe,IAAA,CACtE,cAAA,CAAe,SAAA;EAAA,SAGN,aAAA;IAAA,SAA0B,OAAA,EAAS,cAAA,CAAe,SAAA;EAAA;AAAA;;;;;;iBAQ7C,iBAAA,mBAAoC,QAAA,CAAS,UAAA,GAC3D,OAAA,EAAS,wBAAA,CAAyB,SAAA,IACjC,OAAA;;;;iBAgBmB,qBAAA,WACV,gBAAA,CAAiB,UAAA,CAAW,CAAA,KAAM,YAAA,CAAa,UAAA,CAAW,CAAA,IACpE,OAAA,EAAS,OAAA,EAAS,IAAA,EAAM,CAAA,GAAI,OAAA,CAAQ,UAAA,CAAW,CAAA;;;;iBAQ3B,kBAAA,CACpB,OAAA,EAAS,OAAA,EACT,IAAA,EAAM,gBAAA,GAAmB,YAAA,YACxB,OAAA;;;;;;;AAvCmE;iBAkDhD,iBAAA,CACpB,MAAA,EAAQ,MAAA,EACR,QAAA,EAAU,QAAA,CAAS,UAAA,GACnB,OAAA,GAAU,MAAA,EAAQ,MAAA,KAAW,OAAA,QAC7B,qBAAA,GAAwB,MAAA,EAAQ,MAAA,KAAW,OAAA,SAC1C,OAAA;AAAA,UAUc,eAAA;EAzDgB;EAAA,SA2DtB,KAAA;EAAA,SACA,WAAA;EAAA,SACA,WAAA;EAAA,SACA,YAAA;EAAA,SACA,gBAAA;EAAA,SACA,UAAA;AAAA;;;;;;;iBASW,cAAA,CAAe,MAAA,EAAQ,MAAA,EAAQ,KAAA,EAAO,eAAA,GAAkB,OAAA;;AAvEpE;AAgBV;;iBA2EsB,uBAAA,CACpB,MAAA,EAAQ,MAAA,EACR,QAAA,EAAU,QAAA,CAAS,UAAA,IAClB,OAAA;;;;;;;iBAea,uBAAA,CACd,MAAA,EAAQ,aAAA,CAAc,KAAA,YACrB,qBAAA;;;;;iBAqCa,qBAAA,CACd,MAAA,EAAQ,aAAA,CAAc,KAAA,YACrB,aAAA,CAAc,eAAA;AAAA,iBAuCD,2BAAA,CACd,OAAA,EAAS,WAAA,GACR,2BAA2B;;;;iBAoBd,0BAAA,IAA8B,0BAA0B;;;;;;iBAmBxD,iBAAA,mBAAoC,QAAA,CAAS,UAAA,GAC3D,QAAA,EAAU,SAAA,EACV,OAAA,EAAS,WAAA,EACT,OAAA;EACE,cAAA,GAAiB,aAAA,CAAc,6BAAA;AAAA,IAEhC,gBAAA,CAAiB,SAAA;AAAA,iBAWJ,uBAAA,CAAwB,OAAA;EACtC,cAAA,GAAiB,aAAA,CAAc,6BAAA;EAC/B,MAAA,GAAS,uBAAA,6BAIP,wBAAA;AAAA,0DAEH,sBAAA,oBAAA,yBAAA,cAAA,wBAAA,cAAA,2BAAA;AArOD;;;AAAA,KAmPY,WAAA,GAAc,OAAA,CAAQ,SAAA,EAAW,QAAA,CAAS,UAAA,GAAa,gBAAA;EAAA,SACxD,QAAA,EAAU,aAAA,CAAc,KAAA;AAAA;;;;;;iBAQnB,iBAAA,IAAqB,WAAW;AAAA,iBA0FhC,0BAAA,CACd,MAAA,EAAQ,MAAA,SAAe,iBAAA,IACtB,UAAA,QAAkB,iBAAA;AAAA,iBAIL,kBAAA,0CAAkB,iBAAA;AAAA,iBAIlB,kBAAA,CACd,QAAA,EAAU,OAAA,CAAQ,IAAA,CAAK,QAAA,CAAS,UAAA;EAC9B,WAAA;EACA,WAAA;EACA,MAAA,GAAS,MAAA,SAAe,iBAAA;EACxB,MAAA,GAAS,QAAA,CAAS,UAAA;EAClB,OAAA,GAAU,OAAA,CAAQ,IAAA,CAAK,eAAA;AAAA,IAExB,QAAA,CAAS,UAAA;AAAA,iBA2BI,OAAA,IAAW,WAAW"}
|
package/dist/test/utils.mjs
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { i as createSqlExecutionStack, r as createExecutionContext } from "../exports-
|
|
2
|
-
import { runtimeError } from "@prisma-next/framework-components/runtime";
|
|
1
|
+
import { i as createSqlExecutionStack, r as createExecutionContext, t as SqlRuntimeBase } from "../exports-BXdIMaxT.mjs";
|
|
3
2
|
import { canonicalizeJson } from "@prisma-next/framework-components/utils";
|
|
3
|
+
import { runtimeError } from "@prisma-next/framework-components/runtime";
|
|
4
4
|
import { SelectAst, TableSource } from "@prisma-next/sql-relational-core/ast";
|
|
5
|
+
import { ifDefined } from "@prisma-next/utils/defined";
|
|
5
6
|
import { instantiateExecutionStack } from "@prisma-next/framework-components/execution";
|
|
6
|
-
import { SqlStorage, SqlUnboundNamespace, buildSqlNamespace } from "@prisma-next/sql-contract/types";
|
|
7
7
|
import { coreHash, profileHash } from "@prisma-next/contract/types";
|
|
8
8
|
import { APP_SPACE_ID } from "@prisma-next/framework-components/control";
|
|
9
9
|
import { UNBOUND_NAMESPACE_ID } from "@prisma-next/framework-components/ir";
|
|
10
10
|
import { builtinGeneratorIds } from "@prisma-next/ids";
|
|
11
11
|
import { generateId } from "@prisma-next/ids/runtime";
|
|
12
|
+
import { SqlStorage, SqlUnboundNamespace, buildSqlNamespace } from "@prisma-next/sql-contract/types";
|
|
12
13
|
import { applicationDomainOf, collectAsync, collectAsync as collectAsync$1, createDevDatabase, drainAsyncIterable, teardownTestDatabase, withClient } from "@prisma-next/test-utils";
|
|
13
14
|
//#region test/test-codec.ts
|
|
14
15
|
function defineTestCodec(config) {
|
|
@@ -48,6 +49,24 @@ function createTestMutationDefaultGenerators() {
|
|
|
48
49
|
stability: "field"
|
|
49
50
|
}));
|
|
50
51
|
}
|
|
52
|
+
var TestSqlRuntime = class extends SqlRuntimeBase {};
|
|
53
|
+
/**
|
|
54
|
+
* Test-only concrete runtime. Unpacks `stackInstance.adapter` and forwards
|
|
55
|
+
* the rest into `TestSqlRuntime`, a trivial concrete leaf of the abstract
|
|
56
|
+
* `SqlRuntimeBase`.
|
|
57
|
+
*/
|
|
58
|
+
function createTestRuntime(options) {
|
|
59
|
+
const { stackInstance, context, driver, verifyMarker, middleware, mode, log } = options;
|
|
60
|
+
return new TestSqlRuntime({
|
|
61
|
+
context,
|
|
62
|
+
adapter: stackInstance.adapter,
|
|
63
|
+
driver,
|
|
64
|
+
...ifDefined("verifyMarker", verifyMarker),
|
|
65
|
+
...ifDefined("middleware", middleware),
|
|
66
|
+
...ifDefined("mode", mode),
|
|
67
|
+
...ifDefined("log", log)
|
|
68
|
+
});
|
|
69
|
+
}
|
|
51
70
|
/**
|
|
52
71
|
* Executes a plan and collects all results into an array. This helper DRYs up the common pattern of executing plans in tests. The return type is inferred from the plan's type parameter.
|
|
53
72
|
*/
|
|
@@ -343,6 +362,6 @@ function stubAst() {
|
|
|
343
362
|
return SelectAst.from(TableSource.named("stub"));
|
|
344
363
|
}
|
|
345
364
|
//#endregion
|
|
346
|
-
export { buildTestContractCodecs, collectAsync, createDevDatabase, createStubAdapter, createTestAdapterDescriptor, createTestContext, createTestContract, createTestStackInstance, createTestTargetDescriptor, descriptorsFromCodecs, drainPlanExecution, emptySqlTestDomain, executePlanAndCollect, seedTestMarker, setupTestDatabase, stubAst, teardownTestDatabase, unboundNamespaceWithTables, withClient, writeTestContractMarker };
|
|
365
|
+
export { buildTestContractCodecs, collectAsync, createDevDatabase, createStubAdapter, createTestAdapterDescriptor, createTestContext, createTestContract, createTestRuntime, createTestStackInstance, createTestTargetDescriptor, descriptorsFromCodecs, drainPlanExecution, emptySqlTestDomain, executePlanAndCollect, seedTestMarker, setupTestDatabase, stubAst, teardownTestDatabase, unboundNamespaceWithTables, withClient, writeTestContractMarker };
|
|
347
366
|
|
|
348
367
|
//# sourceMappingURL=utils.mjs.map
|