@prisma-next/sql-relational-core 0.5.0-dev.76 → 0.5.0-dev.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{query-lane-context-DaimN0zf.d.mts → codec-types-BUfBna4G.d.mts} +2 -69
- package/dist/codec-types-BUfBna4G.d.mts.map +1 -0
- package/dist/{errors-Cb03_kgU.mjs → errors-BF7W5uUd.mjs} +1 -1
- package/dist/{errors-Cb03_kgU.mjs.map → errors-BF7W5uUd.mjs.map} +1 -1
- package/dist/{errors-DCg-36g-.d.mts → errors-BgNpVAT8.d.mts} +2 -2
- package/dist/{errors-DCg-36g-.d.mts.map → errors-BgNpVAT8.d.mts.map} +1 -1
- package/dist/exports/ast.d.mts +4 -3
- package/dist/exports/ast.d.mts.map +1 -1
- package/dist/exports/ast.mjs +3 -33
- package/dist/exports/ast.mjs.map +1 -1
- package/dist/exports/codec-descriptor-registry.d.mts +2 -1
- package/dist/exports/codec-descriptor-registry.d.mts.map +1 -1
- package/dist/exports/errors.d.mts +1 -1
- package/dist/exports/errors.mjs +1 -1
- package/dist/exports/expression.d.mts +1 -1
- package/dist/exports/expression.mjs +1 -1
- package/dist/exports/middleware.d.mts +2 -0
- package/dist/exports/middleware.mjs +2 -0
- package/dist/exports/plan.d.mts +3 -3
- package/dist/exports/plan.mjs +34 -1
- package/dist/exports/plan.mjs.map +1 -0
- package/dist/exports/query-lane-context.d.mts +1 -1
- package/dist/exports/types.d.mts +2 -2
- package/dist/index.d.mts +10 -8
- package/dist/index.mjs +7 -5
- package/dist/middleware-D2Wv9QIf.mjs +82 -0
- package/dist/middleware-D2Wv9QIf.mjs.map +1 -0
- package/dist/middleware-USDeR8p1.d.mts +121 -0
- package/dist/middleware-USDeR8p1.d.mts.map +1 -0
- package/dist/plan-DFpOIsKB.d.mts +44 -0
- package/dist/plan-DFpOIsKB.d.mts.map +1 -0
- package/dist/query-lane-context-C2tLZGp4.d.mts +72 -0
- package/dist/query-lane-context-C2tLZGp4.d.mts.map +1 -0
- package/dist/{sql-execution-plan-DgcD75jn.d.mts → sql-execution-plan-ffz8TSfr.d.mts} +2 -2
- package/dist/{sql-execution-plan-DgcD75jn.d.mts.map → sql-execution-plan-ffz8TSfr.d.mts.map} +1 -1
- package/dist/{types-hwPoFZX2.d.mts → types-BZcKgaYA.d.mts} +27 -3
- package/dist/{types-hwPoFZX2.d.mts.map → types-BZcKgaYA.d.mts.map} +1 -1
- package/dist/{types-vA5134SY.mjs → types-CK9ZJ6OU.mjs} +43 -3
- package/dist/{types-vA5134SY.mjs.map → types-CK9ZJ6OU.mjs.map} +1 -1
- package/dist/{types-BnLrX_Vr.d.mts → types-CL18G37a.d.mts} +3 -3
- package/dist/{types-BnLrX_Vr.d.mts.map → types-CL18G37a.d.mts.map} +1 -1
- package/dist/{types-Czw4j_wY.d.mts → types-D6Pk1DTr.d.mts} +4 -4
- package/dist/{types-Czw4j_wY.d.mts.map → types-D6Pk1DTr.d.mts.map} +1 -1
- package/dist/util-DWmhUCEO.mjs +34 -0
- package/dist/util-DWmhUCEO.mjs.map +1 -0
- package/package.json +10 -11
- package/src/ast/types.ts +55 -1
- package/src/exports/middleware.ts +8 -0
- package/src/index.ts +1 -0
- package/src/middleware/param-ref-mutator.ts +230 -0
- package/src/plan.ts +36 -0
- package/dist/plan-CZ6CFuSX.d.mts +0 -24
- package/dist/plan-CZ6CFuSX.d.mts.map +0 -1
- package/dist/query-lane-context-DaimN0zf.d.mts.map +0 -1
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import { Codec, CodecCallContext, CodecCallContext as CodecCallContext$1, CodecDescriptor, CodecDescriptor as CodecDescriptor$1, CodecInstanceContext, CodecTrait, CodecTrait as CodecTrait$1 } from "@prisma-next/framework-components/codec";
|
|
2
|
-
import { Contract } from "@prisma-next/contract/types";
|
|
3
|
-
import { SqlOperationRegistry } from "@prisma-next/sql-operations";
|
|
4
|
-
import { SqlStorage } from "@prisma-next/sql-contract/types";
|
|
5
2
|
|
|
6
3
|
//#region src/ast/codec-types.d.ts
|
|
7
4
|
/**
|
|
@@ -106,69 +103,5 @@ type ExtractCodecTypes<ScalarNames extends { readonly [K in keyof ScalarNames]:
|
|
|
106
103
|
readonly traits: DescriptorCodecTraits<ScalarNames[K]>;
|
|
107
104
|
} };
|
|
108
105
|
//#endregion
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
* Codec-id-keyed accessor for descriptor metadata. The unified read API for codec-id-keyed metadata (`traits`, `targetTypes`, `meta`) — non-branching for parameterized vs. non-parameterized codecs. Every codec ships natively as a `CodecDescriptor` through the unified `codecs:` contributor slot (see ADR 208).
|
|
112
|
-
*/
|
|
113
|
-
interface CodecDescriptorRegistry {
|
|
114
|
-
/**
|
|
115
|
-
* Descriptors carry distinct param shapes per codec id; the registry is heterogeneous and the consumer narrows per codec.
|
|
116
|
-
*/
|
|
117
|
-
descriptorFor(codecId: string): CodecDescriptor<unknown> | undefined;
|
|
118
|
-
/**
|
|
119
|
-
* All registered descriptors. Used by `validateCodecRegistryCompleteness` and other startup-time consumers that enumerate descriptors.
|
|
120
|
-
*/
|
|
121
|
-
values(): IterableIterator<CodecDescriptor<unknown>>;
|
|
122
|
-
/**
|
|
123
|
-
* Descriptors indexed by `targetTypes[i]` (each scalar type the codec advertises). Multiple descriptors may map to the same scalar type; ordering reflects registration order.
|
|
124
|
-
*/
|
|
125
|
-
byTargetType(targetType: string): readonly CodecDescriptor<unknown>[];
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Registry of initialized type helpers from storage.types. Each key is a type name from storage.types, and the value is the resolved codec materialized once for that named instance via `descriptor.factory(typeParams)(ctx)` (or the raw `StorageTypeInstance` metadata for codec ids whose descriptor isn't registered).
|
|
129
|
-
*/
|
|
130
|
-
type TypeHelperRegistry = Record<string, unknown>;
|
|
131
|
-
type MutationDefaultsOp = 'create' | 'update';
|
|
132
|
-
type AppliedMutationDefault = {
|
|
133
|
-
readonly column: string;
|
|
134
|
-
readonly value: unknown;
|
|
135
|
-
};
|
|
136
|
-
type MutationDefaultsOptions = {
|
|
137
|
-
readonly op: MutationDefaultsOp;
|
|
138
|
-
readonly table: string;
|
|
139
|
-
readonly values: Record<string, unknown>;
|
|
140
|
-
/**
|
|
141
|
-
* Per-ORM-operation cache for generators that declare `stability: 'query'`. The caller passes the same `Map` across every `applyMutationDefaults` invocation in one bulk operation; the framework keys by `generatorId` so the same value is reused across all rows and columns. Generators with `stability: 'row'` use a fresh per-call cache the framework manages internally; generators with `stability: 'field'` skip caching
|
|
142
|
-
* entirely. Omit to make every call independent (degrades `'query'` to per-call behavior).
|
|
143
|
-
*/
|
|
144
|
-
readonly defaultValueCache?: Map<string, unknown>;
|
|
145
|
-
};
|
|
146
|
-
/**
|
|
147
|
-
* Minimal context interface for SQL query lanes.
|
|
148
|
-
*
|
|
149
|
-
* Lanes only need contract, operations, and codecs to build typed ASTs and attach operation builders. This interface explicitly excludes runtime concerns like adapters, connection management, and transaction state.
|
|
150
|
-
*/
|
|
151
|
-
interface ExecutionContext<TContract extends Contract<SqlStorage> = Contract<SqlStorage>> {
|
|
152
|
-
readonly contract: TContract;
|
|
153
|
-
/**
|
|
154
|
-
* Contract-bound codec registry built once at context-construction time by walking the contract's columns and resolving each through its descriptor's factory. The dispatch path (`encodeParam` / `decodeRow`) consults `forColumn(table, column)` for column-bound call sites; `forCodecId(codecId)` is the refs-less fallback, permitted only for non-parameterized codec ids (the builder-pipeline validator pass enforces refs on
|
|
155
|
-
* every parameterized `ParamRef`). Pre-populated with one canonical instance per non-parameterized descriptor so `forCodecId` covers refs-less codec ids that no contract column declares.
|
|
156
|
-
*/
|
|
157
|
-
readonly contractCodecs: ContractCodecRegistry;
|
|
158
|
-
/**
|
|
159
|
-
* Codec-id-keyed descriptor map. Single source of truth for codec-id-keyed metadata (`traits`, `targetTypes`, `meta`) — every codec, parameterized or not, resolves through this map without branching.
|
|
160
|
-
*/
|
|
161
|
-
readonly codecDescriptors: CodecDescriptorRegistry;
|
|
162
|
-
readonly queryOperations: SqlOperationRegistry;
|
|
163
|
-
/**
|
|
164
|
-
* Type helper registry for parameterized types. Schema builders expose these helpers via schema.types.
|
|
165
|
-
*/
|
|
166
|
-
readonly types: TypeHelperRegistry;
|
|
167
|
-
/**
|
|
168
|
-
* Applies execution-time mutation defaults for the given table. Returns the applied defaults (caller-provided values always win).
|
|
169
|
-
*/
|
|
170
|
-
applyMutationDefaults(options: MutationDefaultsOptions): ReadonlyArray<AppliedMutationDefault>;
|
|
171
|
-
}
|
|
172
|
-
//#endregion
|
|
173
|
-
export { ExtractCodecTypes as _, MutationDefaultsOptions as a, SqlColumnRef as b, Codec$1 as c, CodecMeta as d, CodecTrait$1 as f, DescriptorCodecTraits as g, DescriptorCodecInput as h, MutationDefaultsOp as i, CodecCallContext$1 as l, DescriptorCodecId as m, CodecDescriptorRegistry as n, TypeHelperRegistry as o, ContractCodecRegistry as p, ExecutionContext as r, AnyCodecDescriptor as s, AppliedMutationDefault as t, CodecDescriptor$1 as u, SqlCodecCallContext as v, SqlCodecInstanceContext as y };
|
|
174
|
-
//# sourceMappingURL=query-lane-context-DaimN0zf.d.mts.map
|
|
106
|
+
export { CodecMeta as a, DescriptorCodecId as c, ExtractCodecTypes as d, SqlCodecCallContext as f, CodecDescriptor$1 as i, DescriptorCodecInput as l, SqlColumnRef as m, Codec$1 as n, CodecTrait$1 as o, SqlCodecInstanceContext as p, CodecCallContext$1 as r, ContractCodecRegistry as s, AnyCodecDescriptor as t, DescriptorCodecTraits as u };
|
|
107
|
+
//# sourceMappingURL=codec-types-BUfBna4G.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec-types-BUfBna4G.d.mts","names":[],"sources":["../src/ast/codec-types.ts"],"mappings":";;;;AAmBA;;;;UAAiB,YAAA;EAAA,SACN,KAAA;EAAA,SACA,IAAA;AAAA;;;;;;UAQM,mBAAA,SAA4B,gBAAA;EAAA,SAClC,MAAA,GAAS,YAAA;AAAA;;;;;;;;;;UAYH,uBAAA,SAAgC,oBAAA;EAAA,SACtC,MAAA,EAAQ,aAAA;IAAA,SAAyB,KAAA;IAAA,SAAwB,MAAA;EAAA;AAAA;;;;UAMnD,SAAA;EAAA,SACN,EAAA;IAAA,SACE,GAAA;MAAA,SACE,QAAA;QAAA,SACE,UAAA;MAAA;IAAA;EAAA;AAAA;;;;;;;;UAaA,OAAA,sDAEU,UAAA,cAAwB,UAAA,+CAGzC,KAAA,CAAU,EAAA,EAAI,OAAA,EAAS,KAAA,EAAO,MAAA;EACtC,MAAA,CAAO,KAAA,EAAO,MAAA,EAAQ,GAAA,EAAK,mBAAA,GAAsB,OAAA,CAAQ,KAAA;EACzD,MAAA,CAAO,IAAA,EAAM,KAAA,EAAO,GAAA,EAAK,mBAAA,GAAsB,OAAA,CAAQ,MAAA;AAAA;;;;;;;;;UAWxC,qBAAA;EAbO;;;EAiBtB,SAAA,CAAU,KAAA,UAAe,MAAA,WAAiB,OAAA;EAhB5B;;;;EAsBd,UAAA,CAAW,OAAA,WAAkB,OAAA;AAAA;;;;;KAQnB,kBAAA,GAAqB,eAAA;AAAA,KAE5B,uBAAA,MACH,CAAA,SAAU,eAAA,aAA4B,UAAA,CAAW,UAAA,CAAW,CAAA;AAAA,KAElD,iBAAA,MAAuB,CAAA,SAAU,kBAAA,GAAqB,CAAA;AAAA,KAEtD,oBAAA,MACV,uBAAA,CAAwB,CAAA,UAAW,KAAA,kBAA2B,UAAA,yBAC1D,EAAA;;AA3BN;;;;;KAoCY,qBAAA,MAA2B,CAAA;EAAA,SAC5B,MAAA,iCAAuC,UAAA;AAAA,IAE9C,OAAA,WAAkB,UAAA;;;;;;KAQV,iBAAA,4CAEa,WAAA,GAAc,kBAAA,KACjC,MAAA,yCAEiB,WAAA,IAAe,iBAAA,CAAkB,WAAA,CAAY,CAAA;EAAA,SACvD,KAAA,EAAO,oBAAA,CAAqB,WAAA,CAAY,CAAA;EAAA,SACxC,MAAA,EAAQ,oBAAA,CAAqB,WAAA,CAAY,CAAA;EAAA,SACzC,MAAA,EAAQ,qBAAA,CAAsB,WAAA,CAAY,CAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors-
|
|
1
|
+
{"version":3,"file":"errors-BF7W5uUd.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;CAEhC,OAAO,eAAe,OAAO,QAAQ;EACnC,OAAO;EACP,cAAc;EACf,CAAC;CAEF,OAAO,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;CAEhC,OAAO,eAAe,OAAO,QAAQ;EACnC,OAAO;EACP,cAAc;EACf,CAAC;CAEF,OAAO,OAAO,OAAO,OAAO;EAC1B,MAAM;EACN,UAAU;EACV,UAAU;EACV;EACA;EACA;EACD,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { y as RuntimeError } from "./types-
|
|
1
|
+
import { y as RuntimeError } from "./types-D6Pk1DTr.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-BgNpVAT8.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors-
|
|
1
|
+
{"version":3,"file":"errors-BgNpVAT8.d.mts","names":[],"sources":["../src/errors.ts"],"mappings":";;;iBAEgB,WAAA,CACd,OAAA,UACA,OAAA,GAAU,MAAA,mBACV,KAAA,sBACA,IAAA,uBACC,YAAA;AAAA,iBAkBa,eAAA,CACd,OAAA,UACA,OAAA,GAAU,MAAA,mBACV,KAAA,sBACA,IAAA,uBACC,YAAA"}
|
package/dist/exports/ast.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
import {
|
|
1
|
+
import { $ as TableRef, 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 SubqueryExpr, R as LiteralExpr, S as EqColJoinOn, T as ExpressionFolder, U as OrExpr, V as NullCheckExpr, W as OrderByItem, X as SelectAst, Y as RawSqlExpr, Z as SelectAstOptions, _ as DeleteAst, a as AndExpr, at as isWhereExpr, b as DoNothingConflictAction, c as AnyInsertOnConflictAction, d as AnyQueryAst, et as TableSource, f as AstRewriter, g as DefaultValueExpr, h as ColumnRef, i as AggregateOpFn, it as isQueryAst, j as InsertValue, k as InsertAst, l as AnyInsertValue, m as BinaryOp, n as AggregateExpr, nt as UpdateAst, o as AnyExpression, ot as queryAstKinds, p as BinaryExpr, q as ProjectionExpr, r as AggregateFn, rt as WhereArg, s as AnyFromSource, st as whereExprKinds, t as AggregateCountFn, tt as ToWhereExpr, u as AnyOperationArg, v as DerivedTableSource, w as ExprVisitor, x as DoUpdateSetConflictAction, y as Direction, z as LoweredStatement } from "../types-BZcKgaYA.mjs";
|
|
2
|
+
import { a as CodecMeta, c as DescriptorCodecId, d as ExtractCodecTypes, f as SqlCodecCallContext, i as CodecDescriptor, l as DescriptorCodecInput, m as SqlColumnRef, n as Codec, o as CodecTrait, p as SqlCodecInstanceContext, r as CodecCallContext, s as ContractCodecRegistry, t as AnyCodecDescriptor, u as DescriptorCodecTraits } from "../codec-types-BUfBna4G.mjs";
|
|
3
|
+
import { n as CodecDescriptorRegistry } from "../query-lane-context-C2tLZGp4.mjs";
|
|
3
4
|
import * as _$_prisma_next_framework_components_codec0 from "@prisma-next/framework-components/codec";
|
|
4
5
|
import { CodecCallContext as CodecCallContext$1, CodecDescriptorImpl, CodecImpl, CodecInstanceContext } from "@prisma-next/framework-components/codec";
|
|
5
6
|
import { ContractMarkerRecord, JsonValue } from "@prisma-next/contract/types";
|
|
@@ -255,5 +256,5 @@ declare function collectOrderedParamRefs(ast: AnyQueryAst): ReadonlyArray<ParamR
|
|
|
255
256
|
*/
|
|
256
257
|
declare function validateParamRefRefs(plan: AnyQueryAst, registry: CodecDescriptorRegistry): void;
|
|
257
258
|
//#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 };
|
|
259
|
+
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, RawSqlExpr, 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 };
|
|
259
260
|
//# 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-codec-helpers.ts","../../src/ast/sql-codecs.ts","../../src/ast/util.ts","../../src/ast/validate-param-refs.ts"],"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"],"mappings":"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"}
|
package/dist/exports/ast.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as TableSource, C as OrExpr, D as RawSqlExpr, E as ProjectionItem, F as whereExprKinds, M as isQueryAst, N as isWhereExpr, O as SelectAst, P as queryAstKinds, S as OperationExpr, T as ParamRef, _ as JsonObjectExpr, a as DefaultValueExpr, b as NotExpr, c as DoNothingConflictAction, d as ExistsExpr, f as IdentifierRef, g as JsonArrayAggExpr, h as JoinAst, i as ColumnRef, j as UpdateAst, k as SubqueryExpr, l as DoUpdateSetConflictAction, m as InsertOnConflict, n as AndExpr, o as DeleteAst, p as InsertAst, r as BinaryExpr, s as DerivedTableSource, t as AggregateExpr, u as EqColJoinOn, v as ListExpression, w as OrderByItem, x as NullCheckExpr, y as LiteralExpr } from "../types-CK9ZJ6OU.mjs";
|
|
2
|
+
import { n as compact, t as collectOrderedParamRefs } from "../util-DWmhUCEO.mjs";
|
|
2
3
|
import { CodecDescriptorImpl, CodecImpl, column, voidParamsSchema } from "@prisma-next/framework-components/codec";
|
|
3
4
|
import { type } from "arktype";
|
|
4
5
|
import { runtimeError } from "@prisma-next/framework-components/runtime";
|
|
@@ -230,37 +231,6 @@ var SqlTimestampDescriptor = class extends CodecDescriptorImpl {
|
|
|
230
231
|
const sqlTimestampDescriptor = new SqlTimestampDescriptor();
|
|
231
232
|
const sqlTimestampColumn = (params = {}) => column(sqlTimestampDescriptor.factory(params), sqlTimestampDescriptor.codecId, params, "timestamp");
|
|
232
233
|
//#endregion
|
|
233
|
-
//#region src/ast/util.ts
|
|
234
|
-
function compact(o) {
|
|
235
|
-
const out = {};
|
|
236
|
-
for (const [k, v] of Object.entries(o)) {
|
|
237
|
-
if (v === void 0 || v === null) continue;
|
|
238
|
-
if (Array.isArray(v) && v.length === 0) continue;
|
|
239
|
-
out[k] = v;
|
|
240
|
-
}
|
|
241
|
-
return out;
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Walks an AST's parameter references in first-encounter order and dedupes
|
|
245
|
-
* by ParamRef identity. The single canonical helper used by every consumer
|
|
246
|
-
* that aligns `plan.params` with metadata-by-index — the SQL builder lane,
|
|
247
|
-
* the SQL ORM client, the SQL runtime encoder, and the Postgres renderer's
|
|
248
|
-
* `$N` index map — so the four walks cannot drift in dedupe semantics.
|
|
249
|
-
*
|
|
250
|
-
* SQLite's `?`-placeholder renderer intentionally does NOT use this helper
|
|
251
|
-
* because it needs one params entry per occurrence in the SQL.
|
|
252
|
-
*/
|
|
253
|
-
function collectOrderedParamRefs(ast) {
|
|
254
|
-
const seen = /* @__PURE__ */ new Set();
|
|
255
|
-
const ordered = [];
|
|
256
|
-
for (const ref of ast.collectParamRefs()) {
|
|
257
|
-
if (seen.has(ref)) continue;
|
|
258
|
-
seen.add(ref);
|
|
259
|
-
ordered.push(ref);
|
|
260
|
-
}
|
|
261
|
-
return Object.freeze(ordered);
|
|
262
|
-
}
|
|
263
|
-
//#endregion
|
|
264
234
|
//#region src/ast/validate-param-refs.ts
|
|
265
235
|
/**
|
|
266
236
|
* Builder-pipeline validator pass: every {@link ParamRef} whose `codecId` resolves to a *parameterized* descriptor must carry `refs: { table, column }` so encode-side dispatch can call `contractCodecs.forColumn(table, column)`. Refs-less parameterized `ParamRef`s are a hard error — the codec-id-keyed `forCodecId` fallback cannot disambiguate per-instance codecs (e.g. `vector(1024)` vs. `vector(1536)`), so the dispatch
|
|
@@ -290,6 +260,6 @@ function diagnoseRef(ref, registry) {
|
|
|
290
260
|
});
|
|
291
261
|
}
|
|
292
262
|
//#endregion
|
|
293
|
-
export { AggregateExpr, AndExpr, BinaryExpr, ColumnRef, DefaultValueExpr, DeleteAst, DerivedTableSource, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExistsExpr, IdentifierRef, InsertAst, InsertOnConflict, JoinAst, JsonArrayAggExpr, JsonObjectExpr, ListExpression, LiteralExpr, NotExpr, NullCheckExpr, OperationExpr, OrExpr, OrderByItem, ParamRef, 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, SqlCharCodec, SqlCharDescriptor, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlTextCodec, SqlTextDescriptor, SqlTimestampCodec, SqlTimestampDescriptor, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableSource, UpdateAst, 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 };
|
|
263
|
+
export { AggregateExpr, AndExpr, BinaryExpr, ColumnRef, DefaultValueExpr, DeleteAst, DerivedTableSource, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExistsExpr, IdentifierRef, InsertAst, InsertOnConflict, JoinAst, JsonArrayAggExpr, JsonObjectExpr, ListExpression, LiteralExpr, NotExpr, NullCheckExpr, OperationExpr, OrExpr, OrderByItem, ParamRef, ProjectionItem, RawSqlExpr, 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, SqlCharCodec, SqlCharDescriptor, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlTextCodec, SqlTextDescriptor, SqlTimestampCodec, SqlTimestampDescriptor, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableSource, UpdateAst, 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 };
|
|
294
264
|
|
|
295
265
|
//# sourceMappingURL=ast.mjs.map
|
package/dist/exports/ast.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.mjs","names":["arktype"],"sources":["../../src/ast/sql-codec-helpers.ts","../../src/ast/sql-codecs.ts","../../src/ast/util.ts","../../src/ast/validate-param-refs.ts"],"sourcesContent":["/**\n * Shared encode/decode/render constants and codec id literals for the six SQL base codecs (`sql/char@1`, `sql/varchar@1`, `sql/int@1`, `sql/float@1`, `sql/text@1`, `sql/timestamp@1`).\n *\n * The codec implementations live in `sql-codecs.ts` (TML-2357). This module retains only the conversion helpers + emit-path renderers the codec methods compose with — keeping a single source of truth for non-trivial conversions while the codec methods provide the framework-required `Promise<…>` boundary.\n */\n\nimport type { JsonValue } from '@prisma-next/contract/types';\n\nexport const SQL_CHAR_CODEC_ID = 'sql/char@1' as const;\nexport const SQL_VARCHAR_CODEC_ID = 'sql/varchar@1' as const;\nexport const SQL_INT_CODEC_ID = 'sql/int@1' as const;\nexport const SQL_FLOAT_CODEC_ID = 'sql/float@1' as const;\nexport const SQL_TEXT_CODEC_ID = 'sql/text@1' as const;\nexport const SQL_TIMESTAMP_CODEC_ID = 'sql/timestamp@1' as const;\n\nexport const sqlCharEncode = (value: string): string => value;\nexport const sqlCharDecode = (wire: string): string => wire.trimEnd();\nexport const sqlCharRenderOutputType = (typeParams: { readonly length?: number }) => {\n const length = typeParams.length;\n if (length === undefined) return undefined;\n if (typeof length !== 'number' || !Number.isFinite(length) || !Number.isInteger(length)) {\n throw new Error(\n `renderOutputType: expected integer \"length\" in typeParams for Char, got ${String(length)}`,\n );\n }\n return `Char<${length}>`;\n};\n\nexport const sqlVarcharEncode = (value: string): string => value;\nexport const sqlVarcharDecode = (wire: string): string => wire;\nexport const sqlVarcharRenderOutputType = (typeParams: { readonly length?: number }) => {\n const length = typeParams.length;\n if (length === undefined) return undefined;\n if (typeof length !== 'number' || !Number.isFinite(length) || !Number.isInteger(length)) {\n throw new Error(\n `renderOutputType: expected integer \"length\" in typeParams for Varchar, got ${String(length)}`,\n );\n }\n return `Varchar<${length}>`;\n};\n\nexport const sqlIntEncode = (value: number): number => value;\nexport const sqlIntDecode = (wire: number): number => wire;\n\nexport const sqlFloatEncode = (value: number): number => value;\nexport const sqlFloatDecode = (wire: number): number => wire;\n\nexport const sqlTextEncode = (value: string): string => value;\nexport const sqlTextDecode = (wire: string): string => wire;\n\nexport const sqlTimestampEncode = (value: Date): Date => value;\nexport const sqlTimestampDecode = (wire: Date): Date => wire;\nexport const sqlTimestampEncodeJson = (value: Date): JsonValue => value.toISOString();\nexport const sqlTimestampDecodeJson = (json: JsonValue): Date => {\n if (typeof json !== 'string') {\n throw new Error(`Expected ISO date string for sql/timestamp@1, got ${typeof json}`);\n }\n const date = new Date(json);\n if (Number.isNaN(date.getTime())) {\n throw new Error(`Invalid ISO date string for sql/timestamp@1: ${json}`);\n }\n return date;\n};\nexport const sqlTimestampRenderOutputType = (typeParams: { readonly precision?: number }) => {\n const precision = typeParams.precision;\n if (precision === undefined) {\n return 'Timestamp';\n }\n if (\n typeof precision !== 'number' ||\n !Number.isFinite(precision) ||\n !Number.isInteger(precision)\n ) {\n throw new Error(\n `renderOutputType: expected integer \"precision\" in typeParams for Timestamp, got ${String(precision)}`,\n );\n }\n return `Timestamp<${precision}>`;\n};\n","/**\n * The six SQL base codecs (TML-2357).\n *\n * Each codec ships as three artifacts:\n *\n * 1. A `SqlXCodec` class extending {@link CodecImpl} that wraps the module-level encode/decode constants exported from `sql-codec-helpers.ts` (the single source of truth for runtime behaviour). 2. A `SqlXDescriptor` class extending {@link CodecDescriptorImpl} declaring the codec id, traits, target types, params schema, and (where applicable) the emit-path `renderOutputType`. 3. A per-codec column helper (`sqlXColumn`)\n * that calls `descriptor.factory(...)` directly and packages the result into a {@link ColumnSpec} via the framework {@link column} packager. The helper is tied to its descriptor with `satisfies ColumnHelperFor`.\n *\n * After TML-2357 this file is the canonical source of SQL base codec metadata and runtime behaviour — the legacy `mkCodec` / `defineCodec` carriers retired with the deletion sweep.\n */\n\nimport type { JsonValue } from '@prisma-next/contract/types';\nimport {\n type CodecCallContext,\n CodecDescriptorImpl,\n CodecImpl,\n type CodecInstanceContext,\n type ColumnHelperFor,\n type ColumnHelperForStrict,\n column,\n voidParamsSchema,\n} from '@prisma-next/framework-components/codec';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { type as arktype } from 'arktype';\nimport {\n SQL_CHAR_CODEC_ID,\n SQL_FLOAT_CODEC_ID,\n SQL_INT_CODEC_ID,\n SQL_TEXT_CODEC_ID,\n SQL_TIMESTAMP_CODEC_ID,\n SQL_VARCHAR_CODEC_ID,\n sqlCharDecode,\n sqlCharEncode,\n sqlCharRenderOutputType,\n sqlFloatDecode,\n sqlFloatEncode,\n sqlIntDecode,\n sqlIntEncode,\n sqlTextDecode,\n sqlTextEncode,\n sqlTimestampDecode,\n sqlTimestampDecodeJson,\n sqlTimestampEncode,\n sqlTimestampEncodeJson,\n sqlTimestampRenderOutputType,\n sqlVarcharDecode,\n sqlVarcharEncode,\n sqlVarcharRenderOutputType,\n} from './sql-codec-helpers';\n\ntype LengthParams = { readonly length?: number };\ntype PrecisionParams = { readonly precision?: number };\n\nconst lengthParamsSchema = arktype({\n 'length?': 'number.integer > 0',\n}) satisfies StandardSchemaV1<LengthParams>;\n\nconst precisionParamsSchema = arktype({\n 'precision?': 'number.integer >= 0 & number.integer <= 6',\n}) satisfies StandardSchemaV1<PrecisionParams>;\n\nexport class SqlTextCodec extends CodecImpl<\n typeof SQL_TEXT_CODEC_ID,\n readonly ['equality', 'order', 'textual'],\n string,\n string\n> {\n async encode(value: string, _ctx: CodecCallContext): Promise<string> {\n return sqlTextEncode(value);\n }\n async decode(wire: string, _ctx: CodecCallContext): Promise<string> {\n return sqlTextDecode(wire);\n }\n encodeJson(value: string): JsonValue {\n return value;\n }\n decodeJson(json: JsonValue): string {\n return json as string;\n }\n}\n\nexport class SqlTextDescriptor extends CodecDescriptorImpl<void> {\n override readonly codecId = SQL_TEXT_CODEC_ID;\n override readonly traits = ['equality', 'order', 'textual'] as const;\n override readonly targetTypes = ['text'] as const;\n override readonly paramsSchema: StandardSchemaV1<void> = voidParamsSchema;\n override factory(): (ctx: CodecInstanceContext) => SqlTextCodec {\n return () => new SqlTextCodec(this);\n }\n}\n\nexport const sqlTextDescriptor = new SqlTextDescriptor();\n\nexport const sqlTextColumn = () =>\n column(sqlTextDescriptor.factory(), sqlTextDescriptor.codecId, undefined, 'text');\n\nsqlTextColumn satisfies ColumnHelperFor<SqlTextDescriptor>;\nsqlTextColumn satisfies ColumnHelperForStrict<SqlTextDescriptor>;\n\nexport class SqlIntCodec extends CodecImpl<\n typeof SQL_INT_CODEC_ID,\n readonly ['equality', 'order', 'numeric'],\n number,\n number\n> {\n async encode(value: number, _ctx: CodecCallContext): Promise<number> {\n return sqlIntEncode(value);\n }\n async decode(wire: number, _ctx: CodecCallContext): Promise<number> {\n return sqlIntDecode(wire);\n }\n encodeJson(value: number): JsonValue {\n return value;\n }\n decodeJson(json: JsonValue): number {\n return json as number;\n }\n}\n\nexport class SqlIntDescriptor extends CodecDescriptorImpl<void> {\n override readonly codecId = SQL_INT_CODEC_ID;\n override readonly traits = ['equality', 'order', 'numeric'] as const;\n override readonly targetTypes = ['int'] as const;\n override readonly paramsSchema: StandardSchemaV1<void> = voidParamsSchema;\n override factory(): (ctx: CodecInstanceContext) => SqlIntCodec {\n return () => new SqlIntCodec(this);\n }\n}\n\nexport const sqlIntDescriptor = new SqlIntDescriptor();\n\nexport const sqlIntColumn = () =>\n column(sqlIntDescriptor.factory(), sqlIntDescriptor.codecId, undefined, 'int');\n\nsqlIntColumn satisfies ColumnHelperFor<SqlIntDescriptor>;\nsqlIntColumn satisfies ColumnHelperForStrict<SqlIntDescriptor>;\n\nexport class SqlFloatCodec extends CodecImpl<\n typeof SQL_FLOAT_CODEC_ID,\n readonly ['equality', 'order', 'numeric'],\n number,\n number\n> {\n async encode(value: number, _ctx: CodecCallContext): Promise<number> {\n return sqlFloatEncode(value);\n }\n async decode(wire: number, _ctx: CodecCallContext): Promise<number> {\n return sqlFloatDecode(wire);\n }\n encodeJson(value: number): JsonValue {\n return value;\n }\n decodeJson(json: JsonValue): number {\n return json as number;\n }\n}\n\nexport class SqlFloatDescriptor extends CodecDescriptorImpl<void> {\n override readonly codecId = SQL_FLOAT_CODEC_ID;\n override readonly traits = ['equality', 'order', 'numeric'] as const;\n override readonly targetTypes = ['float'] as const;\n override readonly paramsSchema: StandardSchemaV1<void> = voidParamsSchema;\n override factory(): (ctx: CodecInstanceContext) => SqlFloatCodec {\n return () => new SqlFloatCodec(this);\n }\n}\n\nexport const sqlFloatDescriptor = new SqlFloatDescriptor();\n\nexport const sqlFloatColumn = () =>\n column(sqlFloatDescriptor.factory(), sqlFloatDescriptor.codecId, undefined, 'float');\n\nsqlFloatColumn satisfies ColumnHelperFor<SqlFloatDescriptor>;\nsqlFloatColumn satisfies ColumnHelperForStrict<SqlFloatDescriptor>;\n\nexport class SqlCharCodec extends CodecImpl<\n typeof SQL_CHAR_CODEC_ID,\n readonly ['equality', 'order', 'textual'],\n string,\n string\n> {\n async encode(value: string, _ctx: CodecCallContext): Promise<string> {\n return sqlCharEncode(value);\n }\n async decode(wire: string, _ctx: CodecCallContext): Promise<string> {\n return sqlCharDecode(wire);\n }\n encodeJson(value: string): JsonValue {\n return value;\n }\n decodeJson(json: JsonValue): string {\n return json as string;\n }\n}\n\nexport class SqlCharDescriptor extends CodecDescriptorImpl<LengthParams> {\n override readonly codecId = SQL_CHAR_CODEC_ID;\n override readonly traits = ['equality', 'order', 'textual'] as const;\n override readonly targetTypes = ['char'] as const;\n override readonly paramsSchema: StandardSchemaV1<LengthParams> = lengthParamsSchema;\n override renderOutputType(params: LengthParams): string | undefined {\n return sqlCharRenderOutputType(params);\n }\n override factory(_params: LengthParams): (ctx: CodecInstanceContext) => SqlCharCodec {\n return () => new SqlCharCodec(this);\n }\n}\n\nexport const sqlCharDescriptor = new SqlCharDescriptor();\n\nexport const sqlCharColumn = (params: LengthParams = {}) =>\n column(sqlCharDescriptor.factory(params), sqlCharDescriptor.codecId, params, 'char');\n\nsqlCharColumn satisfies ColumnHelperFor<SqlCharDescriptor>;\nsqlCharColumn satisfies ColumnHelperForStrict<SqlCharDescriptor>;\n\nexport class SqlVarcharCodec extends CodecImpl<\n typeof SQL_VARCHAR_CODEC_ID,\n readonly ['equality', 'order', 'textual'],\n string,\n string\n> {\n async encode(value: string, _ctx: CodecCallContext): Promise<string> {\n return sqlVarcharEncode(value);\n }\n async decode(wire: string, _ctx: CodecCallContext): Promise<string> {\n return sqlVarcharDecode(wire);\n }\n encodeJson(value: string): JsonValue {\n return value;\n }\n decodeJson(json: JsonValue): string {\n return json as string;\n }\n}\n\nexport class SqlVarcharDescriptor extends CodecDescriptorImpl<LengthParams> {\n override readonly codecId = SQL_VARCHAR_CODEC_ID;\n override readonly traits = ['equality', 'order', 'textual'] as const;\n override readonly targetTypes = ['varchar'] as const;\n override readonly paramsSchema: StandardSchemaV1<LengthParams> = lengthParamsSchema;\n override renderOutputType(params: LengthParams): string | undefined {\n return sqlVarcharRenderOutputType(params);\n }\n override factory(_params: LengthParams): (ctx: CodecInstanceContext) => SqlVarcharCodec {\n return () => new SqlVarcharCodec(this);\n }\n}\n\nexport const sqlVarcharDescriptor = new SqlVarcharDescriptor();\n\nexport const sqlVarcharColumn = (params: LengthParams = {}) =>\n column(sqlVarcharDescriptor.factory(params), sqlVarcharDescriptor.codecId, params, 'varchar');\n\nsqlVarcharColumn satisfies ColumnHelperFor<SqlVarcharDescriptor>;\nsqlVarcharColumn satisfies ColumnHelperForStrict<SqlVarcharDescriptor>;\n\nexport class SqlTimestampCodec extends CodecImpl<\n typeof SQL_TIMESTAMP_CODEC_ID,\n readonly ['equality', 'order'],\n Date,\n Date\n> {\n async encode(value: Date, _ctx: CodecCallContext): Promise<Date> {\n return sqlTimestampEncode(value);\n }\n async decode(wire: Date, _ctx: CodecCallContext): Promise<Date> {\n return sqlTimestampDecode(wire);\n }\n encodeJson(value: Date): JsonValue {\n return sqlTimestampEncodeJson(value);\n }\n decodeJson(json: JsonValue): Date {\n return sqlTimestampDecodeJson(json);\n }\n}\n\nexport class SqlTimestampDescriptor extends CodecDescriptorImpl<PrecisionParams> {\n override readonly codecId = SQL_TIMESTAMP_CODEC_ID;\n override readonly traits = ['equality', 'order'] as const;\n override readonly targetTypes = ['timestamp'] as const;\n override readonly paramsSchema: StandardSchemaV1<PrecisionParams> = precisionParamsSchema;\n override renderOutputType(params: PrecisionParams): string | undefined {\n return sqlTimestampRenderOutputType(params);\n }\n override factory(_params: PrecisionParams): (ctx: CodecInstanceContext) => SqlTimestampCodec {\n return () => new SqlTimestampCodec(this);\n }\n}\n\nexport const sqlTimestampDescriptor = new SqlTimestampDescriptor();\n\nexport const sqlTimestampColumn = (params: PrecisionParams = {}) =>\n column(\n sqlTimestampDescriptor.factory(params),\n sqlTimestampDescriptor.codecId,\n params,\n 'timestamp',\n );\n\nsqlTimestampColumn satisfies ColumnHelperFor<SqlTimestampDescriptor>;\nsqlTimestampColumn satisfies ColumnHelperForStrict<SqlTimestampDescriptor>;\n","import type { AnyQueryAst, ParamRef } from './types';\n\nexport function compact<T extends Record<string, unknown>>(o: T): T {\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(o)) {\n if (v === undefined || v === null) continue;\n if (Array.isArray(v) && v.length === 0) continue;\n out[k] = v;\n }\n return out as T;\n}\n\n/**\n * Walks an AST's parameter references in first-encounter order and dedupes\n * by ParamRef identity. The single canonical helper used by every consumer\n * that aligns `plan.params` with metadata-by-index — the SQL builder lane,\n * the SQL ORM client, the SQL runtime encoder, and the Postgres renderer's\n * `$N` index map — so the four walks cannot drift in dedupe semantics.\n *\n * SQLite's `?`-placeholder renderer intentionally does NOT use this helper\n * because it needs one params entry per occurrence in the SQL.\n */\nexport function collectOrderedParamRefs(ast: AnyQueryAst): ReadonlyArray<ParamRef> {\n const seen = new Set<ParamRef>();\n const ordered: ParamRef[] = [];\n for (const ref of ast.collectParamRefs()) {\n if (seen.has(ref)) continue;\n seen.add(ref);\n ordered.push(ref);\n }\n return Object.freeze(ordered);\n}\n","/**\n * Builder-pipeline validator pass: every {@link ParamRef} whose `codecId` resolves to a *parameterized* descriptor must carry `refs: { table, column }` so encode-side dispatch can call `contractCodecs.forColumn(table, column)`. Refs-less parameterized `ParamRef`s are a hard error — the codec-id-keyed `forCodecId` fallback cannot disambiguate per-instance codecs (e.g. `vector(1024)` vs. `vector(1536)`), so the dispatch\n * path must reject them at validation time rather than silently bind to the wrong instance.\n *\n * Non-parameterized codec ids (the `voidParamsSchema` case) are always dispatch-safe via codec id alone, so refs-less ParamRefs for those ids are accepted unchanged.\n *\n * The pass runs post-build / pre-execute — the natural location is the SQL runtime's `lower()` step, between any `beforeCompile` rewrites and `encodeParams`. See AC-5 in the codec-registry-unification spec.\n */\n\nimport { runtimeError } from '@prisma-next/framework-components/runtime';\nimport type { CodecDescriptorRegistry } from '../query-lane-context';\nimport type { AnyQueryAst, ParamRef } from './types';\nimport { collectOrderedParamRefs } from './util';\n\n/**\n * 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.\n *\n * The `registry` is consulted via `descriptorFor(codecId).isParameterized` — `true` whenever the descriptor's `paramsSchema` is not the singleton `voidParamsSchema`.\n */\nexport function validateParamRefRefs(plan: AnyQueryAst, registry: CodecDescriptorRegistry): void {\n for (const ref of collectOrderedParamRefs(plan)) {\n diagnoseRef(ref, registry);\n }\n}\n\nfunction diagnoseRef(ref: ParamRef, registry: CodecDescriptorRegistry): void {\n if (!ref.codecId) return;\n const descriptor = registry.descriptorFor(ref.codecId);\n if (descriptor === undefined) return;\n if (!descriptor.isParameterized) return;\n if (ref.refs) return;\n\n const label = ref.name ?? '<anonymous>';\n throw runtimeError(\n 'RUNTIME.PARAM_REF_REFS_REQUIRED',\n `ParamRef '${label}' for parameterized codec '${ref.codecId}' is missing column refs; column-aware dispatch requires { table, column } at the binding site.`,\n { codecId: ref.codecId, paramName: ref.name },\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ast.mjs","names":["arktype"],"sources":["../../src/ast/sql-codec-helpers.ts","../../src/ast/sql-codecs.ts","../../src/ast/validate-param-refs.ts"],"sourcesContent":["/**\n * Shared encode/decode/render constants and codec id literals for the six SQL base codecs (`sql/char@1`, `sql/varchar@1`, `sql/int@1`, `sql/float@1`, `sql/text@1`, `sql/timestamp@1`).\n *\n * The codec implementations live in `sql-codecs.ts` (TML-2357). This module retains only the conversion helpers + emit-path renderers the codec methods compose with — keeping a single source of truth for non-trivial conversions while the codec methods provide the framework-required `Promise<…>` boundary.\n */\n\nimport type { JsonValue } from '@prisma-next/contract/types';\n\nexport const SQL_CHAR_CODEC_ID = 'sql/char@1' as const;\nexport const SQL_VARCHAR_CODEC_ID = 'sql/varchar@1' as const;\nexport const SQL_INT_CODEC_ID = 'sql/int@1' as const;\nexport const SQL_FLOAT_CODEC_ID = 'sql/float@1' as const;\nexport const SQL_TEXT_CODEC_ID = 'sql/text@1' as const;\nexport const SQL_TIMESTAMP_CODEC_ID = 'sql/timestamp@1' as const;\n\nexport const sqlCharEncode = (value: string): string => value;\nexport const sqlCharDecode = (wire: string): string => wire.trimEnd();\nexport const sqlCharRenderOutputType = (typeParams: { readonly length?: number }) => {\n const length = typeParams.length;\n if (length === undefined) return undefined;\n if (typeof length !== 'number' || !Number.isFinite(length) || !Number.isInteger(length)) {\n throw new Error(\n `renderOutputType: expected integer \"length\" in typeParams for Char, got ${String(length)}`,\n );\n }\n return `Char<${length}>`;\n};\n\nexport const sqlVarcharEncode = (value: string): string => value;\nexport const sqlVarcharDecode = (wire: string): string => wire;\nexport const sqlVarcharRenderOutputType = (typeParams: { readonly length?: number }) => {\n const length = typeParams.length;\n if (length === undefined) return undefined;\n if (typeof length !== 'number' || !Number.isFinite(length) || !Number.isInteger(length)) {\n throw new Error(\n `renderOutputType: expected integer \"length\" in typeParams for Varchar, got ${String(length)}`,\n );\n }\n return `Varchar<${length}>`;\n};\n\nexport const sqlIntEncode = (value: number): number => value;\nexport const sqlIntDecode = (wire: number): number => wire;\n\nexport const sqlFloatEncode = (value: number): number => value;\nexport const sqlFloatDecode = (wire: number): number => wire;\n\nexport const sqlTextEncode = (value: string): string => value;\nexport const sqlTextDecode = (wire: string): string => wire;\n\nexport const sqlTimestampEncode = (value: Date): Date => value;\nexport const sqlTimestampDecode = (wire: Date): Date => wire;\nexport const sqlTimestampEncodeJson = (value: Date): JsonValue => value.toISOString();\nexport const sqlTimestampDecodeJson = (json: JsonValue): Date => {\n if (typeof json !== 'string') {\n throw new Error(`Expected ISO date string for sql/timestamp@1, got ${typeof json}`);\n }\n const date = new Date(json);\n if (Number.isNaN(date.getTime())) {\n throw new Error(`Invalid ISO date string for sql/timestamp@1: ${json}`);\n }\n return date;\n};\nexport const sqlTimestampRenderOutputType = (typeParams: { readonly precision?: number }) => {\n const precision = typeParams.precision;\n if (precision === undefined) {\n return 'Timestamp';\n }\n if (\n typeof precision !== 'number' ||\n !Number.isFinite(precision) ||\n !Number.isInteger(precision)\n ) {\n throw new Error(\n `renderOutputType: expected integer \"precision\" in typeParams for Timestamp, got ${String(precision)}`,\n );\n }\n return `Timestamp<${precision}>`;\n};\n","/**\n * The six SQL base codecs (TML-2357).\n *\n * Each codec ships as three artifacts:\n *\n * 1. A `SqlXCodec` class extending {@link CodecImpl} that wraps the module-level encode/decode constants exported from `sql-codec-helpers.ts` (the single source of truth for runtime behaviour). 2. A `SqlXDescriptor` class extending {@link CodecDescriptorImpl} declaring the codec id, traits, target types, params schema, and (where applicable) the emit-path `renderOutputType`. 3. A per-codec column helper (`sqlXColumn`)\n * that calls `descriptor.factory(...)` directly and packages the result into a {@link ColumnSpec} via the framework {@link column} packager. The helper is tied to its descriptor with `satisfies ColumnHelperFor`.\n *\n * After TML-2357 this file is the canonical source of SQL base codec metadata and runtime behaviour — the legacy `mkCodec` / `defineCodec` carriers retired with the deletion sweep.\n */\n\nimport type { JsonValue } from '@prisma-next/contract/types';\nimport {\n type CodecCallContext,\n CodecDescriptorImpl,\n CodecImpl,\n type CodecInstanceContext,\n type ColumnHelperFor,\n type ColumnHelperForStrict,\n column,\n voidParamsSchema,\n} from '@prisma-next/framework-components/codec';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { type as arktype } from 'arktype';\nimport {\n SQL_CHAR_CODEC_ID,\n SQL_FLOAT_CODEC_ID,\n SQL_INT_CODEC_ID,\n SQL_TEXT_CODEC_ID,\n SQL_TIMESTAMP_CODEC_ID,\n SQL_VARCHAR_CODEC_ID,\n sqlCharDecode,\n sqlCharEncode,\n sqlCharRenderOutputType,\n sqlFloatDecode,\n sqlFloatEncode,\n sqlIntDecode,\n sqlIntEncode,\n sqlTextDecode,\n sqlTextEncode,\n sqlTimestampDecode,\n sqlTimestampDecodeJson,\n sqlTimestampEncode,\n sqlTimestampEncodeJson,\n sqlTimestampRenderOutputType,\n sqlVarcharDecode,\n sqlVarcharEncode,\n sqlVarcharRenderOutputType,\n} from './sql-codec-helpers';\n\ntype LengthParams = { readonly length?: number };\ntype PrecisionParams = { readonly precision?: number };\n\nconst lengthParamsSchema = arktype({\n 'length?': 'number.integer > 0',\n}) satisfies StandardSchemaV1<LengthParams>;\n\nconst precisionParamsSchema = arktype({\n 'precision?': 'number.integer >= 0 & number.integer <= 6',\n}) satisfies StandardSchemaV1<PrecisionParams>;\n\nexport class SqlTextCodec extends CodecImpl<\n typeof SQL_TEXT_CODEC_ID,\n readonly ['equality', 'order', 'textual'],\n string,\n string\n> {\n async encode(value: string, _ctx: CodecCallContext): Promise<string> {\n return sqlTextEncode(value);\n }\n async decode(wire: string, _ctx: CodecCallContext): Promise<string> {\n return sqlTextDecode(wire);\n }\n encodeJson(value: string): JsonValue {\n return value;\n }\n decodeJson(json: JsonValue): string {\n return json as string;\n }\n}\n\nexport class SqlTextDescriptor extends CodecDescriptorImpl<void> {\n override readonly codecId = SQL_TEXT_CODEC_ID;\n override readonly traits = ['equality', 'order', 'textual'] as const;\n override readonly targetTypes = ['text'] as const;\n override readonly paramsSchema: StandardSchemaV1<void> = voidParamsSchema;\n override factory(): (ctx: CodecInstanceContext) => SqlTextCodec {\n return () => new SqlTextCodec(this);\n }\n}\n\nexport const sqlTextDescriptor = new SqlTextDescriptor();\n\nexport const sqlTextColumn = () =>\n column(sqlTextDescriptor.factory(), sqlTextDescriptor.codecId, undefined, 'text');\n\nsqlTextColumn satisfies ColumnHelperFor<SqlTextDescriptor>;\nsqlTextColumn satisfies ColumnHelperForStrict<SqlTextDescriptor>;\n\nexport class SqlIntCodec extends CodecImpl<\n typeof SQL_INT_CODEC_ID,\n readonly ['equality', 'order', 'numeric'],\n number,\n number\n> {\n async encode(value: number, _ctx: CodecCallContext): Promise<number> {\n return sqlIntEncode(value);\n }\n async decode(wire: number, _ctx: CodecCallContext): Promise<number> {\n return sqlIntDecode(wire);\n }\n encodeJson(value: number): JsonValue {\n return value;\n }\n decodeJson(json: JsonValue): number {\n return json as number;\n }\n}\n\nexport class SqlIntDescriptor extends CodecDescriptorImpl<void> {\n override readonly codecId = SQL_INT_CODEC_ID;\n override readonly traits = ['equality', 'order', 'numeric'] as const;\n override readonly targetTypes = ['int'] as const;\n override readonly paramsSchema: StandardSchemaV1<void> = voidParamsSchema;\n override factory(): (ctx: CodecInstanceContext) => SqlIntCodec {\n return () => new SqlIntCodec(this);\n }\n}\n\nexport const sqlIntDescriptor = new SqlIntDescriptor();\n\nexport const sqlIntColumn = () =>\n column(sqlIntDescriptor.factory(), sqlIntDescriptor.codecId, undefined, 'int');\n\nsqlIntColumn satisfies ColumnHelperFor<SqlIntDescriptor>;\nsqlIntColumn satisfies ColumnHelperForStrict<SqlIntDescriptor>;\n\nexport class SqlFloatCodec extends CodecImpl<\n typeof SQL_FLOAT_CODEC_ID,\n readonly ['equality', 'order', 'numeric'],\n number,\n number\n> {\n async encode(value: number, _ctx: CodecCallContext): Promise<number> {\n return sqlFloatEncode(value);\n }\n async decode(wire: number, _ctx: CodecCallContext): Promise<number> {\n return sqlFloatDecode(wire);\n }\n encodeJson(value: number): JsonValue {\n return value;\n }\n decodeJson(json: JsonValue): number {\n return json as number;\n }\n}\n\nexport class SqlFloatDescriptor extends CodecDescriptorImpl<void> {\n override readonly codecId = SQL_FLOAT_CODEC_ID;\n override readonly traits = ['equality', 'order', 'numeric'] as const;\n override readonly targetTypes = ['float'] as const;\n override readonly paramsSchema: StandardSchemaV1<void> = voidParamsSchema;\n override factory(): (ctx: CodecInstanceContext) => SqlFloatCodec {\n return () => new SqlFloatCodec(this);\n }\n}\n\nexport const sqlFloatDescriptor = new SqlFloatDescriptor();\n\nexport const sqlFloatColumn = () =>\n column(sqlFloatDescriptor.factory(), sqlFloatDescriptor.codecId, undefined, 'float');\n\nsqlFloatColumn satisfies ColumnHelperFor<SqlFloatDescriptor>;\nsqlFloatColumn satisfies ColumnHelperForStrict<SqlFloatDescriptor>;\n\nexport class SqlCharCodec extends CodecImpl<\n typeof SQL_CHAR_CODEC_ID,\n readonly ['equality', 'order', 'textual'],\n string,\n string\n> {\n async encode(value: string, _ctx: CodecCallContext): Promise<string> {\n return sqlCharEncode(value);\n }\n async decode(wire: string, _ctx: CodecCallContext): Promise<string> {\n return sqlCharDecode(wire);\n }\n encodeJson(value: string): JsonValue {\n return value;\n }\n decodeJson(json: JsonValue): string {\n return json as string;\n }\n}\n\nexport class SqlCharDescriptor extends CodecDescriptorImpl<LengthParams> {\n override readonly codecId = SQL_CHAR_CODEC_ID;\n override readonly traits = ['equality', 'order', 'textual'] as const;\n override readonly targetTypes = ['char'] as const;\n override readonly paramsSchema: StandardSchemaV1<LengthParams> = lengthParamsSchema;\n override renderOutputType(params: LengthParams): string | undefined {\n return sqlCharRenderOutputType(params);\n }\n override factory(_params: LengthParams): (ctx: CodecInstanceContext) => SqlCharCodec {\n return () => new SqlCharCodec(this);\n }\n}\n\nexport const sqlCharDescriptor = new SqlCharDescriptor();\n\nexport const sqlCharColumn = (params: LengthParams = {}) =>\n column(sqlCharDescriptor.factory(params), sqlCharDescriptor.codecId, params, 'char');\n\nsqlCharColumn satisfies ColumnHelperFor<SqlCharDescriptor>;\nsqlCharColumn satisfies ColumnHelperForStrict<SqlCharDescriptor>;\n\nexport class SqlVarcharCodec extends CodecImpl<\n typeof SQL_VARCHAR_CODEC_ID,\n readonly ['equality', 'order', 'textual'],\n string,\n string\n> {\n async encode(value: string, _ctx: CodecCallContext): Promise<string> {\n return sqlVarcharEncode(value);\n }\n async decode(wire: string, _ctx: CodecCallContext): Promise<string> {\n return sqlVarcharDecode(wire);\n }\n encodeJson(value: string): JsonValue {\n return value;\n }\n decodeJson(json: JsonValue): string {\n return json as string;\n }\n}\n\nexport class SqlVarcharDescriptor extends CodecDescriptorImpl<LengthParams> {\n override readonly codecId = SQL_VARCHAR_CODEC_ID;\n override readonly traits = ['equality', 'order', 'textual'] as const;\n override readonly targetTypes = ['varchar'] as const;\n override readonly paramsSchema: StandardSchemaV1<LengthParams> = lengthParamsSchema;\n override renderOutputType(params: LengthParams): string | undefined {\n return sqlVarcharRenderOutputType(params);\n }\n override factory(_params: LengthParams): (ctx: CodecInstanceContext) => SqlVarcharCodec {\n return () => new SqlVarcharCodec(this);\n }\n}\n\nexport const sqlVarcharDescriptor = new SqlVarcharDescriptor();\n\nexport const sqlVarcharColumn = (params: LengthParams = {}) =>\n column(sqlVarcharDescriptor.factory(params), sqlVarcharDescriptor.codecId, params, 'varchar');\n\nsqlVarcharColumn satisfies ColumnHelperFor<SqlVarcharDescriptor>;\nsqlVarcharColumn satisfies ColumnHelperForStrict<SqlVarcharDescriptor>;\n\nexport class SqlTimestampCodec extends CodecImpl<\n typeof SQL_TIMESTAMP_CODEC_ID,\n readonly ['equality', 'order'],\n Date,\n Date\n> {\n async encode(value: Date, _ctx: CodecCallContext): Promise<Date> {\n return sqlTimestampEncode(value);\n }\n async decode(wire: Date, _ctx: CodecCallContext): Promise<Date> {\n return sqlTimestampDecode(wire);\n }\n encodeJson(value: Date): JsonValue {\n return sqlTimestampEncodeJson(value);\n }\n decodeJson(json: JsonValue): Date {\n return sqlTimestampDecodeJson(json);\n }\n}\n\nexport class SqlTimestampDescriptor extends CodecDescriptorImpl<PrecisionParams> {\n override readonly codecId = SQL_TIMESTAMP_CODEC_ID;\n override readonly traits = ['equality', 'order'] as const;\n override readonly targetTypes = ['timestamp'] as const;\n override readonly paramsSchema: StandardSchemaV1<PrecisionParams> = precisionParamsSchema;\n override renderOutputType(params: PrecisionParams): string | undefined {\n return sqlTimestampRenderOutputType(params);\n }\n override factory(_params: PrecisionParams): (ctx: CodecInstanceContext) => SqlTimestampCodec {\n return () => new SqlTimestampCodec(this);\n }\n}\n\nexport const sqlTimestampDescriptor = new SqlTimestampDescriptor();\n\nexport const sqlTimestampColumn = (params: PrecisionParams = {}) =>\n column(\n sqlTimestampDescriptor.factory(params),\n sqlTimestampDescriptor.codecId,\n params,\n 'timestamp',\n );\n\nsqlTimestampColumn satisfies ColumnHelperFor<SqlTimestampDescriptor>;\nsqlTimestampColumn satisfies ColumnHelperForStrict<SqlTimestampDescriptor>;\n","/**\n * Builder-pipeline validator pass: every {@link ParamRef} whose `codecId` resolves to a *parameterized* descriptor must carry `refs: { table, column }` so encode-side dispatch can call `contractCodecs.forColumn(table, column)`. Refs-less parameterized `ParamRef`s are a hard error — the codec-id-keyed `forCodecId` fallback cannot disambiguate per-instance codecs (e.g. `vector(1024)` vs. `vector(1536)`), so the dispatch\n * path must reject them at validation time rather than silently bind to the wrong instance.\n *\n * Non-parameterized codec ids (the `voidParamsSchema` case) are always dispatch-safe via codec id alone, so refs-less ParamRefs for those ids are accepted unchanged.\n *\n * The pass runs post-build / pre-execute — the natural location is the SQL runtime's `lower()` step, between any `beforeCompile` rewrites and `encodeParams`. See AC-5 in the codec-registry-unification spec.\n */\n\nimport { runtimeError } from '@prisma-next/framework-components/runtime';\nimport type { CodecDescriptorRegistry } from '../query-lane-context';\nimport type { AnyQueryAst, ParamRef } from './types';\nimport { collectOrderedParamRefs } from './util';\n\n/**\n * 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.\n *\n * The `registry` is consulted via `descriptorFor(codecId).isParameterized` — `true` whenever the descriptor's `paramsSchema` is not the singleton `voidParamsSchema`.\n */\nexport function validateParamRefRefs(plan: AnyQueryAst, registry: CodecDescriptorRegistry): void {\n for (const ref of collectOrderedParamRefs(plan)) {\n diagnoseRef(ref, registry);\n }\n}\n\nfunction diagnoseRef(ref: ParamRef, registry: CodecDescriptorRegistry): void {\n if (!ref.codecId) return;\n const descriptor = registry.descriptorFor(ref.codecId);\n if (descriptor === undefined) return;\n if (!descriptor.isParameterized) return;\n if (ref.refs) return;\n\n const label = ref.name ?? '<anonymous>';\n throw runtimeError(\n 'RUNTIME.PARAM_REF_REFS_REQUIRED',\n `ParamRef '${label}' for parameterized codec '${ref.codecId}' is missing column refs; column-aware dispatch requires { table, column } at the binding site.`,\n { codecId: ref.codecId, paramName: ref.name },\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as AnyCodecDescriptor } from "../codec-types-BUfBna4G.mjs";
|
|
2
|
+
import { n as CodecDescriptorRegistry } from "../query-lane-context-C2tLZGp4.mjs";
|
|
2
3
|
|
|
3
4
|
//#region src/codec-descriptor-registry.d.ts
|
|
4
5
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec-descriptor-registry.d.mts","names":[],"sources":["../../src/codec-descriptor-registry.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"codec-descriptor-registry.d.mts","names":[],"sources":["../../src/codec-descriptor-registry.ts"],"mappings":";;;;;;AAcA;;;;;;;;iBAAgB,4BAAA,CACd,cAAA,EAAgB,aAAA,CAAc,kBAAA,IAC7B,uBAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as planUnsupported, t as planInvalid } from "../errors-
|
|
1
|
+
import { n as planUnsupported, t as planInvalid } from "../errors-BgNpVAT8.mjs";
|
|
2
2
|
export { planInvalid, planUnsupported };
|
package/dist/exports/errors.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as planUnsupported, t as planInvalid } from "../errors-
|
|
1
|
+
import { n as planUnsupported, t as planInvalid } from "../errors-BF7W5uUd.mjs";
|
|
2
2
|
export { planInvalid, planUnsupported };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { o as AnyExpression } from "../types-
|
|
1
|
+
import { o as AnyExpression } from "../types-BZcKgaYA.mjs";
|
|
2
2
|
import { ParamSpec } from "@prisma-next/operations";
|
|
3
3
|
import { SqlLoweringSpec } from "@prisma-next/sql-operations";
|
|
4
4
|
import { QueryOperationReturn } from "@prisma-next/sql-contract/types";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as SqlParamRefMutatorInternal, i as SqlParamRefMutator, n as ParamRefEntryUnion, o as createSqlParamRefMutator, r as ParamRefHandle, t as ParamRefEntry } from "../middleware-USDeR8p1.mjs";
|
|
2
|
+
export { ParamRefEntry, ParamRefEntryUnion, ParamRefHandle, SqlParamRefMutator, SqlParamRefMutatorInternal, createSqlParamRefMutator };
|
package/dist/exports/plan.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as SqlExecutionPlan } from "../sql-execution-plan-
|
|
2
|
-
import { t as SqlQueryPlan } from "../plan-
|
|
3
|
-
export { type SqlExecutionPlan, SqlQueryPlan };
|
|
1
|
+
import { t as SqlExecutionPlan } from "../sql-execution-plan-ffz8TSfr.mjs";
|
|
2
|
+
import { n as planFromAst, t as SqlQueryPlan } from "../plan-DFpOIsKB.mjs";
|
|
3
|
+
export { type SqlExecutionPlan, SqlQueryPlan, planFromAst };
|
package/dist/exports/plan.mjs
CHANGED
|
@@ -1 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/plan.ts
|
|
2
|
+
/**
|
|
3
|
+
* Wraps an `AnyQueryAst` (typically a `RawSqlExpr` constructed package-internally
|
|
4
|
+
* by an extension's migration factory) in a fully-populated `SqlQueryPlan`
|
|
5
|
+
* whose `meta` is sourced from the supplied contract.
|
|
6
|
+
*
|
|
7
|
+
* Centralising the envelope here means consumers (cipherstash migration
|
|
8
|
+
* factories today; future raw-sql callers) cannot drift on `storageHash` /
|
|
9
|
+
* `target` / `targetFamily`, which would otherwise surface as a subtle
|
|
10
|
+
* `assertContractMatches` failure inside `dataTransform`. `params` defaults
|
|
11
|
+
* to `[]` because parameters embedded in the AST as `ParamRef`s are resolved
|
|
12
|
+
* at lowering time (`encodeParams` walks `plan.ast.collectParamRefs()`),
|
|
13
|
+
* not at plan-construction time.
|
|
14
|
+
*
|
|
15
|
+
* The default `laneId` of `'raw'` reflects raw-SQL plans' standard lane tag;
|
|
16
|
+
* callers (e.g. a future `sql-raw-factory`) may override to differentiate
|
|
17
|
+
* the plan's provenance.
|
|
18
|
+
*/
|
|
19
|
+
function planFromAst(ast, contract, laneId = "raw") {
|
|
20
|
+
return {
|
|
21
|
+
ast,
|
|
22
|
+
params: [],
|
|
23
|
+
meta: {
|
|
24
|
+
target: contract.target,
|
|
25
|
+
targetFamily: contract.targetFamily,
|
|
26
|
+
storageHash: contract.storage.storageHash,
|
|
27
|
+
lane: laneId
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { planFromAst };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=plan.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.mjs","names":[],"sources":["../../src/plan.ts"],"sourcesContent":["import type { Contract } from '@prisma-next/contract/types';\nimport type { QueryPlan } from '@prisma-next/framework-components/runtime';\nimport type { SqlStorage } from '@prisma-next/sql-contract/types';\nimport type { AnyQueryAst } from './ast/types';\n\n/**\n * SQL query plan produced by lanes before lowering.\n *\n * Lanes build ASTs and metadata but do not perform SQL lowering. The `sql`\n * field is absent — `RuntimeCore` (the runtime base class in\n * `@prisma-next/framework-components/runtime`) drives lowering via the\n * SQL adapter and produces a `SqlExecutionPlan`.\n *\n * Extends the framework-level `QueryPlan<Row>` marker (`meta + _row`) and\n * adds SQL-specific fields (`ast`, `params`). The phantom `_row` property\n * (inherited from `QueryPlan`) is what `ResultType<P>` inspects to recover\n * the row type.\n */\nexport interface SqlQueryPlan<Row = unknown> extends QueryPlan<Row> {\n readonly ast: AnyQueryAst;\n readonly params: readonly unknown[];\n}\n\n/**\n * Wraps an `AnyQueryAst` (typically a `RawSqlExpr` constructed package-internally\n * by an extension's migration factory) in a fully-populated `SqlQueryPlan`\n * whose `meta` is sourced from the supplied contract.\n *\n * Centralising the envelope here means consumers (cipherstash migration\n * factories today; future raw-sql callers) cannot drift on `storageHash` /\n * `target` / `targetFamily`, which would otherwise surface as a subtle\n * `assertContractMatches` failure inside `dataTransform`. `params` defaults\n * to `[]` because parameters embedded in the AST as `ParamRef`s are resolved\n * at lowering time (`encodeParams` walks `plan.ast.collectParamRefs()`),\n * not at plan-construction time.\n *\n * The default `laneId` of `'raw'` reflects raw-SQL plans' standard lane tag;\n * callers (e.g. a future `sql-raw-factory`) may override to differentiate\n * the plan's provenance.\n */\nexport function planFromAst<Row = unknown>(\n ast: AnyQueryAst,\n contract: Contract<SqlStorage>,\n laneId = 'raw',\n): SqlQueryPlan<Row> {\n return {\n ast,\n params: [],\n meta: {\n target: contract.target,\n targetFamily: contract.targetFamily,\n storageHash: contract.storage.storageHash,\n lane: laneId,\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAwCA,SAAgB,YACd,KACA,UACA,SAAS,OACU;CACnB,OAAO;EACL;EACA,QAAQ,EAAE;EACV,MAAM;GACJ,QAAQ,SAAS;GACjB,cAAc,SAAS;GACvB,aAAa,SAAS,QAAQ;GAC9B,MAAM;GACP;EACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as MutationDefaultsOptions, i as MutationDefaultsOp, n as CodecDescriptorRegistry, o as TypeHelperRegistry, r as ExecutionContext, t as AppliedMutationDefault } from "../query-lane-context-
|
|
1
|
+
import { a as MutationDefaultsOptions, i as MutationDefaultsOp, n as CodecDescriptorRegistry, o as TypeHelperRegistry, r as ExecutionContext, t as AppliedMutationDefault } from "../query-lane-context-C2tLZGp4.mjs";
|
|
2
2
|
export { AppliedMutationDefault, CodecDescriptorRegistry, ExecutionContext, MutationDefaultsOp, MutationDefaultsOptions, TypeHelperRegistry };
|
package/dist/exports/types.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { C as TableKey, S as TableDef, T as TablesOf, _ as RawTemplateFactory, a as ComputeColumnJsType, b as SqlBuilderOptions, c as META, d as ModelMetadata, f as OperationTypeSignature, g as RawFunctionOptions, h as RawFactory, i as ColumnsOf, l as Meta, m as OperationsForTypeId, n as BuildParamsMap, o as Expr, p as OperationTypes, r as CodecTypes, s as HasIncludeManyCapabilities, t as BuildOptions, u as ModelDef, v as RawTemplateOptions, w as TableMetadata, x as SqlPlan, y as RuntimeError } from "../types-
|
|
2
|
-
import { n as SqlOrmPlan, t as RuntimeScope } from "../types-
|
|
1
|
+
import { C as TableKey, S as TableDef, T as TablesOf, _ as RawTemplateFactory, a as ComputeColumnJsType, b as SqlBuilderOptions, c as META, d as ModelMetadata, f as OperationTypeSignature, g as RawFunctionOptions, h as RawFactory, i as ColumnsOf, l as Meta, m as OperationsForTypeId, n as BuildParamsMap, o as Expr, p as OperationTypes, r as CodecTypes, s as HasIncludeManyCapabilities, t as BuildOptions, u as ModelDef, v as RawTemplateOptions, w as TableMetadata, x as SqlPlan, y as RuntimeError } from "../types-D6Pk1DTr.mjs";
|
|
2
|
+
import { n as SqlOrmPlan, t as RuntimeScope } from "../types-CL18G37a.mjs";
|
|
3
3
|
export { BuildOptions, BuildParamsMap, CodecTypes, ColumnsOf, ComputeColumnJsType, Expr, HasIncludeManyCapabilities, META, Meta, ModelDef, ModelMetadata, OperationTypeSignature, OperationTypes, OperationsForTypeId, RawFactory, RawFunctionOptions, RawTemplateFactory, RawTemplateOptions, RuntimeError, RuntimeScope, SqlBuilderOptions, SqlOrmPlan, SqlPlan, TableDef, TableKey, TableMetadata, TablesOf };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
import {
|
|
1
|
+
import { $ as TableRef, 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 SubqueryExpr, R as LiteralExpr, S as EqColJoinOn, T as ExpressionFolder, U as OrExpr, V as NullCheckExpr, W as OrderByItem, X as SelectAst, Y as RawSqlExpr, Z as SelectAstOptions, _ as DeleteAst, a as AndExpr, at as isWhereExpr, b as DoNothingConflictAction, c as AnyInsertOnConflictAction, d as AnyQueryAst, et as TableSource, f as AstRewriter, g as DefaultValueExpr, h as ColumnRef, i as AggregateOpFn, it as isQueryAst, j as InsertValue, k as InsertAst, l as AnyInsertValue, m as BinaryOp, n as AggregateExpr, nt as UpdateAst, o as AnyExpression, ot as queryAstKinds, p as BinaryExpr, q as ProjectionExpr, r as AggregateFn, rt as WhereArg, s as AnyFromSource, st as whereExprKinds, t as AggregateCountFn, tt as ToWhereExpr, u as AnyOperationArg, v as DerivedTableSource, w as ExprVisitor, x as DoUpdateSetConflictAction, y as Direction, z as LoweredStatement } from "./types-BZcKgaYA.mjs";
|
|
2
|
+
import { a as CodecMeta, c as DescriptorCodecId, d as ExtractCodecTypes, f as SqlCodecCallContext, i as CodecDescriptor, l as DescriptorCodecInput, m as SqlColumnRef, n as Codec, o as CodecTrait, p as SqlCodecInstanceContext, r as CodecCallContext, s as ContractCodecRegistry, t as AnyCodecDescriptor, u as DescriptorCodecTraits } from "./codec-types-BUfBna4G.mjs";
|
|
3
|
+
import { a as MutationDefaultsOptions, i as MutationDefaultsOp, n as CodecDescriptorRegistry, o as TypeHelperRegistry, r as ExecutionContext, t as AppliedMutationDefault } from "./query-lane-context-C2tLZGp4.mjs";
|
|
3
4
|
import { Adapter, AdapterProfile, AdapterTarget, Lowerer, LowererContext, MarkerStatement, SQL_CHAR_CODEC_ID, SQL_FLOAT_CODEC_ID, SQL_INT_CODEC_ID, SQL_TEXT_CODEC_ID, SQL_TIMESTAMP_CODEC_ID, SQL_VARCHAR_CODEC_ID, SqlCharCodec, SqlCharDescriptor, SqlConnection, SqlDriver, SqlDriverState, SqlExecuteRequest, SqlExplainResult, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlQueryResult, SqlQueryable, SqlTextCodec, SqlTextDescriptor, SqlTimestampCodec, SqlTimestampDescriptor, SqlTransaction, SqlVarcharCodec, SqlVarcharDescriptor, collectOrderedParamRefs, compact, 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 } from "./exports/ast.mjs";
|
|
4
|
-
import { t as SqlExecutionPlan } from "./sql-execution-plan-
|
|
5
|
-
import { C as TableKey, S as TableDef, T as TablesOf, _ as RawTemplateFactory, a as ComputeColumnJsType, b as SqlBuilderOptions, c as META, d as ModelMetadata, f as OperationTypeSignature, g as RawFunctionOptions, h as RawFactory, i as ColumnsOf, l as Meta, m as OperationsForTypeId, n as BuildParamsMap, o as Expr, p as OperationTypes, r as CodecTypes, s as HasIncludeManyCapabilities, t as BuildOptions, u as ModelDef, v as RawTemplateOptions, w as TableMetadata, x as SqlPlan, y as RuntimeError } from "./types-
|
|
6
|
-
import { n as planUnsupported, t as planInvalid } from "./errors-
|
|
5
|
+
import { t as SqlExecutionPlan } from "./sql-execution-plan-ffz8TSfr.mjs";
|
|
6
|
+
import { C as TableKey, S as TableDef, T as TablesOf, _ as RawTemplateFactory, a as ComputeColumnJsType, b as SqlBuilderOptions, c as META, d as ModelMetadata, f as OperationTypeSignature, g as RawFunctionOptions, h as RawFactory, i as ColumnsOf, l as Meta, m as OperationsForTypeId, n as BuildParamsMap, o as Expr, p as OperationTypes, r as CodecTypes, s as HasIncludeManyCapabilities, t as BuildOptions, u as ModelDef, v as RawTemplateOptions, w as TableMetadata, x as SqlPlan, y as RuntimeError } from "./types-D6Pk1DTr.mjs";
|
|
7
|
+
import { n as planUnsupported, t as planInvalid } from "./errors-BgNpVAT8.mjs";
|
|
7
8
|
import { BuildOperationSpec, CodecExpression, Expression, ScopeField, TraitExpression, buildOperation, refsOf, toExpr } from "./exports/expression.mjs";
|
|
8
|
-
import { t as
|
|
9
|
-
import { n as
|
|
10
|
-
|
|
9
|
+
import { a as SqlParamRefMutatorInternal, i as SqlParamRefMutator, n as ParamRefEntryUnion, o as createSqlParamRefMutator, r as ParamRefHandle, t as ParamRefEntry } from "./middleware-USDeR8p1.mjs";
|
|
10
|
+
import { n as planFromAst, t as SqlQueryPlan } from "./plan-DFpOIsKB.mjs";
|
|
11
|
+
import { n as SqlOrmPlan, t as RuntimeScope } from "./types-CL18G37a.mjs";
|
|
12
|
+
export { Adapter, AdapterProfile, AdapterTarget, AggregateCountFn, AggregateExpr, AggregateFn, AggregateOpFn, AndExpr, AnyCodecDescriptor, AnyExpression, AnyFromSource, AnyInsertOnConflictAction, AnyInsertValue, AnyOperationArg, AnyQueryAst, AppliedMutationDefault, AstRewriter, BinaryExpr, BinaryOp, BuildOperationSpec, BuildOptions, BuildParamsMap, Codec, CodecCallContext, CodecDescriptor, CodecDescriptorRegistry, CodecExpression, CodecMeta, CodecTrait, CodecTypes, ColumnRef, ColumnsOf, ComputeColumnJsType, ContractCodecRegistry, DefaultValueExpr, DeleteAst, DerivedTableSource, DescriptorCodecId, DescriptorCodecInput, DescriptorCodecTraits, Direction, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExecutionContext, ExistsExpr, Expr, ExprVisitor, Expression, ExpressionFolder, ExpressionRewriter, ExpressionSource, ExtractCodecTypes, HasIncludeManyCapabilities, IdentifierRef, InsertAst, InsertOnConflict, InsertValue, JoinAst, JoinOnExpr, JsonArrayAggExpr, JsonObjectEntry, JsonObjectExpr, ListExpression, LiteralExpr, LoweredStatement, Lowerer, LowererContext, META, MarkerStatement, Meta, ModelDef, ModelMetadata, MutationDefaultsOp, MutationDefaultsOptions, NotExpr, NullCheckExpr, OperationExpr, OperationTypeSignature, OperationTypes, OperationsForTypeId, OrExpr, OrderByItem, ParamRef, ParamRefBindingRefs, ParamRefEntry, ParamRefEntryUnion, ParamRefHandle, ProjectionExpr, ProjectionItem, RawFactory, RawFunctionOptions, RawSqlExpr, RawTemplateFactory, RawTemplateOptions, RuntimeError, RuntimeScope, SQL_CHAR_CODEC_ID, SQL_FLOAT_CODEC_ID, SQL_INT_CODEC_ID, SQL_TEXT_CODEC_ID, SQL_TIMESTAMP_CODEC_ID, SQL_VARCHAR_CODEC_ID, ScopeField, SelectAst, SelectAstOptions, SqlBuilderOptions, SqlCharCodec, SqlCharDescriptor, SqlCodecCallContext, SqlCodecInstanceContext, SqlColumnRef, SqlConnection, SqlDriver, SqlDriverState, SqlExecuteRequest, SqlExecutionPlan, SqlExplainResult, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlOrmPlan, SqlParamRefMutator, SqlParamRefMutatorInternal, SqlPlan, SqlQueryPlan, SqlQueryResult, SqlQueryable, SqlTextCodec, SqlTextDescriptor, SqlTimestampCodec, SqlTimestampDescriptor, SqlTransaction, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableDef, TableKey, TableMetadata, TableRef, TableSource, TablesOf, ToWhereExpr, TraitExpression, TypeHelperRegistry, UpdateAst, WhereArg, buildOperation, collectOrderedParamRefs, compact, createSqlParamRefMutator, isQueryAst, isWhereExpr, planFromAst, planInvalid, planUnsupported, queryAstKinds, refsOf, 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, toExpr, validateParamRefRefs, whereExprKinds };
|
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { A as TableSource, C as OrExpr, D as RawSqlExpr, E as ProjectionItem, F as whereExprKinds, M as isQueryAst, N as isWhereExpr, O as SelectAst, P as queryAstKinds, S as OperationExpr, T as ParamRef, _ as JsonObjectExpr, a as DefaultValueExpr, b as NotExpr, c as DoNothingConflictAction, d as ExistsExpr, f as IdentifierRef, g as JsonArrayAggExpr, h as JoinAst, i as ColumnRef, j as UpdateAst, k as SubqueryExpr, l as DoUpdateSetConflictAction, m as InsertOnConflict, n as AndExpr, o as DeleteAst, p as InsertAst, r as BinaryExpr, s as DerivedTableSource, t as AggregateExpr, u as EqColJoinOn, v as ListExpression, w as OrderByItem, x as NullCheckExpr, y as LiteralExpr } from "./types-CK9ZJ6OU.mjs";
|
|
2
|
+
import { n as compact, t as collectOrderedParamRefs } from "./util-DWmhUCEO.mjs";
|
|
3
|
+
import { SQL_CHAR_CODEC_ID, SQL_FLOAT_CODEC_ID, SQL_INT_CODEC_ID, SQL_TEXT_CODEC_ID, SQL_TIMESTAMP_CODEC_ID, SQL_VARCHAR_CODEC_ID, SqlCharCodec, SqlCharDescriptor, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlTextCodec, SqlTextDescriptor, SqlTimestampCodec, SqlTimestampDescriptor, SqlVarcharCodec, SqlVarcharDescriptor, 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 } from "./exports/ast.mjs";
|
|
4
|
+
import { n as planUnsupported, t as planInvalid } from "./errors-BF7W5uUd.mjs";
|
|
4
5
|
import { buildOperation, refsOf, toExpr } from "./exports/expression.mjs";
|
|
5
|
-
import "./
|
|
6
|
+
import { t as createSqlParamRefMutator } from "./middleware-D2Wv9QIf.mjs";
|
|
7
|
+
import { planFromAst } from "./exports/plan.mjs";
|
|
6
8
|
import "./exports/query-lane-context.mjs";
|
|
7
9
|
import "./exports/types.mjs";
|
|
8
|
-
export { AggregateExpr, AndExpr, BinaryExpr, ColumnRef, DefaultValueExpr, DeleteAst, DerivedTableSource, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExistsExpr, IdentifierRef, InsertAst, InsertOnConflict, JoinAst, JsonArrayAggExpr, JsonObjectExpr, ListExpression, LiteralExpr, NotExpr, NullCheckExpr, OperationExpr, OrExpr, OrderByItem, ParamRef, 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, SqlCharCodec, SqlCharDescriptor, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlTextCodec, SqlTextDescriptor, SqlTimestampCodec, SqlTimestampDescriptor, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableSource, UpdateAst, buildOperation, collectOrderedParamRefs, compact, isQueryAst, isWhereExpr, planInvalid, planUnsupported, queryAstKinds, refsOf, 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, toExpr, validateParamRefRefs, whereExprKinds };
|
|
10
|
+
export { AggregateExpr, AndExpr, BinaryExpr, ColumnRef, DefaultValueExpr, DeleteAst, DerivedTableSource, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExistsExpr, IdentifierRef, InsertAst, InsertOnConflict, JoinAst, JsonArrayAggExpr, JsonObjectExpr, ListExpression, LiteralExpr, NotExpr, NullCheckExpr, OperationExpr, OrExpr, OrderByItem, ParamRef, ProjectionItem, RawSqlExpr, 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, SqlCharCodec, SqlCharDescriptor, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlTextCodec, SqlTextDescriptor, SqlTimestampCodec, SqlTimestampDescriptor, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableSource, UpdateAst, buildOperation, collectOrderedParamRefs, compact, createSqlParamRefMutator, isQueryAst, isWhereExpr, planFromAst, planInvalid, planUnsupported, queryAstKinds, refsOf, 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, toExpr, validateParamRefRefs, whereExprKinds };
|