@prisma-next/sql-relational-core 0.3.0-pr.90.2 → 0.3.0-pr.91.1

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.
@@ -10,4 +10,4 @@ export {
10
10
  createOrderBuilder,
11
11
  isColumnBuilder
12
12
  };
13
- //# sourceMappingURL=chunk-JCRSME6F.js.map
13
+ //# sourceMappingURL=chunk-D4JLPIWO.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n ResultType as CoreResultType,\n ExecutionPlan,\n PlanRefs,\n} from '@prisma-next/contract/types';\nimport type { ArgSpec, ReturnSpec } from '@prisma-next/operations';\nimport type { SqlContract, SqlStorage, StorageColumn } from '@prisma-next/sql-contract/types';\nimport type { SqlLoweringSpec } from '@prisma-next/sql-operations';\nimport type {\n BinaryOp,\n ColumnRef,\n Direction,\n OperationExpr,\n ParamRef,\n QueryAst,\n} from './ast/types';\nimport type { SqlQueryPlan } from './plan';\nimport type { QueryLaneContext } from './query-lane-context';\n\nexport interface ParamPlaceholder {\n readonly kind: 'param-placeholder';\n readonly name: string;\n}\n\nexport interface OrderBuilder<\n ColumnName extends string = string,\n ColumnMeta extends StorageColumn = StorageColumn,\n JsType = unknown,\n> {\n readonly kind: 'order';\n readonly expr: ColumnBuilder<ColumnName, ColumnMeta, JsType> | OperationExpr;\n readonly dir: Direction;\n}\n\n/**\n * Creates an OrderBuilder for use in orderBy clauses.\n */\nexport function createOrderBuilder(\n expr: AnyColumnBuilder | OperationExpr,\n dir: Direction,\n): AnyOrderBuilder {\n return { kind: 'order', expr, dir } as AnyOrderBuilder;\n}\n\n/**\n * ColumnBuilder with optional operation methods based on the column's typeId.\n * When Operations is provided and the column's typeId matches, operation methods are included.\n */\nexport type ColumnBuilder<\n ColumnName extends string = string,\n ColumnMeta extends StorageColumn = StorageColumn,\n JsType = unknown,\n Operations extends OperationTypes = Record<string, never>,\n> = {\n readonly kind: 'column';\n readonly table: string;\n readonly column: ColumnName;\n readonly columnMeta: ColumnMeta;\n eq(value: ParamPlaceholder | AnyColumnBuilderBase): BinaryBuilder<ColumnName, ColumnMeta, JsType>;\n neq(\n value: ParamPlaceholder | AnyColumnBuilderBase,\n ): BinaryBuilder<ColumnName, ColumnMeta, JsType>;\n gt(value: ParamPlaceholder | AnyColumnBuilderBase): BinaryBuilder<ColumnName, ColumnMeta, JsType>;\n lt(value: ParamPlaceholder | AnyColumnBuilderBase): BinaryBuilder<ColumnName, ColumnMeta, JsType>;\n gte(\n value: ParamPlaceholder | AnyColumnBuilderBase,\n ): BinaryBuilder<ColumnName, ColumnMeta, JsType>;\n lte(\n value: ParamPlaceholder | AnyColumnBuilderBase,\n ): BinaryBuilder<ColumnName, ColumnMeta, JsType>;\n asc(): OrderBuilder<ColumnName, ColumnMeta, JsType>;\n desc(): OrderBuilder<ColumnName, ColumnMeta, JsType>;\n // Helper property for type extraction (not used at runtime)\n readonly __jsType: JsType;\n} & (ColumnMeta['codecId'] extends string\n ? ColumnMeta['codecId'] extends keyof Operations\n ? OperationMethods<\n OperationsForTypeId<ColumnMeta['codecId'] & string, Operations>,\n ColumnName,\n StorageColumn,\n JsType\n >\n : Record<string, never>\n : Record<string, never>);\n\nexport interface BinaryBuilder<\n ColumnName extends string = string,\n ColumnMeta extends StorageColumn = StorageColumn,\n JsType = unknown,\n> {\n readonly kind: 'binary';\n readonly op: BinaryOp;\n readonly left: ColumnBuilder<ColumnName, ColumnMeta, JsType> | OperationExpr;\n readonly right: ParamPlaceholder | AnyColumnBuilderBase;\n}\n\n// Helper aliases for usage sites where the specific column parameters are irrelevant\n// Accepts any ColumnBuilder regardless of its Operations parameter\n// Note: We use `any` here because TypeScript's variance rules don't allow us to express\n// \"any type that extends OperationTypes\" in a way that works for assignment.\n// Contract-specific OperationTypes (e.g., PgVectorOperationTypes) are not assignable\n// to the base OperationTypes in generic parameter position, even though they extend it structurally.\n// Helper type that accepts any ColumnBuilder regardless of its generic parameters\n// This is needed because conditional types in ColumnBuilder create incompatible intersection types\n// when Operations differs, even though structurally they're compatible\nexport type AnyColumnBuilderBase = {\n readonly kind: 'column';\n readonly table: string;\n readonly column: string;\n readonly columnMeta: StorageColumn;\n eq(value: ParamPlaceholder | AnyColumnBuilderBase): AnyBinaryBuilder;\n neq(value: ParamPlaceholder | AnyColumnBuilderBase): AnyBinaryBuilder;\n gt(value: ParamPlaceholder | AnyColumnBuilderBase): AnyBinaryBuilder;\n lt(value: ParamPlaceholder | AnyColumnBuilderBase): AnyBinaryBuilder;\n gte(value: ParamPlaceholder | AnyColumnBuilderBase): AnyBinaryBuilder;\n lte(value: ParamPlaceholder | AnyColumnBuilderBase): AnyBinaryBuilder;\n asc(): AnyOrderBuilder;\n desc(): AnyOrderBuilder;\n readonly __jsType: unknown;\n // Allow any operation methods (from conditional type)\n readonly [key: string]: unknown;\n};\n\nexport type AnyColumnBuilder =\n | ColumnBuilder<\n string,\n StorageColumn,\n unknown,\n // biome-ignore lint/suspicious/noExplicitAny: AnyColumnBuilder must accept column builders with any operation types\n any\n >\n | AnyColumnBuilderBase;\nexport type AnyBinaryBuilder = BinaryBuilder<string, StorageColumn, unknown>;\nexport type AnyOrderBuilder = OrderBuilder<string, StorageColumn, unknown>;\n\nexport function isColumnBuilder(value: unknown): value is AnyColumnBuilder {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'kind' in value &&\n (value as { kind: unknown }).kind === 'column'\n );\n}\n\nexport interface JoinOnBuilder {\n eqCol(left: AnyColumnBuilder, right: AnyColumnBuilder): JoinOnPredicate;\n}\n\nexport interface JoinOnPredicate {\n readonly kind: 'join-on';\n readonly left: AnyColumnBuilder;\n readonly right: AnyColumnBuilder;\n}\n\nexport type Expr = ColumnRef | ParamRef;\n\n/**\n * Helper type to extract codec output type from CodecTypes.\n * Returns never if the codecId is not found in CodecTypes.\n */\ntype ExtractCodecOutputType<\n CodecId extends string,\n CodecTypes extends Record<string, { readonly output: unknown }>,\n> = CodecId extends keyof CodecTypes\n ? CodecTypes[CodecId] extends { readonly output: infer Output }\n ? Output\n : never\n : never;\n\n/**\n * Type-level operation signature.\n * Represents an operation at the type level, similar to OperationSignature at runtime.\n */\nexport type OperationTypeSignature = {\n readonly args: ReadonlyArray<ArgSpec>;\n readonly returns: ReturnSpec;\n readonly lowering: SqlLoweringSpec;\n readonly capabilities?: ReadonlyArray<string>;\n};\n\n/**\n * Type-level operation registry.\n * Maps typeId → operations, where operations is a record of method name → operation signature.\n *\n * Example:\n * ```typescript\n * type MyOperations: OperationTypes = {\n * 'pg/vector@1': {\n * cosineDistance: {\n * args: [{ kind: 'typeId'; type: 'pg/vector@1' }];\n * returns: { kind: 'builtin'; type: 'number' };\n * lowering: { targetFamily: 'sql'; strategy: 'function'; template: '...' };\n * };\n * };\n * };\n * ```\n */\nexport type OperationTypes = Record<string, Record<string, OperationTypeSignature>>;\n\n/**\n * CodecTypes represents a map of typeId to codec definitions.\n * Each codec definition must have an `output` property indicating the JavaScript type.\n *\n * Example:\n * ```typescript\n * type MyCodecTypes: CodecTypes = {\n * 'pg/int4@1': { output: number };\n * 'pg/text@1': { output: string };\n * };\n * ```\n */\nexport type CodecTypes = Record<string, { readonly output: unknown }>;\n\n/**\n * Extracts operations for a given typeId from the operation registry.\n * Returns an empty record if the typeId is not found.\n *\n * @example\n * ```typescript\n * type Ops = OperationsForTypeId<'pg/vector@1', MyOperations>;\n * // Ops = { cosineDistance: { ... }, l2Distance: { ... } }\n * ```\n */\nexport type OperationsForTypeId<\n TypeId extends string,\n Operations extends OperationTypes,\n> = Operations extends Record<string, never>\n ? Record<string, never>\n : TypeId extends keyof Operations\n ? Operations[TypeId]\n : Record<string, never>;\n\n/**\n * Maps operation signatures to method signatures on ColumnBuilder.\n * Each operation becomes a method that returns a ColumnBuilder or BinaryBuilder\n * based on the return type.\n */\ntype OperationMethods<\n Ops extends Record<string, OperationTypeSignature>,\n ColumnName extends string,\n ColumnMeta extends StorageColumn,\n JsType,\n> = {\n [K in keyof Ops]: Ops[K] extends OperationTypeSignature\n ? (\n ...args: OperationArgs<Ops[K]['args']>\n ) => OperationReturn<Ops[K]['returns'], ColumnName, ColumnMeta, JsType>\n : never;\n};\n\n/**\n * Maps operation argument specs to TypeScript argument types.\n * - typeId args: ColumnBuilder (accepts base columns or operation results)\n * - param args: ParamPlaceholder\n * - literal args: unknown (could be more specific in future)\n */\ntype OperationArgs<Args extends ReadonlyArray<ArgSpec>> = Args extends readonly [\n infer First,\n ...infer Rest,\n]\n ? First extends ArgSpec\n ? [ArgToType<First>, ...(Rest extends ReadonlyArray<ArgSpec> ? OperationArgs<Rest> : [])]\n : []\n : [];\n\ntype ArgToType<Arg extends ArgSpec> = Arg extends { kind: 'typeId' }\n ? AnyColumnBuilder\n : Arg extends { kind: 'param' }\n ? ParamPlaceholder\n : Arg extends { kind: 'literal' }\n ? unknown\n : never;\n\n/**\n * Maps operation return spec to return type.\n * - builtin types: ColumnBuilder with appropriate JsType (matches runtime behavior)\n * - typeId types: ColumnBuilder (for now, could be more specific in future)\n */\ntype OperationReturn<\n Returns extends ReturnSpec,\n ColumnName extends string,\n ColumnMeta extends StorageColumn,\n _JsType,\n> = Returns extends { kind: 'builtin'; type: infer T }\n ? T extends 'number'\n ? ColumnBuilder<ColumnName, ColumnMeta, number>\n : T extends 'boolean'\n ? ColumnBuilder<ColumnName, ColumnMeta, boolean>\n : T extends 'string'\n ? ColumnBuilder<ColumnName, ColumnMeta, string>\n : ColumnBuilder<ColumnName, ColumnMeta, unknown>\n : Returns extends { kind: 'typeId' }\n ? AnyColumnBuilder\n : ColumnBuilder<ColumnName, ColumnMeta, unknown>;\n\n/**\n * Computes JavaScript type for a column at column creation time.\n *\n * Type inference:\n * - For enum columns (codecId: 'pg/enum@1'): look up nativeType in Contract['storage']['enums']\n * and return the union of enum values\n * - For other columns: look up CodecTypes[codecId].output\n * - Apply nullability: nullable ? Output | null : Output\n */\ntype ColumnMetaTypeId<ColumnMeta> = ColumnMeta extends { codecId: infer CodecId extends string }\n ? CodecId\n : ColumnMeta extends { type: infer TypeId extends string }\n ? TypeId\n : never;\n\n/**\n * Extract enum values union from contract storage enums.\n * Returns the values[number] union type if the enum exists, otherwise never.\n */\ntype ExtractEnumJsType<\n Contract extends SqlContract<SqlStorage>,\n NativeType extends string,\n> = Contract['storage'] extends { enums: infer Enums }\n ? Enums extends Record<string, { values: readonly string[] }>\n ? NativeType extends keyof Enums\n ? Enums[NativeType]['values'][number]\n : never\n : never\n : never;\n\n/**\n * Check if a column is an enum column (uses pg/enum@1 codec).\n */\ntype IsEnumColumn<ColumnMeta extends StorageColumn> = ColumnMeta extends {\n codecId: 'pg/enum@1';\n}\n ? true\n : false;\n\nexport type ComputeColumnJsType<\n Contract extends SqlContract<SqlStorage>,\n _TableName extends string,\n _ColumnName extends string,\n ColumnMeta extends StorageColumn,\n CodecTypes extends Record<string, { readonly output: unknown }>,\n> = ColumnMeta extends { nullable: infer Nullable; nativeType: infer NativeType }\n ? IsEnumColumn<ColumnMeta> extends true\n ? NativeType extends string\n ? ExtractEnumJsType<Contract, NativeType> extends infer EnumType\n ? [EnumType] extends [never]\n ? string // Fallback to string if enum not found in contract\n : Nullable extends true\n ? EnumType | null\n : EnumType\n : string\n : string\n : ColumnMetaTypeId<ColumnMeta> extends infer TypeId\n ? TypeId extends string\n ? ExtractCodecOutputType<TypeId, CodecTypes> extends infer CodecOutput\n ? [CodecOutput] extends [never]\n ? unknown // Codec not found in CodecTypes\n : Nullable extends true\n ? CodecOutput | null\n : CodecOutput\n : unknown\n : unknown\n : unknown\n : unknown;\n\n/**\n * Infers Row type from a projection object.\n * Maps Record<string, ColumnBuilder> to Record<string, JSType>\n *\n * Extracts the pre-computed JsType from each ColumnBuilder in the projection.\n */\n/**\n * Extracts the inferred JsType carried by a ColumnBuilder.\n */\ntype ExtractJsTypeFromColumnBuilder<CB extends AnyColumnBuilder> = CB extends ColumnBuilder<\n infer _ColumnName extends string,\n infer _ColumnMeta extends StorageColumn,\n infer JsType,\n infer _Ops\n>\n ? JsType\n : never;\n\nexport type InferProjectionRow<P extends Record<string, AnyColumnBuilder>> = {\n [K in keyof P]: ExtractJsTypeFromColumnBuilder<P[K]>;\n};\n\n/**\n * Nested projection type - allows recursive nesting of ColumnBuilder or nested objects.\n */\nexport type NestedProjection = Record<\n string,\n | AnyColumnBuilder\n | Record<\n string,\n | AnyColumnBuilder\n | Record<\n string,\n AnyColumnBuilder | Record<string, AnyColumnBuilder | Record<string, AnyColumnBuilder>>\n >\n >\n>;\n\n/**\n * Helper type to extract include type from Includes map.\n * Returns the value type if K is a key of Includes, otherwise returns unknown.\n */\ntype ExtractIncludeType<\n K extends string,\n Includes extends Record<string, unknown>,\n> = K extends keyof Includes ? Includes[K] : unknown;\n\n/**\n * Infers Row type from a nested projection object.\n * Recursively maps Record<string, ColumnBuilder | boolean | NestedProjection> to nested object types.\n *\n * Extracts the pre-computed JsType from each ColumnBuilder at leaves.\n * When a value is `true`, it represents an include reference and infers `Array<ChildShape>`\n * by looking up the include alias in the Includes type map.\n */\nexport type InferNestedProjectionRow<\n P extends Record<string, AnyColumnBuilder | boolean | NestedProjection>,\n CodecTypes extends Record<string, { readonly output: unknown }> = Record<string, never>,\n Includes extends Record<string, unknown> = Record<string, never>,\n> = {\n [K in keyof P]: P[K] extends AnyColumnBuilder\n ? ExtractJsTypeFromColumnBuilder<P[K]>\n : P[K] extends true\n ? Array<ExtractIncludeType<K & string, Includes>> // Include reference - infers Array<ChildShape> from Includes map\n : P[K] extends NestedProjection\n ? InferNestedProjectionRow<P[K], CodecTypes, Includes>\n : never;\n};\n\n/**\n * Infers Row type from a tuple of ColumnBuilders used in returning() clause.\n * Extracts column name and JsType from each ColumnBuilder and creates a Record.\n */\nexport type InferReturningRow<Columns extends readonly AnyColumnBuilder[]> =\n Columns extends readonly [infer First, ...infer Rest]\n ? First extends ColumnBuilder<\n infer Name,\n infer _Meta,\n infer JsType,\n infer _Ops extends OperationTypes\n >\n ? Name extends string\n ? Rest extends readonly AnyColumnBuilder[]\n ? { [K in Name]: JsType } & InferReturningRow<Rest>\n : { [K in Name]: JsType }\n : never\n : never\n : Record<string, never>;\n\n/**\n * Utility type to check if a contract has the required capabilities for includeMany.\n * Requires both `lateral` and `jsonAgg` to be `true` in the contract's capabilities for the target.\n * Capabilities are nested by target: `{ [target]: { lateral: true, jsonAgg: true } }`\n */\nexport type HasIncludeManyCapabilities<TContract extends SqlContract<SqlStorage>> =\n TContract extends { capabilities: infer C; target: infer T }\n ? T extends string\n ? C extends Record<string, Record<string, boolean>>\n ? C extends { [K in T]: infer TargetCaps }\n ? TargetCaps extends { lateral: true; jsonAgg: true }\n ? true\n : false\n : false\n : false\n : false\n : false;\n\n/**\n * SQL-specific Plan type that refines the ast field to use QueryAst.\n * This is the type used by SQL query builders.\n */\nexport type SqlPlan<Row = unknown> = ExecutionPlan<Row, QueryAst>;\n\n/**\n * Helper types for extracting contract structure.\n */\nexport type TablesOf<TContract> = TContract extends {\n storage: { tables: infer U };\n}\n ? U\n : never;\n\nexport type TableKey<TContract> = Extract<keyof TablesOf<TContract>, string>;\n\n// Common types for contract.d.ts generation (SQL-specific)\n// These types are used by emitted contract.d.ts files to provide type-safe DSL/ORM types\n\n/**\n * Unique symbol for metadata property to avoid collisions with user-defined properties\n */\nexport declare const META: unique symbol;\n\n/**\n * Extracts metadata from a type that has a META property\n */\nexport type Meta<T extends { [META]: unknown }> = T[typeof META];\n\n/**\n * Metadata interface for table definitions\n */\nexport interface TableMetadata<Name extends string> {\n name: Name;\n}\n\n/**\n * Metadata interface for model definitions\n */\nexport interface ModelMetadata<Name extends string> {\n name: Name;\n}\n\n/**\n * Base interface for table definitions with metadata\n * Used in contract.d.ts to define storage-level table types\n */\nexport interface TableDef<Name extends string> {\n readonly [META]: TableMetadata<Name>;\n}\n\n/**\n * Base interface for model definitions with metadata\n * Used in contract.d.ts to define application-level model types\n */\nexport interface ModelDef<Name extends string> {\n readonly [META]: ModelMetadata<Name>;\n}\n\nexport type ColumnsOf<\n TContract,\n K extends TableKey<TContract>,\n> = K extends keyof TablesOf<TContract>\n ? TablesOf<TContract>[K] extends { columns: infer C }\n ? C\n : never\n : never;\n\nexport interface RawTemplateOptions {\n readonly refs?: PlanRefs;\n readonly annotations?: Record<string, unknown>;\n readonly projection?: ReadonlyArray<string>;\n}\n\nexport interface RawFunctionOptions extends RawTemplateOptions {\n readonly params: ReadonlyArray<unknown>;\n}\n\nexport type RawTemplateFactory = (\n strings: TemplateStringsArray,\n ...values: readonly unknown[]\n) => ExecutionPlan;\n\nexport interface RawFactory extends RawTemplateFactory {\n (text: string, options: RawFunctionOptions): ExecutionPlan;\n with(options: RawTemplateOptions): RawTemplateFactory;\n}\n\nexport type { RuntimeError } from '@prisma-next/plan';\n\nexport interface BuildParamsMap {\n readonly [name: string]: unknown;\n}\n\nexport interface BuildOptions {\n readonly params?: BuildParamsMap;\n}\n\nexport interface SqlBuilderOptions<\n TContract extends SqlContract<SqlStorage> = SqlContract<SqlStorage>,\n> {\n readonly context: QueryLaneContext<TContract>;\n}\n\n/**\n * SQL-specific ResultType that works with both Plan and SqlQueryPlan.\n * This extends the core ResultType to also handle SqlQueryPlan.\n * Example: `type Row = ResultType<typeof plan>`\n */\nexport type ResultType<P> = P extends SqlQueryPlan<infer R> ? R : CoreResultType<P>;\n"],"mappings":";AAqCO,SAAS,mBACd,MACA,KACiB;AACjB,SAAO,EAAE,MAAM,SAAS,MAAM,IAAI;AACpC;AA6FO,SAAS,gBAAgB,OAA2C;AACzE,SACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACT,MAA4B,SAAS;AAE1C;","names":[]}
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n ResultType as CoreResultType,\n ExecutionPlan,\n PlanRefs,\n} from '@prisma-next/contract/types';\nimport type { ArgSpec, ReturnSpec } from '@prisma-next/operations';\nimport type { SqlContract, SqlStorage, StorageColumn } from '@prisma-next/sql-contract/types';\nimport type { SqlLoweringSpec } from '@prisma-next/sql-operations';\nimport type {\n BinaryOp,\n ColumnRef,\n Direction,\n OperationExpr,\n ParamRef,\n QueryAst,\n} from './ast/types';\nimport type { SqlQueryPlan } from './plan';\nimport type { QueryLaneContext } from './query-lane-context';\n\nexport interface ParamPlaceholder {\n readonly kind: 'param-placeholder';\n readonly name: string;\n}\n\nexport interface OrderBuilder<\n ColumnName extends string = string,\n ColumnMeta extends StorageColumn = StorageColumn,\n JsType = unknown,\n> {\n readonly kind: 'order';\n readonly expr: ColumnBuilder<ColumnName, ColumnMeta, JsType> | OperationExpr;\n readonly dir: Direction;\n}\n\n/**\n * Creates an OrderBuilder for use in orderBy clauses.\n */\nexport function createOrderBuilder(\n expr: AnyColumnBuilder | OperationExpr,\n dir: Direction,\n): AnyOrderBuilder {\n return { kind: 'order', expr, dir } as AnyOrderBuilder;\n}\n\n/**\n * ColumnBuilder with optional operation methods based on the column's typeId.\n * When Operations is provided and the column's typeId matches, operation methods are included.\n */\nexport type ColumnBuilder<\n ColumnName extends string = string,\n ColumnMeta extends StorageColumn = StorageColumn,\n JsType = unknown,\n Operations extends OperationTypes = Record<string, never>,\n> = {\n readonly kind: 'column';\n readonly table: string;\n readonly column: ColumnName;\n readonly columnMeta: ColumnMeta;\n eq(value: ParamPlaceholder | AnyColumnBuilderBase): BinaryBuilder<ColumnName, ColumnMeta, JsType>;\n neq(\n value: ParamPlaceholder | AnyColumnBuilderBase,\n ): BinaryBuilder<ColumnName, ColumnMeta, JsType>;\n gt(value: ParamPlaceholder | AnyColumnBuilderBase): BinaryBuilder<ColumnName, ColumnMeta, JsType>;\n lt(value: ParamPlaceholder | AnyColumnBuilderBase): BinaryBuilder<ColumnName, ColumnMeta, JsType>;\n gte(\n value: ParamPlaceholder | AnyColumnBuilderBase,\n ): BinaryBuilder<ColumnName, ColumnMeta, JsType>;\n lte(\n value: ParamPlaceholder | AnyColumnBuilderBase,\n ): BinaryBuilder<ColumnName, ColumnMeta, JsType>;\n asc(): OrderBuilder<ColumnName, ColumnMeta, JsType>;\n desc(): OrderBuilder<ColumnName, ColumnMeta, JsType>;\n // Helper property for type extraction (not used at runtime)\n readonly __jsType: JsType;\n} & (ColumnMeta['codecId'] extends string\n ? ColumnMeta['codecId'] extends keyof Operations\n ? OperationMethods<\n OperationsForTypeId<ColumnMeta['codecId'] & string, Operations>,\n ColumnName,\n StorageColumn,\n JsType\n >\n : Record<string, never>\n : Record<string, never>);\n\nexport interface BinaryBuilder<\n ColumnName extends string = string,\n ColumnMeta extends StorageColumn = StorageColumn,\n JsType = unknown,\n> {\n readonly kind: 'binary';\n readonly op: BinaryOp;\n readonly left: ColumnBuilder<ColumnName, ColumnMeta, JsType> | OperationExpr;\n readonly right: ParamPlaceholder | AnyColumnBuilderBase;\n}\n\n// Helper aliases for usage sites where the specific column parameters are irrelevant\n// Accepts any ColumnBuilder regardless of its Operations parameter\n// Note: We use `any` here because TypeScript's variance rules don't allow us to express\n// \"any type that extends OperationTypes\" in a way that works for assignment.\n// Contract-specific OperationTypes (e.g., PgVectorOperationTypes) are not assignable\n// to the base OperationTypes in generic parameter position, even though they extend it structurally.\n// Helper type that accepts any ColumnBuilder regardless of its generic parameters\n// This is needed because conditional types in ColumnBuilder create incompatible intersection types\n// when Operations differs, even though structurally they're compatible\nexport type AnyColumnBuilderBase = {\n readonly kind: 'column';\n readonly table: string;\n readonly column: string;\n readonly columnMeta: StorageColumn;\n eq(value: ParamPlaceholder | AnyColumnBuilderBase): AnyBinaryBuilder;\n neq(value: ParamPlaceholder | AnyColumnBuilderBase): AnyBinaryBuilder;\n gt(value: ParamPlaceholder | AnyColumnBuilderBase): AnyBinaryBuilder;\n lt(value: ParamPlaceholder | AnyColumnBuilderBase): AnyBinaryBuilder;\n gte(value: ParamPlaceholder | AnyColumnBuilderBase): AnyBinaryBuilder;\n lte(value: ParamPlaceholder | AnyColumnBuilderBase): AnyBinaryBuilder;\n asc(): AnyOrderBuilder;\n desc(): AnyOrderBuilder;\n readonly __jsType: unknown;\n // Allow any operation methods (from conditional type)\n readonly [key: string]: unknown;\n};\n\nexport type AnyColumnBuilder =\n | ColumnBuilder<\n string,\n StorageColumn,\n unknown,\n // biome-ignore lint/suspicious/noExplicitAny: AnyColumnBuilder must accept column builders with any operation types\n any\n >\n | AnyColumnBuilderBase;\nexport type AnyBinaryBuilder = BinaryBuilder<string, StorageColumn, unknown>;\nexport type AnyOrderBuilder = OrderBuilder<string, StorageColumn, unknown>;\n\nexport function isColumnBuilder(value: unknown): value is AnyColumnBuilder {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'kind' in value &&\n (value as { kind: unknown }).kind === 'column'\n );\n}\n\nexport interface JoinOnBuilder {\n eqCol(left: AnyColumnBuilder, right: AnyColumnBuilder): JoinOnPredicate;\n}\n\nexport interface JoinOnPredicate {\n readonly kind: 'join-on';\n readonly left: AnyColumnBuilder;\n readonly right: AnyColumnBuilder;\n}\n\nexport type Expr = ColumnRef | ParamRef;\n\n/**\n * Helper type to extract codec output type from CodecTypes.\n * Returns never if the codecId is not found in CodecTypes.\n */\ntype ExtractCodecOutputType<\n CodecId extends string,\n CodecTypes extends Record<string, { readonly output: unknown }>,\n> = CodecId extends keyof CodecTypes\n ? CodecTypes[CodecId] extends { readonly output: infer Output }\n ? Output\n : never\n : never;\n\n/**\n * Type-level operation signature.\n * Represents an operation at the type level, similar to OperationSignature at runtime.\n */\nexport type OperationTypeSignature = {\n readonly args: ReadonlyArray<ArgSpec>;\n readonly returns: ReturnSpec;\n readonly lowering: SqlLoweringSpec;\n readonly capabilities?: ReadonlyArray<string>;\n};\n\n/**\n * Type-level operation registry.\n * Maps typeId → operations, where operations is a record of method name → operation signature.\n *\n * Example:\n * ```typescript\n * type MyOperations: OperationTypes = {\n * 'pg/vector@1': {\n * cosineDistance: {\n * args: [{ kind: 'typeId'; type: 'pg/vector@1' }];\n * returns: { kind: 'builtin'; type: 'number' };\n * lowering: { targetFamily: 'sql'; strategy: 'function'; template: '...' };\n * };\n * };\n * };\n * ```\n */\nexport type OperationTypes = Record<string, Record<string, OperationTypeSignature>>;\n\n/**\n * CodecTypes represents a map of typeId to codec definitions.\n * Each codec definition must have an `output` property indicating the JavaScript type.\n *\n * Example:\n * ```typescript\n * type MyCodecTypes: CodecTypes = {\n * 'pg/int4@1': { output: number };\n * 'pg/text@1': { output: string };\n * };\n * ```\n */\nexport type CodecTypes = Record<string, { readonly output: unknown }>;\n\n/**\n * Extracts operations for a given typeId from the operation registry.\n * Returns an empty record if the typeId is not found.\n *\n * @example\n * ```typescript\n * type Ops = OperationsForTypeId<'pg/vector@1', MyOperations>;\n * // Ops = { cosineDistance: { ... }, l2Distance: { ... } }\n * ```\n */\nexport type OperationsForTypeId<\n TypeId extends string,\n Operations extends OperationTypes,\n> = Operations extends Record<string, never>\n ? Record<string, never>\n : TypeId extends keyof Operations\n ? Operations[TypeId]\n : Record<string, never>;\n\n/**\n * Maps operation signatures to method signatures on ColumnBuilder.\n * Each operation becomes a method that returns a ColumnBuilder or BinaryBuilder\n * based on the return type.\n */\ntype OperationMethods<\n Ops extends Record<string, OperationTypeSignature>,\n ColumnName extends string,\n ColumnMeta extends StorageColumn,\n JsType,\n> = {\n [K in keyof Ops]: Ops[K] extends OperationTypeSignature\n ? (\n ...args: OperationArgs<Ops[K]['args']>\n ) => OperationReturn<Ops[K]['returns'], ColumnName, ColumnMeta, JsType>\n : never;\n};\n\n/**\n * Maps operation argument specs to TypeScript argument types.\n * - typeId args: ColumnBuilder (accepts base columns or operation results)\n * - param args: ParamPlaceholder\n * - literal args: unknown (could be more specific in future)\n */\ntype OperationArgs<Args extends ReadonlyArray<ArgSpec>> = Args extends readonly [\n infer First,\n ...infer Rest,\n]\n ? First extends ArgSpec\n ? [ArgToType<First>, ...(Rest extends ReadonlyArray<ArgSpec> ? OperationArgs<Rest> : [])]\n : []\n : [];\n\ntype ArgToType<Arg extends ArgSpec> = Arg extends { kind: 'typeId' }\n ? AnyColumnBuilder\n : Arg extends { kind: 'param' }\n ? ParamPlaceholder\n : Arg extends { kind: 'literal' }\n ? unknown\n : never;\n\n/**\n * Maps operation return spec to return type.\n * - builtin types: ColumnBuilder with appropriate JsType (matches runtime behavior)\n * - typeId types: ColumnBuilder (for now, could be more specific in future)\n */\ntype OperationReturn<\n Returns extends ReturnSpec,\n ColumnName extends string,\n ColumnMeta extends StorageColumn,\n _JsType,\n> = Returns extends { kind: 'builtin'; type: infer T }\n ? T extends 'number'\n ? ColumnBuilder<ColumnName, ColumnMeta, number>\n : T extends 'boolean'\n ? ColumnBuilder<ColumnName, ColumnMeta, boolean>\n : T extends 'string'\n ? ColumnBuilder<ColumnName, ColumnMeta, string>\n : ColumnBuilder<ColumnName, ColumnMeta, unknown>\n : Returns extends { kind: 'typeId' }\n ? AnyColumnBuilder\n : ColumnBuilder<ColumnName, ColumnMeta, unknown>;\n\n/**\n * Computes JavaScript type for a column at column creation time.\n *\n * Type inference:\n * - Read columnMeta.codecId as typeId string literal\n * - Look up CodecTypes[typeId].output\n * - Apply nullability: nullable ? Output | null : Output\n */\ntype ColumnMetaTypeId<ColumnMeta> = ColumnMeta extends { codecId: infer CodecId extends string }\n ? CodecId\n : ColumnMeta extends { type: infer TypeId extends string }\n ? TypeId\n : never;\n\nexport type ComputeColumnJsType<\n _Contract extends SqlContract<SqlStorage>,\n _TableName extends string,\n _ColumnName extends string,\n ColumnMeta extends StorageColumn,\n CodecTypes extends Record<string, { readonly output: unknown }>,\n> = ColumnMeta extends { nullable: infer Nullable }\n ? ColumnMetaTypeId<ColumnMeta> extends infer TypeId\n ? TypeId extends string\n ? ExtractCodecOutputType<TypeId, CodecTypes> extends infer CodecOutput\n ? [CodecOutput] extends [never]\n ? unknown // Codec not found in CodecTypes\n : Nullable extends true\n ? CodecOutput | null\n : CodecOutput\n : unknown\n : unknown\n : unknown\n : unknown;\n\n/**\n * Infers Row type from a projection object.\n * Maps Record<string, ColumnBuilder> to Record<string, JSType>\n *\n * Extracts the pre-computed JsType from each ColumnBuilder in the projection.\n */\n/**\n * Extracts the inferred JsType carried by a ColumnBuilder.\n */\ntype ExtractJsTypeFromColumnBuilder<CB extends AnyColumnBuilder> =\n CB extends ColumnBuilder<\n infer _ColumnName extends string,\n infer _ColumnMeta extends StorageColumn,\n infer JsType,\n infer _Ops\n >\n ? JsType\n : never;\n\nexport type InferProjectionRow<P extends Record<string, AnyColumnBuilder>> = {\n [K in keyof P]: ExtractJsTypeFromColumnBuilder<P[K]>;\n};\n\n/**\n * Nested projection type - allows recursive nesting of ColumnBuilder or nested objects.\n */\nexport type NestedProjection = Record<\n string,\n | AnyColumnBuilder\n | Record<\n string,\n | AnyColumnBuilder\n | Record<\n string,\n AnyColumnBuilder | Record<string, AnyColumnBuilder | Record<string, AnyColumnBuilder>>\n >\n >\n>;\n\n/**\n * Helper type to extract include type from Includes map.\n * Returns the value type if K is a key of Includes, otherwise returns unknown.\n */\ntype ExtractIncludeType<\n K extends string,\n Includes extends Record<string, unknown>,\n> = K extends keyof Includes ? Includes[K] : unknown;\n\n/**\n * Infers Row type from a nested projection object.\n * Recursively maps Record<string, ColumnBuilder | boolean | NestedProjection> to nested object types.\n *\n * Extracts the pre-computed JsType from each ColumnBuilder at leaves.\n * When a value is `true`, it represents an include reference and infers `Array<ChildShape>`\n * by looking up the include alias in the Includes type map.\n */\nexport type InferNestedProjectionRow<\n P extends Record<string, AnyColumnBuilder | boolean | NestedProjection>,\n CodecTypes extends Record<string, { readonly output: unknown }> = Record<string, never>,\n Includes extends Record<string, unknown> = Record<string, never>,\n> = {\n [K in keyof P]: P[K] extends AnyColumnBuilder\n ? ExtractJsTypeFromColumnBuilder<P[K]>\n : P[K] extends true\n ? Array<ExtractIncludeType<K & string, Includes>> // Include reference - infers Array<ChildShape> from Includes map\n : P[K] extends NestedProjection\n ? InferNestedProjectionRow<P[K], CodecTypes, Includes>\n : never;\n};\n\n/**\n * Infers Row type from a tuple of ColumnBuilders used in returning() clause.\n * Extracts column name and JsType from each ColumnBuilder and creates a Record.\n */\nexport type InferReturningRow<Columns extends readonly AnyColumnBuilder[]> =\n Columns extends readonly [infer First, ...infer Rest]\n ? First extends ColumnBuilder<\n infer Name,\n infer _Meta,\n infer JsType,\n infer _Ops extends OperationTypes\n >\n ? Name extends string\n ? Rest extends readonly AnyColumnBuilder[]\n ? { [K in Name]: JsType } & InferReturningRow<Rest>\n : { [K in Name]: JsType }\n : never\n : never\n : Record<string, never>;\n\n/**\n * Utility type to check if a contract has the required capabilities for includeMany.\n * Requires both `lateral` and `jsonAgg` to be `true` in the contract's capabilities for the target.\n * Capabilities are nested by target: `{ [target]: { lateral: true, jsonAgg: true } }`\n */\nexport type HasIncludeManyCapabilities<TContract extends SqlContract<SqlStorage>> =\n TContract extends { capabilities: infer C; target: infer T }\n ? T extends string\n ? C extends Record<string, Record<string, boolean>>\n ? C extends { [K in T]: infer TargetCaps }\n ? TargetCaps extends { lateral: true; jsonAgg: true }\n ? true\n : false\n : false\n : false\n : false\n : false;\n\n/**\n * SQL-specific Plan type that refines the ast field to use QueryAst.\n * This is the type used by SQL query builders.\n */\nexport type SqlPlan<Row = unknown> = ExecutionPlan<Row, QueryAst>;\n\n/**\n * Helper types for extracting contract structure.\n */\nexport type TablesOf<TContract> = TContract extends {\n storage: { tables: infer U };\n}\n ? U\n : never;\n\nexport type TableKey<TContract> = Extract<keyof TablesOf<TContract>, string>;\n\n// Common types for contract.d.ts generation (SQL-specific)\n// These types are used by emitted contract.d.ts files to provide type-safe DSL/ORM types\n\n/**\n * Unique symbol for metadata property to avoid collisions with user-defined properties\n */\nexport declare const META: unique symbol;\n\n/**\n * Extracts metadata from a type that has a META property\n */\nexport type Meta<T extends { [META]: unknown }> = T[typeof META];\n\n/**\n * Metadata interface for table definitions\n */\nexport interface TableMetadata<Name extends string> {\n name: Name;\n}\n\n/**\n * Metadata interface for model definitions\n */\nexport interface ModelMetadata<Name extends string> {\n name: Name;\n}\n\n/**\n * Base interface for table definitions with metadata\n * Used in contract.d.ts to define storage-level table types\n */\nexport interface TableDef<Name extends string> {\n readonly [META]: TableMetadata<Name>;\n}\n\n/**\n * Base interface for model definitions with metadata\n * Used in contract.d.ts to define application-level model types\n */\nexport interface ModelDef<Name extends string> {\n readonly [META]: ModelMetadata<Name>;\n}\n\nexport type ColumnsOf<\n TContract,\n K extends TableKey<TContract>,\n> = K extends keyof TablesOf<TContract>\n ? TablesOf<TContract>[K] extends { columns: infer C }\n ? C\n : never\n : never;\n\nexport interface RawTemplateOptions {\n readonly refs?: PlanRefs;\n readonly annotations?: Record<string, unknown>;\n readonly projection?: ReadonlyArray<string>;\n}\n\nexport interface RawFunctionOptions extends RawTemplateOptions {\n readonly params: ReadonlyArray<unknown>;\n}\n\nexport type RawTemplateFactory = (\n strings: TemplateStringsArray,\n ...values: readonly unknown[]\n) => ExecutionPlan;\n\nexport interface RawFactory extends RawTemplateFactory {\n (text: string, options: RawFunctionOptions): ExecutionPlan;\n with(options: RawTemplateOptions): RawTemplateFactory;\n}\n\nexport type { RuntimeError } from '@prisma-next/plan';\n\nexport interface BuildParamsMap {\n readonly [name: string]: unknown;\n}\n\nexport interface BuildOptions {\n readonly params?: BuildParamsMap;\n}\n\nexport interface SqlBuilderOptions<\n TContract extends SqlContract<SqlStorage> = SqlContract<SqlStorage>,\n> {\n readonly context: QueryLaneContext<TContract>;\n}\n\n/**\n * SQL-specific ResultType that works with both Plan and SqlQueryPlan.\n * This extends the core ResultType to also handle SqlQueryPlan.\n * Example: `type Row = ResultType<typeof plan>`\n */\nexport type ResultType<P> = P extends SqlQueryPlan<infer R> ? R : CoreResultType<P>;\n"],"mappings":";AAqCO,SAAS,mBACd,MACA,KACiB;AACjB,SAAO,EAAE,MAAM,SAAS,MAAM,IAAI;AACpC;AA6FO,SAAS,gBAAgB,OAA2C;AACzE,SACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACT,MAA4B,SAAS;AAE1C;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isColumnBuilder
3
- } from "./chunk-JCRSME6F.js";
3
+ } from "./chunk-D4JLPIWO.js";
4
4
 
5
5
  // src/ast/codec-types.ts
6
6
  var CodecRegistryImpl = class {
@@ -317,4 +317,4 @@ export {
317
317
  isOperationExpr,
318
318
  createUpdateAst
319
319
  };
320
- //# sourceMappingURL=chunk-VJ573XBL.js.map
320
+ //# sourceMappingURL=chunk-J6O2HVBM.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-M23L3JHG.js";
4
4
  import {
5
5
  isColumnBuilder
6
- } from "./chunk-JCRSME6F.js";
6
+ } from "./chunk-D4JLPIWO.js";
7
7
 
8
8
  // src/schema.ts
9
9
  import { planInvalid } from "@prisma-next/plan";
@@ -149,4 +149,4 @@ export {
149
149
  TableBuilderImpl,
150
150
  schema
151
151
  };
152
- //# sourceMappingURL=chunk-OPFI7UIT.js.map
152
+ //# sourceMappingURL=chunk-U7IAFPVU.js.map
@@ -19,8 +19,8 @@ import {
19
19
  createUpdateAst,
20
20
  defineCodecs,
21
21
  isOperationExpr
22
- } from "../chunk-VJ573XBL.js";
23
- import "../chunk-JCRSME6F.js";
22
+ } from "../chunk-J6O2HVBM.js";
23
+ import "../chunk-D4JLPIWO.js";
24
24
  export {
25
25
  codec,
26
26
  compact,
@@ -2,10 +2,10 @@ import {
2
2
  ColumnBuilderImpl,
3
3
  TableBuilderImpl,
4
4
  schema
5
- } from "../chunk-OPFI7UIT.js";
5
+ } from "../chunk-U7IAFPVU.js";
6
6
  import "../chunk-M23L3JHG.js";
7
7
  import "../chunk-5N34PNVZ.js";
8
- import "../chunk-JCRSME6F.js";
8
+ import "../chunk-D4JLPIWO.js";
9
9
  export {
10
10
  ColumnBuilderImpl,
11
11
  TableBuilderImpl,
@@ -2,7 +2,7 @@ import "../chunk-36WJWNHT.js";
2
2
  import {
3
3
  createOrderBuilder,
4
4
  isColumnBuilder
5
- } from "../chunk-JCRSME6F.js";
5
+ } from "../chunk-D4JLPIWO.js";
6
6
  export {
7
7
  createOrderBuilder,
8
8
  isColumnBuilder
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  ColumnBuilderImpl,
4
4
  TableBuilderImpl,
5
5
  schema
6
- } from "./chunk-OPFI7UIT.js";
6
+ } from "./chunk-U7IAFPVU.js";
7
7
  import {
8
8
  param
9
9
  } from "./chunk-7I3EMQID.js";
@@ -38,11 +38,11 @@ import {
38
38
  createUpdateAst,
39
39
  defineCodecs,
40
40
  isOperationExpr
41
- } from "./chunk-VJ573XBL.js";
41
+ } from "./chunk-J6O2HVBM.js";
42
42
  import {
43
43
  createOrderBuilder,
44
44
  isColumnBuilder
45
- } from "./chunk-JCRSME6F.js";
45
+ } from "./chunk-D4JLPIWO.js";
46
46
  import {
47
47
  augmentDescriptorWithColumnMeta
48
48
  } from "./chunk-KYSP7L5C.js";
package/dist/types.d.ts CHANGED
@@ -175,9 +175,8 @@ type OperationReturn<Returns extends ReturnSpec, ColumnName extends string, Colu
175
175
  * Computes JavaScript type for a column at column creation time.
176
176
  *
177
177
  * Type inference:
178
- * - For enum columns (codecId: 'pg/enum@1'): look up nativeType in Contract['storage']['enums']
179
- * and return the union of enum values
180
- * - For other columns: look up CodecTypes[codecId].output
178
+ * - Read columnMeta.codecId as typeId string literal
179
+ * - Look up CodecTypes[typeId].output
181
180
  * - Apply nullability: nullable ? Output | null : Output
182
181
  */
183
182
  type ColumnMetaTypeId<ColumnMeta> = ColumnMeta extends {
@@ -185,27 +184,11 @@ type ColumnMetaTypeId<ColumnMeta> = ColumnMeta extends {
185
184
  } ? CodecId : ColumnMeta extends {
186
185
  type: infer TypeId extends string;
187
186
  } ? TypeId : never;
188
- /**
189
- * Extract enum values union from contract storage enums.
190
- * Returns the values[number] union type if the enum exists, otherwise never.
191
- */
192
- type ExtractEnumJsType<Contract extends SqlContract<SqlStorage>, NativeType extends string> = Contract['storage'] extends {
193
- enums: infer Enums;
194
- } ? Enums extends Record<string, {
195
- values: readonly string[];
196
- }> ? NativeType extends keyof Enums ? Enums[NativeType]['values'][number] : never : never : never;
197
- /**
198
- * Check if a column is an enum column (uses pg/enum@1 codec).
199
- */
200
- type IsEnumColumn<ColumnMeta extends StorageColumn> = ColumnMeta extends {
201
- codecId: 'pg/enum@1';
202
- } ? true : false;
203
- export type ComputeColumnJsType<Contract extends SqlContract<SqlStorage>, _TableName extends string, _ColumnName extends string, ColumnMeta extends StorageColumn, CodecTypes extends Record<string, {
187
+ export type ComputeColumnJsType<_Contract extends SqlContract<SqlStorage>, _TableName extends string, _ColumnName extends string, ColumnMeta extends StorageColumn, CodecTypes extends Record<string, {
204
188
  readonly output: unknown;
205
189
  }>> = ColumnMeta extends {
206
190
  nullable: infer Nullable;
207
- nativeType: infer NativeType;
208
- } ? IsEnumColumn<ColumnMeta> extends true ? NativeType extends string ? ExtractEnumJsType<Contract, NativeType> extends infer EnumType ? [EnumType] extends [never] ? string : Nullable extends true ? EnumType | null : EnumType : string : string : 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;
191
+ } ? 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;
209
192
  /**
210
193
  * Infers Row type from a projection object.
211
194
  * Maps Record<string, ColumnBuilder> to Record<string, JSType>
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "@prisma-next/sql-relational-core",
3
- "version": "0.3.0-pr.90.2",
3
+ "version": "0.3.0-pr.91.1",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "description": "Schema and column builders, operation attachment, and AST types for Prisma Next",
7
7
  "dependencies": {
8
8
  "ts-toolbelt": "^9.6.0",
9
- "@prisma-next/contract": "0.3.0-pr.90.2",
10
- "@prisma-next/operations": "0.3.0-pr.90.2",
11
- "@prisma-next/plan": "0.3.0-pr.90.2",
12
- "@prisma-next/sql-contract": "0.3.0-pr.90.2",
13
- "@prisma-next/sql-operations": "0.3.0-pr.90.2"
9
+ "@prisma-next/contract": "0.3.0-pr.91.1",
10
+ "@prisma-next/operations": "0.3.0-pr.91.1",
11
+ "@prisma-next/plan": "0.3.0-pr.91.1",
12
+ "@prisma-next/sql-contract": "0.3.0-pr.91.1",
13
+ "@prisma-next/sql-operations": "0.3.0-pr.91.1"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@vitest/coverage-v8": "4.0.16",
17
17
  "tsup": "8.5.1",
18
18
  "typescript": "5.9.3",
19
19
  "vitest": "4.0.16",
20
- "@prisma-next/sql-contract-ts": "0.3.0-pr.90.2",
20
+ "@prisma-next/sql-contract-ts": "0.3.0-pr.91.1",
21
21
  "@prisma-next/test-utils": "0.0.1"
22
22
  },
23
23
  "files": [
@@ -74,6 +74,6 @@
74
74
  "lint": "biome check . --error-on-warnings",
75
75
  "lint:fix": "biome check --write .",
76
76
  "lint:fix:unsafe": "biome check --write --unsafe .",
77
- "clean": "node ../../../../scripts/clean.mjs"
77
+ "clean": "rm -rf dist coverage .tmp-output"
78
78
  }
79
79
  }
package/src/types.ts CHANGED
@@ -297,9 +297,8 @@ type OperationReturn<
297
297
  * Computes JavaScript type for a column at column creation time.
298
298
  *
299
299
  * Type inference:
300
- * - For enum columns (codecId: 'pg/enum@1'): look up nativeType in Contract['storage']['enums']
301
- * and return the union of enum values
302
- * - For other columns: look up CodecTypes[codecId].output
300
+ * - Read columnMeta.codecId as typeId string literal
301
+ * - Look up CodecTypes[typeId].output
303
302
  * - Apply nullability: nullable ? Output | null : Output
304
303
  */
305
304
  type ColumnMetaTypeId<ColumnMeta> = ColumnMeta extends { codecId: infer CodecId extends string }
@@ -308,58 +307,24 @@ type ColumnMetaTypeId<ColumnMeta> = ColumnMeta extends { codecId: infer CodecId
308
307
  ? TypeId
309
308
  : never;
310
309
 
311
- /**
312
- * Extract enum values union from contract storage enums.
313
- * Returns the values[number] union type if the enum exists, otherwise never.
314
- */
315
- type ExtractEnumJsType<
316
- Contract extends SqlContract<SqlStorage>,
317
- NativeType extends string,
318
- > = Contract['storage'] extends { enums: infer Enums }
319
- ? Enums extends Record<string, { values: readonly string[] }>
320
- ? NativeType extends keyof Enums
321
- ? Enums[NativeType]['values'][number]
322
- : never
323
- : never
324
- : never;
325
-
326
- /**
327
- * Check if a column is an enum column (uses pg/enum@1 codec).
328
- */
329
- type IsEnumColumn<ColumnMeta extends StorageColumn> = ColumnMeta extends {
330
- codecId: 'pg/enum@1';
331
- }
332
- ? true
333
- : false;
334
-
335
310
  export type ComputeColumnJsType<
336
- Contract extends SqlContract<SqlStorage>,
311
+ _Contract extends SqlContract<SqlStorage>,
337
312
  _TableName extends string,
338
313
  _ColumnName extends string,
339
314
  ColumnMeta extends StorageColumn,
340
315
  CodecTypes extends Record<string, { readonly output: unknown }>,
341
- > = ColumnMeta extends { nullable: infer Nullable; nativeType: infer NativeType }
342
- ? IsEnumColumn<ColumnMeta> extends true
343
- ? NativeType extends string
344
- ? ExtractEnumJsType<Contract, NativeType> extends infer EnumType
345
- ? [EnumType] extends [never]
346
- ? string // Fallback to string if enum not found in contract
316
+ > = ColumnMeta extends { nullable: infer Nullable }
317
+ ? ColumnMetaTypeId<ColumnMeta> extends infer TypeId
318
+ ? TypeId extends string
319
+ ? ExtractCodecOutputType<TypeId, CodecTypes> extends infer CodecOutput
320
+ ? [CodecOutput] extends [never]
321
+ ? unknown // Codec not found in CodecTypes
347
322
  : Nullable extends true
348
- ? EnumType | null
349
- : EnumType
350
- : string
351
- : string
352
- : ColumnMetaTypeId<ColumnMeta> extends infer TypeId
353
- ? TypeId extends string
354
- ? ExtractCodecOutputType<TypeId, CodecTypes> extends infer CodecOutput
355
- ? [CodecOutput] extends [never]
356
- ? unknown // Codec not found in CodecTypes
357
- : Nullable extends true
358
- ? CodecOutput | null
359
- : CodecOutput
360
- : unknown
323
+ ? CodecOutput | null
324
+ : CodecOutput
361
325
  : unknown
362
326
  : unknown
327
+ : unknown
363
328
  : unknown;
364
329
 
365
330
  /**
@@ -371,14 +336,15 @@ export type ComputeColumnJsType<
371
336
  /**
372
337
  * Extracts the inferred JsType carried by a ColumnBuilder.
373
338
  */
374
- type ExtractJsTypeFromColumnBuilder<CB extends AnyColumnBuilder> = CB extends ColumnBuilder<
375
- infer _ColumnName extends string,
376
- infer _ColumnMeta extends StorageColumn,
377
- infer JsType,
378
- infer _Ops
379
- >
380
- ? JsType
381
- : never;
339
+ type ExtractJsTypeFromColumnBuilder<CB extends AnyColumnBuilder> =
340
+ CB extends ColumnBuilder<
341
+ infer _ColumnName extends string,
342
+ infer _ColumnMeta extends StorageColumn,
343
+ infer JsType,
344
+ infer _Ops
345
+ >
346
+ ? JsType
347
+ : never;
382
348
 
383
349
  export type InferProjectionRow<P extends Record<string, AnyColumnBuilder>> = {
384
350
  [K in keyof P]: ExtractJsTypeFromColumnBuilder<P[K]>;