@vibeorm/dsl 2.0.0-alpha.8 → 2.1.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/dist/model.d.ts CHANGED
@@ -27,7 +27,7 @@ import type { CreateModelConfig, IndexBuilder, IndexDef, ModelDef, SchemaDefinit
27
27
  * i.on(["content"], { type: "Gist" }),
28
28
  * ]
29
29
  */
30
- export declare function createIndexBuilder<T extends string = string>(): IndexBuilder<T>;
30
+ export declare function createIndexBuilder<T extends string = string, TSchema extends SchemaDefinition = SchemaDefinition>(): IndexBuilder<T, TSchema>;
31
31
  /**
32
32
  * Creates a model definition. `indexes` and `primaryKey` are constrained to
33
33
  * the model's own column names.
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAIV,iBAAiB,EACjB,YAAY,EAEZ,QAAQ,EAGR,QAAQ,EAER,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAkBpB;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,CAoE/E;AAyCD;;;GAGG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,gBAAgB,EAC3D,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,GACjC,QAAQ,CAAC,OAAO,CAAC,CAoBnB;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
+ {"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,CAkG5B;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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * The typed predicate builder — the `c` handed to a model's `checks` callback
3
+ * and to an index's `.where()`.
4
+ *
5
+ * Every combinator returns plain {@link PredicateIR}: serializable data, never
6
+ * a JavaScript callback. Nothing downstream evaluates a function, and a
7
+ * predicate survives JSON unchanged. The SQL text is produced exactly once, by
8
+ * `renderPredicate` in @vibeorm/sql, when the schema is compiled and the
9
+ * dialect is finally known.
10
+ *
11
+ * The builder is structural at RUNTIME — it only records names and values — so
12
+ * one instance serves every model. The type parameters on
13
+ * {@link PredicateBuilder} are what bind it to a particular model's columns.
14
+ */
15
+ import type { ExclusionIR, CheckIR, EnumIR, FieldIR, PredicateIR } from "@vibeorm/schema";
16
+ import type { SqlDialect } from "@vibeorm/sql";
17
+ import type { ModelDef, ChecksCallback, ModelCheckConfig, PredicateBuilder, SchemaDefinition } from "./types.ts";
18
+ /**
19
+ * One predicate builder instance. Stateless and structural — the type
20
+ * parameters, not the value, bind it to a model.
21
+ */
22
+ export declare function createPredicateBuilder<TColumns extends string = string, TSchema extends SchemaDefinition = SchemaDefinition>(): PredicateBuilder<TColumns, TSchema>;
23
+ /** A model's CHECKs, still un-rendered: raw text stays raw, typed stays typed. */
24
+ export type EvaluatedCheck = {
25
+ readonly kind: "raw";
26
+ readonly name: string;
27
+ readonly expression: string;
28
+ } | {
29
+ readonly kind: "typed";
30
+ readonly name: string;
31
+ readonly predicate: PredicateIR;
32
+ };
33
+ /**
34
+ * Run a model's `checks` declaration, whichever form it took.
35
+ *
36
+ * The raw array form and the typed callback form produce the same shape of
37
+ * answer, so every consumer downstream handles ONE list — and raw text is
38
+ * carried through untouched rather than parsed into a predicate.
39
+ */
40
+ export declare function evaluateChecks(params: {
41
+ checks: readonly ModelCheckConfig[] | ChecksCallback | undefined;
42
+ model: string;
43
+ }): readonly EvaluatedCheck[];
44
+ /** What a predicate needs to know about the model it belongs to. */
45
+ export type PredicateModel = {
46
+ readonly name: string;
47
+ readonly fields: readonly FieldIR[];
48
+ };
49
+ /**
50
+ * A model's CHECKs as IR, with every typed expression compiled to SQL ONCE.
51
+ *
52
+ * `CheckIR.expression` always carries the AUTHORED text — what the schema says,
53
+ * not what a database deparsed back — because that is the currency EPIC 1's
54
+ * differ, desired-state records and DDL renderers all read. The predicate rides
55
+ * alongside as the structured source, so editing a typed expression changes the
56
+ * text and produces a real migration, while re-rendering an unchanged one
57
+ * produces byte-identical text and cannot churn.
58
+ */
59
+ /** Compile exclusions beside CHECKs and index predicates at the schema boundary. */
60
+ export declare function compileExclusions(params: {
61
+ exclusions: ModelDef["__exclusions"];
62
+ model: PredicateModel;
63
+ dialect: SqlDialect;
64
+ }): readonly ExclusionIR[];
65
+ export declare function compileChecks(params: {
66
+ checks: readonly ModelCheckConfig[] | ChecksCallback | undefined;
67
+ model: PredicateModel;
68
+ dialect: SqlDialect;
69
+ enums: readonly EnumIR[];
70
+ }): readonly CheckIR[];
71
+ /**
72
+ * An index's partial predicate as IR: the raw string verbatim, or a typed
73
+ * expression compiled to SQL text plus its structured source.
74
+ */
75
+ export declare function compileIndexPredicate(params: {
76
+ where: string | undefined;
77
+ wherePredicate: PredicateIR | undefined;
78
+ columns: readonly string[];
79
+ model: PredicateModel;
80
+ dialect: SqlDialect;
81
+ enums: readonly EnumIR[];
82
+ }): {
83
+ readonly where: string;
84
+ readonly wherePredicate?: PredicateIR;
85
+ } | undefined;
86
+ //# sourceMappingURL=predicate.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -20,7 +20,7 @@
20
20
  * parent) use the `@relation` alias when there is one, else the source model
21
21
  * name, suffixed on collision.
22
22
  */
23
- import type { CascadeAction, RelationType } from "@vibeorm/schema";
23
+ import type { CascadeAction, PredicateIR, RelationType } from "@vibeorm/schema";
24
24
  import type { IndexType, ModelDef, RelationsMap, SchemaDef } from "./types.ts";
25
25
  /**
26
26
  * Structural role of a planned relation field:
@@ -43,18 +43,25 @@ export type PlannedRelation = {
43
43
  readonly isOptional: boolean;
44
44
  /** `@relation("Name")` — the DSL's `alias`. */
45
45
  readonly relationName?: string;
46
+ /** Physical FOREIGN KEY name — the DSL's `constraintName`, never the alias. */
47
+ readonly constraintName?: string;
48
+ /** FK columns on this model, in declared order; member `i` pairs with `references[i]`. */
46
49
  readonly fields?: readonly string[];
50
+ /** Referenced columns on the target model, in declared order. */
47
51
  readonly references?: readonly string[];
48
52
  readonly onDelete?: CascadeAction;
49
53
  readonly onUpdate?: CascadeAction;
50
54
  };
51
55
  /** One index, after column-level and composite indexes are deduplicated. */
52
56
  export type PlannedIndex = {
57
+ readonly map?: string;
53
58
  readonly isUnique: boolean;
54
59
  readonly columns: readonly string[];
55
60
  readonly indexType?: IndexType;
56
61
  /** Partial-index predicate (raw SQL) — postgres/pglite/sqlite only. */
57
62
  readonly where?: string;
63
+ /** Partial-index predicate as a typed expression, rendered when the dialect is known. */
64
+ readonly wherePredicate?: PredicateIR;
58
65
  /** `UNIQUE NULLS NOT DISTINCT` — unique indexes on postgres/pglite (15+) only. */
59
66
  readonly nullsNotDistinct?: boolean;
60
67
  /** Client selector name for a compound unique (Prisma `@@unique(..., name:)`). */
@@ -73,6 +80,8 @@ export type MergedOneToOneSide = {
73
80
  /** Merged referential actions — the FK owner's win. */
74
81
  readonly onDelete?: CascadeAction;
75
82
  readonly onUpdate?: CascadeAction;
83
+ /** Merged physical FK name — the FK owner's wins; either side may declare it. */
84
+ readonly constraintName?: string;
76
85
  };
77
86
  /**
78
87
  * Finds pairs of `r.one` relations that describe the same 1:1 relationship
@@ -1 +1 @@
1
- {"version":3,"file":"relation-plan.d.ts","sourceRoot":"","sources":["../src/relation-plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGnE,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,SAAS,EAEV,MAAM,YAAY,CAAC;AAIpB;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAEjE,yDAAyD;AACzD,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,+CAA+C;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;CACnC,CAAC;AAEF,4EAA4E;AAC5E,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,uEAAuE;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC,CAAC;IACpE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC;CAChE,CAAC;AAIF,+DAA+D;AAC/D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,cAAc,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;CACnC,CAAC;AAQF;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,SAAS,EAAE,YAAY,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACvC,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAgElC;AA6PD,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG,UAAU,CA8BpE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,UAAU,CAAC;CAClB,GAAG,YAAY,CAgBf"}
1
+ {"version":3,"file":"relation-plan.d.ts","sourceRoot":"","sources":["../src/relation-plan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../src/relations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAGV,QAAQ,EACR,eAAe,EAEf,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAGhB,MAAM,YAAY,CAAC;AA+HpB;;;;;;;;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
+ {"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"}
package/dist/to-ir.d.ts CHANGED
@@ -26,8 +26,25 @@
26
26
  * - `.collation()` / `{ collation }` → `FieldIR.collation`.
27
27
  * - relation types are derived structurally by `resolveRelationType`.
28
28
  */
29
- import type { ExtensionRegistry, Provider, SchemaIR } from "@vibeorm/schema";
30
- import type { SchemaDef } from "./types.ts";
29
+ import type { DefaultValueIR, ExtensionRegistry, FieldIR, Provider, SchemaIR } from "@vibeorm/schema";
30
+ import type { ColumnDef, SchemaDef } from "./types.ts";
31
+ /** Compile a column default once for both DSL output paths. */
32
+ export declare function fieldDefault(params: {
33
+ column: ColumnDef;
34
+ }): DefaultValueIR | undefined;
35
+ /**
36
+ * One column as `FieldIR`.
37
+ *
38
+ * Exported so the `.prisma` printer compiles typed CHECK and partial-index
39
+ * expressions against exactly the same physical names and scalar types the IR
40
+ * path uses — a second mapping is how the two would drift apart.
41
+ */
42
+ export declare function buildField(params: {
43
+ name: string;
44
+ column: ColumnDef;
45
+ /** Native type resolved by an extension field-type lowering, when present. */
46
+ extensionNativeType?: string;
47
+ }): FieldIR;
31
48
  /**
32
49
  * Compiles a composed DSL schema to the canonical `SchemaIR`, then validates it.
33
50
  *
@@ -1 +1 @@
1
- {"version":3,"file":"to-ir.d.ts","sourceRoot":"","sources":["../src/to-ir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AASH,OAAO,KAAK,EAIV,iBAAiB,EAMjB,QAAQ,EAER,QAAQ,EAET,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAMV,SAAS,EAEV,MAAM,YAAY,CAAC;AAyWpB;;;;;;;;;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,CA+CX"}
1
+ {"version":3,"file":"to-ir.d.ts","sourceRoot":"","sources":["../src/to-ir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAYH,OAAO,KAAK,EACV,cAAc,EAGd,iBAAiB,EACjB,OAAO,EAKP,QAAQ,EAER,QAAQ,EAET,MAAM,iBAAiB,CAAC;AAQzB,OAAO,KAAK,EACV,SAAS,EAKT,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,CAyCtF;AA6CD;;;;;;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;AA0OD;;;;;;;;;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"}