@prisma-next/sql-relational-core 0.5.0-dev.3 → 0.5.0-dev.30
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 +67 -1
- package/dist/{codec-types-DcEITed4.d.mts → codec-types-DAQNecFs.d.mts} +84 -21
- package/dist/codec-types-DAQNecFs.d.mts.map +1 -0
- package/dist/{errors-ChY_dHam.d.mts → errors-CJKxtKSt.d.mts} +2 -2
- package/dist/errors-CJKxtKSt.d.mts.map +1 -0
- package/dist/{errors-D3xmG4h-.mjs → errors-D6kqqjHM.mjs} +1 -1
- package/dist/{errors-D3xmG4h-.mjs.map → errors-D6kqqjHM.mjs.map} +1 -1
- package/dist/exports/ast.d.mts +27 -12
- package/dist/exports/ast.d.mts.map +1 -1
- package/dist/exports/ast.mjs +63 -1089
- package/dist/exports/ast.mjs.map +1 -1
- package/dist/exports/errors.d.mts +4 -4
- package/dist/exports/errors.mjs +1 -1
- package/dist/exports/expression.d.mts +79 -0
- package/dist/exports/expression.d.mts.map +1 -0
- package/dist/exports/expression.mjs +41 -0
- package/dist/exports/expression.mjs.map +1 -0
- package/dist/exports/plan.d.mts +3 -2
- package/dist/exports/plan.mjs +1 -17
- package/dist/exports/query-lane-context.d.mts +2 -2
- package/dist/exports/types.d.mts +5 -4
- package/dist/index.d.mts +11 -9
- package/dist/index.mjs +6 -4
- package/dist/plan-C7SiEWkN.d.mts +25 -0
- package/dist/plan-C7SiEWkN.d.mts.map +1 -0
- package/dist/{query-lane-context-UlR8vOkd.d.mts → query-lane-context-Cch9CN9H.d.mts} +2 -2
- package/dist/{query-lane-context-UlR8vOkd.d.mts.map → query-lane-context-Cch9CN9H.d.mts.map} +1 -1
- package/dist/sql-execution-plan-Dgx7BGin.d.mts +33 -0
- package/dist/sql-execution-plan-Dgx7BGin.d.mts.map +1 -0
- package/dist/{types-C3Hg-CVz.d.mts → types-B4dL4lc3.d.mts} +17 -22
- package/dist/types-B4dL4lc3.d.mts.map +1 -0
- package/dist/types-BUlUvdIU.d.mts +24 -0
- package/dist/types-BUlUvdIU.d.mts.map +1 -0
- package/dist/types-DUL-3vy6.mjs +1064 -0
- package/dist/types-DUL-3vy6.mjs.map +1 -0
- package/dist/{types-k9pir8XY.d.mts → types-TPM2rhCa.d.mts} +12 -19
- package/dist/types-TPM2rhCa.d.mts.map +1 -0
- package/package.json +10 -9
- package/src/ast/adapter-types.ts +8 -0
- package/src/ast/codec-types.ts +142 -43
- package/src/ast/sql-codecs.ts +20 -3
- package/src/ast/types.ts +142 -172
- package/src/ast/util.ts +23 -0
- package/src/exports/expression.ts +1 -0
- package/src/exports/plan.ts +1 -0
- package/src/exports/types.ts +1 -0
- package/src/expression.ts +117 -0
- package/src/index.ts +1 -0
- package/src/plan.ts +11 -30
- package/src/runtime-scope.ts +20 -0
- package/src/sql-execution-plan.ts +28 -0
- package/src/types.ts +9 -22
- package/dist/codec-types-DcEITed4.d.mts.map +0 -1
- package/dist/errors-ChY_dHam.d.mts.map +0 -1
- package/dist/exports/plan.mjs.map +0 -1
- package/dist/plan-Cs65hb-E.d.mts +0 -28
- package/dist/plan-Cs65hb-E.d.mts.map +0 -1
- package/dist/types-C3Hg-CVz.d.mts.map +0 -1
- package/dist/types-k9pir8XY.d.mts.map +0 -1
package/README.md
CHANGED
|
@@ -89,7 +89,73 @@ flowchart TD
|
|
|
89
89
|
|
|
90
90
|
### Plan Helpers (`plan.ts`)
|
|
91
91
|
- Defines `SqlQueryPlan<Row>` interface for SQL query plans produced by lanes before lowering
|
|
92
|
-
-
|
|
92
|
+
- Per [ADR 205](../../../../docs/architecture%20docs/adrs/ADR%20205%20-%20Execution%20metadata%20lives%20on%20AST.md), codec IDs travel on `ProjectionItem.codecId` (output) and `ParamRef.codecId` (parameters) on the AST itself, not on plan-level descriptor lists
|
|
93
|
+
|
|
94
|
+
### Codec Factory (`ast/codec-types.ts` via `exports/ast.ts`)
|
|
95
|
+
|
|
96
|
+
- `codec({...})` is the SQL-side factory for constructing `Codec` values. It accepts `encode` and `decode` author functions in **either sync or async form** with no annotations; the constructed codec exposes Promise-returning query-time methods regardless of which form was used. Both `encode` and `decode` are required so `TInput` and `TWire` are always covered by an explicit author function — the factory installs no identity fallback.
|
|
97
|
+
- Build-time methods (`encodeJson`, `decodeJson`, `renderOutputType?`) are synchronous and pass through unchanged.
|
|
98
|
+
- This is the only public entry point for SQL codecs. There is no separate `codecSync` / `codecAsync` factory and no per-codec async marker on the resulting value.
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
// Sync authoring:
|
|
102
|
+
const textCodec = codec({
|
|
103
|
+
typeId: 'pg/text@1',
|
|
104
|
+
targetTypes: ['text'],
|
|
105
|
+
encode: (v: string) => v,
|
|
106
|
+
decode: (w: string) => w,
|
|
107
|
+
encodeJson: (v: string) => v,
|
|
108
|
+
decodeJson: (j: string) => j as string,
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
// Async authoring (e.g. KMS-backed encryption): same factory, same shape.
|
|
112
|
+
const secretCodec = codec({
|
|
113
|
+
typeId: 'pg/secret@1',
|
|
114
|
+
targetTypes: ['text'],
|
|
115
|
+
encode: async (v: string) => encrypt(v, await getKey()),
|
|
116
|
+
decode: async (w: string) => decrypt(w, await getKey()),
|
|
117
|
+
encodeJson: (v: string) => v,
|
|
118
|
+
decodeJson: (j: string) => j as string,
|
|
119
|
+
});
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
#### Codec call context (`ctx`)
|
|
123
|
+
|
|
124
|
+
Codecs receive a second `ctx` options argument; you may ignore it. The runtime allocates one `SqlCodecCallContext` per `runtime.execute(plan, { signal })` call and threads the same reference to every codec dispatch site as a non-optional argument — when no `signal` is supplied the runtime still threads an empty `{}`, never `undefined`. The internal `Codec` interface declares the parameter as required (`encode(value, ctx: SqlCodecCallContext)` / `decode(wire, ctx: SqlCodecCallContext)`); single-arg author functions `(value) => …` continue to compile via TypeScript's bivariance for trailing parameters, so codec ergonomics are unchanged.
|
|
125
|
+
|
|
126
|
+
- **`ctx.signal`** — the same `AbortSignal` reference at every codec call in one execute. Forward it to network SDKs so aborted queries stop talking to the underlying service.
|
|
127
|
+
- **`ctx.column`** (decode-side only) — `{ table, name }` for cells the runtime can resolve to a single column ref; `undefined` for aggregate aliases, computed projections, and other unresolvable cells. Encode-side `ctx.column` is always `undefined` (encode-time column enrichment is the middleware's domain).
|
|
128
|
+
|
|
129
|
+
```ts
|
|
130
|
+
// Forward ctx.signal to a network call so aborted queries stop the SDK.
|
|
131
|
+
const kmsSecretCodec = codec({
|
|
132
|
+
typeId: 'pg/kms-secret@1',
|
|
133
|
+
targetTypes: ['text'],
|
|
134
|
+
encode: async (v: string, ctx) =>
|
|
135
|
+
kms.encrypt({ plaintext: v }, { signal: ctx?.signal }),
|
|
136
|
+
decode: async (w: string, ctx) =>
|
|
137
|
+
kms.decrypt({ ciphertext: w }, { signal: ctx?.signal }),
|
|
138
|
+
encodeJson: (v: string) => v,
|
|
139
|
+
decodeJson: (j: string) => j as string,
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
// Use ctx.column on decode to construct an envelope value carrying (table, name).
|
|
143
|
+
const envelopeCodec = codec({
|
|
144
|
+
typeId: 'pg/envelope@1',
|
|
145
|
+
targetTypes: ['text'],
|
|
146
|
+
encode: async (v: string) => v,
|
|
147
|
+
decode: async (w: string, ctx) => ({
|
|
148
|
+
value: w,
|
|
149
|
+
column: ctx?.column,
|
|
150
|
+
}),
|
|
151
|
+
encodeJson: (v: string) => v,
|
|
152
|
+
decodeJson: (j: string) => j as string,
|
|
153
|
+
});
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Codec bodies that ignore `ctx.signal` complete in the background (cooperative cancellation); aborts still surface to the caller as `RUNTIME.ABORTED` with `details.phase ∈ { 'encode', 'decode', 'stream' }`.
|
|
157
|
+
|
|
158
|
+
See [ADR 204 — Single-Path Async Codec Runtime](../../../../docs/architecture%20docs/adrs/ADR%20204%20-%20Single-Path%20Async%20Codec%20Runtime.md) and [ADR 207 — Codec call context: per-query `AbortSignal` and column metadata](../../../../docs/architecture%20docs/adrs/ADR%20207%20-%20Codec%20call%20context%20per-query%20AbortSignal%20and%20column%20metadata.md).
|
|
93
159
|
|
|
94
160
|
### AST Surface (`ast/*` via `exports/ast.ts`)
|
|
95
161
|
- Query roots: `SelectAst`, `InsertAst`, `UpdateAst`, `DeleteAst`
|
|
@@ -1,10 +1,41 @@
|
|
|
1
1
|
import { Type } from "arktype";
|
|
2
2
|
import { JsonValue } from "@prisma-next/contract/types";
|
|
3
|
-
import { Codec, CodecTrait, CodecTrait as CodecTrait$1 } from "@prisma-next/framework-components/codec";
|
|
3
|
+
import { Codec, CodecCallContext, CodecCallContext as CodecCallContext$1, CodecTrait, CodecTrait as CodecTrait$1 } from "@prisma-next/framework-components/codec";
|
|
4
4
|
import { O } from "ts-toolbelt";
|
|
5
5
|
|
|
6
6
|
//#region src/ast/codec-types.d.ts
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* SQL-family addressing of a single column. The decode site populates a
|
|
10
|
+
* `SqlColumnRef` whenever it can resolve the cell to a single underlying
|
|
11
|
+
* `(table, column)` (the typical case for projected columns from a
|
|
12
|
+
* single-table source); cells the runtime cannot resolve (aggregate
|
|
13
|
+
* aliases, include aggregate fields, computed projections without a
|
|
14
|
+
* simple ref) get `column = undefined`.
|
|
15
|
+
*
|
|
16
|
+
* The shape is a structural projection of the runtime's `ColumnRef` so
|
|
17
|
+
* the SQL decode site can reuse the resolution it already performs for
|
|
18
|
+
* `RUNTIME.DECODE_FAILED` envelope construction without allocating
|
|
19
|
+
* twice per cell.
|
|
20
|
+
*/
|
|
21
|
+
interface SqlColumnRef {
|
|
22
|
+
readonly table: string;
|
|
23
|
+
readonly name: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* SQL-family per-call context. Extends the framework {@link CodecCallContext}
|
|
27
|
+
* (which carries `signal` only) with `column?: SqlColumnRef`, populated
|
|
28
|
+
* on **decode** call sites that can resolve a single underlying column
|
|
29
|
+
* ref. Encode call sites currently leave `column` undefined (encode-time
|
|
30
|
+
* column context is the middleware's domain).
|
|
31
|
+
*
|
|
32
|
+
* SQL codec authors writing a `(value, ctx)` author function for the SQL
|
|
33
|
+
* `codec()` factory observe this type. The framework codec dispatch
|
|
34
|
+
* surface (and Mongo) sees only the base `CodecCallContext`.
|
|
35
|
+
*/
|
|
36
|
+
interface SqlCodecCallContext extends CodecCallContext {
|
|
37
|
+
readonly column?: SqlColumnRef;
|
|
38
|
+
}
|
|
8
39
|
/**
|
|
9
40
|
* Descriptor for parameterized codecs that require type parameter validation.
|
|
10
41
|
* Shared between adapter (compile-time) and runtime layers to avoid duplication.
|
|
@@ -41,13 +72,23 @@ interface CodecMeta {
|
|
|
41
72
|
};
|
|
42
73
|
}
|
|
43
74
|
/**
|
|
44
|
-
* SQL codec
|
|
75
|
+
* SQL codec — extends the framework codec base with SQL-specific metadata:
|
|
76
|
+
* driver-native type info (`meta.db.sql.<dialect>.nativeType`) and an
|
|
77
|
+
* optional parameterized-codec descriptor (`paramsSchema` + `init`) for
|
|
78
|
+
* codecs that require type-parameter validation (e.g. `pg/vector@1`).
|
|
79
|
+
*
|
|
80
|
+
* `encode` and `decode` are redeclared here to narrow the per-call
|
|
81
|
+
* context to the SQL-family {@link SqlCodecCallContext} (adds
|
|
82
|
+
* `column?: SqlColumnRef`). TypeScript treats method-syntax declarations
|
|
83
|
+
* bivariantly, so the SQL narrowing is structurally compatible with the
|
|
84
|
+
* framework {@link BaseCodec} super-interface.
|
|
45
85
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
* and between JS values and contract JSON.
|
|
86
|
+
* See `Codec` in `@prisma-next/framework-components/codec` for the codec
|
|
87
|
+
* contract that this interface extends.
|
|
49
88
|
*/
|
|
50
|
-
interface Codec$1<Id$1 extends string = string, TTraits$1 extends readonly CodecTrait[] = readonly CodecTrait[], TWire = unknown,
|
|
89
|
+
interface Codec$1<Id$1 extends string = string, TTraits$1 extends readonly CodecTrait[] = readonly CodecTrait[], TWire = unknown, TInput = unknown, TParams = Record<string, unknown>, THelper = unknown> extends Codec<Id$1, TTraits$1, TWire, TInput> {
|
|
90
|
+
encode(value: TInput, ctx: SqlCodecCallContext): Promise<TWire>;
|
|
91
|
+
decode(wire: TWire, ctx: SqlCodecCallContext): Promise<TInput>;
|
|
51
92
|
readonly meta?: CodecMeta;
|
|
52
93
|
readonly paramsSchema?: Type<TParams>;
|
|
53
94
|
readonly init?: (params: TParams) => THelper;
|
|
@@ -74,37 +115,59 @@ interface CodecRegistry {
|
|
|
74
115
|
values(): IterableIterator<Codec$1<string>>;
|
|
75
116
|
}
|
|
76
117
|
/**
|
|
77
|
-
*
|
|
78
|
-
*
|
|
118
|
+
* Conditional bundle for `encodeJson`/`decodeJson`: when `TInput` is
|
|
119
|
+
* structurally assignable to `JsonValue` the identity defaults are
|
|
120
|
+
* sound and both fields are optional; otherwise both fields are
|
|
121
|
+
* required so an author cannot silently produce a non-JSON-safe
|
|
122
|
+
* contract artifact.
|
|
123
|
+
*/
|
|
124
|
+
type JsonRoundTripConfig<TInput> = [TInput] extends [JsonValue] ? {
|
|
125
|
+
encodeJson?: (value: TInput) => JsonValue;
|
|
126
|
+
decodeJson?: (json: JsonValue) => TInput;
|
|
127
|
+
} : {
|
|
128
|
+
encodeJson: (value: TInput) => JsonValue;
|
|
129
|
+
decodeJson: (json: JsonValue) => TInput;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Construct a SQL codec from author functions and optional metadata.
|
|
133
|
+
*
|
|
134
|
+
* Author `encode` and `decode` as sync or async functions; the factory
|
|
135
|
+
* produces a {@link Codec} whose query-time methods follow the boundary
|
|
136
|
+
* contract documented on `Codec`. Authors receive a second `ctx` options
|
|
137
|
+
* argument carrying the SQL-family per-call context; ignore it if you
|
|
138
|
+
* don't need it.
|
|
139
|
+
*
|
|
140
|
+
* Both `encode` and `decode` are required so `TInput` and `TWire` are
|
|
141
|
+
* always covered by an explicit author function — the factory installs
|
|
142
|
+
* no identity fallback. `encodeJson` and `decodeJson` default to identity
|
|
143
|
+
* **only when `TInput` is assignable to `JsonValue`**; otherwise both are
|
|
144
|
+
* required so the contract artifact stays JSON-safe.
|
|
79
145
|
*/
|
|
80
|
-
declare function codec<Id$1 extends string, const TTraits$1 extends readonly CodecTrait[], TWire,
|
|
146
|
+
declare function codec<Id$1 extends string, const TTraits$1 extends readonly CodecTrait[] = readonly [], TWire = unknown, TInput = unknown, TParams = Record<string, unknown>, THelper = unknown>(config: {
|
|
81
147
|
typeId: Id$1;
|
|
82
148
|
targetTypes: readonly string[];
|
|
83
|
-
encode: (value:
|
|
84
|
-
decode: (wire: TWire) =>
|
|
85
|
-
encodeJson?: (value: TJs) => JsonValue;
|
|
86
|
-
decodeJson?: (json: JsonValue) => TJs;
|
|
149
|
+
encode: (value: TInput, ctx: SqlCodecCallContext) => TWire | Promise<TWire>;
|
|
150
|
+
decode: (wire: TWire, ctx: SqlCodecCallContext) => TInput | Promise<TInput>;
|
|
87
151
|
meta?: CodecMeta;
|
|
88
152
|
paramsSchema?: Type<TParams>;
|
|
89
153
|
init?: (params: TParams) => THelper;
|
|
90
154
|
traits?: TTraits$1;
|
|
91
155
|
renderOutputType?: (typeParams: Record<string, unknown>) => string | undefined;
|
|
92
|
-
}): Codec$1<Id$1, TTraits$1, TWire,
|
|
156
|
+
} & JsonRoundTripConfig<TInput>): Codec$1<Id$1, TTraits$1, TWire, TInput, TParams, THelper>;
|
|
93
157
|
/**
|
|
94
158
|
* Type helpers to extract codec types.
|
|
95
159
|
*/
|
|
96
160
|
type CodecId<T> = T extends Codec$1<infer Id> ? Id : T extends {
|
|
97
161
|
readonly id: infer Id;
|
|
98
162
|
} ? Id : never;
|
|
99
|
-
type CodecInput<T> = T extends Codec$1<string, readonly CodecTrait[], unknown, infer
|
|
100
|
-
type CodecOutput<T> = T extends Codec$1<string, readonly CodecTrait[], unknown, infer JsT> ? JsT : never;
|
|
163
|
+
type CodecInput<T> = T extends Codec$1<string, readonly CodecTrait[], unknown, infer In> ? In : never;
|
|
101
164
|
type CodecTraits<T> = T extends Codec$1<string, infer TTraits> ? TTraits[number] & CodecTrait : never;
|
|
102
165
|
/**
|
|
103
166
|
* Type helper to extract codec types from builder instance.
|
|
104
167
|
*/
|
|
105
168
|
type ExtractCodecTypes<ScalarNames extends { readonly [K in keyof ScalarNames]: Codec$1<string> } = Record<never, never>> = { readonly [K in keyof ScalarNames as ScalarNames[K] extends Codec$1<infer Id> ? Id : never]: {
|
|
106
169
|
readonly input: CodecInput<ScalarNames[K]>;
|
|
107
|
-
readonly output:
|
|
170
|
+
readonly output: CodecInput<ScalarNames[K]>;
|
|
108
171
|
readonly traits: CodecTraits<ScalarNames[K]>;
|
|
109
172
|
} };
|
|
110
173
|
/**
|
|
@@ -126,8 +189,8 @@ interface CodecDefBuilder<ScalarNames extends { readonly [K in keyof ScalarNames
|
|
|
126
189
|
readonly scalar: K;
|
|
127
190
|
readonly codec: ScalarNames[K];
|
|
128
191
|
readonly input: CodecInput<ScalarNames[K]>;
|
|
129
|
-
readonly output:
|
|
130
|
-
readonly jsType:
|
|
192
|
+
readonly output: CodecInput<ScalarNames[K]>;
|
|
193
|
+
readonly jsType: CodecInput<ScalarNames[K]>;
|
|
131
194
|
} };
|
|
132
195
|
readonly dataTypes: { readonly [K in keyof ScalarNames]: { readonly [Id in keyof ExtractCodecTypes<Record<K, ScalarNames[K]>>]: Id }[keyof ExtractCodecTypes<Record<K, ScalarNames[K]>>] };
|
|
133
196
|
}
|
|
@@ -140,5 +203,5 @@ declare function createCodecRegistry(): CodecRegistry;
|
|
|
140
203
|
*/
|
|
141
204
|
declare function defineCodecs(): CodecDefBuilder<Record<never, never>>;
|
|
142
205
|
//#endregion
|
|
143
|
-
export {
|
|
144
|
-
//# sourceMappingURL=codec-types-
|
|
206
|
+
export { defineCodecs as _, CodecInput as a, CodecRegistry as c, ExtractCodecTypes as d, ExtractDataTypes as f, createCodecRegistry as g, codec as h, CodecId as i, CodecTrait$1 as l, SqlColumnRef as m, CodecCallContext$1 as n, CodecMeta as o, SqlCodecCallContext as p, CodecDefBuilder as r, CodecParamsDescriptor as s, Codec$1 as t, CodecTraits as u };
|
|
207
|
+
//# sourceMappingURL=codec-types-DAQNecFs.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec-types-DAQNecFs.d.mts","names":[],"sources":["../src/ast/codec-types.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { y as RuntimeError } from "./types-TPM2rhCa.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/errors.d.ts
|
|
4
4
|
declare function planInvalid(message: string, details?: Record<string, unknown>, hints?: readonly string[], docs?: readonly string[]): RuntimeError;
|
|
5
5
|
declare function planUnsupported(message: string, details?: Record<string, unknown>, hints?: readonly string[], docs?: readonly string[]): RuntimeError;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { planUnsupported as n, planInvalid as t };
|
|
8
|
-
//# sourceMappingURL=errors-
|
|
8
|
+
//# sourceMappingURL=errors-CJKxtKSt.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors-CJKxtKSt.d.mts","names":[],"sources":["../src/errors.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,WAAA,4BAEJ,+EAGT;iBAkBa,eAAA,4BAEJ,+EAGT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors-
|
|
1
|
+
{"version":3,"file":"errors-D6kqqjHM.mjs","names":[],"sources":["../src/errors.ts"],"sourcesContent":["import type { RuntimeError } from './types';\n\nexport function planInvalid(\n message: string,\n details?: Record<string, unknown>,\n hints?: readonly string[],\n docs?: readonly string[],\n): RuntimeError {\n const error = new Error(message) as RuntimeError;\n\n Object.defineProperty(error, 'name', {\n value: 'RuntimeError',\n configurable: true,\n });\n\n return Object.assign(error, {\n code: 'PLAN.INVALID',\n category: 'PLAN' as const,\n severity: 'error' as const,\n details,\n hints,\n docs,\n });\n}\n\nexport function planUnsupported(\n message: string,\n details?: Record<string, unknown>,\n hints?: readonly string[],\n docs?: readonly string[],\n): RuntimeError {\n const error = new Error(message) as RuntimeError;\n\n Object.defineProperty(error, 'name', {\n value: 'RuntimeError',\n configurable: true,\n });\n\n return Object.assign(error, {\n code: 'PLAN.UNSUPPORTED',\n category: 'PLAN' as const,\n severity: 'error' as const,\n details,\n hints,\n docs,\n });\n}\n"],"mappings":";AAEA,SAAgB,YACd,SACA,SACA,OACA,MACc;CACd,MAAM,QAAQ,IAAI,MAAM,QAAQ;AAEhC,QAAO,eAAe,OAAO,QAAQ;EACnC,OAAO;EACP,cAAc;EACf,CAAC;AAEF,QAAO,OAAO,OAAO,OAAO;EAC1B,MAAM;EACN,UAAU;EACV,UAAU;EACV;EACA;EACA;EACD,CAAC;;AAGJ,SAAgB,gBACd,SACA,SACA,OACA,MACc;CACd,MAAM,QAAQ,IAAI,MAAM,QAAQ;AAEhC,QAAO,eAAe,OAAO,QAAQ;EACnC,OAAO;EACP,cAAc;EACf,CAAC;AAEF,QAAO,OAAO,OAAO,OAAO;EAC1B,MAAM;EACN,UAAU;EACV,UAAU;EACV;EACA;EACA;EACD,CAAC"}
|
package/dist/exports/ast.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
import { $ as ToWhereExpr, A as InsertOnConflict, B as NotExpr, C as ExistsExpr, D as ExpressionSource, E as ExpressionRewriter, F as JsonObjectEntry, G as ParamRef, H as OperationExpr, I as JsonObjectExpr, J as SelectAst, K as ProjectionExpr, L as ListExpression, M as JoinAst, N as JoinOnExpr, O as IdentifierRef, P as JsonArrayAggExpr, Q as TableSource, R as LiteralExpr, S as EqColJoinOn, T as ExpressionFolder, U as OrExpr, V as NullCheckExpr, W as OrderByItem, X as SubqueryExpr, Y as SelectAstOptions, Z as TableRef, _ as DeleteAst, a as AndExpr, at as whereExprKinds, b as DoNothingConflictAction, c as AnyInsertOnConflictAction, d as AnyQueryAst, et as UpdateAst, f as AstRewriter, g as DefaultValueExpr, h as ColumnRef, i as AggregateOpFn, it as queryAstKinds, j as InsertValue, k as InsertAst, l as AnyInsertValue, m as BinaryOp, n as AggregateExpr, nt as isQueryAst, o as AnyExpression, p as BinaryExpr, q as ProjectionItem, r as AggregateFn, rt as isWhereExpr, s as AnyFromSource, t as AggregateCountFn, tt as WhereArg, u as AnyOperationArg, v as DerivedTableSource, w as ExprVisitor, x as DoUpdateSetConflictAction, y as Direction, z as LoweredStatement } from "../types-
|
|
1
|
+
import { _ as defineCodecs, a as CodecInput, c as CodecRegistry, d as ExtractCodecTypes, f as ExtractDataTypes, g as createCodecRegistry, h as codec, i as CodecId, l as CodecTrait, m as SqlColumnRef, n as CodecCallContext, o as CodecMeta, p as SqlCodecCallContext, r as CodecDefBuilder, s as CodecParamsDescriptor, t as Codec, u as CodecTraits } from "../codec-types-DAQNecFs.mjs";
|
|
2
|
+
import { $ as ToWhereExpr, A as InsertOnConflict, B as NotExpr, C as ExistsExpr, D as ExpressionSource, E as ExpressionRewriter, F as JsonObjectEntry, G as ParamRef, H as OperationExpr, I as JsonObjectExpr, J as SelectAst, K as ProjectionExpr, L as ListExpression, M as JoinAst, N as JoinOnExpr, O as IdentifierRef, P as JsonArrayAggExpr, Q as TableSource, R as LiteralExpr, S as EqColJoinOn, T as ExpressionFolder, U as OrExpr, V as NullCheckExpr, W as OrderByItem, X as SubqueryExpr, Y as SelectAstOptions, Z as TableRef, _ as DeleteAst, a as AndExpr, at as whereExprKinds, b as DoNothingConflictAction, c as AnyInsertOnConflictAction, d as AnyQueryAst, et as UpdateAst, f as AstRewriter, g as DefaultValueExpr, h as ColumnRef, i as AggregateOpFn, it as queryAstKinds, j as InsertValue, k as InsertAst, l as AnyInsertValue, m as BinaryOp, n as AggregateExpr, nt as isQueryAst, o as AnyExpression, p as BinaryExpr, q as ProjectionItem, r as AggregateFn, rt as isWhereExpr, s as AnyFromSource, t as AggregateCountFn, tt as WhereArg, u as AnyOperationArg, v as DerivedTableSource, w as ExprVisitor, x as DoUpdateSetConflictAction, y as Direction, z as LoweredStatement } from "../types-B4dL4lc3.mjs";
|
|
3
|
+
import { ContractMarkerRecord } from "@prisma-next/contract/types";
|
|
3
4
|
|
|
4
5
|
//#region src/ast/adapter-types.d.ts
|
|
5
6
|
type AdapterTarget = string;
|
|
@@ -23,6 +24,13 @@ interface AdapterProfile<TTarget extends AdapterTarget = AdapterTarget> {
|
|
|
23
24
|
* parameter placeholder style).
|
|
24
25
|
*/
|
|
25
26
|
readMarkerStatement(): MarkerStatement;
|
|
27
|
+
/**
|
|
28
|
+
* Parses a row returned by the adapter's `readMarkerStatement()` into a
|
|
29
|
+
* `ContractMarkerRecord`. Each adapter is responsible for any
|
|
30
|
+
* target-specific decoding before delegating to the shared row schema.
|
|
31
|
+
* Throws on shape violation.
|
|
32
|
+
*/
|
|
33
|
+
parseMarkerRow(row: unknown): ContractMarkerRecord;
|
|
26
34
|
}
|
|
27
35
|
interface LowererContext<TContract = unknown> {
|
|
28
36
|
readonly contract: TContract;
|
|
@@ -118,9 +126,7 @@ declare const codecs: CodecDefBuilder<{
|
|
|
118
126
|
int: Codec<"sql/int@1", readonly ["equality", "order", "numeric"], number, number, Record<string, unknown>, unknown>;
|
|
119
127
|
float: Codec<"sql/float@1", readonly ["equality", "order", "numeric"], number, number, Record<string, unknown>, unknown>;
|
|
120
128
|
text: Codec<"sql/text@1", readonly ["equality", "order", "textual"], string, string, Record<string, unknown>, unknown>;
|
|
121
|
-
} & Record<"timestamp", Codec<"sql/timestamp@1", readonly ["equality", "order"],
|
|
122
|
-
precision?: number;
|
|
123
|
-
}, unknown>>>;
|
|
129
|
+
} & Record<"timestamp", Codec<"sql/timestamp@1", readonly ["equality", "order"], Date, Date, Record<string, unknown>, unknown>>>;
|
|
124
130
|
declare const sqlCodecDefinitions: {
|
|
125
131
|
readonly char: {
|
|
126
132
|
readonly typeId: "sql/char@1";
|
|
@@ -165,12 +171,10 @@ declare const sqlCodecDefinitions: {
|
|
|
165
171
|
readonly timestamp: {
|
|
166
172
|
readonly typeId: "sql/timestamp@1";
|
|
167
173
|
readonly scalar: "timestamp";
|
|
168
|
-
readonly codec: Codec<"sql/timestamp@1", readonly ["equality", "order"],
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
readonly
|
|
172
|
-
readonly output: string;
|
|
173
|
-
readonly jsType: string;
|
|
174
|
+
readonly codec: Codec<"sql/timestamp@1", readonly ["equality", "order"], Date, Date, Record<string, unknown>, unknown>;
|
|
175
|
+
readonly input: Date;
|
|
176
|
+
readonly output: Date;
|
|
177
|
+
readonly jsType: Date;
|
|
174
178
|
};
|
|
175
179
|
};
|
|
176
180
|
declare const sqlDataTypes: {
|
|
@@ -185,6 +189,17 @@ type SqlCodecTypes = typeof codecs.CodecTypes;
|
|
|
185
189
|
//#endregion
|
|
186
190
|
//#region src/ast/util.d.ts
|
|
187
191
|
declare function compact<T extends Record<string, unknown>>(o: T): T;
|
|
192
|
+
/**
|
|
193
|
+
* Walks an AST's parameter references in first-encounter order and dedupes
|
|
194
|
+
* by ParamRef identity. The single canonical helper used by every consumer
|
|
195
|
+
* that aligns `plan.params` with metadata-by-index — the SQL builder lane,
|
|
196
|
+
* the SQL ORM client, the SQL runtime encoder, and the Postgres renderer's
|
|
197
|
+
* `$N` index map — so the four walks cannot drift in dedupe semantics.
|
|
198
|
+
*
|
|
199
|
+
* SQLite's `?`-placeholder renderer intentionally does NOT use this helper
|
|
200
|
+
* because it needs one params entry per occurrence in the SQL.
|
|
201
|
+
*/
|
|
202
|
+
declare function collectOrderedParamRefs(ast: AnyQueryAst): ReadonlyArray<ParamRef>;
|
|
188
203
|
//#endregion
|
|
189
|
-
export { Adapter, AdapterProfile, AdapterTarget, AggregateCountFn, AggregateExpr, AggregateFn, AggregateOpFn, AndExpr, AnyExpression, AnyFromSource, AnyInsertOnConflictAction, AnyInsertValue, AnyOperationArg, AnyQueryAst, AstRewriter, BinaryExpr, BinaryOp, Codec, CodecDefBuilder, CodecId, CodecInput, CodecMeta,
|
|
204
|
+
export { Adapter, AdapterProfile, AdapterTarget, AggregateCountFn, AggregateExpr, AggregateFn, AggregateOpFn, AndExpr, AnyExpression, AnyFromSource, AnyInsertOnConflictAction, AnyInsertValue, AnyOperationArg, AnyQueryAst, AstRewriter, BinaryExpr, BinaryOp, Codec, CodecCallContext, CodecDefBuilder, CodecId, CodecInput, CodecMeta, CodecParamsDescriptor, CodecRegistry, CodecTrait, CodecTraits, ColumnRef, DefaultValueExpr, DeleteAst, DerivedTableSource, Direction, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExistsExpr, ExprVisitor, ExpressionFolder, ExpressionRewriter, ExpressionSource, ExtractCodecTypes, ExtractDataTypes, IdentifierRef, InsertAst, InsertOnConflict, InsertValue, JoinAst, JoinOnExpr, JsonArrayAggExpr, JsonObjectEntry, JsonObjectExpr, ListExpression, LiteralExpr, LoweredStatement, Lowerer, LowererContext, MarkerStatement, NotExpr, NullCheckExpr, OperationExpr, OrExpr, OrderByItem, ParamRef, ProjectionExpr, ProjectionItem, SQL_CHAR_CODEC_ID, SQL_FLOAT_CODEC_ID, SQL_INT_CODEC_ID, SQL_TEXT_CODEC_ID, SQL_TIMESTAMP_CODEC_ID, SQL_VARCHAR_CODEC_ID, SelectAst, SelectAstOptions, SqlCodecCallContext, SqlCodecTypes, SqlColumnRef, SqlConnection, SqlDriver, SqlDriverState, SqlExecuteRequest, SqlExplainResult, SqlQueryResult, SqlQueryable, SqlTransaction, SubqueryExpr, TableRef, TableSource, ToWhereExpr, UpdateAst, WhereArg, codec, collectOrderedParamRefs, compact, createCodecRegistry, defineCodecs, isQueryAst, isWhereExpr, queryAstKinds, sqlCodecDefinitions, sqlDataTypes, whereExprKinds };
|
|
190
205
|
//# sourceMappingURL=ast.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.d.mts","names":[],"sources":["../../src/ast/adapter-types.ts","../../src/ast/driver-types.ts","../../src/ast/sql-codecs.ts","../../src/ast/util.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ast.d.mts","names":[],"sources":["../../src/ast/adapter-types.ts","../../src/ast/driver-types.ts","../../src/ast/sql-codecs.ts","../../src/ast/util.ts"],"sourcesContent":[],"mappings":"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"}
|