@vibeorm/dsl 2.2.1 → 2.2.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAIV,qBAAqB,EACrB,SAAS,EAEV,MAAM,aAAa,CAAC;AAiTrB;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,qBAA0B,GAAG,MAAM,CAiD5F"}
1
+ {"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAIV,qBAAqB,EACrB,SAAS,EAEV,MAAM,aAAa,CAAC;AAoTrB;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,qBAA0B,GAAG,MAAM,CAiD5F"}
package/dist/index.js CHANGED
@@ -1372,8 +1372,9 @@ function defaultAttribute(params) {
1372
1372
  const values = value.values.map((entry) => column.__columnType === "enum" ? String(entry) : column.__columnType === "bigint" ? String(entry) : JSON.stringify(entry));
1373
1373
  return `@default([${values.join(", ")}])`;
1374
1374
  }
1375
+ const numericColumn = column.__columnType === "int" || column.__columnType === "bigint" || column.__columnType === "float" || column.__columnType === "decimal";
1375
1376
  if (value.kind === "literal")
1376
- return `@default(${typeof value.value === "string" ? encodePrismaString({ value: value.value }) : String(value.value)})`;
1377
+ return `@default(${typeof value.value === "string" && !(numericColumn && /^-?\d+(\.\d+)?$/.test(value.value)) ? encodePrismaString({ value: value.value }) : String(value.value)})`;
1377
1378
  if (value.kind === "enumValue")
1378
1379
  return `@default(${value.value})`;
1379
1380
  if (value.kind === "dbgenerated")
@@ -2241,4 +2242,4 @@ export {
2241
2242
  withNameDescription
2242
2243
  };
2243
2244
 
2244
- //# debugId=C9033CA5A686FA9A64756E2164756E21
2245
+ //# debugId=C69A52006732E14D64756E2164756E21
package/dist/index.js.map CHANGED
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "/**\n * Column builders. Chainable style is encouraged; the config-object form is\n * equivalent and fully supported.\n *\n * @example\n * dsl.string().optional()\n * dsl.string().unique().index()\n * dsl.int().default(42)\n * dsl.string({ optional: true })\n */\n\nimport type { EnumStorage } from \"@vibeorm/schema\";\nimport type {\n BaseColumnConfig,\n BigIntColumnConfig,\n BooleanColumnConfig,\n BytesColumnConfig,\n ColumnDef,\n ColumnType,\n DatetimeColumnConfig,\n DecimalColumnConfig,\n ExtensionTypeConfig,\n FloatColumnConfig,\n IdColumnConfig,\n IdGeneratorType,\n InlineEnumConfig,\n IntColumnConfig,\n JsonColumnConfig,\n StringColumnConfig,\n UnsupportedColumnConfig,\n} from \"./types.ts\";\n\n// ─── Clone helper ─────────────────────────\n\n/**\n * Shallow-clones a column definition with a fresh `__config`, so columns\n * spread from a template are never shared between models.\n */\nexport function cloneColumnDef(params: { column: ColumnDef }): ColumnDef {\n const { column } = params;\n return {\n __type: \"column\",\n __columnType: column.__columnType,\n __name: column.__name,\n __config: { ...column.__config },\n __enumValues: column.__enumValues,\n __enumName: column.__enumName,\n __enumStorage: column.__enumStorage,\n };\n}\n\n// ─── Chainable columns ────────────────────\n\ntype ColumnDefaultValues = {\n string: string;\n int: number;\n bigint: bigint | number;\n float: number;\n decimal: string | number;\n boolean: boolean;\n datetime: string | Date;\n json: unknown;\n id: never;\n bytes: Uint8Array | string;\n enum: string;\n unsupported: unknown;\n};\n\n/** Chainable column builder shared by every column kind. */\nexport class ChainableColumn<T extends ColumnType = ColumnType> implements ColumnDef<T> {\n readonly __type: \"column\" = \"column\";\n readonly __columnType: T;\n __config: BaseColumnConfig;\n __name?: string;\n __enumValues?: readonly string[];\n __enumName?: string;\n __enumStorage?: EnumStorage;\n\n constructor(columnType: T, config: BaseColumnConfig = {}) {\n this.__columnType = columnType;\n this.__config = { ...config };\n }\n\n /** Marks the column nullable (`Type?`). */\n optional(): this {\n this.__config.optional = true;\n return this;\n }\n\n /** Adds a `@unique` constraint. */\n unique(): this {\n this.__config.unique = true;\n return this;\n }\n\n /** Adds a single-column index. */\n index(): this {\n this.__config.index = true;\n return this;\n }\n\n /** Marks the column as a list (`Type[]`). */\n array(): this {\n this.__config.array = true;\n return this;\n }\n\n /** Sets a literal default value. */\n default(value: ColumnDefaultValues[T] | readonly ColumnDefaultValues[T][]): this {\n this.__config.default = value;\n return this;\n }\n\n /** `@map(\"db_column\")` — database column name when it differs. */\n map(dbColumnName: string): this {\n this.__config.map = dbColumnName;\n return this;\n }\n\n /** `@default(dbgenerated(\"expression\"))` — database-native default. */\n dbgenerated(expression: string): this {\n this.__config.dbgenerated = expression;\n return this;\n }\n\n /** Emits a `///` doc comment above the column. */\n comment(text: string): this {\n this.__config.comment = text;\n return this;\n }\n}\n\n/** String column with database-level type annotations. */\nexport class ChainableStringColumn extends ChainableColumn<\"string\"> {\n constructor(config: StringColumnConfig = {}) {\n super(\"string\", config);\n }\n\n /** `@db.VarChar(n)` */\n maxLength(n: number): this {\n (this.__config as StringColumnConfig).maxLength = n;\n return this;\n }\n\n /** `@db.Text` */\n text(): this {\n (this.__config as StringColumnConfig).text = true;\n return this;\n }\n\n /** `@collation(\"...\")` — explicit column collation (mysql-rendered; inert on postgres/sqlite). */\n collation(name: string): this {\n (this.__config as StringColumnConfig).collation = name;\n return this;\n }\n}\n\n/** Decimal column carrying precision/scale. */\nexport class ChainableDecimalColumn extends ChainableColumn<\"decimal\"> {\n constructor(config: DecimalColumnConfig = {}) {\n super(\"decimal\", config);\n }\n\n /** `@db.Decimal(precision, scale)` */\n precision(p: number, s?: number): this {\n (this.__config as DecimalColumnConfig).precision = p;\n if (s !== undefined) {\n (this.__config as DecimalColumnConfig).scale = s;\n }\n return this;\n }\n}\n\n/** DateTime column with timestamp-specific helpers. */\nexport class ChainableDatetimeColumn extends ChainableColumn<\"datetime\"> {\n constructor(config: DatetimeColumnConfig = {}) {\n super(\"datetime\", config);\n }\n\n /** `@db.Timestamptz` — timezone-aware timestamp. */\n tz(): this {\n (this.__config as DatetimeColumnConfig).tz = true;\n return this;\n }\n\n /** `@updatedAt` — refreshed on every update. */\n updatedAt(): this {\n (this.__config as DatetimeColumnConfig).updatedAt = true;\n return this;\n }\n\n /** `@default(now())` */\n defaultNow(): this {\n (this.__config as DatetimeColumnConfig).default = \"now\";\n return this;\n }\n}\n\n/** Primary-key column with a generator strategy. */\nexport class ChainableIdColumn extends ChainableColumn<\"id\"> {\n constructor(config: IdColumnConfig = {}) {\n super(\"id\", { ...config, type: config.type ?? \"ulid\" });\n }\n\n /** Sets the id generator strategy (default `\"ulid\"`). */\n type(idType: IdGeneratorType): this {\n (this.__config as IdColumnConfig).type = idType;\n return this;\n }\n}\n\n/** Enum column whose `default()` is constrained to the declared options. */\nexport class ChainableEnumColumn<\n T extends readonly string[] = readonly string[],\n> extends ChainableColumn<\"enum\"> {\n constructor(params: {\n options: T;\n config?: BaseColumnConfig;\n enumName?: string;\n storage?: EnumStorage;\n }) {\n super(\"enum\", params.config ?? {});\n this.__enumValues = params.options;\n if (params.enumName !== undefined) {\n this.__enumName = params.enumName;\n }\n if (params.storage !== undefined) {\n this.__enumStorage = params.storage;\n }\n }\n\n /** Sets the default to one of the declared options. */\n default(value: T[number] | readonly T[number][]): this {\n this.__config.default = value;\n return this;\n }\n}\n\n// ─── Column factories ─────────────────────\n\n/**\n * String column.\n *\n * @example\n * dsl.string() // String\n * dsl.string().optional() // String?\n * dsl.string().unique().index() // String @unique + @@index\n */\nexport function string(config: StringColumnConfig = {}): ChainableStringColumn {\n return new ChainableStringColumn(config);\n}\n\n/** Integer column with database-generated values independent of primary-key membership. */\nexport class ChainableIntegerColumn<T extends \"int\" | \"bigint\"> extends ChainableColumn<T> {\n /** Assign values from the database sequence; does not imply a key or uniqueness. */\n autoincrement(): this {\n this.__config.autoincrement = true;\n return this;\n }\n}\n\n/** Int column. */\nexport function int(config: IntColumnConfig = {}): ChainableIntegerColumn<\"int\"> {\n return new ChainableIntegerColumn(\"int\", config);\n}\n\n/** Float column. */\nexport function float(config: FloatColumnConfig = {}): ChainableColumn<\"float\"> {\n return new ChainableColumn(\"float\", config);\n}\n\n/** Decimal column. */\nexport function decimal(config: DecimalColumnConfig = {}): ChainableDecimalColumn {\n return new ChainableDecimalColumn(config);\n}\n\n/** Boolean column. */\nexport function boolean(config: BooleanColumnConfig = {}): ChainableColumn<\"boolean\"> {\n return new ChainableColumn(\"boolean\", config);\n}\n\n/**\n * DateTime column.\n *\n * @example\n * dsl.datetime().defaultNow().updatedAt().tz()\n */\nexport function datetime(config: DatetimeColumnConfig = {}): ChainableDatetimeColumn {\n return new ChainableDatetimeColumn(config);\n}\n\n/** Json column with a consumer-declared payload type (typed JSON). */\nexport class ChainableJsonColumn extends ChainableColumn<\"json\"> {\n constructor(config: JsonColumnConfig = {}) {\n super(\"json\", config);\n }\n\n /**\n * Declares the TS type of this column's payload. Written as a\n * `/// @type(Name from \"specifier\")` doc comment — the annotation rides the\n * existing comment plumbing into the IR, and the generator substitutes the\n * named type (with its import) for `JsonValue` in the emitted `.d.ts`.\n * A TYPE assertion, not a runtime guarantee — pair with `validate` on the\n * client and/or a named `@@check` for enforcement.\n */\n typed(config: { name: string; from: string }): this {\n const annotation = `@type(${config.name} from \"${config.from}\")`;\n this.__config.comment =\n this.__config.comment === undefined ? annotation : `${this.__config.comment} ${annotation}`;\n return this;\n }\n}\n\n/** Json column. */\nexport function json(config: JsonColumnConfig = {}): ChainableJsonColumn {\n return new ChainableJsonColumn(config);\n}\n\n/**\n * Primary-key column.\n *\n * @example\n * dsl.id() // String @id @default(ulid())\n * dsl.id({ type: \"uuid\" }) // String @id @default(uuid())\n * dsl.id().type(\"autoincrement\") // Int @id @default(autoincrement())\n */\nexport function id(config: IdColumnConfig = {}): ChainableIdColumn {\n return new ChainableIdColumn(config);\n}\n\n/** Bytes column. */\nexport function bytes(config: BytesColumnConfig = {}): ChainableColumn<\"bytes\"> {\n return new ChainableColumn(\"bytes\", config);\n}\n\n/** BigInt column, for values beyond 32-bit ints. */\nexport function bigint(config: BigIntColumnConfig = {}): ChainableIntegerColumn<\"bigint\"> {\n return new ChainableIntegerColumn(\"bigint\", config);\n}\n\n/**\n * Column with a database-native type Prisma cannot model.\n *\n * @example\n * dsl.unsupported(\"tsvector\")\n * dsl.unsupported(\"geometry(Point, 4326)\")\n */\nexport function unsupported(dbType: string): ChainableColumn<\"unsupported\"> {\n const config: UnsupportedColumnConfig = { dbType };\n return new ChainableColumn(\"unsupported\", config);\n}\n\n/**\n * Column typed by a registered extension — the DSL twin of writing\n * `embedding Vector(1536)` in .prisma. The extension registry lowers it to a\n * native database type at `toIR` time; like `Unsupported`, it stays out of the\n * core queryable surface (the extension's client plane covers it).\n *\n * @example\n * embedding: dsl.extensionType({ type: \"Vector\", args: [1536] })\n */\nexport function extensionType(config: ExtensionTypeConfig): ChainableColumn<\"unsupported\"> {\n const { type, args, ...rest } = config;\n return new ChainableColumn(\"unsupported\", {\n ...rest,\n dbType: \"\",\n extensionType: type,\n extensionArgs: [...(args ?? [])],\n });\n}\n\n/**\n * Inline (one-off) enum column. For a reusable enum use\n * `dsl.enum({ name, options })` and its `.field()`.\n *\n * @example\n * dsl.enum({ options: [\"low\", \"high\"] }).default(\"low\")\n */\nexport function enumCol<const T extends readonly string[]>(\n config: InlineEnumConfig<T>\n): ChainableEnumColumn<T> {\n const { options, storage, ...restConfig } = config;\n // No enum name: `dsl.schema()` derives `${Model}${Column}` for inline enums.\n return new ChainableEnumColumn<T>({\n options,\n config: restConfig,\n ...(storage === undefined ? {} : { storage }),\n });\n}\n",
6
6
  "/**\n * Standalone (named, reusable) enums.\n *\n * @example\n * const Status = dsl.enum({ name: \"Status\", options: [\"active\", \"inactive\"] });\n *\n * const User = dsl.create({\n * name: \"User\",\n * schema: { id: dsl.id(), status: Status.field().default(\"active\") },\n * });\n */\n\nimport type { EnumStorage } from \"@vibeorm/schema\";\nimport { ChainableEnumColumn } from \"./column.ts\";\nimport type { EnumDef, EnumFieldConfig, EnumValues } from \"./types.ts\";\n\n// ─── Config ───────────────────────────────\n\n/** Config for a standalone enum — a `name` is what makes it standalone. */\nexport type StandaloneEnumConfig<T extends readonly string[] = readonly string[]> = {\n name: string;\n options: T;\n /**\n * Physical storage. `\"database\"` (default) keeps the native projection\n * (PostgreSQL enum type, MySQL ENUM, SQLite CHECK); `\"string\"` stores an\n * ordinary String column and lets VibeORM enforce membership.\n */\n storage?: EnumStorage;\n};\n\n/** Builds the frozen `{ DRAFT: \"DRAFT\", … }` authoring accessor. */\nfunction enumValuesOf<const T extends readonly string[]>(params: { options: T }): EnumValues<T> {\n const entries: Record<string, string> = Object.fromEntries(params.options.map((option) => [option, option]));\n return Object.freeze(entries) as EnumValues<T>;\n}\n\n// ─── Factory ──────────────────────────────\n\n/**\n * Creates a reusable enum. Its `field()` yields a chainable enum column that\n * references the enum by name, so every use shares one schema-level enum.\n *\n * @example\n * const Status = createEnum({ name: \"Status\", options: [\"active\", \"inactive\"] });\n * status: Status.field().optional().index()\n */\nexport function createEnum<const T extends readonly string[]>(\n config: StandaloneEnumConfig<T>\n): EnumDef<T> {\n const { name, options, storage = \"database\" } = config;\n return {\n __type: \"enum\",\n __name: name,\n __options: options,\n __storage: storage,\n values: enumValuesOf({ options }),\n field(fieldConfig: EnumFieldConfig<T> = {}): ChainableEnumColumn<T> {\n return new ChainableEnumColumn<T>({ options, config: fieldConfig, enumName: name, storage });\n },\n };\n}\n",
7
- "/**\n * Prisma schema text generator.\n *\n * Renders the schema plan (`relation-plan.ts`) — including the 1:1 merge pass —\n * as `.prisma` models and enums. Only models and enums are emitted: datasource\n * and generator blocks stay in the project's own base schema.\n *\n * The plan is shared with `toIR()`, so the text produced here parses back to\n * the same IR the DSL compiles to directly.\n */\n\nimport { VibeError, encodePrismaString, internalError, providerToDialect } from \"@vibeorm/schema\";\nimport type { EnumIR, FieldIR } from \"@vibeorm/schema\";\nimport { getSqlDialect } from \"@vibeorm/sql\";\nimport type { SqlDialect } from \"@vibeorm/sql\";\nimport { compileExclusions, compileChecks, compileIndexPredicate } from \"../predicate.ts\";\nimport type {\n DecimalColumnConfig,\n IdColumnConfig,\n ModelDef,\n PrismaGeneratorConfig,\n SchemaDef,\n StringColumnConfig,\n} from \"../types.ts\";\nimport type { ColumnDef } from \"../types.ts\";\nimport { buildField, fieldDefault } from \"../to-ir.ts\";\nimport { planSchema } from \"../relation-plan.ts\";\n\n/**\n * The model as a predicate compiler sees it: logical names, physical `@map`\n * names and scalar types, read from the SAME `buildField` the IR path uses so\n * a printed CHECK cannot disagree with a compiled one.\n */\nfunction predicateModel(params: { model: ModelDef }): { name: string; fields: FieldIR[] } {\n return {\n name: params.model.__name,\n fields: Array.from(params.model.__columns, ([name, column]) => buildField({ name, column })),\n };\n}\nimport type { PlannedIndex, PlannedRelation, SchemaPlan } from \"../relation-plan.ts\";\n\n// ─── Column rendering ─────────────────────\n\n/** Prisma type for a column, including the `[]` list suffix. */\nfunction prismaType(params: { column: ColumnDef }): string {\n const { column } = params;\n const list = column.__config.array === true ? \"[]\" : \"\";\n\n switch (column.__columnType) {\n case \"string\":\n return `String${list}`;\n case \"int\":\n return `Int${list}`;\n case \"bigint\":\n return `BigInt${list}`;\n case \"float\":\n return `Float${list}`;\n case \"decimal\":\n return `Decimal${list}`;\n case \"boolean\":\n return `Boolean${list}`;\n case \"datetime\":\n return `DateTime${list}`;\n case \"json\":\n return `Json${list}`;\n case \"bytes\":\n return `Bytes${list}`;\n case \"id\":\n return (column.__config as IdColumnConfig).type === \"autoincrement\" ? \"Int\" : \"String\";\n case \"enum\":\n return column.__enumName === undefined ? `String${list}` : `${column.__enumName}${list}`;\n case \"unsupported\": {\n // Extension column types round-trip as `Vector(1536)`, not Unsupported.\n const extensionTypeName = column.__config[\"extensionType\"];\n if (typeof extensionTypeName === \"string\") {\n const rawArgs = column.__config[\"extensionArgs\"];\n const args = Array.isArray(rawArgs) ? rawArgs.map(String).join(\", \") : \"\";\n return `${extensionTypeName}${args.length > 0 ? `(${args})` : \"\"}${list}`;\n }\n return `Unsupported(${encodePrismaString({ value: String(column.__config.dbType) })})${list}`;\n }\n }\n}\n\n/** `@default(...)` for a non-id column, or undefined when it has none. */\nfunction defaultAttribute(params: { column: ColumnDef }): string | undefined {\n const { column } = params;\n const value = fieldDefault({ column });\n if (value === undefined) return undefined;\n if (value.kind === \"list\") {\n const values = value.values.map((entry) => column.__columnType === \"enum\" ? String(entry) :\n column.__columnType === \"bigint\" ? String(entry) : JSON.stringify(entry));\n return `@default([${values.join(\", \")}])`;\n }\n if (value.kind === \"literal\") return `@default(${typeof value.value === \"string\" ? encodePrismaString({ value: value.value }) : String(value.value)})`;\n if (value.kind === \"enumValue\") return `@default(${value.value})`;\n if (value.kind === \"dbgenerated\") return `@default(dbgenerated(${encodePrismaString({ value: value.sql })}))`;\n return `@default(${value.kind}())`;\n}\n\n/** `@db.*` native type attribute, or undefined. */\nfunction nativeTypeAttribute(params: { column: ColumnDef }): string | undefined {\n const { column } = params;\n\n if (column.__columnType === \"string\") {\n const { maxLength, text } = column.__config as StringColumnConfig;\n if (typeof maxLength === \"number\") return `@db.VarChar(${maxLength})`;\n if (text === true) return \"@db.Text\";\n return undefined;\n }\n\n if (column.__columnType === \"decimal\") {\n const { precision, scale } = column.__config as DecimalColumnConfig;\n if (typeof precision === \"number\") return `@db.Decimal(${precision}, ${scale ?? 0})`;\n return undefined;\n }\n\n if (column.__columnType === \"datetime\" && column.__config.tz === true) {\n return \"@db.Timestamptz\";\n }\n\n return undefined;\n}\n\nfunction formatColumn(params: { name: string; column: ColumnDef }): string {\n const { name, column } = params;\n const parts: string[] = [` ${name} ${prismaType({ column })}${column.__config.optional === true ? \"?\" : \"\"}`];\n\n if (column.__columnType === \"id\") {\n parts.push(\"@id\");\n const idDefault = defaultAttribute({ column });\n if (idDefault !== undefined) parts.push(idDefault);\n } else {\n const columnDefault = defaultAttribute({ column });\n if (columnDefault !== undefined) parts.push(columnDefault);\n }\n\n if (column.__columnType === \"datetime\" && column.__config.updatedAt === true) {\n parts.push(\"@updatedAt\");\n }\n if (column.__config.unique === true) {\n parts.push(\"@unique\");\n }\n if (typeof column.__config.map === \"string\") {\n parts.push(`@map(${encodePrismaString({ value: column.__config.map })})`);\n }\n\n const nativeType = nativeTypeAttribute({ column });\n if (nativeType !== undefined) parts.push(nativeType);\n if (typeof column.__config.collation === \"string\") {\n parts.push(`@collation(${encodePrismaString({ value: column.__config.collation })})`);\n }\n\n const columnLine = parts.join(\" \");\n const comment = column.__config.comment;\n if (typeof comment === \"string\") {\n const commentLines = comment.split(\"\\n\").map((line) => ` /// ${line}`);\n return [...commentLines, columnLine].join(\"\\n\");\n }\n return columnLine;\n}\n\n// ─── Relation rendering ───────────────────\n\nfunction formatRelation(params: { relation: PlannedRelation }): string {\n const { relation } = params;\n const { name, targetModel, relationName } = relation;\n\n if (relation.kind === \"list\") {\n const attribute =\n relationName === undefined ? \"\" : ` @relation(${encodePrismaString({ value: relationName })})`;\n return ` ${name} ${targetModel}[]${attribute}`;\n }\n\n const optional = relation.isOptional ? \"?\" : \"\";\n\n if (relation.kind === \"backOne\") {\n const attribute =\n relationName === undefined ? \"\" : ` @relation(${encodePrismaString({ value: relationName })})`;\n return ` ${name} ${targetModel}${optional}${attribute}`;\n }\n\n const args: string[] = [];\n if (relationName !== undefined) args.push(encodePrismaString({ value: relationName }));\n if (relation.fields === undefined || relation.references === undefined) {\n throw internalError({\n message: `planned FK relation \"${relation.model}.${name}\" has no fields/references`,\n meta: { model: relation.model, relation: name },\n });\n }\n args.push(`fields: [${relation.fields.join(\", \")}]`);\n args.push(`references: [${relation.references.join(\", \")}]`);\n if (relation.onDelete !== undefined) args.push(`onDelete: ${relation.onDelete}`);\n if (relation.onUpdate !== undefined) args.push(`onUpdate: ${relation.onUpdate}`);\n // `map:` is the PHYSICAL constraint name; the positional argument above is\n // the relation alias. Prisma spells both on one attribute.\n if (relation.constraintName !== undefined) {\n args.push(`map: ${encodePrismaString({ value: relation.constraintName })}`);\n }\n\n return ` ${name} ${targetModel}${optional} @relation(${args.join(\", \")})`;\n}\n\n// ─── Index rendering ──────────────────────\n\nfunction formatIndex(params: {\n index: PlannedIndex;\n model: ModelDef;\n dialect: SqlDialect;\n enums: readonly EnumIR[];\n}): string {\n const { index } = params;\n const columns = index.columns.join(\", \");\n const predicate = compileIndexPredicate({\n where: index.where,\n wherePredicate: index.wherePredicate,\n columns: index.columns,\n model: predicateModel({ model: params.model }),\n dialect: params.dialect,\n enums: params.enums,\n });\n const whereArg = predicate === undefined ? \"\" : `, where: ${encodePrismaString({ value: predicate.where })}`;\n const mapArg = index.map === undefined ? \"\" : `, map: ${encodePrismaString({ value: index.map })}`;\n const nndArg = index.nullsNotDistinct === true ? \", nullsNotDistinct: true\" : \"\";\n const nameArg =\n index.clientName === undefined ? \"\" : `, name: ${encodePrismaString({ value: index.clientName })}`;\n if (index.isUnique) {\n return ` @@unique([${columns}]${nameArg}${mapArg}${nndArg}${whereArg})`;\n }\n const typeArg = index.indexType === undefined ? \"\" : `, type: ${index.indexType}`;\n return ` @@index([${columns}]${typeArg}${mapArg}${whereArg})`;\n}\n\n// ─── Extension attribute rendering ────────\n\n/** One named-argument value of an extension attribute, as .prisma text. */\nfunction formatExtensionValue(params: { value: unknown }): string {\n const { value } = params;\n if (typeof value === \"string\") return encodePrismaString({ value });\n if (Array.isArray(value)) {\n return `[${value.map((entry) => formatExtensionValue({ value: entry })).join(\", \")}]`;\n }\n return String(value);\n}\n\n// ─── Model rendering ──────────────────────\n\nfunction formatModel(params: {\n model: ModelDef;\n plan: SchemaPlan;\n dialect: SqlDialect;\n enums: readonly EnumIR[];\n}): string {\n const { model, plan } = params;\n const lines: string[] = [\n ...(model.__comment === undefined ? [] : model.__comment.split(\"\\n\").map((line) => `/// ${line}`)),\n `model ${model.__name} {`,\n ];\n\n lines.push(\" //> Columns\");\n for (const [name, column] of model.__columns) {\n lines.push(formatColumn({ name, column }));\n }\n\n lines.push(\"\");\n lines.push(\" //> Relations\");\n for (const relation of plan.relations.get(model.__name) ?? []) {\n lines.push(formatRelation({ relation }));\n }\n\n lines.push(\"\");\n lines.push(\" //> Indexes\");\n lines.push(\"\");\n for (const index of plan.indexes.get(model.__name) ?? []) {\n lines.push(formatIndex({ index, model: params.model, dialect: params.dialect, enums: params.enums }));\n }\n\n // A typed CHECK is compiled to SQL here, exactly as `toIR` compiles it, so\n // `parse(generate.prisma(s))` still reproduces `toIR(s)`. `.prisma` has no\n // syntax for a typed expression, so it lands as the raw `@@check` text it\n // renders to — the round trip preserves the CONSTRAINT, not the authoring form.\n for (const check of compileChecks({\n checks: model.__checks,\n model: predicateModel({ model: params.model }),\n dialect: params.dialect,\n enums: params.enums,\n })) {\n lines.push(\n ` @@check(${encodePrismaString({ value: check.expression })}, name: ${encodePrismaString({ value: check.name })})`,\n );\n }\n\n for (const use of model.__extensions ?? []) {\n const args: string[] = [];\n if (use.fields !== undefined) args.push(`[${use.fields.join(\", \")}]`);\n for (const [key, value] of Object.entries(use.args ?? {})) {\n args.push(`${key}: ${formatExtensionValue({ value })}`);\n }\n lines.push(` @@${use.attribute}(${args.join(\", \")})`);\n }\n\n if (model.__primaryKey !== undefined && model.__primaryKey.length > 0) {\n lines.push(` @@id([${model.__primaryKey.join(\", \")}])`);\n }\n if (model.__policy !== undefined) {\n // `context:` is omitted when it equals the field — the parser defaults it there.\n const { field, context } = model.__policy;\n const contextArg =\n context === undefined || context === field ? \"\" : `, context: ${encodePrismaString({ value: context })}`;\n lines.push(` @@policy([${field}]${contextArg})`);\n }\n if (typeof model.__map === \"string\") {\n lines.push(` @@map(${encodePrismaString({ value: model.__map })})`);\n }\n\n lines.push(\"}\");\n return lines.join(\"\\n\");\n}\n\n// ─── Enum rendering ───────────────────────\n\nfunction formatEnum(params: { name: string; values: readonly string[] }): string {\n const { name, values } = params;\n return [`enum ${name} {`, ...values.map((value) => ` ${value}`), \"}\"].join(\"\\n\");\n}\n\n// ─── Public API ───────────────────────────\n\n/**\n * Generates Prisma schema text (models + enums) for a composed schema.\n *\n * @example\n * const prisma = dsl.generate.prisma(dsl.schema({ User }, { relations }));\n */\nexport function generatePrisma(schema: SchemaDef, config: PrismaGeneratorConfig = {}): string {\n for (const model of schema.__models.values()) {\n const exclusions = compileExclusions({ exclusions: model.__exclusions, model: { name: model.__name, fields: Array.from(model.__columns, ([name, column]) => buildField({ name, column })) }, dialect: getSqlDialect({ dialect: providerToDialect({ provider: config.provider ?? \"postgresql\" }) }) });\n if (exclusions.length > 0) throw new VibeError({ code: \"VIBE_CONFIG\", message: \"Prisma output cannot preserve exclusion constraints; keep the DSL source\", meta: { feature: \"exclusionConstraints\", target: \"prisma\" } });\n }\n const stringEnums = [...schema.__enumStorage].filter(([, storage]) => storage === \"string\").map(([name]) => name);\n if (stringEnums.length > 0) {\n throw new VibeError({\n code: \"VIBE_CONFIG\",\n message: `Cannot print to Prisma: enum(s) ${stringEnums.join(\", \")} use storage: \"string\", which .prisma cannot express losslessly. Keep the DSL as the source or switch the enum to database storage.`,\n meta: { enums: stringEnums, target: \"prisma\" },\n });\n }\n if (schema.__rls !== undefined) {\n throw new VibeError({\n code: \"VIBE_CONFIG\",\n message: \"Cannot print to Prisma: this schema uses native RLS, which .prisma cannot express losslessly. Keep the DSL as the source.\",\n meta: { feature: \"nativeRowLevelSecurity\", target: \"prisma\" },\n });\n }\n const plan = planSchema({ schema });\n const sections: string[] = [];\n // Typed expressions need a dialect to become SQL text. Defaulting to\n // postgresql matches `toIR`'s own default, so one schema printed and one\n // schema compiled agree unless the caller says otherwise.\n const dialect = getSqlDialect({ dialect: providerToDialect({ provider: config.provider ?? \"postgresql\" }) });\n const enums: EnumIR[] = Array.from(schema.__enums, ([name, values]) => ({ name, values: [...values] }));\n\n if (schema.__enums.size > 0) {\n sections.push(\"// ============================================\");\n sections.push(\"// Enums\");\n sections.push(\"// ============================================\");\n sections.push(\"\");\n for (const [name, values] of schema.__enums) {\n sections.push(formatEnum({ name, values }));\n sections.push(\"\");\n }\n }\n\n sections.push(\"// ============================================\");\n sections.push(\"// Models\");\n sections.push(\"// ============================================\");\n sections.push(\"\");\n for (const model of schema.__models.values()) {\n sections.push(formatModel({ model, plan, dialect, enums }));\n sections.push(\"\");\n }\n\n return sections.join(\"\\n\").trim();\n}\n",
7
+ "/**\n * Prisma schema text generator.\n *\n * Renders the schema plan (`relation-plan.ts`) — including the 1:1 merge pass —\n * as `.prisma` models and enums. Only models and enums are emitted: datasource\n * and generator blocks stay in the project's own base schema.\n *\n * The plan is shared with `toIR()`, so the text produced here parses back to\n * the same IR the DSL compiles to directly.\n */\n\nimport { VibeError, encodePrismaString, internalError, providerToDialect } from \"@vibeorm/schema\";\nimport type { EnumIR, FieldIR } from \"@vibeorm/schema\";\nimport { getSqlDialect } from \"@vibeorm/sql\";\nimport type { SqlDialect } from \"@vibeorm/sql\";\nimport { compileExclusions, compileChecks, compileIndexPredicate } from \"../predicate.ts\";\nimport type {\n DecimalColumnConfig,\n IdColumnConfig,\n ModelDef,\n PrismaGeneratorConfig,\n SchemaDef,\n StringColumnConfig,\n} from \"../types.ts\";\nimport type { ColumnDef } from \"../types.ts\";\nimport { buildField, fieldDefault } from \"../to-ir.ts\";\nimport { planSchema } from \"../relation-plan.ts\";\n\n/**\n * The model as a predicate compiler sees it: logical names, physical `@map`\n * names and scalar types, read from the SAME `buildField` the IR path uses so\n * a printed CHECK cannot disagree with a compiled one.\n */\nfunction predicateModel(params: { model: ModelDef }): { name: string; fields: FieldIR[] } {\n return {\n name: params.model.__name,\n fields: Array.from(params.model.__columns, ([name, column]) => buildField({ name, column })),\n };\n}\nimport type { PlannedIndex, PlannedRelation, SchemaPlan } from \"../relation-plan.ts\";\n\n// ─── Column rendering ─────────────────────\n\n/** Prisma type for a column, including the `[]` list suffix. */\nfunction prismaType(params: { column: ColumnDef }): string {\n const { column } = params;\n const list = column.__config.array === true ? \"[]\" : \"\";\n\n switch (column.__columnType) {\n case \"string\":\n return `String${list}`;\n case \"int\":\n return `Int${list}`;\n case \"bigint\":\n return `BigInt${list}`;\n case \"float\":\n return `Float${list}`;\n case \"decimal\":\n return `Decimal${list}`;\n case \"boolean\":\n return `Boolean${list}`;\n case \"datetime\":\n return `DateTime${list}`;\n case \"json\":\n return `Json${list}`;\n case \"bytes\":\n return `Bytes${list}`;\n case \"id\":\n return (column.__config as IdColumnConfig).type === \"autoincrement\" ? \"Int\" : \"String\";\n case \"enum\":\n return column.__enumName === undefined ? `String${list}` : `${column.__enumName}${list}`;\n case \"unsupported\": {\n // Extension column types round-trip as `Vector(1536)`, not Unsupported.\n const extensionTypeName = column.__config[\"extensionType\"];\n if (typeof extensionTypeName === \"string\") {\n const rawArgs = column.__config[\"extensionArgs\"];\n const args = Array.isArray(rawArgs) ? rawArgs.map(String).join(\", \") : \"\";\n return `${extensionTypeName}${args.length > 0 ? `(${args})` : \"\"}${list}`;\n }\n return `Unsupported(${encodePrismaString({ value: String(column.__config.dbType) })})${list}`;\n }\n }\n}\n\n/** `@default(...)` for a non-id column, or undefined when it has none. */\nfunction defaultAttribute(params: { column: ColumnDef }): string | undefined {\n const { column } = params;\n const value = fieldDefault({ column });\n if (value === undefined) return undefined;\n if (value.kind === \"list\") {\n const values = value.values.map((entry) => column.__columnType === \"enum\" ? String(entry) :\n column.__columnType === \"bigint\" ? String(entry) : JSON.stringify(entry));\n return `@default([${values.join(\", \")}])`;\n }\n // Exact numeric digits carried as a string print as the NUMBER Prisma\n // expects on a numeric column (`@default(\"0\")` on Decimal is rejected).\n const numericColumn = column.__columnType === \"int\" || column.__columnType === \"bigint\" || column.__columnType === \"float\" || column.__columnType === \"decimal\";\n if (value.kind === \"literal\") return `@default(${typeof value.value === \"string\" && !(numericColumn && /^-?\\d+(\\.\\d+)?$/.test(value.value)) ? encodePrismaString({ value: value.value }) : String(value.value)})`;\n if (value.kind === \"enumValue\") return `@default(${value.value})`;\n if (value.kind === \"dbgenerated\") return `@default(dbgenerated(${encodePrismaString({ value: value.sql })}))`;\n return `@default(${value.kind}())`;\n}\n\n/** `@db.*` native type attribute, or undefined. */\nfunction nativeTypeAttribute(params: { column: ColumnDef }): string | undefined {\n const { column } = params;\n\n if (column.__columnType === \"string\") {\n const { maxLength, text } = column.__config as StringColumnConfig;\n if (typeof maxLength === \"number\") return `@db.VarChar(${maxLength})`;\n if (text === true) return \"@db.Text\";\n return undefined;\n }\n\n if (column.__columnType === \"decimal\") {\n const { precision, scale } = column.__config as DecimalColumnConfig;\n if (typeof precision === \"number\") return `@db.Decimal(${precision}, ${scale ?? 0})`;\n return undefined;\n }\n\n if (column.__columnType === \"datetime\" && column.__config.tz === true) {\n return \"@db.Timestamptz\";\n }\n\n return undefined;\n}\n\nfunction formatColumn(params: { name: string; column: ColumnDef }): string {\n const { name, column } = params;\n const parts: string[] = [` ${name} ${prismaType({ column })}${column.__config.optional === true ? \"?\" : \"\"}`];\n\n if (column.__columnType === \"id\") {\n parts.push(\"@id\");\n const idDefault = defaultAttribute({ column });\n if (idDefault !== undefined) parts.push(idDefault);\n } else {\n const columnDefault = defaultAttribute({ column });\n if (columnDefault !== undefined) parts.push(columnDefault);\n }\n\n if (column.__columnType === \"datetime\" && column.__config.updatedAt === true) {\n parts.push(\"@updatedAt\");\n }\n if (column.__config.unique === true) {\n parts.push(\"@unique\");\n }\n if (typeof column.__config.map === \"string\") {\n parts.push(`@map(${encodePrismaString({ value: column.__config.map })})`);\n }\n\n const nativeType = nativeTypeAttribute({ column });\n if (nativeType !== undefined) parts.push(nativeType);\n if (typeof column.__config.collation === \"string\") {\n parts.push(`@collation(${encodePrismaString({ value: column.__config.collation })})`);\n }\n\n const columnLine = parts.join(\" \");\n const comment = column.__config.comment;\n if (typeof comment === \"string\") {\n const commentLines = comment.split(\"\\n\").map((line) => ` /// ${line}`);\n return [...commentLines, columnLine].join(\"\\n\");\n }\n return columnLine;\n}\n\n// ─── Relation rendering ───────────────────\n\nfunction formatRelation(params: { relation: PlannedRelation }): string {\n const { relation } = params;\n const { name, targetModel, relationName } = relation;\n\n if (relation.kind === \"list\") {\n const attribute =\n relationName === undefined ? \"\" : ` @relation(${encodePrismaString({ value: relationName })})`;\n return ` ${name} ${targetModel}[]${attribute}`;\n }\n\n const optional = relation.isOptional ? \"?\" : \"\";\n\n if (relation.kind === \"backOne\") {\n const attribute =\n relationName === undefined ? \"\" : ` @relation(${encodePrismaString({ value: relationName })})`;\n return ` ${name} ${targetModel}${optional}${attribute}`;\n }\n\n const args: string[] = [];\n if (relationName !== undefined) args.push(encodePrismaString({ value: relationName }));\n if (relation.fields === undefined || relation.references === undefined) {\n throw internalError({\n message: `planned FK relation \"${relation.model}.${name}\" has no fields/references`,\n meta: { model: relation.model, relation: name },\n });\n }\n args.push(`fields: [${relation.fields.join(\", \")}]`);\n args.push(`references: [${relation.references.join(\", \")}]`);\n if (relation.onDelete !== undefined) args.push(`onDelete: ${relation.onDelete}`);\n if (relation.onUpdate !== undefined) args.push(`onUpdate: ${relation.onUpdate}`);\n // `map:` is the PHYSICAL constraint name; the positional argument above is\n // the relation alias. Prisma spells both on one attribute.\n if (relation.constraintName !== undefined) {\n args.push(`map: ${encodePrismaString({ value: relation.constraintName })}`);\n }\n\n return ` ${name} ${targetModel}${optional} @relation(${args.join(\", \")})`;\n}\n\n// ─── Index rendering ──────────────────────\n\nfunction formatIndex(params: {\n index: PlannedIndex;\n model: ModelDef;\n dialect: SqlDialect;\n enums: readonly EnumIR[];\n}): string {\n const { index } = params;\n const columns = index.columns.join(\", \");\n const predicate = compileIndexPredicate({\n where: index.where,\n wherePredicate: index.wherePredicate,\n columns: index.columns,\n model: predicateModel({ model: params.model }),\n dialect: params.dialect,\n enums: params.enums,\n });\n const whereArg = predicate === undefined ? \"\" : `, where: ${encodePrismaString({ value: predicate.where })}`;\n const mapArg = index.map === undefined ? \"\" : `, map: ${encodePrismaString({ value: index.map })}`;\n const nndArg = index.nullsNotDistinct === true ? \", nullsNotDistinct: true\" : \"\";\n const nameArg =\n index.clientName === undefined ? \"\" : `, name: ${encodePrismaString({ value: index.clientName })}`;\n if (index.isUnique) {\n return ` @@unique([${columns}]${nameArg}${mapArg}${nndArg}${whereArg})`;\n }\n const typeArg = index.indexType === undefined ? \"\" : `, type: ${index.indexType}`;\n return ` @@index([${columns}]${typeArg}${mapArg}${whereArg})`;\n}\n\n// ─── Extension attribute rendering ────────\n\n/** One named-argument value of an extension attribute, as .prisma text. */\nfunction formatExtensionValue(params: { value: unknown }): string {\n const { value } = params;\n if (typeof value === \"string\") return encodePrismaString({ value });\n if (Array.isArray(value)) {\n return `[${value.map((entry) => formatExtensionValue({ value: entry })).join(\", \")}]`;\n }\n return String(value);\n}\n\n// ─── Model rendering ──────────────────────\n\nfunction formatModel(params: {\n model: ModelDef;\n plan: SchemaPlan;\n dialect: SqlDialect;\n enums: readonly EnumIR[];\n}): string {\n const { model, plan } = params;\n const lines: string[] = [\n ...(model.__comment === undefined ? [] : model.__comment.split(\"\\n\").map((line) => `/// ${line}`)),\n `model ${model.__name} {`,\n ];\n\n lines.push(\" //> Columns\");\n for (const [name, column] of model.__columns) {\n lines.push(formatColumn({ name, column }));\n }\n\n lines.push(\"\");\n lines.push(\" //> Relations\");\n for (const relation of plan.relations.get(model.__name) ?? []) {\n lines.push(formatRelation({ relation }));\n }\n\n lines.push(\"\");\n lines.push(\" //> Indexes\");\n lines.push(\"\");\n for (const index of plan.indexes.get(model.__name) ?? []) {\n lines.push(formatIndex({ index, model: params.model, dialect: params.dialect, enums: params.enums }));\n }\n\n // A typed CHECK is compiled to SQL here, exactly as `toIR` compiles it, so\n // `parse(generate.prisma(s))` still reproduces `toIR(s)`. `.prisma` has no\n // syntax for a typed expression, so it lands as the raw `@@check` text it\n // renders to — the round trip preserves the CONSTRAINT, not the authoring form.\n for (const check of compileChecks({\n checks: model.__checks,\n model: predicateModel({ model: params.model }),\n dialect: params.dialect,\n enums: params.enums,\n })) {\n lines.push(\n ` @@check(${encodePrismaString({ value: check.expression })}, name: ${encodePrismaString({ value: check.name })})`,\n );\n }\n\n for (const use of model.__extensions ?? []) {\n const args: string[] = [];\n if (use.fields !== undefined) args.push(`[${use.fields.join(\", \")}]`);\n for (const [key, value] of Object.entries(use.args ?? {})) {\n args.push(`${key}: ${formatExtensionValue({ value })}`);\n }\n lines.push(` @@${use.attribute}(${args.join(\", \")})`);\n }\n\n if (model.__primaryKey !== undefined && model.__primaryKey.length > 0) {\n lines.push(` @@id([${model.__primaryKey.join(\", \")}])`);\n }\n if (model.__policy !== undefined) {\n // `context:` is omitted when it equals the field — the parser defaults it there.\n const { field, context } = model.__policy;\n const contextArg =\n context === undefined || context === field ? \"\" : `, context: ${encodePrismaString({ value: context })}`;\n lines.push(` @@policy([${field}]${contextArg})`);\n }\n if (typeof model.__map === \"string\") {\n lines.push(` @@map(${encodePrismaString({ value: model.__map })})`);\n }\n\n lines.push(\"}\");\n return lines.join(\"\\n\");\n}\n\n// ─── Enum rendering ───────────────────────\n\nfunction formatEnum(params: { name: string; values: readonly string[] }): string {\n const { name, values } = params;\n return [`enum ${name} {`, ...values.map((value) => ` ${value}`), \"}\"].join(\"\\n\");\n}\n\n// ─── Public API ───────────────────────────\n\n/**\n * Generates Prisma schema text (models + enums) for a composed schema.\n *\n * @example\n * const prisma = dsl.generate.prisma(dsl.schema({ User }, { relations }));\n */\nexport function generatePrisma(schema: SchemaDef, config: PrismaGeneratorConfig = {}): string {\n for (const model of schema.__models.values()) {\n const exclusions = compileExclusions({ exclusions: model.__exclusions, model: { name: model.__name, fields: Array.from(model.__columns, ([name, column]) => buildField({ name, column })) }, dialect: getSqlDialect({ dialect: providerToDialect({ provider: config.provider ?? \"postgresql\" }) }) });\n if (exclusions.length > 0) throw new VibeError({ code: \"VIBE_CONFIG\", message: \"Prisma output cannot preserve exclusion constraints; keep the DSL source\", meta: { feature: \"exclusionConstraints\", target: \"prisma\" } });\n }\n const stringEnums = [...schema.__enumStorage].filter(([, storage]) => storage === \"string\").map(([name]) => name);\n if (stringEnums.length > 0) {\n throw new VibeError({\n code: \"VIBE_CONFIG\",\n message: `Cannot print to Prisma: enum(s) ${stringEnums.join(\", \")} use storage: \"string\", which .prisma cannot express losslessly. Keep the DSL as the source or switch the enum to database storage.`,\n meta: { enums: stringEnums, target: \"prisma\" },\n });\n }\n if (schema.__rls !== undefined) {\n throw new VibeError({\n code: \"VIBE_CONFIG\",\n message: \"Cannot print to Prisma: this schema uses native RLS, which .prisma cannot express losslessly. Keep the DSL as the source.\",\n meta: { feature: \"nativeRowLevelSecurity\", target: \"prisma\" },\n });\n }\n const plan = planSchema({ schema });\n const sections: string[] = [];\n // Typed expressions need a dialect to become SQL text. Defaulting to\n // postgresql matches `toIR`'s own default, so one schema printed and one\n // schema compiled agree unless the caller says otherwise.\n const dialect = getSqlDialect({ dialect: providerToDialect({ provider: config.provider ?? \"postgresql\" }) });\n const enums: EnumIR[] = Array.from(schema.__enums, ([name, values]) => ({ name, values: [...values] }));\n\n if (schema.__enums.size > 0) {\n sections.push(\"// ============================================\");\n sections.push(\"// Enums\");\n sections.push(\"// ============================================\");\n sections.push(\"\");\n for (const [name, values] of schema.__enums) {\n sections.push(formatEnum({ name, values }));\n sections.push(\"\");\n }\n }\n\n sections.push(\"// ============================================\");\n sections.push(\"// Models\");\n sections.push(\"// ============================================\");\n sections.push(\"\");\n for (const model of schema.__models.values()) {\n sections.push(formatModel({ model, plan, dialect, enums }));\n sections.push(\"\");\n }\n\n return sections.join(\"\\n\").trim();\n}\n",
8
8
  "/**\n * The typed predicate builder — the `c` handed to a model's `checks` callback\n * and to an index's `.where()`.\n *\n * Every combinator returns plain {@link PredicateIR}: serializable data, never\n * a JavaScript callback. Nothing downstream evaluates a function, and a\n * predicate survives JSON unchanged. The SQL text is produced exactly once, by\n * `renderPredicate` in @vibeorm/sql, when the schema is compiled and the\n * dialect is finally known.\n *\n * The builder is structural at RUNTIME — it only records names and values — so\n * one instance serves every model. The type parameters on\n * {@link PredicateBuilder} are what bind it to a particular model's columns.\n */\n\nimport { VibeError } from \"@vibeorm/schema\";\nimport type { ExclusionIR, CheckIR, EnumIR, FieldIR, PredicateIR, PredicateValue } from \"@vibeorm/schema\";\nimport { compileExclusion, renderPredicate } from \"@vibeorm/sql\";\nimport type { SqlDialect } from \"@vibeorm/sql\";\nimport type {\n ModelDef,\n ChecksCallback,\n ModelCheckConfig,\n NamedCheckDef,\n PredicateBuilder,\n PredicateFieldExpr,\n SchemaDefinition,\n} from \"./types.ts\";\n\n// ─── Operand normalization ────────────────────────────────────────\n\n/** Is this operand another field reference rather than a literal? */\nfunction isFieldExpr(operand: unknown): operand is PredicateFieldExpr {\n return (\n typeof operand === \"object\" &&\n operand !== null &&\n \"kind\" in operand &&\n (operand as { kind: unknown }).kind === \"field\"\n );\n}\n\n/**\n * Strip the pairing tag: the IR carries `{ kind: \"field\", name }` and nothing\n * else, so `__kind` never reaches a serialized schema.\n */\nfunction toRef(params: { expr: PredicateFieldExpr }): { readonly kind: \"field\"; readonly name: string } {\n return { kind: \"field\", name: params.expr.name };\n}\n\n/**\n * A literal in JSON-safe carrier form.\n *\n * A `bigint` becomes its EXACT decimal text: `Number(9007199254740993n)` is a\n * different number, the same trap column defaults already guard against, and\n * the rounding would happen before any SQL existed.\n */\nfunction toValue(params: { input: unknown; at: string }): PredicateValue {\n const { input, at } = params;\n if (typeof input === \"bigint\") return { kind: \"value\", value: input.toString() };\n if (typeof input === \"string\" || typeof input === \"number\" || typeof input === \"boolean\") {\n return { kind: \"value\", value: input };\n }\n throw new VibeError({\n code: \"VIBE_SCHEMA_INVALID\",\n message: `${at}: ${input === null ? \"null\" : typeof input} is not a comparable literal — use isNull()/isNotNull() for null, and a string, number, bigint or boolean otherwise`,\n meta: { rule: \"predicate-literal-invalid\", at },\n });\n}\n\nfunction toOperand(params: { operand: unknown; at: string }):\n | { readonly kind: \"field\"; readonly name: string }\n | PredicateValue {\n const { operand, at } = params;\n return isFieldExpr(operand) ? toRef({ expr: operand }) : toValue({ input: operand, at });\n}\n\nfunction requireFieldExpr(params: { value: unknown; at: string }): PredicateFieldExpr {\n const { value, at } = params;\n if (isFieldExpr(value)) return value;\n throw new VibeError({\n code: \"VIBE_SCHEMA_INVALID\",\n message: `${at}: the left side of a comparison must be c.field(\"…\"), not a bare value`,\n meta: { rule: \"predicate-operand-invalid\", at },\n });\n}\n\nfunction requireOperands(params: { operands: readonly PredicateIR[]; at: string }): readonly PredicateIR[] {\n const { operands, at } = params;\n if (operands.length === 0) {\n throw new VibeError({\n code: \"VIBE_SCHEMA_INVALID\",\n message: `${at}: an empty boolean group has no honest SQL spelling — pass at least one operand`,\n meta: { rule: \"predicate-empty\", at },\n });\n }\n return operands;\n}\n\n// ─── The builder ──────────────────────────────────────────────────\n\n/**\n * One predicate builder instance. Stateless and structural — the type\n * parameters, not the value, bind it to a model.\n */\nexport function createPredicateBuilder<\n TColumns extends string = string,\n TSchema extends SchemaDefinition = SchemaDefinition,\n>(): PredicateBuilder<TColumns, TSchema> {\n const compare = (op: \"eq\" | \"ne\" | \"gt\" | \"gte\" | \"lt\" | \"lte\") =>\n (left: unknown, right: unknown): PredicateIR => ({\n kind: \"compare\",\n op,\n left: toRef({ expr: requireFieldExpr({ value: left, at: `c.${op}()` }) }),\n right: toOperand({ operand: right, at: `c.${op}()` }),\n });\n\n const membership = (negate: boolean) =>\n (field: unknown, values: readonly unknown[]): PredicateIR => {\n const at = negate ? \"c.notInList()\" : \"c.inList()\";\n const ref = toRef({ expr: requireFieldExpr({ value: field, at }) });\n if (values.length === 0) {\n throw new VibeError({\n code: \"VIBE_SCHEMA_INVALID\",\n message: `${at}: an empty IN list is UNKNOWN on every row and is never what an author means`,\n meta: { rule: \"predicate-empty\", at, field: ref.name },\n });\n }\n return {\n kind: \"inList\",\n field: ref,\n values: values.map((value) => toValue({ input: value, at })),\n ...(negate ? { negate: true as const } : {}),\n };\n };\n\n // The cast is the ONE place the structural runtime builder meets its\n // model-bound type: every method below matches its declared signature, but\n // the generic tag parameters exist only at the type level.\n return {\n field: (name) => ({ kind: \"field\", name, __kind: \"String\" }) as never,\n\n eq: compare(\"eq\"),\n ne: compare(\"ne\"),\n gt: compare(\"gt\"),\n gte: compare(\"gte\"),\n lt: compare(\"lt\"),\n lte: compare(\"lte\"),\n\n inList: membership(false),\n notInList: membership(true),\n\n isNull: (name) => ({ kind: \"isNull\", field: { kind: \"field\", name } }),\n isNotNull: (name) => ({ kind: \"isNull\", field: { kind: \"field\", name }, negate: true }),\n\n and: (...operands) => ({ kind: \"and\", operands: requireOperands({ operands, at: \"c.and()\" }) }),\n or: (...operands) => ({ kind: \"or\", operands: requireOperands({ operands, at: \"c.or()\" }) }),\n not: (operand) => ({ kind: \"not\", operand }),\n\n named: (name, predicate) => {\n if (name.trim() === \"\") {\n throw new VibeError({\n code: \"VIBE_SCHEMA_INVALID\",\n message: \"c.named(): a CHECK needs a non-empty name — the name is what keys the migration diff\",\n meta: { rule: \"predicate-unnamed-check\" },\n });\n }\n return { __type: \"check\", name, predicate };\n },\n } as PredicateBuilder<TColumns, TSchema>;\n}\n\n// ─── Evaluating a model's declarations ────────────────────────────\n\n/** A model's CHECKs, still un-rendered: raw text stays raw, typed stays typed. */\nexport type EvaluatedCheck =\n | { readonly kind: \"raw\"; readonly name: string; readonly expression: string }\n | { readonly kind: \"typed\"; readonly name: string; readonly predicate: PredicateIR };\n\n/**\n * Run a model's `checks` declaration, whichever form it took.\n *\n * The raw array form and the typed callback form produce the same shape of\n * answer, so every consumer downstream handles ONE list — and raw text is\n * carried through untouched rather than parsed into a predicate.\n */\nexport function evaluateChecks(params: {\n checks: readonly ModelCheckConfig[] | ChecksCallback | undefined;\n model: string;\n}): readonly EvaluatedCheck[] {\n const { checks, model } = params;\n if (checks === undefined) return [];\n\n if (typeof checks !== \"function\") {\n return checks.map((check) => ({ kind: \"raw\" as const, name: check.name, expression: check.expression }));\n }\n\n const declared: NamedCheckDef[] = checks(createPredicateBuilder());\n return declared.map((entry, index) => {\n if (entry === null || typeof entry !== \"object\" || entry.__type !== \"check\") {\n throw new VibeError({\n code: \"VIBE_SCHEMA_INVALID\",\n message: `Model \"${model}\": checks[${index}] is not a named CHECK — wrap the expression in c.named(\"name\", …)`,\n meta: { rule: \"predicate-unnamed-check\", model, index },\n });\n }\n return { kind: \"typed\" as const, name: entry.name, predicate: entry.predicate };\n });\n}\n\n// ─── Compiling to IR ──────────────────────────────────────────────\n\n/** What a predicate needs to know about the model it belongs to. */\nexport type PredicateModel = {\n readonly name: string;\n readonly fields: readonly FieldIR[];\n};\n\n/**\n * A model's CHECKs as IR, with every typed expression compiled to SQL ONCE.\n *\n * `CheckIR.expression` always carries the AUTHORED text — what the schema says,\n * not what a database deparsed back — because that is the currency EPIC 1's\n * differ, desired-state records and DDL renderers all read. The predicate rides\n * alongside as the structured source, so editing a typed expression changes the\n * text and produces a real migration, while re-rendering an unchanged one\n * produces byte-identical text and cannot churn.\n */\n/** Compile exclusions beside CHECKs and index predicates at the schema boundary. */\nexport function compileExclusions(params: { exclusions: ModelDef[\"__exclusions\"]; model: PredicateModel; dialect: SqlDialect }): readonly ExclusionIR[] {\n const specs = typeof params.exclusions === \"function\" ? params.exclusions(createPredicateBuilder()) : params.exclusions ?? [];\n return specs.map((exclusion) => compileExclusion({ exclusion, model: params.model, dialect: params.dialect }));\n}\n\nexport function compileChecks(params: {\n checks: readonly ModelCheckConfig[] | ChecksCallback | undefined;\n model: PredicateModel;\n dialect: SqlDialect;\n enums: readonly EnumIR[];\n}): readonly CheckIR[] {\n const { checks, model, dialect, enums } = params;\n return evaluateChecks({ checks, model: model.name }).map((check) =>\n check.kind === \"raw\"\n ? { name: check.name, expression: check.expression }\n : {\n name: check.name,\n expression: renderPredicate({\n predicate: check.predicate,\n model,\n dialect,\n enums,\n usage: \"check\",\n site: `CHECK \"${check.name}\"`,\n }),\n predicate: check.predicate,\n },\n );\n}\n\n/**\n * An index's partial predicate as IR: the raw string verbatim, or a typed\n * expression compiled to SQL text plus its structured source.\n */\nexport function compileIndexPredicate(params: {\n where: string | undefined;\n wherePredicate: PredicateIR | undefined;\n columns: readonly string[];\n model: PredicateModel;\n dialect: SqlDialect;\n enums: readonly EnumIR[];\n}): { readonly where: string; readonly wherePredicate?: PredicateIR } | undefined {\n const { where, wherePredicate, columns, model, dialect, enums } = params;\n\n if (where !== undefined && wherePredicate !== undefined) {\n throw new VibeError({\n code: \"VIBE_SCHEMA_INVALID\",\n message: `Index on \"${model.name}\" [${columns.join(\", \")}] carries both a raw where: string and a typed .where() — an index has ONE predicate`,\n meta: { rule: \"predicate-duplicate-where\", model: model.name, columns: [...columns] },\n });\n }\n if (where !== undefined) return { where };\n if (wherePredicate === undefined) return undefined;\n\n return {\n where: renderPredicate({\n predicate: wherePredicate,\n model,\n dialect,\n enums,\n usage: \"indexPredicate\",\n site: `partial index on [${columns.join(\", \")}]`,\n }),\n wherePredicate,\n };\n}\n",
9
9
  "/**\n * DSL → canonical `SchemaIR`.\n *\n * The DSL compiles straight to IR (no `.prisma` round-trip). It reads the same\n * schema plan the Prisma generator renders, so one logical schema produces the\n * same IR whether it arrives as `.prisma` text or as TypeScript.\n *\n * Mapping decisions, all mirroring what parsing `generate.prisma(schema)` yields:\n * - `dsl.id()` → `isId` + a `DefaultValueIR` per strategy (`ulid` / `cuid` /\n * `uuid` / `nanoid` app-side, `autoincrement` for serial ints, which is the\n * only strategy typed `Int`; `\"none\"` emits no default).\n * - `dsl.datetime({ default: \"now\" })` → `{ kind: \"now\" }`; `.updatedAt()` →\n * `isUpdatedAt`; `.tz()` → native type `Timestamptz`.\n * - `.maxLength(n)` / `.text()` / `.precision(p, s)` → native types\n * `VarChar(n)` / `Text` / `Decimal(p, s)`.\n * - `.map()` / model `map` → `dbName`; `.comment()` / model `comment` →\n * `documentation`; `collation` → `FieldIR.collation`.\n * - model `policy: { field, context }` → `ModelIR.policy` with `context`\n * defaulting to the field name (parser parity).\n * - `dsl.unsupported(\"tsvector\")` → `isUnsupported: true` + native type\n * `\"tsvector\"` over a nominal `String` base. The flag is what keeps the column\n * OUT of the queryable surface — it is kept in the IR for schema fidelity\n * (convert, migrate DDL), never projected or written.\n * - inline enums become schema-level enums named `${Model}${Column}`;\n * `storage: \"string\"` rides onto `EnumIR.storage` (omitted for the default).\n * - `.collation()` / `{ collation }` → `FieldIR.collation`.\n * - relation types are derived structurally by `resolveRelationType`.\n */\n\nimport {\n EMPTY_EXTENSION_REGISTRY,\n VibeError,\n assertValidSchemaIR,\n exactIntegerLiteral,\n providerToDialect,\n scalarListDefault,\n serializeJsonDefault,\n mergeExtensionDeclarations,\n} from \"@vibeorm/schema\";\nimport type {\n DefaultValueIR,\n EnumIR,\n ExtensionDeclIR,\n ExtensionRegistry,\n FieldIR,\n FieldType,\n IndexIR,\n IndexKind,\n ModelIR,\n Provider,\n RelationIR,\n SchemaIR,\n ValidationIssue,\n} from \"@vibeorm/schema\";\nimport { getSqlDialect } from \"@vibeorm/sql\";\nimport type { SqlDialect } from \"@vibeorm/sql\";\nimport { columnFieldType } from \"./field-type.ts\";\nimport { compileExclusions, compileChecks, compileIndexPredicate } from \"./predicate.ts\";\nimport type { PredicateModel } from \"./predicate.ts\";\nimport { planSchema, resolveRelationType } from \"./relation-plan.ts\";\nimport type { PlannedIndex, PlannedRelation, SchemaPlan } from \"./relation-plan.ts\";\nimport type {\n ColumnDef,\n DecimalColumnConfig,\n IdColumnConfig,\n IndexType,\n ModelDef,\n SchemaDef,\n StringColumnConfig,\n} from \"./types.ts\";\n\n// ─── Field type ───────────────────────────\n\n/**\n * The IR field type of a column — the same mapping relation planning pairs\n * foreign keys by (`./field-type.ts`), so the two can never drift apart.\n */\nconst fieldType = columnFieldType;\n\n// ─── Defaults ─────────────────────────────\n\nfunction idDefault(params: { column: ColumnDef }): DefaultValueIR | undefined {\n switch ((params.column.__config as IdColumnConfig).type) {\n case \"ulid\":\n return { kind: \"ulid\" };\n case \"cuid\":\n return { kind: \"cuid\" };\n case \"uuid\":\n return { kind: \"uuid\" };\n case \"nanoid\":\n return { kind: \"nanoid\" };\n case \"autoincrement\":\n return { kind: \"autoincrement\" };\n default:\n return undefined;\n }\n}\n\n/** Compile a column default once for both DSL output paths. */\nexport function fieldDefault(params: { column: ColumnDef }): DefaultValueIR | undefined {\n const { column } = params;\n if (column.__columnType === \"id\") {\n if (column.__config.default !== undefined || column.__config.dbgenerated !== undefined || column.__config.autoincrement !== undefined) throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: \"Use the id generator strategy instead of a conflicting id default\" });\n return idDefault({ column });\n }\n\n const { dbgenerated, default: value, autoincrement } = column.__config;\n if ([dbgenerated !== undefined, value !== undefined, autoincrement === true].filter(Boolean).length > 1) {\n throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: `Column \"${column.__name ?? column.__columnType}\" has conflicting defaults` });\n }\n if (autoincrement === true) {\n if ((column.__columnType !== \"int\" && column.__columnType !== \"bigint\") || column.__config.array === true || column.__config.optional === true) {\n throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: \"autoincrement requires a required scalar Int or BigInt column\" });\n }\n return { kind: \"autoincrement\" };\n }\n if (typeof dbgenerated === \"string\") return { kind: \"dbgenerated\", sql: dbgenerated };\n if (value === undefined) return undefined;\n if (column.__config.array === true) {\n if (!Array.isArray(value)) throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: \"A scalar-list default must be an array\" });\n return { kind: \"list\", values: scalarListDefault({ type: fieldType({ column }), values: column.__columnType === \"json\" ? value.map((entry) => typeof entry === \"string\" ? entry : serializeJsonDefault({ value: entry })) : value }) };\n }\n if (column.__columnType === \"json\" && typeof value !== \"string\") {\n return { kind: \"literal\", value: serializeJsonDefault({ value }) };\n }\n\n if (column.__columnType === \"datetime\" && value === \"now\") return { kind: \"now\" };\n if ((column.__columnType === \"datetime\" && value instanceof Date) || (column.__columnType === \"bytes\" && value instanceof Uint8Array)) {\n return { kind: \"literal\", value: scalarListDefault({ type: fieldType({ column }), values: [value] })[0]! };\n }\n if (column.__columnType === \"enum\" && typeof value === \"string\") {\n return { kind: \"enumValue\", value };\n }\n if (typeof value === \"number\" && (!Number.isFinite(value) || ((column.__columnType === \"int\" || column.__columnType === \"bigint\") && !Number.isSafeInteger(value)))) {\n throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: \"Numeric defaults must be finite; integer defaults must be exact\" });\n }\n if (typeof value === \"string\" || typeof value === \"boolean\" || typeof value === \"number\") {\n return { kind: \"literal\", value };\n }\n // A bigint default keeps every digit: `Number(9007199254740993n)` is a\n // DIFFERENT number, and the rounding used to happen before any SQL existed.\n if (typeof value === \"bigint\") return { kind: \"literal\", value: exactIntegerLiteral({ text: value.toString() }) };\n throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: `Unsupported default for ${column.__columnType}` });\n}\n\n// ─── Native types ─────────────────────────\n\nfunction nativeType(params: { column: ColumnDef }): string | undefined {\n const { column } = params;\n\n if (column.__columnType === \"enum\") {\n const { maxLength, text } = column.__config;\n if (maxLength !== undefined || text !== undefined) {\n const invalid = column.__enumStorage !== \"string\" ||\n (maxLength !== undefined && (typeof maxLength !== \"number\" || !Number.isSafeInteger(maxLength) || maxLength <= 0)) ||\n (text !== undefined && typeof text !== \"boolean\") ||\n (text === true && maxLength !== undefined);\n if (invalid) {\n throw new VibeError({\n code: \"VIBE_SCHEMA_INVALID\",\n message: \"Enum text/maxLength options require string storage and either a positive integer maxLength or text: true, not both\",\n meta: { issues: [{ rule: \"enum-string-storage-options\", enum: column.__enumName }] },\n });\n }\n }\n }\n if (column.__columnType === \"string\" || (column.__columnType === \"enum\" && column.__enumStorage === \"string\")) {\n const { maxLength, text } = column.__config as StringColumnConfig;\n if (typeof maxLength === \"number\") return `VarChar(${maxLength})`;\n if (text === true) return \"Text\";\n return undefined;\n }\n if (column.__columnType === \"decimal\") {\n const { precision, scale } = column.__config as DecimalColumnConfig;\n if (typeof precision === \"number\") return `Decimal(${precision}, ${scale ?? 0})`;\n return undefined;\n }\n if (column.__columnType === \"datetime\" && column.__config.tz === true) {\n return \"Timestamptz\";\n }\n if (column.__columnType === \"unsupported\") {\n return String(column.__config.dbType);\n }\n return undefined;\n}\n\n// ─── Fields ───────────────────────────────\n\n/**\n * One column as `FieldIR`.\n *\n * Exported so the `.prisma` printer compiles typed CHECK and partial-index\n * expressions against exactly the same physical names and scalar types the IR\n * path uses — a second mapping is how the two would drift apart.\n */\nexport function buildField(params: {\n name: string;\n column: ColumnDef;\n /** Native type resolved by an extension field-type lowering, when present. */\n extensionNativeType?: string;\n}): FieldIR {\n const { name, column, extensionNativeType } = params;\n const config = column.__config;\n\n // A primary key is never a list; every other kind honours `.array()`.\n const isList = column.__columnType !== \"id\" && config.array === true;\n\n const dbName = typeof config.map === \"string\" ? config.map : undefined;\n const documentation = typeof config.comment === \"string\" ? config.comment : undefined;\n // Read on every column kind; `assertValidSchemaIR` refuses it off String\n // fields (`collation-non-string`), so the rule lives in one place.\n const collation = typeof config.collation === \"string\" ? config.collation : undefined;\n const defaultValue = fieldDefault({ column });\n const native = extensionNativeType ?? nativeType({ column });\n\n return {\n name,\n type: fieldType({ column }),\n isList,\n isOptional: config.optional === true,\n isId: column.__columnType === \"id\",\n isUnique: config.unique === true,\n isUpdatedAt: column.__columnType === \"datetime\" && config.updatedAt === true,\n ...(collation === undefined ? {} : { collation }),\n ...(dbName === undefined ? {} : { dbName }),\n ...(defaultValue === undefined ? {} : { default: defaultValue }),\n ...(native === undefined ? {} : { nativeType: native }),\n ...(column.__columnType === \"unsupported\" ? { isUnsupported: true as const } : {}),\n ...(documentation === undefined ? {} : { documentation }),\n };\n}\n\n// ─── Relations ────────────────────────────\n\nfunction buildRelation(params: { relation: PlannedRelation; plan: SchemaPlan }): RelationIR {\n const { relation, plan } = params;\n\n return {\n name: relation.name,\n model: relation.model,\n targetModel: relation.targetModel,\n type: resolveRelationType({ relation, plan }),\n isList: relation.isList,\n isOptional: relation.isOptional,\n ...(relation.relationName === undefined ? {} : { relationName: relation.relationName }),\n ...(relation.constraintName === undefined ? {} : { constraintName: relation.constraintName }),\n ...(relation.fields === undefined ? {} : { fields: [...relation.fields] }),\n ...(relation.references === undefined ? {} : { references: [...relation.references] }),\n ...(relation.onDelete === undefined ? {} : { onDelete: relation.onDelete }),\n ...(relation.onUpdate === undefined ? {} : { onUpdate: relation.onUpdate }),\n };\n}\n\n// ─── Indexes ──────────────────────────────\n\nconst INDEX_KINDS: Readonly<Record<IndexType, IndexKind>> = {\n BTree: \"btree\",\n Hash: \"hash\",\n Gin: \"gin\",\n Gist: \"gist\",\n SpGist: \"spgist\",\n Brin: \"brin\",\n};\n\nfunction buildIndex(params: {\n index: PlannedIndex;\n model: PredicateModel;\n dialect: SqlDialect;\n enums: readonly EnumIR[];\n}): IndexIR {\n const { index, model, dialect, enums } = params;\n const kind: IndexKind = index.isUnique\n ? \"unique\"\n : index.indexType === undefined\n ? \"btree\"\n : INDEX_KINDS[index.indexType];\n\n // A typed predicate becomes SQL text HERE, once, where the dialect is known;\n // a raw string is carried through verbatim.\n const predicate = compileIndexPredicate({\n where: index.where,\n wherePredicate: index.wherePredicate,\n columns: index.columns,\n model,\n dialect,\n enums,\n });\n\n return {\n kind,\n fields: index.columns.map((name) => ({ name })),\n ...(index.map === undefined ? {} : { name: index.map }),\n ...(predicate === undefined ? {} : { where: predicate.where }),\n ...(predicate?.wherePredicate === undefined ? {} : { wherePredicate: predicate.wherePredicate }),\n ...(index.nullsNotDistinct === true ? { nullsNotDistinct: true } : {}),\n ...(index.clientName === undefined ? {} : { clientName: index.clientName }),\n };\n}\n\n// ─── Models ───────────────────────────────\n\nfunction buildModel(params: {\n model: ModelDef;\n plan: SchemaPlan;\n extensions: ExtensionRegistry;\n declarations: ExtensionDeclarationCollector;\n issues: ValidationIssue[];\n dialect: SqlDialect;\n enums: readonly EnumIR[];\n}): ModelIR {\n const { model, plan, extensions, declarations, issues, dialect, enums } = params;\n const primaryKey =\n model.__primaryKey !== undefined && model.__primaryKey.length > 0\n ? { fields: [...model.__primaryKey] }\n : undefined;\n const policy =\n model.__policy === undefined\n ? undefined\n : { field: model.__policy.field, context: model.__policy.context ?? model.__policy.field };\n\n const fields: FieldIR[] = [];\n for (const [name, column] of model.__columns) {\n const extensionTypeName = column.__config[\"extensionType\"];\n if (typeof extensionTypeName !== \"string\") {\n fields.push(buildField({ name, column }));\n continue;\n }\n // Extension column type — lowered by the same registry hook the parser uses.\n const registered = extensions.fieldTypes.get(extensionTypeName);\n if (registered === undefined) {\n issues.push({\n rule: \"extension-attribute\",\n message: `Field \"${model.__name}.${name}\" uses extension type \"${extensionTypeName}\" but no configured extension provides it`,\n model: model.__name,\n field: name,\n });\n continue;\n }\n const rawArgs = column.__config[\"extensionArgs\"];\n const lowered = registered.fieldType.lower({\n model: model.__name,\n field: name,\n args: Array.isArray(rawArgs)\n ? rawArgs.filter(\n (entry): entry is string | number =>\n typeof entry === \"string\" || typeof entry === \"number\",\n )\n : [],\n });\n if (\"error\" in lowered) {\n issues.push({\n rule: \"extension-attribute\",\n message: `Field \"${model.__name}.${name}\": ${lowered.error}`,\n model: model.__name,\n field: name,\n });\n continue;\n }\n fields.push(buildField({ name, column, extensionNativeType: lowered.nativeType }));\n if (lowered.declaration !== undefined) {\n declarations.add({\n extension: registered.extension.name,\n model: model.__name,\n declaration: lowered.declaration,\n });\n }\n }\n\n // Model-level extension attributes route through the same parse hook as @@attrs.\n for (const use of model.__extensions ?? []) {\n const registered = extensions.modelAttributes.get(use.attribute);\n if (registered === undefined) {\n issues.push({\n rule: \"unknown-attribute\",\n message: `Unknown block attribute \"@@${use.attribute}\" on model \"${model.__name}\" — no extension provides it`,\n model: model.__name,\n });\n continue;\n }\n const parsed = registered.attribute.parse({\n model: model.__name,\n args: {\n named: { ...(use.args ?? {}) },\n ...(use.fields === undefined ? {} : { fields: use.fields }),\n },\n fieldNames: fields.map((field) => field.name),\n });\n if (\"error\" in parsed) {\n issues.push({\n rule: \"extension-attribute\",\n message: `@@${use.attribute} on \"${model.__name}\": ${parsed.error}`,\n model: model.__name,\n });\n continue;\n }\n declarations.add({\n extension: registered.extension.name,\n model: model.__name,\n declaration: parsed.declaration,\n });\n }\n\n // Predicates read the built fields, so `@map`ped physical names and the exact\n // scalar types are the ones the rest of the IR carries.\n const predicateModel: PredicateModel = { name: model.__name, fields };\n const exclusions = compileExclusions({ exclusions: model.__exclusions, model: predicateModel, dialect });\n const checks = compileChecks({ checks: model.__checks, model: predicateModel, dialect, enums });\n\n return {\n name: model.__name,\n ...(model.__map === undefined ? {} : { dbName: model.__map }),\n fields,\n relations: (plan.relations.get(model.__name) ?? []).map((relation) =>\n buildRelation({ relation, plan })\n ),\n indexes: (plan.indexes.get(model.__name) ?? []).map((index) =>\n buildIndex({ index, model: predicateModel, dialect, enums }),\n ),\n ...(exclusions.length === 0 ? {} : { exclusions }),\n ...(checks.length === 0 ? {} : { checks }),\n ...(policy === undefined ? {} : { policy }),\n ...(primaryKey === undefined ? {} : { primaryKey }),\n isView: false,\n ...(model.__comment === undefined ? {} : { documentation: model.__comment }),\n };\n}\n\n// ─── Extension declarations ─────────────────────────────────\n\n/** extension → model → merged declaration; sorted output matches the parser. */\nclass ExtensionDeclarationCollector {\n private readonly byExtension = new Map<string, Map<string, Record<string, unknown>>>();\n\n add(params: {\n extension: string;\n model: string;\n declaration: Readonly<Record<string, unknown>>;\n }): void {\n const perModel =\n this.byExtension.get(params.extension) ?? new Map<string, Record<string, unknown>>();\n this.byExtension.set(params.extension, perModel);\n const existing = perModel.get(params.model) ?? {};\n perModel.set(\n params.model,\n mergeExtensionDeclarations({ base: existing, next: params.declaration }),\n );\n }\n\n toIR(): ExtensionDeclIR[] {\n return [...this.byExtension.entries()]\n .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))\n .map(([name, perModel]) => ({\n name,\n options: {\n models: Object.fromEntries(\n [...perModel.entries()].sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0)),\n ),\n },\n }));\n }\n}\n\n// ─── Public API ───────────────────────────\n\n/**\n * Compiles a composed DSL schema to the canonical `SchemaIR`, then validates it.\n *\n * @throws VibeError `VIBE_SCHEMA_INVALID` when the resulting IR fails\n * `assertValidSchemaIR` (unknown relation targets, missing primary keys, …).\n *\n * @example\n * const ir = dsl.toIR({ schema: dsl.schema({ User }, { relations }) });\n * const sqlite = dsl.toIR({ schema, provider: \"sqlite\" });\n */\nexport function toIR(params: {\n schema: SchemaDef;\n provider?: Provider;\n extensions?: ExtensionRegistry;\n}): SchemaIR {\n const { schema, provider = \"postgresql\" } = params;\n const extensions = params.extensions ?? EMPTY_EXTENSION_REGISTRY;\n const plan = planSchema({ schema });\n const declarations = new ExtensionDeclarationCollector();\n const issues: ValidationIssue[] = [];\n\n // `storage` is written only for string-backed enums: absent means\n // \"database\" (`enumStorageOf`), so IR for existing schemas is unchanged.\n // Built BEFORE the models because typed CHECK and partial-index expressions\n // are compiled to SQL while a model is built, and an enum operand is checked\n // for membership against the declaration.\n const enums: EnumIR[] = Array.from(schema.__enums, ([name, values]) => ({\n name,\n values: [...values],\n ...(schema.__enumStorage.get(name) === \"string\" ? { storage: \"string\" as const } : {}),\n }));\n const dialect = getSqlDialect({ dialect: providerToDialect({ provider }) });\n\n const models: ModelIR[] = Array.from(schema.__models.values(), (model) => {\n const built = buildModel({ model, plan, extensions, declarations, issues, dialect, enums });\n const rls = schema.__rls?.policies[model.__name];\n return rls === undefined ? built : { ...built, rls };\n });\n if (schema.__rls !== undefined) {\n for (const name of Object.keys(schema.__rls.policies)) {\n if (!schema.__models.has(name)) {\n issues.push({ rule: \"rls-unknown-model\", model: name, message: `RLS classification references model \"${name}\" absent from the composed schema` });\n }\n }\n }\n if (issues.length > 0) {\n throw new VibeError({\n code: \"VIBE_SCHEMA_INVALID\",\n message: `Schema validation failed with ${issues.length} issue(s): ${issues\n .map((issue) => issue.message)\n .join(\"; \")}`,\n meta: { issues },\n });\n }\n\n const ir: SchemaIR = {\n datasource: { provider },\n models,\n enums,\n extensions: declarations.toIR(),\n ...(schema.__rls === undefined ? {} : { rls: { context: schema.__rls.context } }),\n };\n\n assertValidSchemaIR({ schema: ir });\n return ir;\n}\n",
10
10
  "/**\n * One column → `FieldType` mapping, shared by every DSL output path.\n *\n * `toIR` writes it into the IR and relation planning compares it on both sides\n * of a foreign key, so the scalar a column IS and the scalar a relation pairs\n * BY can never drift apart.\n */\n\nimport { fieldTypeIdentity } from \"@vibeorm/schema\";\nimport type { FieldType } from \"@vibeorm/schema\";\nimport type { ColumnDef, IdColumnConfig } from \"./types.ts\";\n\n/**\n * The IR field type of a column.\n *\n * `dsl.id()` is `Int` only for the `autoincrement` strategy — every other id\n * strategy is app-generated text. An inline enum resolves to its assigned name\n * (`dsl.schema()` assigns it); an unnamed one degrades to `String`, exactly as\n * an unnamed enum column does everywhere else. `dsl.unsupported()` keeps a\n * nominal `String` base and carries its real database type in `nativeType`.\n */\nexport function columnFieldType(params: { column: ColumnDef }): FieldType {\n const { column } = params;\n\n switch (column.__columnType) {\n case \"string\":\n return \"String\";\n case \"int\":\n return \"Int\";\n case \"bigint\":\n return \"BigInt\";\n case \"float\":\n return \"Float\";\n case \"decimal\":\n return \"Decimal\";\n case \"boolean\":\n return \"Boolean\";\n case \"datetime\":\n return \"DateTime\";\n case \"json\":\n return \"Json\";\n case \"bytes\":\n return \"Bytes\";\n case \"id\":\n return (column.__config as IdColumnConfig).type === \"autoincrement\" ? \"Int\" : \"String\";\n case \"enum\":\n return column.__enumName === undefined ? \"String\" : { enum: column.__enumName };\n case \"unsupported\":\n return \"String\";\n }\n}\n\n/**\n * A comparable spelling of a column's field type — `\"String\"`, `\"Int\"`,\n * `\"enum:Status\"`. Two columns can be the two ends of one foreign key only when\n * these agree exactly.\n */\nexport function fieldTypeKey(params: { column: ColumnDef }): string {\n return fieldTypeIdentity({ type: columnFieldType({ column: params.column }) });\n}\n",
@@ -18,7 +18,7 @@
18
18
  "/**\n * DSL-level schema checks, run before compiling to IR.\n *\n * These catch authoring mistakes in DSL terms (a relation pointing at a column\n * that does not exist, an ambiguous self-relation) and return them as a list —\n * structural IR rules live in `@vibeorm/schema`'s `validateSchemaIR`, which\n * `toIR()` always enforces.\n *\n * @example\n * const issues = dsl.validateSchema(schema);\n * if (issues.some((i) => i.type === \"error\")) throw new Error(\"bad schema\");\n */\n\nimport type { SchemaDef, StoredRelationDef } from \"./types.ts\";\n\n// ─── Issue shape ──────────────────────────\n\nexport type ValidationError = {\n type: \"error\" | \"warning\";\n message: string;\n model?: string;\n relation?: string;\n};\n\n// ─── Validation ───────────────────────────\n\n/** Validates a composed schema; an empty array means no issues were found. */\nexport function validateSchema(schema: SchemaDef): ValidationError[] {\n const errors: ValidationError[] = [];\n\n // 1. Name collisions across models and enums.\n const allNames = new Set<string>();\n for (const name of schema.__models.keys()) {\n if (allNames.has(name)) {\n errors.push({\n type: \"error\",\n message: `Duplicate name \"${name}\" — used by more than one model`,\n model: name,\n });\n }\n allNames.add(name);\n }\n for (const name of schema.__enums.keys()) {\n if (allNames.has(name)) {\n errors.push({\n type: \"error\",\n message: `Duplicate name \"${name}\" — used by both a model and an enum`,\n });\n }\n allNames.add(name);\n }\n\n // 2. Relations resolve to real models and columns.\n for (const [modelName, modelRelations] of Object.entries(schema.__relations)) {\n const model = schema.__models.get(modelName);\n if (model === undefined) {\n errors.push({\n type: \"error\",\n message: `Relations defined for unknown model \"${modelName}\"`,\n model: modelName,\n });\n continue;\n }\n\n for (const [relationName, relation] of Object.entries(modelRelations)) {\n const targetModel = schema.__models.get(relation.__targetModel);\n if (targetModel === undefined) {\n errors.push({\n type: \"error\",\n message: `Relation \"${relationName}\" references unknown model \"${relation.__targetModel}\"`,\n model: modelName,\n relation: relationName,\n });\n continue;\n }\n\n if (relation.__relationType === \"one\" && relation.__fromModel === modelName) {\n // Every member of a composite key is checked, not only the first.\n for (const column of relation.__fromColumns) {\n if (!model.__columns.has(column)) {\n errors.push({\n type: \"error\",\n message: `Relation \"${relationName}\" references FK column \"${column}\" which doesn't exist on model \"${modelName}\"`,\n model: modelName,\n relation: relationName,\n });\n }\n }\n for (const column of relation.__toColumns) {\n if (!targetModel.__columns.has(column)) {\n errors.push({\n type: \"error\",\n message: `Relation \"${relationName}\" references column \"${column}\" which doesn't exist on target model \"${relation.__targetModel}\"`,\n model: modelName,\n relation: relationName,\n });\n }\n }\n if (relation.__fromColumns.length !== relation.__toColumns.length) {\n errors.push({\n type: \"error\",\n message: `Relation \"${relationName}\" pairs ${relation.__fromColumns.length} FK column(s) with ${relation.__toColumns.length} referenced column(s)`,\n model: modelName,\n relation: relationName,\n });\n }\n }\n\n // Self-relations need an alias once there is more than one of them.\n if (relation.__targetModel === modelName && relation.__alias === undefined) {\n const otherSelfRelations = Object.values(modelRelations).filter(\n (other: StoredRelationDef) => other.__targetModel === modelName && other !== relation\n );\n if (otherSelfRelations.length > 0) {\n errors.push({\n type: \"warning\",\n message: `Self-referential relation \"${relationName}\" on \"${modelName}\" has no alias — this may cause Prisma ambiguity`,\n model: modelName,\n relation: relationName,\n });\n }\n }\n }\n }\n\n // 3. Every model needs a primary key.\n for (const [modelName, model] of schema.__models) {\n const hasIdColumn = Array.from(model.__columns.values()).some(\n (column) => column.__columnType === \"id\"\n );\n const hasPrimaryKey = model.__primaryKey !== undefined && model.__primaryKey.length > 0;\n if (!hasIdColumn && !hasPrimaryKey) {\n errors.push({\n type: \"warning\",\n message: `Model \"${modelName}\" has no id column and no compound primaryKey defined`,\n model: modelName,\n });\n }\n }\n\n return errors;\n}\n",
19
19
  "/**\n * @vibeorm/dsl — the TypeScript schema DSL.\n *\n * Models and relations are written in TypeScript and compiled straight to the\n * canonical `SchemaIR` (`dsl.toIR`). `.prisma` text generation is kept for\n * interop and `vibeorm convert`.\n *\n * @example\n * import { dsl } from \"@vibeorm/dsl\";\n *\n * const Workspace = dsl.create({\n * name: \"Workspace\",\n * schema: { ...dsl.templates.base, name: dsl.string() },\n * });\n *\n * const User = dsl.create({\n * name: \"User\",\n * schema: {\n * ...dsl.templates.base,\n * email: dsl.string().unique(),\n * workspaceId: dsl.string().index(),\n * },\n * indexes: (i) => [i.unique(\"workspaceId\", \"email\")],\n * });\n *\n * const relations = dsl.defineRelations({ Workspace, User }, (r) => ({\n * Workspace: { users: r.many.User({ from: r.Workspace.id, to: r.User.workspaceId }) },\n * User: { workspace: r.one.Workspace({ from: r.User.workspaceId, to: r.Workspace.id }) },\n * }));\n *\n * const schema = dsl.schema({ Workspace, User }, { relations });\n * const ir = dsl.toIR({ schema }); // canonical IR\n * const prisma = dsl.generate.prisma(schema); // .prisma text\n */\n\nimport type { ExtensionRegistry, Provider, SchemaIR } from \"@vibeorm/schema\";\n\nimport {\n bigint,\n boolean,\n bytes,\n datetime,\n decimal,\n enumCol,\n extensionType,\n float,\n id,\n int,\n json,\n string,\n unsupported,\n} from \"./column.ts\";\nimport type {\n ChainableColumn,\n ChainableDatetimeColumn,\n ChainableDecimalColumn,\n ChainableEnumColumn,\n ChainableIdColumn,\n ChainableIntegerColumn,\n ChainableStringColumn,\n} from \"./column.ts\";\nimport { createEnum } from \"./enum.ts\";\nimport type { StandaloneEnumConfig } from \"./enum.ts\";\nimport { generatePrisma } from \"./generator/prisma.ts\";\nimport { create } from \"./model.ts\";\nimport { defineRelations, defineRelationsPart, mergeRelations } from \"./relations.ts\";\nimport { defineRls, domain, schema } from \"./schema.ts\";\nimport type { SchemaOptions } from \"./schema.ts\";\nimport { templates } from \"./templates.ts\";\nimport type { TemplatesApi } from \"./templates.ts\";\nimport { toIR } from \"./to-ir.ts\";\nimport { validateSchema } from \"./validate.ts\";\nimport type { ValidationError } from \"./validate.ts\";\nimport type {\n BigIntColumnConfig,\n BooleanColumnConfig,\n BytesColumnConfig,\n CreateModelConfig,\n DatetimeColumnConfig,\n DecimalColumnConfig,\n EnumDef,\n ExtensionTypeConfig,\n FloatColumnConfig,\n GeneratorOutput,\n IdColumnConfig,\n InlineEnumConfig,\n IntColumnConfig,\n JsonColumnConfig,\n ModelDef,\n PrismaGeneratorConfig,\n SchemaDef,\n SchemaDefinition,\n SchemaInput,\n StringColumnConfig,\n} from \"./types.ts\";\n\n// ─── Value exports ────────────────────────\n\nexport {\n ChainableColumn,\n ChainableDatetimeColumn,\n ChainableDecimalColumn,\n ChainableEnumColumn,\n ChainableIdColumn,\n ChainableIntegerColumn,\n ChainableStringColumn,\n cloneColumnDef,\n} from \"./column.ts\";\nexport { createEnum } from \"./enum.ts\";\nexport { generatePrisma } from \"./generator/prisma.ts\";\nexport { create, createIndexBuilder, evaluateIndexes, getColumnNames } from \"./model.ts\";\nexport { compileChecks, compileIndexPredicate, createPredicateBuilder, evaluateChecks } from \"./predicate.ts\";\nexport { children, createChildrenBuilder } from \"./relation.ts\";\nexport { detectOneToOnePairs, planSchema, resolveRelationType } from \"./relation-plan.ts\";\nexport { defineRelations, defineRelationsPart, mergeRelations } from \"./relations.ts\";\nexport { defineRls, domain, schema } from \"./schema.ts\";\nexport {\n base,\n baseWithWorkspace,\n fields,\n templates,\n withActive,\n withAudit,\n withExternalId,\n withMetadata,\n withNameDescription,\n} from \"./templates.ts\";\nexport { toIR } from \"./to-ir.ts\";\nexport { validateSchema } from \"./validate.ts\";\n\n// ─── Type exports ─────────────────────────\n\nexport type { StandaloneEnumConfig } from \"./enum.ts\";\nexport type { EvaluatedCheck, PredicateModel } from \"./predicate.ts\";\nexport type {\n MergedOneToOneSide,\n PlannedIndex,\n PlannedRelation,\n PlannedRelationKind,\n SchemaPlan,\n} from \"./relation-plan.ts\";\nexport type { SchemaOptions } from \"./schema.ts\";\nexport type {\n ActiveTemplate,\n AuditTemplate,\n BaseTemplate,\n BaseWithWorkspaceTemplate,\n ExternalIdTemplate,\n FieldsTemplate,\n MetadataTemplate,\n NameDescriptionTemplate,\n TemplatesApi,\n} from \"./templates.ts\";\nexport type { ValidationError } from \"./validate.ts\";\nexport type {\n DefineRlsOptions,\n MergedRelations,\n RlsColumnKind,\n RlsContextRef,\n RlsContextRefs,\n RlsDef,\n RlsPolicies,\n BaseColumnConfig,\n BigIntColumnConfig,\n BooleanColumnConfig,\n BytesColumnConfig,\n CascadeAction,\n ChildrenBuilder,\n ChildrenDef,\n ChildrenRelationConfig,\n ChildrenSchemaCallback,\n ColumnDef,\n ColumnKeys,\n ColumnRef,\n ColumnRefKind,\n ColumnRefKindOf,\n ColumnType,\n CreateModelConfig,\n DatetimeColumnConfig,\n DecimalColumnConfig,\n EnumDef,\n EnumFieldConfig,\n EnumStorage,\n EnumValues,\n ExtensionAttributeUse,\n ExtensionTypeConfig,\n FloatColumnConfig,\n GeneratorOutput,\n IdColumnConfig,\n IdGeneratorType,\n IndexBuilder,\n IndexCallback,\n IndexDef,\n IndexOptions,\n ChecksCallback,\n ModelCheckConfig,\n ModelPolicyConfig,\n NamedCheckDef,\n PartialIndexDef,\n PredicateBuilder,\n PredicateFieldExpr,\n UniqueIndexOptions,\n IndexType,\n InlineEnumConfig,\n IntColumnConfig,\n JsonColumnConfig,\n ManyRelationDefConfig,\n ModelColumnRefs,\n ModelDef,\n OneRelationDefConfig,\n PrismaGeneratorConfig,\n RelationRefInput,\n RelationTarget,\n RelationsBuilder,\n RelationsMap,\n RelationsOutput,\n SchemaColumnNames,\n SchemaDef,\n SchemaDefinition,\n SchemaInput,\n StoredRelationDef,\n StringColumnConfig,\n ThroughRef,\n UnsupportedColumnConfig,\n} from \"./types.ts\";\n\n// ─── Enum factory ─────────────────────────\n\n/**\n * Creates an enum: standalone (reusable, has a `name`) or inline (one-off).\n *\n * @example\n * const Status = dsl.enum({ name: \"Status\", options: [\"active\", \"inactive\"] });\n * priority: dsl.enum({ options: [\"low\", \"high\"], default: \"low\" })\n */\nexport type EnumFactory = {\n <const T extends readonly string[]>(config: StandaloneEnumConfig<T>): EnumDef<T>;\n <const T extends readonly string[]>(config: InlineEnumConfig<T>): ChainableEnumColumn<T>;\n};\n\nfunction isStandaloneEnumConfig<T extends readonly string[]>(\n config: StandaloneEnumConfig<T> | InlineEnumConfig<T>\n): config is StandaloneEnumConfig<T> {\n return \"name\" in config && typeof config.name === \"string\";\n}\n\nfunction enumFactory<const T extends readonly string[]>(\n config: StandaloneEnumConfig<T>\n): EnumDef<T>;\nfunction enumFactory<const T extends readonly string[]>(\n config: InlineEnumConfig<T>\n): ChainableEnumColumn<T>;\nfunction enumFactory<const T extends readonly string[]>(\n config: StandaloneEnumConfig<T> | InlineEnumConfig<T>\n): EnumDef<T> | ChainableEnumColumn<T> {\n if (isStandaloneEnumConfig(config)) {\n return createEnum(config);\n }\n return enumCol(config);\n}\n\n// ─── Generator namespace ──────────────────\n\n/** `dsl.generate(schema)` plus the per-format generators. */\nexport type GenerateApi = {\n (schema: SchemaDef): GeneratorOutput;\n prisma: (schema: SchemaDef, config?: PrismaGeneratorConfig) => string;\n};\n\nconst generate: GenerateApi = Object.assign(\n (schemaDef: SchemaDef): GeneratorOutput => ({ prisma: generatePrisma(schemaDef) }),\n { prisma: generatePrisma }\n);\n\n// ─── DSL namespace ────────────────────────\n\n/**\n * The `dsl` namespace surface. Every member carries an explicit signature —\n * the package is built under `isolatedDeclarations`.\n */\nexport type DslApi = {\n readonly string: (config?: StringColumnConfig) => ChainableStringColumn;\n readonly int: (config?: IntColumnConfig) => ChainableIntegerColumn<\"int\">;\n readonly bigint: (config?: BigIntColumnConfig) => ChainableIntegerColumn<\"bigint\">;\n readonly float: (config?: FloatColumnConfig) => ChainableColumn<\"float\">;\n readonly decimal: (config?: DecimalColumnConfig) => ChainableDecimalColumn;\n readonly boolean: (config?: BooleanColumnConfig) => ChainableColumn<\"boolean\">;\n readonly datetime: (config?: DatetimeColumnConfig) => ChainableDatetimeColumn;\n readonly json: (config?: JsonColumnConfig) => ChainableColumn<\"json\">;\n readonly id: (config?: IdColumnConfig) => ChainableIdColumn;\n readonly bytes: (config?: BytesColumnConfig) => ChainableColumn<\"bytes\">;\n readonly unsupported: (dbType: string) => ChainableColumn<\"unsupported\">;\n readonly extensionType: (config: ExtensionTypeConfig) => ChainableColumn<\"unsupported\">;\n readonly enum: EnumFactory;\n\n readonly create: <const TSchema extends SchemaDefinition>(\n config: CreateModelConfig<TSchema>\n ) => ModelDef<TSchema>;\n\n readonly defineRelations: typeof defineRelations;\n readonly defineRelationsPart: typeof defineRelationsPart;\n readonly mergeRelations: typeof mergeRelations;\n readonly defineRls: typeof defineRls;\n\n readonly schema: (input: SchemaInput, options?: SchemaOptions) => SchemaDef;\n readonly domain: (params: { name: string; models: Record<string, ModelDef> }) => {\n name: string;\n models: Record<string, ModelDef>;\n };\n\n readonly toIR: (params: {\n schema: SchemaDef;\n provider?: Provider;\n extensions?: ExtensionRegistry;\n }) => SchemaIR;\n readonly validateSchema: (schema: SchemaDef) => ValidationError[];\n readonly generate: GenerateApi;\n readonly templates: TemplatesApi;\n};\n\n/** The DSL namespace: columns, models, relations, schemas and output. */\nexport const dsl: DslApi = {\n // Columns\n string,\n int,\n bigint,\n float,\n decimal,\n boolean,\n datetime,\n json,\n id,\n bytes,\n unsupported,\n extensionType,\n enum: enumFactory,\n\n // Models\n create,\n\n // Relations\n defineRelations,\n defineRelationsPart,\n mergeRelations,\n\n // Schema composition\n defineRls,\n schema,\n domain,\n\n // Output\n toIR,\n validateSchema,\n generate,\n\n // Templates\n templates,\n};\n"
20
20
  ],
21
- "mappings": "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",
22
- "debugId": "C9033CA5A686FA9A64756E2164756E21",
21
+ "mappings": "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",
22
+ "debugId": "C69A52006732E14D64756E2164756E21",
23
23
  "names": []
24
24
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibeorm/dsl",
3
- "version": "2.2.1",
3
+ "version": "2.2.3",
4
4
  "description": "TypeScript schema DSL for VibeORM v2 — compiles to canonical SchemaIR, with .prisma generation for interop",
5
5
  "keywords": [
6
6
  "orm",
@@ -41,8 +41,8 @@
41
41
  "bun": ">=1.2.0"
42
42
  },
43
43
  "dependencies": {
44
- "@vibeorm/schema": "2.3.0",
45
- "@vibeorm/sql": "2.3.0"
44
+ "@vibeorm/schema": "2.4.0",
45
+ "@vibeorm/sql": "2.4.0"
46
46
  },
47
47
  "publishConfig": {
48
48
  "access": "public"