@prisma-next/sql-relational-core 0.3.0-pr.94.2 → 0.3.0-pr.95.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/ast/adapter-types.d.ts +28 -0
  2. package/dist/ast/adapter-types.d.ts.map +1 -0
  3. package/dist/ast/codec-types.d.ts +141 -0
  4. package/dist/ast/codec-types.d.ts.map +1 -0
  5. package/dist/ast/common.d.ts +7 -0
  6. package/dist/ast/common.d.ts.map +1 -0
  7. package/dist/ast/delete.d.ts +8 -0
  8. package/dist/ast/delete.d.ts.map +1 -0
  9. package/dist/ast/driver-types.d.ts +20 -0
  10. package/dist/ast/driver-types.d.ts.map +1 -0
  11. package/dist/ast/insert.d.ts +8 -0
  12. package/dist/ast/insert.d.ts.map +1 -0
  13. package/dist/ast/join.d.ts +6 -0
  14. package/dist/ast/join.d.ts.map +1 -0
  15. package/dist/ast/order.d.ts +6 -0
  16. package/dist/ast/order.d.ts.map +1 -0
  17. package/dist/ast/predicate.d.ts +4 -0
  18. package/dist/ast/predicate.d.ts.map +1 -0
  19. package/dist/ast/select.d.ts +18 -0
  20. package/dist/ast/select.d.ts.map +1 -0
  21. package/dist/ast/types.d.ts +130 -0
  22. package/dist/ast/types.d.ts.map +1 -0
  23. package/dist/ast/update.d.ts +9 -0
  24. package/dist/ast/update.d.ts.map +1 -0
  25. package/dist/ast/util.d.ts +2 -0
  26. package/dist/ast/util.d.ts.map +1 -0
  27. package/dist/chunk-2BWK6XEY.js +13 -0
  28. package/dist/chunk-2BWK6XEY.js.map +1 -0
  29. package/dist/chunk-2F7DSEOU.js +8 -0
  30. package/dist/chunk-2F7DSEOU.js.map +1 -0
  31. package/dist/chunk-2MAKNVCP.js +86 -0
  32. package/dist/chunk-2MAKNVCP.js.map +1 -0
  33. package/dist/chunk-36WJWNHT.js +1 -0
  34. package/dist/chunk-36WJWNHT.js.map +1 -0
  35. package/dist/chunk-3F4RFQIB.js +169 -0
  36. package/dist/chunk-3F4RFQIB.js.map +1 -0
  37. package/dist/chunk-7I3EMQID.js +16 -0
  38. package/dist/chunk-7I3EMQID.js.map +1 -0
  39. package/dist/chunk-G52ENULI.js +1 -0
  40. package/dist/chunk-G52ENULI.js.map +1 -0
  41. package/dist/chunk-HV334QHG.js +320 -0
  42. package/dist/chunk-HV334QHG.js.map +1 -0
  43. package/dist/chunk-KYSP7L5C.js +16 -0
  44. package/dist/chunk-KYSP7L5C.js.map +1 -0
  45. package/dist/chunk-L2FZU4IV.js +170 -0
  46. package/dist/chunk-L2FZU4IV.js.map +1 -0
  47. package/dist/chunk-U7AXAUJA.js +1 -0
  48. package/dist/chunk-U7AXAUJA.js.map +1 -0
  49. package/dist/errors.d.ts +2 -0
  50. package/dist/errors.d.ts.map +1 -0
  51. package/dist/exports/ast.d.ts +14 -0
  52. package/dist/exports/ast.d.ts.map +1 -0
  53. package/dist/exports/ast.js +46 -0
  54. package/dist/exports/ast.js.map +1 -0
  55. package/dist/exports/errors.d.ts +2 -0
  56. package/dist/exports/errors.d.ts.map +1 -0
  57. package/dist/exports/errors.js +9 -0
  58. package/dist/exports/errors.js.map +1 -0
  59. package/dist/exports/guards.d.ts +2 -0
  60. package/dist/exports/guards.d.ts.map +1 -0
  61. package/dist/exports/guards.js +31 -0
  62. package/dist/exports/guards.js.map +1 -0
  63. package/dist/exports/operations-registry.d.ts +2 -0
  64. package/dist/exports/operations-registry.d.ts.map +1 -0
  65. package/dist/exports/operations-registry.js +9 -0
  66. package/dist/exports/operations-registry.js.map +1 -0
  67. package/dist/exports/param.d.ts +3 -0
  68. package/dist/exports/param.d.ts.map +1 -0
  69. package/dist/exports/param.js +7 -0
  70. package/dist/exports/param.js.map +1 -0
  71. package/dist/exports/plan.d.ts +2 -0
  72. package/dist/exports/plan.d.ts.map +1 -0
  73. package/dist/exports/plan.js +7 -0
  74. package/dist/exports/plan.js.map +1 -0
  75. package/dist/exports/query-lane-context.d.ts +2 -0
  76. package/dist/exports/query-lane-context.d.ts.map +1 -0
  77. package/dist/exports/query-lane-context.js +2 -0
  78. package/dist/exports/query-lane-context.js.map +1 -0
  79. package/dist/exports/schema.d.ts +3 -0
  80. package/dist/exports/schema.d.ts.map +1 -0
  81. package/dist/exports/schema.js +13 -0
  82. package/dist/exports/schema.js.map +1 -0
  83. package/dist/exports/types.d.ts +2 -0
  84. package/dist/exports/types.d.ts.map +1 -0
  85. package/dist/exports/types.js +10 -0
  86. package/dist/exports/types.js.map +1 -0
  87. package/dist/index.d.ts +9 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +81 -0
  90. package/dist/index.js.map +1 -0
  91. package/dist/operations-registry.d.ts +5 -0
  92. package/dist/operations-registry.d.ts.map +1 -0
  93. package/dist/param.d.ts +4 -0
  94. package/dist/param.d.ts.map +1 -0
  95. package/dist/plan.d.ts +23 -0
  96. package/dist/plan.d.ts.map +1 -0
  97. package/dist/query-lane-context.d.ts +16 -0
  98. package/dist/query-lane-context.d.ts.map +1 -0
  99. package/dist/schema.d.ts +68 -0
  100. package/dist/schema.d.ts.map +1 -0
  101. package/dist/types.d.ts +371 -0
  102. package/dist/types.d.ts.map +1 -0
  103. package/dist/{exports/guards.d.mts → utils/guards.d.ts} +19 -25
  104. package/dist/utils/guards.d.ts.map +1 -0
  105. package/package.json +51 -29
  106. package/dist/errors-BwxypN2Q.mjs +0 -3
  107. package/dist/errors-CLx1Ylq0.d.mts +0 -2
  108. package/dist/exports/ast.d.mts +0 -123
  109. package/dist/exports/ast.d.mts.map +0 -1
  110. package/dist/exports/ast.mjs +0 -304
  111. package/dist/exports/ast.mjs.map +0 -1
  112. package/dist/exports/errors.d.mts +0 -2
  113. package/dist/exports/errors.mjs +0 -3
  114. package/dist/exports/guards.d.mts.map +0 -1
  115. package/dist/exports/guards.mjs +0 -3
  116. package/dist/exports/operations-registry.d.mts +0 -5
  117. package/dist/exports/operations-registry.mjs +0 -3
  118. package/dist/exports/param.d.mts +0 -5
  119. package/dist/exports/param.mjs +0 -3
  120. package/dist/exports/plan.d.mts +0 -2
  121. package/dist/exports/plan.mjs +0 -17
  122. package/dist/exports/plan.mjs.map +0 -1
  123. package/dist/exports/query-lane-context.d.mts +0 -2
  124. package/dist/exports/query-lane-context.mjs +0 -1
  125. package/dist/exports/schema.d.mts +0 -5
  126. package/dist/exports/schema.mjs +0 -4
  127. package/dist/exports/types.d.mts +0 -4
  128. package/dist/exports/types.mjs +0 -3
  129. package/dist/guards-4T0IByJo.mjs +0 -132
  130. package/dist/guards-4T0IByJo.mjs.map +0 -1
  131. package/dist/index.d.mts +0 -12
  132. package/dist/index.mjs +0 -12
  133. package/dist/operations-registry-7R5KE2-5.mjs +0 -152
  134. package/dist/operations-registry-7R5KE2-5.mjs.map +0 -1
  135. package/dist/operations-registry-CIcn4f2P.d.mts +0 -9
  136. package/dist/operations-registry-CIcn4f2P.d.mts.map +0 -1
  137. package/dist/param-B4LzVPv2.d.mts +0 -8
  138. package/dist/param-B4LzVPv2.d.mts.map +0 -1
  139. package/dist/param-BFvNAaHR.mjs +0 -14
  140. package/dist/param-BFvNAaHR.mjs.map +0 -1
  141. package/dist/plan-9PvH-Tu3.d.mts +0 -157
  142. package/dist/plan-9PvH-Tu3.d.mts.map +0 -1
  143. package/dist/query-lane-context-wr_XXnB5.d.mts +0 -143
  144. package/dist/query-lane-context-wr_XXnB5.d.mts.map +0 -1
  145. package/dist/schema-BsY2EXAf.mjs +0 -148
  146. package/dist/schema-BsY2EXAf.mjs.map +0 -1
  147. package/dist/schema-Dse48uyP.d.mts +0 -63
  148. package/dist/schema-Dse48uyP.d.mts.map +0 -1
  149. package/dist/types-Bg2kUmUA.d.mts +0 -359
  150. package/dist/types-Bg2kUmUA.d.mts.map +0 -1
  151. package/dist/types-D_FRJvm0.mjs +0 -18
  152. package/dist/types-D_FRJvm0.mjs.map +0 -1
@@ -0,0 +1,16 @@
1
+ import type { OperationRegistry } from '@prisma-next/operations';
2
+ import type { SqlContract, SqlStorage } from '@prisma-next/sql-contract/types';
3
+ import type { CodecRegistry } from './ast/codec-types';
4
+ /**
5
+ * Minimal context interface for SQL query lanes.
6
+ *
7
+ * Lanes only need contract, operations, and codecs to build typed ASTs and attach
8
+ * operation builders. This interface explicitly excludes runtime concerns like
9
+ * adapters, connection management, and transaction state.
10
+ */
11
+ export interface QueryLaneContext<TContract extends SqlContract<SqlStorage> = SqlContract<SqlStorage>> {
12
+ readonly contract: TContract;
13
+ readonly operations: OperationRegistry;
14
+ readonly codecs: CodecRegistry;
15
+ }
16
+ //# sourceMappingURL=query-lane-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-lane-context.d.ts","sourceRoot":"","sources":["../src/query-lane-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB,CAC/B,SAAS,SAAS,WAAW,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC;IAEnE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAChC"}
@@ -0,0 +1,68 @@
1
+ import type { ExtractCodecTypes, ExtractOperationTypes, SqlContract, SqlStorage, StorageColumn } from '@prisma-next/sql-contract/types';
2
+ import type { ColumnRef, ExpressionSource, TableRef } from './ast/types';
3
+ import type { QueryLaneContext } from './query-lane-context';
4
+ import type { BinaryBuilder, CodecTypes as CodecTypesType, ColumnBuilder, ComputeColumnJsType, OperationTypeSignature, OperationTypes, OrderBuilder, ParamPlaceholder } from './types';
5
+ type TableColumns<Table extends {
6
+ columns: Record<string, StorageColumn>;
7
+ }> = Table['columns'];
8
+ type ColumnBuilders<Contract extends SqlContract<SqlStorage>, TableName extends string, Columns extends Record<string, StorageColumn>, CodecTypes extends CodecTypesType, Operations extends OperationTypes> = {
9
+ readonly [K in keyof Columns]: ColumnBuilder<K & string, Columns[K], ComputeColumnJsType<Contract, TableName, K & string, Columns[K], CodecTypes>, Operations>;
10
+ };
11
+ export declare class ColumnBuilderImpl<ColumnName extends string, ColumnMeta extends StorageColumn, JsType = unknown> implements ExpressionSource {
12
+ readonly table: string;
13
+ readonly column: ColumnName;
14
+ private readonly storageColumn;
15
+ readonly kind: "column";
16
+ constructor(table: string, column: ColumnName, storageColumn: ColumnMeta);
17
+ get columnMeta(): ColumnMeta;
18
+ get __jsType(): JsType;
19
+ /**
20
+ * Converts this column builder to a ColumnRef expression.
21
+ * This is the canonical way to get an AST node from a builder.
22
+ */
23
+ toExpr(): ColumnRef;
24
+ private createBinaryBuilder;
25
+ eq(value: ParamPlaceholder | ExpressionSource): BinaryBuilder<ColumnName, ColumnMeta, JsType>;
26
+ neq(value: ParamPlaceholder | ExpressionSource): BinaryBuilder<ColumnName, ColumnMeta, JsType>;
27
+ gt(value: ParamPlaceholder | ExpressionSource): BinaryBuilder<ColumnName, ColumnMeta, JsType>;
28
+ lt(value: ParamPlaceholder | ExpressionSource): BinaryBuilder<ColumnName, ColumnMeta, JsType>;
29
+ gte(value: ParamPlaceholder | ExpressionSource): BinaryBuilder<ColumnName, ColumnMeta, JsType>;
30
+ lte(value: ParamPlaceholder | ExpressionSource): BinaryBuilder<ColumnName, ColumnMeta, JsType>;
31
+ asc(): OrderBuilder<ColumnName, ColumnMeta, JsType>;
32
+ desc(): OrderBuilder<ColumnName, ColumnMeta, JsType>;
33
+ }
34
+ export declare class TableBuilderImpl<Contract extends SqlContract<SqlStorage>, TableName extends string, Columns extends Record<string, StorageColumn>, CodecTypes extends CodecTypesType, Operations extends OperationTypes> implements TableRef {
35
+ readonly kind: "table";
36
+ readonly columns: ColumnBuilders<Contract, TableName, Columns, CodecTypes, Operations>;
37
+ private readonly _name;
38
+ constructor(name: TableName, columns: ColumnBuilders<Contract, TableName, Columns, CodecTypes, Operations>);
39
+ get name(): string;
40
+ }
41
+ type ExtractSchemaTables<Contract extends SqlContract<SqlStorage>, CodecTypes extends CodecTypesType, Operations extends OperationTypes> = {
42
+ readonly [TableName in keyof Contract['storage']['tables']]: TableBuilderImpl<Contract, TableName & string, TableColumns<Contract['storage']['tables'][TableName]>, CodecTypes, Operations> & TableRef;
43
+ };
44
+ export type SchemaHandle<Contract extends SqlContract<SqlStorage> = SqlContract<SqlStorage>, CodecTypes extends CodecTypesType = CodecTypesType, Operations extends OperationTypes = Record<string, never>> = {
45
+ readonly tables: ExtractSchemaTables<Contract, CodecTypes, Operations>;
46
+ };
47
+ type SchemaReturnType<Contract extends SqlContract<SqlStorage>> = SchemaHandle<Contract, ExtractCodecTypes<Contract>, ToOperationTypes<ExtractOperationTypes<Contract>>>;
48
+ type NormalizeOperationTypes<T> = {
49
+ [TypeId in keyof T]: {
50
+ [Method in keyof T[TypeId]]: T[TypeId][Method] extends OperationTypeSignature ? T[TypeId][Method] : OperationTypeSignature;
51
+ };
52
+ };
53
+ type ToOperationTypes<T> = T extends OperationTypes ? T : NormalizeOperationTypes<T>;
54
+ /**
55
+ * Creates a schema handle for building SQL queries.
56
+ *
57
+ * @param context - Query lane context containing contract, codec and operation registries
58
+ * @returns A schema handle with typed table builders
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const schemaHandle = schema<Contract>(context);
63
+ * const userTable = schemaHandle.tables.user;
64
+ * ```
65
+ */
66
+ export declare function schema<Contract extends SqlContract<SqlStorage>>(context: QueryLaneContext<Contract>): SchemaReturnType<Contract>;
67
+ export type { ColumnBuilderImpl as Column, TableBuilderImpl as Table };
68
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,371 @@
1
+ import type { ResultType as CoreResultType, ExecutionPlan, PlanRefs } from '@prisma-next/contract/types';
2
+ import type { ArgSpec, ReturnSpec } from '@prisma-next/operations';
3
+ import type { SqlContract, SqlStorage, StorageColumn } from '@prisma-next/sql-contract/types';
4
+ import type { SqlLoweringSpec } from '@prisma-next/sql-operations';
5
+ import type { BinaryOp, ColumnRef, Direction, Expression, ExpressionSource, OperationExpr, ParamRef, QueryAst } from './ast/types';
6
+ import type { SqlQueryPlan } from './plan';
7
+ import type { QueryLaneContext } from './query-lane-context';
8
+ export interface ParamPlaceholder {
9
+ readonly kind: 'param-placeholder';
10
+ readonly name: string;
11
+ }
12
+ /**
13
+ * ValueSource represents any value that can appear in a comparison or as an argument.
14
+ * This includes:
15
+ * - ParamPlaceholder: A parameter placeholder (e.g., `param('userId')`)
16
+ * - ExpressionSource: Something that can be converted to an Expression (ColumnBuilder, ExpressionBuilder)
17
+ */
18
+ export type ValueSource = ParamPlaceholder | ExpressionSource;
19
+ export interface OrderBuilder<_ColumnName extends string = string, _ColumnMeta extends StorageColumn = StorageColumn, _JsType = unknown> {
20
+ readonly kind: 'order';
21
+ readonly expr: Expression;
22
+ readonly dir: Direction;
23
+ }
24
+ /**
25
+ * Creates an OrderBuilder for use in orderBy clauses.
26
+ */
27
+ export declare function createOrderBuilder(expr: AnyColumnBuilder | OperationExpr, dir: Direction): AnyOrderBuilder;
28
+ /**
29
+ * ColumnBuilder with optional operation methods based on the column's typeId.
30
+ * When Operations is provided and the column's typeId matches, operation methods are included.
31
+ * Implements ExpressionSource to provide type-safe conversion to ColumnRef.
32
+ */
33
+ export type ColumnBuilder<ColumnName extends string = string, ColumnMeta extends StorageColumn = StorageColumn, JsType = unknown, Operations extends OperationTypes = Record<string, never>> = {
34
+ readonly kind: 'column';
35
+ readonly table: string;
36
+ readonly column: ColumnName;
37
+ readonly columnMeta: ColumnMeta;
38
+ eq(value: ValueSource): BinaryBuilder<ColumnName, ColumnMeta, JsType>;
39
+ neq(value: ValueSource): BinaryBuilder<ColumnName, ColumnMeta, JsType>;
40
+ gt(value: ValueSource): BinaryBuilder<ColumnName, ColumnMeta, JsType>;
41
+ lt(value: ValueSource): BinaryBuilder<ColumnName, ColumnMeta, JsType>;
42
+ gte(value: ValueSource): BinaryBuilder<ColumnName, ColumnMeta, JsType>;
43
+ lte(value: ValueSource): BinaryBuilder<ColumnName, ColumnMeta, JsType>;
44
+ asc(): OrderBuilder<ColumnName, ColumnMeta, JsType>;
45
+ desc(): OrderBuilder<ColumnName, ColumnMeta, JsType>;
46
+ /** Converts this column builder to a ColumnRef expression */
47
+ toExpr(): ColumnRef;
48
+ readonly __jsType: JsType;
49
+ } & (ColumnMeta['codecId'] extends string ? ColumnMeta['codecId'] extends keyof Operations ? OperationMethods<OperationsForTypeId<ColumnMeta['codecId'] & string, Operations>, ColumnName, StorageColumn, JsType> : Record<string, never> : Record<string, never>);
50
+ export interface BinaryBuilder<_ColumnName extends string = string, _ColumnMeta extends StorageColumn = StorageColumn, _JsType = unknown> {
51
+ readonly kind: 'binary';
52
+ readonly op: BinaryOp;
53
+ readonly left: Expression;
54
+ readonly right: ValueSource;
55
+ }
56
+ export type AnyBinaryBuilder = BinaryBuilder;
57
+ export type AnyOrderBuilder = OrderBuilder;
58
+ /**
59
+ * ExpressionBuilder represents the result of an operation (e.g., col.distance(...)).
60
+ * Unlike ColumnBuilder (which represents a column), ExpressionBuilder represents
61
+ * an operation expression and provides the same DSL methods for chaining.
62
+ *
63
+ * Implements ExpressionSource to provide type-safe conversion to OperationExpr.
64
+ */
65
+ export interface ExpressionBuilder<JsType = unknown> extends ExpressionSource {
66
+ readonly kind: 'expression';
67
+ readonly expr: OperationExpr;
68
+ readonly columnMeta: StorageColumn;
69
+ eq(value: ValueSource): AnyBinaryBuilder;
70
+ neq(value: ValueSource): AnyBinaryBuilder;
71
+ gt(value: ValueSource): AnyBinaryBuilder;
72
+ lt(value: ValueSource): AnyBinaryBuilder;
73
+ gte(value: ValueSource): AnyBinaryBuilder;
74
+ lte(value: ValueSource): AnyBinaryBuilder;
75
+ asc(): AnyOrderBuilder;
76
+ desc(): AnyOrderBuilder;
77
+ /** Converts this expression builder to the underlying OperationExpr */
78
+ toExpr(): OperationExpr;
79
+ readonly __jsType: JsType;
80
+ }
81
+ export type AnyColumnBuilderBase = {
82
+ readonly kind: 'column';
83
+ readonly table: string;
84
+ readonly column: string;
85
+ readonly columnMeta: StorageColumn;
86
+ eq(value: ValueSource): AnyBinaryBuilder;
87
+ neq(value: ValueSource): AnyBinaryBuilder;
88
+ gt(value: ValueSource): AnyBinaryBuilder;
89
+ lt(value: ValueSource): AnyBinaryBuilder;
90
+ gte(value: ValueSource): AnyBinaryBuilder;
91
+ lte(value: ValueSource): AnyBinaryBuilder;
92
+ asc(): AnyOrderBuilder;
93
+ desc(): AnyOrderBuilder;
94
+ toExpr(): ColumnRef;
95
+ readonly __jsType: unknown;
96
+ readonly [key: string]: unknown;
97
+ };
98
+ export type AnyColumnBuilder = ColumnBuilder<string, StorageColumn, unknown, any> | AnyColumnBuilderBase;
99
+ /**
100
+ * Union type for any builder that can produce an Expression.
101
+ * Used in DSL method signatures where either a column or operation result can be passed.
102
+ */
103
+ export type AnyExpressionSource = AnyColumnBuilder | ExpressionBuilder;
104
+ export declare function isColumnBuilder(value: unknown): value is AnyColumnBuilder;
105
+ export interface JoinOnBuilder {
106
+ eqCol(left: AnyColumnBuilder, right: AnyColumnBuilder): JoinOnPredicate;
107
+ }
108
+ export interface JoinOnPredicate {
109
+ readonly kind: 'join-on';
110
+ readonly left: AnyColumnBuilder;
111
+ readonly right: AnyColumnBuilder;
112
+ }
113
+ export type Expr = ColumnRef | ParamRef;
114
+ /**
115
+ * Helper type to extract codec output type from CodecTypes.
116
+ * Returns never if the codecId is not found in CodecTypes.
117
+ */
118
+ type ExtractCodecOutputType<CodecId extends string, CodecTypes extends Record<string, {
119
+ readonly output: unknown;
120
+ }>> = CodecId extends keyof CodecTypes ? CodecTypes[CodecId] extends {
121
+ readonly output: infer Output;
122
+ } ? Output : never : never;
123
+ /**
124
+ * Type-level operation signature.
125
+ * Represents an operation at the type level, similar to OperationSignature at runtime.
126
+ */
127
+ export type OperationTypeSignature = {
128
+ readonly args: ReadonlyArray<ArgSpec>;
129
+ readonly returns: ReturnSpec;
130
+ readonly lowering: SqlLoweringSpec;
131
+ readonly capabilities?: ReadonlyArray<string>;
132
+ };
133
+ /**
134
+ * Type-level operation registry.
135
+ * Maps typeId → operations, where operations is a record of method name → operation signature.
136
+ *
137
+ * Example:
138
+ * ```typescript
139
+ * type MyOperations: OperationTypes = {
140
+ * 'pg/vector@1': {
141
+ * cosineDistance: {
142
+ * args: [{ kind: 'typeId'; type: 'pg/vector@1' }];
143
+ * returns: { kind: 'builtin'; type: 'number' };
144
+ * lowering: { targetFamily: 'sql'; strategy: 'function'; template: '...' };
145
+ * };
146
+ * };
147
+ * };
148
+ * ```
149
+ */
150
+ export type OperationTypes = Record<string, Record<string, OperationTypeSignature>>;
151
+ /**
152
+ * CodecTypes represents a map of typeId to codec definitions.
153
+ * Each codec definition must have an `output` property indicating the JavaScript type.
154
+ *
155
+ * Example:
156
+ * ```typescript
157
+ * type MyCodecTypes: CodecTypes = {
158
+ * 'pg/int4@1': { output: number };
159
+ * 'pg/text@1': { output: string };
160
+ * };
161
+ * ```
162
+ */
163
+ export type CodecTypes = Record<string, {
164
+ readonly output: unknown;
165
+ }>;
166
+ /**
167
+ * Extracts operations for a given typeId from the operation registry.
168
+ * Returns an empty record if the typeId is not found.
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * type Ops = OperationsForTypeId<'pg/vector@1', MyOperations>;
173
+ * // Ops = { cosineDistance: { ... }, l2Distance: { ... } }
174
+ * ```
175
+ */
176
+ export 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>;
177
+ /**
178
+ * Maps operation signatures to method signatures on ColumnBuilder.
179
+ * Each operation becomes a method that returns a ColumnBuilder or BinaryBuilder
180
+ * based on the return type.
181
+ */
182
+ type OperationMethods<Ops extends Record<string, OperationTypeSignature>, ColumnName extends string, ColumnMeta extends StorageColumn, JsType> = {
183
+ [K in keyof Ops]: Ops[K] extends OperationTypeSignature ? (...args: OperationArgs<Ops[K]['args']>) => OperationReturn<Ops[K]['returns'], ColumnName, ColumnMeta, JsType> : never;
184
+ };
185
+ /**
186
+ * Maps operation argument specs to TypeScript argument types.
187
+ * - typeId args: ColumnBuilder (accepts base columns or operation results)
188
+ * - param args: ParamPlaceholder
189
+ * - literal args: unknown (could be more specific in future)
190
+ */
191
+ type OperationArgs<Args extends ReadonlyArray<ArgSpec>> = Args extends readonly [
192
+ infer First,
193
+ ...infer Rest
194
+ ] ? First extends ArgSpec ? [ArgToType<First>, ...(Rest extends ReadonlyArray<ArgSpec> ? OperationArgs<Rest> : [])] : [] : [];
195
+ type ArgToType<Arg extends ArgSpec> = Arg extends {
196
+ kind: 'typeId';
197
+ } ? AnyExpressionSource : Arg extends {
198
+ kind: 'param';
199
+ } ? ParamPlaceholder : Arg extends {
200
+ kind: 'literal';
201
+ } ? unknown : never;
202
+ /**
203
+ * Maps operation return spec to return type.
204
+ * Operations return ExpressionBuilder, not ColumnBuilder, because the result
205
+ * represents an expression (OperationExpr) rather than a column reference.
206
+ */
207
+ type OperationReturn<Returns extends ReturnSpec, _ColumnName extends string, _ColumnMeta extends StorageColumn, _JsType> = Returns extends {
208
+ kind: 'builtin';
209
+ type: infer T;
210
+ } ? T extends 'number' ? ExpressionBuilder<number> : T extends 'boolean' ? ExpressionBuilder<boolean> : T extends 'string' ? ExpressionBuilder<string> : ExpressionBuilder<unknown> : Returns extends {
211
+ kind: 'typeId';
212
+ } ? ExpressionBuilder<unknown> : ExpressionBuilder<unknown>;
213
+ /**
214
+ * Computes JavaScript type for a column at column creation time.
215
+ *
216
+ * Type inference:
217
+ * - Read columnMeta.codecId as typeId string literal
218
+ * - Look up CodecTypes[typeId].output
219
+ * - Apply nullability: nullable ? Output | null : Output
220
+ */
221
+ type ColumnMetaTypeId<ColumnMeta> = ColumnMeta extends {
222
+ codecId: infer CodecId extends string;
223
+ } ? CodecId : ColumnMeta extends {
224
+ type: infer TypeId extends string;
225
+ } ? TypeId : never;
226
+ export type ComputeColumnJsType<_Contract extends SqlContract<SqlStorage>, _TableName extends string, _ColumnName extends string, ColumnMeta extends StorageColumn, CodecTypes extends Record<string, {
227
+ readonly output: unknown;
228
+ }>> = ColumnMeta extends {
229
+ nullable: infer Nullable;
230
+ } ? ColumnMetaTypeId<ColumnMeta> extends infer TypeId ? TypeId extends string ? ExtractCodecOutputType<TypeId, CodecTypes> extends infer CodecOutput ? [CodecOutput] extends [never] ? unknown : Nullable extends true ? CodecOutput | null : CodecOutput : unknown : unknown : unknown : unknown;
231
+ /**
232
+ * Infers Row type from a projection object.
233
+ * Maps Record<string, ColumnBuilder> to Record<string, JSType>
234
+ *
235
+ * Extracts the pre-computed JsType from each ColumnBuilder in the projection.
236
+ */
237
+ /**
238
+ * Extracts the inferred JsType carried by a ColumnBuilder.
239
+ */
240
+ type ExtractJsTypeFromColumnBuilder<CB extends AnyColumnBuilder> = CB extends ColumnBuilder<infer _ColumnName extends string, infer _ColumnMeta extends StorageColumn, infer JsType, infer _Ops> ? JsType : never;
241
+ export type InferProjectionRow<P extends Record<string, AnyColumnBuilder>> = {
242
+ [K in keyof P]: ExtractJsTypeFromColumnBuilder<P[K]>;
243
+ };
244
+ /**
245
+ * Nested projection type - allows recursive nesting of ColumnBuilder, ExpressionBuilder, or nested objects.
246
+ */
247
+ export type NestedProjection = Record<string, AnyExpressionSource | Record<string, AnyExpressionSource | Record<string, AnyExpressionSource | Record<string, AnyExpressionSource | Record<string, AnyExpressionSource>>>>>;
248
+ /**
249
+ * Helper type to extract include type from Includes map.
250
+ * Returns the value type if K is a key of Includes, otherwise returns unknown.
251
+ */
252
+ type ExtractIncludeType<K extends string, Includes extends Record<string, unknown>> = K extends keyof Includes ? Includes[K] : unknown;
253
+ /**
254
+ * Infers Row type from a nested projection object.
255
+ * Recursively maps Record<string, ColumnBuilder | boolean | NestedProjection> to nested object types.
256
+ *
257
+ * Extracts the pre-computed JsType from each ColumnBuilder at leaves.
258
+ * When a value is `true`, it represents an include reference and infers `Array<ChildShape>`
259
+ * by looking up the include alias in the Includes type map.
260
+ */
261
+ export type InferNestedProjectionRow<P extends Record<string, AnyExpressionSource | boolean | NestedProjection>, CodecTypes extends Record<string, {
262
+ readonly output: unknown;
263
+ }> = Record<string, never>, Includes extends Record<string, unknown> = Record<string, never>> = {
264
+ [K in keyof P]: P[K] extends ExpressionBuilder<infer JsType> ? JsType : P[K] extends AnyColumnBuilder ? ExtractJsTypeFromColumnBuilder<P[K]> : P[K] extends true ? Array<ExtractIncludeType<K & string, Includes>> : P[K] extends NestedProjection ? InferNestedProjectionRow<P[K], CodecTypes, Includes> : never;
265
+ };
266
+ /**
267
+ * Infers Row type from a tuple of ColumnBuilders used in returning() clause.
268
+ * Extracts column name and JsType from each ColumnBuilder and creates a Record.
269
+ */
270
+ export type InferReturningRow<Columns extends readonly AnyColumnBuilder[]> = Columns extends readonly [infer First, ...infer Rest] ? First extends ColumnBuilder<infer Name, infer _Meta, infer JsType, infer _Ops extends OperationTypes> ? Name extends string ? Rest extends readonly AnyColumnBuilder[] ? {
271
+ [K in Name]: JsType;
272
+ } & InferReturningRow<Rest> : {
273
+ [K in Name]: JsType;
274
+ } : never : never : Record<string, never>;
275
+ /**
276
+ * Utility type to check if a contract has the required capabilities for includeMany.
277
+ * Requires both `lateral` and `jsonAgg` to be `true` in the contract's capabilities for the target.
278
+ * Capabilities are nested by target: `{ [target]: { lateral: true, jsonAgg: true } }`
279
+ */
280
+ export type HasIncludeManyCapabilities<TContract extends SqlContract<SqlStorage>> = TContract extends {
281
+ capabilities: infer C;
282
+ target: infer T;
283
+ } ? T extends string ? C extends Record<string, Record<string, boolean>> ? C extends {
284
+ [K in T]: infer TargetCaps;
285
+ } ? TargetCaps extends {
286
+ lateral: true;
287
+ jsonAgg: true;
288
+ } ? true : false : false : false : false : false;
289
+ /**
290
+ * SQL-specific Plan type that refines the ast field to use QueryAst.
291
+ * This is the type used by SQL query builders.
292
+ */
293
+ export type SqlPlan<Row = unknown> = ExecutionPlan<Row, QueryAst>;
294
+ /**
295
+ * Helper types for extracting contract structure.
296
+ */
297
+ export type TablesOf<TContract> = TContract extends {
298
+ storage: {
299
+ tables: infer U;
300
+ };
301
+ } ? U : never;
302
+ export type TableKey<TContract> = Extract<keyof TablesOf<TContract>, string>;
303
+ /**
304
+ * Unique symbol for metadata property to avoid collisions with user-defined properties
305
+ */
306
+ export declare const META: unique symbol;
307
+ /**
308
+ * Extracts metadata from a type that has a META property
309
+ */
310
+ export type Meta<T extends {
311
+ [META]: unknown;
312
+ }> = T[typeof META];
313
+ /**
314
+ * Metadata interface for table definitions
315
+ */
316
+ export interface TableMetadata<Name extends string> {
317
+ name: Name;
318
+ }
319
+ /**
320
+ * Metadata interface for model definitions
321
+ */
322
+ export interface ModelMetadata<Name extends string> {
323
+ name: Name;
324
+ }
325
+ /**
326
+ * Base interface for table definitions with metadata
327
+ * Used in contract.d.ts to define storage-level table types
328
+ */
329
+ export interface TableDef<Name extends string> {
330
+ readonly [META]: TableMetadata<Name>;
331
+ }
332
+ /**
333
+ * Base interface for model definitions with metadata
334
+ * Used in contract.d.ts to define application-level model types
335
+ */
336
+ export interface ModelDef<Name extends string> {
337
+ readonly [META]: ModelMetadata<Name>;
338
+ }
339
+ export type ColumnsOf<TContract, K extends TableKey<TContract>> = K extends keyof TablesOf<TContract> ? TablesOf<TContract>[K] extends {
340
+ columns: infer C;
341
+ } ? C : never : never;
342
+ export interface RawTemplateOptions {
343
+ readonly refs?: PlanRefs;
344
+ readonly annotations?: Record<string, unknown>;
345
+ readonly projection?: ReadonlyArray<string>;
346
+ }
347
+ export interface RawFunctionOptions extends RawTemplateOptions {
348
+ readonly params: ReadonlyArray<unknown>;
349
+ }
350
+ export type RawTemplateFactory = (strings: TemplateStringsArray, ...values: readonly unknown[]) => ExecutionPlan;
351
+ export interface RawFactory extends RawTemplateFactory {
352
+ (text: string, options: RawFunctionOptions): ExecutionPlan;
353
+ with(options: RawTemplateOptions): RawTemplateFactory;
354
+ }
355
+ export type { RuntimeError } from '@prisma-next/plan';
356
+ export interface BuildParamsMap {
357
+ readonly [name: string]: unknown;
358
+ }
359
+ export interface BuildOptions {
360
+ readonly params?: BuildParamsMap;
361
+ }
362
+ export interface SqlBuilderOptions<TContract extends SqlContract<SqlStorage> = SqlContract<SqlStorage>> {
363
+ readonly context: QueryLaneContext<TContract>;
364
+ }
365
+ /**
366
+ * SQL-specific ResultType that works with both Plan and SqlQueryPlan.
367
+ * This extends the core ResultType to also handle SqlQueryPlan.
368
+ * Example: `type Row = ResultType<typeof plan>`
369
+ */
370
+ export type ResultType<P> = P extends SqlQueryPlan<infer R> ? R : CoreResultType<P>;
371
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,54 +1,50 @@
1
- import "../query-lane-context-wr_XXnB5.mjs";
2
- import { a as ColumnRef, g as LiteralExpr, l as Expression, u as ExpressionSource, v as OperationExpr, y as ParamRef } from "../plan-9PvH-Tu3.mjs";
3
- import { A as ParamPlaceholder, U as ValueSource, i as AnyExpressionSource, m as ExpressionBuilder, n as AnyColumnBuilder } from "../types-Bg2kUmUA.mjs";
4
- import { StorageColumn } from "@prisma-next/sql-contract/types";
5
-
6
- //#region src/utils/guards.d.ts
7
-
1
+ import type { StorageColumn } from '@prisma-next/sql-contract/types';
2
+ import type { ColumnRef, Expression, ExpressionSource, LiteralExpr, OperationExpr, ParamRef } from '../ast/types';
3
+ import type { AnyColumnBuilder, AnyExpressionSource, ExpressionBuilder, ParamPlaceholder, ValueSource } from '../types';
8
4
  /**
9
5
  * Helper to extract columnMeta from a ColumnBuilder or ExpressionBuilder.
10
6
  * Returns StorageColumn if present, undefined otherwise.
11
7
  * Both ColumnBuilder and ExpressionBuilder have columnMeta property.
12
8
  */
13
- declare function getColumnMeta(expr: AnyExpressionSource): StorageColumn | undefined;
9
+ export declare function getColumnMeta(expr: AnyExpressionSource): StorageColumn | undefined;
14
10
  /**
15
11
  * Type predicate to check if a value is a ParamPlaceholder.
16
12
  */
17
- declare function isParamPlaceholder(value: unknown): value is ParamPlaceholder;
13
+ export declare function isParamPlaceholder(value: unknown): value is ParamPlaceholder;
18
14
  /**
19
15
  * Recursively extracts the base ColumnRef from an OperationExpr.
20
16
  * If the expression is already a ColumnRef, it is returned directly.
21
17
  */
22
- declare function extractBaseColumnRef(expr: ColumnRef | OperationExpr): ColumnRef;
18
+ export declare function extractBaseColumnRef(expr: ColumnRef | OperationExpr): ColumnRef;
23
19
  /**
24
20
  * Recursively collects all ColumnRef nodes from an expression tree.
25
21
  * Handles nested OperationExpr structures by traversing both self and args.
26
22
  */
27
- declare function collectColumnRefs(expr: ColumnRef | ParamRef | LiteralExpr | OperationExpr): ColumnRef[];
23
+ export declare function collectColumnRefs(expr: ColumnRef | ParamRef | LiteralExpr | OperationExpr): ColumnRef[];
28
24
  /**
29
25
  * Type predicate to check if an expression is an OperationExpr.
30
26
  */
31
- declare function isOperationExpr(expr: AnyExpressionSource | OperationExpr | Expression): expr is OperationExpr;
27
+ export declare function isOperationExpr(expr: AnyExpressionSource | OperationExpr | Expression): expr is OperationExpr;
32
28
  /**
33
29
  * Helper to extract table and column from a ColumnBuilder, ExpressionBuilder, or OperationExpr.
34
30
  * For ExpressionBuilder or OperationExpr, recursively unwraps to find the base ColumnRef.
35
31
  */
36
- declare function getColumnInfo(expr: AnyExpressionSource | OperationExpr): {
37
- table: string;
38
- column: string;
32
+ export declare function getColumnInfo(expr: AnyExpressionSource | OperationExpr): {
33
+ table: string;
34
+ column: string;
39
35
  };
40
36
  /**
41
37
  * Type predicate to check if a value is a ColumnBuilder.
42
38
  */
43
- declare function isColumnBuilder(value: unknown): value is AnyColumnBuilder;
39
+ export declare function isColumnBuilder(value: unknown): value is AnyColumnBuilder;
44
40
  /**
45
41
  * Type predicate to check if a value is an ExpressionBuilder.
46
42
  */
47
- declare function isExpressionBuilder(value: unknown): value is ExpressionBuilder;
43
+ export declare function isExpressionBuilder(value: unknown): value is ExpressionBuilder;
48
44
  /**
49
45
  * Type predicate to check if a value is an ExpressionSource (has toExpr method).
50
46
  */
51
- declare function isExpressionSource(value: unknown): value is ExpressionSource;
47
+ export declare function isExpressionSource(value: unknown): value is ExpressionSource;
52
48
  /**
53
49
  * Converts any ExpressionSource to an Expression.
54
50
  * This is the canonical way to get an AST Expression from a builder.
@@ -56,7 +52,7 @@ declare function isExpressionSource(value: unknown): value is ExpressionSource;
56
52
  * @param source - A ColumnBuilder or ExpressionBuilder
57
53
  * @returns The corresponding Expression (ColumnRef or OperationExpr)
58
54
  */
59
- declare function toExpression(source: ExpressionSource): Expression;
55
+ export declare function toExpression(source: ExpressionSource): Expression;
60
56
  /**
61
57
  * Converts an AnyExpressionSource to an Expression.
62
58
  * Handles both ColumnBuilder and ExpressionBuilder.
@@ -64,12 +60,12 @@ declare function toExpression(source: ExpressionSource): Expression;
64
60
  * @param source - A ColumnBuilder or ExpressionBuilder
65
61
  * @returns The corresponding Expression (ColumnRef or OperationExpr)
66
62
  */
67
- declare function expressionFromSource(source: AnyExpressionSource): Expression;
63
+ export declare function expressionFromSource(source: AnyExpressionSource): Expression;
68
64
  /**
69
65
  * Type predicate to check if a value is a ValueSource.
70
66
  * ValueSource is either a ParamPlaceholder or an ExpressionSource.
71
67
  */
72
- declare function isValueSource(value: unknown): value is ValueSource;
68
+ export declare function isValueSource(value: unknown): value is ValueSource;
73
69
  /**
74
70
  * Extracts and returns an OperationExpr from a builder.
75
71
  * Returns the OperationExpr if the builder is an OperationExpr or has an _operationExpr property,
@@ -82,7 +78,5 @@ declare function isValueSource(value: unknown): value is ValueSource;
82
78
  * The ExpressionBuilder type (introduced in the operation-expr-refactoring) provides a cleaner
83
79
  * approach by explicitly representing operation results as a distinct type.
84
80
  */
85
- declare function getOperationExpr(builder: AnyColumnBuilder | OperationExpr): OperationExpr | undefined;
86
- //#endregion
87
- export { collectColumnRefs, expressionFromSource, extractBaseColumnRef, getColumnInfo, getColumnMeta, getOperationExpr, isColumnBuilder, isExpressionBuilder, isExpressionSource, isOperationExpr, isParamPlaceholder, isValueSource, toExpression };
88
- //# sourceMappingURL=guards.d.mts.map
81
+ export declare function getOperationExpr(builder: AnyColumnBuilder | OperationExpr): OperationExpr | undefined;
82
+ //# sourceMappingURL=guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/utils/guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,QAAQ,EACT,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACZ,MAAM,UAAU,CAAC;AAElB;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,mBAAmB,GAAG,aAAa,GAAG,SAAS,CAOlF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAS5E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,CAK/E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,aAAa,GACvD,SAAS,EAAE,CAYb;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,mBAAmB,GAAG,aAAa,GAAG,UAAU,GACrD,IAAI,IAAI,aAAa,CAEvB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,mBAAmB,GAAG,aAAa,GAAG;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAYA;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAOzE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAO9E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAO5E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAEjE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,UAAU,CAE5E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,GAAG,aAAa,GACxC,aAAa,GAAG,SAAS,CAM3B"}