@prisma-next/sql-relational-core 0.5.0-dev.60 → 0.5.0-dev.62
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 +45 -47
- package/dist/{errors-p3Ou_n9J.d.mts → errors-Chs-ph28.d.mts} +2 -2
- package/dist/errors-Chs-ph28.d.mts.map +1 -0
- package/dist/{errors-D6kqqjHM.mjs → errors-kgKOaDM1.mjs} +1 -1
- package/dist/{errors-D6kqqjHM.mjs.map → errors-kgKOaDM1.mjs.map} +1 -1
- package/dist/exports/ast.d.mts +141 -87
- package/dist/exports/ast.d.mts.map +1 -1
- package/dist/exports/ast.mjs +242 -272
- package/dist/exports/ast.mjs.map +1 -1
- package/dist/exports/codec-descriptor-registry.d.mts +18 -0
- package/dist/exports/codec-descriptor-registry.d.mts.map +1 -0
- package/dist/exports/codec-descriptor-registry.mjs +40 -0
- package/dist/exports/codec-descriptor-registry.mjs.map +1 -0
- package/dist/exports/errors.d.mts +4 -4
- package/dist/exports/errors.mjs +1 -1
- package/dist/exports/expression.d.mts +29 -24
- package/dist/exports/expression.d.mts.map +1 -1
- package/dist/exports/expression.mjs +33 -11
- package/dist/exports/expression.mjs.map +1 -1
- package/dist/exports/plan.d.mts +2 -2
- package/dist/exports/query-lane-context.d.mts +2 -3
- package/dist/exports/types.d.mts +5 -4
- package/dist/index.d.mts +10 -11
- package/dist/index.mjs +5 -5
- package/dist/{plan-C7SiEWkN.d.mts → plan-nwFE15re.d.mts} +2 -2
- package/dist/plan-nwFE15re.d.mts.map +1 -0
- package/dist/query-lane-context-DlWgKvvt.d.mts +175 -0
- package/dist/query-lane-context-DlWgKvvt.d.mts.map +1 -0
- package/dist/{sql-execution-plan-Dgx7BGin.d.mts → sql-execution-plan-DTfj23Tj.d.mts} +2 -2
- package/dist/{sql-execution-plan-Dgx7BGin.d.mts.map → sql-execution-plan-DTfj23Tj.d.mts.map} +1 -1
- package/dist/{types-DUL-3vy6.mjs → types-CO7zrXfK.mjs} +15 -7
- package/dist/types-CO7zrXfK.mjs.map +1 -0
- package/dist/{types-DviRR7AL.d.mts → types-G3hdNPZZ.d.mts} +4 -4
- package/dist/{types-DviRR7AL.d.mts.map → types-G3hdNPZZ.d.mts.map} +1 -1
- package/dist/{types-B4dL4lc3.d.mts → types-U74HFwNI.d.mts} +22 -4
- package/dist/types-U74HFwNI.d.mts.map +1 -0
- package/dist/{types-BUlUvdIU.d.mts → types-dPxXIUPS.d.mts} +3 -3
- package/dist/{types-BUlUvdIU.d.mts.map → types-dPxXIUPS.d.mts.map} +1 -1
- package/package.json +10 -8
- package/src/ast/adapter-types.ts +3 -19
- package/src/ast/codec-types.ts +53 -541
- package/src/ast/sql-codec-helpers.ts +79 -0
- package/src/ast/sql-codecs.ts +280 -137
- package/src/ast/types.ts +33 -8
- package/src/ast/validate-param-refs.ts +39 -0
- package/src/codec-descriptor-registry.ts +52 -0
- package/src/exports/ast.ts +2 -0
- package/src/exports/codec-descriptor-registry.ts +1 -0
- package/src/expression.ts +40 -23
- package/src/query-lane-context.ts +14 -96
- package/dist/codec-types-DJEaWT36.d.mts +0 -313
- package/dist/codec-types-DJEaWT36.d.mts.map +0 -1
- package/dist/errors-p3Ou_n9J.d.mts.map +0 -1
- package/dist/plan-C7SiEWkN.d.mts.map +0 -1
- package/dist/query-lane-context-Bwca4sc8.d.mts +0 -150
- package/dist/query-lane-context-Bwca4sc8.d.mts.map +0 -1
- package/dist/types-B4dL4lc3.d.mts.map +0 -1
- package/dist/types-DUL-3vy6.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -91,66 +91,64 @@ flowchart TD
|
|
|
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
93
|
|
|
94
|
-
### Codec
|
|
94
|
+
### Codec authoring (class form)
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
-
|
|
96
|
+
Codec authors extend the framework `CodecImpl` (and pair the codec with a `CodecDescriptorImpl` registration) per [ADR 208 — Higher-order codecs for parameterized types](../../../../docs/architecture%20docs/adrs/ADR%20208%20-%20Higher-order%20codecs%20for%20parameterized%20types.md). Each codec class declares the four conversion methods (`encode`, `decode`, `encodeJson`, `decodeJson`); the descriptor class declares static metadata (`codecId`, `traits`, `targetTypes`, `meta`, `paramsSchema`, optional `renderOutputType`) and a `factory` returning a per-instance codec.
|
|
97
|
+
|
|
98
|
+
- Query-time methods (`encode` / `decode`) are typed as `Promise<…>`-returning at the public boundary; sync method bodies are accepted via TypeScript bivariance and the runtime always awaits.
|
|
99
|
+
- Build-time methods (`encodeJson` / `decodeJson` / `renderOutputType?`) stay synchronous so contract validation and client construction stay synchronous.
|
|
100
|
+
- Both `encode` and `decode` must be implemented — there is no identity-default fallback.
|
|
99
101
|
|
|
100
102
|
```ts
|
|
101
|
-
//
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
103
|
+
// Non-parameterized codec (P = void) — see packages/3-targets/3-targets/postgres/src/core/codecs.ts
|
|
104
|
+
// for the production form.
|
|
105
|
+
import {
|
|
106
|
+
CodecDescriptorImpl,
|
|
107
|
+
CodecImpl,
|
|
108
|
+
voidParamsSchema,
|
|
109
|
+
type CodecCallContext,
|
|
110
|
+
type CodecInstanceContext,
|
|
111
|
+
} from '@prisma-next/framework-components/codec';
|
|
112
|
+
|
|
113
|
+
class PgTextCodec extends CodecImpl<'pg/text@1', readonly ['equality'], string, string> {
|
|
114
|
+
override readonly id = 'pg/text@1';
|
|
115
|
+
override readonly traits = ['equality'] as const;
|
|
116
|
+
encode(v: string, _ctx: CodecCallContext): Promise<string> { return Promise.resolve(v); }
|
|
117
|
+
decode(w: string, _ctx: CodecCallContext): Promise<string> { return Promise.resolve(w); }
|
|
118
|
+
encodeJson(v: string) { return v; }
|
|
119
|
+
decodeJson(j: unknown) { return j as string; }
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
class PgTextDescriptor extends CodecDescriptorImpl<void> {
|
|
123
|
+
override readonly codecId = 'pg/text@1';
|
|
124
|
+
override readonly traits = ['equality'] as const;
|
|
125
|
+
override readonly targetTypes = ['text'] as const;
|
|
126
|
+
override readonly paramsSchema = voidParamsSchema;
|
|
127
|
+
override readonly factory = () => (_ctx: CodecInstanceContext) => new PgTextCodec();
|
|
128
|
+
}
|
|
120
129
|
```
|
|
121
130
|
|
|
122
131
|
#### Codec call context (`ctx`)
|
|
123
132
|
|
|
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
|
|
133
|
+
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 method bodies continue to compile via TypeScript's bivariance for trailing parameters, so codec ergonomics are unchanged.
|
|
125
134
|
|
|
126
135
|
- **`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
136
|
- **`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
137
|
|
|
129
138
|
```ts
|
|
130
139
|
// Forward ctx.signal to a network call so aborted queries stop the SDK.
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
kms.encrypt({ plaintext: v }, { signal: ctx
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
});
|
|
140
|
+
class PgKmsSecretCodec extends CodecImpl<'pg/kms-secret@1', readonly [], string, string> {
|
|
141
|
+
override readonly id = 'pg/kms-secret@1';
|
|
142
|
+
override readonly traits = [] as const;
|
|
143
|
+
override async encode(v: string, ctx: SqlCodecCallContext): Promise<string> {
|
|
144
|
+
return kms.encrypt({ plaintext: v }, { signal: ctx.signal });
|
|
145
|
+
}
|
|
146
|
+
override async decode(w: string, ctx: SqlCodecCallContext): Promise<string> {
|
|
147
|
+
return kms.decrypt({ ciphertext: w }, { signal: ctx.signal });
|
|
148
|
+
}
|
|
149
|
+
encodeJson(v: string) { return v; }
|
|
150
|
+
decodeJson(j: unknown) { return j as string; }
|
|
151
|
+
}
|
|
154
152
|
```
|
|
155
153
|
|
|
156
154
|
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' }`.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { y as RuntimeError } from "./types-
|
|
1
|
+
import { y as RuntimeError } from "./types-G3hdNPZZ.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-Chs-ph28.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors-Chs-ph28.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-kgKOaDM1.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,6 +1,9 @@
|
|
|
1
|
-
import { _ as
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
1
|
+
import { $ as TableSource, 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 ProjectionItem, K as ParamRefBindingRefs, L as ListExpression, M as JoinAst, N as JoinOnExpr, O as IdentifierRef, P as JsonArrayAggExpr, Q as TableRef, R as LiteralExpr, S as EqColJoinOn, T as ExpressionFolder, U as OrExpr, V as NullCheckExpr, W as OrderByItem, X as SelectAstOptions, Y as SelectAst, Z as SubqueryExpr, _ as DeleteAst, a as AndExpr, at as queryAstKinds, b as DoNothingConflictAction, c as AnyInsertOnConflictAction, d as AnyQueryAst, et as ToWhereExpr, f as AstRewriter, g as DefaultValueExpr, h as ColumnRef, i as AggregateOpFn, it as isWhereExpr, j as InsertValue, k as InsertAst, l as AnyInsertValue, m as BinaryOp, n as AggregateExpr, nt as WhereArg, o as AnyExpression, ot as whereExprKinds, p as BinaryExpr, q as ProjectionExpr, r as AggregateFn, rt as isQueryAst, s as AnyFromSource, t as AggregateCountFn, tt as UpdateAst, u as AnyOperationArg, v as DerivedTableSource, w as ExprVisitor, x as DoUpdateSetConflictAction, y as Direction, z as LoweredStatement } from "../types-U74HFwNI.mjs";
|
|
2
|
+
import { _ as ExtractCodecTypes, b as SqlColumnRef, c as Codec, d as CodecMeta, f as CodecTrait, g as DescriptorCodecTraits, h as DescriptorCodecInput, l as CodecCallContext, m as DescriptorCodecId, n as CodecDescriptorRegistry, p as ContractCodecRegistry, s as AnyCodecDescriptor, u as CodecDescriptor, v as SqlCodecCallContext, y as SqlCodecInstanceContext } from "../query-lane-context-DlWgKvvt.mjs";
|
|
3
|
+
import * as _prisma_next_framework_components_codec0 from "@prisma-next/framework-components/codec";
|
|
4
|
+
import { CodecCallContext as CodecCallContext$1, CodecDescriptorImpl, CodecImpl, CodecInstanceContext } from "@prisma-next/framework-components/codec";
|
|
5
|
+
import { ContractMarkerRecord, JsonValue } from "@prisma-next/contract/types";
|
|
6
|
+
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
4
7
|
|
|
5
8
|
//#region src/ast/adapter-types.d.ts
|
|
6
9
|
type AdapterTarget = string;
|
|
@@ -13,22 +16,11 @@ interface AdapterProfile<TTarget extends AdapterTarget = AdapterTarget> {
|
|
|
13
16
|
readonly target: TTarget;
|
|
14
17
|
readonly capabilities: Record<string, unknown>;
|
|
15
18
|
/**
|
|
16
|
-
* Returns the adapter
|
|
17
|
-
* The registry contains codecs provided by the adapter for converting
|
|
18
|
-
* between wire types and JavaScript types.
|
|
19
|
-
*/
|
|
20
|
-
codecs(): CodecRegistry;
|
|
21
|
-
/**
|
|
22
|
-
* Returns the SQL statement to read the contract marker from the database.
|
|
23
|
-
* Each adapter provides target-specific SQL (e.g. schema-qualified table names,
|
|
24
|
-
* parameter placeholder style).
|
|
19
|
+
* Returns the SQL statement to read the contract marker from the database. Each adapter provides target-specific SQL (e.g. schema-qualified table names, parameter placeholder style).
|
|
25
20
|
*/
|
|
26
21
|
readMarkerStatement(): MarkerStatement;
|
|
27
22
|
/**
|
|
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.
|
|
23
|
+
* Parses a row returned by the adapter's `readMarkerStatement()` into a `ContractMarkerRecord`. Each adapter is responsible for any target-specific decoding before delegating to the shared row schema. Throws on shape violation.
|
|
32
24
|
*/
|
|
33
25
|
parseMarkerRow(row: unknown): ContractMarkerRecord;
|
|
34
26
|
}
|
|
@@ -38,11 +30,7 @@ interface LowererContext<TContract = unknown> {
|
|
|
38
30
|
}
|
|
39
31
|
type Lowerer<Ast = unknown, TContract = unknown, TBody = LoweredStatement> = (ast: Ast, context: LowererContext<TContract>) => TBody;
|
|
40
32
|
/**
|
|
41
|
-
* Lowers a query AST into a target-specific executable body (typically
|
|
42
|
-
* `LoweredStatement` for SQL adapters). The `lower` method returns the body
|
|
43
|
-
* directly; per-statement metadata, when needed, lives on the body itself
|
|
44
|
-
* (e.g. `LoweredStatement.annotations`). Adapter-level metadata such as the
|
|
45
|
-
* profile id is reachable via `profile.id` for callers that genuinely need it.
|
|
33
|
+
* Lowers a query AST into a target-specific executable body (typically `LoweredStatement` for SQL adapters). The `lower` method returns the body directly; per-statement metadata, when needed, lives on the body itself (e.g. `LoweredStatement.annotations`). Adapter-level metadata such as the profile id is reachable via `profile.id` for callers that genuinely need it.
|
|
46
34
|
*/
|
|
47
35
|
interface Adapter<Ast = unknown, TContract = unknown, TBody = LoweredStatement> {
|
|
48
36
|
readonly profile: AdapterProfile;
|
|
@@ -113,79 +101,137 @@ interface SqlQueryable {
|
|
|
113
101
|
query<Row = Record<string, unknown>>(sql: string, params?: readonly unknown[]): Promise<SqlQueryResult<Row>>;
|
|
114
102
|
}
|
|
115
103
|
//#endregion
|
|
116
|
-
//#region src/ast/sql-
|
|
104
|
+
//#region src/ast/sql-codec-helpers.d.ts
|
|
117
105
|
declare const SQL_CHAR_CODEC_ID: "sql/char@1";
|
|
118
106
|
declare const SQL_VARCHAR_CODEC_ID: "sql/varchar@1";
|
|
119
107
|
declare const SQL_INT_CODEC_ID: "sql/int@1";
|
|
120
108
|
declare const SQL_FLOAT_CODEC_ID: "sql/float@1";
|
|
121
109
|
declare const SQL_TEXT_CODEC_ID: "sql/text@1";
|
|
122
110
|
declare const SQL_TIMESTAMP_CODEC_ID: "sql/timestamp@1";
|
|
123
|
-
declare const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
declare const
|
|
131
|
-
readonly
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
readonly codec: Codec<"sql/int@1", readonly ["equality", "order", "numeric"], number, number, Record<string, unknown>, unknown>;
|
|
151
|
-
readonly input: number;
|
|
152
|
-
readonly output: number;
|
|
153
|
-
readonly jsType: number;
|
|
154
|
-
};
|
|
155
|
-
readonly float: {
|
|
156
|
-
readonly typeId: "sql/float@1";
|
|
157
|
-
readonly scalar: "float";
|
|
158
|
-
readonly codec: Codec<"sql/float@1", readonly ["equality", "order", "numeric"], number, number, Record<string, unknown>, unknown>;
|
|
159
|
-
readonly input: number;
|
|
160
|
-
readonly output: number;
|
|
161
|
-
readonly jsType: number;
|
|
162
|
-
};
|
|
163
|
-
readonly text: {
|
|
164
|
-
readonly typeId: "sql/text@1";
|
|
165
|
-
readonly scalar: "text";
|
|
166
|
-
readonly codec: Codec<"sql/text@1", readonly ["equality", "order", "textual"], string, string, Record<string, unknown>, unknown>;
|
|
167
|
-
readonly input: string;
|
|
168
|
-
readonly output: string;
|
|
169
|
-
readonly jsType: string;
|
|
170
|
-
};
|
|
171
|
-
readonly timestamp: {
|
|
172
|
-
readonly typeId: "sql/timestamp@1";
|
|
173
|
-
readonly scalar: "timestamp";
|
|
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;
|
|
178
|
-
};
|
|
111
|
+
declare const sqlCharEncode: (value: string) => string;
|
|
112
|
+
declare const sqlCharDecode: (wire: string) => string;
|
|
113
|
+
declare const sqlCharRenderOutputType: (typeParams: {
|
|
114
|
+
readonly length?: number;
|
|
115
|
+
}) => string | undefined;
|
|
116
|
+
declare const sqlVarcharEncode: (value: string) => string;
|
|
117
|
+
declare const sqlVarcharDecode: (wire: string) => string;
|
|
118
|
+
declare const sqlVarcharRenderOutputType: (typeParams: {
|
|
119
|
+
readonly length?: number;
|
|
120
|
+
}) => string | undefined;
|
|
121
|
+
declare const sqlIntEncode: (value: number) => number;
|
|
122
|
+
declare const sqlIntDecode: (wire: number) => number;
|
|
123
|
+
declare const sqlFloatEncode: (value: number) => number;
|
|
124
|
+
declare const sqlFloatDecode: (wire: number) => number;
|
|
125
|
+
declare const sqlTextEncode: (value: string) => string;
|
|
126
|
+
declare const sqlTextDecode: (wire: string) => string;
|
|
127
|
+
declare const sqlTimestampEncode: (value: Date) => Date;
|
|
128
|
+
declare const sqlTimestampDecode: (wire: Date) => Date;
|
|
129
|
+
declare const sqlTimestampEncodeJson: (value: Date) => JsonValue;
|
|
130
|
+
declare const sqlTimestampDecodeJson: (json: JsonValue) => Date;
|
|
131
|
+
declare const sqlTimestampRenderOutputType: (typeParams: {
|
|
132
|
+
readonly precision?: number;
|
|
133
|
+
}) => string;
|
|
134
|
+
//#endregion
|
|
135
|
+
//#region src/ast/sql-codecs.d.ts
|
|
136
|
+
type LengthParams = {
|
|
137
|
+
readonly length?: number;
|
|
179
138
|
};
|
|
180
|
-
|
|
181
|
-
readonly
|
|
182
|
-
readonly varchar: "sql/varchar@1";
|
|
183
|
-
readonly int: "sql/int@1";
|
|
184
|
-
readonly float: "sql/float@1";
|
|
185
|
-
readonly text: "sql/text@1";
|
|
186
|
-
readonly timestamp: "sql/timestamp@1";
|
|
139
|
+
type PrecisionParams = {
|
|
140
|
+
readonly precision?: number;
|
|
187
141
|
};
|
|
188
|
-
|
|
142
|
+
declare class SqlTextCodec extends CodecImpl<typeof SQL_TEXT_CODEC_ID, readonly ['equality', 'order', 'textual'], string, string> {
|
|
143
|
+
encode(value: string, _ctx: CodecCallContext$1): Promise<string>;
|
|
144
|
+
decode(wire: string, _ctx: CodecCallContext$1): Promise<string>;
|
|
145
|
+
encodeJson(value: string): JsonValue;
|
|
146
|
+
decodeJson(json: JsonValue): string;
|
|
147
|
+
}
|
|
148
|
+
declare class SqlTextDescriptor extends CodecDescriptorImpl<void> {
|
|
149
|
+
readonly codecId: "sql/text@1";
|
|
150
|
+
readonly traits: readonly ["equality", "order", "textual"];
|
|
151
|
+
readonly targetTypes: readonly ["text"];
|
|
152
|
+
readonly paramsSchema: StandardSchemaV1<void>;
|
|
153
|
+
factory(): (ctx: CodecInstanceContext) => SqlTextCodec;
|
|
154
|
+
}
|
|
155
|
+
declare const sqlTextDescriptor: SqlTextDescriptor;
|
|
156
|
+
declare const sqlTextColumn: () => _prisma_next_framework_components_codec0.ColumnSpec<SqlTextCodec, undefined>;
|
|
157
|
+
declare class SqlIntCodec extends CodecImpl<typeof SQL_INT_CODEC_ID, readonly ['equality', 'order', 'numeric'], number, number> {
|
|
158
|
+
encode(value: number, _ctx: CodecCallContext$1): Promise<number>;
|
|
159
|
+
decode(wire: number, _ctx: CodecCallContext$1): Promise<number>;
|
|
160
|
+
encodeJson(value: number): JsonValue;
|
|
161
|
+
decodeJson(json: JsonValue): number;
|
|
162
|
+
}
|
|
163
|
+
declare class SqlIntDescriptor extends CodecDescriptorImpl<void> {
|
|
164
|
+
readonly codecId: "sql/int@1";
|
|
165
|
+
readonly traits: readonly ["equality", "order", "numeric"];
|
|
166
|
+
readonly targetTypes: readonly ["int"];
|
|
167
|
+
readonly paramsSchema: StandardSchemaV1<void>;
|
|
168
|
+
factory(): (ctx: CodecInstanceContext) => SqlIntCodec;
|
|
169
|
+
}
|
|
170
|
+
declare const sqlIntDescriptor: SqlIntDescriptor;
|
|
171
|
+
declare const sqlIntColumn: () => _prisma_next_framework_components_codec0.ColumnSpec<SqlIntCodec, undefined>;
|
|
172
|
+
declare class SqlFloatCodec extends CodecImpl<typeof SQL_FLOAT_CODEC_ID, readonly ['equality', 'order', 'numeric'], number, number> {
|
|
173
|
+
encode(value: number, _ctx: CodecCallContext$1): Promise<number>;
|
|
174
|
+
decode(wire: number, _ctx: CodecCallContext$1): Promise<number>;
|
|
175
|
+
encodeJson(value: number): JsonValue;
|
|
176
|
+
decodeJson(json: JsonValue): number;
|
|
177
|
+
}
|
|
178
|
+
declare class SqlFloatDescriptor extends CodecDescriptorImpl<void> {
|
|
179
|
+
readonly codecId: "sql/float@1";
|
|
180
|
+
readonly traits: readonly ["equality", "order", "numeric"];
|
|
181
|
+
readonly targetTypes: readonly ["float"];
|
|
182
|
+
readonly paramsSchema: StandardSchemaV1<void>;
|
|
183
|
+
factory(): (ctx: CodecInstanceContext) => SqlFloatCodec;
|
|
184
|
+
}
|
|
185
|
+
declare const sqlFloatDescriptor: SqlFloatDescriptor;
|
|
186
|
+
declare const sqlFloatColumn: () => _prisma_next_framework_components_codec0.ColumnSpec<SqlFloatCodec, undefined>;
|
|
187
|
+
declare class SqlCharCodec extends CodecImpl<typeof SQL_CHAR_CODEC_ID, readonly ['equality', 'order', 'textual'], string, string> {
|
|
188
|
+
encode(value: string, _ctx: CodecCallContext$1): Promise<string>;
|
|
189
|
+
decode(wire: string, _ctx: CodecCallContext$1): Promise<string>;
|
|
190
|
+
encodeJson(value: string): JsonValue;
|
|
191
|
+
decodeJson(json: JsonValue): string;
|
|
192
|
+
}
|
|
193
|
+
declare class SqlCharDescriptor extends CodecDescriptorImpl<LengthParams> {
|
|
194
|
+
readonly codecId: "sql/char@1";
|
|
195
|
+
readonly traits: readonly ["equality", "order", "textual"];
|
|
196
|
+
readonly targetTypes: readonly ["char"];
|
|
197
|
+
readonly paramsSchema: StandardSchemaV1<LengthParams>;
|
|
198
|
+
renderOutputType(params: LengthParams): string | undefined;
|
|
199
|
+
factory(_params: LengthParams): (ctx: CodecInstanceContext) => SqlCharCodec;
|
|
200
|
+
}
|
|
201
|
+
declare const sqlCharDescriptor: SqlCharDescriptor;
|
|
202
|
+
declare const sqlCharColumn: (params?: LengthParams) => _prisma_next_framework_components_codec0.ColumnSpec<SqlCharCodec, LengthParams>;
|
|
203
|
+
declare class SqlVarcharCodec extends CodecImpl<typeof SQL_VARCHAR_CODEC_ID, readonly ['equality', 'order', 'textual'], string, string> {
|
|
204
|
+
encode(value: string, _ctx: CodecCallContext$1): Promise<string>;
|
|
205
|
+
decode(wire: string, _ctx: CodecCallContext$1): Promise<string>;
|
|
206
|
+
encodeJson(value: string): JsonValue;
|
|
207
|
+
decodeJson(json: JsonValue): string;
|
|
208
|
+
}
|
|
209
|
+
declare class SqlVarcharDescriptor extends CodecDescriptorImpl<LengthParams> {
|
|
210
|
+
readonly codecId: "sql/varchar@1";
|
|
211
|
+
readonly traits: readonly ["equality", "order", "textual"];
|
|
212
|
+
readonly targetTypes: readonly ["varchar"];
|
|
213
|
+
readonly paramsSchema: StandardSchemaV1<LengthParams>;
|
|
214
|
+
renderOutputType(params: LengthParams): string | undefined;
|
|
215
|
+
factory(_params: LengthParams): (ctx: CodecInstanceContext) => SqlVarcharCodec;
|
|
216
|
+
}
|
|
217
|
+
declare const sqlVarcharDescriptor: SqlVarcharDescriptor;
|
|
218
|
+
declare const sqlVarcharColumn: (params?: LengthParams) => _prisma_next_framework_components_codec0.ColumnSpec<SqlVarcharCodec, LengthParams>;
|
|
219
|
+
declare class SqlTimestampCodec extends CodecImpl<typeof SQL_TIMESTAMP_CODEC_ID, readonly ['equality', 'order'], Date, Date> {
|
|
220
|
+
encode(value: Date, _ctx: CodecCallContext$1): Promise<Date>;
|
|
221
|
+
decode(wire: Date, _ctx: CodecCallContext$1): Promise<Date>;
|
|
222
|
+
encodeJson(value: Date): JsonValue;
|
|
223
|
+
decodeJson(json: JsonValue): Date;
|
|
224
|
+
}
|
|
225
|
+
declare class SqlTimestampDescriptor extends CodecDescriptorImpl<PrecisionParams> {
|
|
226
|
+
readonly codecId: "sql/timestamp@1";
|
|
227
|
+
readonly traits: readonly ["equality", "order"];
|
|
228
|
+
readonly targetTypes: readonly ["timestamp"];
|
|
229
|
+
readonly paramsSchema: StandardSchemaV1<PrecisionParams>;
|
|
230
|
+
renderOutputType(params: PrecisionParams): string | undefined;
|
|
231
|
+
factory(_params: PrecisionParams): (ctx: CodecInstanceContext) => SqlTimestampCodec;
|
|
232
|
+
}
|
|
233
|
+
declare const sqlTimestampDescriptor: SqlTimestampDescriptor;
|
|
234
|
+
declare const sqlTimestampColumn: (params?: PrecisionParams) => _prisma_next_framework_components_codec0.ColumnSpec<SqlTimestampCodec, PrecisionParams>;
|
|
189
235
|
//#endregion
|
|
190
236
|
//#region src/ast/util.d.ts
|
|
191
237
|
declare function compact<T extends Record<string, unknown>>(o: T): T;
|
|
@@ -201,5 +247,13 @@ declare function compact<T extends Record<string, unknown>>(o: T): T;
|
|
|
201
247
|
*/
|
|
202
248
|
declare function collectOrderedParamRefs(ast: AnyQueryAst): ReadonlyArray<ParamRef>;
|
|
203
249
|
//#endregion
|
|
204
|
-
|
|
250
|
+
//#region src/ast/validate-param-refs.d.ts
|
|
251
|
+
/**
|
|
252
|
+
* Validate that every parameterized-codec `ParamRef` in `plan` carries `refs`. Throws `RUNTIME.PARAM_REF_REFS_REQUIRED` (a runtime envelope) naming the codec id and the binding label when the invariant is violated. Returns the plan unchanged on success — callers that prefer a side-effecting assertion can ignore the return value.
|
|
253
|
+
*
|
|
254
|
+
* The `registry` is consulted via `descriptorFor(codecId).isParameterized` — `true` whenever the descriptor's `paramsSchema` is not the singleton `voidParamsSchema`.
|
|
255
|
+
*/
|
|
256
|
+
declare function validateParamRefRefs(plan: AnyQueryAst, registry: CodecDescriptorRegistry): void;
|
|
257
|
+
//#endregion
|
|
258
|
+
export { Adapter, AdapterProfile, AdapterTarget, AggregateCountFn, AggregateExpr, AggregateFn, AggregateOpFn, AndExpr, AnyCodecDescriptor, AnyExpression, AnyFromSource, AnyInsertOnConflictAction, AnyInsertValue, AnyOperationArg, AnyQueryAst, AstRewriter, BinaryExpr, BinaryOp, Codec, CodecCallContext, CodecDescriptor, CodecMeta, CodecTrait, ColumnRef, ContractCodecRegistry, DefaultValueExpr, DeleteAst, DerivedTableSource, DescriptorCodecId, DescriptorCodecInput, DescriptorCodecTraits, Direction, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExistsExpr, ExprVisitor, ExpressionFolder, ExpressionRewriter, ExpressionSource, ExtractCodecTypes, IdentifierRef, InsertAst, InsertOnConflict, InsertValue, JoinAst, JoinOnExpr, JsonArrayAggExpr, JsonObjectEntry, JsonObjectExpr, ListExpression, LiteralExpr, LoweredStatement, Lowerer, LowererContext, MarkerStatement, NotExpr, NullCheckExpr, OperationExpr, OrExpr, OrderByItem, ParamRef, ParamRefBindingRefs, 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, SqlCharCodec, SqlCharDescriptor, SqlCodecCallContext, SqlCodecInstanceContext, SqlColumnRef, SqlConnection, SqlDriver, SqlDriverState, SqlExecuteRequest, SqlExplainResult, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlQueryResult, SqlQueryable, SqlTextCodec, SqlTextDescriptor, SqlTimestampCodec, SqlTimestampDescriptor, SqlTransaction, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableRef, TableSource, ToWhereExpr, UpdateAst, WhereArg, collectOrderedParamRefs, compact, isQueryAst, isWhereExpr, queryAstKinds, sqlCharColumn, sqlCharDecode, sqlCharDescriptor, sqlCharEncode, sqlCharRenderOutputType, sqlFloatColumn, sqlFloatDecode, sqlFloatDescriptor, sqlFloatEncode, sqlIntColumn, sqlIntDecode, sqlIntDescriptor, sqlIntEncode, sqlTextColumn, sqlTextDecode, sqlTextDescriptor, sqlTextEncode, sqlTimestampColumn, sqlTimestampDecode, sqlTimestampDecodeJson, sqlTimestampDescriptor, sqlTimestampEncode, sqlTimestampEncodeJson, sqlTimestampRenderOutputType, sqlVarcharColumn, sqlVarcharDecode, sqlVarcharDescriptor, sqlVarcharEncode, sqlVarcharRenderOutputType, validateParamRefRefs, whereExprKinds };
|
|
205
259
|
//# 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-codec-helpers.ts","../../src/ast/sql-codecs.ts","../../src/ast/util.ts","../../src/ast/validate-param-refs.ts"],"sourcesContent":[],"mappings":"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"}
|