@prisma-next/sql-relational-core 0.13.0-dev.32 → 0.13.0-dev.34
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/{errors-CPLfzKkw.d.mts → errors-iy9khc8z.d.mts} +2 -2
- package/dist/{errors-CPLfzKkw.d.mts.map → errors-iy9khc8z.d.mts.map} +1 -1
- package/dist/exports/errors.d.mts +1 -1
- package/dist/exports/types.d.mts +2 -2
- package/dist/index.d.mts +3 -3
- package/dist/types-QlhwIh5w.d.mts +233 -0
- package/dist/types-QlhwIh5w.d.mts.map +1 -0
- package/package.json +11 -11
- package/src/types.ts +134 -22
- package/dist/types-CQVke4QO.d.mts +0 -181
- package/dist/types-CQVke4QO.d.mts.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { y as RuntimeError } from "./types-QlhwIh5w.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-iy9khc8z.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors-
|
|
1
|
+
{"version":3,"file":"errors-iy9khc8z.d.mts","names":[],"sources":["../src/errors.ts"],"mappings":";;;iBAEgB,WAAA,CACd,OAAA,UACA,OAAA,GAAU,MAAA,mBACV,KAAA,sBACA,IAAA,uBACC,YAAY;AAAA,iBAkBC,eAAA,CACd,OAAA,UACA,OAAA,GAAU,MAAA,mBACV,KAAA,sBACA,IAAA,uBACC,YAAY"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as planUnsupported, t as planInvalid } from "../errors-
|
|
1
|
+
import { n as planUnsupported, t as planInvalid } from "../errors-iy9khc8z.mjs";
|
|
2
2
|
export { planInvalid, planUnsupported };
|
package/dist/exports/types.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { C as
|
|
1
|
+
import { C as TableKey, S as TableDef, T as TablesOf, _ as RawTemplateFactory, a as ColumnsOf, b as SqlBuilderOptions, c as META, d as ModelMetadata, f as OperationTypeSignature, g as RawFunctionOptions, h as RawFactory, i as ColumnResolutionContract, l as Meta, m as OperationsForTypeId, n as BuildParamsMap, o as ComputeColumnJsType, p as OperationTypes, r as CodecTypes, s as Expr, t as BuildOptions, u as ModelDef, v as RawTemplateOptions, w as TableMetadata, x as SqlPlan, y as RuntimeError } from "../types-QlhwIh5w.mjs";
|
|
2
2
|
import { n as SqlOrmPlan, t as RuntimeScope } from "../types-LGikJRYV.mjs";
|
|
3
|
-
export { BuildOptions, BuildParamsMap, CodecTypes, ColumnsOf, ComputeColumnJsType, Expr, META, Meta, ModelDef, ModelMetadata, OperationTypeSignature, OperationTypes, OperationsForTypeId, RawFactory, RawFunctionOptions, RawTemplateFactory, RawTemplateOptions, RuntimeError, type RuntimeScope, SqlBuilderOptions, type SqlOrmPlan, SqlPlan, TableDef, TableKey, TableMetadata, TablesOf };
|
|
3
|
+
export { BuildOptions, BuildParamsMap, CodecTypes, ColumnResolutionContract, ColumnsOf, ComputeColumnJsType, Expr, META, Meta, ModelDef, ModelMetadata, OperationTypeSignature, OperationTypes, OperationsForTypeId, RawFactory, RawFunctionOptions, RawTemplateFactory, RawTemplateOptions, RuntimeError, type RuntimeScope, SqlBuilderOptions, type SqlOrmPlan, SqlPlan, TableDef, TableKey, TableMetadata, TablesOf };
|
package/dist/index.d.mts
CHANGED
|
@@ -4,10 +4,10 @@ import { a as DdlColumnRenderContext, c as ForeignKeyConstraint, d as PrimaryKey
|
|
|
4
4
|
import { Adapter, AdapterProfile, AdapterTarget, Lowerer, LowererContext, MarkerReadResult, PreparedExecuteRequest, 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 } from "./exports/ast.mjs";
|
|
5
5
|
import { a as MutationDefaultsOptions, i as MutationDefaultsOp, n as CodecDescriptorRegistry, o as TypeHelperRegistry, r as ExecutionContext, t as AppliedMutationDefault } from "./query-lane-context-CY0-e8Qo.mjs";
|
|
6
6
|
import { t as SqlExecutionPlan } from "./sql-execution-plan-JwVeAzXt.mjs";
|
|
7
|
-
import { C as
|
|
8
|
-
import { n as planUnsupported, t as planInvalid } from "./errors-
|
|
7
|
+
import { C as TableKey, S as TableDef, T as TablesOf, _ as RawTemplateFactory, a as ColumnsOf, b as SqlBuilderOptions, c as META, d as ModelMetadata, f as OperationTypeSignature, g as RawFunctionOptions, h as RawFactory, i as ColumnResolutionContract, l as Meta, m as OperationsForTypeId, n as BuildParamsMap, o as ComputeColumnJsType, p as OperationTypes, r as CodecTypes, s as Expr, t as BuildOptions, u as ModelDef, v as RawTemplateOptions, w as TableMetadata, x as SqlPlan, y as RuntimeError } from "./types-QlhwIh5w.mjs";
|
|
8
|
+
import { n as planUnsupported, t as planInvalid } from "./errors-iy9khc8z.mjs";
|
|
9
9
|
import { BuildOperationSpec, CodecExpression, CodecTypesBase, CodecValue, Expression, RawCodecInferer, RawSqlBuilder, RawSqlTag, ScopeField, TraitExpression, buildOperation, codecOf, createRawSql, param, toExpr } from "./exports/expression.mjs";
|
|
10
10
|
import { a as SqlParamRefMutatorInternal, i as SqlParamRefMutator, n as ParamRefEntryUnion, o as createSqlParamRefMutator, r as ParamRefHandle, t as ParamRefEntry } from "./middleware-BXSFukKU.mjs";
|
|
11
11
|
import { n as planFromAst, t as SqlQueryPlan } from "./plan-DObuWSWi.mjs";
|
|
12
12
|
import { n as SqlOrmPlan, t as RuntimeScope } from "./types-LGikJRYV.mjs";
|
|
13
|
-
export { Adapter, AdapterProfile, AdapterTarget, AggregateCountFn, AggregateExpr, AggregateFn, AggregateOpFn, AndExpr, AnyCodecDescriptor, AnyDdlColumnDefault, AnyExpression, AnyFromSource, AnyInsertOnConflictAction, AnyInsertValue, AnyOperationArg, AnyParamRef, AnyQueryAst, AppliedMutationDefault, AstRewriter, BinaryExpr, BinaryOp, BuildOperationSpec, BuildOptions, BuildParamsMap, Codec, type CodecCallContext, type CodecDescriptor, CodecDescriptorRegistry, CodecExpression, CodecMeta, type CodecRef, type CodecTrait, CodecTypes, CodecTypesBase, CodecValue, ColumnRef, ColumnsOf, ComputeColumnJsType, ContractCodecRegistry, DdlColumn, DdlColumnDefault, DdlColumnDefaultVisitor, DdlColumnRenderContext, DdlNode, DdlTableConstraint, DefaultValueExpr, DeleteAst, DerivedTableSource, DescriptorCodecId, DescriptorCodecInput, DescriptorCodecTraits, Direction, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExecutionContext, ExistsExpr, Expr, ExprVisitor, Expression, ExpressionFolder, ExpressionRewriter, ExpressionSource, ExtractCodecTypes, ForeignKeyConstraint, FunctionColumnDefault, IdentifierRef, InsertAst, InsertOnConflict, InsertValue, JoinAst, JoinOnExpr, JsonArrayAggExpr, JsonObjectEntry, JsonObjectExpr, LimitOffsetValue, ListExpression, LiteralColumnDefault, LiteralExpr, LoweredParam, LoweredStatement, Lowerer, LowererContext, META, MarkerReadResult, Meta, ModelDef, ModelMetadata, MutationDefaultsOp, MutationDefaultsOptions, NotExpr, NullCheckExpr, OperationExpr, OperationTypeSignature, OperationTypes, OperationsForTypeId, OrExpr, OrderByItem, ParamRef, type ParamRefEntry, type ParamRefEntryUnion, type ParamRefHandle, PreparedExecuteRequest, PreparedParamRef, PrimaryKeyConstraint, ProjectionExpr, ProjectionItem, RawCodecInferer, RawExpr, RawFactory, RawFunctionOptions, RawSqlBuilder, RawSqlExpr, RawSqlLiteral, RawSqlTag, RawTemplateFactory, RawTemplateOptions, RuntimeError, type 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, type SqlExecutionPlan, SqlExplainResult, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, type SqlOrmPlan, type SqlParamRefMutator, type SqlParamRefMutatorInternal, SqlPlan, SqlQueryPlan, SqlQueryResult, SqlQueryable, SqlTextCodec, SqlTextDescriptor, SqlTimestampCodec, SqlTimestampDescriptor, SqlTransaction, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableDef, TableKey, TableMetadata, TableRef, TableSource, TablesOf, ToWhereExpr, TraitExpression, TypeHelperRegistry, UniqueConstraint, UpdateAst, WhereArg, WindowFn, WindowFuncExpr, buildOperation, codecOf, collectOrderedParamRefs, compact, createRawSql, createSqlParamRefMutator, isDdlNode, isQueryAst, isWhereExpr, param, planFromAst, planInvalid, planUnsupported, 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, toExpr, whereExprKinds };
|
|
13
|
+
export { Adapter, AdapterProfile, AdapterTarget, AggregateCountFn, AggregateExpr, AggregateFn, AggregateOpFn, AndExpr, AnyCodecDescriptor, AnyDdlColumnDefault, AnyExpression, AnyFromSource, AnyInsertOnConflictAction, AnyInsertValue, AnyOperationArg, AnyParamRef, AnyQueryAst, AppliedMutationDefault, AstRewriter, BinaryExpr, BinaryOp, BuildOperationSpec, BuildOptions, BuildParamsMap, Codec, type CodecCallContext, type CodecDescriptor, CodecDescriptorRegistry, CodecExpression, CodecMeta, type CodecRef, type CodecTrait, CodecTypes, CodecTypesBase, CodecValue, ColumnRef, ColumnResolutionContract, ColumnsOf, ComputeColumnJsType, ContractCodecRegistry, DdlColumn, DdlColumnDefault, DdlColumnDefaultVisitor, DdlColumnRenderContext, DdlNode, DdlTableConstraint, DefaultValueExpr, DeleteAst, DerivedTableSource, DescriptorCodecId, DescriptorCodecInput, DescriptorCodecTraits, Direction, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExecutionContext, ExistsExpr, Expr, ExprVisitor, Expression, ExpressionFolder, ExpressionRewriter, ExpressionSource, ExtractCodecTypes, ForeignKeyConstraint, FunctionColumnDefault, IdentifierRef, InsertAst, InsertOnConflict, InsertValue, JoinAst, JoinOnExpr, JsonArrayAggExpr, JsonObjectEntry, JsonObjectExpr, LimitOffsetValue, ListExpression, LiteralColumnDefault, LiteralExpr, LoweredParam, LoweredStatement, Lowerer, LowererContext, META, MarkerReadResult, Meta, ModelDef, ModelMetadata, MutationDefaultsOp, MutationDefaultsOptions, NotExpr, NullCheckExpr, OperationExpr, OperationTypeSignature, OperationTypes, OperationsForTypeId, OrExpr, OrderByItem, ParamRef, type ParamRefEntry, type ParamRefEntryUnion, type ParamRefHandle, PreparedExecuteRequest, PreparedParamRef, PrimaryKeyConstraint, ProjectionExpr, ProjectionItem, RawCodecInferer, RawExpr, RawFactory, RawFunctionOptions, RawSqlBuilder, RawSqlExpr, RawSqlLiteral, RawSqlTag, RawTemplateFactory, RawTemplateOptions, RuntimeError, type 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, type SqlExecutionPlan, SqlExplainResult, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, type SqlOrmPlan, type SqlParamRefMutator, type SqlParamRefMutatorInternal, SqlPlan, SqlQueryPlan, SqlQueryResult, SqlQueryable, SqlTextCodec, SqlTextDescriptor, SqlTimestampCodec, SqlTimestampDescriptor, SqlTransaction, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableDef, TableKey, TableMetadata, TableRef, TableSource, TablesOf, ToWhereExpr, TraitExpression, TypeHelperRegistry, UniqueConstraint, UpdateAst, WhereArg, WindowFn, WindowFuncExpr, buildOperation, codecOf, collectOrderedParamRefs, compact, createRawSql, createSqlParamRefMutator, isDdlNode, isQueryAst, isWhereExpr, param, planFromAst, planInvalid, planUnsupported, 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, toExpr, whereExprKinds };
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { J as ParamRef, g as ColumnRef } from "./types-BbGUx5Bi.mjs";
|
|
2
|
+
import { r as ExecutionContext } from "./query-lane-context-CY0-e8Qo.mjs";
|
|
3
|
+
import { t as SqlExecutionPlan } from "./sql-execution-plan-JwVeAzXt.mjs";
|
|
4
|
+
import { Contract } from "@prisma-next/contract/types";
|
|
5
|
+
import { ExtractFieldOutputTypes, SqlStorage, StorageColumn } from "@prisma-next/sql-contract/types";
|
|
6
|
+
import { ParamSpec } from "@prisma-next/operations";
|
|
7
|
+
import { SqlLoweringSpec } from "@prisma-next/sql-operations";
|
|
8
|
+
|
|
9
|
+
//#region src/types.d.ts
|
|
10
|
+
type Expr = ColumnRef | ParamRef;
|
|
11
|
+
/**
|
|
12
|
+
* The minimal contract shape the per-namespace column resolver needs: the
|
|
13
|
+
* application-domain models and the storage tables, both keyed by namespace
|
|
14
|
+
* coordinate, plus (via the optional TypeMaps phantom key, read structurally by
|
|
15
|
+
* {@link ExtractFieldOutputTypes}) the refined field-output map. Every emitted
|
|
16
|
+
* `Contract<SqlStorage>` satisfies it, as does `sql-builder`'s `TableProxyContract`
|
|
17
|
+
* — so the resolver indexes the coordinate directly without forcing callers to
|
|
18
|
+
* carry the full `Contract`.
|
|
19
|
+
*/
|
|
20
|
+
type ColumnResolutionContract = {
|
|
21
|
+
readonly domain: {
|
|
22
|
+
readonly namespaces: Readonly<Record<string, {
|
|
23
|
+
readonly models: Readonly<Record<string, unknown>>;
|
|
24
|
+
}>>;
|
|
25
|
+
};
|
|
26
|
+
readonly storage: {
|
|
27
|
+
readonly namespaces: Readonly<Record<string, {
|
|
28
|
+
readonly entries: Readonly<Record<string, Readonly<Record<string, unknown>>>>;
|
|
29
|
+
}>>;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
type NamespaceModels<TContract extends ColumnResolutionContract, NsId extends string> = TContract['domain']['namespaces'][NsId] extends {
|
|
33
|
+
readonly models: infer Models extends Record<string, unknown>;
|
|
34
|
+
} ? Models : never;
|
|
35
|
+
type ExtractTableToModel<TContract extends ColumnResolutionContract, NsId extends string, TableName extends string> = NamespaceModels<TContract, NsId> extends infer Models extends Record<string, unknown> ? { [M in keyof Models & string]: Models[M] extends {
|
|
36
|
+
readonly storage: {
|
|
37
|
+
readonly table: TableName;
|
|
38
|
+
};
|
|
39
|
+
} ? M : never }[keyof Models & string] : never;
|
|
40
|
+
type ExtractColumnToField<TContract extends ColumnResolutionContract, NsId extends string, TableName extends string, ColumnName extends string> = ExtractTableToModel<TContract, NsId, TableName> extends infer ModelName extends string ? NamespaceModels<TContract, NsId> extends infer Models extends Record<string, unknown> ? ModelName & keyof Models extends infer MKey extends string ? Models[MKey] extends {
|
|
41
|
+
readonly storage: {
|
|
42
|
+
readonly fields: infer Fields extends Record<string, unknown>;
|
|
43
|
+
};
|
|
44
|
+
} ? { [F in keyof Fields & string]: Fields[F] extends {
|
|
45
|
+
readonly column: ColumnName;
|
|
46
|
+
} ? F : never }[keyof Fields & string] : never : never : never : never;
|
|
47
|
+
/** Resolves to `never` when the table or column is absent in the namespace. */
|
|
48
|
+
type NamespaceStorageColumn<TContract extends ColumnResolutionContract, NsId extends string, TableName extends string, ColumnName extends string> = TContract['storage']['namespaces'][NsId] extends {
|
|
49
|
+
readonly entries: {
|
|
50
|
+
readonly table: infer Tables extends Record<string, unknown>;
|
|
51
|
+
};
|
|
52
|
+
} ? TableName extends keyof Tables ? Tables[TableName] extends {
|
|
53
|
+
readonly columns: infer Columns extends Record<string, unknown>;
|
|
54
|
+
} ? ColumnName extends keyof Columns ? Columns[ColumnName] extends StorageColumn ? Columns[ColumnName] : never : never : never : never : never;
|
|
55
|
+
type FallbackCodecLookup<ColumnMeta extends StorageColumn, CodecTypes extends Record<string, {
|
|
56
|
+
readonly output: unknown;
|
|
57
|
+
}>> = ColumnMeta extends {
|
|
58
|
+
codecId: infer CodecId extends string;
|
|
59
|
+
} ? CodecId extends keyof CodecTypes ? CodecTypes[CodecId] extends {
|
|
60
|
+
readonly output: infer O;
|
|
61
|
+
} ? ColumnMeta extends {
|
|
62
|
+
nullable: true;
|
|
63
|
+
} ? O | null : O : unknown : unknown : unknown;
|
|
64
|
+
/**
|
|
65
|
+
* The refined (typeParam-applied) JS output type for a field within a namespace
|
|
66
|
+
* coordinate, read from the emitter's namespace-nested `FieldOutputTypes` map at
|
|
67
|
+
* `FieldOutputTypes[NsId][Model][Field]`. This preserves parameterized codec
|
|
68
|
+
* refinements (e.g. `Vector<N>`, `Char<N>`) that a bare codec-output lookup
|
|
69
|
+
* would drop. Resolves to `never` when the coordinate is absent from the map.
|
|
70
|
+
*/
|
|
71
|
+
type NamespaceFieldOutput<TContract extends ColumnResolutionContract, NsId extends string, ModelName extends string, FieldName extends string> = ExtractFieldOutputTypes<TContract> extends infer Outputs ? NsId extends keyof Outputs ? Outputs[NsId] extends infer NamespaceOutputs ? ModelName extends keyof NamespaceOutputs ? NamespaceOutputs[ModelName] extends infer ModelOutputs ? FieldName extends keyof ModelOutputs ? ModelOutputs[FieldName] : never : never : never : never : never : never;
|
|
72
|
+
/**
|
|
73
|
+
* The secondary resolution path, taken for a storage column not backed by a
|
|
74
|
+
* domain model field in the namespace (e.g. a column with no corresponding
|
|
75
|
+
* field); refined model fields resolve via {@link NamespaceFieldOutput}.
|
|
76
|
+
*/
|
|
77
|
+
type ColumnCodecFallback<TContract extends ColumnResolutionContract, NsId extends string, TableName extends string, ColumnName extends string, CodecTypes extends Record<string, {
|
|
78
|
+
readonly output: unknown;
|
|
79
|
+
}>> = NamespaceStorageColumn<TContract, NsId, TableName, ColumnName> extends infer ColumnMeta ? [ColumnMeta] extends [never] ? never : ColumnMeta extends StorageColumn ? FallbackCodecLookup<ColumnMeta, CodecTypes> : never : never;
|
|
80
|
+
/**
|
|
81
|
+
* Type-level operation signature.
|
|
82
|
+
* Represents an operation at the type level for use in contract type maps.
|
|
83
|
+
*/
|
|
84
|
+
type OperationTypeSignature = {
|
|
85
|
+
readonly args: ReadonlyArray<ParamSpec>;
|
|
86
|
+
readonly returns: ParamSpec;
|
|
87
|
+
readonly lowering: SqlLoweringSpec;
|
|
88
|
+
readonly capabilities?: ReadonlyArray<string>;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Type-level operation registry.
|
|
92
|
+
* Maps typeId → operations, where operations is a record of method name → operation signature.
|
|
93
|
+
*
|
|
94
|
+
* Example:
|
|
95
|
+
* ```typescript
|
|
96
|
+
* type MyOperations: OperationTypes = {
|
|
97
|
+
* 'pg/vector@1': {
|
|
98
|
+
* cosineDistance: {
|
|
99
|
+
* args: [{ codecId: 'pg/vector@1'; nullable: false }];
|
|
100
|
+
* returns: { codecId: 'core/float8'; nullable: false };
|
|
101
|
+
* lowering: { targetFamily: 'sql'; strategy: 'function'; template: '...' };
|
|
102
|
+
* };
|
|
103
|
+
* };
|
|
104
|
+
* };
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
type OperationTypes = Record<string, Record<string, OperationTypeSignature>>;
|
|
108
|
+
/**
|
|
109
|
+
* CodecTypes represents a map of typeId to codec definitions.
|
|
110
|
+
* Each codec definition must have an `output` property indicating the JavaScript type.
|
|
111
|
+
*
|
|
112
|
+
* Example:
|
|
113
|
+
* ```typescript
|
|
114
|
+
* type MyCodecTypes: CodecTypes = {
|
|
115
|
+
* 'pg/int4@1': { output: number };
|
|
116
|
+
* 'pg/text@1': { output: string };
|
|
117
|
+
* };
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
type CodecTypes = Record<string, {
|
|
121
|
+
readonly output: unknown;
|
|
122
|
+
}>;
|
|
123
|
+
/**
|
|
124
|
+
* Extracts operations for a given typeId from the operation registry.
|
|
125
|
+
* Returns an empty record if the typeId is not found.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* type Ops = OperationsForTypeId<'pg/vector@1', MyOperations>;
|
|
130
|
+
* // Ops = { cosineDistance: { ... }, l2Distance: { ... } }
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
type OperationsForTypeId<TypeId extends string, Operations extends OperationTypes> = Operations extends Record<string, never> ? Record<string, never> : TypeId extends keyof Operations ? Operations[TypeId] : Record<string, never>;
|
|
134
|
+
/**
|
|
135
|
+
* Resolves the JavaScript output type of a column addressed by an explicit
|
|
136
|
+
* namespace coordinate.
|
|
137
|
+
*
|
|
138
|
+
* The table→model and column→field mapping is resolved per-namespace from
|
|
139
|
+
* `domain.namespaces[NsId]['models']`, and the refined output type from the
|
|
140
|
+
* emitter's namespace-nested `FieldOutputTypes[NsId][Model][Field]` — so a bare
|
|
141
|
+
* table name shared across namespaces resolves to each namespace's own field,
|
|
142
|
+
* and parameterized codec refinements (e.g. `Vector<N>`) are preserved. A
|
|
143
|
+
* storage column not backed by a model field in the namespace falls back to a
|
|
144
|
+
* codec-output lookup; a column absent in the namespace resolves to `never`.
|
|
145
|
+
*/
|
|
146
|
+
type ComputeColumnJsType<TContract extends ColumnResolutionContract, NsId extends string, TableName extends string, ColumnName extends string, CodecTypes extends Record<string, {
|
|
147
|
+
readonly output: unknown;
|
|
148
|
+
}>> = ExtractTableToModel<TContract, NsId, TableName> extends infer ModelName ? [ModelName] extends [never] ? ColumnCodecFallback<TContract, NsId, TableName, ColumnName, CodecTypes> : ModelName extends string ? ExtractColumnToField<TContract, NsId, TableName, ColumnName> extends infer FieldName ? [FieldName] extends [never] ? ColumnCodecFallback<TContract, NsId, TableName, ColumnName, CodecTypes> : FieldName extends string ? NamespaceFieldOutput<TContract, NsId, ModelName, FieldName> extends infer Out ? [Out] extends [never] ? ColumnCodecFallback<TContract, NsId, TableName, ColumnName, CodecTypes> : Out : never : never : never : never : never;
|
|
149
|
+
/**
|
|
150
|
+
* Alias for the SQL-domain executable plan, exposed under the legacy
|
|
151
|
+
* `SqlPlan` name for compatibility with SQL builder/utility call sites.
|
|
152
|
+
* The canonical name is `SqlExecutionPlan` (`./sql-execution-plan`).
|
|
153
|
+
*/
|
|
154
|
+
type SqlPlan<Row = unknown> = SqlExecutionPlan<Row>;
|
|
155
|
+
/**
|
|
156
|
+
* Helper types for extracting contract structure.
|
|
157
|
+
*/
|
|
158
|
+
type TablesOf<TContract> = TContract extends {
|
|
159
|
+
storage: {
|
|
160
|
+
tables: infer U;
|
|
161
|
+
};
|
|
162
|
+
} ? U : never;
|
|
163
|
+
type TableKey<TContract> = Extract<keyof TablesOf<TContract>, string>;
|
|
164
|
+
/**
|
|
165
|
+
* Unique symbol for metadata property to avoid collisions with user-defined properties
|
|
166
|
+
*/
|
|
167
|
+
declare const META: unique symbol;
|
|
168
|
+
/**
|
|
169
|
+
* Extracts metadata from a type that has a META property
|
|
170
|
+
*/
|
|
171
|
+
type Meta<T extends {
|
|
172
|
+
[META]: unknown;
|
|
173
|
+
}> = T[typeof META];
|
|
174
|
+
/**
|
|
175
|
+
* Metadata interface for table definitions
|
|
176
|
+
*/
|
|
177
|
+
interface TableMetadata<Name extends string> {
|
|
178
|
+
name: Name;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Metadata interface for model definitions
|
|
182
|
+
*/
|
|
183
|
+
interface ModelMetadata<Name extends string> {
|
|
184
|
+
name: Name;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Base interface for table definitions with metadata
|
|
188
|
+
* Used in contract.d.ts to define storage-level table types
|
|
189
|
+
*/
|
|
190
|
+
interface TableDef<Name extends string> {
|
|
191
|
+
readonly [META]: TableMetadata<Name>;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Base interface for model definitions with metadata
|
|
195
|
+
* Used in contract.d.ts to define application-level model types
|
|
196
|
+
*/
|
|
197
|
+
interface ModelDef<Name extends string> {
|
|
198
|
+
readonly [META]: ModelMetadata<Name>;
|
|
199
|
+
}
|
|
200
|
+
type ColumnsOf<TContract, K extends TableKey<TContract>> = K extends keyof TablesOf<TContract> ? TablesOf<TContract>[K] extends {
|
|
201
|
+
columns: infer C;
|
|
202
|
+
} ? C : never : never;
|
|
203
|
+
interface RawTemplateOptions {
|
|
204
|
+
readonly annotations?: Record<string, unknown>;
|
|
205
|
+
}
|
|
206
|
+
interface RawFunctionOptions extends RawTemplateOptions {
|
|
207
|
+
readonly params: ReadonlyArray<unknown>;
|
|
208
|
+
}
|
|
209
|
+
type RawTemplateFactory = (strings: TemplateStringsArray, ...values: readonly unknown[]) => SqlExecutionPlan;
|
|
210
|
+
interface RawFactory extends RawTemplateFactory {
|
|
211
|
+
(text: string, options: RawFunctionOptions): SqlExecutionPlan;
|
|
212
|
+
with(options: RawTemplateOptions): RawTemplateFactory;
|
|
213
|
+
}
|
|
214
|
+
interface RuntimeError extends Error {
|
|
215
|
+
readonly code: string;
|
|
216
|
+
readonly category: 'PLAN';
|
|
217
|
+
readonly severity: 'error';
|
|
218
|
+
readonly details?: Record<string, unknown>;
|
|
219
|
+
readonly hints?: readonly string[];
|
|
220
|
+
readonly docs?: readonly string[];
|
|
221
|
+
}
|
|
222
|
+
interface BuildParamsMap {
|
|
223
|
+
readonly [name: string]: unknown;
|
|
224
|
+
}
|
|
225
|
+
interface BuildOptions {
|
|
226
|
+
readonly params?: BuildParamsMap;
|
|
227
|
+
}
|
|
228
|
+
interface SqlBuilderOptions<TContract extends Contract<SqlStorage> = Contract<SqlStorage>> {
|
|
229
|
+
readonly context: ExecutionContext<TContract>;
|
|
230
|
+
}
|
|
231
|
+
//#endregion
|
|
232
|
+
export { TableKey as C, TableDef as S, TablesOf as T, RawTemplateFactory as _, ColumnsOf as a, SqlBuilderOptions as b, META as c, ModelMetadata as d, OperationTypeSignature as f, RawFunctionOptions as g, RawFactory as h, ColumnResolutionContract as i, Meta as l, OperationsForTypeId as m, BuildParamsMap as n, ComputeColumnJsType as o, OperationTypes as p, CodecTypes as r, Expr as s, BuildOptions as t, ModelDef as u, RawTemplateOptions as v, TableMetadata as w, SqlPlan as x, RuntimeError as y };
|
|
233
|
+
//# sourceMappingURL=types-QlhwIh5w.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-QlhwIh5w.d.mts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prisma-next/sql-relational-core",
|
|
3
|
-
"version": "0.13.0-dev.
|
|
3
|
+
"version": "0.13.0-dev.34",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"description": "AST types, query lane context, and type utilities for Prisma Next SQL lanes",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@prisma-next/contract": "0.13.0-dev.
|
|
10
|
-
"@prisma-next/framework-components": "0.13.0-dev.
|
|
11
|
-
"@prisma-next/operations": "0.13.0-dev.
|
|
12
|
-
"@prisma-next/sql-contract": "0.13.0-dev.
|
|
13
|
-
"@prisma-next/sql-operations": "0.13.0-dev.
|
|
14
|
-
"@prisma-next/utils": "0.13.0-dev.
|
|
9
|
+
"@prisma-next/contract": "0.13.0-dev.34",
|
|
10
|
+
"@prisma-next/framework-components": "0.13.0-dev.34",
|
|
11
|
+
"@prisma-next/operations": "0.13.0-dev.34",
|
|
12
|
+
"@prisma-next/sql-contract": "0.13.0-dev.34",
|
|
13
|
+
"@prisma-next/sql-operations": "0.13.0-dev.34",
|
|
14
|
+
"@prisma-next/utils": "0.13.0-dev.34",
|
|
15
15
|
"@standard-schema/spec": "^1.1.0",
|
|
16
16
|
"arktype": "^2.2.0",
|
|
17
17
|
"ts-toolbelt": "^9.6.0"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@prisma-next/sql-contract-ts": "0.13.0-dev.
|
|
21
|
-
"@prisma-next/test-utils": "0.13.0-dev.
|
|
22
|
-
"@prisma-next/tsconfig": "0.13.0-dev.
|
|
23
|
-
"@prisma-next/tsdown": "0.13.0-dev.
|
|
20
|
+
"@prisma-next/sql-contract-ts": "0.13.0-dev.34",
|
|
21
|
+
"@prisma-next/test-utils": "0.13.0-dev.34",
|
|
22
|
+
"@prisma-next/tsconfig": "0.13.0-dev.34",
|
|
23
|
+
"@prisma-next/tsdown": "0.13.0-dev.34",
|
|
24
24
|
"tsdown": "0.22.1",
|
|
25
25
|
"typescript": "5.9.3",
|
|
26
26
|
"vitest": "4.1.8"
|
package/src/types.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Contract
|
|
1
|
+
import type { Contract } from '@prisma-next/contract/types';
|
|
2
2
|
import type { ParamSpec } from '@prisma-next/operations';
|
|
3
3
|
import type {
|
|
4
4
|
ExtractFieldOutputTypes,
|
|
@@ -13,11 +13,45 @@ import type { SqlExecutionPlan } from './sql-execution-plan';
|
|
|
13
13
|
export type Expr = ColumnRef | ParamRef;
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
16
|
+
* The minimal contract shape the per-namespace column resolver needs: the
|
|
17
|
+
* application-domain models and the storage tables, both keyed by namespace
|
|
18
|
+
* coordinate, plus (via the optional TypeMaps phantom key, read structurally by
|
|
19
|
+
* {@link ExtractFieldOutputTypes}) the refined field-output map. Every emitted
|
|
20
|
+
* `Contract<SqlStorage>` satisfies it, as does `sql-builder`'s `TableProxyContract`
|
|
21
|
+
* — so the resolver indexes the coordinate directly without forcing callers to
|
|
22
|
+
* carry the full `Contract`.
|
|
18
23
|
*/
|
|
19
|
-
type
|
|
20
|
-
|
|
24
|
+
export type ColumnResolutionContract = {
|
|
25
|
+
readonly domain: {
|
|
26
|
+
readonly namespaces: Readonly<
|
|
27
|
+
Record<string, { readonly models: Readonly<Record<string, unknown>> }>
|
|
28
|
+
>;
|
|
29
|
+
};
|
|
30
|
+
readonly storage: {
|
|
31
|
+
readonly namespaces: Readonly<
|
|
32
|
+
Record<
|
|
33
|
+
string,
|
|
34
|
+
{ readonly entries: Readonly<Record<string, Readonly<Record<string, unknown>>>> }
|
|
35
|
+
>
|
|
36
|
+
>;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
type NamespaceModels<
|
|
41
|
+
TContract extends ColumnResolutionContract,
|
|
42
|
+
NsId extends string,
|
|
43
|
+
> = TContract['domain']['namespaces'][NsId] extends {
|
|
44
|
+
readonly models: infer Models extends Record<string, unknown>;
|
|
45
|
+
}
|
|
46
|
+
? Models
|
|
47
|
+
: never;
|
|
48
|
+
|
|
49
|
+
type ExtractTableToModel<
|
|
50
|
+
TContract extends ColumnResolutionContract,
|
|
51
|
+
NsId extends string,
|
|
52
|
+
TableName extends string,
|
|
53
|
+
> =
|
|
54
|
+
NamespaceModels<TContract, NsId> extends infer Models extends Record<string, unknown>
|
|
21
55
|
? {
|
|
22
56
|
[M in keyof Models & string]: Models[M] extends {
|
|
23
57
|
readonly storage: { readonly table: TableName };
|
|
@@ -27,17 +61,14 @@ type ExtractTableToModel<TContract extends Contract<SqlStorage>, TableName exten
|
|
|
27
61
|
}[keyof Models & string]
|
|
28
62
|
: never;
|
|
29
63
|
|
|
30
|
-
/**
|
|
31
|
-
* Extracts the field name for a given column by finding the field in
|
|
32
|
-
* `model.storage.fields` whose `column` matches.
|
|
33
|
-
*/
|
|
34
64
|
type ExtractColumnToField<
|
|
35
|
-
TContract extends
|
|
65
|
+
TContract extends ColumnResolutionContract,
|
|
66
|
+
NsId extends string,
|
|
36
67
|
TableName extends string,
|
|
37
68
|
ColumnName extends string,
|
|
38
69
|
> =
|
|
39
|
-
ExtractTableToModel<TContract, TableName> extends infer ModelName extends string
|
|
40
|
-
?
|
|
70
|
+
ExtractTableToModel<TContract, NsId, TableName> extends infer ModelName extends string
|
|
71
|
+
? NamespaceModels<TContract, NsId> extends infer Models extends Record<string, unknown>
|
|
41
72
|
? ModelName & keyof Models extends infer MKey extends string
|
|
42
73
|
? Models[MKey] extends {
|
|
43
74
|
readonly storage: { readonly fields: infer Fields extends Record<string, unknown> };
|
|
@@ -52,6 +83,28 @@ type ExtractColumnToField<
|
|
|
52
83
|
: never
|
|
53
84
|
: never;
|
|
54
85
|
|
|
86
|
+
/** Resolves to `never` when the table or column is absent in the namespace. */
|
|
87
|
+
type NamespaceStorageColumn<
|
|
88
|
+
TContract extends ColumnResolutionContract,
|
|
89
|
+
NsId extends string,
|
|
90
|
+
TableName extends string,
|
|
91
|
+
ColumnName extends string,
|
|
92
|
+
> = TContract['storage']['namespaces'][NsId] extends {
|
|
93
|
+
readonly entries: { readonly table: infer Tables extends Record<string, unknown> };
|
|
94
|
+
}
|
|
95
|
+
? TableName extends keyof Tables
|
|
96
|
+
? Tables[TableName] extends {
|
|
97
|
+
readonly columns: infer Columns extends Record<string, unknown>;
|
|
98
|
+
}
|
|
99
|
+
? ColumnName extends keyof Columns
|
|
100
|
+
? Columns[ColumnName] extends StorageColumn
|
|
101
|
+
? Columns[ColumnName]
|
|
102
|
+
: never
|
|
103
|
+
: never
|
|
104
|
+
: never
|
|
105
|
+
: never
|
|
106
|
+
: never;
|
|
107
|
+
|
|
55
108
|
type FallbackCodecLookup<
|
|
56
109
|
ColumnMeta extends StorageColumn,
|
|
57
110
|
CodecTypes extends Record<string, { readonly output: unknown }>,
|
|
@@ -65,6 +118,53 @@ type FallbackCodecLookup<
|
|
|
65
118
|
: unknown
|
|
66
119
|
: unknown;
|
|
67
120
|
|
|
121
|
+
/**
|
|
122
|
+
* The refined (typeParam-applied) JS output type for a field within a namespace
|
|
123
|
+
* coordinate, read from the emitter's namespace-nested `FieldOutputTypes` map at
|
|
124
|
+
* `FieldOutputTypes[NsId][Model][Field]`. This preserves parameterized codec
|
|
125
|
+
* refinements (e.g. `Vector<N>`, `Char<N>`) that a bare codec-output lookup
|
|
126
|
+
* would drop. Resolves to `never` when the coordinate is absent from the map.
|
|
127
|
+
*/
|
|
128
|
+
type NamespaceFieldOutput<
|
|
129
|
+
TContract extends ColumnResolutionContract,
|
|
130
|
+
NsId extends string,
|
|
131
|
+
ModelName extends string,
|
|
132
|
+
FieldName extends string,
|
|
133
|
+
> =
|
|
134
|
+
ExtractFieldOutputTypes<TContract> extends infer Outputs
|
|
135
|
+
? NsId extends keyof Outputs
|
|
136
|
+
? Outputs[NsId] extends infer NamespaceOutputs
|
|
137
|
+
? ModelName extends keyof NamespaceOutputs
|
|
138
|
+
? NamespaceOutputs[ModelName] extends infer ModelOutputs
|
|
139
|
+
? FieldName extends keyof ModelOutputs
|
|
140
|
+
? ModelOutputs[FieldName]
|
|
141
|
+
: never
|
|
142
|
+
: never
|
|
143
|
+
: never
|
|
144
|
+
: never
|
|
145
|
+
: never
|
|
146
|
+
: never;
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* The secondary resolution path, taken for a storage column not backed by a
|
|
150
|
+
* domain model field in the namespace (e.g. a column with no corresponding
|
|
151
|
+
* field); refined model fields resolve via {@link NamespaceFieldOutput}.
|
|
152
|
+
*/
|
|
153
|
+
type ColumnCodecFallback<
|
|
154
|
+
TContract extends ColumnResolutionContract,
|
|
155
|
+
NsId extends string,
|
|
156
|
+
TableName extends string,
|
|
157
|
+
ColumnName extends string,
|
|
158
|
+
CodecTypes extends Record<string, { readonly output: unknown }>,
|
|
159
|
+
> =
|
|
160
|
+
NamespaceStorageColumn<TContract, NsId, TableName, ColumnName> extends infer ColumnMeta
|
|
161
|
+
? [ColumnMeta] extends [never]
|
|
162
|
+
? never
|
|
163
|
+
: ColumnMeta extends StorageColumn
|
|
164
|
+
? FallbackCodecLookup<ColumnMeta, CodecTypes>
|
|
165
|
+
: never
|
|
166
|
+
: never;
|
|
167
|
+
|
|
68
168
|
/**
|
|
69
169
|
* Type-level operation signature.
|
|
70
170
|
* Represents an operation at the type level for use in contract type maps.
|
|
@@ -126,25 +226,37 @@ export type OperationsForTypeId<TypeId extends string, Operations extends Operat
|
|
|
126
226
|
? Operations[TypeId]
|
|
127
227
|
: Record<string, never>;
|
|
128
228
|
|
|
229
|
+
/**
|
|
230
|
+
* Resolves the JavaScript output type of a column addressed by an explicit
|
|
231
|
+
* namespace coordinate.
|
|
232
|
+
*
|
|
233
|
+
* The table→model and column→field mapping is resolved per-namespace from
|
|
234
|
+
* `domain.namespaces[NsId]['models']`, and the refined output type from the
|
|
235
|
+
* emitter's namespace-nested `FieldOutputTypes[NsId][Model][Field]` — so a bare
|
|
236
|
+
* table name shared across namespaces resolves to each namespace's own field,
|
|
237
|
+
* and parameterized codec refinements (e.g. `Vector<N>`) are preserved. A
|
|
238
|
+
* storage column not backed by a model field in the namespace falls back to a
|
|
239
|
+
* codec-output lookup; a column absent in the namespace resolves to `never`.
|
|
240
|
+
*/
|
|
129
241
|
export type ComputeColumnJsType<
|
|
130
|
-
TContract extends
|
|
242
|
+
TContract extends ColumnResolutionContract,
|
|
243
|
+
NsId extends string,
|
|
131
244
|
TableName extends string,
|
|
132
245
|
ColumnName extends string,
|
|
133
|
-
ColumnMeta extends StorageColumn,
|
|
134
246
|
CodecTypes extends Record<string, { readonly output: unknown }>,
|
|
135
247
|
> =
|
|
136
|
-
ExtractTableToModel<TContract, TableName> extends infer ModelName
|
|
248
|
+
ExtractTableToModel<TContract, NsId, TableName> extends infer ModelName
|
|
137
249
|
? [ModelName] extends [never]
|
|
138
|
-
?
|
|
250
|
+
? ColumnCodecFallback<TContract, NsId, TableName, ColumnName, CodecTypes>
|
|
139
251
|
: ModelName extends string
|
|
140
|
-
? ExtractColumnToField<TContract, TableName, ColumnName> extends infer FieldName
|
|
252
|
+
? ExtractColumnToField<TContract, NsId, TableName, ColumnName> extends infer FieldName
|
|
141
253
|
? [FieldName] extends [never]
|
|
142
|
-
?
|
|
254
|
+
? ColumnCodecFallback<TContract, NsId, TableName, ColumnName, CodecTypes>
|
|
143
255
|
: FieldName extends string
|
|
144
|
-
? ModelName extends
|
|
145
|
-
?
|
|
146
|
-
?
|
|
147
|
-
:
|
|
256
|
+
? NamespaceFieldOutput<TContract, NsId, ModelName, FieldName> extends infer Out
|
|
257
|
+
? [Out] extends [never]
|
|
258
|
+
? ColumnCodecFallback<TContract, NsId, TableName, ColumnName, CodecTypes>
|
|
259
|
+
: Out
|
|
148
260
|
: never
|
|
149
261
|
: never
|
|
150
262
|
: never
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import { J as ParamRef, g as ColumnRef } from "./types-BbGUx5Bi.mjs";
|
|
2
|
-
import { r as ExecutionContext } from "./query-lane-context-CY0-e8Qo.mjs";
|
|
3
|
-
import { t as SqlExecutionPlan } from "./sql-execution-plan-JwVeAzXt.mjs";
|
|
4
|
-
import { Contract, ContractModelDefinitions } from "@prisma-next/contract/types";
|
|
5
|
-
import { ExtractFieldOutputTypes, SqlStorage, StorageColumn } from "@prisma-next/sql-contract/types";
|
|
6
|
-
import { ParamSpec } from "@prisma-next/operations";
|
|
7
|
-
import { SqlLoweringSpec } from "@prisma-next/sql-operations";
|
|
8
|
-
|
|
9
|
-
//#region src/types.d.ts
|
|
10
|
-
type Expr = ColumnRef | ParamRef;
|
|
11
|
-
/**
|
|
12
|
-
* Extracts the model name for a given table by iterating models to find the one
|
|
13
|
-
* whose `storage.table` matches.
|
|
14
|
-
*/
|
|
15
|
-
type ExtractTableToModel<TContract extends Contract<SqlStorage>, TableName extends string> = ContractModelDefinitions<TContract> extends infer Models extends Record<string, unknown> ? { [M in keyof Models & string]: Models[M] extends {
|
|
16
|
-
readonly storage: {
|
|
17
|
-
readonly table: TableName;
|
|
18
|
-
};
|
|
19
|
-
} ? M : never }[keyof Models & string] : never;
|
|
20
|
-
/**
|
|
21
|
-
* Extracts the field name for a given column by finding the field in
|
|
22
|
-
* `model.storage.fields` whose `column` matches.
|
|
23
|
-
*/
|
|
24
|
-
type ExtractColumnToField<TContract extends Contract<SqlStorage>, TableName extends string, ColumnName extends string> = ExtractTableToModel<TContract, TableName> extends infer ModelName extends string ? ContractModelDefinitions<TContract> extends infer Models extends Record<string, unknown> ? ModelName & keyof Models extends infer MKey extends string ? Models[MKey] extends {
|
|
25
|
-
readonly storage: {
|
|
26
|
-
readonly fields: infer Fields extends Record<string, unknown>;
|
|
27
|
-
};
|
|
28
|
-
} ? { [F in keyof Fields & string]: Fields[F] extends {
|
|
29
|
-
readonly column: ColumnName;
|
|
30
|
-
} ? F : never }[keyof Fields & string] : never : never : never : never;
|
|
31
|
-
type FallbackCodecLookup<ColumnMeta extends StorageColumn, CodecTypes extends Record<string, {
|
|
32
|
-
readonly output: unknown;
|
|
33
|
-
}>> = ColumnMeta extends {
|
|
34
|
-
codecId: infer CodecId extends string;
|
|
35
|
-
} ? CodecId extends keyof CodecTypes ? CodecTypes[CodecId] extends {
|
|
36
|
-
readonly output: infer O;
|
|
37
|
-
} ? ColumnMeta extends {
|
|
38
|
-
nullable: true;
|
|
39
|
-
} ? O | null : O : unknown : unknown : unknown;
|
|
40
|
-
/**
|
|
41
|
-
* Type-level operation signature.
|
|
42
|
-
* Represents an operation at the type level for use in contract type maps.
|
|
43
|
-
*/
|
|
44
|
-
type OperationTypeSignature = {
|
|
45
|
-
readonly args: ReadonlyArray<ParamSpec>;
|
|
46
|
-
readonly returns: ParamSpec;
|
|
47
|
-
readonly lowering: SqlLoweringSpec;
|
|
48
|
-
readonly capabilities?: ReadonlyArray<string>;
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Type-level operation registry.
|
|
52
|
-
* Maps typeId → operations, where operations is a record of method name → operation signature.
|
|
53
|
-
*
|
|
54
|
-
* Example:
|
|
55
|
-
* ```typescript
|
|
56
|
-
* type MyOperations: OperationTypes = {
|
|
57
|
-
* 'pg/vector@1': {
|
|
58
|
-
* cosineDistance: {
|
|
59
|
-
* args: [{ codecId: 'pg/vector@1'; nullable: false }];
|
|
60
|
-
* returns: { codecId: 'core/float8'; nullable: false };
|
|
61
|
-
* lowering: { targetFamily: 'sql'; strategy: 'function'; template: '...' };
|
|
62
|
-
* };
|
|
63
|
-
* };
|
|
64
|
-
* };
|
|
65
|
-
* ```
|
|
66
|
-
*/
|
|
67
|
-
type OperationTypes = Record<string, Record<string, OperationTypeSignature>>;
|
|
68
|
-
/**
|
|
69
|
-
* CodecTypes represents a map of typeId to codec definitions.
|
|
70
|
-
* Each codec definition must have an `output` property indicating the JavaScript type.
|
|
71
|
-
*
|
|
72
|
-
* Example:
|
|
73
|
-
* ```typescript
|
|
74
|
-
* type MyCodecTypes: CodecTypes = {
|
|
75
|
-
* 'pg/int4@1': { output: number };
|
|
76
|
-
* 'pg/text@1': { output: string };
|
|
77
|
-
* };
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
type CodecTypes = Record<string, {
|
|
81
|
-
readonly output: unknown;
|
|
82
|
-
}>;
|
|
83
|
-
/**
|
|
84
|
-
* Extracts operations for a given typeId from the operation registry.
|
|
85
|
-
* Returns an empty record if the typeId is not found.
|
|
86
|
-
*
|
|
87
|
-
* @example
|
|
88
|
-
* ```typescript
|
|
89
|
-
* type Ops = OperationsForTypeId<'pg/vector@1', MyOperations>;
|
|
90
|
-
* // Ops = { cosineDistance: { ... }, l2Distance: { ... } }
|
|
91
|
-
* ```
|
|
92
|
-
*/
|
|
93
|
-
type OperationsForTypeId<TypeId extends string, Operations extends OperationTypes> = Operations extends Record<string, never> ? Record<string, never> : TypeId extends keyof Operations ? Operations[TypeId] : Record<string, never>;
|
|
94
|
-
type ComputeColumnJsType<TContract extends Contract<SqlStorage>, TableName extends string, ColumnName extends string, ColumnMeta extends StorageColumn, CodecTypes extends Record<string, {
|
|
95
|
-
readonly output: unknown;
|
|
96
|
-
}>> = ExtractTableToModel<TContract, TableName> extends infer ModelName ? [ModelName] extends [never] ? FallbackCodecLookup<ColumnMeta, CodecTypes> : ModelName extends string ? ExtractColumnToField<TContract, TableName, ColumnName> extends infer FieldName ? [FieldName] extends [never] ? FallbackCodecLookup<ColumnMeta, CodecTypes> : FieldName extends string ? ModelName extends keyof ExtractFieldOutputTypes<TContract> ? FieldName extends keyof ExtractFieldOutputTypes<TContract>[ModelName] ? ExtractFieldOutputTypes<TContract>[ModelName][FieldName] : never : never : never : never : never : never;
|
|
97
|
-
/**
|
|
98
|
-
* Alias for the SQL-domain executable plan, exposed under the legacy
|
|
99
|
-
* `SqlPlan` name for compatibility with SQL builder/utility call sites.
|
|
100
|
-
* The canonical name is `SqlExecutionPlan` (`./sql-execution-plan`).
|
|
101
|
-
*/
|
|
102
|
-
type SqlPlan<Row = unknown> = SqlExecutionPlan<Row>;
|
|
103
|
-
/**
|
|
104
|
-
* Helper types for extracting contract structure.
|
|
105
|
-
*/
|
|
106
|
-
type TablesOf<TContract> = TContract extends {
|
|
107
|
-
storage: {
|
|
108
|
-
tables: infer U;
|
|
109
|
-
};
|
|
110
|
-
} ? U : never;
|
|
111
|
-
type TableKey<TContract> = Extract<keyof TablesOf<TContract>, string>;
|
|
112
|
-
/**
|
|
113
|
-
* Unique symbol for metadata property to avoid collisions with user-defined properties
|
|
114
|
-
*/
|
|
115
|
-
declare const META: unique symbol;
|
|
116
|
-
/**
|
|
117
|
-
* Extracts metadata from a type that has a META property
|
|
118
|
-
*/
|
|
119
|
-
type Meta<T extends {
|
|
120
|
-
[META]: unknown;
|
|
121
|
-
}> = T[typeof META];
|
|
122
|
-
/**
|
|
123
|
-
* Metadata interface for table definitions
|
|
124
|
-
*/
|
|
125
|
-
interface TableMetadata<Name extends string> {
|
|
126
|
-
name: Name;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Metadata interface for model definitions
|
|
130
|
-
*/
|
|
131
|
-
interface ModelMetadata<Name extends string> {
|
|
132
|
-
name: Name;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Base interface for table definitions with metadata
|
|
136
|
-
* Used in contract.d.ts to define storage-level table types
|
|
137
|
-
*/
|
|
138
|
-
interface TableDef<Name extends string> {
|
|
139
|
-
readonly [META]: TableMetadata<Name>;
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Base interface for model definitions with metadata
|
|
143
|
-
* Used in contract.d.ts to define application-level model types
|
|
144
|
-
*/
|
|
145
|
-
interface ModelDef<Name extends string> {
|
|
146
|
-
readonly [META]: ModelMetadata<Name>;
|
|
147
|
-
}
|
|
148
|
-
type ColumnsOf<TContract, K extends TableKey<TContract>> = K extends keyof TablesOf<TContract> ? TablesOf<TContract>[K] extends {
|
|
149
|
-
columns: infer C;
|
|
150
|
-
} ? C : never : never;
|
|
151
|
-
interface RawTemplateOptions {
|
|
152
|
-
readonly annotations?: Record<string, unknown>;
|
|
153
|
-
}
|
|
154
|
-
interface RawFunctionOptions extends RawTemplateOptions {
|
|
155
|
-
readonly params: ReadonlyArray<unknown>;
|
|
156
|
-
}
|
|
157
|
-
type RawTemplateFactory = (strings: TemplateStringsArray, ...values: readonly unknown[]) => SqlExecutionPlan;
|
|
158
|
-
interface RawFactory extends RawTemplateFactory {
|
|
159
|
-
(text: string, options: RawFunctionOptions): SqlExecutionPlan;
|
|
160
|
-
with(options: RawTemplateOptions): RawTemplateFactory;
|
|
161
|
-
}
|
|
162
|
-
interface RuntimeError extends Error {
|
|
163
|
-
readonly code: string;
|
|
164
|
-
readonly category: 'PLAN';
|
|
165
|
-
readonly severity: 'error';
|
|
166
|
-
readonly details?: Record<string, unknown>;
|
|
167
|
-
readonly hints?: readonly string[];
|
|
168
|
-
readonly docs?: readonly string[];
|
|
169
|
-
}
|
|
170
|
-
interface BuildParamsMap {
|
|
171
|
-
readonly [name: string]: unknown;
|
|
172
|
-
}
|
|
173
|
-
interface BuildOptions {
|
|
174
|
-
readonly params?: BuildParamsMap;
|
|
175
|
-
}
|
|
176
|
-
interface SqlBuilderOptions<TContract extends Contract<SqlStorage> = Contract<SqlStorage>> {
|
|
177
|
-
readonly context: ExecutionContext<TContract>;
|
|
178
|
-
}
|
|
179
|
-
//#endregion
|
|
180
|
-
export { TableMetadata as C, TableKey as S, RawTemplateOptions as _, ComputeColumnJsType as a, SqlPlan as b, Meta as c, OperationTypeSignature as d, OperationTypes as f, RawTemplateFactory as g, RawFunctionOptions as h, ColumnsOf as i, ModelDef as l, RawFactory as m, BuildParamsMap as n, Expr as o, OperationsForTypeId as p, CodecTypes as r, META as s, BuildOptions as t, ModelMetadata as u, RuntimeError as v, TablesOf as w, TableDef as x, SqlBuilderOptions as y };
|
|
181
|
-
//# sourceMappingURL=types-CQVke4QO.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types-CQVke4QO.d.mts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;;;;KAYY,IAAA,GAAO,SAAA,GAAY,QAAQ;;AAAvC;;;KAMK,mBAAA,mBAAsC,QAAA,CAAS,UAAA,+BAClD,wBAAA,CAAyB,SAAA,+BAAwC,MAAA,kCAE/C,MAAA,YAAkB,MAAA,CAAO,CAAA;EAAA,SAC1B,OAAA;IAAA,SAAoB,KAAA,EAAO,SAAA;EAAA;AAAA,IAElC,CAAA,iBAEE,MAAA;;;;;KAOT,oBAAA,mBACe,QAAA,CAAS,UAAA,0DAI3B,mBAAA,CAAoB,SAAA,EAAW,SAAA,2CAC3B,wBAAA,CAAyB,SAAA,+BAAwC,MAAA,oBAC/D,SAAA,SAAkB,MAAA,qCAChB,MAAA,CAAO,IAAA;EAAA,SACI,OAAA;IAAA,SAAoB,MAAA,uBAA6B,MAAA;EAAA;AAAA,kBAG5C,MAAA,YAAkB,MAAA,CAAO,CAAA;EAAA,SAAsB,MAAA,EAAQ,UAAA;AAAA,IAC/D,CAAA,iBAEE,MAAA;AAAA,KAMf,mBAAA,oBACgB,aAAA,qBACA,MAAA;EAAA,SAA0B,MAAA;AAAA,MAC3C,UAAA;EAAqB,OAAA;AAAA,IACrB,OAAA,eAAsB,UAAA,GACpB,UAAA,CAAW,OAAA;EAAA,SAA4B,MAAA;AAAA,IACrC,UAAA;EAAqB,QAAA;AAAA,IACnB,CAAA,UACA,CAAA;;;;;KASE,sBAAA;EAAA,SACD,IAAA,EAAM,aAAA,CAAc,SAAA;EAAA,SACpB,OAAA,EAAS,SAAA;EAAA,SACT,QAAA,EAAU,eAAA;EAAA,SACV,YAAA,GAAe,aAAA;AAAA;;;;;;;;;;;;;;;;;;KAoBd,cAAA,GAAiB,MAAA,SAAe,MAAA,SAAe,sBAAA;;;;;;;;;;;;;KAc/C,UAAA,GAAa,MAAM;EAAA,SAAoB,MAAM;AAAA;;;;;;;;;;;KAY7C,mBAAA,2CAA8D,cAAA,IACxE,UAAA,SAAmB,MAAA,kBACf,MAAA,kBACA,MAAA,eAAqB,UAAA,GACnB,UAAA,CAAW,MAAA,IACX,MAAA;AAAA,KAEI,mBAAA,mBACQ,QAAA,CAAS,UAAA,2EAGR,aAAA,qBACA,MAAA;EAAA,SAA0B,MAAA;AAAA,MAE7C,mBAAA,CAAoB,SAAA,EAAW,SAAA,6BAC1B,SAAA,oBACC,mBAAA,CAAoB,UAAA,EAAY,UAAA,IAChC,SAAA,kBACE,oBAAA,CAAqB,SAAA,EAAW,SAAA,EAAW,UAAA,6BACxC,SAAA,oBACC,mBAAA,CAAoB,UAAA,EAAY,UAAA,IAChC,SAAA,kBACE,SAAA,eAAwB,uBAAA,CAAwB,SAAA,IAC9C,SAAA,eAAwB,uBAAA,CAAwB,SAAA,EAAW,SAAA,IACzD,uBAAA,CAAwB,SAAA,EAAW,SAAA,EAAW,SAAA;;;;;;KAatD,OAAA,kBAAyB,gBAAgB,CAAC,GAAA;AA9G5B;AAAA;;AAAA,KAmHd,QAAA,cAAsB,SAAS;EACzC,OAAA;IAAW,MAAA;EAAA;AAAA,IAET,CAAA;AAAA,KAGQ,QAAA,cAAsB,OAAA,OAAc,QAAA,CAAS,SAAA;;;;cAQpC,IAAA;;;;KAKT,IAAA;EAAA,CAAkB,IAAA;AAAA,KAAoB,CAAA,QAAS,IAAA;;;;UAK1C,aAAA;EACf,IAAA,EAAM,IAAI;AAAA;;;;UAMK,aAAA;EACf,IAAA,EAAM,IAAI;AAAA;;;AArID;AASX;UAmIiB,QAAA;EAAA,UACL,IAAA,GAAO,aAAA,CAAc,IAAA;AAAA;;;;;UAOhB,QAAA;EAAA,UACL,IAAA,GAAO,aAAA,CAAc,IAAA;AAAA;AAAA,KAGrB,SAAA,sBAEA,QAAA,CAAS,SAAA,KACjB,CAAA,eAAgB,QAAA,CAAS,SAAA,IACzB,QAAA,CAAS,SAAA,EAAW,CAAA;EAAa,OAAA;AAAA,IAC/B,CAAA;AAAA,UAIW,kBAAA;EAAA,SACN,WAAA,GAAc,MAAM;AAAA;AAAA,UAGd,kBAAA,SAA2B,kBAAkB;EAAA,SACnD,MAAA,EAAQ,aAAA;AAAA;AAAA,KAGP,kBAAA,IACV,OAAA,EAAS,oBAAA,KACN,MAAA,yBACA,gBAAgB;AAAA,UAEJ,UAAA,SAAmB,kBAAA;EAAA,CACjC,IAAA,UAAc,OAAA,EAAS,kBAAA,GAAqB,gBAAA;EAC7C,IAAA,CAAK,OAAA,EAAS,kBAAA,GAAqB,kBAAA;AAAA;AAAA,UAGpB,YAAA,SAAqB,KAAK;EAAA,SAChC,IAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;EAAA,SACA,OAAA,GAAU,MAAA;EAAA,SACV,KAAA;EAAA,SACA,IAAA;AAAA;AAAA,UAGM,cAAA;EAAA,UACL,IAAY;AAAA;AAAA,UAGP,YAAA;EAAA,SACN,MAAA,GAAS,cAAc;AAAA;AAAA,UAGjB,iBAAA,mBAAoC,QAAA,CAAS,UAAA,IAAc,QAAA,CAAS,UAAA;EAAA,SAC1E,OAAA,EAAS,gBAAA,CAAiB,SAAA;AAAA"}
|