@vibeorm/dsl 2.2.3 → 2.4.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/README.md CHANGED
@@ -69,7 +69,7 @@ Id strategies are `dsl.id({ type: "ulid" | "uuid" | "cuid" | "nanoid" | "autoinc
69
69
 
70
70
  On every column: `.optional()`, `.unique()`, `.index()`, `.array()`, `.default(value)`, `.map("db_col")`, `.dbgenerated("expr")`, `.comment("...")`.
71
71
 
72
- Kind-specific: `.maxLength(n)` and `.text()` on strings, `.precision(p, s)` on decimals, `.defaultNow()`, `.updatedAt()` and `.tz()` on datetimes.
72
+ Kind-specific: `.maxLength(n)` and `.text()` on strings, `.precision(p, s)` on decimals, `.defaultNow()`, `.updatedAt()` and `.tz()` on datetimes. `.tz({ precision: 3 })` declares `@db.Timestamptz(3)`: it stores exactly what a JavaScript `Date` holds, so a database-written time reads back unchanged and `findPage` can order by the column without an assertion.
73
73
 
74
74
  ### Database defaults
75
75
 
@@ -89,6 +89,14 @@ Physical index names use `map`, separately from a compound unique's client-selec
89
89
  indexes: (i) => [i.on(["arrival"], { map: "arrival_lookup" })],
90
90
  ```
91
91
 
92
+ On PostgreSQL and PGlite a non-unique index can set an operator class per field with `ops`, keyed by field name, each value a qualified name:
93
+
94
+ ```ts
95
+ indexes: (i) => [i.on(["email"], { ops: { email: { namespace: "pg_catalog", name: "text_pattern_ops" } } })],
96
+ ```
97
+
98
+ `ops` on `i.unique(...)` is refused (`VIBE_UNSUPPORTED_CAPABILITY`), as are operator classes on SQLite and MySQL. `dsl.generate.prisma` refuses a schema that uses them, because Prisma's `ops:` syntax cannot carry the qualified name.
99
+
92
100
  ## Relations
93
101
 
94
102
  Relations are declared separately from columns, in `dsl.defineRelations(models, (r) => ...)`, which keeps column references typed on both ends.
package/dist/column.d.ts CHANGED
@@ -77,8 +77,15 @@ export declare class ChainableDecimalColumn extends ChainableColumn<"decimal"> {
77
77
  /** DateTime column with timestamp-specific helpers. */
78
78
  export declare class ChainableDatetimeColumn extends ChainableColumn<"datetime"> {
79
79
  constructor(config?: DatetimeColumnConfig);
80
- /** `@db.Timestamptz` — timezone-aware timestamp. */
81
- tz(): this;
80
+ /**
81
+ * `@db.Timestamptz` — timezone-aware timestamp; `{ precision: n }` declares
82
+ * `@db.Timestamptz(n)` (0–6 fractional-seconds digits). Precision 3 stores
83
+ * exactly what a JavaScript `Date` holds, so a database-written value reads
84
+ * back unchanged and `findPage` may order by it without an assertion.
85
+ */
86
+ tz(options?: {
87
+ readonly precision?: number;
88
+ }): this;
82
89
  /** `@updatedAt` — refreshed on every update. */
83
90
  updatedAt(): this;
84
91
  /** `@default(now())` */
@@ -128,6 +135,7 @@ export declare function boolean(config?: BooleanColumnConfig): ChainableColumn<"
128
135
  *
129
136
  * @example
130
137
  * dsl.datetime().defaultNow().updatedAt().tz()
138
+ * dsl.datetime().defaultNow().tz({ precision: 3 })
131
139
  */
132
140
  export declare function datetime(config?: DatetimeColumnConfig): ChainableDatetimeColumn;
133
141
  /** Json column with a consumer-declared payload type (typed JSON). */
@@ -1 +1 @@
1
- {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../src/column.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../src/column.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAIpB;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG,SAAS,CAWvE;AAID,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,4DAA4D;AAC5D,qBAAa,eAAe,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IACrF,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAY;IACrC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IACzB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,WAAW,CAAC;IAE5B,YAAY,UAAU,EAAE,CAAC,EAAE,MAAM,GAAE,gBAAqB,EAGvD;IAED,2CAA2C;IAC3C,QAAQ,IAAI,IAAI,CAGf;IAED,mCAAmC;IACnC,MAAM,IAAI,IAAI,CAGb;IAED,kCAAkC;IAClC,KAAK,IAAI,IAAI,CAGZ;IAED,6CAA6C;IAC7C,KAAK,IAAI,IAAI,CAGZ;IAED,oCAAoC;IACpC,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,SAAS,mBAAmB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAG/E;IAED,kEAAkE;IAClE,GAAG,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAG9B;IAED,uEAAuE;IACvE,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAGpC;IAED,kDAAkD;IAClD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG1B;CACF;AAED,0DAA0D;AAC1D,qBAAa,qBAAsB,SAAQ,eAAe,CAAC,QAAQ,CAAC;IAClE,YAAY,MAAM,GAAE,kBAAuB,EAE1C;IAED,uBAAuB;IACvB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAGzB;IAED,iBAAiB;IACjB,IAAI,IAAI,IAAI,CAGX;IAED,kGAAkG;IAClG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG5B;CACF;AAED,+CAA+C;AAC/C,qBAAa,sBAAuB,SAAQ,eAAe,CAAC,SAAS,CAAC;IACpE,YAAY,MAAM,GAAE,mBAAwB,EAE3C;IAED,sCAAsC;IACtC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAMrC;CACF;AAED,uDAAuD;AACvD,qBAAa,uBAAwB,SAAQ,eAAe,CAAC,UAAU,CAAC;IACtE,YAAY,MAAM,GAAE,oBAAyB,EAE5C;IAED;;;;;OAKG;IACH,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAMlD;IAED,gDAAgD;IAChD,SAAS,IAAI,IAAI,CAGhB;IAED,wBAAwB;IACxB,UAAU,IAAI,IAAI,CAGjB;CACF;AAED,oDAAoD;AACpD,qBAAa,iBAAkB,SAAQ,eAAe,CAAC,IAAI,CAAC;IAC1D,YAAY,MAAM,GAAE,cAAmB,EAEtC;IAED,yDAAyD;IACzD,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAGlC;CACF;AAED,4EAA4E;AAC5E,qBAAa,mBAAmB,CAC9B,CAAC,SAAS,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAC/C,SAAQ,eAAe,CAAC,MAAM,CAAC;IAC/B,YAAY,MAAM,EAAE;QAClB,OAAO,EAAE,CAAC,CAAC;QACX,MAAM,CAAC,EAAE,gBAAgB,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,WAAW,CAAC;KACvB,EASA;IAED,uDAAuD;IACvD,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAGrD;CACF;AAID;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,MAAM,GAAE,kBAAuB,GAAG,qBAAqB,CAE7E;AAED,2FAA2F;AAC3F,qBAAa,sBAAsB,CAAC,CAAC,SAAS,KAAK,GAAG,QAAQ,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;IACxF,oFAAoF;IACpF,aAAa,IAAI,IAAI,CAGpB;CACF;AAED,kBAAkB;AAClB,wBAAgB,GAAG,CAAC,MAAM,GAAE,eAAoB,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAE/E;AAED,oBAAoB;AACpB,wBAAgB,KAAK,CAAC,MAAM,GAAE,iBAAsB,GAAG,eAAe,CAAC,OAAO,CAAC,CAE9E;AAED,sBAAsB;AACtB,wBAAgB,OAAO,CAAC,MAAM,GAAE,mBAAwB,GAAG,sBAAsB,CAEhF;AAED,sBAAsB;AACtB,wBAAgB,OAAO,CAAC,MAAM,GAAE,mBAAwB,GAAG,eAAe,CAAC,SAAS,CAAC,CAEpF;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,MAAM,GAAE,oBAAyB,GAAG,uBAAuB,CAEnF;AAED,sEAAsE;AACtE,qBAAa,mBAAoB,SAAQ,eAAe,CAAC,MAAM,CAAC;IAC9D,YAAY,MAAM,GAAE,gBAAqB,EAExC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAKlD;CACF;AAED,mBAAmB;AACnB,wBAAgB,IAAI,CAAC,MAAM,GAAE,gBAAqB,GAAG,mBAAmB,CAEvE;AAED;;;;;;;GAOG;AACH,wBAAgB,EAAE,CAAC,MAAM,GAAE,cAAmB,GAAG,iBAAiB,CAEjE;AAED,oBAAoB;AACpB,wBAAgB,KAAK,CAAC,MAAM,GAAE,iBAAsB,GAAG,eAAe,CAAC,OAAO,CAAC,CAE9E;AAED,oDAAoD;AACpD,wBAAgB,MAAM,CAAC,MAAM,GAAE,kBAAuB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAExF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC,aAAa,CAAC,CAG1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,eAAe,CAAC,aAAa,CAAC,CAQzF;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EACvD,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC1B,mBAAmB,CAAC,CAAC,CAAC,CAQxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAIV,qBAAqB,EACrB,SAAS,EAEV,MAAM,aAAa,CAAC;AAoTrB;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,qBAA0B,GAAG,MAAM,CAiD5F"}
1
+ {"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAIV,qBAAqB,EACrB,SAAS,EAEV,MAAM,aAAa,CAAC;AAsTrB;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,qBAA0B,GAAG,MAAM,CAiD5F"}
package/dist/index.d.ts CHANGED
@@ -33,7 +33,7 @@
33
33
  * const prisma = dsl.generate.prisma(schema); // .prisma text
34
34
  */
35
35
  import type { ExtensionRegistry, Provider, SchemaIR } from "@vibeorm/schema";
36
- import type { ChainableColumn, ChainableDatetimeColumn, ChainableDecimalColumn, ChainableEnumColumn, ChainableIdColumn, ChainableIntegerColumn, ChainableStringColumn } from "./column.ts";
36
+ import type { ChainableColumn, ChainableDatetimeColumn, ChainableDecimalColumn, ChainableEnumColumn, ChainableIdColumn, ChainableIntegerColumn, ChainableJsonColumn, ChainableStringColumn } from "./column.ts";
37
37
  import type { StandaloneEnumConfig } from "./enum.ts";
38
38
  import { defineRelations, defineRelationsPart, mergeRelations } from "./relations.ts";
39
39
  import { defineRls } from "./schema.ts";
@@ -41,7 +41,7 @@ import type { SchemaOptions } from "./schema.ts";
41
41
  import type { TemplatesApi } from "./templates.ts";
42
42
  import type { ValidationError } from "./validate.ts";
43
43
  import type { BigIntColumnConfig, BooleanColumnConfig, BytesColumnConfig, CreateModelConfig, DatetimeColumnConfig, DecimalColumnConfig, EnumDef, ExtensionTypeConfig, FloatColumnConfig, GeneratorOutput, IdColumnConfig, InlineEnumConfig, IntColumnConfig, JsonColumnConfig, ModelDef, PrismaGeneratorConfig, SchemaDef, SchemaDefinition, SchemaInput, StringColumnConfig } from "./types.ts";
44
- export { ChainableColumn, ChainableDatetimeColumn, ChainableDecimalColumn, ChainableEnumColumn, ChainableIdColumn, ChainableIntegerColumn, ChainableStringColumn, cloneColumnDef, } from "./column.ts";
44
+ export { ChainableColumn, ChainableDatetimeColumn, ChainableDecimalColumn, ChainableEnumColumn, ChainableIdColumn, ChainableIntegerColumn, ChainableJsonColumn, ChainableStringColumn, cloneColumnDef, } from "./column.ts";
45
45
  export { createEnum } from "./enum.ts";
46
46
  export { generatePrisma } from "./generator/prisma.ts";
47
47
  export { create, createIndexBuilder, evaluateIndexes, getColumnNames } from "./model.ts";
@@ -88,7 +88,7 @@ export type DslApi = {
88
88
  readonly decimal: (config?: DecimalColumnConfig) => ChainableDecimalColumn;
89
89
  readonly boolean: (config?: BooleanColumnConfig) => ChainableColumn<"boolean">;
90
90
  readonly datetime: (config?: DatetimeColumnConfig) => ChainableDatetimeColumn;
91
- readonly json: (config?: JsonColumnConfig) => ChainableColumn<"json">;
91
+ readonly json: (config?: JsonColumnConfig) => ChainableJsonColumn;
92
92
  readonly id: (config?: IdColumnConfig) => ChainableIdColumn;
93
93
  readonly bytes: (config?: BytesColumnConfig) => ChainableColumn<"bytes">;
94
94
  readonly unsupported: (dbType: string) => ChainableColumn<"unsupported">;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -94,8 +94,11 @@ class ChainableDatetimeColumn extends ChainableColumn {
94
94
  constructor(config = {}) {
95
95
  super("datetime", config);
96
96
  }
97
- tz() {
97
+ tz(options) {
98
98
  this.__config.tz = true;
99
+ if (options?.precision !== undefined) {
100
+ this.__config.precision = options.precision;
101
+ }
99
102
  return this;
100
103
  }
101
104
  updatedAt() {
@@ -398,7 +401,8 @@ import {
398
401
  providerToDialect,
399
402
  scalarListDefault,
400
403
  serializeJsonDefault,
401
- mergeExtensionDeclarations
404
+ mergeExtensionDeclarations,
405
+ unsupportedCapability
402
406
  } from "@vibeorm/schema";
403
407
  import { getSqlDialect } from "@vibeorm/sql";
404
408
 
@@ -438,7 +442,7 @@ function fieldTypeKey(params) {
438
442
  }
439
443
 
440
444
  // packages/dsl/src/relation-plan.ts
441
- import { VibeError as VibeError3, predicateKey } from "@vibeorm/schema";
445
+ import { VibeError as VibeError3, isSqlObjectIdentity, predicateKey } from "@vibeorm/schema";
442
446
 
443
447
  // packages/dsl/src/model.ts
444
448
  import { VibeError as VibeError2 } from "@vibeorm/schema";
@@ -498,27 +502,31 @@ function createIndexBuilder() {
498
502
  configurable: true
499
503
  });
500
504
  };
501
- const createIndex = (columns, type, where, map) => ({
505
+ const createIndex = (params) => ({
502
506
  __type: "index",
503
- __columns: [...columns],
504
- __indexType: type,
505
- ...map === undefined ? {} : { __map: map },
506
- ...where === undefined ? {} : { __where: where }
507
+ __columns: [...params.columns],
508
+ __indexType: params.type,
509
+ ...params.map === undefined ? {} : { __map: params.map },
510
+ ...params.where === undefined ? {} : { __where: params.where },
511
+ ...params.ops === undefined ? {} : { __ops: params.ops }
507
512
  });
508
513
  return {
509
514
  on(...args) {
510
515
  const [first, second] = args;
511
516
  if (args.length === 2 && Array.isArray(first) && typeof second === "object" && !Array.isArray(second)) {
512
- return partial(createIndex(first, second.type, second.where, second.map));
517
+ return partial(createIndex({ columns: first, type: second.type, where: second.where, map: second.map, ops: second.ops }));
513
518
  }
514
- return partial(createIndex(args));
519
+ return partial(createIndex({ columns: args }));
515
520
  },
516
521
  index(...columns) {
517
- return partial(createIndex(columns));
522
+ return partial(createIndex({ columns }));
518
523
  },
519
524
  unique(...args) {
520
525
  const [first, second] = args;
521
526
  if (args.length === 2 && Array.isArray(first) && typeof second === "object" && !Array.isArray(second)) {
527
+ if ("ops" in second && second.ops !== undefined) {
528
+ throw new VibeError2({ code: "VIBE_UNSUPPORTED_CAPABILITY", message: "Custom unique operator classes can change client selector equality", meta: { feature: "uniqueIndexOperatorClasses" } });
529
+ }
522
530
  return partial({
523
531
  __type: "unique",
524
532
  __columns: [...first],
@@ -531,16 +539,16 @@ function createIndexBuilder() {
531
539
  return partial({ __type: "unique", __columns: [...args] });
532
540
  },
533
541
  gin(...columns) {
534
- return partial(createIndex(columns, "Gin"));
542
+ return partial(createIndex({ columns, type: "Gin" }));
535
543
  },
536
544
  gist(...columns) {
537
- return partial(createIndex(columns, "Gist"));
545
+ return partial(createIndex({ columns, type: "Gist" }));
538
546
  },
539
547
  hash(...columns) {
540
- return partial(createIndex(columns, "Hash"));
548
+ return partial(createIndex({ columns, type: "Hash" }));
541
549
  },
542
550
  brin(...columns) {
543
- return partial(createIndex(columns, "Brin"));
551
+ return partial(createIndex({ columns, type: "Brin" }));
544
552
  }
545
553
  };
546
554
  }
@@ -846,8 +854,22 @@ function planIndexes(params) {
846
854
  }
847
855
  }
848
856
  for (const index of evaluateIndexes({ model })) {
857
+ if (index.__ops !== undefined) {
858
+ if (index.__ops === null || typeof index.__ops !== "object" || Array.isArray(index.__ops))
859
+ throw new VibeError3({ code: "VIBE_SCHEMA_INVALID", message: "Index ops must be a field-keyed qualified-name map", meta: { rule: "index-operator-class-map", model: model.__name } });
860
+ if (index.__type === "unique")
861
+ throw new VibeError3({ code: "VIBE_UNSUPPORTED_CAPABILITY", message: "Custom unique operator classes can change client selector equality", meta: { feature: "uniqueIndexOperatorClasses", model: model.__name } });
862
+ for (const [field, operatorClass] of Object.entries(index.__ops)) {
863
+ if (!index.__columns.includes(field))
864
+ throw new VibeError3({ code: "VIBE_SCHEMA_INVALID", message: "Operator class names a field outside the index", meta: { rule: "index-operator-class-field", model: model.__name, field } });
865
+ if (operatorClass !== undefined && !isSqlObjectIdentity({ kind: "table", name: operatorClass }))
866
+ throw new VibeError3({ 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 } });
867
+ }
868
+ }
869
+ const operatorClasses = index.__columns.map((field) => index.__ops?.[field]);
870
+ const operatorSuffix = operatorClasses.some((operatorClass) => operatorClass !== undefined) ? `|ops:${JSON.stringify([index.__indexType ?? "BTree", operatorClasses.map((operatorClass) => operatorClass === undefined ? null : [operatorClass.namespace, operatorClass.name])])}` : "";
849
871
  const predicateSuffix = index.__where !== undefined ? `|where:${index.__where}` : index.__wherePredicate === undefined ? "" : `|where:${predicateKey({ predicate: index.__wherePredicate })}`;
850
- const key = index.__columns.join(",") + predicateSuffix;
872
+ const key = index.__columns.join(",") + predicateSuffix + operatorSuffix;
851
873
  const existing = byKey.get(key);
852
874
  const isUnique = index.__type === "unique";
853
875
  if (existing === undefined || isUnique) {
@@ -855,6 +877,7 @@ function planIndexes(params) {
855
877
  isUnique,
856
878
  columns: [...index.__columns],
857
879
  indexType: index.__indexType,
880
+ ...index.__ops === undefined ? {} : { ops: index.__ops },
858
881
  ...index.__map === undefined ? {} : { map: index.__map },
859
882
  ...index.__where === undefined ? {} : { where: index.__where },
860
883
  ...index.__wherePredicate === undefined ? {} : { wherePredicate: index.__wherePredicate },
@@ -1057,6 +1080,20 @@ function fieldDefault(params) {
1057
1080
  return { kind: "literal", value: exactIntegerLiteral({ text: value.toString() }) };
1058
1081
  throw new VibeError4({ code: "VIBE_SCHEMA_INVALID", message: `Unsupported default for ${column.__columnType}` });
1059
1082
  }
1083
+ function datetimeNativeType(params) {
1084
+ const { tz, precision } = params.config;
1085
+ if (precision !== undefined && (tz !== true || !Number.isInteger(precision) || precision < 0 || precision > 6)) {
1086
+ const at = params.column === undefined ? "A datetime column" : `Column "${params.column}"`;
1087
+ throw new VibeError4({
1088
+ code: "VIBE_SCHEMA_INVALID",
1089
+ message: `${at}: a datetime precision must be an integer from 0 to 6 on a tz() column, as in dsl.datetime().tz({ precision: 3 })`,
1090
+ meta: { issues: [{ rule: "datetime-precision", column: params.column, precision, tz: tz === true }] }
1091
+ });
1092
+ }
1093
+ if (tz !== true)
1094
+ return;
1095
+ return precision === undefined ? "Timestamptz" : `Timestamptz(${precision})`;
1096
+ }
1060
1097
  function nativeType(params) {
1061
1098
  const { column } = params;
1062
1099
  if (column.__columnType === "enum") {
@@ -1086,8 +1123,8 @@ function nativeType(params) {
1086
1123
  return `Decimal(${precision}, ${scale ?? 0})`;
1087
1124
  return;
1088
1125
  }
1089
- if (column.__columnType === "datetime" && column.__config.tz === true) {
1090
- return "Timestamptz";
1126
+ if (column.__columnType === "datetime") {
1127
+ return datetimeNativeType({ config: column.__config, column: column.__name });
1091
1128
  }
1092
1129
  if (column.__columnType === "unsupported") {
1093
1130
  return String(column.__config.dbType);
@@ -1146,6 +1183,8 @@ var INDEX_KINDS = {
1146
1183
  };
1147
1184
  function buildIndex(params) {
1148
1185
  const { index, model, dialect, enums } = params;
1186
+ if (index.ops !== undefined && Object.values(index.ops).some((operatorClass) => operatorClass !== undefined) && !dialect.capabilities.indexOperatorClasses)
1187
+ throw unsupportedCapability({ dialect: dialect.name, feature: "indexOperatorClasses" });
1149
1188
  const kind = index.isUnique ? "unique" : index.indexType === undefined ? "btree" : INDEX_KINDS[index.indexType];
1150
1189
  const predicate = compileIndexPredicate({
1151
1190
  where: index.where,
@@ -1157,7 +1196,7 @@ function buildIndex(params) {
1157
1196
  });
1158
1197
  return {
1159
1198
  kind,
1160
- fields: index.columns.map((name) => ({ name })),
1199
+ fields: index.columns.map((name) => ({ name, ...index.ops?.[name] === undefined ? {} : { operatorClass: index.ops[name] } })),
1161
1200
  ...index.map === undefined ? {} : { name: index.map },
1162
1201
  ...predicate === undefined ? {} : { where: predicate.where },
1163
1202
  ...predicate?.wherePredicate === undefined ? {} : { wherePredicate: predicate.wherePredicate },
@@ -1397,8 +1436,9 @@ function nativeTypeAttribute(params) {
1397
1436
  return `@db.Decimal(${precision}, ${scale ?? 0})`;
1398
1437
  return;
1399
1438
  }
1400
- if (column.__columnType === "datetime" && column.__config.tz === true) {
1401
- return "@db.Timestamptz";
1439
+ if (column.__columnType === "datetime") {
1440
+ const native = datetimeNativeType({ config: column.__config, column: column.__name });
1441
+ return native === undefined ? undefined : `@db.${native}`;
1402
1442
  }
1403
1443
  return;
1404
1444
  }
@@ -1474,6 +1514,8 @@ function formatRelation(params) {
1474
1514
  }
1475
1515
  function formatIndex(params) {
1476
1516
  const { index } = params;
1517
+ if (index.ops !== undefined && Object.values(index.ops).some((operatorClass) => operatorClass !== undefined))
1518
+ throw new VibeError5({ code: "VIBE_UNSUPPORTED_CAPABILITY", message: "Prisma output cannot preserve qualified index operator classes; keep the DSL source", meta: { feature: "prismaIndexOperatorClasses", target: "prisma" } });
1477
1519
  const columns = index.columns.join(", ");
1478
1520
  const predicate = compileIndexPredicate({
1479
1521
  where: index.where,
@@ -2205,6 +2247,7 @@ export {
2205
2247
  ChainableEnumColumn,
2206
2248
  ChainableIdColumn,
2207
2249
  ChainableIntegerColumn,
2250
+ ChainableJsonColumn,
2208
2251
  ChainableStringColumn,
2209
2252
  base,
2210
2253
  baseWithWorkspace,
@@ -2242,4 +2285,4 @@ export {
2242
2285
  withNameDescription
2243
2286
  };
2244
2287
 
2245
- //# debugId=C69A52006732E14D64756E2164756E21
2288
+ //# debugId=0EC0F0E6154BF1C064756E2164756E21