@prisma-next/sql-relational-core 0.13.0-dev.4 → 0.13.0-dev.40
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/{ddl-types-D3vlEjMA.d.mts → ddl-types-BVO002FS.d.mts} +6 -2
- package/dist/ddl-types-BVO002FS.d.mts.map +1 -0
- package/dist/{ddl-types-X9_XHUl0.mjs → ddl-types-DAox2c8w.mjs} +4 -1
- package/dist/ddl-types-DAox2c8w.mjs.map +1 -0
- package/dist/{errors-CPLfzKkw.d.mts → errors-BbatEYjA.d.mts} +2 -2
- package/dist/{errors-CPLfzKkw.d.mts.map → errors-BbatEYjA.d.mts.map} +1 -1
- package/dist/exports/ast.d.mts +11 -3
- package/dist/exports/ast.d.mts.map +1 -1
- package/dist/exports/ast.mjs +3 -3
- package/dist/exports/codec-descriptor-registry.d.mts.map +1 -1
- package/dist/exports/codec-descriptor-registry.mjs +2 -13
- package/dist/exports/codec-descriptor-registry.mjs.map +1 -1
- package/dist/exports/contract-free.d.mts +60 -3
- package/dist/exports/contract-free.d.mts.map +1 -1
- package/dist/exports/contract-free.mjs +123 -3
- package/dist/exports/contract-free.mjs.map +1 -1
- package/dist/exports/errors.d.mts +1 -1
- package/dist/exports/expression.d.mts +1 -1
- package/dist/exports/expression.mjs +1 -1
- package/dist/exports/middleware.d.mts +1 -1
- package/dist/exports/plan.d.mts +2 -2
- package/dist/exports/types.d.mts +3 -3
- package/dist/index.d.mts +9 -9
- package/dist/index.mjs +3 -3
- package/dist/{middleware-BXSFukKU.d.mts → middleware-Dyyo4IP1.d.mts} +2 -2
- package/dist/{middleware-BXSFukKU.d.mts.map → middleware-Dyyo4IP1.d.mts.map} +1 -1
- package/dist/{plan-DObuWSWi.d.mts → plan-DUjdGLY3.d.mts} +2 -2
- package/dist/{plan-DObuWSWi.d.mts.map → plan-DUjdGLY3.d.mts.map} +1 -1
- package/dist/{sql-execution-plan-JwVeAzXt.d.mts → sql-execution-plan-DjMEAjKK.d.mts} +2 -2
- package/dist/{sql-execution-plan-JwVeAzXt.d.mts.map → sql-execution-plan-DjMEAjKK.d.mts.map} +1 -1
- package/dist/types-BQ_zfC-S.d.mts +233 -0
- package/dist/types-BQ_zfC-S.d.mts.map +1 -0
- package/dist/{types-LGikJRYV.d.mts → types-CUHnDsdV.d.mts} +3 -3
- package/dist/{types-LGikJRYV.d.mts.map → types-CUHnDsdV.d.mts.map} +1 -1
- package/dist/{types-BbGUx5Bi.d.mts → types-DQrmgP8Y.d.mts} +17 -5
- package/dist/{types-BbGUx5Bi.d.mts.map → types-DQrmgP8Y.d.mts.map} +1 -1
- package/dist/{types-D72v8s92.mjs → types-lJUc6cY-.mjs} +78 -18
- package/dist/types-lJUc6cY-.mjs.map +1 -0
- package/package.json +11 -11
- package/src/ast/ddl-types.ts +5 -0
- package/src/ast/driver-types.ts +8 -0
- package/src/ast/types.ts +98 -19
- package/src/codec-ref-for-column.ts +2 -35
- package/src/contract-free/column.ts +2 -0
- package/src/contract-free/dml.ts +5 -0
- package/src/contract-free/table.ts +191 -1
- package/src/exports/contract-free.ts +5 -0
- package/src/types.ts +134 -22
- package/dist/ddl-types-D3vlEjMA.d.mts.map +0 -1
- package/dist/ddl-types-X9_XHUl0.mjs.map +0 -1
- package/dist/types-CQVke4QO.d.mts +0 -181
- package/dist/types-CQVke4QO.d.mts.map +0 -1
- package/dist/types-D72v8s92.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-free.mjs","names":[],"sources":["../../src/contract-free/column.ts","../../src/contract-free/table.ts"],"sourcesContent":["import type { ColumnDefaultLiteralInputValue } from '@prisma-next/contract/types';\nimport type { ReferentialAction } from '@prisma-next/sql-contract/types';\nimport type { AnyDdlColumnDefault } from '../ast/ddl-types';\nimport {\n DdlColumn,\n ForeignKeyConstraint,\n FunctionColumnDefault,\n LiteralColumnDefault,\n PrimaryKeyConstraint,\n UniqueConstraint,\n} from '../ast/ddl-types';\n\nexport interface DdlColumnOptions {\n readonly notNull?: boolean;\n readonly primaryKey?: boolean;\n readonly default?: AnyDdlColumnDefault;\n}\n\nexport function lit(value: ColumnDefaultLiteralInputValue): LiteralColumnDefault {\n return new LiteralColumnDefault(value);\n}\n\nexport function fn(expression: string): FunctionColumnDefault {\n return new FunctionColumnDefault(expression);\n}\n\nexport function col(name: string, type: string, options?: DdlColumnOptions): DdlColumn {\n return new DdlColumn({ name, type, ...options });\n}\n\nexport function primaryKey(\n columns: readonly string[],\n options?: { readonly name?: string },\n): PrimaryKeyConstraint {\n return new PrimaryKeyConstraint({ columns, ...options });\n}\n\nexport function foreignKey(\n columns: readonly string[],\n refTable: string,\n refColumns: readonly string[],\n options?: {\n readonly name?: string;\n readonly onDelete?: ReferentialAction;\n readonly onUpdate?: ReferentialAction;\n },\n): ForeignKeyConstraint {\n return new ForeignKeyConstraint({ columns, refTable, refColumns, ...options });\n}\n\nexport function unique(\n columns: readonly string[],\n options?: { readonly name?: string },\n): UniqueConstraint {\n return new UniqueConstraint({ columns, ...options });\n}\n","import { blindCast } from '@prisma-next/utils/casts';\nimport {\n AndExpr,\n type AnyExpression,\n BinaryExpr,\n ColumnRef,\n InsertAst,\n InsertOnConflict,\n type InsertValue,\n NullCheckExpr,\n OrderByItem,\n OrExpr,\n ParamRef,\n ProjectionItem,\n SelectAst,\n type TableSource,\n UpdateAst,\n} from '../ast/types';\n\nexport interface ColumnDescriptor {\n readonly codecId: string;\n readonly nullable: boolean;\n}\n\nexport type ColumnSchema = Record<string, ColumnDescriptor>;\n\n/**\n * A composable WHERE / ON expression. Wraps an `AnyExpression` and exposes\n * fluent boolean combinators, mirroring the spirit of `sql-builder`'s\n * `Expression` interface without the contract-bound type machinery.\n */\nexport class CfExpr {\n constructor(readonly ast: AnyExpression) {}\n\n and(other: CfExpr): CfExpr {\n return new CfExpr(AndExpr.of([this.ast, other.ast]));\n }\n\n or(other: CfExpr): CfExpr {\n return new CfExpr(OrExpr.of([this.ast, other.ast]));\n }\n\n not(): CfExpr {\n return new CfExpr(this.ast.not());\n }\n}\n\n/**\n * Per-column authoring handle exposed as a keyed property on a {@link TableHandle}.\n * Carries codec metadata baked at declaration time so no codec ID, table name, or\n * column name needs to be repeated at the call site.\n */\nexport interface ColumnProxy {\n readonly codecId: string;\n readonly nullable: boolean;\n readonly columnName: string;\n readonly tableName: string;\n eq(value: unknown): CfExpr;\n neq(value: unknown): CfExpr;\n isNull(): CfExpr;\n isNotNull(): CfExpr;\n toRef(): ColumnRef;\n toProjectionItem(alias?: string): ProjectionItem;\n}\n\n/**\n * Object passed to the {@link CfConflictClause.doUpdate} callback. Each key\n * resolves to a `ColumnRef` for the corresponding `excluded.<column>`, so the\n * upsert conflict-update branch can copy proposed values without re-binding\n * parameters.\n */\nexport type ExcludedProxy<Schema extends ColumnSchema> = {\n readonly [K in keyof Schema]: ColumnRef;\n};\n\nexport type TableInsertRow<Schema extends ColumnSchema> = {\n readonly [K in keyof Schema]: unknown;\n};\n\nexport type TableSetValues<Schema extends ColumnSchema> = {\n readonly [K in keyof Schema]?: unknown;\n};\n\n/**\n * Fluent authoring handle for a fixed control-plane table. Column proxies are\n * exposed as keyed properties so `handle.columnName.eq(value)` composes without\n * threading codec IDs, table names, or column refs at the call site.\n */\nexport type TableHandle<Schema extends ColumnSchema> = {\n readonly source: TableSource;\n insert(row: TableInsertRow<Schema>): CfInsertQuery<Schema>;\n upsert(row: TableInsertRow<Schema>): CfUpsertBuilder<Schema>;\n update(): CfUpdateQuery<Schema>;\n select(...columns: ReadonlyArray<ColumnProxy>): CfSelectQuery;\n} & {\n readonly [K in keyof Schema]: ColumnProxy;\n};\n\nexport class CfInsertQuery<Schema extends ColumnSchema> {\n constructor(\n private readonly src: TableSource,\n private readonly schema: Schema,\n private readonly rowValues: TableInsertRow<Schema>,\n private readonly returningItems: ReadonlyArray<ProjectionItem> | undefined = undefined,\n ) {}\n\n returning(...columns: ReadonlyArray<ColumnProxy>): CfInsertQuery<Schema> {\n return new CfInsertQuery(\n this.src,\n this.schema,\n this.rowValues,\n columns.map((col) => col.toProjectionItem()),\n );\n }\n\n build(): InsertAst {\n const row = buildInsertRow(this.schema, this.rowValues);\n const ast = InsertAst.into(this.src).withRows([row]);\n return this.returningItems ? ast.withReturning(this.returningItems) : ast;\n }\n}\n\nexport class CfUpsertBuilder<Schema extends ColumnSchema> {\n constructor(\n private readonly src: TableSource,\n private readonly schema: Schema,\n private readonly rowValues: TableInsertRow<Schema>,\n ) {}\n\n onConflict(...columns: ReadonlyArray<ColumnProxy>): CfConflictClause<Schema> {\n return new CfConflictClause(this.src, this.schema, this.rowValues, [...columns]);\n }\n}\n\nexport class CfConflictClause<Schema extends ColumnSchema> {\n constructor(\n private readonly src: TableSource,\n private readonly schema: Schema,\n private readonly rowValues: TableInsertRow<Schema>,\n private readonly conflictCols: ReadonlyArray<ColumnProxy>,\n ) {}\n\n doUpdate(\n setOrCallback:\n | TableSetValues<Schema>\n | ((excluded: ExcludedProxy<Schema>) => TableSetValues<Schema>),\n ): CfUpsertQuery<Schema> {\n const set =\n typeof setOrCallback === 'function'\n ? setOrCallback(buildExcludedProxy(this.schema))\n : setOrCallback;\n return new CfUpsertQuery(this.src, this.schema, this.rowValues, this.conflictCols, set);\n }\n\n doNothing(): CfUpsertQuery<Schema> {\n return new CfUpsertQuery(this.src, this.schema, this.rowValues, this.conflictCols, undefined);\n }\n}\n\nexport class CfUpsertQuery<Schema extends ColumnSchema> {\n constructor(\n private readonly src: TableSource,\n private readonly schema: Schema,\n private readonly rowValues: TableInsertRow<Schema>,\n private readonly conflictCols: ReadonlyArray<ColumnProxy>,\n private readonly updateSet: TableSetValues<Schema> | undefined,\n ) {}\n\n build(): InsertAst {\n const row = buildInsertRow(this.schema, this.rowValues);\n const conflictRefs = this.conflictCols.map((col) => col.toRef());\n const onConflict =\n this.updateSet === undefined\n ? InsertOnConflict.on(conflictRefs).doNothing()\n : InsertOnConflict.on(conflictRefs).doUpdateSet(buildSetMap(this.schema, this.updateSet));\n return InsertAst.into(this.src).withRows([row]).withOnConflict(onConflict);\n }\n}\n\nexport class CfUpdateQuery<Schema extends ColumnSchema> {\n constructor(\n private readonly src: TableSource,\n private readonly schema: Schema,\n private readonly setValues: TableSetValues<Schema> | undefined = undefined,\n private readonly whereExpr: CfExpr | undefined = undefined,\n private readonly returningItems: ReadonlyArray<ProjectionItem> | undefined = undefined,\n ) {}\n\n set(values: TableSetValues<Schema>): CfUpdateQuery<Schema> {\n return new CfUpdateQuery(this.src, this.schema, values, this.whereExpr, this.returningItems);\n }\n\n where(expr: CfExpr): CfUpdateQuery<Schema> {\n return new CfUpdateQuery(this.src, this.schema, this.setValues, expr, this.returningItems);\n }\n\n returning(...columns: ReadonlyArray<ColumnProxy>): CfUpdateQuery<Schema> {\n return new CfUpdateQuery(\n this.src,\n this.schema,\n this.setValues,\n this.whereExpr,\n columns.map((col) => col.toProjectionItem()),\n );\n }\n\n build(): UpdateAst {\n const set = buildSetMap(this.schema, this.setValues);\n const base = UpdateAst.table(this.src).withSet(set);\n const withWhere = this.whereExpr ? base.withWhere(this.whereExpr.ast) : base;\n return this.returningItems ? withWhere.withReturning(this.returningItems) : withWhere;\n }\n}\n\nexport class CfSelectQuery {\n constructor(\n private readonly src: TableSource,\n private readonly projectionItems: ReadonlyArray<ProjectionItem>,\n private readonly whereExpr: CfExpr | undefined = undefined,\n private readonly orderByItems: ReadonlyArray<OrderByItem> = [],\n ) {}\n\n where(expr: CfExpr): CfSelectQuery {\n return new CfSelectQuery(this.src, this.projectionItems, expr, this.orderByItems);\n }\n\n orderBy(column: ColumnProxy, dir: 'asc' | 'desc' = 'asc'): CfSelectQuery {\n const item = dir === 'asc' ? OrderByItem.asc(column.toRef()) : OrderByItem.desc(column.toRef());\n return new CfSelectQuery(this.src, this.projectionItems, this.whereExpr, [\n ...this.orderByItems,\n item,\n ]);\n }\n\n build(): SelectAst {\n const base = SelectAst.from(this.src).withProjection(this.projectionItems);\n const withWhere = this.whereExpr ? base.withWhere(this.whereExpr.ast) : base;\n return this.orderByItems.length > 0 ? withWhere.withOrderBy(this.orderByItems) : withWhere;\n }\n}\n\n/**\n * Declare a control-plane table once, binding column codecs at declaration time.\n * Returns a `TableHandle` whose column properties compose expressions directly\n * without per-call-site codec or column-name threading.\n *\n * ```ts\n * const marker = pgTable({ name: 'marker', schema: 'prisma_contract' }, {\n * space: text(),\n * core_hash: text(),\n * updated_at: timestamptz(),\n * });\n *\n * const query = marker.update()\n * .set({ core_hash: newHash, updated_at: NOW })\n * .where(marker.space.eq(space).and(marker.core_hash.eq(expectedFrom)))\n * .returning(marker.space)\n * .build();\n * ```\n */\nexport function table<Schema extends ColumnSchema>(\n source: TableSource,\n schema: Schema,\n): TableHandle<Schema> {\n const proxies: Record<string, ColumnProxy> = {};\n for (const [col, desc] of Object.entries(schema)) {\n proxies[col] = makeColumnProxy(source.alias ?? source.name, col, desc);\n }\n\n const handle = {\n ...proxies,\n source,\n insert: (row: TableInsertRow<Schema>) => new CfInsertQuery(source, schema, row),\n upsert: (row: TableInsertRow<Schema>) => new CfUpsertBuilder(source, schema, row),\n update: () => new CfUpdateQuery(source, schema),\n select: (...cols: ReadonlyArray<ColumnProxy>) =>\n new CfSelectQuery(\n source,\n cols.map((col) => col.toProjectionItem()),\n ),\n };\n\n return blindCast<\n TableHandle<Schema>,\n 'Column proxies are dynamically built from Schema keys — TypeScript cannot verify the per-key ColumnProxy constraint at the spread call site. Construction is correct by construction: every key maps to makeColumnProxy(source.name, key, schema[key]).'\n >(handle);\n}\n\nfunction makeColumnProxy(\n tableName: string,\n columnName: string,\n desc: ColumnDescriptor,\n): ColumnProxy {\n const ref = ColumnRef.of(tableName, columnName);\n return {\n codecId: desc.codecId,\n nullable: desc.nullable,\n columnName,\n tableName,\n eq: (value) =>\n value === null\n ? new CfExpr(NullCheckExpr.isNull(ref))\n : new CfExpr(BinaryExpr.eq(ref, toSetExpression(value, desc))),\n neq: (value) =>\n value === null\n ? new CfExpr(NullCheckExpr.isNotNull(ref))\n : new CfExpr(BinaryExpr.neq(ref, toSetExpression(value, desc))),\n isNull: () => new CfExpr(NullCheckExpr.isNull(ref)),\n isNotNull: () => new CfExpr(NullCheckExpr.isNotNull(ref)),\n toRef: () => ref,\n toProjectionItem: (alias = columnName) =>\n ProjectionItem.of(alias, ref, { codecId: desc.codecId }),\n };\n}\n\nfunction buildExcludedProxy<Schema extends ColumnSchema>(schema: Schema): ExcludedProxy<Schema> {\n return blindCast<\n ExcludedProxy<Schema>,\n 'Object.fromEntries cannot preserve per-key ColumnRef types — correct by construction: every key maps to ColumnRef.of(\"excluded\", key).'\n >(Object.fromEntries(Object.keys(schema).map((col) => [col, ColumnRef.of('excluded', col)])));\n}\n\nfunction isExpressionSource(value: unknown): value is { toExpr(): AnyExpression } {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'toExpr' in value &&\n typeof value.toExpr === 'function'\n );\n}\n\nfunction toInsertValue(value: unknown, desc: ColumnDescriptor): InsertValue {\n if (isExpressionSource(value)) {\n const expr = value.toExpr();\n if (\n expr.kind === 'column-ref' ||\n expr.kind === 'param-ref' ||\n expr.kind === 'prepared-param-ref' ||\n expr.kind === 'raw-expr'\n ) {\n return expr;\n }\n }\n return ParamRef.of(value, { codec: { codecId: desc.codecId } });\n}\n\nfunction toSetExpression(value: unknown, desc: ColumnDescriptor): AnyExpression {\n if (isExpressionSource(value)) {\n return value.toExpr();\n }\n return ParamRef.of(value, { codec: { codecId: desc.codecId } });\n}\n\nfunction buildInsertRow<Schema extends ColumnSchema>(\n schema: Schema,\n values: TableInsertRow<Schema>,\n): Record<string, InsertValue> {\n const row: Record<string, InsertValue> = {};\n const rawValues = blindCast<\n Record<string, unknown>,\n 'TableInsertRow<Schema> maps Schema keys to unknown; indexing by the same string keys is correct by construction'\n >(values);\n for (const [col, desc] of Object.entries(schema)) {\n row[col] = toInsertValue(rawValues[col], desc);\n }\n return row;\n}\n\nfunction buildSetMap<Schema extends ColumnSchema>(\n schema: Schema,\n values: TableSetValues<Schema> | undefined,\n): Record<string, AnyExpression> {\n if (values === undefined) return {};\n const set: Record<string, AnyExpression> = {};\n const rawSchema = blindCast<\n Record<string, ColumnDescriptor>,\n 'Schema extends ColumnSchema = Record<string, ColumnDescriptor>; runtime key access is correct by construction'\n >(schema);\n const rawValues = blindCast<\n Record<string, unknown>,\n 'TableSetValues<Schema> maps Schema keys to unknown; iterating with Object.entries is correct by construction'\n >(values);\n for (const [col, value] of Object.entries(rawValues)) {\n const desc = rawSchema[col];\n if (desc !== undefined) {\n set[col] = toSetExpression(value, desc);\n }\n }\n return set;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contract-free.mjs","names":[],"sources":["../../src/contract-free/column.ts","../../src/contract-free/table.ts"],"sourcesContent":["import type { ColumnDefaultLiteralInputValue } from '@prisma-next/contract/types';\nimport type { ReferentialAction } from '@prisma-next/sql-contract/types';\nimport type { CodecRef } from '../ast/codec-types';\nimport type { AnyDdlColumnDefault } from '../ast/ddl-types';\nimport {\n DdlColumn,\n ForeignKeyConstraint,\n FunctionColumnDefault,\n LiteralColumnDefault,\n PrimaryKeyConstraint,\n UniqueConstraint,\n} from '../ast/ddl-types';\n\nexport interface DdlColumnOptions {\n readonly notNull?: boolean;\n readonly primaryKey?: boolean;\n readonly default?: AnyDdlColumnDefault;\n readonly codecRef?: CodecRef;\n}\n\nexport function lit(value: ColumnDefaultLiteralInputValue): LiteralColumnDefault {\n return new LiteralColumnDefault(value);\n}\n\nexport function fn(expression: string): FunctionColumnDefault {\n return new FunctionColumnDefault(expression);\n}\n\nexport function col(name: string, type: string, options?: DdlColumnOptions): DdlColumn {\n return new DdlColumn({ name, type, ...options });\n}\n\nexport function primaryKey(\n columns: readonly string[],\n options?: { readonly name?: string },\n): PrimaryKeyConstraint {\n return new PrimaryKeyConstraint({ columns, ...options });\n}\n\nexport function foreignKey(\n columns: readonly string[],\n refTable: string,\n refColumns: readonly string[],\n options?: {\n readonly name?: string;\n readonly onDelete?: ReferentialAction;\n readonly onUpdate?: ReferentialAction;\n },\n): ForeignKeyConstraint {\n return new ForeignKeyConstraint({ columns, refTable, refColumns, ...options });\n}\n\nexport function unique(\n columns: readonly string[],\n options?: { readonly name?: string },\n): UniqueConstraint {\n return new UniqueConstraint({ columns, ...options });\n}\n","import type { ParamSpec } from '@prisma-next/operations';\nimport { blindCast } from '@prisma-next/utils/casts';\nimport {\n AggregateExpr,\n AndExpr,\n type AnyExpression,\n type AnyFromSource,\n BinaryExpr,\n ColumnRef,\n ExistsExpr,\n IdentifierRef,\n InsertAst,\n InsertOnConflict,\n type InsertValue,\n JoinAst,\n LiteralExpr,\n NullCheckExpr,\n OperationExpr,\n OrderByItem,\n OrExpr,\n ParamRef,\n ProjectionItem,\n RawExpr,\n SelectAst,\n TableSource,\n UpdateAst,\n} from '../ast/types';\n\nexport interface ColumnDescriptor {\n readonly codecId: string;\n readonly nullable: boolean;\n}\n\nexport type ColumnSchema = Record<string, ColumnDescriptor>;\n\n/**\n * A composable WHERE / ON expression. Wraps an `AnyExpression` and exposes\n * fluent boolean combinators, mirroring the spirit of `sql-builder`'s\n * `Expression` interface without the contract-bound type machinery.\n */\nexport class CfExpr {\n constructor(readonly ast: AnyExpression) {}\n\n and(other: CfExpr): CfExpr {\n return new CfExpr(AndExpr.of([this.ast, other.ast]));\n }\n\n or(other: CfExpr): CfExpr {\n return new CfExpr(OrExpr.of([this.ast, other.ast]));\n }\n\n not(): CfExpr {\n return new CfExpr(this.ast.not());\n }\n\n isNull(): CfExpr {\n return new CfExpr(NullCheckExpr.isNull(this.ast));\n }\n\n isNotNull(): CfExpr {\n return new CfExpr(NullCheckExpr.isNotNull(this.ast));\n }\n\n eqLit(value: number | string | boolean): CfExpr {\n return new CfExpr(BinaryExpr.eq(this.ast, LiteralExpr.of(value)));\n }\n\n gtLit(value: number | string | boolean): CfExpr {\n return new CfExpr(BinaryExpr.gt(this.ast, LiteralExpr.of(value)));\n }\n\n eqParam(value: unknown, codecId: string): CfExpr {\n return new CfExpr(BinaryExpr.eq(this.ast, ParamRef.of(value, { codec: { codecId } })));\n }\n\n eqExpr(other: CfExpr): CfExpr {\n return new CfExpr(BinaryExpr.eq(this.ast, other.ast));\n }\n}\n\nexport interface CfFnOptions {\n readonly method: string;\n readonly template: string;\n readonly self: CfExpr;\n readonly args?: ReadonlyArray<CfExpr>;\n readonly returns: ParamSpec;\n}\n\nexport const cfExpr = {\n countStar(): CfExpr {\n return new CfExpr(AggregateExpr.count());\n },\n lit(value: number | string | boolean): CfExpr {\n return new CfExpr(LiteralExpr.of(value));\n },\n identifierRef(name: string): CfExpr {\n return new CfExpr(IdentifierRef.of(name));\n },\n param(value: unknown, codecId: string): CfExpr {\n return new CfExpr(ParamRef.of(value, { codec: { codecId } }));\n },\n /**\n * Catalog function call lowered via a `'function'`-strategy template\n * (e.g. `to_regclass({{self}})`). Owns the `OperationExpr` assembly so\n * target packages only supply vocabulary: template, codec'd operands,\n * and return spec.\n */\n fn(options: CfFnOptions): CfExpr {\n return new CfExpr(\n new OperationExpr({\n method: options.method,\n self: options.self.ast,\n args: options.args?.map((arg) => arg.ast),\n returns: options.returns,\n lowering: {\n targetFamily: 'sql',\n strategy: 'function',\n template: options.template,\n },\n }),\n );\n },\n columnRef(qualifier: string, name: string): CfExpr {\n return new CfExpr(ColumnRef.of(qualifier, name));\n },\n allOf(exprs: ReadonlyArray<CfExpr>): CfExpr {\n return new CfExpr(AndExpr.of(exprs.map((expr) => expr.ast)));\n },\n /**\n * Opaque DB-side SQL expression (e.g. `current_schema()`) carried as a\n * `RawExpr`. For zero-operand catalog functions where a `'function'`\n * lowering template has nothing to substitute.\n */\n raw(sql: string, returns: ParamSpec): CfExpr {\n return new CfExpr(new RawExpr({ parts: [sql], returns }));\n },\n exists(query: CfExprSelectQuery): CfExpr {\n return new CfExpr(ExistsExpr.exists(query.build()));\n },\n notExists(query: CfExprSelectQuery): CfExpr {\n return new CfExpr(ExistsExpr.notExists(query.build()));\n },\n};\n\n/** Aliased table source for catalog queries (no namespace coordinate). */\nexport function cfTable(name: string, alias?: string): TableSource {\n return TableSource.named(name, alias);\n}\n\nexport class CfExprSelectQuery {\n constructor(\n private readonly src: AnyFromSource | undefined,\n private readonly projectionItems: ReadonlyArray<ProjectionItem>,\n private readonly whereExpr: CfExpr | undefined,\n private readonly joinItems: ReadonlyArray<JoinAst> = [],\n private readonly limitValue: number | undefined = undefined,\n ) {}\n\n from(source: AnyFromSource): CfExprSelectQuery {\n return new CfExprSelectQuery(\n source,\n this.projectionItems,\n this.whereExpr,\n this.joinItems,\n this.limitValue,\n );\n }\n\n join(source: AnyFromSource, on: CfExpr): CfExprSelectQuery {\n return new CfExprSelectQuery(\n this.src,\n this.projectionItems,\n this.whereExpr,\n [...this.joinItems, JoinAst.inner(source, on.ast)],\n this.limitValue,\n );\n }\n\n leftJoin(source: AnyFromSource, on: CfExpr): CfExprSelectQuery {\n return new CfExprSelectQuery(\n this.src,\n this.projectionItems,\n this.whereExpr,\n [...this.joinItems, JoinAst.left(source, on.ast)],\n this.limitValue,\n );\n }\n\n project(alias: string, expr: CfExpr): CfExprSelectQuery {\n return new CfExprSelectQuery(\n this.src,\n [...this.projectionItems, ProjectionItem.of(alias, expr.ast)],\n this.whereExpr,\n this.joinItems,\n this.limitValue,\n );\n }\n\n where(expr: CfExpr): CfExprSelectQuery {\n return new CfExprSelectQuery(\n this.src,\n this.projectionItems,\n expr,\n this.joinItems,\n this.limitValue,\n );\n }\n\n limit(value: number): CfExprSelectQuery {\n return new CfExprSelectQuery(\n this.src,\n this.projectionItems,\n this.whereExpr,\n this.joinItems,\n value,\n );\n }\n\n build(): SelectAst {\n if (this.joinItems.length > 0 && this.src === undefined) {\n throw new Error('CfExprSelectQuery: cannot add a JOIN without a FROM clause');\n }\n const base =\n this.src !== undefined\n ? SelectAst.from(this.src).withProjection(this.projectionItems)\n : SelectAst.noFrom().withProjection(this.projectionItems);\n const withJoins = this.joinItems.length > 0 ? base.withJoins(this.joinItems) : base;\n const withWhere =\n this.whereExpr !== undefined ? withJoins.withWhere(this.whereExpr.ast) : withJoins;\n return this.limitValue !== undefined ? withWhere.withLimit(this.limitValue) : withWhere;\n }\n}\n\nexport function exprSelect(): CfExprSelectQuery {\n return new CfExprSelectQuery(undefined, [], undefined);\n}\n\n/**\n * Per-column authoring handle exposed as a keyed property on a {@link TableHandle}.\n * Carries codec metadata baked at declaration time so no codec ID, table name, or\n * column name needs to be repeated at the call site.\n */\nexport interface ColumnProxy {\n readonly codecId: string;\n readonly nullable: boolean;\n readonly columnName: string;\n readonly tableName: string;\n eq(value: unknown): CfExpr;\n neq(value: unknown): CfExpr;\n isNull(): CfExpr;\n isNotNull(): CfExpr;\n toRef(): ColumnRef;\n toProjectionItem(alias?: string): ProjectionItem;\n}\n\n/**\n * Object passed to the {@link CfConflictClause.doUpdate} callback. Each key\n * resolves to a `ColumnRef` for the corresponding `excluded.<column>`, so the\n * upsert conflict-update branch can copy proposed values without re-binding\n * parameters.\n */\nexport type ExcludedProxy<Schema extends ColumnSchema> = {\n readonly [K in keyof Schema]: ColumnRef;\n};\n\nexport type TableInsertRow<Schema extends ColumnSchema> = {\n readonly [K in keyof Schema]: unknown;\n};\n\nexport type TableSetValues<Schema extends ColumnSchema> = {\n readonly [K in keyof Schema]?: unknown;\n};\n\n/**\n * Fluent authoring handle for a fixed control-plane table. Column proxies are\n * exposed as keyed properties so `handle.columnName.eq(value)` composes without\n * threading codec IDs, table names, or column refs at the call site.\n */\nexport type TableHandle<Schema extends ColumnSchema> = {\n readonly source: TableSource;\n insert(row: TableInsertRow<Schema>): CfInsertQuery<Schema>;\n upsert(row: TableInsertRow<Schema>): CfUpsertBuilder<Schema>;\n update(): CfUpdateQuery<Schema>;\n select(...columns: ReadonlyArray<ColumnProxy>): CfSelectQuery;\n} & {\n readonly [K in keyof Schema]: ColumnProxy;\n};\n\nexport class CfInsertQuery<Schema extends ColumnSchema> {\n constructor(\n private readonly src: TableSource,\n private readonly schema: Schema,\n private readonly rowValues: TableInsertRow<Schema>,\n private readonly returningItems: ReadonlyArray<ProjectionItem> | undefined = undefined,\n ) {}\n\n returning(...columns: ReadonlyArray<ColumnProxy>): CfInsertQuery<Schema> {\n return new CfInsertQuery(\n this.src,\n this.schema,\n this.rowValues,\n columns.map((col) => col.toProjectionItem()),\n );\n }\n\n build(): InsertAst {\n const row = buildInsertRow(this.schema, this.rowValues);\n const ast = InsertAst.into(this.src).withRows([row]);\n return this.returningItems ? ast.withReturning(this.returningItems) : ast;\n }\n}\n\nexport class CfUpsertBuilder<Schema extends ColumnSchema> {\n constructor(\n private readonly src: TableSource,\n private readonly schema: Schema,\n private readonly rowValues: TableInsertRow<Schema>,\n ) {}\n\n onConflict(...columns: ReadonlyArray<ColumnProxy>): CfConflictClause<Schema> {\n return new CfConflictClause(this.src, this.schema, this.rowValues, [...columns]);\n }\n}\n\nexport class CfConflictClause<Schema extends ColumnSchema> {\n constructor(\n private readonly src: TableSource,\n private readonly schema: Schema,\n private readonly rowValues: TableInsertRow<Schema>,\n private readonly conflictCols: ReadonlyArray<ColumnProxy>,\n ) {}\n\n doUpdate(\n setOrCallback:\n | TableSetValues<Schema>\n | ((excluded: ExcludedProxy<Schema>) => TableSetValues<Schema>),\n ): CfUpsertQuery<Schema> {\n const set =\n typeof setOrCallback === 'function'\n ? setOrCallback(buildExcludedProxy(this.schema))\n : setOrCallback;\n return new CfUpsertQuery(this.src, this.schema, this.rowValues, this.conflictCols, set);\n }\n\n doNothing(): CfUpsertQuery<Schema> {\n return new CfUpsertQuery(this.src, this.schema, this.rowValues, this.conflictCols, undefined);\n }\n}\n\nexport class CfUpsertQuery<Schema extends ColumnSchema> {\n constructor(\n private readonly src: TableSource,\n private readonly schema: Schema,\n private readonly rowValues: TableInsertRow<Schema>,\n private readonly conflictCols: ReadonlyArray<ColumnProxy>,\n private readonly updateSet: TableSetValues<Schema> | undefined,\n ) {}\n\n build(): InsertAst {\n const row = buildInsertRow(this.schema, this.rowValues);\n const conflictRefs = this.conflictCols.map((col) => col.toRef());\n const onConflict =\n this.updateSet === undefined\n ? InsertOnConflict.on(conflictRefs).doNothing()\n : InsertOnConflict.on(conflictRefs).doUpdateSet(buildSetMap(this.schema, this.updateSet));\n return InsertAst.into(this.src).withRows([row]).withOnConflict(onConflict);\n }\n}\n\nexport class CfUpdateQuery<Schema extends ColumnSchema> {\n constructor(\n private readonly src: TableSource,\n private readonly schema: Schema,\n private readonly setValues: TableSetValues<Schema> | undefined = undefined,\n private readonly whereExpr: CfExpr | undefined = undefined,\n private readonly returningItems: ReadonlyArray<ProjectionItem> | undefined = undefined,\n ) {}\n\n set(values: TableSetValues<Schema>): CfUpdateQuery<Schema> {\n return new CfUpdateQuery(this.src, this.schema, values, this.whereExpr, this.returningItems);\n }\n\n where(expr: CfExpr): CfUpdateQuery<Schema> {\n return new CfUpdateQuery(this.src, this.schema, this.setValues, expr, this.returningItems);\n }\n\n returning(...columns: ReadonlyArray<ColumnProxy>): CfUpdateQuery<Schema> {\n return new CfUpdateQuery(\n this.src,\n this.schema,\n this.setValues,\n this.whereExpr,\n columns.map((col) => col.toProjectionItem()),\n );\n }\n\n build(): UpdateAst {\n const set = buildSetMap(this.schema, this.setValues);\n const base = UpdateAst.table(this.src).withSet(set);\n const withWhere = this.whereExpr ? base.withWhere(this.whereExpr.ast) : base;\n return this.returningItems ? withWhere.withReturning(this.returningItems) : withWhere;\n }\n}\n\nexport class CfSelectQuery {\n constructor(\n private readonly src: TableSource,\n private readonly projectionItems: ReadonlyArray<ProjectionItem>,\n private readonly whereExpr: CfExpr | undefined = undefined,\n private readonly orderByItems: ReadonlyArray<OrderByItem> = [],\n ) {}\n\n where(expr: CfExpr): CfSelectQuery {\n return new CfSelectQuery(this.src, this.projectionItems, expr, this.orderByItems);\n }\n\n orderBy(column: ColumnProxy, dir: 'asc' | 'desc' = 'asc'): CfSelectQuery {\n const item = dir === 'asc' ? OrderByItem.asc(column.toRef()) : OrderByItem.desc(column.toRef());\n return new CfSelectQuery(this.src, this.projectionItems, this.whereExpr, [\n ...this.orderByItems,\n item,\n ]);\n }\n\n build(): SelectAst {\n const base = SelectAst.from(this.src).withProjection(this.projectionItems);\n const withWhere = this.whereExpr ? base.withWhere(this.whereExpr.ast) : base;\n return this.orderByItems.length > 0 ? withWhere.withOrderBy(this.orderByItems) : withWhere;\n }\n}\n\n/**\n * Declare a control-plane table once, binding column codecs at declaration time.\n * Returns a `TableHandle` whose column properties compose expressions directly\n * without per-call-site codec or column-name threading.\n *\n * ```ts\n * const marker = pgTable({ name: 'marker', schema: 'prisma_contract' }, {\n * space: text(),\n * core_hash: text(),\n * updated_at: timestamptz(),\n * });\n *\n * const query = marker.update()\n * .set({ core_hash: newHash, updated_at: NOW })\n * .where(marker.space.eq(space).and(marker.core_hash.eq(expectedFrom)))\n * .returning(marker.space)\n * .build();\n * ```\n */\nexport function table<Schema extends ColumnSchema>(\n source: TableSource,\n schema: Schema,\n): TableHandle<Schema> {\n const proxies: Record<string, ColumnProxy> = {};\n for (const [col, desc] of Object.entries(schema)) {\n proxies[col] = makeColumnProxy(source.alias ?? source.name, col, desc);\n }\n\n const handle = {\n ...proxies,\n source,\n insert: (row: TableInsertRow<Schema>) => new CfInsertQuery(source, schema, row),\n upsert: (row: TableInsertRow<Schema>) => new CfUpsertBuilder(source, schema, row),\n update: () => new CfUpdateQuery(source, schema),\n select: (...cols: ReadonlyArray<ColumnProxy>) =>\n new CfSelectQuery(\n source,\n cols.map((col) => col.toProjectionItem()),\n ),\n };\n\n return blindCast<\n TableHandle<Schema>,\n 'Column proxies are dynamically built from Schema keys — TypeScript cannot verify the per-key ColumnProxy constraint at the spread call site. Construction is correct by construction: every key maps to makeColumnProxy(source.name, key, schema[key]).'\n >(handle);\n}\n\nfunction makeColumnProxy(\n tableName: string,\n columnName: string,\n desc: ColumnDescriptor,\n): ColumnProxy {\n const ref = ColumnRef.of(tableName, columnName);\n return {\n codecId: desc.codecId,\n nullable: desc.nullable,\n columnName,\n tableName,\n eq: (value) =>\n value === null\n ? new CfExpr(NullCheckExpr.isNull(ref))\n : new CfExpr(BinaryExpr.eq(ref, toSetExpression(value, desc))),\n neq: (value) =>\n value === null\n ? new CfExpr(NullCheckExpr.isNotNull(ref))\n : new CfExpr(BinaryExpr.neq(ref, toSetExpression(value, desc))),\n isNull: () => new CfExpr(NullCheckExpr.isNull(ref)),\n isNotNull: () => new CfExpr(NullCheckExpr.isNotNull(ref)),\n toRef: () => ref,\n toProjectionItem: (alias = columnName) =>\n ProjectionItem.of(alias, ref, { codecId: desc.codecId }),\n };\n}\n\nfunction buildExcludedProxy<Schema extends ColumnSchema>(schema: Schema): ExcludedProxy<Schema> {\n return blindCast<\n ExcludedProxy<Schema>,\n 'Object.fromEntries cannot preserve per-key ColumnRef types — correct by construction: every key maps to ColumnRef.of(\"excluded\", key).'\n >(Object.fromEntries(Object.keys(schema).map((col) => [col, ColumnRef.of('excluded', col)])));\n}\n\nfunction isExpressionSource(value: unknown): value is { toExpr(): AnyExpression } {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'toExpr' in value &&\n typeof value.toExpr === 'function'\n );\n}\n\nfunction toInsertValue(value: unknown, desc: ColumnDescriptor): InsertValue {\n if (isExpressionSource(value)) {\n const expr = value.toExpr();\n if (\n expr.kind === 'column-ref' ||\n expr.kind === 'param-ref' ||\n expr.kind === 'prepared-param-ref' ||\n expr.kind === 'raw-expr'\n ) {\n return expr;\n }\n }\n return ParamRef.of(value, { codec: { codecId: desc.codecId } });\n}\n\nfunction toSetExpression(value: unknown, desc: ColumnDescriptor): AnyExpression {\n if (isExpressionSource(value)) {\n return value.toExpr();\n }\n return ParamRef.of(value, { codec: { codecId: desc.codecId } });\n}\n\nfunction buildInsertRow<Schema extends ColumnSchema>(\n schema: Schema,\n values: TableInsertRow<Schema>,\n): Record<string, InsertValue> {\n const row: Record<string, InsertValue> = {};\n const rawValues = blindCast<\n Record<string, unknown>,\n 'TableInsertRow<Schema> maps Schema keys to unknown; indexing by the same string keys is correct by construction'\n >(values);\n for (const [col, desc] of Object.entries(schema)) {\n row[col] = toInsertValue(rawValues[col], desc);\n }\n return row;\n}\n\nfunction buildSetMap<Schema extends ColumnSchema>(\n schema: Schema,\n values: TableSetValues<Schema> | undefined,\n): Record<string, AnyExpression> {\n if (values === undefined) return {};\n const set: Record<string, AnyExpression> = {};\n const rawSchema = blindCast<\n Record<string, ColumnDescriptor>,\n 'Schema extends ColumnSchema = Record<string, ColumnDescriptor>; runtime key access is correct by construction'\n >(schema);\n const rawValues = blindCast<\n Record<string, unknown>,\n 'TableSetValues<Schema> maps Schema keys to unknown; iterating with Object.entries is correct by construction'\n >(values);\n for (const [col, value] of Object.entries(rawValues)) {\n const desc = rawSchema[col];\n if (desc !== undefined) {\n set[col] = toSetExpression(value, desc);\n }\n }\n return set;\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as planUnsupported, t as planInvalid } from "../errors-
|
|
1
|
+
import { n as planUnsupported, t as planInvalid } from "../errors-BbatEYjA.mjs";
|
|
2
2
|
export { planInvalid, planUnsupported };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as CodecRef } from "../codec-types-DFLA6Hmj.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { Y as ParamRef, o as AnyExpression, tt as RawSqlLiteral } from "../types-DQrmgP8Y.mjs";
|
|
3
3
|
import { QueryOperationReturn } from "@prisma-next/sql-contract/types";
|
|
4
4
|
import { ParamSpec } from "@prisma-next/operations";
|
|
5
5
|
import { SqlLoweringSpec } from "@prisma-next/sql-operations";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { C as OperationExpr, E as ParamRef, k as RawExpr } from "../types-lJUc6cY-.mjs";
|
|
2
2
|
import { runtimeError } from "@prisma-next/framework-components/runtime";
|
|
3
3
|
//#region src/expression.ts
|
|
4
4
|
/**
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as SqlParamRefMutatorInternal, i as SqlParamRefMutator, n as ParamRefEntryUnion, o as createSqlParamRefMutator, r as ParamRefHandle, t as ParamRefEntry } from "../middleware-
|
|
1
|
+
import { a as SqlParamRefMutatorInternal, i as SqlParamRefMutator, n as ParamRefEntryUnion, o as createSqlParamRefMutator, r as ParamRefHandle, t as ParamRefEntry } from "../middleware-Dyyo4IP1.mjs";
|
|
2
2
|
export { type ParamRefEntry, type ParamRefEntryUnion, type ParamRefHandle, type SqlParamRefMutator, type SqlParamRefMutatorInternal, createSqlParamRefMutator };
|
package/dist/exports/plan.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as SqlExecutionPlan } from "../sql-execution-plan-
|
|
2
|
-
import { n as planFromAst, t as SqlQueryPlan } from "../plan-
|
|
1
|
+
import { t as SqlExecutionPlan } from "../sql-execution-plan-DjMEAjKK.mjs";
|
|
2
|
+
import { n as planFromAst, t as SqlQueryPlan } from "../plan-DUjdGLY3.mjs";
|
|
3
3
|
export { type SqlExecutionPlan, SqlQueryPlan, planFromAst };
|
package/dist/exports/types.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { C as
|
|
2
|
-
import { n as SqlOrmPlan, t as RuntimeScope } from "../types-
|
|
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 };
|
|
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-BQ_zfC-S.mjs";
|
|
2
|
+
import { n as SqlOrmPlan, t as RuntimeScope } from "../types-CUHnDsdV.mjs";
|
|
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
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { a as CodecMeta, c as ContractCodecRegistry, d as DescriptorCodecTraits, f as ExtractCodecTypes, h as SqlColumnRef, i as CodecDescriptor, l as DescriptorCodecId, m as SqlCodecInstanceContext, n as Codec, o as CodecRef, p as SqlCodecCallContext, r as CodecCallContext, s as CodecTrait, t as AnyCodecDescriptor, u as DescriptorCodecInput } from "./codec-types-DFLA6Hmj.mjs";
|
|
2
|
-
import { $ as
|
|
3
|
-
import { a as DdlColumnRenderContext, c as ForeignKeyConstraint, d as PrimaryKeyConstraint, f as UniqueConstraint, i as DdlColumnDefaultVisitor, l as FunctionColumnDefault, n as DdlColumn, o as DdlNode, p as isDdlNode, r as DdlColumnDefault, s as DdlTableConstraint, t as AnyDdlColumnDefault, u as LiteralColumnDefault } from "./ddl-types-
|
|
2
|
+
import { $ as RawExpr, A as IdentifierRef, B as ListExpression, C as EqColJoinOn, D as ExpressionRewriter, E as ExpressionFolder, F as JoinOnExpr, G as NullCheckExpr, H as LoweredParam, I as JsonArrayAggExpr, J as OrderByItem, K as OperationExpr, L as JsonObjectEntry, M as InsertOnConflict, N as InsertValue, O as ExpressionSource, P as JoinAst, Q as ProjectionItem, R as JsonObjectExpr, S as DoUpdateSetConflictAction, T as ExprVisitor, U as LoweredStatement, V as LiteralExpr, W as NotExpr, X as PreparedParamRef, Y as ParamRef, Z as ProjectionExpr, _ as DefaultValueExpr, a as AndExpr, at as TableRef, b as Direction, c as AnyInsertOnConflictAction, ct as UpdateAst, d as AnyParamRef, dt as WindowFuncExpr, et as RawSqlExpr, f as AnyQueryAst, ft as isQueryAst, g as ColumnRef, h as BinaryOp, ht as whereExprKinds, i as AggregateOpFn, it as SubqueryExpr, j as InsertAst, k as FunctionSource, l as AnyInsertValue, lt as WhereArg, m as BinaryExpr, mt as queryAstKinds, n as AggregateExpr, nt as SelectAst, o as AnyExpression, ot as TableSource, p as AstRewriter, pt as isWhereExpr, q as OrExpr, r as AggregateFn, rt as SelectAstOptions, s as AnyFromSource, st as ToWhereExpr, t as AggregateCountFn, tt as RawSqlLiteral, u as AnyOperationArg, ut as WindowFn, v as DeleteAst, w as ExistsExpr, x as DoNothingConflictAction, y as DerivedTableSource, z as LimitOffsetValue } from "./types-DQrmgP8Y.mjs";
|
|
3
|
+
import { a as DdlColumnRenderContext, c as ForeignKeyConstraint, d as PrimaryKeyConstraint, f as UniqueConstraint, i as DdlColumnDefaultVisitor, l as FunctionColumnDefault, n as DdlColumn, o as DdlNode, p as isDdlNode, r as DdlColumnDefault, s as DdlTableConstraint, t as AnyDdlColumnDefault, u as LiteralColumnDefault } from "./ddl-types-BVO002FS.mjs";
|
|
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
|
-
import { t as SqlExecutionPlan } from "./sql-execution-plan-
|
|
7
|
-
import { C as
|
|
8
|
-
import { n as planUnsupported, t as planInvalid } from "./errors-
|
|
6
|
+
import { t as SqlExecutionPlan } from "./sql-execution-plan-DjMEAjKK.mjs";
|
|
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-BQ_zfC-S.mjs";
|
|
8
|
+
import { n as planUnsupported, t as planInvalid } from "./errors-BbatEYjA.mjs";
|
|
9
9
|
import { BuildOperationSpec, CodecExpression, CodecTypesBase, CodecValue, Expression, RawCodecInferer, RawSqlBuilder, RawSqlTag, ScopeField, TraitExpression, buildOperation, codecOf, createRawSql, param, toExpr } from "./exports/expression.mjs";
|
|
10
|
-
import { a as SqlParamRefMutatorInternal, i as SqlParamRefMutator, n as ParamRefEntryUnion, o as createSqlParamRefMutator, r as ParamRefHandle, t as ParamRefEntry } from "./middleware-
|
|
11
|
-
import { n as planFromAst, t as SqlQueryPlan } from "./plan-
|
|
12
|
-
import { n as SqlOrmPlan, t as RuntimeScope } from "./types-
|
|
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 };
|
|
10
|
+
import { a as SqlParamRefMutatorInternal, i as SqlParamRefMutator, n as ParamRefEntryUnion, o as createSqlParamRefMutator, r as ParamRefHandle, t as ParamRefEntry } from "./middleware-Dyyo4IP1.mjs";
|
|
11
|
+
import { n as planFromAst, t as SqlQueryPlan } from "./plan-DUjdGLY3.mjs";
|
|
12
|
+
import { n as SqlOrmPlan, t as RuntimeScope } from "./types-CUHnDsdV.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, 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, FunctionSource, 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 };
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as FunctionColumnDefault, c as UniqueConstraint, i as ForeignKeyConstraint, l as isDdlNode, n as DdlColumnDefault, o as LiteralColumnDefault, r as DdlNode, s as PrimaryKeyConstraint, t as DdlColumn } from "./ddl-types-
|
|
2
|
-
import { A as
|
|
1
|
+
import { a as FunctionColumnDefault, c as UniqueConstraint, i as ForeignKeyConstraint, l as isDdlNode, n as DdlColumnDefault, o as LiteralColumnDefault, r as DdlNode, s as PrimaryKeyConstraint, t as DdlColumn } from "./ddl-types-DAox2c8w.mjs";
|
|
2
|
+
import { A as RawSqlExpr, C as OperationExpr, D as PreparedParamRef, E as ParamRef, F as WindowFuncExpr, I as isQueryAst, L as isWhereExpr, M as SubqueryExpr, N as TableSource, O as ProjectionItem, P as UpdateAst, R as queryAstKinds, S as NullCheckExpr, T as OrderByItem, _ as JsonArrayAggExpr, a as DefaultValueExpr, b as LiteralExpr, c as DoNothingConflictAction, d as ExistsExpr, f as FunctionSource, g as JoinAst, h as InsertOnConflict, i as ColumnRef, j as SelectAst, k as RawExpr, l as DoUpdateSetConflictAction, m as InsertAst, n as AndExpr, o as DeleteAst, p as IdentifierRef, r as BinaryExpr, s as DerivedTableSource, t as AggregateExpr, u as EqColJoinOn, v as JsonObjectExpr, w as OrExpr, x as NotExpr, y as ListExpression, z as whereExprKinds } from "./types-lJUc6cY-.mjs";
|
|
3
3
|
import { n as compact, t as collectOrderedParamRefs } from "./util-DQQgv2j1.mjs";
|
|
4
4
|
import { SQL_CHAR_CODEC_ID, SQL_FLOAT_CODEC_ID, SQL_INT_CODEC_ID, SQL_TEXT_CODEC_ID, SQL_TIMESTAMP_CODEC_ID, SQL_VARCHAR_CODEC_ID, SqlCharCodec, SqlCharDescriptor, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlTextCodec, SqlTextDescriptor, SqlTimestampCodec, SqlTimestampDescriptor, SqlVarcharCodec, SqlVarcharDescriptor, sqlCharColumn, sqlCharDecode, sqlCharDescriptor, sqlCharEncode, sqlCharRenderOutputType, sqlFloatColumn, sqlFloatDecode, sqlFloatDescriptor, sqlFloatEncode, sqlIntColumn, sqlIntDecode, sqlIntDescriptor, sqlIntEncode, sqlTextColumn, sqlTextDecode, sqlTextDescriptor, sqlTextEncode, sqlTimestampColumn, sqlTimestampDecode, sqlTimestampDecodeJson, sqlTimestampDescriptor, sqlTimestampEncode, sqlTimestampEncodeJson, sqlTimestampRenderOutputType, sqlVarcharColumn, sqlVarcharDecode, sqlVarcharDescriptor, sqlVarcharEncode, sqlVarcharRenderOutputType } from "./exports/ast.mjs";
|
|
5
5
|
import { n as planUnsupported, t as planInvalid } from "./errors-BwyJxXME.mjs";
|
|
@@ -8,4 +8,4 @@ import { t as createSqlParamRefMutator } from "./middleware-CMr4CHNz.mjs";
|
|
|
8
8
|
import { planFromAst } from "./exports/plan.mjs";
|
|
9
9
|
import "./exports/query-lane-context.mjs";
|
|
10
10
|
import "./exports/types.mjs";
|
|
11
|
-
export { AggregateExpr, AndExpr, BinaryExpr, ColumnRef, DdlColumn, DdlColumnDefault, DdlNode, DefaultValueExpr, DeleteAst, DerivedTableSource, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExistsExpr, ForeignKeyConstraint, FunctionColumnDefault, IdentifierRef, InsertAst, InsertOnConflict, JoinAst, JsonArrayAggExpr, JsonObjectExpr, ListExpression, LiteralColumnDefault, LiteralExpr, NotExpr, NullCheckExpr, OperationExpr, OrExpr, OrderByItem, ParamRef, PreparedParamRef, PrimaryKeyConstraint, ProjectionItem, RawExpr, RawSqlExpr, SQL_CHAR_CODEC_ID, SQL_FLOAT_CODEC_ID, SQL_INT_CODEC_ID, SQL_TEXT_CODEC_ID, SQL_TIMESTAMP_CODEC_ID, SQL_VARCHAR_CODEC_ID, SelectAst, SqlCharCodec, SqlCharDescriptor, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlTextCodec, SqlTextDescriptor, SqlTimestampCodec, SqlTimestampDescriptor, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableSource, UniqueConstraint, UpdateAst, 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 };
|
|
11
|
+
export { AggregateExpr, AndExpr, BinaryExpr, ColumnRef, DdlColumn, DdlColumnDefault, DdlNode, DefaultValueExpr, DeleteAst, DerivedTableSource, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExistsExpr, ForeignKeyConstraint, FunctionColumnDefault, FunctionSource, IdentifierRef, InsertAst, InsertOnConflict, JoinAst, JsonArrayAggExpr, JsonObjectExpr, ListExpression, LiteralColumnDefault, LiteralExpr, NotExpr, NullCheckExpr, OperationExpr, OrExpr, OrderByItem, ParamRef, PreparedParamRef, PrimaryKeyConstraint, ProjectionItem, RawExpr, RawSqlExpr, SQL_CHAR_CODEC_ID, SQL_FLOAT_CODEC_ID, SQL_INT_CODEC_ID, SQL_TEXT_CODEC_ID, SQL_TIMESTAMP_CODEC_ID, SQL_VARCHAR_CODEC_ID, SelectAst, SqlCharCodec, SqlCharDescriptor, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlTextCodec, SqlTextDescriptor, SqlTimestampCodec, SqlTimestampDescriptor, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableSource, UniqueConstraint, UpdateAst, 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 };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as SqlExecutionPlan } from "./sql-execution-plan-
|
|
1
|
+
import { t as SqlExecutionPlan } from "./sql-execution-plan-DjMEAjKK.mjs";
|
|
2
2
|
import { ParamRefMutator } from "@prisma-next/framework-components/runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/middleware/param-ref-mutator.d.ts
|
|
@@ -116,4 +116,4 @@ interface SqlParamRefMutatorInternal<TCodecMap extends Record<string, unknown> =
|
|
|
116
116
|
declare function createSqlParamRefMutator<TCodecMap extends Record<string, unknown> = Record<string, unknown>>(plan: SqlExecutionPlan): SqlParamRefMutatorInternal<TCodecMap>;
|
|
117
117
|
//#endregion
|
|
118
118
|
export { SqlParamRefMutatorInternal as a, SqlParamRefMutator as i, ParamRefEntryUnion as n, createSqlParamRefMutator as o, ParamRefHandle as r, ParamRefEntry as t };
|
|
119
|
-
//# sourceMappingURL=middleware-
|
|
119
|
+
//# sourceMappingURL=middleware-Dyyo4IP1.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-
|
|
1
|
+
{"version":3,"file":"middleware-Dyyo4IP1.d.mts","names":[],"sources":["../src/middleware/param-ref-mutator.ts"],"mappings":";;;;;;AAG8D;;;;AAYd;AAWhD;;;cAXc,mBAAA;;;;;AAY4B;AAQ1C;;;;UATiB,cAAA;EAAA,UACL,mBAAmB,GAAG,QAAA;AAAA;;;;;;UAQjB,aAAA;EAAA,SACN,GAAA,EAAK,cAAA,CAAe,QAAA;EAAA,SACpB,KAAA;EAAA,SACA,OAAA,EAAS,QAAA;AAAA;AAWpB;;;;;;;;AAAA,KAAY,kBAAA,mBAAqC,MAAA,mCAC/B,SAAA,YAAqB,aAAA,CAAc,CAAA,UAAW,SAAA,aAC5D,aAAA;;;;;;;;;;AAAa;AA0BjB;;;;;;;;;;;;;;UAAiB,kBAAA,mBACG,MAAA,oBAA0B,MAAA,2BACpC,eAAA;EAmBU;EAjBlB,OAAA,IAAW,gBAAA,CAAiB,kBAAA,CAAmB,SAAA;EAFvC;;;;;;EAUR,YAAA,wBAAoC,SAAA,WAClC,GAAA,EAAK,cAAA,CAAe,QAAA,GACpB,QAAA,EAAU,SAAA,CAAU,QAAA;EAEtB,YAAA,CAAa,GAAA,EAAK,cAAA,aAA2B,QAAA;EAZlC;EAeX,aAAA,CACE,OAAA,EAAS,QAAA;IAAA,SACE,GAAA,EAAK,cAAA,QAAsB,SAAA;IAAA,SAC3B,QAAA;EAAA;AAAA;;;;;;;;;;;UAeE,0BAAA,mBACG,MAAA,oBAA0B,MAAA,2BACpC,kBAAA,CAAmB,SAAA;EAC3B,aAAA;AAAA;;;;;;AAjBI;AAcN;;;;;;;;;iBAuBgB,wBAAA,mBACI,MAAA,oBAA0B,MAAA,mBAC5C,IAAA,EAAM,gBAAA,GAAmB,0BAAA,CAA2B,SAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as AnyQueryAst } from "./types-
|
|
1
|
+
import { f as AnyQueryAst } from "./types-DQrmgP8Y.mjs";
|
|
2
2
|
import { Contract } from "@prisma-next/contract/types";
|
|
3
3
|
import { QueryPlan } from "@prisma-next/framework-components/runtime";
|
|
4
4
|
import { SqlStorage } from "@prisma-next/sql-contract/types";
|
|
@@ -41,4 +41,4 @@ interface SqlQueryPlan<Row = unknown> extends QueryPlan<Row> {
|
|
|
41
41
|
declare function planFromAst<Row = unknown>(ast: AnyQueryAst, contract: Contract<SqlStorage>, laneId?: string): SqlQueryPlan<Row>;
|
|
42
42
|
//#endregion
|
|
43
43
|
export { planFromAst as n, SqlQueryPlan as t };
|
|
44
|
-
//# sourceMappingURL=plan-
|
|
44
|
+
//# sourceMappingURL=plan-DUjdGLY3.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-
|
|
1
|
+
{"version":3,"file":"plan-DUjdGLY3.d.mts","names":[],"sources":["../src/plan.ts"],"mappings":";;;;;;;;AAkBA;;;;;;;;;;;UAAiB,YAAA,wBAAoC,SAAA,CAAU,GAAA;EAAA,SACpD,GAAA,EAAK,WAAA;EAAA,SACL,MAAA;AAAA;AAAM;AAoBjB;;;;;;;;;;;;;;;;AApBiB,iBAoBD,WAAA,gBACd,GAAA,EAAK,WAAA,EACL,QAAA,EAAU,QAAA,CAAS,UAAA,GACnB,MAAA,YACC,YAAA,CAAa,GAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as AnyQueryAst } from "./types-
|
|
1
|
+
import { f as AnyQueryAst } from "./types-DQrmgP8Y.mjs";
|
|
2
2
|
import { ExecutionPlan } from "@prisma-next/framework-components/runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/sql-execution-plan.d.ts
|
|
@@ -29,4 +29,4 @@ interface SqlExecutionPlan<Row = unknown> extends ExecutionPlan<Row> {
|
|
|
29
29
|
}
|
|
30
30
|
//#endregion
|
|
31
31
|
export { SqlExecutionPlan as t };
|
|
32
|
-
//# sourceMappingURL=sql-execution-plan-
|
|
32
|
+
//# sourceMappingURL=sql-execution-plan-DjMEAjKK.d.mts.map
|
package/dist/{sql-execution-plan-JwVeAzXt.d.mts.map → sql-execution-plan-DjMEAjKK.d.mts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-execution-plan-
|
|
1
|
+
{"version":3,"file":"sql-execution-plan-DjMEAjKK.d.mts","names":[],"sources":["../src/sql-execution-plan.ts"],"mappings":";;;;;;AAuBA;;;;;;;;;;;;;;;;AAG2B;;UAHV,gBAAA,wBAAwC,aAAA,CAAc,GAAA;EAAA,SAC5D,GAAA;EAAA,SACA,MAAA;EAAA,SACA,GAAA,EAAK,WAAA;AAAA"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { Y as ParamRef, g as ColumnRef } from "./types-DQrmgP8Y.mjs";
|
|
2
|
+
import { r as ExecutionContext } from "./query-lane-context-CY0-e8Qo.mjs";
|
|
3
|
+
import { t as SqlExecutionPlan } from "./sql-execution-plan-DjMEAjKK.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-BQ_zfC-S.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-BQ_zfC-S.d.mts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as SqlExecutionPlan } from "./sql-execution-plan-
|
|
2
|
-
import { t as SqlQueryPlan } from "./plan-
|
|
1
|
+
import { t as SqlExecutionPlan } from "./sql-execution-plan-DjMEAjKK.mjs";
|
|
2
|
+
import { t as SqlQueryPlan } from "./plan-DUjdGLY3.mjs";
|
|
3
3
|
import { RuntimeExecutor } from "@prisma-next/framework-components/runtime";
|
|
4
4
|
|
|
5
5
|
//#region src/runtime-scope.d.ts
|
|
@@ -20,4 +20,4 @@ type SqlOrmPlan = SqlExecutionPlan | SqlQueryPlan;
|
|
|
20
20
|
type RuntimeScope = Pick<RuntimeExecutor<SqlOrmPlan>, 'execute'>;
|
|
21
21
|
//#endregion
|
|
22
22
|
export { SqlOrmPlan as n, RuntimeScope as t };
|
|
23
|
-
//# sourceMappingURL=types-
|
|
23
|
+
//# sourceMappingURL=types-CUHnDsdV.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-
|
|
1
|
+
{"version":3,"file":"types-CUHnDsdV.d.mts","names":[],"sources":["../src/runtime-scope.ts"],"mappings":";;;;;;;;AASA;;KAAY,UAAA,GAAa,gBAAA,GAAmB,YAAY;;AAAA;AAUxD;;;;;;KAAY,YAAA,GAAe,IAAA,CAAK,eAAA,CAAgB,UAAA"}
|