@vibeorm/dsl 2.4.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 VibeORM contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/dist/index.js CHANGED
@@ -609,6 +609,10 @@ function evaluateIndexes(params) {
609
609
  }
610
610
 
611
611
  // packages/dsl/src/relation-plan.ts
612
+ function relationPairKey(params) {
613
+ const { relation, reverse } = params;
614
+ return JSON.stringify(reverse ? [relation.__toModel, relation.__toColumns, relation.__fromModel, relation.__fromColumns, relation.__alias ?? ""] : [relation.__fromModel, relation.__fromColumns, relation.__toModel, relation.__toColumns, relation.__alias ?? ""]);
615
+ }
612
616
  function detectOneToOnePairs(params) {
613
617
  const { relations, models } = params;
614
618
  const mergeMap = new Map;
@@ -623,6 +627,15 @@ function detectOneToOnePairs(params) {
623
627
  }
624
628
  }
625
629
  }
630
+ const candidatesByKey = new Map;
631
+ for (const [position, entry] of allOnes.entries()) {
632
+ const key = relationPairKey({ relation: entry.rel });
633
+ const bucket = candidatesByKey.get(key);
634
+ if (bucket === undefined)
635
+ candidatesByKey.set(key, { positions: [position], start: 0 });
636
+ else
637
+ bucket.positions.push(position);
638
+ }
626
639
  const paired = new Set;
627
640
  for (let i = 0;i < allOnes.length; i++) {
628
641
  const a = allOnes[i];
@@ -631,13 +644,17 @@ function detectOneToOnePairs(params) {
631
644
  const keyA = `${a.modelName}:${a.relName}`;
632
645
  if (paired.has(keyA))
633
646
  continue;
634
- for (let j = i + 1;j < allOnes.length; j++) {
647
+ const bucket = candidatesByKey.get(relationPairKey({ relation: a.rel, reverse: true }));
648
+ if (bucket === undefined)
649
+ continue;
650
+ for (let candidate = bucket.start;candidate < bucket.positions.length; candidate++) {
651
+ const j = bucket.positions[candidate];
635
652
  const b = allOnes[j];
636
- if (b === undefined)
637
- continue;
638
653
  const keyB = `${b.modelName}:${b.relName}`;
639
- if (paired.has(keyB))
654
+ if (j <= i || paired.has(keyB)) {
655
+ bucket.start = candidate + 1;
640
656
  continue;
657
+ }
641
658
  const sameColumnPair = a.rel.__fromModel === b.rel.__toModel && sameColumnTuple({ left: a.rel.__fromColumns, right: b.rel.__toColumns }) && a.rel.__toModel === b.rel.__fromModel && sameColumnTuple({ left: a.rel.__toColumns, right: b.rel.__fromColumns });
642
659
  if (!sameColumnPair || (a.rel.__alias ?? "") !== (b.rel.__alias ?? ""))
643
660
  continue;
@@ -665,6 +682,7 @@ function detectOneToOnePairs(params) {
665
682
  });
666
683
  paired.add(fkKey);
667
684
  paired.add(backKey);
685
+ bucket.start = candidate + 1;
668
686
  break;
669
687
  }
670
688
  }
@@ -765,7 +783,7 @@ function planExplicitRelations(params) {
765
783
  return planned;
766
784
  }
767
785
  function planMissingReverseRelations(params) {
768
- const { modelName, relations, mergeMap, existing } = params;
786
+ const { modelName, relations, incoming, mergeMap, existing } = params;
769
787
  const planned = [];
770
788
  const existingLists = new Set;
771
789
  const existingNames = new Set;
@@ -775,44 +793,40 @@ function planMissingReverseRelations(params) {
775
793
  existingLists.add(`${relation.targetModel}:${relation.relationName ?? ""}`);
776
794
  }
777
795
  }
778
- for (const [sourceModelName, sourceRelations] of Object.entries(relations)) {
779
- for (const [relName, rel] of Object.entries(sourceRelations)) {
780
- if (rel.__targetModel !== modelName || rel.__relationType !== "one")
781
- continue;
782
- if (mergeMap.has(`${sourceModelName}:${relName}`))
783
- continue;
784
- const reverseKey = `${sourceModelName}:${rel.__alias ?? ""}`;
785
- if (existingLists.has(reverseKey))
796
+ for (const { modelName: sourceModelName, relName, rel } of incoming) {
797
+ if (mergeMap.has(`${sourceModelName}:${relName}`))
798
+ continue;
799
+ const reverseKey = `${sourceModelName}:${rel.__alias ?? ""}`;
800
+ if (existingLists.has(reverseKey))
801
+ continue;
802
+ if (sourceModelName === modelName) {
803
+ const hasExplicitReverse = Object.values(relations[sourceModelName] ?? {}).some((other) => other.__relationType === "many" && other.__targetModel === modelName && other.__alias === rel.__alias);
804
+ if (hasExplicitReverse)
786
805
  continue;
787
- if (sourceModelName === modelName) {
788
- const hasExplicitReverse = Object.values(sourceRelations).some((other) => other.__relationType === "many" && other.__targetModel === modelName && other.__alias === rel.__alias);
789
- if (hasExplicitReverse)
790
- continue;
791
- }
792
- const baseName = rel.__alias ?? sourceModelName;
793
- let name = baseName;
794
- let counter = 1;
795
- while (existingNames.has(name)) {
796
- counter++;
797
- name = `${baseName}${counter}`;
798
- }
799
- planned.push({
800
- model: modelName,
801
- name,
802
- targetModel: sourceModelName,
803
- kind: "list",
804
- isList: true,
805
- isOptional: false,
806
- relationName: rel.__alias
807
- });
808
- existingLists.add(reverseKey);
809
- existingNames.add(name);
810
806
  }
807
+ const baseName = rel.__alias ?? sourceModelName;
808
+ let name = baseName;
809
+ let counter = 1;
810
+ while (existingNames.has(name)) {
811
+ counter++;
812
+ name = `${baseName}${counter}`;
813
+ }
814
+ planned.push({
815
+ model: modelName,
816
+ name,
817
+ targetModel: sourceModelName,
818
+ kind: "list",
819
+ isList: true,
820
+ isOptional: false,
821
+ relationName: rel.__alias
822
+ });
823
+ existingLists.add(reverseKey);
824
+ existingNames.add(name);
811
825
  }
812
826
  return planned;
813
827
  }
814
828
  function planChildRelations(params) {
815
- const { modelName, model, models } = params;
829
+ const { modelName, model, parents } = params;
816
830
  const planned = [];
817
831
  for (const [childKey, childModel] of model.__children) {
818
832
  planned.push({
@@ -824,22 +838,18 @@ function planChildRelations(params) {
824
838
  isOptional: false
825
839
  });
826
840
  }
827
- for (const [parentModelName, parentModel] of models) {
828
- for (const childModel of parentModel.__children.values()) {
829
- if (childModel.__name !== modelName)
830
- continue;
831
- const parentPk = parentModel.__primaryKey?.[0] ?? Array.from(parentModel.__columns.entries()).find(([, column]) => column.__columnType === "id")?.[0] ?? "id";
832
- planned.push({
833
- model: modelName,
834
- name: parentModelName,
835
- targetModel: parentModelName,
836
- kind: "fkOwner",
837
- isList: false,
838
- isOptional: false,
839
- fields: [toFkColumnName({ modelName: parentModelName })],
840
- references: [parentPk]
841
- });
842
- }
841
+ for (const [parentModelName, parentModel] of parents) {
842
+ const parentPk = parentModel.__primaryKey?.[0] ?? Array.from(parentModel.__columns.entries()).find(([, column]) => column.__columnType === "id")?.[0] ?? "id";
843
+ planned.push({
844
+ model: modelName,
845
+ name: parentModelName,
846
+ targetModel: parentModelName,
847
+ kind: "fkOwner",
848
+ isList: false,
849
+ isOptional: false,
850
+ fields: [toFkColumnName({ modelName: parentModelName })],
851
+ references: [parentPk]
852
+ });
843
853
  }
844
854
  return planned;
845
855
  }
@@ -963,6 +973,33 @@ function assertForeignKeyIntegrity(params) {
963
973
  refuse(`references ${relation.targetModel}.(${references.join(", ")}), which is not a unique key there \u2014 declare those columns as the primary key, a unique column, or a total @@unique index`, "relation-reference-not-unique", { references, candidates: keys.map((key) => [...key]) });
964
974
  }
965
975
  }
976
+ function relationLookups(params) {
977
+ const incoming = new Map;
978
+ for (const [modelName, relations] of Object.entries(params.schema.__relations)) {
979
+ for (const [relName, rel] of Object.entries(relations)) {
980
+ if (rel.__relationType !== "one")
981
+ continue;
982
+ const target = rel.__targetModel;
983
+ const entries = incoming.get(target);
984
+ const entry = { modelName, relName, rel };
985
+ if (entries === undefined)
986
+ incoming.set(target, [entry]);
987
+ else
988
+ entries.push(entry);
989
+ }
990
+ }
991
+ const parents = new Map;
992
+ for (const [name, model] of params.schema.__models) {
993
+ for (const child of model.__children.values()) {
994
+ const entries = parents.get(child.__name);
995
+ if (entries === undefined)
996
+ parents.set(child.__name, [[name, model]]);
997
+ else
998
+ entries.push([name, model]);
999
+ }
1000
+ }
1001
+ return { incoming, parents };
1002
+ }
966
1003
  function planSchema(params) {
967
1004
  const { schema } = params;
968
1005
  const mergeMap = detectOneToOnePairs({
@@ -971,7 +1008,13 @@ function planSchema(params) {
971
1008
  });
972
1009
  const relations = new Map;
973
1010
  const indexes = new Map;
1011
+ let lookups = relationLookups({ schema });
1012
+ let refreshLookups = false;
974
1013
  for (const [modelName, model] of schema.__models) {
1014
+ if (refreshLookups) {
1015
+ lookups = relationLookups({ schema });
1016
+ refreshLookups = false;
1017
+ }
975
1018
  const explicit = planExplicitRelations({
976
1019
  modelName,
977
1020
  model,
@@ -981,16 +1024,22 @@ function planSchema(params) {
981
1024
  const reverses = planMissingReverseRelations({
982
1025
  modelName,
983
1026
  relations: schema.__relations,
1027
+ incoming: lookups.incoming.get(modelName) ?? [],
984
1028
  mergeMap,
985
1029
  existing: explicit
986
1030
  });
987
- const children = planChildRelations({ modelName, model, models: schema.__models });
1031
+ const children = planChildRelations({ modelName, model, parents: lookups.parents.get(modelName) ?? [] });
988
1032
  const planned = [...explicit, ...reverses, ...children];
989
1033
  for (const relation of planned) {
990
- if (relation.kind === "fkOwner")
1034
+ if (relation.kind === "fkOwner") {
1035
+ if (schema.__models.get(relation.targetModel)?.__indexes !== undefined)
1036
+ refreshLookups = true;
991
1037
  assertForeignKeyIntegrity({ relation, models: schema.__models });
1038
+ }
992
1039
  }
993
1040
  relations.set(modelName, planned);
1041
+ if (model.__indexes !== undefined)
1042
+ refreshLookups = true;
994
1043
  indexes.set(modelName, planIndexes({ model }));
995
1044
  }
996
1045
  return { relations, indexes };
@@ -2285,4 +2334,4 @@ export {
2285
2334
  withNameDescription
2286
2335
  };
2287
2336
 
2288
- //# debugId=0EC0F0E6154BF1C064756E2164756E21
2337
+ //# debugId=AC91338749EBA17764756E2164756E21
package/dist/index.js.map CHANGED
@@ -8,7 +8,7 @@
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`, `.tz({ precision: n })`\n * → `Timestamptz(n)`.\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 unsupportedCapability,\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 DatetimeColumnConfig,\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\n/**\n * `Timestamptz` / `Timestamptz(n)` for a `.tz()` datetime column, or\n * `undefined`. Shared with the `.prisma` generator so both spell it alike.\n * Refuses a precision postgres would reject (outside 0–6, fractional) and a\n * precision without `tz`, which has no timestamptz to apply to.\n */\nexport function datetimeNativeType(params: { config: DatetimeColumnConfig; column: string | undefined }): string | undefined {\n const { tz, precision } = params.config;\n if (precision !== undefined && (tz !== true || !Number.isInteger(precision) || precision < 0 || precision > 6)) {\n const at = params.column === undefined ? \"A datetime column\" : `Column \"${params.column}\"`;\n throw new VibeError({\n code: \"VIBE_SCHEMA_INVALID\",\n message: `${at}: a datetime precision must be an integer from 0 to 6 on a tz() column, as in dsl.datetime().tz({ precision: 3 })`,\n meta: { issues: [{ rule: \"datetime-precision\", column: params.column, precision, tz: tz === true }] },\n });\n }\n if (tz !== true) return undefined;\n return precision === undefined ? \"Timestamptz\" : `Timestamptz(${precision})`;\n}\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\") {\n return datetimeNativeType({ config: column.__config, column: column.__name });\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 if (index.ops !== undefined && Object.values(index.ops).some((operatorClass) => operatorClass !== undefined) && !dialect.capabilities.indexOperatorClasses) throw unsupportedCapability({ dialect: dialect.name, feature: \"indexOperatorClasses\" });\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, ...(index.ops?.[name] === undefined ? {} : { operatorClass: index.ops[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",
11
- "/**\n * The schema plan: one resolution of a `SchemaDef` into the exact relation\n * fields and indexes a model exposes.\n *\n * Both output paths consume it — `generate.prisma()` renders it as text and\n * `toIR()` compiles it to `SchemaIR` — so a schema authored once produces the\n * same relations either way, and `parse(generate.prisma(s))` matches `toIR(s)`.\n *\n * It resolves, in order:\n * 1. explicit relations (with the 1:1 merge pass, see `detectOneToOnePairs`),\n * 2. reverse list relations Prisma requires but the author left implicit,\n * 3. inline children lists, and the child's FK back to its parent,\n * 4. indexes (column-level + composite, deduplicated).\n *\n * Naming policy — a relation field is named by whoever declared it:\n * - author-declared relation keys (`Post: { author: … }`) and inline-children\n * keys (`Items: s.children(…)`) pass through VERBATIM, so the name the user\n * wrote is the name in both the IR and the `.prisma` text;\n * - names the planner invents (reverse list sides, a child's FK back to its\n * parent) use the `@relation` alias when there is one, else the source model\n * name, suffixed on collision.\n */\n\nimport { VibeError, isSqlObjectIdentity, predicateKey } from \"@vibeorm/schema\";\nimport type { CascadeAction, PredicateIR, QualifiedSqlName, RelationType } from \"@vibeorm/schema\";\nimport { fieldTypeKey } from \"./field-type.ts\";\nimport { evaluateIndexes } from \"./model.ts\";\nimport { toFkColumnName } from \"./naming.ts\";\nimport type {\n IndexType,\n ModelDef,\n RelationsMap,\n SchemaDef,\n StoredRelationDef,\n} from \"./types.ts\";\n\n// ─── Plan shapes ──────────────────────────\n\n/**\n * Structural role of a planned relation field:\n * - `fkOwner` — holds the foreign key (`@relation(fields:…, references:…)`)\n * - `backOne` — singular back reference, no foreign key\n * - `list` — list side (`Model[]`)\n */\nexport type PlannedRelationKind = \"fkOwner\" | \"backOne\" | \"list\";\n\n/** One relation field, exactly as it will be emitted. */\nexport type PlannedRelation = {\n readonly model: string;\n /**\n * Field name on the owning model, as emitted — the author's declared key\n * verbatim, or a planner-generated name for a side the author left implicit.\n */\n readonly name: string;\n readonly targetModel: string;\n readonly kind: PlannedRelationKind;\n readonly isList: boolean;\n readonly isOptional: boolean;\n /** `@relation(\"Name\")` — the DSL's `alias`. */\n readonly relationName?: string;\n /** Physical FOREIGN KEY name — the DSL's `constraintName`, never the alias. */\n readonly constraintName?: string;\n /** FK columns on this model, in declared order; member `i` pairs with `references[i]`. */\n readonly fields?: readonly string[];\n /** Referenced columns on the target model, in declared order. */\n readonly references?: readonly string[];\n readonly onDelete?: CascadeAction;\n readonly onUpdate?: CascadeAction;\n};\n\n/** One index, after column-level and composite indexes are deduplicated. */\nexport type PlannedIndex = {\n readonly map?: string;\n readonly isUnique: boolean;\n readonly columns: readonly string[];\n readonly indexType?: IndexType;\n /** Qualified operator classes keyed by logical index column. */\n readonly ops?: Readonly<Partial<Record<string, QualifiedSqlName>>>;\n /** Partial-index predicate (raw SQL) — postgres/pglite/sqlite only. */\n readonly where?: string;\n /** Partial-index predicate as a typed expression, rendered when the dialect is known. */\n readonly wherePredicate?: PredicateIR;\n /** `UNIQUE NULLS NOT DISTINCT` — unique indexes on postgres/pglite (15+) only. */\n readonly nullsNotDistinct?: boolean;\n /** Client selector name for a compound unique (Prisma `@@unique(..., name:)`). */\n readonly clientName?: string;\n};\n\n/** Everything both output paths need, keyed by model name. */\nexport type SchemaPlan = {\n readonly relations: ReadonlyMap<string, readonly PlannedRelation[]>;\n readonly indexes: ReadonlyMap<string, readonly PlannedIndex[]>;\n};\n\n// ─── 1:1 merge detection ──────────────────\n\n/** How a relation participates in a merged one-to-one pair. */\nexport type MergedOneToOneSide = {\n readonly role: \"fkOwner\" | \"backRelation\";\n readonly pairedRelName: string;\n readonly pairedModelName: string;\n /** Merged referential actions — the FK owner's win. */\n readonly onDelete?: CascadeAction;\n readonly onUpdate?: CascadeAction;\n /** Merged physical FK name — the FK owner's wins; either side may declare it. */\n readonly constraintName?: string;\n};\n\ntype OneRelationEntry = {\n readonly modelName: string;\n readonly relName: string;\n readonly rel: StoredRelationDef;\n};\n\n/**\n * Finds pairs of `r.one` relations that describe the same 1:1 relationship\n * from both sides, and decides which side owns the foreign key.\n *\n * Two `one` relations pair when their column references cross-match:\n * `A.from === B.to` and `A.to === B.from`. The FK owner is the side whose\n * `from` column is NOT the primary key.\n *\n * Returns a map keyed by `\"Model:relationName\"`.\n */\nexport function detectOneToOnePairs(params: {\n relations: RelationsMap;\n models: ReadonlyMap<string, ModelDef>;\n}): Map<string, MergedOneToOneSide> {\n const { relations, models } = params;\n const mergeMap = new Map<string, MergedOneToOneSide>();\n\n const allOnes: OneRelationEntry[] = [];\n for (const [modelName, modelRelations] of Object.entries(relations)) {\n for (const [relName, rel] of Object.entries(modelRelations)) {\n if (rel.__ownsForeignKey !== undefined && (typeof rel.__ownsForeignKey !== \"boolean\" || rel.__relationType !== \"one\" || (rel.__ownsForeignKey && rel.__fromModel !== modelName))) {\n throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: `Invalid foreign-key ownership declaration on ${modelName}.${relName}` });\n }\n if (rel.__relationType === \"one\") {\n allOnes.push({ modelName, relName, rel });\n }\n }\n }\n\n const paired = new Set<string>();\n\n for (let i = 0; i < allOnes.length; i++) {\n const a = allOnes[i];\n if (a === undefined) continue;\n const keyA = `${a.modelName}:${a.relName}`;\n if (paired.has(keyA)) continue;\n\n for (let j = i + 1; j < allOnes.length; j++) {\n const b = allOnes[j];\n if (b === undefined) continue;\n const keyB = `${b.modelName}:${b.relName}`;\n if (paired.has(keyB)) continue;\n\n // Composite sides pair only when the WHOLE tuple crosses over, member by\n // member: two relations sharing their first column but disagreeing later\n // describe different foreign keys.\n const sameColumnPair =\n a.rel.__fromModel === b.rel.__toModel &&\n sameColumnTuple({ left: a.rel.__fromColumns, right: b.rel.__toColumns }) &&\n a.rel.__toModel === b.rel.__fromModel &&\n sameColumnTuple({ left: a.rel.__toColumns, right: b.rel.__fromColumns });\n if (!sameColumnPair || (a.rel.__alias ?? \"\") !== (b.rel.__alias ?? \"\")) continue;\n\n const { fkOwner, backRelation } = resolveFkOwner({ a, b, models });\n\n const onDelete = fkOwner.rel.__onDelete ?? backRelation.rel.__onDelete;\n const onUpdate = fkOwner.rel.__onUpdate ?? backRelation.rel.__onUpdate;\n const constraintName = fkOwner.rel.__constraintName ?? backRelation.rel.__constraintName;\n\n const fkKey = `${fkOwner.modelName}:${fkOwner.relName}`;\n const backKey = `${backRelation.modelName}:${backRelation.relName}`;\n\n mergeMap.set(fkKey, {\n role: \"fkOwner\",\n pairedRelName: backRelation.relName,\n pairedModelName: backRelation.modelName,\n onDelete,\n onUpdate,\n ...(constraintName === undefined ? {} : { constraintName }),\n });\n mergeMap.set(backKey, {\n role: \"backRelation\",\n pairedRelName: fkOwner.relName,\n pairedModelName: fkOwner.modelName,\n onDelete,\n onUpdate,\n ...(constraintName === undefined ? {} : { constraintName }),\n });\n\n paired.add(fkKey);\n paired.add(backKey);\n break;\n }\n }\n\n return mergeMap;\n}\n\n/** Two relation ends name the same columns, in the same order. */\nfunction sameColumnTuple(params: { left: readonly string[]; right: readonly string[] }): boolean {\n const { left, right } = params;\n return left.length === right.length && left.every((name, index) => name === right[index]);\n}\n\nfunction resolveFkOwner(params: {\n a: OneRelationEntry;\n b: OneRelationEntry;\n models: ReadonlyMap<string, ModelDef>;\n}): { fkOwner: OneRelationEntry; backRelation: OneRelationEntry } {\n const { a, b, models } = params;\n\n const ownershipError = (): never => {\n throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: `Ambiguous foreign-key ownership between ${a.modelName}.${a.relName} and ${b.modelName}.${b.relName}; set ownsForeignKey: true on the foreign-key side`, meta: { rule: \"ambiguous-foreign-key-owner\" } });\n };\n const aOwns = a.rel.__ownsForeignKey;\n const bOwns = b.rel.__ownsForeignKey;\n if (aOwns !== undefined || bOwns !== undefined) {\n if (aOwns === bOwns) return ownershipError();\n return aOwns === true || bOwns === false ? { fkOwner: a, backRelation: b } : { fkOwner: b, backRelation: a };\n }\n const aFromIsId = fromIsPrimaryKey({ model: models.get(a.modelName), columns: a.rel.__fromColumns });\n const bFromIsId = fromIsPrimaryKey({ model: models.get(b.modelName), columns: b.rel.__fromColumns });\n\n if (aFromIsId && !bFromIsId) return { fkOwner: b, backRelation: a };\n if (!aFromIsId && bFromIsId) return { fkOwner: a, backRelation: b };\n\n // Ambiguous (both or neither are primary keys): the side that declares\n // referential actions owns the FK, else the side whose column reads like one.\n const aActions = a.rel.__onDelete !== undefined || a.rel.__onUpdate !== undefined;\n const bActions = b.rel.__onDelete !== undefined || b.rel.__onUpdate !== undefined;\n if (aActions && !bActions) {\n return { fkOwner: a, backRelation: b };\n }\n if (bActions && !aActions) {\n return { fkOwner: b, backRelation: a };\n }\n\n const aLooksFk = a.rel.__fromColumns.some((column) => looksLikeForeignKey({ column }));\n const bLooksFk = b.rel.__fromColumns.some((column) => looksLikeForeignKey({ column }));\n if (aLooksFk === bLooksFk) return ownershipError();\n return aLooksFk ? { fkOwner: a, backRelation: b } : { fkOwner: b, backRelation: a };\n}\n\n/**\n * Does this relation end name the model's OWN primary key? A composite end must\n * be the whole compound key; a single column keeps the older, looser rule (an\n * `id()` column, or any member of a compound key) so single-column ownership\n * detection is unchanged.\n */\nfunction fromIsPrimaryKey(params: { model: ModelDef | undefined; columns: readonly string[] }): boolean {\n const { model, columns } = params;\n if (model === undefined) return false;\n if (columns.length > 1) {\n const primaryKey = model.__primaryKey;\n return (\n primaryKey !== undefined &&\n primaryKey.length === columns.length &&\n primaryKey.every((name) => columns.includes(name))\n );\n }\n const column = columns[0];\n if (column === undefined) return false;\n return model.__columns.get(column)?.__columnType === \"id\" || model.__primaryKey?.includes(column) === true;\n}\n\nfunction looksLikeForeignKey(params: { column: string }): boolean {\n const { column } = params;\n return column.toLowerCase().includes(\"id\") && column !== \"id\";\n}\n\n// ─── Relation planning ────────────────────\n\nfunction planExplicitRelations(params: {\n modelName: string;\n model: ModelDef;\n relations: RelationsMap;\n mergeMap: ReadonlyMap<string, MergedOneToOneSide>;\n}): PlannedRelation[] {\n const { modelName, model, relations, mergeMap } = params;\n const planned: PlannedRelation[] = [];\n\n for (const [relName, rel] of Object.entries(relations[modelName] ?? {})) {\n // The author's key IS the field name — never re-cased, so one logical\n // schema reads the same through the IR and through the .prisma text.\n const name = relName;\n const base = {\n model: modelName,\n name,\n targetModel: rel.__targetModel,\n relationName: rel.__alias,\n };\n\n if (rel.__relationType === \"many\") {\n planned.push({ ...base, kind: \"list\", isList: true, isOptional: false });\n continue;\n }\n\n const mergeInfo = mergeMap.get(`${modelName}:${relName}`);\n\n if (mergeInfo?.role === \"backRelation\") {\n // Parent side of a merged 1:1 — always an optional back reference.\n planned.push({ ...base, kind: \"backOne\", isList: false, isOptional: true });\n continue;\n }\n\n const ownsFk = mergeInfo?.role === \"fkOwner\" || (rel.__ownsForeignKey !== false && rel.__fromModel === modelName);\n if (!ownsFk) {\n planned.push({ ...base, kind: \"backOne\", isList: false, isOptional: rel.__optional });\n continue;\n }\n\n // MATCH SIMPLE: one NULL member and the database checks nothing, so the\n // parent is absent as soon as ANY member is nullable.\n const anyMemberOptional = rel.__fromColumns.some(\n (name) => model.__columns.get(name)?.__config.optional === true,\n );\n const constraintName = mergeInfo?.constraintName ?? rel.__constraintName;\n planned.push({\n ...base,\n kind: \"fkOwner\",\n isList: false,\n isOptional: anyMemberOptional || rel.__optional,\n fields: [...rel.__fromColumns],\n references: [...rel.__toColumns],\n ...(constraintName === undefined ? {} : { constraintName }),\n onDelete: mergeInfo?.onDelete ?? rel.__onDelete,\n onUpdate: mergeInfo?.onUpdate ?? rel.__onUpdate,\n });\n }\n\n return planned;\n}\n\n/**\n * Prisma requires both sides of a relation to exist. For every `one` relation\n * pointing at this model without a matching list on this side, plan the list.\n * Merged 1:1 pairs are complete already and are skipped.\n *\n * These names are generated, not declared: the `@relation` alias when the\n * source side has one, else the source model name, numerically suffixed if that\n * name is already taken on this model.\n */\nfunction planMissingReverseRelations(params: {\n modelName: string;\n relations: RelationsMap;\n mergeMap: ReadonlyMap<string, MergedOneToOneSide>;\n existing: readonly PlannedRelation[];\n}): PlannedRelation[] {\n const { modelName, relations, mergeMap, existing } = params;\n const planned: PlannedRelation[] = [];\n\n const existingLists = new Set<string>();\n const existingNames = new Set<string>();\n for (const relation of existing) {\n existingNames.add(relation.name);\n if (relation.isList) {\n existingLists.add(`${relation.targetModel}:${relation.relationName ?? \"\"}`);\n }\n }\n\n for (const [sourceModelName, sourceRelations] of Object.entries(relations)) {\n for (const [relName, rel] of Object.entries(sourceRelations)) {\n if (rel.__targetModel !== modelName || rel.__relationType !== \"one\") continue;\n if (mergeMap.has(`${sourceModelName}:${relName}`)) continue;\n\n const reverseKey = `${sourceModelName}:${rel.__alias ?? \"\"}`;\n if (existingLists.has(reverseKey)) continue;\n\n // A self-relation may already declare its own list side explicitly.\n if (sourceModelName === modelName) {\n const hasExplicitReverse = Object.values(sourceRelations).some(\n (other: StoredRelationDef) =>\n other.__relationType === \"many\" &&\n other.__targetModel === modelName &&\n other.__alias === rel.__alias\n );\n if (hasExplicitReverse) continue;\n }\n\n const baseName = rel.__alias ?? sourceModelName;\n let name = baseName;\n let counter = 1;\n while (existingNames.has(name)) {\n counter++;\n name = `${baseName}${counter}`;\n }\n\n planned.push({\n model: modelName,\n name,\n targetModel: sourceModelName,\n kind: \"list\",\n isList: true,\n isOptional: false,\n relationName: rel.__alias,\n });\n existingLists.add(reverseKey);\n existingNames.add(name);\n }\n }\n\n return planned;\n}\n\n/** The parent's list of inline children, plus each child's FK back to it. */\nfunction planChildRelations(params: {\n modelName: string;\n model: ModelDef;\n models: ReadonlyMap<string, ModelDef>;\n}): PlannedRelation[] {\n const { modelName, model, models } = params;\n const planned: PlannedRelation[] = [];\n\n for (const [childKey, childModel] of model.__children) {\n planned.push({\n model: modelName,\n name: childKey,\n targetModel: childModel.__name,\n kind: \"list\",\n isList: true,\n isOptional: false,\n });\n }\n\n for (const [parentModelName, parentModel] of models) {\n for (const childModel of parentModel.__children.values()) {\n if (childModel.__name !== modelName) continue;\n\n const parentPk =\n parentModel.__primaryKey?.[0] ??\n Array.from(parentModel.__columns.entries()).find(\n ([, column]) => column.__columnType === \"id\"\n )?.[0] ??\n \"id\";\n\n planned.push({\n model: modelName,\n name: parentModelName,\n targetModel: parentModelName,\n kind: \"fkOwner\",\n isList: false,\n isOptional: false,\n fields: [toFkColumnName({ modelName: parentModelName })],\n references: [parentPk],\n });\n }\n }\n\n return planned;\n}\n\n// ─── Index planning ───────────────────────\n\nfunction planIndexes(params: { model: ModelDef }): PlannedIndex[] {\n const { model } = params;\n const byKey = new Map<string, PlannedIndex>();\n\n // Column-level `.index()` — id and unique columns are already indexed.\n for (const [columnName, column] of model.__columns) {\n if (column.__columnType === \"id\" || column.__config.unique === true) continue;\n if (column.__config.index === true) {\n byKey.set(columnName, { isUnique: false, columns: [columnName] });\n }\n }\n\n // Composite/typed indexes from the model's `indexes` callback. A partial\n // index (where) is a DIFFERENT database object from a total index over the\n // same columns, so the predicate joins the dedup key. A TYPED predicate joins\n // it through `predicateKey` — a structural, dialect-free identity — because\n // index planning runs before any provider is known and must not render SQL.\n for (const index of evaluateIndexes({ model })) {\n if (index.__ops !== undefined) {\n if (index.__ops === null || typeof index.__ops !== \"object\" || Array.isArray(index.__ops)) throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: \"Index ops must be a field-keyed qualified-name map\", meta: { rule: \"index-operator-class-map\", model: model.__name } });\n if (index.__type === \"unique\") throw new VibeError({ code: \"VIBE_UNSUPPORTED_CAPABILITY\", message: \"Custom unique operator classes can change client selector equality\", meta: { feature: \"uniqueIndexOperatorClasses\", model: model.__name } });\n for (const [field, operatorClass] of Object.entries(index.__ops)) {\n if (!index.__columns.includes(field)) throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: \"Operator class names a field outside the index\", meta: { rule: \"index-operator-class-field\", model: model.__name, field } });\n if (operatorClass !== undefined && !isSqlObjectIdentity({ kind: \"table\", name: operatorClass })) throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: \"Index operator class must be a qualified SQL name { namespace, name }\", meta: { rule: \"index-operator-class-identity\", model: model.__name, field } });\n }\n }\n const operatorClasses = index.__columns.map((field) => index.__ops?.[field]);\n const operatorSuffix = operatorClasses.some((operatorClass) => operatorClass !== undefined)\n ? `|ops:${JSON.stringify([index.__indexType ?? \"BTree\", operatorClasses.map((operatorClass) => operatorClass === undefined ? null : [operatorClass.namespace, operatorClass.name])])}`\n : \"\";\n const predicateSuffix =\n index.__where !== undefined\n ? `|where:${index.__where}`\n : index.__wherePredicate === undefined\n ? \"\"\n : `|where:${predicateKey({ predicate: index.__wherePredicate })}`;\n const key = index.__columns.join(\",\") + predicateSuffix + operatorSuffix;\n const existing = byKey.get(key);\n const isUnique = index.__type === \"unique\";\n\n if (existing === undefined || isUnique) {\n byKey.set(key, {\n isUnique,\n columns: [...index.__columns],\n indexType: index.__indexType,\n ...(index.__ops === undefined ? {} : { ops: index.__ops }),\n ...(index.__map === undefined ? {} : { map: index.__map }),\n ...(index.__where === undefined ? {} : { where: index.__where }),\n ...(index.__wherePredicate === undefined ? {} : { wherePredicate: index.__wherePredicate }),\n ...(index.__nullsNotDistinct === true ? { nullsNotDistinct: true } : {}),\n ...(index.__clientName === undefined ? {} : { clientName: index.__clientName }),\n });\n } else if (index.__map !== undefined) {\n byKey.set(key, { ...existing, map: index.__map, indexType: index.__indexType ?? existing.indexType });\n } else if (index.__indexType !== undefined && existing.indexType === undefined) {\n byKey.set(key, { ...existing, indexType: index.__indexType });\n }\n }\n\n return Array.from(byKey.values());\n}\n\n// ─── Foreign-key integrity ────────────────\n\n/**\n * Every column set a foreign key may legally REFERENCE on a model: its `id()`\n * column, each `unique()` column, its compound primary key and each TOTAL\n * `@@unique` index. A partial unique is excluded — raw `where:` or typed\n * `.where()` alike, because no dialect here accepts one as a foreign-key\n * target, and which SPELLING made it partial changes nothing about that.\n */\nfunction referenceableKeys(params: { model: ModelDef }): readonly (readonly string[])[] {\n const { model } = params;\n const keys: (readonly string[])[] = [];\n\n for (const [name, column] of model.__columns) {\n if (column.__columnType === \"id\" || column.__config.unique === true) keys.push([name]);\n }\n if (model.__primaryKey !== undefined && model.__primaryKey.length > 0) keys.push([...model.__primaryKey]);\n for (const index of evaluateIndexes({ model })) {\n if (index.__type === \"unique\" && index.__where === undefined && index.__wherePredicate === undefined) {\n keys.push([...index.__columns]);\n }\n }\n\n return keys;\n}\n\n/**\n * Checks one FK-owning relation the way the database will: equal arity, the\n * same scalar type on both ends of every member, and a referenced column set\n * that is exactly some unique key of the target.\n *\n * Refusing here is the earliest knowable moment — the alternative is DDL the\n * server rejects with \"there is no unique constraint matching given keys\", or\n * a foreign key that compares two different scalar types.\n */\nfunction assertForeignKeyIntegrity(params: {\n relation: PlannedRelation;\n models: ReadonlyMap<string, ModelDef>;\n}): void {\n const { relation, models } = params;\n const fields = relation.fields ?? [];\n const references = relation.references ?? [];\n const at = `${relation.model}.${relation.name}`;\n\n const refuse = (message: string, rule: string, meta: Record<string, unknown> = {}): never => {\n throw new VibeError({\n code: \"VIBE_SCHEMA_INVALID\",\n message: `Relation ${at}: ${message}`,\n meta: { rule, model: relation.model, relation: relation.name, ...meta },\n });\n };\n\n if (fields.length !== references.length) {\n refuse(\n `pairs ${fields.length} foreign-key column(s) with ${references.length} referenced column(s)`,\n \"relation-tuple-arity\",\n { fields, references },\n );\n }\n if (new Set(fields).size !== fields.length) {\n refuse(`repeats a foreign-key column (${fields.join(\", \")})`, \"relation-duplicate-column\", { fields });\n }\n if (new Set(references).size !== references.length) {\n refuse(`repeats a referenced column (${references.join(\", \")})`, \"relation-duplicate-column\", { references });\n }\n\n const owner = models.get(relation.model);\n const target = models.get(relation.targetModel);\n // An unknown target is `unknown-relation-target`, reported by IR validation\n // against the whole schema; nothing here can add to it.\n if (owner === undefined || target === undefined) return;\n\n fields.forEach((name, index) => {\n const referenced = references[index]!;\n const column = owner.__columns.get(name);\n const refColumn = target.__columns.get(referenced);\n if (column === undefined) {\n refuse(`uses foreign-key column \"${name}\", which ${relation.model} does not declare`, \"unknown-relation-field\", { field: name });\n return;\n }\n if (refColumn === undefined) {\n refuse(`references \"${relation.targetModel}.${referenced}\", which does not exist`, \"unknown-relation-reference\", { reference: referenced });\n return;\n }\n if (column.__config.array === true || refColumn.__config.array === true) {\n refuse(`pairs a scalar list (${name} ↔ ${referenced}) — a foreign key compares single values`, \"relation-list-column\", { field: name, reference: referenced });\n }\n if (column.__columnType === \"json\" || refColumn.__columnType === \"json\" || column.__columnType === \"unsupported\" || refColumn.__columnType === \"unsupported\") {\n refuse(`pairs ${name} ↔ ${referenced}, and Json/unsupported columns cannot be a foreign key`, \"relation-unsupported-column\", { field: name, reference: referenced });\n }\n const ownType = fieldTypeKey({ column });\n const refType = fieldTypeKey({ column: refColumn });\n if (ownType !== refType) {\n refuse(\n `pairs ${relation.model}.${name} (${ownType}) with ${relation.targetModel}.${referenced} (${refType}) — both ends of a foreign key need the same scalar type`,\n \"relation-type-mismatch\",\n { field: name, reference: referenced, fieldType: ownType, referenceType: refType },\n );\n }\n });\n\n const keys = referenceableKeys({ model: target });\n const matched = keys.some(\n (key) => key.length === references.length && key.every((name) => references.includes(name)),\n );\n if (!matched) {\n refuse(\n `references ${relation.targetModel}.(${references.join(\", \")}), which is not a unique key there — declare those columns as the primary key, a unique column, or a total @@unique index`,\n \"relation-reference-not-unique\",\n { references, candidates: keys.map((key) => [...key]) },\n );\n }\n}\n\n// ─── Public API ────────────────────────\n\n/** Resolves a composed schema into the relations and indexes it emits. */\nexport function planSchema(params: { schema: SchemaDef }): SchemaPlan {\n const { schema } = params;\n const mergeMap = detectOneToOnePairs({\n relations: schema.__relations,\n models: schema.__models,\n });\n\n const relations = new Map<string, readonly PlannedRelation[]>();\n const indexes = new Map<string, readonly PlannedIndex[]>();\n\n for (const [modelName, model] of schema.__models) {\n const explicit = planExplicitRelations({\n modelName,\n model,\n relations: schema.__relations,\n mergeMap,\n });\n const reverses = planMissingReverseRelations({\n modelName,\n relations: schema.__relations,\n mergeMap,\n existing: explicit,\n });\n const children = planChildRelations({ modelName, model, models: schema.__models });\n\n const planned = [...explicit, ...reverses, ...children];\n for (const relation of planned) {\n if (relation.kind === \"fkOwner\") assertForeignKeyIntegrity({ relation, models: schema.__models });\n }\n relations.set(modelName, planned);\n indexes.set(modelName, planIndexes({ model }));\n }\n\n return { relations, indexes };\n}\n\n/**\n * Classifies a planned relation the way a Prisma parser would classify the\n * field it renders to: by the shape of the pair, never by DSL intent.\n *\n * Counterparts are the target model's relation fields that point back with a\n * symmetric relation name (both unnamed, or the same name) — the one implicit\n * many-to-many rule, with self-exclusion (LEARNINGS.md).\n */\nexport function resolveRelationType(params: {\n relation: PlannedRelation;\n plan: SchemaPlan;\n}): RelationType {\n const { relation, plan } = params;\n const counterparts = findCounterparts({ relation, plan });\n\n if (relation.isList) {\n if (counterparts.some((candidate) => !candidate.isList)) return \"oneToMany\";\n return counterparts.some((candidate) => candidate.isList) ? \"manyToMany\" : \"oneToMany\";\n }\n\n if (relation.kind === \"fkOwner\") {\n const pairedWithSingular =\n counterparts.length > 0 && counterparts.every((candidate) => !candidate.isList);\n return pairedWithSingular ? \"oneToOne\" : \"manyToOne\";\n }\n\n return \"oneToOne\";\n}\n\nfunction findCounterparts(params: {\n relation: PlannedRelation;\n plan: SchemaPlan;\n}): PlannedRelation[] {\n const { relation, plan } = params;\n const nameKey = relation.relationName ?? \"\";\n\n return (plan.relations.get(relation.targetModel) ?? []).filter(\n (candidate) =>\n candidate !== relation &&\n candidate.targetModel === relation.model &&\n (candidate.relationName ?? \"\") === nameKey\n );\n}\n",
11
+ "/**\n * The schema plan: one resolution of a `SchemaDef` into the exact relation\n * fields and indexes a model exposes.\n *\n * Both output paths consume it — `generate.prisma()` renders it as text and\n * `toIR()` compiles it to `SchemaIR` — so a schema authored once produces the\n * same relations either way, and `parse(generate.prisma(s))` matches `toIR(s)`.\n *\n * It resolves, in order:\n * 1. explicit relations (with the 1:1 merge pass, see `detectOneToOnePairs`),\n * 2. reverse list relations Prisma requires but the author left implicit,\n * 3. inline children lists, and the child's FK back to its parent,\n * 4. indexes (column-level + composite, deduplicated).\n *\n * Naming policy — a relation field is named by whoever declared it:\n * - author-declared relation keys (`Post: { author: … }`) and inline-children\n * keys (`Items: s.children(…)`) pass through VERBATIM, so the name the user\n * wrote is the name in both the IR and the `.prisma` text;\n * - names the planner invents (reverse list sides, a child's FK back to its\n * parent) use the `@relation` alias when there is one, else the source model\n * name, suffixed on collision.\n */\n\nimport { VibeError, isSqlObjectIdentity, predicateKey } from \"@vibeorm/schema\";\nimport type { CascadeAction, PredicateIR, QualifiedSqlName, RelationType } from \"@vibeorm/schema\";\nimport { fieldTypeKey } from \"./field-type.ts\";\nimport { evaluateIndexes } from \"./model.ts\";\nimport { toFkColumnName } from \"./naming.ts\";\nimport type {\n IndexType,\n ModelDef,\n RelationsMap,\n SchemaDef,\n StoredRelationDef,\n} from \"./types.ts\";\n\n// ─── Plan shapes ──────────────────────────\n\n/**\n * Structural role of a planned relation field:\n * - `fkOwner` — holds the foreign key (`@relation(fields:…, references:…)`)\n * - `backOne` — singular back reference, no foreign key\n * - `list` — list side (`Model[]`)\n */\nexport type PlannedRelationKind = \"fkOwner\" | \"backOne\" | \"list\";\n\n/** One relation field, exactly as it will be emitted. */\nexport type PlannedRelation = {\n readonly model: string;\n /**\n * Field name on the owning model, as emitted — the author's declared key\n * verbatim, or a planner-generated name for a side the author left implicit.\n */\n readonly name: string;\n readonly targetModel: string;\n readonly kind: PlannedRelationKind;\n readonly isList: boolean;\n readonly isOptional: boolean;\n /** `@relation(\"Name\")` — the DSL's `alias`. */\n readonly relationName?: string;\n /** Physical FOREIGN KEY name — the DSL's `constraintName`, never the alias. */\n readonly constraintName?: string;\n /** FK columns on this model, in declared order; member `i` pairs with `references[i]`. */\n readonly fields?: readonly string[];\n /** Referenced columns on the target model, in declared order. */\n readonly references?: readonly string[];\n readonly onDelete?: CascadeAction;\n readonly onUpdate?: CascadeAction;\n};\n\n/** One index, after column-level and composite indexes are deduplicated. */\nexport type PlannedIndex = {\n readonly map?: string;\n readonly isUnique: boolean;\n readonly columns: readonly string[];\n readonly indexType?: IndexType;\n /** Qualified operator classes keyed by logical index column. */\n readonly ops?: Readonly<Partial<Record<string, QualifiedSqlName>>>;\n /** Partial-index predicate (raw SQL) — postgres/pglite/sqlite only. */\n readonly where?: string;\n /** Partial-index predicate as a typed expression, rendered when the dialect is known. */\n readonly wherePredicate?: PredicateIR;\n /** `UNIQUE NULLS NOT DISTINCT` — unique indexes on postgres/pglite (15+) only. */\n readonly nullsNotDistinct?: boolean;\n /** Client selector name for a compound unique (Prisma `@@unique(..., name:)`). */\n readonly clientName?: string;\n};\n\n/** Everything both output paths need, keyed by model name. */\nexport type SchemaPlan = {\n readonly relations: ReadonlyMap<string, readonly PlannedRelation[]>;\n readonly indexes: ReadonlyMap<string, readonly PlannedIndex[]>;\n};\n\n// ─── 1:1 merge detection ──────────────────\n\n/** How a relation participates in a merged one-to-one pair. */\nexport type MergedOneToOneSide = {\n readonly role: \"fkOwner\" | \"backRelation\";\n readonly pairedRelName: string;\n readonly pairedModelName: string;\n /** Merged referential actions — the FK owner's win. */\n readonly onDelete?: CascadeAction;\n readonly onUpdate?: CascadeAction;\n /** Merged physical FK name — the FK owner's wins; either side may declare it. */\n readonly constraintName?: string;\n};\n\ntype OneRelationEntry = {\n readonly modelName: string;\n readonly relName: string;\n readonly rel: StoredRelationDef;\n};\n\nfunction relationPairKey(params: { relation: StoredRelationDef; reverse?: boolean }): string {\n const { relation, reverse } = params;\n return JSON.stringify(reverse\n ? [relation.__toModel, relation.__toColumns, relation.__fromModel, relation.__fromColumns, relation.__alias ?? \"\"]\n : [relation.__fromModel, relation.__fromColumns, relation.__toModel, relation.__toColumns, relation.__alias ?? \"\"]);\n}\n\n/**\n * Finds pairs of `r.one` relations that describe the same 1:1 relationship\n * from both sides, and decides which side owns the foreign key.\n *\n * Two `one` relations pair when their column references cross-match:\n * `A.from === B.to` and `A.to === B.from`. The FK owner is the side whose\n * `from` column is NOT the primary key.\n *\n * Returns a map keyed by `\"Model:relationName\"`.\n */\nexport function detectOneToOnePairs(params: {\n relations: RelationsMap;\n models: ReadonlyMap<string, ModelDef>;\n}): Map<string, MergedOneToOneSide> {\n const { relations, models } = params;\n const mergeMap = new Map<string, MergedOneToOneSide>();\n\n const allOnes: OneRelationEntry[] = [];\n for (const [modelName, modelRelations] of Object.entries(relations)) {\n for (const [relName, rel] of Object.entries(modelRelations)) {\n if (rel.__ownsForeignKey !== undefined && (typeof rel.__ownsForeignKey !== \"boolean\" || rel.__relationType !== \"one\" || (rel.__ownsForeignKey && rel.__fromModel !== modelName))) {\n throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: `Invalid foreign-key ownership declaration on ${modelName}.${relName}` });\n }\n if (rel.__relationType === \"one\") {\n allOnes.push({ modelName, relName, rel });\n }\n }\n }\n\n const candidatesByKey = new Map<string, { readonly positions: number[]; start: number }>();\n for (const [position, entry] of allOnes.entries()) {\n const key = relationPairKey({ relation: entry.rel });\n const bucket = candidatesByKey.get(key);\n if (bucket === undefined) candidatesByKey.set(key, { positions: [position], start: 0 });\n else bucket.positions.push(position);\n }\n const paired = new Set<string>();\n\n for (let i = 0; i < allOnes.length; i++) {\n const a = allOnes[i];\n if (a === undefined) continue;\n const keyA = `${a.modelName}:${a.relName}`;\n if (paired.has(keyA)) continue;\n\n const bucket = candidatesByKey.get(relationPairKey({ relation: a.rel, reverse: true }));\n if (bucket === undefined) continue;\n for (let candidate = bucket.start; candidate < bucket.positions.length; candidate++) {\n const j = bucket.positions[candidate]!;\n const b = allOnes[j]!;\n const keyB = `${b.modelName}:${b.relName}`;\n if (j <= i || paired.has(keyB)) {\n bucket.start = candidate + 1;\n continue;\n }\n\n // Composite sides pair only when the WHOLE tuple crosses over, member by\n // member: two relations sharing their first column but disagreeing later\n // describe different foreign keys.\n const sameColumnPair =\n a.rel.__fromModel === b.rel.__toModel &&\n sameColumnTuple({ left: a.rel.__fromColumns, right: b.rel.__toColumns }) &&\n a.rel.__toModel === b.rel.__fromModel &&\n sameColumnTuple({ left: a.rel.__toColumns, right: b.rel.__fromColumns });\n if (!sameColumnPair || (a.rel.__alias ?? \"\") !== (b.rel.__alias ?? \"\")) continue;\n\n const { fkOwner, backRelation } = resolveFkOwner({ a, b, models });\n\n const onDelete = fkOwner.rel.__onDelete ?? backRelation.rel.__onDelete;\n const onUpdate = fkOwner.rel.__onUpdate ?? backRelation.rel.__onUpdate;\n const constraintName = fkOwner.rel.__constraintName ?? backRelation.rel.__constraintName;\n\n const fkKey = `${fkOwner.modelName}:${fkOwner.relName}`;\n const backKey = `${backRelation.modelName}:${backRelation.relName}`;\n\n mergeMap.set(fkKey, {\n role: \"fkOwner\",\n pairedRelName: backRelation.relName,\n pairedModelName: backRelation.modelName,\n onDelete,\n onUpdate,\n ...(constraintName === undefined ? {} : { constraintName }),\n });\n mergeMap.set(backKey, {\n role: \"backRelation\",\n pairedRelName: fkOwner.relName,\n pairedModelName: fkOwner.modelName,\n onDelete,\n onUpdate,\n ...(constraintName === undefined ? {} : { constraintName }),\n });\n\n paired.add(fkKey);\n paired.add(backKey);\n bucket.start = candidate + 1;\n break;\n }\n }\n\n return mergeMap;\n}\n\n/** Two relation ends name the same columns, in the same order. */\nfunction sameColumnTuple(params: { left: readonly string[]; right: readonly string[] }): boolean {\n const { left, right } = params;\n return left.length === right.length && left.every((name, index) => name === right[index]);\n}\n\nfunction resolveFkOwner(params: {\n a: OneRelationEntry;\n b: OneRelationEntry;\n models: ReadonlyMap<string, ModelDef>;\n}): { fkOwner: OneRelationEntry; backRelation: OneRelationEntry } {\n const { a, b, models } = params;\n\n const ownershipError = (): never => {\n throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: `Ambiguous foreign-key ownership between ${a.modelName}.${a.relName} and ${b.modelName}.${b.relName}; set ownsForeignKey: true on the foreign-key side`, meta: { rule: \"ambiguous-foreign-key-owner\" } });\n };\n const aOwns = a.rel.__ownsForeignKey;\n const bOwns = b.rel.__ownsForeignKey;\n if (aOwns !== undefined || bOwns !== undefined) {\n if (aOwns === bOwns) return ownershipError();\n return aOwns === true || bOwns === false ? { fkOwner: a, backRelation: b } : { fkOwner: b, backRelation: a };\n }\n const aFromIsId = fromIsPrimaryKey({ model: models.get(a.modelName), columns: a.rel.__fromColumns });\n const bFromIsId = fromIsPrimaryKey({ model: models.get(b.modelName), columns: b.rel.__fromColumns });\n\n if (aFromIsId && !bFromIsId) return { fkOwner: b, backRelation: a };\n if (!aFromIsId && bFromIsId) return { fkOwner: a, backRelation: b };\n\n // Ambiguous (both or neither are primary keys): the side that declares\n // referential actions owns the FK, else the side whose column reads like one.\n const aActions = a.rel.__onDelete !== undefined || a.rel.__onUpdate !== undefined;\n const bActions = b.rel.__onDelete !== undefined || b.rel.__onUpdate !== undefined;\n if (aActions && !bActions) {\n return { fkOwner: a, backRelation: b };\n }\n if (bActions && !aActions) {\n return { fkOwner: b, backRelation: a };\n }\n\n const aLooksFk = a.rel.__fromColumns.some((column) => looksLikeForeignKey({ column }));\n const bLooksFk = b.rel.__fromColumns.some((column) => looksLikeForeignKey({ column }));\n if (aLooksFk === bLooksFk) return ownershipError();\n return aLooksFk ? { fkOwner: a, backRelation: b } : { fkOwner: b, backRelation: a };\n}\n\n/**\n * Does this relation end name the model's OWN primary key? A composite end must\n * be the whole compound key; a single column keeps the older, looser rule (an\n * `id()` column, or any member of a compound key) so single-column ownership\n * detection is unchanged.\n */\nfunction fromIsPrimaryKey(params: { model: ModelDef | undefined; columns: readonly string[] }): boolean {\n const { model, columns } = params;\n if (model === undefined) return false;\n if (columns.length > 1) {\n const primaryKey = model.__primaryKey;\n return (\n primaryKey !== undefined &&\n primaryKey.length === columns.length &&\n primaryKey.every((name) => columns.includes(name))\n );\n }\n const column = columns[0];\n if (column === undefined) return false;\n return model.__columns.get(column)?.__columnType === \"id\" || model.__primaryKey?.includes(column) === true;\n}\n\nfunction looksLikeForeignKey(params: { column: string }): boolean {\n const { column } = params;\n return column.toLowerCase().includes(\"id\") && column !== \"id\";\n}\n\n// ─── Relation planning ────────────────────\n\nfunction planExplicitRelations(params: {\n modelName: string;\n model: ModelDef;\n relations: RelationsMap;\n mergeMap: ReadonlyMap<string, MergedOneToOneSide>;\n}): PlannedRelation[] {\n const { modelName, model, relations, mergeMap } = params;\n const planned: PlannedRelation[] = [];\n\n for (const [relName, rel] of Object.entries(relations[modelName] ?? {})) {\n // The author's key IS the field name — never re-cased, so one logical\n // schema reads the same through the IR and through the .prisma text.\n const name = relName;\n const base = {\n model: modelName,\n name,\n targetModel: rel.__targetModel,\n relationName: rel.__alias,\n };\n\n if (rel.__relationType === \"many\") {\n planned.push({ ...base, kind: \"list\", isList: true, isOptional: false });\n continue;\n }\n\n const mergeInfo = mergeMap.get(`${modelName}:${relName}`);\n\n if (mergeInfo?.role === \"backRelation\") {\n // Parent side of a merged 1:1 — always an optional back reference.\n planned.push({ ...base, kind: \"backOne\", isList: false, isOptional: true });\n continue;\n }\n\n const ownsFk = mergeInfo?.role === \"fkOwner\" || (rel.__ownsForeignKey !== false && rel.__fromModel === modelName);\n if (!ownsFk) {\n planned.push({ ...base, kind: \"backOne\", isList: false, isOptional: rel.__optional });\n continue;\n }\n\n // MATCH SIMPLE: one NULL member and the database checks nothing, so the\n // parent is absent as soon as ANY member is nullable.\n const anyMemberOptional = rel.__fromColumns.some(\n (name) => model.__columns.get(name)?.__config.optional === true,\n );\n const constraintName = mergeInfo?.constraintName ?? rel.__constraintName;\n planned.push({\n ...base,\n kind: \"fkOwner\",\n isList: false,\n isOptional: anyMemberOptional || rel.__optional,\n fields: [...rel.__fromColumns],\n references: [...rel.__toColumns],\n ...(constraintName === undefined ? {} : { constraintName }),\n onDelete: mergeInfo?.onDelete ?? rel.__onDelete,\n onUpdate: mergeInfo?.onUpdate ?? rel.__onUpdate,\n });\n }\n\n return planned;\n}\n\n/**\n * Prisma requires both sides of a relation to exist. For every `one` relation\n * pointing at this model without a matching list on this side, plan the list.\n * Merged 1:1 pairs are complete already and are skipped.\n *\n * These names are generated, not declared: the `@relation` alias when the\n * source side has one, else the source model name, numerically suffixed if that\n * name is already taken on this model.\n */\nfunction planMissingReverseRelations(params: {\n modelName: string;\n relations: RelationsMap;\n incoming: readonly OneRelationEntry[];\n mergeMap: ReadonlyMap<string, MergedOneToOneSide>;\n existing: readonly PlannedRelation[];\n}): PlannedRelation[] {\n const { modelName, relations, incoming, mergeMap, existing } = params;\n const planned: PlannedRelation[] = [];\n\n const existingLists = new Set<string>();\n const existingNames = new Set<string>();\n for (const relation of existing) {\n existingNames.add(relation.name);\n if (relation.isList) {\n existingLists.add(`${relation.targetModel}:${relation.relationName ?? \"\"}`);\n }\n }\n\n for (const { modelName: sourceModelName, relName, rel } of incoming) {\n if (mergeMap.has(`${sourceModelName}:${relName}`)) continue;\n\n const reverseKey = `${sourceModelName}:${rel.__alias ?? \"\"}`;\n if (existingLists.has(reverseKey)) continue;\n\n // A self-relation may already declare its own list side explicitly.\n if (sourceModelName === modelName) {\n const hasExplicitReverse = Object.values(relations[sourceModelName] ?? {}).some(\n (other: StoredRelationDef) =>\n other.__relationType === \"many\" &&\n other.__targetModel === modelName &&\n other.__alias === rel.__alias\n );\n if (hasExplicitReverse) continue;\n }\n\n const baseName = rel.__alias ?? sourceModelName;\n let name = baseName;\n let counter = 1;\n while (existingNames.has(name)) {\n counter++;\n name = `${baseName}${counter}`;\n }\n\n planned.push({\n model: modelName,\n name,\n targetModel: sourceModelName,\n kind: \"list\",\n isList: true,\n isOptional: false,\n relationName: rel.__alias,\n });\n existingLists.add(reverseKey);\n existingNames.add(name);\n }\n\n return planned;\n}\n\n/** The parent's list of inline children, plus each child's FK back to it. */\nfunction planChildRelations(params: {\n modelName: string;\n model: ModelDef;\n parents: readonly (readonly [string, ModelDef])[];\n}): PlannedRelation[] {\n const { modelName, model, parents } = params;\n const planned: PlannedRelation[] = [];\n\n for (const [childKey, childModel] of model.__children) {\n planned.push({\n model: modelName,\n name: childKey,\n targetModel: childModel.__name,\n kind: \"list\",\n isList: true,\n isOptional: false,\n });\n }\n\n for (const [parentModelName, parentModel] of parents) {\n const parentPk =\n parentModel.__primaryKey?.[0] ??\n Array.from(parentModel.__columns.entries()).find(\n ([, column]) => column.__columnType === \"id\"\n )?.[0] ??\n \"id\";\n\n planned.push({\n model: modelName,\n name: parentModelName,\n targetModel: parentModelName,\n kind: \"fkOwner\",\n isList: false,\n isOptional: false,\n fields: [toFkColumnName({ modelName: parentModelName })],\n references: [parentPk],\n });\n }\n\n return planned;\n}\n\n// ─── Index planning ───────────────────────\n\nfunction planIndexes(params: { model: ModelDef }): PlannedIndex[] {\n const { model } = params;\n const byKey = new Map<string, PlannedIndex>();\n\n // Column-level `.index()` — id and unique columns are already indexed.\n for (const [columnName, column] of model.__columns) {\n if (column.__columnType === \"id\" || column.__config.unique === true) continue;\n if (column.__config.index === true) {\n byKey.set(columnName, { isUnique: false, columns: [columnName] });\n }\n }\n\n // Composite/typed indexes from the model's `indexes` callback. A partial\n // index (where) is a DIFFERENT database object from a total index over the\n // same columns, so the predicate joins the dedup key. A TYPED predicate joins\n // it through `predicateKey` — a structural, dialect-free identity — because\n // index planning runs before any provider is known and must not render SQL.\n for (const index of evaluateIndexes({ model })) {\n if (index.__ops !== undefined) {\n if (index.__ops === null || typeof index.__ops !== \"object\" || Array.isArray(index.__ops)) throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: \"Index ops must be a field-keyed qualified-name map\", meta: { rule: \"index-operator-class-map\", model: model.__name } });\n if (index.__type === \"unique\") throw new VibeError({ code: \"VIBE_UNSUPPORTED_CAPABILITY\", message: \"Custom unique operator classes can change client selector equality\", meta: { feature: \"uniqueIndexOperatorClasses\", model: model.__name } });\n for (const [field, operatorClass] of Object.entries(index.__ops)) {\n if (!index.__columns.includes(field)) throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: \"Operator class names a field outside the index\", meta: { rule: \"index-operator-class-field\", model: model.__name, field } });\n if (operatorClass !== undefined && !isSqlObjectIdentity({ kind: \"table\", name: operatorClass })) throw new VibeError({ code: \"VIBE_SCHEMA_INVALID\", message: \"Index operator class must be a qualified SQL name { namespace, name }\", meta: { rule: \"index-operator-class-identity\", model: model.__name, field } });\n }\n }\n const operatorClasses = index.__columns.map((field) => index.__ops?.[field]);\n const operatorSuffix = operatorClasses.some((operatorClass) => operatorClass !== undefined)\n ? `|ops:${JSON.stringify([index.__indexType ?? \"BTree\", operatorClasses.map((operatorClass) => operatorClass === undefined ? null : [operatorClass.namespace, operatorClass.name])])}`\n : \"\";\n const predicateSuffix =\n index.__where !== undefined\n ? `|where:${index.__where}`\n : index.__wherePredicate === undefined\n ? \"\"\n : `|where:${predicateKey({ predicate: index.__wherePredicate })}`;\n const key = index.__columns.join(\",\") + predicateSuffix + operatorSuffix;\n const existing = byKey.get(key);\n const isUnique = index.__type === \"unique\";\n\n if (existing === undefined || isUnique) {\n byKey.set(key, {\n isUnique,\n columns: [...index.__columns],\n indexType: index.__indexType,\n ...(index.__ops === undefined ? {} : { ops: index.__ops }),\n ...(index.__map === undefined ? {} : { map: index.__map }),\n ...(index.__where === undefined ? {} : { where: index.__where }),\n ...(index.__wherePredicate === undefined ? {} : { wherePredicate: index.__wherePredicate }),\n ...(index.__nullsNotDistinct === true ? { nullsNotDistinct: true } : {}),\n ...(index.__clientName === undefined ? {} : { clientName: index.__clientName }),\n });\n } else if (index.__map !== undefined) {\n byKey.set(key, { ...existing, map: index.__map, indexType: index.__indexType ?? existing.indexType });\n } else if (index.__indexType !== undefined && existing.indexType === undefined) {\n byKey.set(key, { ...existing, indexType: index.__indexType });\n }\n }\n\n return Array.from(byKey.values());\n}\n\n// ─── Foreign-key integrity ────────────────\n\n/**\n * Every column set a foreign key may legally REFERENCE on a model: its `id()`\n * column, each `unique()` column, its compound primary key and each TOTAL\n * `@@unique` index. A partial unique is excluded — raw `where:` or typed\n * `.where()` alike, because no dialect here accepts one as a foreign-key\n * target, and which SPELLING made it partial changes nothing about that.\n */\nfunction referenceableKeys(params: { model: ModelDef }): readonly (readonly string[])[] {\n const { model } = params;\n const keys: (readonly string[])[] = [];\n\n for (const [name, column] of model.__columns) {\n if (column.__columnType === \"id\" || column.__config.unique === true) keys.push([name]);\n }\n if (model.__primaryKey !== undefined && model.__primaryKey.length > 0) keys.push([...model.__primaryKey]);\n for (const index of evaluateIndexes({ model })) {\n if (index.__type === \"unique\" && index.__where === undefined && index.__wherePredicate === undefined) {\n keys.push([...index.__columns]);\n }\n }\n\n return keys;\n}\n\n/**\n * Checks one FK-owning relation the way the database will: equal arity, the\n * same scalar type on both ends of every member, and a referenced column set\n * that is exactly some unique key of the target.\n *\n * Refusing here is the earliest knowable moment — the alternative is DDL the\n * server rejects with \"there is no unique constraint matching given keys\", or\n * a foreign key that compares two different scalar types.\n */\nfunction assertForeignKeyIntegrity(params: {\n relation: PlannedRelation;\n models: ReadonlyMap<string, ModelDef>;\n}): void {\n const { relation, models } = params;\n const fields = relation.fields ?? [];\n const references = relation.references ?? [];\n const at = `${relation.model}.${relation.name}`;\n\n const refuse = (message: string, rule: string, meta: Record<string, unknown> = {}): never => {\n throw new VibeError({\n code: \"VIBE_SCHEMA_INVALID\",\n message: `Relation ${at}: ${message}`,\n meta: { rule, model: relation.model, relation: relation.name, ...meta },\n });\n };\n\n if (fields.length !== references.length) {\n refuse(\n `pairs ${fields.length} foreign-key column(s) with ${references.length} referenced column(s)`,\n \"relation-tuple-arity\",\n { fields, references },\n );\n }\n if (new Set(fields).size !== fields.length) {\n refuse(`repeats a foreign-key column (${fields.join(\", \")})`, \"relation-duplicate-column\", { fields });\n }\n if (new Set(references).size !== references.length) {\n refuse(`repeats a referenced column (${references.join(\", \")})`, \"relation-duplicate-column\", { references });\n }\n\n const owner = models.get(relation.model);\n const target = models.get(relation.targetModel);\n // An unknown target is `unknown-relation-target`, reported by IR validation\n // against the whole schema; nothing here can add to it.\n if (owner === undefined || target === undefined) return;\n\n fields.forEach((name, index) => {\n const referenced = references[index]!;\n const column = owner.__columns.get(name);\n const refColumn = target.__columns.get(referenced);\n if (column === undefined) {\n refuse(`uses foreign-key column \"${name}\", which ${relation.model} does not declare`, \"unknown-relation-field\", { field: name });\n return;\n }\n if (refColumn === undefined) {\n refuse(`references \"${relation.targetModel}.${referenced}\", which does not exist`, \"unknown-relation-reference\", { reference: referenced });\n return;\n }\n if (column.__config.array === true || refColumn.__config.array === true) {\n refuse(`pairs a scalar list (${name} ↔ ${referenced}) — a foreign key compares single values`, \"relation-list-column\", { field: name, reference: referenced });\n }\n if (column.__columnType === \"json\" || refColumn.__columnType === \"json\" || column.__columnType === \"unsupported\" || refColumn.__columnType === \"unsupported\") {\n refuse(`pairs ${name} ↔ ${referenced}, and Json/unsupported columns cannot be a foreign key`, \"relation-unsupported-column\", { field: name, reference: referenced });\n }\n const ownType = fieldTypeKey({ column });\n const refType = fieldTypeKey({ column: refColumn });\n if (ownType !== refType) {\n refuse(\n `pairs ${relation.model}.${name} (${ownType}) with ${relation.targetModel}.${referenced} (${refType}) — both ends of a foreign key need the same scalar type`,\n \"relation-type-mismatch\",\n { field: name, reference: referenced, fieldType: ownType, referenceType: refType },\n );\n }\n });\n\n const keys = referenceableKeys({ model: target });\n const matched = keys.some(\n (key) => key.length === references.length && key.every((name) => references.includes(name)),\n );\n if (!matched) {\n refuse(\n `references ${relation.targetModel}.(${references.join(\", \")}), which is not a unique key there — declare those columns as the primary key, a unique column, or a total @@unique index`,\n \"relation-reference-not-unique\",\n { references, candidates: keys.map((key) => [...key]) },\n );\n }\n}\n\n// ─── Public API ────────────────────────\n\ntype RelationLookups = {\n readonly incoming: ReadonlyMap<string, readonly OneRelationEntry[]>;\n readonly parents: ReadonlyMap<string, readonly (readonly [string, ModelDef])[]>;\n};\n\nfunction relationLookups(params: { schema: SchemaDef }): RelationLookups {\n const incoming = new Map<string, OneRelationEntry[]>();\n for (const [modelName, relations] of Object.entries(params.schema.__relations)) {\n for (const [relName, rel] of Object.entries(relations)) {\n if (rel.__relationType !== \"one\") continue;\n const target = rel.__targetModel;\n const entries = incoming.get(target);\n const entry = { modelName, relName, rel };\n if (entries === undefined) incoming.set(target, [entry]);\n else entries.push(entry);\n }\n }\n const parents = new Map<string, (readonly [string, ModelDef])[]>();\n for (const [name, model] of params.schema.__models) {\n for (const child of model.__children.values()) {\n const entries = parents.get(child.__name);\n if (entries === undefined) parents.set(child.__name, [[name, model]]);\n else entries.push([name, model]);\n }\n }\n return { incoming, parents };\n}\n\n/** Resolves a composed schema into the relations and indexes it emits. */\nexport function planSchema(params: { schema: SchemaDef }): SchemaPlan {\n const { schema } = params;\n const mergeMap = detectOneToOnePairs({\n relations: schema.__relations,\n models: schema.__models,\n });\n\n const relations = new Map<string, readonly PlannedRelation[]>();\n const indexes = new Map<string, readonly PlannedIndex[]>();\n let lookups = relationLookups({ schema });\n let refreshLookups = false;\n\n for (const [modelName, model] of schema.__models) {\n if (refreshLookups) {\n lookups = relationLookups({ schema });\n refreshLookups = false;\n }\n const explicit = planExplicitRelations({\n modelName,\n model,\n relations: schema.__relations,\n mergeMap,\n });\n const reverses = planMissingReverseRelations({\n modelName,\n relations: schema.__relations,\n incoming: lookups.incoming.get(modelName) ?? [],\n mergeMap,\n existing: explicit,\n });\n const children = planChildRelations({ modelName, model, parents: lookups.parents.get(modelName) ?? [] });\n\n const planned = [...explicit, ...reverses, ...children];\n for (const relation of planned) {\n if (relation.kind === \"fkOwner\") {\n if (schema.__models.get(relation.targetModel)?.__indexes !== undefined) refreshLookups = true;\n assertForeignKeyIntegrity({ relation, models: schema.__models });\n }\n }\n relations.set(modelName, planned);\n // Callbacks may mutate authoring metadata as well as return fresh indexes.\n // Rebuild structural lookups before the next model, without caching results.\n if (model.__indexes !== undefined) refreshLookups = true;\n indexes.set(modelName, planIndexes({ model }));\n }\n\n return { relations, indexes };\n}\n\n/**\n * Classifies a planned relation the way a Prisma parser would classify the\n * field it renders to: by the shape of the pair, never by DSL intent.\n *\n * Counterparts are the target model's relation fields that point back with a\n * symmetric relation name (both unnamed, or the same name) — the one implicit\n * many-to-many rule, with self-exclusion (LEARNINGS.md).\n */\nexport function resolveRelationType(params: {\n relation: PlannedRelation;\n plan: SchemaPlan;\n}): RelationType {\n const { relation, plan } = params;\n const counterparts = findCounterparts({ relation, plan });\n\n if (relation.isList) {\n if (counterparts.some((candidate) => !candidate.isList)) return \"oneToMany\";\n return counterparts.some((candidate) => candidate.isList) ? \"manyToMany\" : \"oneToMany\";\n }\n\n if (relation.kind === \"fkOwner\") {\n const pairedWithSingular =\n counterparts.length > 0 && counterparts.every((candidate) => !candidate.isList);\n return pairedWithSingular ? \"oneToOne\" : \"manyToOne\";\n }\n\n return \"oneToOne\";\n}\n\nfunction findCounterparts(params: {\n relation: PlannedRelation;\n plan: SchemaPlan;\n}): PlannedRelation[] {\n const { relation, plan } = params;\n const nameKey = relation.relationName ?? \"\";\n\n return (plan.relations.get(relation.targetModel) ?? []).filter(\n (candidate) =>\n candidate !== relation &&\n candidate.targetModel === relation.model &&\n (candidate.relationName ?? \"\") === nameKey\n );\n}\n",
12
12
  "/**\n * Model builder — `dsl.create({ name, schema, indexes })`.\n *\n * Models hold columns (and optional inline children) only; relations are\n * declared separately via `dsl.defineRelations()`.\n *\n * @example\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\nimport { VibeError } from \"@vibeorm/schema\";\nimport type { PredicateIR } from \"@vibeorm/schema\";\nimport { cloneColumnDef } from \"./column.ts\";\nimport { toFkColumnName } from \"./naming.ts\";\nimport { createPredicateBuilder } from \"./predicate.ts\";\nimport { createChildrenBuilder } from \"./relation.ts\";\nimport type {\n ChecksCallback,\n ChildrenDef,\n ChildrenSchemaCallback,\n ColumnDef,\n CreateModelConfig,\n ModelCheckConfig,\n IndexBuilder,\n IndexCallback,\n IndexDef,\n IndexOptions,\n IndexType,\n ModelDef,\n ModelPolicyConfig,\n PartialIndexDef,\n PredicateBuilder,\n SchemaDefinition,\n UniqueIndexOptions,\n} from \"./types.ts\";\n\n// ─── Type guards ──────────────────────────\n\nfunction isColumnDef(value: unknown): value is ColumnDef {\n return (\n typeof value === \"object\" && value !== null && \"__type\" in value && value.__type === \"column\"\n );\n}\n\nfunction isChildrenDef(value: unknown): value is ChildrenDef {\n return (\n typeof value === \"object\" && value !== null && \"__type\" in value && value.__type === \"children\"\n );\n}\n\n// ─── Index builder ────────────────────────\n\n/**\n * Creates the `i` handed to a model's `indexes` callback.\n *\n * @example\n * indexes: (i) => [\n * i.on(\"workspaceId\", \"name\"),\n * i.unique(\"workspaceId\", \"email\"),\n * i.gin(\"tags\"),\n * i.on([\"content\"], { type: \"Gist\" }),\n * ]\n */\nexport function createIndexBuilder<\n T extends string = string,\n TSchema extends SchemaDefinition = SchemaDefinition,\n>(): IndexBuilder<T, TSchema> {\n /**\n * Attach the terminal `.where()` so an index can still take a TYPED partial\n * predicate. It returns a plain `IndexDef`, so the chain cannot be reopened\n * and an index carries at most one predicate.\n */\n const partial = (index: IndexDef): PartialIndexDef<T, TSchema> => {\n const where = (predicate: (c: PredicateBuilder<T, TSchema>) => PredicateIR): IndexDef => {\n if (index.__where !== undefined) {\n throw new VibeError({\n code: \"VIBE_SCHEMA_INVALID\",\n message: `Index on [${index.__columns.join(\", \")}] already carries a raw where: predicate — an index has ONE predicate, so use either the raw string or .where(), not both`,\n meta: { rule: \"predicate-duplicate-where\", columns: [...index.__columns] },\n });\n }\n return { ...index, __wherePredicate: predicate(createPredicateBuilder<T, TSchema>()) };\n };\n // NON-enumerable on purpose: an IndexDef is DATA. An enumerable method\n // would be copied by every `{ ...index }` spread, serialized by\n // JSON.stringify, and compared by every structural assertion — so the\n // builder's own affordance would leak into the value it builds.\n return Object.defineProperty({ ...index }, \"where\", {\n value: where,\n enumerable: false,\n writable: false,\n configurable: true,\n }) as PartialIndexDef<T, TSchema>;\n };\n\n const createIndex = (params: { columns: readonly string[]; type?: IndexType; where?: string; map?: string; ops?: IndexOptions[\"ops\"] }): IndexDef => ({\n __type: \"index\",\n __columns: [...params.columns],\n __indexType: params.type,\n ...(params.map === undefined ? {} : { __map: params.map }),\n ...(params.where === undefined ? {} : { __where: params.where }),\n ...(params.ops === undefined ? {} : { __ops: params.ops }),\n });\n\n return {\n /** Composite (or single-column) index; the array form takes options. */\n on<C extends T>(...args: C[] | [C[], IndexOptions<NoInfer<C>>]): PartialIndexDef<T, TSchema> {\n const [first, second] = args;\n if (\n args.length === 2 &&\n Array.isArray(first) &&\n typeof second === \"object\" &&\n !Array.isArray(second)\n ) {\n return partial(createIndex({ columns: first, type: second.type, where: second.where, map: second.map, ops: second.ops }));\n }\n return partial(createIndex({ columns: args as string[] }));\n },\n\n /** Alias of `on(...)`. */\n index<C extends T>(...columns: C[]): PartialIndexDef<T, TSchema> {\n return partial(createIndex({ columns }));\n },\n\n /** Unique constraint (`@@unique([...])`); the array form takes options (partial `where`). */\n unique<C extends T>(...args: C[] | [C[], UniqueIndexOptions]): PartialIndexDef<T, TSchema> {\n const [first, second] = args;\n if (\n args.length === 2 &&\n Array.isArray(first) &&\n typeof second === \"object\" &&\n !Array.isArray(second)\n ) {\n if (\"ops\" in second && second.ops !== undefined) {\n throw new VibeError({ code: \"VIBE_UNSUPPORTED_CAPABILITY\", message: \"Custom unique operator classes can change client selector equality\", meta: { feature: \"uniqueIndexOperatorClasses\" } });\n }\n return partial({\n __type: \"unique\",\n __columns: [...first],\n ...(second.map === undefined ? {} : { __map: second.map }),\n ...(second.where === undefined ? {} : { __where: second.where }),\n ...(second.nullsNotDistinct === true ? { __nullsNotDistinct: true } : {}),\n ...(second.name === undefined ? {} : { __clientName: second.name }),\n });\n }\n return partial({ __type: \"unique\", __columns: [...(args as string[])] });\n },\n\n /** GIN index — JSON, arrays, full-text (PostgreSQL). */\n gin<C extends T>(...columns: C[]): PartialIndexDef<T, TSchema> {\n return partial(createIndex({ columns, type: \"Gin\" }));\n },\n\n /** GiST index — geometric, range and full-text data (PostgreSQL). */\n gist<C extends T>(...columns: C[]): PartialIndexDef<T, TSchema> {\n return partial(createIndex({ columns, type: \"Gist\" }));\n },\n\n /** Hash index — equality lookups (PostgreSQL). */\n hash<C extends T>(...columns: C[]): PartialIndexDef<T, TSchema> {\n return partial(createIndex({ columns, type: \"Hash\" }));\n },\n\n /** BRIN index — large, naturally ordered tables (PostgreSQL). */\n brin<C extends T>(...columns: C[]): PartialIndexDef<T, TSchema> {\n return partial(createIndex({ columns, type: \"Brin\" }));\n },\n };\n}\n\n// ─── Schema processing ────────────────────\n\nfunction processSchema(params: {\n modelName: string;\n schema: SchemaDefinition | ChildrenSchemaCallback;\n}): { columns: Map<string, ColumnDef>; children: Map<string, ModelDef> } {\n const { modelName, schema } = params;\n const resolvedSchema = typeof schema === \"function\" ? schema(createChildrenBuilder()) : schema;\n\n const columns = new Map<string, ColumnDef>();\n const children = new Map<string, ModelDef>();\n\n for (const [key, value] of Object.entries(resolvedSchema)) {\n if (isColumnDef(value)) {\n // Clone so template-provided columns are never shared between models.\n const cloned = cloneColumnDef({ column: value });\n cloned.__name = key;\n columns.set(key, cloned);\n } else if (isChildrenDef(value)) {\n const childModel = create({ name: value.__name, schema: value.__schema });\n\n // The child carries the FK back to its parent.\n const parentFkName = toFkColumnName({ modelName });\n childModel.__columns.set(parentFkName, {\n __type: \"column\",\n __columnType: \"string\",\n __name: parentFkName,\n __config: { index: true },\n });\n\n children.set(key, childModel);\n }\n }\n\n return { columns, children };\n}\n\n// ─── Model factory ────────────────────────\n\n/**\n * Creates a model definition. `indexes` and `primaryKey` are constrained to\n * the model's own column names.\n */\nexport function create<const TSchema extends SchemaDefinition>(\n config: CreateModelConfig<TSchema>\n): ModelDef<TSchema> {\n const { columns, children } = processSchema({\n modelName: config.name,\n schema: config.schema,\n });\n\n return {\n __type: \"model\",\n __name: config.name,\n __schema: config.schema,\n __indexes: config.indexes as IndexCallback | undefined,\n __columns: columns,\n __children: children,\n __map: config.map,\n __primaryKey: config.primaryKey as string[] | undefined,\n // Same widening as `indexes` above: the config's callback is bound to THIS\n // model's columns, and the stored form is the erased one every consumer\n // reads. The type parameters have done their work at the call site.\n __exclusions: config.exclusions as ModelDef[\"__exclusions\"],\n __checks: config.checks as readonly ModelCheckConfig[] | ChecksCallback | undefined,\n __extensions: config.extensions,\n __policy: config.policy as ModelPolicyConfig | undefined,\n __comment: config.comment,\n };\n}\n\n// ─── Model utilities ──────────────────────\n\n/** All column names of a model, in declaration order. */\nexport function getColumnNames(params: { model: ModelDef }): string[] {\n return Array.from(params.model.__columns.keys());\n}\n\n/** Runs a model's `indexes` callback, if it declared one. */\nexport function evaluateIndexes(params: { model: ModelDef }): IndexDef[] {\n const { model } = params;\n if (model.__indexes === undefined) {\n return [];\n }\n return model.__indexes(createIndexBuilder<string, SchemaDefinition>());\n}\n",
13
13
  "/**\n * Naming helpers shared by the model builder, the Prisma generator and the\n * IR compiler. Both output paths must agree on every derived name, so they\n * live here rather than being re-derived per consumer.\n */\n\n// ─── Case helpers ─────────────────────────\n\n/** `\"status\"` → `\"Status\"` — used to build derived type names, never field names. */\nexport function capitalize(params: { value: string }): string {\n const { value } = params;\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n\n/** `\"Order\"` → `\"order\"`. */\nexport function uncapitalize(params: { value: string }): string {\n const { value } = params;\n return value.charAt(0).toLowerCase() + value.slice(1);\n}\n\n// ─── Derived names ────────────────────────\n\n/** Foreign-key column a child model gets for its parent: `\"Order\"` → `\"orderId\"`. */\nexport function toFkColumnName(params: { modelName: string }): string {\n return `${uncapitalize({ value: params.modelName })}Id`;\n}\n\n/** Name generated for an inline enum: model `User` + column `status` → `UserStatus`. */\nexport function inlineEnumName(params: { modelName: string; columnName: string }): string {\n const { modelName, columnName } = params;\n return `${modelName}${capitalize({ value: columnName })}`;\n}\n",
14
14
  "/**\n * Children builder for inline nested models. Relations proper are declared\n * separately through `defineRelations`; `children()` only exists so a model\n * can spawn an owned child model (with an automatic FK back to the parent).\n *\n * @example\n * const Order = dsl.create({\n * name: \"Order\",\n * schema: (s) => ({\n * id: dsl.id(),\n * Items: s.children({\n * name: \"OrderItem\",\n * schema: { id: dsl.id(), quantity: dsl.int() },\n * }),\n * }),\n * });\n */\n\nimport type { ChildrenBuilder, ChildrenDef, ChildrenRelationConfig } from \"./types.ts\";\n\n// ─── Children builder ─────────────────────\n\n/** Declares an inline child model owned by the enclosing model. */\nexport function children(config: ChildrenRelationConfig): ChildrenDef {\n return {\n __type: \"children\",\n __name: config.name,\n __schema: config.schema,\n };\n}\n\n/** Creates the `s` handed to a model's schema callback. */\nexport function createChildrenBuilder(): ChildrenBuilder {\n return { children };\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 ChainableJsonColumn,\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 ChainableJsonColumn,\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) => ChainableJsonColumn;\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": "0EC0F0E6154BF1C064756E2164756E21",
21
+ "mappings": "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",
22
+ "debugId": "AC91338749EBA17764756E2164756E21",
23
23
  "names": []
24
24
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibeorm/dsl",
3
- "version": "2.4.0",
3
+ "version": "3.0.0",
4
4
  "description": "TypeScript schema DSL for VibeORM v2 — compiles to canonical SchemaIR, with .prisma generation for interop",
5
5
  "keywords": [
6
6
  "orm",
@@ -34,15 +34,17 @@
34
34
  },
35
35
  "files": [
36
36
  "dist",
37
- "README.md"
37
+ "!dist/**/*.d.ts.map",
38
+ "README.md",
39
+ "LICENSE"
38
40
  ],
39
41
  "engines": {
40
42
  "node": ">=18",
41
43
  "bun": ">=1.2.0"
42
44
  },
43
45
  "dependencies": {
44
- "@vibeorm/schema": "2.5.0",
45
- "@vibeorm/sql": "2.5.0"
46
+ "@vibeorm/schema": "3.0.0",
47
+ "@vibeorm/sql": "3.0.0"
46
48
  },
47
49
  "publishConfig": {
48
50
  "access": "public"
@@ -1 +0,0 @@
1
- {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../src/column.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../src/enum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAA+B,MAAM,YAAY,CAAC;AAIvE,2EAA2E;AAC3E,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,IAAI;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,CAAC;IACX;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAUF;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EAC1D,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,CAAC,CAAC,CAYZ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-type.d.ts","sourceRoot":"","sources":["../src/field-type.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,YAAY,CAAC;AAE5D;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG,SAAS,CA6BxE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG,MAAM,CAElE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -1 +0,0 @@
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;AAsTrB;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,qBAA0B,GAAG,MAAM,CAiD5F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,OAAO,KAAK,EAKV,iBAAiB,EAEjB,YAAY,EAEZ,QAAQ,EAGR,QAAQ,EAIR,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAkBpB;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,KAChD,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAsG5B;AAyCD;;;GAGG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,gBAAgB,EAC3D,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,GACjC,QAAQ,CAAC,OAAO,CAAC,CAwBnB;AAID,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,GAAG,MAAM,EAAE,CAEpE;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,GAAG,QAAQ,EAAE,CAMvE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAG5D;AAED,6BAA6B;AAC7B,wBAAgB,YAAY,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAG9D;AAID,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEpE;AAED,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAGxF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"predicate.d.ts","sourceRoot":"","sources":["../src/predicate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAkB,MAAM,iBAAiB,CAAC;AAE1G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EAEhB,gBAAgB,EAEhB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAyEpB;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,SAAS,MAAM,GAAG,MAAM,EAChC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,KAChD,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CA8DvC;AAID,kFAAkF;AAClF,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAA;CAAE,CAAC;AAEvF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAAG,cAAc,GAAG,SAAS,CAAC;IACjE,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,SAAS,cAAc,EAAE,CAmB5B;AAID,oEAAoE;AACpE,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;CACrC,CAAC;AAEF;;;;;;;;;GASG;AACH,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IAAE,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAAC,KAAK,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,GAAG,SAAS,WAAW,EAAE,CAGtJ;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE;IACpC,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAAG,cAAc,GAAG,SAAS,CAAC;IACjE,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B,GAAG,SAAS,OAAO,EAAE,CAkBrB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,SAAS,CAwBhF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"relation-plan.d.ts","sourceRoot":"","sources":["../src/relation-plan.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../src/relation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAIvF,mEAAmE;AACnE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,sBAAsB,GAAG,WAAW,CAMpE;AAED,2DAA2D;AAC3D,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../src/relations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAKV,QAAQ,EACR,eAAe,EAGf,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAGhB,MAAM,YAAY,CAAC;AAmMpB;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,SAAS,YAAY,EAC1G,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,GAC7E,OAAO,CAGT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,SAAS,YAAY,EAC9G,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GACtF,OAAO,CAGT;AAED,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,KAAK,CAAC,MAAM,SAAS,SAAS,YAAY,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAWtH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAW,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAkB,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAgE9J,MAAM,MAAM,aAAa,GAAG;IAC1B,sEAAsE;IACtE,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AA8HF,iFAAiF;AACjF,wBAAgB,SAAS,CACvB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EACxC,KAAK,CAAC,UAAU,SAAS,YAAY,EACrC,KAAK,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,EAC/D,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,MAAM,CA6CjE;AAID;;;GAGG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAe7E;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAAE,GAAG;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAClC,CAGA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"to-ir.d.ts","sourceRoot":"","sources":["../src/to-ir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAaH,OAAO,KAAK,EACV,cAAc,EAGd,iBAAiB,EACjB,OAAO,EAKP,QAAQ,EAER,QAAQ,EAET,MAAM,iBAAiB,CAAC;AAQzB,OAAO,KAAK,EACV,SAAS,EACT,oBAAoB,EAKpB,SAAS,EAEV,MAAM,YAAY,CAAC;AA6BpB,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG,cAAc,GAAG,SAAS,CA4CtF;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAY3H;AA2CD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,CAAC;IAClB,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,OAAO,CA8BV;AA2OD;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC,GAAG,QAAQ,CAmDX"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAI/D,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAIF,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,EAAE,CAkHnE"}