drizzle-kit 0.13.0 → 0.14.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.
Files changed (2) hide show
  1. package/index.js +664 -186
  2. package/package.json +11 -11
package/index.js CHANGED
@@ -2523,9 +2523,9 @@ var require_src = __commonJS({
2523
2523
  }
2524
2524
  });
2525
2525
 
2526
- // node_modules/.pnpm/esbuild-register@3.4.1_esbuild@0.15.18/node_modules/esbuild-register/dist/node.js
2526
+ // node_modules/.pnpm/esbuild-register@3.4.2_esbuild@0.15.18/node_modules/esbuild-register/dist/node.js
2527
2527
  var require_node2 = __commonJS({
2528
- "node_modules/.pnpm/esbuild-register@3.4.1_esbuild@0.15.18/node_modules/esbuild-register/dist/node.js"(exports) {
2528
+ "node_modules/.pnpm/esbuild-register@3.4.2_esbuild@0.15.18/node_modules/esbuild-register/dist/node.js"(exports) {
2529
2529
  "use strict";
2530
2530
  Object.defineProperty(exports, "__esModule", { value: true });
2531
2531
  function _interopRequireDefault2(obj) {
@@ -7290,6 +7290,14 @@ var require_node2 = __commonJS({
7290
7290
  ...overrides
7291
7291
  } = esbuildOptions;
7292
7292
  const compile = function compile2(code, filename, format) {
7293
+ const define2 = {
7294
+ "import.meta.url": IMPORT_META_URL_VARIABLE_NAME,
7295
+ ...overrides.define
7296
+ };
7297
+ const banner = `const ${IMPORT_META_URL_VARIABLE_NAME} = require('url').pathToFileURL(__filename).href;${overrides.banner || ""}`;
7298
+ if (code.includes(banner)) {
7299
+ return code;
7300
+ }
7293
7301
  const dir = _path2.dirname.call(void 0, filename);
7294
7302
  const options = getOptions(dir);
7295
7303
  format = format != null ? format : inferPackageFormat(dir, filename);
@@ -7301,11 +7309,8 @@ var require_node2 = __commonJS({
7301
7309
  jsxFactory: options.jsxFactory,
7302
7310
  jsxFragment: options.jsxFragment,
7303
7311
  format,
7304
- define: {
7305
- "import.meta.url": IMPORT_META_URL_VARIABLE_NAME,
7306
- ...overrides.define
7307
- },
7308
- banner: `const ${IMPORT_META_URL_VARIABLE_NAME} = require('url').pathToFileURL(__filename).href;${overrides.banner || ""}`,
7312
+ define: define2,
7313
+ banner,
7309
7314
  ...overrides
7310
7315
  });
7311
7316
  const js = result.code;
@@ -7477,6 +7482,137 @@ var init_pgSerializer = __esm({
7477
7482
  }
7478
7483
  });
7479
7484
 
7485
+ // src/serializer/mysqlImports.ts
7486
+ var mysqlImports_exports = {};
7487
+ __export(mysqlImports_exports, {
7488
+ prepareFromMySqlImports: () => prepareFromMySqlImports
7489
+ });
7490
+ var import_drizzle_orm_mysql, prepareFromMySqlImports;
7491
+ var init_mysqlImports = __esm({
7492
+ "src/serializer/mysqlImports.ts"() {
7493
+ import_drizzle_orm_mysql = require("drizzle-orm-mysql");
7494
+ prepareFromMySqlImports = (imports) => {
7495
+ const tables = [];
7496
+ const enums = [];
7497
+ imports.forEach((it) => {
7498
+ const i0 = require(it);
7499
+ const i0values = Object.values(i0);
7500
+ i0values.forEach((t) => {
7501
+ if (t instanceof import_drizzle_orm_mysql.MySqlTable) {
7502
+ tables.push(
7503
+ t
7504
+ );
7505
+ }
7506
+ });
7507
+ });
7508
+ return { tables, enums };
7509
+ };
7510
+ }
7511
+ });
7512
+
7513
+ // src/serializer/mysqlSerializer.ts
7514
+ var mysqlSerializer_exports = {};
7515
+ __export(mysqlSerializer_exports, {
7516
+ generateMySqlSnapshot: () => generateMySqlSnapshot
7517
+ });
7518
+ var import_drizzle_orm_mysql2, import_table2, import_utils2, import_sql2, import_common, dialect5, generateMySqlSnapshot;
7519
+ var init_mysqlSerializer = __esm({
7520
+ "src/serializer/mysqlSerializer.ts"() {
7521
+ import_drizzle_orm_mysql2 = require("drizzle-orm-mysql");
7522
+ import_table2 = require("drizzle-orm/table");
7523
+ import_utils2 = require("drizzle-orm-mysql/utils");
7524
+ import_sql2 = require("drizzle-orm/sql");
7525
+ import_common = require("drizzle-orm-mysql/columns/common");
7526
+ dialect5 = new import_drizzle_orm_mysql2.MySqlDialect();
7527
+ generateMySqlSnapshot = (tables, enums) => {
7528
+ const result = {};
7529
+ for (const table4 of tables) {
7530
+ const tableName = (0, import_table2.getTableName)(table4);
7531
+ const columnsObject = {};
7532
+ const indexesObject = {};
7533
+ const foreignKeysObject = {};
7534
+ (0, import_utils2.getTableColumns)(table4).forEach((column4) => {
7535
+ const notNull = column4.notNull;
7536
+ const primaryKey = column4.primary;
7537
+ const columnToSet = {
7538
+ name: column4.name,
7539
+ type: column4.getSQLType(),
7540
+ primaryKey,
7541
+ notNull,
7542
+ autoincrement: column4 instanceof import_common.MySqlColumnWithAutoIncrement ? column4.autoIncrement : false
7543
+ };
7544
+ if (column4.default !== void 0) {
7545
+ if (column4.default instanceof import_sql2.SQL) {
7546
+ columnToSet.default = column4.default.queryChunks.map((it) => {
7547
+ if (typeof it === "string") {
7548
+ return `${it}`;
7549
+ }
7550
+ throw new Error();
7551
+ }).join();
7552
+ } else {
7553
+ columnToSet.default = typeof column4.default === "string" ? `'${column4.default}'` : column4.default;
7554
+ }
7555
+ if (["blob", "text", "json"].includes(column4.getSQLType())) {
7556
+ columnToSet.default = `(${columnToSet.default})`;
7557
+ }
7558
+ }
7559
+ columnsObject[column4.name] = columnToSet;
7560
+ });
7561
+ const foreignKeys = (0, import_utils2.getTableForeignKeys)(table4).map((fk4) => {
7562
+ const name = fk4.getName();
7563
+ const tableFrom = tableName;
7564
+ const onDelete = fk4.onDelete;
7565
+ const onUpdate = fk4.onUpdate;
7566
+ const reference = fk4.reference();
7567
+ const referenceFT = reference.foreignTable;
7568
+ const tableTo = (0, import_table2.getTableName)(referenceFT);
7569
+ const columnsFrom = reference.columns.map((it) => it.name);
7570
+ const columnsTo = reference.foreignColumns.map((it) => it.name);
7571
+ return {
7572
+ name,
7573
+ tableFrom,
7574
+ tableTo,
7575
+ columnsFrom,
7576
+ columnsTo,
7577
+ onDelete,
7578
+ onUpdate
7579
+ };
7580
+ });
7581
+ foreignKeys.forEach((it) => {
7582
+ foreignKeysObject[it.name] = it;
7583
+ });
7584
+ (0, import_utils2.getTableIndexes)(table4).forEach((value) => {
7585
+ var _a;
7586
+ const columns = value.config.columns;
7587
+ const name = value.config.name;
7588
+ let indexColumns = columns.map((it) => {
7589
+ if (it instanceof import_sql2.SQL) {
7590
+ return dialect5.sqlToQuery(it).sql;
7591
+ } else {
7592
+ return it.name;
7593
+ }
7594
+ });
7595
+ indexesObject[name] = {
7596
+ name,
7597
+ columns: indexColumns,
7598
+ isUnique: (_a = value.config.unique) != null ? _a : false,
7599
+ using: value.config.using,
7600
+ algorithm: value.config.algorythm,
7601
+ lock: value.config.lock
7602
+ };
7603
+ });
7604
+ result[tableName] = {
7605
+ name: tableName,
7606
+ columns: columnsObject,
7607
+ indexes: indexesObject,
7608
+ foreignKeys: foreignKeysObject
7609
+ };
7610
+ }
7611
+ return { version: "3", dialect: "mysql", tables: result, enums: {} };
7612
+ };
7613
+ }
7614
+ });
7615
+
7480
7616
  // src/serializer/sqliteImports.ts
7481
7617
  var sqliteImports_exports = {};
7482
7618
  __export(sqliteImports_exports, {
@@ -7508,22 +7644,22 @@ var sqliteSerializer_exports = {};
7508
7644
  __export(sqliteSerializer_exports, {
7509
7645
  generateSqliteSnapshot: () => generateSqliteSnapshot
7510
7646
  });
7511
- var import_table2, import_sql2, import_drizzle_orm_sqlite2, import_utils2, dialect5, generateSqliteSnapshot;
7647
+ var import_table3, import_sql3, import_drizzle_orm_sqlite2, import_utils3, dialect6, generateSqliteSnapshot;
7512
7648
  var init_sqliteSerializer = __esm({
7513
7649
  "src/serializer/sqliteSerializer.ts"() {
7514
- import_table2 = require("drizzle-orm/table");
7515
- import_sql2 = require("drizzle-orm/sql");
7650
+ import_table3 = require("drizzle-orm/table");
7651
+ import_sql3 = require("drizzle-orm/sql");
7516
7652
  import_drizzle_orm_sqlite2 = require("drizzle-orm-sqlite");
7517
- import_utils2 = require("drizzle-orm-sqlite/utils");
7518
- dialect5 = new import_drizzle_orm_sqlite2.SQLiteSyncDialect();
7653
+ import_utils3 = require("drizzle-orm-sqlite/utils");
7654
+ dialect6 = new import_drizzle_orm_sqlite2.SQLiteSyncDialect();
7519
7655
  generateSqliteSnapshot = (tables, enums) => {
7520
7656
  const result = {};
7521
7657
  for (const table4 of tables) {
7522
- const tableName = (0, import_table2.getTableName)(table4);
7658
+ const tableName = (0, import_table3.getTableName)(table4);
7523
7659
  const columnsObject = {};
7524
7660
  const indexesObject = {};
7525
7661
  const foreignKeysObject = {};
7526
- (0, import_utils2.getTableColumns)(table4).forEach((column4) => {
7662
+ (0, import_utils3.getTableColumns)(table4).forEach((column4) => {
7527
7663
  const notNull = column4.notNull;
7528
7664
  const primaryKey = column4.primary;
7529
7665
  const columnToSet = {
@@ -7533,7 +7669,7 @@ var init_sqliteSerializer = __esm({
7533
7669
  notNull
7534
7670
  };
7535
7671
  if (column4.default !== void 0) {
7536
- if (column4.default instanceof import_sql2.SQL) {
7672
+ if (column4.default instanceof import_sql3.SQL) {
7537
7673
  columnToSet.default = column4.default.queryChunks.map((it) => {
7538
7674
  if (typeof it === "string") {
7539
7675
  return `${it}`;
@@ -7549,14 +7685,14 @@ var init_sqliteSerializer = __esm({
7549
7685
  }
7550
7686
  columnsObject[column4.name] = columnToSet;
7551
7687
  });
7552
- const foreignKeys = (0, import_utils2.getTableForeignKeys)(table4).map((fk4) => {
7688
+ const foreignKeys = (0, import_utils3.getTableForeignKeys)(table4).map((fk4) => {
7553
7689
  const name = fk4.getName();
7554
7690
  const tableFrom = tableName;
7555
7691
  const onDelete = fk4.onDelete;
7556
7692
  const onUpdate = fk4.onUpdate;
7557
7693
  const reference = fk4.reference();
7558
7694
  const referenceFT = reference.foreignTable;
7559
- const tableTo = (0, import_table2.getTableName)(referenceFT);
7695
+ const tableTo = (0, import_table3.getTableName)(referenceFT);
7560
7696
  const columnsFrom = reference.columns.map((it) => it.name);
7561
7697
  const columnsTo = reference.foreignColumns.map((it) => it.name);
7562
7698
  return {
@@ -7572,21 +7708,21 @@ var init_sqliteSerializer = __esm({
7572
7708
  foreignKeys.forEach((it) => {
7573
7709
  foreignKeysObject[it.name] = it;
7574
7710
  });
7575
- (0, import_utils2.getTableIndexes)(table4).forEach((value) => {
7711
+ (0, import_utils3.getTableIndexes)(table4).forEach((value) => {
7576
7712
  var _a;
7577
7713
  const columns = value.config.columns;
7578
7714
  const name = value.config.name;
7579
7715
  let indexColumns = columns.map((it) => {
7580
- if (it instanceof import_sql2.SQL) {
7581
- return dialect5.sqlToQuery(it).sql;
7716
+ if (it instanceof import_sql3.SQL) {
7717
+ return dialect6.sqlToQuery(it).sql;
7582
7718
  } else {
7583
7719
  return it.name;
7584
7720
  }
7585
7721
  });
7586
7722
  let where = void 0;
7587
7723
  if (value.config.where !== void 0) {
7588
- if (value.config.where instanceof import_sql2.SQL) {
7589
- where = dialect5.sqlToQuery(value.config.where).sql;
7724
+ if (value.config.where instanceof import_sql3.SQL) {
7725
+ where = dialect6.sqlToQuery(value.config.where).sql;
7590
7726
  }
7591
7727
  }
7592
7728
  indexesObject[name] = {
@@ -14188,7 +14324,7 @@ var import_fs3 = __toESM(require("fs"));
14188
14324
  // src/migrationPreparator.ts
14189
14325
  var import_fs2 = __toESM(require("fs"));
14190
14326
 
14191
- // node_modules/.pnpm/zod@3.19.1/node_modules/zod/lib/index.mjs
14327
+ // node_modules/.pnpm/zod@3.20.2/node_modules/zod/lib/index.mjs
14192
14328
  var util;
14193
14329
  (function(util2) {
14194
14330
  util2.assertEqual = (val) => val;
@@ -14284,6 +14420,8 @@ var getParsedType = (data) => {
14284
14420
  return ZodParsedType.function;
14285
14421
  case "bigint":
14286
14422
  return ZodParsedType.bigint;
14423
+ case "symbol":
14424
+ return ZodParsedType.symbol;
14287
14425
  case "object":
14288
14426
  if (Array.isArray(data)) {
14289
14427
  return ZodParsedType.array;
@@ -14323,7 +14461,8 @@ var ZodIssueCode = util.arrayToEnum([
14323
14461
  "too_small",
14324
14462
  "too_big",
14325
14463
  "invalid_intersection_types",
14326
- "not_multiple_of"
14464
+ "not_multiple_of",
14465
+ "not_finite"
14327
14466
  ]);
14328
14467
  var ZodError = class extends Error {
14329
14468
  constructor(issues) {
@@ -14464,25 +14603,25 @@ var errorMap = (issue, _ctx) => {
14464
14603
  break;
14465
14604
  case ZodIssueCode.too_small:
14466
14605
  if (issue.type === "array")
14467
- message = `Array must contain ${issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;
14606
+ message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;
14468
14607
  else if (issue.type === "string")
14469
- message = `String must contain ${issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;
14608
+ message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;
14470
14609
  else if (issue.type === "number")
14471
- message = `Number must be greater than ${issue.inclusive ? `or equal to ` : ``}${issue.minimum}`;
14610
+ message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;
14472
14611
  else if (issue.type === "date")
14473
- message = `Date must be greater than ${issue.inclusive ? `or equal to ` : ``}${new Date(issue.minimum)}`;
14612
+ message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(issue.minimum)}`;
14474
14613
  else
14475
14614
  message = "Invalid input";
14476
14615
  break;
14477
14616
  case ZodIssueCode.too_big:
14478
14617
  if (issue.type === "array")
14479
- message = `Array must contain ${issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;
14618
+ message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;
14480
14619
  else if (issue.type === "string")
14481
- message = `String must contain ${issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;
14620
+ message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;
14482
14621
  else if (issue.type === "number")
14483
- message = `Number must be less than ${issue.inclusive ? `or equal to ` : ``}${issue.maximum}`;
14622
+ message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
14484
14623
  else if (issue.type === "date")
14485
- message = `Date must be smaller than ${issue.inclusive ? `or equal to ` : ``}${new Date(issue.maximum)}`;
14624
+ message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(issue.maximum)}`;
14486
14625
  else
14487
14626
  message = "Invalid input";
14488
14627
  break;
@@ -14495,6 +14634,9 @@ var errorMap = (issue, _ctx) => {
14495
14634
  case ZodIssueCode.not_multiple_of:
14496
14635
  message = `Number must be a multiple of ${issue.multipleOf}`;
14497
14636
  break;
14637
+ case ZodIssueCode.not_finite:
14638
+ message = "Number must be finite";
14639
+ break;
14498
14640
  default:
14499
14641
  message = _ctx.defaultError;
14500
14642
  util.assertNever(issue);
@@ -14592,6 +14734,7 @@ var ParseStatus = class {
14592
14734
  var INVALID = Object.freeze({
14593
14735
  status: "aborted"
14594
14736
  });
14737
+ var DIRTY = (value) => ({ status: "dirty", value });
14595
14738
  var OK = (value) => ({ status: "valid", value });
14596
14739
  var isAborted = (x) => x.status === "aborted";
14597
14740
  var isDirty = (x) => x.status === "dirty";
@@ -14646,7 +14789,6 @@ function processCreateParams(params) {
14646
14789
  var ZodType = class {
14647
14790
  constructor(def) {
14648
14791
  this.spa = this.safeParseAsync;
14649
- this.superRefine = this._refinement;
14650
14792
  this._def = def;
14651
14793
  this.parse = this.parse.bind(this);
14652
14794
  this.safeParse = this.safeParse.bind(this);
@@ -14664,8 +14806,11 @@ var ZodType = class {
14664
14806
  this.or = this.or.bind(this);
14665
14807
  this.and = this.and.bind(this);
14666
14808
  this.transform = this.transform.bind(this);
14809
+ this.brand = this.brand.bind(this);
14667
14810
  this.default = this.default.bind(this);
14811
+ this.catch = this.catch.bind(this);
14668
14812
  this.describe = this.describe.bind(this);
14813
+ this.pipe = this.pipe.bind(this);
14669
14814
  this.isNullable = this.isNullable.bind(this);
14670
14815
  this.isOptional = this.isOptional.bind(this);
14671
14816
  }
@@ -14751,7 +14896,7 @@ var ZodType = class {
14751
14896
  data,
14752
14897
  parsedType: getParsedType(data)
14753
14898
  };
14754
- const maybeAsyncResult = this._parse({ data, path: [], parent: ctx });
14899
+ const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });
14755
14900
  const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));
14756
14901
  return handleResult(ctx, result);
14757
14902
  }
@@ -14806,6 +14951,9 @@ var ZodType = class {
14806
14951
  effect: { type: "refinement", refinement }
14807
14952
  });
14808
14953
  }
14954
+ superRefine(refinement) {
14955
+ return this._refinement(refinement);
14956
+ }
14809
14957
  optional() {
14810
14958
  return ZodOptional.create(this);
14811
14959
  }
@@ -14849,6 +14997,14 @@ var ZodType = class {
14849
14997
  ...processCreateParams(void 0)
14850
14998
  });
14851
14999
  }
15000
+ catch(def) {
15001
+ const defaultValueFunc = typeof def === "function" ? def : () => def;
15002
+ return new ZodCatch({
15003
+ innerType: this,
15004
+ defaultValue: defaultValueFunc,
15005
+ typeName: ZodFirstPartyTypeKind.ZodCatch
15006
+ });
15007
+ }
14852
15008
  describe(description) {
14853
15009
  const This = this.constructor;
14854
15010
  return new This({
@@ -14856,6 +15012,9 @@ var ZodType = class {
14856
15012
  description
14857
15013
  });
14858
15014
  }
15015
+ pipe(target) {
15016
+ return ZodPipeline.create(this, target);
15017
+ }
14859
15018
  isOptional() {
14860
15019
  return this.safeParse(void 0).success;
14861
15020
  }
@@ -14866,6 +15025,27 @@ var ZodType = class {
14866
15025
  var cuidRegex = /^c[^\s-]{8,}$/i;
14867
15026
  var uuidRegex = /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;
14868
15027
  var emailRegex = /^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
15028
+ var datetimeRegex = (args) => {
15029
+ if (args.precision) {
15030
+ if (args.offset) {
15031
+ return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}(([+-]\\d{2}:\\d{2})|Z)$`);
15032
+ } else {
15033
+ return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}Z$`);
15034
+ }
15035
+ } else if (args.precision === 0) {
15036
+ if (args.offset) {
15037
+ return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}:\\d{2})|Z)$`);
15038
+ } else {
15039
+ return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$`);
15040
+ }
15041
+ } else {
15042
+ if (args.offset) {
15043
+ return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}:\\d{2})|Z)$`);
15044
+ } else {
15045
+ return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$`);
15046
+ }
15047
+ }
15048
+ };
14869
15049
  var ZodString = class extends ZodType {
14870
15050
  constructor() {
14871
15051
  super(...arguments);
@@ -14881,6 +15061,9 @@ var ZodString = class extends ZodType {
14881
15061
  });
14882
15062
  }
14883
15063
  _parse(input) {
15064
+ if (this._def.coerce) {
15065
+ input.data = String(input.data);
15066
+ }
14884
15067
  const parsedType = this._getType(input);
14885
15068
  if (parsedType !== ZodParsedType.string) {
14886
15069
  const ctx2 = this._getOrReturnCtx(input);
@@ -14905,6 +15088,7 @@ var ZodString = class extends ZodType {
14905
15088
  minimum: check.value,
14906
15089
  type: "string",
14907
15090
  inclusive: true,
15091
+ exact: false,
14908
15092
  message: check.message
14909
15093
  });
14910
15094
  status.dirty();
@@ -14917,10 +15101,37 @@ var ZodString = class extends ZodType {
14917
15101
  maximum: check.value,
14918
15102
  type: "string",
14919
15103
  inclusive: true,
15104
+ exact: false,
14920
15105
  message: check.message
14921
15106
  });
14922
15107
  status.dirty();
14923
15108
  }
15109
+ } else if (check.kind === "length") {
15110
+ const tooBig = input.data.length > check.value;
15111
+ const tooSmall = input.data.length < check.value;
15112
+ if (tooBig || tooSmall) {
15113
+ ctx = this._getOrReturnCtx(input, ctx);
15114
+ if (tooBig) {
15115
+ addIssueToContext(ctx, {
15116
+ code: ZodIssueCode.too_big,
15117
+ maximum: check.value,
15118
+ type: "string",
15119
+ inclusive: true,
15120
+ exact: true,
15121
+ message: check.message
15122
+ });
15123
+ } else if (tooSmall) {
15124
+ addIssueToContext(ctx, {
15125
+ code: ZodIssueCode.too_small,
15126
+ minimum: check.value,
15127
+ type: "string",
15128
+ inclusive: true,
15129
+ exact: true,
15130
+ message: check.message
15131
+ });
15132
+ }
15133
+ status.dirty();
15134
+ }
14924
15135
  } else if (check.kind === "email") {
14925
15136
  if (!emailRegex.test(input.data)) {
14926
15137
  ctx = this._getOrReturnCtx(input, ctx);
@@ -14997,6 +15208,17 @@ var ZodString = class extends ZodType {
14997
15208
  });
14998
15209
  status.dirty();
14999
15210
  }
15211
+ } else if (check.kind === "datetime") {
15212
+ const regex = datetimeRegex(check);
15213
+ if (!regex.test(input.data)) {
15214
+ ctx = this._getOrReturnCtx(input, ctx);
15215
+ addIssueToContext(ctx, {
15216
+ code: ZodIssueCode.invalid_string,
15217
+ validation: "datetime",
15218
+ message: check.message
15219
+ });
15220
+ status.dirty();
15221
+ }
15000
15222
  } else {
15001
15223
  util.assertNever(check);
15002
15224
  }
@@ -15021,6 +15243,23 @@ var ZodString = class extends ZodType {
15021
15243
  cuid(message) {
15022
15244
  return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) });
15023
15245
  }
15246
+ datetime(options) {
15247
+ var _a;
15248
+ if (typeof options === "string") {
15249
+ return this._addCheck({
15250
+ kind: "datetime",
15251
+ precision: null,
15252
+ offset: false,
15253
+ message: options
15254
+ });
15255
+ }
15256
+ return this._addCheck({
15257
+ kind: "datetime",
15258
+ precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === "undefined" ? null : options === null || options === void 0 ? void 0 : options.precision,
15259
+ offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,
15260
+ ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message)
15261
+ });
15262
+ }
15024
15263
  regex(regex, message) {
15025
15264
  return this._addCheck({
15026
15265
  kind: "regex",
@@ -15057,7 +15296,14 @@ var ZodString = class extends ZodType {
15057
15296
  });
15058
15297
  }
15059
15298
  length(len, message) {
15060
- return this.min(len, message).max(len, message);
15299
+ return this._addCheck({
15300
+ kind: "length",
15301
+ value: len,
15302
+ ...errorUtil.errToObj(message)
15303
+ });
15304
+ }
15305
+ get isDatetime() {
15306
+ return !!this._def.checks.find((ch) => ch.kind === "datetime");
15061
15307
  }
15062
15308
  get isEmail() {
15063
15309
  return !!this._def.checks.find((ch) => ch.kind === "email");
@@ -15093,9 +15339,11 @@ var ZodString = class extends ZodType {
15093
15339
  }
15094
15340
  };
15095
15341
  ZodString.create = (params) => {
15342
+ var _a;
15096
15343
  return new ZodString({
15097
15344
  checks: [],
15098
15345
  typeName: ZodFirstPartyTypeKind.ZodString,
15346
+ coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,
15099
15347
  ...processCreateParams(params)
15100
15348
  });
15101
15349
  };
@@ -15115,6 +15363,9 @@ var ZodNumber = class extends ZodType {
15115
15363
  this.step = this.multipleOf;
15116
15364
  }
15117
15365
  _parse(input) {
15366
+ if (this._def.coerce) {
15367
+ input.data = Number(input.data);
15368
+ }
15118
15369
  const parsedType = this._getType(input);
15119
15370
  if (parsedType !== ZodParsedType.number) {
15120
15371
  const ctx2 = this._getOrReturnCtx(input);
@@ -15148,6 +15399,7 @@ var ZodNumber = class extends ZodType {
15148
15399
  minimum: check.value,
15149
15400
  type: "number",
15150
15401
  inclusive: check.inclusive,
15402
+ exact: false,
15151
15403
  message: check.message
15152
15404
  });
15153
15405
  status.dirty();
@@ -15161,6 +15413,7 @@ var ZodNumber = class extends ZodType {
15161
15413
  maximum: check.value,
15162
15414
  type: "number",
15163
15415
  inclusive: check.inclusive,
15416
+ exact: false,
15164
15417
  message: check.message
15165
15418
  });
15166
15419
  status.dirty();
@@ -15175,6 +15428,15 @@ var ZodNumber = class extends ZodType {
15175
15428
  });
15176
15429
  status.dirty();
15177
15430
  }
15431
+ } else if (check.kind === "finite") {
15432
+ if (!Number.isFinite(input.data)) {
15433
+ ctx = this._getOrReturnCtx(input, ctx);
15434
+ addIssueToContext(ctx, {
15435
+ code: ZodIssueCode.not_finite,
15436
+ message: check.message
15437
+ });
15438
+ status.dirty();
15439
+ }
15178
15440
  } else {
15179
15441
  util.assertNever(check);
15180
15442
  }
@@ -15258,6 +15520,12 @@ var ZodNumber = class extends ZodType {
15258
15520
  message: errorUtil.toString(message)
15259
15521
  });
15260
15522
  }
15523
+ finite(message) {
15524
+ return this._addCheck({
15525
+ kind: "finite",
15526
+ message: errorUtil.toString(message)
15527
+ });
15528
+ }
15261
15529
  get minValue() {
15262
15530
  let min = null;
15263
15531
  for (const ch of this._def.checks) {
@@ -15286,11 +15554,15 @@ ZodNumber.create = (params) => {
15286
15554
  return new ZodNumber({
15287
15555
  checks: [],
15288
15556
  typeName: ZodFirstPartyTypeKind.ZodNumber,
15557
+ coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
15289
15558
  ...processCreateParams(params)
15290
15559
  });
15291
15560
  };
15292
15561
  var ZodBigInt = class extends ZodType {
15293
15562
  _parse(input) {
15563
+ if (this._def.coerce) {
15564
+ input.data = BigInt(input.data);
15565
+ }
15294
15566
  const parsedType = this._getType(input);
15295
15567
  if (parsedType !== ZodParsedType.bigint) {
15296
15568
  const ctx = this._getOrReturnCtx(input);
@@ -15305,13 +15577,18 @@ var ZodBigInt = class extends ZodType {
15305
15577
  }
15306
15578
  };
15307
15579
  ZodBigInt.create = (params) => {
15580
+ var _a;
15308
15581
  return new ZodBigInt({
15309
15582
  typeName: ZodFirstPartyTypeKind.ZodBigInt,
15583
+ coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,
15310
15584
  ...processCreateParams(params)
15311
15585
  });
15312
15586
  };
15313
15587
  var ZodBoolean = class extends ZodType {
15314
15588
  _parse(input) {
15589
+ if (this._def.coerce) {
15590
+ input.data = Boolean(input.data);
15591
+ }
15315
15592
  const parsedType = this._getType(input);
15316
15593
  if (parsedType !== ZodParsedType.boolean) {
15317
15594
  const ctx = this._getOrReturnCtx(input);
@@ -15328,11 +15605,15 @@ var ZodBoolean = class extends ZodType {
15328
15605
  ZodBoolean.create = (params) => {
15329
15606
  return new ZodBoolean({
15330
15607
  typeName: ZodFirstPartyTypeKind.ZodBoolean,
15608
+ coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
15331
15609
  ...processCreateParams(params)
15332
15610
  });
15333
15611
  };
15334
15612
  var ZodDate = class extends ZodType {
15335
15613
  _parse(input) {
15614
+ if (this._def.coerce) {
15615
+ input.data = new Date(input.data);
15616
+ }
15336
15617
  const parsedType = this._getType(input);
15337
15618
  if (parsedType !== ZodParsedType.date) {
15338
15619
  const ctx2 = this._getOrReturnCtx(input);
@@ -15360,6 +15641,7 @@ var ZodDate = class extends ZodType {
15360
15641
  code: ZodIssueCode.too_small,
15361
15642
  message: check.message,
15362
15643
  inclusive: true,
15644
+ exact: false,
15363
15645
  minimum: check.value,
15364
15646
  type: "date"
15365
15647
  });
@@ -15372,6 +15654,7 @@ var ZodDate = class extends ZodType {
15372
15654
  code: ZodIssueCode.too_big,
15373
15655
  message: check.message,
15374
15656
  inclusive: true,
15657
+ exact: false,
15375
15658
  maximum: check.value,
15376
15659
  type: "date"
15377
15660
  });
@@ -15430,10 +15713,32 @@ var ZodDate = class extends ZodType {
15430
15713
  ZodDate.create = (params) => {
15431
15714
  return new ZodDate({
15432
15715
  checks: [],
15716
+ coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
15433
15717
  typeName: ZodFirstPartyTypeKind.ZodDate,
15434
15718
  ...processCreateParams(params)
15435
15719
  });
15436
15720
  };
15721
+ var ZodSymbol = class extends ZodType {
15722
+ _parse(input) {
15723
+ const parsedType = this._getType(input);
15724
+ if (parsedType !== ZodParsedType.symbol) {
15725
+ const ctx = this._getOrReturnCtx(input);
15726
+ addIssueToContext(ctx, {
15727
+ code: ZodIssueCode.invalid_type,
15728
+ expected: ZodParsedType.symbol,
15729
+ received: ctx.parsedType
15730
+ });
15731
+ return INVALID;
15732
+ }
15733
+ return OK(input.data);
15734
+ }
15735
+ };
15736
+ ZodSymbol.create = (params) => {
15737
+ return new ZodSymbol({
15738
+ typeName: ZodFirstPartyTypeKind.ZodSymbol,
15739
+ ...processCreateParams(params)
15740
+ });
15741
+ };
15437
15742
  var ZodUndefined = class extends ZodType {
15438
15743
  _parse(input) {
15439
15744
  const parsedType = this._getType(input);
@@ -15556,6 +15861,22 @@ var ZodArray = class extends ZodType {
15556
15861
  });
15557
15862
  return INVALID;
15558
15863
  }
15864
+ if (def.exactLength !== null) {
15865
+ const tooBig = ctx.data.length > def.exactLength.value;
15866
+ const tooSmall = ctx.data.length < def.exactLength.value;
15867
+ if (tooBig || tooSmall) {
15868
+ addIssueToContext(ctx, {
15869
+ code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,
15870
+ minimum: tooSmall ? def.exactLength.value : void 0,
15871
+ maximum: tooBig ? def.exactLength.value : void 0,
15872
+ type: "array",
15873
+ inclusive: true,
15874
+ exact: true,
15875
+ message: def.exactLength.message
15876
+ });
15877
+ status.dirty();
15878
+ }
15879
+ }
15559
15880
  if (def.minLength !== null) {
15560
15881
  if (ctx.data.length < def.minLength.value) {
15561
15882
  addIssueToContext(ctx, {
@@ -15563,6 +15884,7 @@ var ZodArray = class extends ZodType {
15563
15884
  minimum: def.minLength.value,
15564
15885
  type: "array",
15565
15886
  inclusive: true,
15887
+ exact: false,
15566
15888
  message: def.minLength.message
15567
15889
  });
15568
15890
  status.dirty();
@@ -15575,6 +15897,7 @@ var ZodArray = class extends ZodType {
15575
15897
  maximum: def.maxLength.value,
15576
15898
  type: "array",
15577
15899
  inclusive: true,
15900
+ exact: false,
15578
15901
  message: def.maxLength.message
15579
15902
  });
15580
15903
  status.dirty();
@@ -15608,7 +15931,10 @@ var ZodArray = class extends ZodType {
15608
15931
  });
15609
15932
  }
15610
15933
  length(len, message) {
15611
- return this.min(len, message).max(len, message);
15934
+ return new ZodArray({
15935
+ ...this._def,
15936
+ exactLength: { value: len, message: errorUtil.toString(message) }
15937
+ });
15612
15938
  }
15613
15939
  nonempty(message) {
15614
15940
  return this.min(1, message);
@@ -15619,6 +15945,7 @@ ZodArray.create = (schema5, params) => {
15619
15945
  type: schema5,
15620
15946
  minLength: null,
15621
15947
  maxLength: null,
15948
+ exactLength: null,
15622
15949
  typeName: ZodFirstPartyTypeKind.ZodArray,
15623
15950
  ...processCreateParams(params)
15624
15951
  });
@@ -15868,15 +16195,30 @@ var ZodObject = class extends ZodType {
15868
16195
  shape: () => newShape
15869
16196
  });
15870
16197
  }
15871
- required() {
16198
+ required(mask) {
15872
16199
  const newShape = {};
15873
- for (const key in this.shape) {
15874
- const fieldSchema = this.shape[key];
15875
- let newField = fieldSchema;
15876
- while (newField instanceof ZodOptional) {
15877
- newField = newField._def.innerType;
16200
+ if (mask) {
16201
+ util.objectKeys(this.shape).map((key) => {
16202
+ if (util.objectKeys(mask).indexOf(key) === -1) {
16203
+ newShape[key] = this.shape[key];
16204
+ } else {
16205
+ const fieldSchema = this.shape[key];
16206
+ let newField = fieldSchema;
16207
+ while (newField instanceof ZodOptional) {
16208
+ newField = newField._def.innerType;
16209
+ }
16210
+ newShape[key] = newField;
16211
+ }
16212
+ });
16213
+ } else {
16214
+ for (const key in this.shape) {
16215
+ const fieldSchema = this.shape[key];
16216
+ let newField = fieldSchema;
16217
+ while (newField instanceof ZodOptional) {
16218
+ newField = newField._def.innerType;
16219
+ }
16220
+ newShape[key] = newField;
15878
16221
  }
15879
- newShape[key] = newField;
15880
16222
  }
15881
16223
  return new ZodObject({
15882
16224
  ...this._def,
@@ -16005,6 +16347,27 @@ ZodUnion.create = (types, params) => {
16005
16347
  ...processCreateParams(params)
16006
16348
  });
16007
16349
  };
16350
+ var getDiscriminator = (type) => {
16351
+ if (type instanceof ZodLazy) {
16352
+ return getDiscriminator(type.schema);
16353
+ } else if (type instanceof ZodEffects) {
16354
+ return getDiscriminator(type.innerType());
16355
+ } else if (type instanceof ZodLiteral) {
16356
+ return [type.value];
16357
+ } else if (type instanceof ZodEnum) {
16358
+ return type.options;
16359
+ } else if (type instanceof ZodNativeEnum) {
16360
+ return Object.keys(type.enum);
16361
+ } else if (type instanceof ZodDefault) {
16362
+ return getDiscriminator(type._def.innerType);
16363
+ } else if (type instanceof ZodUndefined) {
16364
+ return [void 0];
16365
+ } else if (type instanceof ZodNull) {
16366
+ return [null];
16367
+ } else {
16368
+ return null;
16369
+ }
16370
+ };
16008
16371
  var ZodDiscriminatedUnion = class extends ZodType {
16009
16372
  _parse(input) {
16010
16373
  const { ctx } = this._processInputParams(input);
@@ -16018,11 +16381,11 @@ var ZodDiscriminatedUnion = class extends ZodType {
16018
16381
  }
16019
16382
  const discriminator = this.discriminator;
16020
16383
  const discriminatorValue = ctx.data[discriminator];
16021
- const option = this.options.get(discriminatorValue);
16384
+ const option = this.optionsMap.get(discriminatorValue);
16022
16385
  if (!option) {
16023
16386
  addIssueToContext(ctx, {
16024
16387
  code: ZodIssueCode.invalid_union_discriminator,
16025
- options: this.validDiscriminatorValues,
16388
+ options: Array.from(this.optionsMap.keys()),
16026
16389
  path: [discriminator]
16027
16390
  });
16028
16391
  return INVALID;
@@ -16044,29 +16407,31 @@ var ZodDiscriminatedUnion = class extends ZodType {
16044
16407
  get discriminator() {
16045
16408
  return this._def.discriminator;
16046
16409
  }
16047
- get validDiscriminatorValues() {
16048
- return Array.from(this.options.keys());
16049
- }
16050
16410
  get options() {
16051
16411
  return this._def.options;
16052
16412
  }
16053
- static create(discriminator, types, params) {
16054
- const options = /* @__PURE__ */ new Map();
16055
- try {
16056
- types.forEach((type) => {
16057
- const discriminatorValue = type.shape[discriminator].value;
16058
- options.set(discriminatorValue, type);
16059
- });
16060
- } catch (e) {
16061
- throw new Error("The discriminator value could not be extracted from all the provided schemas");
16062
- }
16063
- if (options.size !== types.length) {
16064
- throw new Error("Some of the discriminator values are not unique");
16413
+ get optionsMap() {
16414
+ return this._def.optionsMap;
16415
+ }
16416
+ static create(discriminator, options, params) {
16417
+ const optionsMap = /* @__PURE__ */ new Map();
16418
+ for (const type of options) {
16419
+ const discriminatorValues = getDiscriminator(type.shape[discriminator]);
16420
+ if (!discriminatorValues) {
16421
+ throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`);
16422
+ }
16423
+ for (const value of discriminatorValues) {
16424
+ if (optionsMap.has(value)) {
16425
+ throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);
16426
+ }
16427
+ optionsMap.set(value, type);
16428
+ }
16065
16429
  }
16066
16430
  return new ZodDiscriminatedUnion({
16067
16431
  typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,
16068
16432
  discriminator,
16069
16433
  options,
16434
+ optionsMap,
16070
16435
  ...processCreateParams(params)
16071
16436
  });
16072
16437
  }
@@ -16178,6 +16543,7 @@ var ZodTuple = class extends ZodType {
16178
16543
  code: ZodIssueCode.too_small,
16179
16544
  minimum: this._def.items.length,
16180
16545
  inclusive: true,
16546
+ exact: false,
16181
16547
  type: "array"
16182
16548
  });
16183
16549
  return INVALID;
@@ -16188,6 +16554,7 @@ var ZodTuple = class extends ZodType {
16188
16554
  code: ZodIssueCode.too_big,
16189
16555
  maximum: this._def.items.length,
16190
16556
  inclusive: true,
16557
+ exact: false,
16191
16558
  type: "array"
16192
16559
  });
16193
16560
  status.dirty();
@@ -16358,6 +16725,7 @@ var ZodSet = class extends ZodType {
16358
16725
  minimum: def.minSize.value,
16359
16726
  type: "set",
16360
16727
  inclusive: true,
16728
+ exact: false,
16361
16729
  message: def.minSize.message
16362
16730
  });
16363
16731
  status.dirty();
@@ -16370,6 +16738,7 @@ var ZodSet = class extends ZodType {
16370
16738
  maximum: def.maxSize.value,
16371
16739
  type: "set",
16372
16740
  inclusive: true,
16741
+ exact: false,
16373
16742
  message: def.maxSize.message
16374
16743
  });
16375
16744
  status.dirty();
@@ -16698,6 +17067,9 @@ var ZodEffects = class extends ZodType {
16698
17067
  innerType() {
16699
17068
  return this._def.schema;
16700
17069
  }
17070
+ sourceType() {
17071
+ return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema;
17072
+ }
16701
17073
  _parse(input) {
16702
17074
  const { status, ctx } = this._processInputParams(input);
16703
17075
  const effect = this._def.effect || null;
@@ -16865,9 +17237,44 @@ var ZodDefault = class extends ZodType {
16865
17237
  }
16866
17238
  };
16867
17239
  ZodDefault.create = (type, params) => {
16868
- return new ZodOptional({
17240
+ return new ZodDefault({
16869
17241
  innerType: type,
16870
- typeName: ZodFirstPartyTypeKind.ZodOptional,
17242
+ typeName: ZodFirstPartyTypeKind.ZodDefault,
17243
+ defaultValue: typeof params.default === "function" ? params.default : () => params.default,
17244
+ ...processCreateParams(params)
17245
+ });
17246
+ };
17247
+ var ZodCatch = class extends ZodType {
17248
+ _parse(input) {
17249
+ const { ctx } = this._processInputParams(input);
17250
+ const result = this._def.innerType._parse({
17251
+ data: ctx.data,
17252
+ path: ctx.path,
17253
+ parent: ctx
17254
+ });
17255
+ if (isAsync(result)) {
17256
+ return result.then((result2) => {
17257
+ return {
17258
+ status: "valid",
17259
+ value: result2.status === "valid" ? result2.value : this._def.defaultValue()
17260
+ };
17261
+ });
17262
+ } else {
17263
+ return {
17264
+ status: "valid",
17265
+ value: result.status === "valid" ? result.value : this._def.defaultValue()
17266
+ };
17267
+ }
17268
+ }
17269
+ removeDefault() {
17270
+ return this._def.innerType;
17271
+ }
17272
+ };
17273
+ ZodCatch.create = (type, params) => {
17274
+ return new ZodCatch({
17275
+ innerType: type,
17276
+ typeName: ZodFirstPartyTypeKind.ZodCatch,
17277
+ defaultValue: typeof params.default === "function" ? params.default : () => params.default,
16871
17278
  ...processCreateParams(params)
16872
17279
  });
16873
17280
  };
@@ -16907,6 +17314,61 @@ var ZodBranded = class extends ZodType {
16907
17314
  return this._def.type;
16908
17315
  }
16909
17316
  };
17317
+ var ZodPipeline = class extends ZodType {
17318
+ _parse(input) {
17319
+ const { status, ctx } = this._processInputParams(input);
17320
+ if (ctx.common.async) {
17321
+ const handleAsync = async () => {
17322
+ const inResult = await this._def.in._parseAsync({
17323
+ data: ctx.data,
17324
+ path: ctx.path,
17325
+ parent: ctx
17326
+ });
17327
+ if (inResult.status === "aborted")
17328
+ return INVALID;
17329
+ if (inResult.status === "dirty") {
17330
+ status.dirty();
17331
+ return DIRTY(inResult.value);
17332
+ } else {
17333
+ return this._def.out._parseAsync({
17334
+ data: inResult.value,
17335
+ path: ctx.path,
17336
+ parent: ctx
17337
+ });
17338
+ }
17339
+ };
17340
+ return handleAsync();
17341
+ } else {
17342
+ const inResult = this._def.in._parseSync({
17343
+ data: ctx.data,
17344
+ path: ctx.path,
17345
+ parent: ctx
17346
+ });
17347
+ if (inResult.status === "aborted")
17348
+ return INVALID;
17349
+ if (inResult.status === "dirty") {
17350
+ status.dirty();
17351
+ return {
17352
+ status: "dirty",
17353
+ value: inResult.value
17354
+ };
17355
+ } else {
17356
+ return this._def.out._parseSync({
17357
+ data: inResult.value,
17358
+ path: ctx.path,
17359
+ parent: ctx
17360
+ });
17361
+ }
17362
+ }
17363
+ }
17364
+ static create(a, b) {
17365
+ return new ZodPipeline({
17366
+ in: a,
17367
+ out: b,
17368
+ typeName: ZodFirstPartyTypeKind.ZodPipeline
17369
+ });
17370
+ }
17371
+ };
16910
17372
  var late = {
16911
17373
  object: ZodObject.lazycreate
16912
17374
  };
@@ -16918,6 +17380,7 @@ var ZodFirstPartyTypeKind;
16918
17380
  ZodFirstPartyTypeKind2["ZodBigInt"] = "ZodBigInt";
16919
17381
  ZodFirstPartyTypeKind2["ZodBoolean"] = "ZodBoolean";
16920
17382
  ZodFirstPartyTypeKind2["ZodDate"] = "ZodDate";
17383
+ ZodFirstPartyTypeKind2["ZodSymbol"] = "ZodSymbol";
16921
17384
  ZodFirstPartyTypeKind2["ZodUndefined"] = "ZodUndefined";
16922
17385
  ZodFirstPartyTypeKind2["ZodNull"] = "ZodNull";
16923
17386
  ZodFirstPartyTypeKind2["ZodAny"] = "ZodAny";
@@ -16942,8 +17405,10 @@ var ZodFirstPartyTypeKind;
16942
17405
  ZodFirstPartyTypeKind2["ZodOptional"] = "ZodOptional";
16943
17406
  ZodFirstPartyTypeKind2["ZodNullable"] = "ZodNullable";
16944
17407
  ZodFirstPartyTypeKind2["ZodDefault"] = "ZodDefault";
17408
+ ZodFirstPartyTypeKind2["ZodCatch"] = "ZodCatch";
16945
17409
  ZodFirstPartyTypeKind2["ZodPromise"] = "ZodPromise";
16946
17410
  ZodFirstPartyTypeKind2["ZodBranded"] = "ZodBranded";
17411
+ ZodFirstPartyTypeKind2["ZodPipeline"] = "ZodPipeline";
16947
17412
  })(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
16948
17413
  var stringType = ZodString.create;
16949
17414
  var numberType = ZodNumber.create;
@@ -16951,6 +17416,7 @@ var nanType = ZodNaN.create;
16951
17416
  var bigIntType = ZodBigInt.create;
16952
17417
  var booleanType = ZodBoolean.create;
16953
17418
  var dateType = ZodDate.create;
17419
+ var symbolType = ZodSymbol.create;
16954
17420
  var undefinedType = ZodUndefined.create;
16955
17421
  var nullType = ZodNull.create;
16956
17422
  var anyType = ZodAny.create;
@@ -16977,6 +17443,7 @@ var effectsType = ZodEffects.create;
16977
17443
  var optionalType = ZodOptional.create;
16978
17444
  var nullableType = ZodNullable.create;
16979
17445
  var preprocessType = ZodEffects.createWithPreprocess;
17446
+ var pipelineType = ZodPipeline.create;
16980
17447
 
16981
17448
  // src/serializer/mysqlSchema.ts
16982
17449
  var index = objectType({
@@ -17335,23 +17802,26 @@ var import_crypto = require("crypto");
17335
17802
  var import_fs = __toESM(require("fs"));
17336
17803
  var import_node = __toESM(require_node2());
17337
17804
  var import_path = __toESM(require("path"));
17338
- var serialize = (path3, dialect6) => {
17805
+ var serialize = (path3, dialect7) => {
17339
17806
  const fileName = import_fs.default.lstatSync(path3).isDirectory() ? null : import_path.default.resolve(path3);
17340
17807
  const filenames = fileName ? [fileName] : import_fs.default.readdirSync(path3).map((it) => import_path.default.join(import_path.default.resolve(path3), it));
17341
17808
  const { unregister } = (0, import_node.register)({
17342
17809
  target: "node14",
17343
17810
  loader: "ts"
17344
17811
  });
17345
- if (dialect6 === "pg") {
17812
+ if (dialect7 === "pg") {
17346
17813
  const { prepareFromPgImports: prepareFromPgImports2 } = (init_pgImports(), __toCommonJS(pgImports_exports));
17347
17814
  const { generatePgSnapshot: generatePgSnapshot2 } = (init_pgSerializer(), __toCommonJS(pgSerializer_exports));
17348
17815
  const { tables, enums } = prepareFromPgImports2(filenames);
17349
17816
  unregister();
17350
17817
  return generatePgSnapshot2(tables, enums);
17351
- } else if (dialect6 === "mysql") {
17818
+ } else if (dialect7 === "mysql") {
17819
+ const { prepareFromMySqlImports: prepareFromMySqlImports2 } = (init_mysqlImports(), __toCommonJS(mysqlImports_exports));
17820
+ const { generateMySqlSnapshot: generateMySqlSnapshot2 } = (init_mysqlSerializer(), __toCommonJS(mysqlSerializer_exports));
17821
+ const { tables, enums } = prepareFromMySqlImports2(filenames);
17352
17822
  unregister();
17353
- return {};
17354
- } else if (dialect6 === "sqlite") {
17823
+ return generateMySqlSnapshot2(tables, enums);
17824
+ } else if (dialect7 === "sqlite") {
17355
17825
  const { prepareFromSqliteImports: prepareFromSqliteImports2 } = (init_sqliteImports(), __toCommonJS(sqliteImports_exports));
17356
17826
  const { generateSqliteSnapshot: generateSqliteSnapshot2 } = (init_sqliteSerializer(), __toCommonJS(sqliteSerializer_exports));
17357
17827
  const { tables, enums } = prepareFromSqliteImports2(filenames);
@@ -17368,8 +17838,8 @@ var serializer_default = serialize;
17368
17838
  var Convertor = class {
17369
17839
  };
17370
17840
  var PgCreateTableConvertor = class extends Convertor {
17371
- can(statement, dialect6) {
17372
- return statement.type === "create_table" && dialect6 === "pg";
17841
+ can(statement, dialect7) {
17842
+ return statement.type === "create_table" && dialect7 === "pg";
17373
17843
  }
17374
17844
  convert(st) {
17375
17845
  const { tableName, columns } = st;
@@ -17391,8 +17861,8 @@ var PgCreateTableConvertor = class extends Convertor {
17391
17861
  }
17392
17862
  };
17393
17863
  var MySqlCreateTableConvertor = class extends Convertor {
17394
- can(statement, dialect6) {
17395
- return statement.type === "create_table" && dialect6 === "mysql";
17864
+ can(statement, dialect7) {
17865
+ return statement.type === "create_table" && dialect7 === "mysql";
17396
17866
  }
17397
17867
  convert(st) {
17398
17868
  const { tableName, columns } = st;
@@ -17415,8 +17885,8 @@ var MySqlCreateTableConvertor = class extends Convertor {
17415
17885
  }
17416
17886
  };
17417
17887
  var SQLiteCreateTableConvertor = class extends Convertor {
17418
- can(statement, dialect6) {
17419
- return statement.type === "sqlite_create_table" && dialect6 === "sqlite";
17888
+ can(statement, dialect7) {
17889
+ return statement.type === "sqlite_create_table" && dialect7 === "sqlite";
17420
17890
  }
17421
17891
  convert(st) {
17422
17892
  const { tableName, columns, referenceData } = st;
@@ -17497,8 +17967,8 @@ var DropTableConvertor = class extends Convertor {
17497
17967
  }
17498
17968
  };
17499
17969
  var PgRenameTableConvertor = class extends Convertor {
17500
- can(statement, dialect6) {
17501
- return statement.type === "rename_table" && dialect6 === "pg";
17970
+ can(statement, dialect7) {
17971
+ return statement.type === "rename_table" && dialect7 === "pg";
17502
17972
  }
17503
17973
  convert(statement) {
17504
17974
  const { tableNameFrom, tableNameTo } = statement;
@@ -17506,8 +17976,8 @@ var PgRenameTableConvertor = class extends Convertor {
17506
17976
  }
17507
17977
  };
17508
17978
  var SqliteRenameTableConvertor = class extends Convertor {
17509
- can(statement, dialect6) {
17510
- return statement.type === "rename_table" && dialect6 === "sqlite";
17979
+ can(statement, dialect7) {
17980
+ return statement.type === "rename_table" && dialect7 === "sqlite";
17511
17981
  }
17512
17982
  convert(statement) {
17513
17983
  const { tableNameFrom, tableNameTo } = statement;
@@ -17515,8 +17985,8 @@ var SqliteRenameTableConvertor = class extends Convertor {
17515
17985
  }
17516
17986
  };
17517
17987
  var MySqlRenameTableConvertor = class extends Convertor {
17518
- can(statement, dialect6) {
17519
- return statement.type === "rename_table" && dialect6 === "mysql";
17988
+ can(statement, dialect7) {
17989
+ return statement.type === "rename_table" && dialect7 === "mysql";
17520
17990
  }
17521
17991
  convert(statement) {
17522
17992
  const { tableNameFrom, tableNameTo } = statement;
@@ -17524,8 +17994,8 @@ var MySqlRenameTableConvertor = class extends Convertor {
17524
17994
  }
17525
17995
  };
17526
17996
  var PgAlterTableRenameColumnConvertor = class extends Convertor {
17527
- can(statement, dialect6) {
17528
- return statement.type === "alter_table_rename_column" && dialect6 === "pg";
17997
+ can(statement, dialect7) {
17998
+ return statement.type === "alter_table_rename_column" && dialect7 === "pg";
17529
17999
  }
17530
18000
  convert(statement) {
17531
18001
  const { tableName, oldColumnName, newColumnName } = statement;
@@ -17533,8 +18003,8 @@ var PgAlterTableRenameColumnConvertor = class extends Convertor {
17533
18003
  }
17534
18004
  };
17535
18005
  var MySqlAlterTableRenameColumnConvertor = class extends Convertor {
17536
- can(statement, dialect6) {
17537
- return statement.type === "alter_table_rename_column" && dialect6 === "mysql";
18006
+ can(statement, dialect7) {
18007
+ return statement.type === "alter_table_rename_column" && dialect7 === "mysql";
17538
18008
  }
17539
18009
  convert(statement) {
17540
18010
  const { tableName, oldColumnName, newColumnName } = statement;
@@ -17542,8 +18012,8 @@ var MySqlAlterTableRenameColumnConvertor = class extends Convertor {
17542
18012
  }
17543
18013
  };
17544
18014
  var SQLiteAlterTableRenameColumnConvertor = class extends Convertor {
17545
- can(statement, dialect6) {
17546
- return statement.type === "alter_table_rename_column" && dialect6 === "sqlite";
18015
+ can(statement, dialect7) {
18016
+ return statement.type === "alter_table_rename_column" && dialect7 === "sqlite";
17547
18017
  }
17548
18018
  convert(statement) {
17549
18019
  const { tableName, oldColumnName, newColumnName } = statement;
@@ -17551,8 +18021,8 @@ var SQLiteAlterTableRenameColumnConvertor = class extends Convertor {
17551
18021
  }
17552
18022
  };
17553
18023
  var PgAlterTableDropColumnConvertor = class extends Convertor {
17554
- can(statement, dialect6) {
17555
- return statement.type === "alter_table_drop_column" && dialect6 === "pg";
18024
+ can(statement, dialect7) {
18025
+ return statement.type === "alter_table_drop_column" && dialect7 === "pg";
17556
18026
  }
17557
18027
  convert(statement) {
17558
18028
  const { tableName, columnName } = statement;
@@ -17560,8 +18030,8 @@ var PgAlterTableDropColumnConvertor = class extends Convertor {
17560
18030
  }
17561
18031
  };
17562
18032
  var MySqlAlterTableDropColumnConvertor = class extends Convertor {
17563
- can(statement, dialect6) {
17564
- return statement.type === "alter_table_drop_column" && dialect6 === "mysql";
18033
+ can(statement, dialect7) {
18034
+ return statement.type === "alter_table_drop_column" && dialect7 === "mysql";
17565
18035
  }
17566
18036
  convert(statement) {
17567
18037
  const { tableName, columnName } = statement;
@@ -17569,8 +18039,8 @@ var MySqlAlterTableDropColumnConvertor = class extends Convertor {
17569
18039
  }
17570
18040
  };
17571
18041
  var SQLiteAlterTableDropColumnConvertor = class extends Convertor {
17572
- can(statement, dialect6) {
17573
- return statement.type === "alter_table_drop_column" && dialect6 === "sqlite";
18042
+ can(statement, dialect7) {
18043
+ return statement.type === "alter_table_drop_column" && dialect7 === "sqlite";
17574
18044
  }
17575
18045
  convert(statement) {
17576
18046
  const { tableName, columnName } = statement;
@@ -17578,8 +18048,8 @@ var SQLiteAlterTableDropColumnConvertor = class extends Convertor {
17578
18048
  }
17579
18049
  };
17580
18050
  var PgAlterTableAddColumnConvertor = class extends Convertor {
17581
- can(statement, dialect6) {
17582
- return statement.type === "alter_table_add_column" && dialect6 === "pg";
18051
+ can(statement, dialect7) {
18052
+ return statement.type === "alter_table_add_column" && dialect7 === "pg";
17583
18053
  }
17584
18054
  convert(statement) {
17585
18055
  const { tableName, column: column4 } = statement;
@@ -17590,8 +18060,8 @@ var PgAlterTableAddColumnConvertor = class extends Convertor {
17590
18060
  }
17591
18061
  };
17592
18062
  var MySqlAlterTableAddColumnConvertor = class extends Convertor {
17593
- can(statement, dialect6) {
17594
- return statement.type === "alter_table_add_column" && dialect6 === "mysql";
18063
+ can(statement, dialect7) {
18064
+ return statement.type === "alter_table_add_column" && dialect7 === "mysql";
17595
18065
  }
17596
18066
  convert(statement) {
17597
18067
  const { tableName, column: column4 } = statement;
@@ -17604,8 +18074,8 @@ var MySqlAlterTableAddColumnConvertor = class extends Convertor {
17604
18074
  }
17605
18075
  };
17606
18076
  var SQLiteAlterTableAddColumnConvertor = class extends Convertor {
17607
- can(statement, dialect6) {
17608
- return statement.type === "sqlite_alter_table_add_column" && dialect6 === "sqlite";
18077
+ can(statement, dialect7) {
18078
+ return statement.type === "sqlite_alter_table_add_column" && dialect7 === "sqlite";
17609
18079
  }
17610
18080
  convert(statement) {
17611
18081
  const { tableName, column: column4, referenceData } = statement;
@@ -17619,8 +18089,8 @@ var SQLiteAlterTableAddColumnConvertor = class extends Convertor {
17619
18089
  }
17620
18090
  };
17621
18091
  var PgAlterTableAlterColumnSetTypeConvertor = class extends Convertor {
17622
- can(statement, dialect6) {
17623
- return statement.type === "alter_table_alter_column_set_type" && dialect6 === "pg";
18092
+ can(statement, dialect7) {
18093
+ return statement.type === "alter_table_alter_column_set_type" && dialect7 === "pg";
17624
18094
  }
17625
18095
  convert(statement) {
17626
18096
  const { tableName, columnName, newDataType } = statement;
@@ -17628,8 +18098,8 @@ var PgAlterTableAlterColumnSetTypeConvertor = class extends Convertor {
17628
18098
  }
17629
18099
  };
17630
18100
  var SQLiteAlterTableAlterColumnSetTypeConvertor = class extends Convertor {
17631
- can(statement, dialect6) {
17632
- return statement.type === "alter_table_alter_column_set_type" && dialect6 === "sqlite";
18101
+ can(statement, dialect7) {
18102
+ return statement.type === "alter_table_alter_column_set_type" && dialect7 === "sqlite";
17633
18103
  }
17634
18104
  convert(statement) {
17635
18105
  return `/*
@@ -17643,8 +18113,8 @@ var SQLiteAlterTableAlterColumnSetTypeConvertor = class extends Convertor {
17643
18113
  }
17644
18114
  };
17645
18115
  var PgAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
17646
- can(statement, dialect6) {
17647
- return statement.type === "alter_table_alter_column_set_default" && dialect6 === "pg";
18116
+ can(statement, dialect7) {
18117
+ return statement.type === "alter_table_alter_column_set_default" && dialect7 === "pg";
17648
18118
  }
17649
18119
  convert(statement) {
17650
18120
  const { tableName, columnName } = statement;
@@ -17652,8 +18122,8 @@ var PgAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
17652
18122
  }
17653
18123
  };
17654
18124
  var SqliteAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
17655
- can(statement, dialect6) {
17656
- return statement.type === "alter_table_alter_column_set_default" && dialect6 === "sqlite";
18125
+ can(statement, dialect7) {
18126
+ return statement.type === "alter_table_alter_column_set_default" && dialect7 === "sqlite";
17657
18127
  }
17658
18128
  convert(statement) {
17659
18129
  return `/*
@@ -17667,8 +18137,8 @@ var SqliteAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
17667
18137
  }
17668
18138
  };
17669
18139
  var PgAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
17670
- can(statement, dialect6) {
17671
- return statement.type === "alter_table_alter_column_drop_default" && dialect6 === "pg";
18140
+ can(statement, dialect7) {
18141
+ return statement.type === "alter_table_alter_column_drop_default" && dialect7 === "pg";
17672
18142
  }
17673
18143
  convert(statement) {
17674
18144
  const { tableName, columnName } = statement;
@@ -17676,8 +18146,8 @@ var PgAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
17676
18146
  }
17677
18147
  };
17678
18148
  var SqliteAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
17679
- can(statement, dialect6) {
17680
- return statement.type === "alter_table_alter_column_drop_default" && dialect6 === "sqlite";
18149
+ can(statement, dialect7) {
18150
+ return statement.type === "alter_table_alter_column_drop_default" && dialect7 === "sqlite";
17681
18151
  }
17682
18152
  convert(statement) {
17683
18153
  return `/*
@@ -17691,8 +18161,8 @@ var SqliteAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
17691
18161
  }
17692
18162
  };
17693
18163
  var PgAlterTableAlterColumnSetNotNullConvertor = class extends Convertor {
17694
- can(statement, dialect6) {
17695
- return statement.type === "alter_table_alter_column_set_notnull" && dialect6 === "pg";
18164
+ can(statement, dialect7) {
18165
+ return statement.type === "alter_table_alter_column_set_notnull" && dialect7 === "pg";
17696
18166
  }
17697
18167
  convert(statement) {
17698
18168
  const { tableName, columnName } = statement;
@@ -17700,8 +18170,8 @@ var PgAlterTableAlterColumnSetNotNullConvertor = class extends Convertor {
17700
18170
  }
17701
18171
  };
17702
18172
  var SqliteAlterTableAlterColumnSetNotNullConvertor = class extends Convertor {
17703
- can(statement, dialect6) {
17704
- return statement.type === "alter_table_alter_column_set_notnull" && dialect6 === "sqlite";
18173
+ can(statement, dialect7) {
18174
+ return statement.type === "alter_table_alter_column_set_notnull" && dialect7 === "sqlite";
17705
18175
  }
17706
18176
  convert(statement) {
17707
18177
  return `/*
@@ -17715,8 +18185,8 @@ var SqliteAlterTableAlterColumnSetNotNullConvertor = class extends Convertor {
17715
18185
  }
17716
18186
  };
17717
18187
  var PgAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
17718
- can(statement, dialect6) {
17719
- return statement.type === "alter_table_alter_column_drop_notnull" && dialect6 === "pg";
18188
+ can(statement, dialect7) {
18189
+ return statement.type === "alter_table_alter_column_drop_notnull" && dialect7 === "pg";
17720
18190
  }
17721
18191
  convert(statement) {
17722
18192
  const { tableName, columnName } = statement;
@@ -17724,8 +18194,8 @@ var PgAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
17724
18194
  }
17725
18195
  };
17726
18196
  var SqliteAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
17727
- can(statement, dialect6) {
17728
- return statement.type === "alter_table_alter_column_drop_notnull" && dialect6 === "sqlite";
18197
+ can(statement, dialect7) {
18198
+ return statement.type === "alter_table_alter_column_drop_notnull" && dialect7 === "sqlite";
17729
18199
  }
17730
18200
  convert(statement) {
17731
18201
  return `/*
@@ -17739,8 +18209,8 @@ var SqliteAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
17739
18209
  }
17740
18210
  };
17741
18211
  var PgCreateForeignKeyConvertor = class extends Convertor {
17742
- can(statement, dialect6) {
17743
- return statement.type === "create_reference" && dialect6 === "pg";
18212
+ can(statement, dialect7) {
18213
+ return statement.type === "create_reference" && dialect7 === "pg";
17744
18214
  }
17745
18215
  convert(statement) {
17746
18216
  const {
@@ -17766,8 +18236,8 @@ var PgCreateForeignKeyConvertor = class extends Convertor {
17766
18236
  }
17767
18237
  };
17768
18238
  var SqliteCreateForeignKeyConvertor = class extends Convertor {
17769
- can(statement, dialect6) {
17770
- return statement.type === "create_reference" && dialect6 === "sqlite";
18239
+ can(statement, dialect7) {
18240
+ return statement.type === "create_reference" && dialect7 === "sqlite";
17771
18241
  }
17772
18242
  convert(statement) {
17773
18243
  return `/*
@@ -17780,8 +18250,8 @@ var SqliteCreateForeignKeyConvertor = class extends Convertor {
17780
18250
  }
17781
18251
  };
17782
18252
  var MySqlCreateForeignKeyConvertor = class extends Convertor {
17783
- can(statement, dialect6) {
17784
- return statement.type === "create_reference" && dialect6 === "mysql";
18253
+ can(statement, dialect7) {
18254
+ return statement.type === "create_reference" && dialect7 === "mysql";
17785
18255
  }
17786
18256
  convert(statement) {
17787
18257
  const {
@@ -17809,8 +18279,8 @@ var AlterForeignKeyConvertor = class extends Convertor {
17809
18279
  }
17810
18280
  };
17811
18281
  var SqliteAlterForeignKeyConvertor = class extends Convertor {
17812
- can(statement, dialect6) {
17813
- return statement.type === "alter_reference" && dialect6 === "sqlite";
18282
+ can(statement, dialect7) {
18283
+ return statement.type === "alter_reference" && dialect7 === "sqlite";
17814
18284
  }
17815
18285
  convert(statement) {
17816
18286
  return `/*
@@ -17823,8 +18293,8 @@ var SqliteAlterForeignKeyConvertor = class extends Convertor {
17823
18293
  }
17824
18294
  };
17825
18295
  var PgDeleteForeignKeyConvertor = class extends Convertor {
17826
- can(statement, dialect6) {
17827
- return statement.type === "delete_reference" && dialect6 === "pg";
18296
+ can(statement, dialect7) {
18297
+ return statement.type === "delete_reference" && dialect7 === "pg";
17828
18298
  }
17829
18299
  convert(statement) {
17830
18300
  const tableFrom = statement.tableName;
@@ -17834,8 +18304,8 @@ var PgDeleteForeignKeyConvertor = class extends Convertor {
17834
18304
  }
17835
18305
  };
17836
18306
  var SqliteDeleteForeignKeyConvertor = class extends Convertor {
17837
- can(statement, dialect6) {
17838
- return statement.type === "delete_reference" && dialect6 === "sqlite";
18307
+ can(statement, dialect7) {
18308
+ return statement.type === "delete_reference" && dialect7 === "sqlite";
17839
18309
  }
17840
18310
  convert(statement) {
17841
18311
  return `/*
@@ -17848,8 +18318,8 @@ var SqliteDeleteForeignKeyConvertor = class extends Convertor {
17848
18318
  }
17849
18319
  };
17850
18320
  var MySqlDeleteForeignKeyConvertor = class extends Convertor {
17851
- can(statement, dialect6) {
17852
- return statement.type === "delete_reference" && dialect6 === "mysql";
18321
+ can(statement, dialect7) {
18322
+ return statement.type === "delete_reference" && dialect7 === "mysql";
17853
18323
  }
17854
18324
  convert(statement) {
17855
18325
  const tableFrom = statement.tableName;
@@ -17859,8 +18329,8 @@ var MySqlDeleteForeignKeyConvertor = class extends Convertor {
17859
18329
  }
17860
18330
  };
17861
18331
  var CreatePgIndexConvertor = class extends Convertor {
17862
- can(statement, dialect6) {
17863
- return statement.type === "create_index" && dialect6 === "pg";
18332
+ can(statement, dialect7) {
18333
+ return statement.type === "create_index" && dialect7 === "pg";
17864
18334
  }
17865
18335
  convert(statement) {
17866
18336
  const { name, columns, isUnique } = PgSquasher.unsquashIdx(statement.data);
@@ -17870,8 +18340,8 @@ var CreatePgIndexConvertor = class extends Convertor {
17870
18340
  }
17871
18341
  };
17872
18342
  var CreateMySqlIndexConvertor = class extends Convertor {
17873
- can(statement, dialect6) {
17874
- return statement.type === "create_index" && dialect6 === "mysql";
18343
+ can(statement, dialect7) {
18344
+ return statement.type === "create_index" && dialect7 === "mysql";
17875
18345
  }
17876
18346
  convert(statement) {
17877
18347
  const { name, columns, isUnique } = PgSquasher.unsquashIdx(statement.data);
@@ -17881,8 +18351,8 @@ var CreateMySqlIndexConvertor = class extends Convertor {
17881
18351
  }
17882
18352
  };
17883
18353
  var CreateSqliteIndexConvertor = class extends Convertor {
17884
- can(statement, dialect6) {
17885
- return statement.type === "create_index" && dialect6 === "sqlite";
18354
+ can(statement, dialect7) {
18355
+ return statement.type === "create_index" && dialect7 === "sqlite";
17886
18356
  }
17887
18357
  convert(statement) {
17888
18358
  const { name, columns, isUnique, where } = SQLiteSquasher.unsquashIdx(
@@ -17895,8 +18365,8 @@ var CreateSqliteIndexConvertor = class extends Convertor {
17895
18365
  }
17896
18366
  };
17897
18367
  var PgDropIndexConvertor = class extends Convertor {
17898
- can(statement, dialect6) {
17899
- return statement.type === "drop_index" && dialect6 === "pg";
18368
+ can(statement, dialect7) {
18369
+ return statement.type === "drop_index" && dialect7 === "pg";
17900
18370
  }
17901
18371
  convert(statement) {
17902
18372
  const { name } = PgSquasher.unsquashIdx(statement.data);
@@ -17904,8 +18374,8 @@ var PgDropIndexConvertor = class extends Convertor {
17904
18374
  }
17905
18375
  };
17906
18376
  var SqliteDropIndexConvertor = class extends Convertor {
17907
- can(statement, dialect6) {
17908
- return statement.type === "drop_index" && dialect6 === "sqlite";
18377
+ can(statement, dialect7) {
18378
+ return statement.type === "drop_index" && dialect7 === "sqlite";
17909
18379
  }
17910
18380
  convert(statement) {
17911
18381
  const { name } = PgSquasher.unsquashIdx(statement.data);
@@ -17954,10 +18424,10 @@ convertors.push(new SqliteAlterTableAlterColumnSetNotNullConvertor());
17954
18424
  convertors.push(new SqliteAlterTableAlterColumnDropNotNullConvertor());
17955
18425
  convertors.push(new SqliteAlterTableAlterColumnSetDefaultConvertor());
17956
18426
  convertors.push(new SqliteAlterTableAlterColumnDropDefaultConvertor());
17957
- var fromJson = (statements, dialect6) => {
18427
+ var fromJson = (statements, dialect7) => {
17958
18428
  const result = statements.map((statement) => {
17959
18429
  const filtered = convertors.filter((it) => {
17960
- return it.can(statement, dialect6);
18430
+ return it.can(statement, dialect7);
17961
18431
  });
17962
18432
  const convertor = filtered.length === 1 ? filtered[0] : void 0;
17963
18433
  if (!convertor) {
@@ -18197,11 +18667,11 @@ var prepareRenameColumns = (tableName, pairs) => {
18197
18667
  };
18198
18668
  });
18199
18669
  };
18200
- var prepareAlterTableColumnsJson = (tableName, deleted, added, altered, addedFk, dialect6) => {
18670
+ var prepareAlterTableColumnsJson = (tableName, deleted, added, altered, addedFk, dialect7) => {
18201
18671
  const statements = [];
18202
18672
  const dropColumns = _prepareDropColumns(tableName, deleted);
18203
18673
  const alterColumns = _prepareAlterColumns(tableName, altered);
18204
- if (dialect6 === "sqlite") {
18674
+ if (dialect7 === "sqlite") {
18205
18675
  let jsonCreateFKStatements = Object.values(addedFk);
18206
18676
  const sqliteAddColumns = _prepareSQLiteAddColumns(
18207
18677
  tableName,
@@ -18390,13 +18860,13 @@ var mapValues = (obj, map) => {
18390
18860
  }, {});
18391
18861
  return result;
18392
18862
  };
18393
- var squashIndexesAndFKs = (json, dialect6 = "pg") => {
18863
+ var squashIndexesAndFKs = (json, dialect7 = "pg") => {
18394
18864
  const mappedTables = Object.fromEntries(
18395
18865
  Object.entries(json.tables).map((it) => {
18396
18866
  const squashedIndexes = mapValues(it[1].indexes, (index4) => {
18397
- if (dialect6 === "mysql") {
18867
+ if (dialect7 === "mysql") {
18398
18868
  return MySqlSquasher.squashIdx(index4);
18399
- } else if (dialect6 === "pg") {
18869
+ } else if (dialect7 === "pg") {
18400
18870
  return PgSquasher.squashIdx(index4);
18401
18871
  } else {
18402
18872
  return SQLiteSquasher.squashIdx(index4);
@@ -18404,9 +18874,9 @@ var squashIndexesAndFKs = (json, dialect6 = "pg") => {
18404
18874
  });
18405
18875
  const squashedFKs = mapValues(it[1].foreignKeys, (fk4) => {
18406
18876
  {
18407
- if (dialect6 === "mysql") {
18877
+ if (dialect7 === "mysql") {
18408
18878
  return MySqlSquasher.squashFK(fk4);
18409
- } else if (dialect6 === "pg") {
18879
+ } else if (dialect7 === "pg") {
18410
18880
  return PgSquasher.squashFK(fk4);
18411
18881
  } else {
18412
18882
  return SQLiteSquasher.squashFK(fk4);
@@ -18513,11 +18983,11 @@ var diffResultScheme = objectType({
18513
18983
  deletedEnums: enumSchema2.array(),
18514
18984
  alteredEnums: changedEnumSchema.array()
18515
18985
  }).strict();
18516
- var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, dialect6) => {
18986
+ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, dialect7) => {
18517
18987
  var _a, _b, _c, _d;
18518
18988
  const diffResult = applyJsonDiff(
18519
- squashIndexesAndFKs(json1, dialect6),
18520
- squashIndexesAndFKs(json2, dialect6)
18989
+ squashIndexesAndFKs(json1, dialect7),
18990
+ squashIndexesAndFKs(json2, dialect7)
18521
18991
  );
18522
18992
  if (Object.keys(diffResult).length === 0) {
18523
18993
  return "";
@@ -18583,7 +19053,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18583
19053
  it.added,
18584
19054
  it.altered,
18585
19055
  it.addedForeignKeys,
18586
- dialect6
19056
+ dialect7
18587
19057
  );
18588
19058
  }).flat();
18589
19059
  const jsonCreateIndexesForAllAlteredTables = allAltered.map((it) => {
@@ -18596,7 +19066,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18596
19066
  return prepareCreateReferencesJson(it.name, it.foreignKeys);
18597
19067
  }).flat();
18598
19068
  const jsonReferencesForAllAlteredTables = allAltered.map((it) => {
18599
- const forAdded = dialect6 !== "sqlite" ? prepareCreateReferencesJson(it.name, it.addedForeignKeys) : [];
19069
+ const forAdded = dialect7 !== "sqlite" ? prepareCreateReferencesJson(it.name, it.addedForeignKeys) : [];
18600
19070
  const forAltered = prepareDropReferencesJson(
18601
19071
  it.name,
18602
19072
  it.deletedForeignKeys
@@ -18613,7 +19083,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18613
19083
  }).flat()) != null ? _d : [];
18614
19084
  jsonStatements.push(...createEnums);
18615
19085
  jsonStatements.push(...jsonAlterEnumsWithAddedValues);
18616
- if (dialect6 === "sqlite") {
19086
+ if (dialect7 === "sqlite") {
18617
19087
  jsonStatements.push(...jsonSQLiteCreateTables);
18618
19088
  } else {
18619
19089
  jsonStatements.push(...jsonCreateTables);
@@ -18622,7 +19092,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18622
19092
  jsonStatements.push(...jsonRenameTables);
18623
19093
  jsonStatements.push(...jsonRenameColumnsStatements);
18624
19094
  jsonStatements.push(...jsonAlterTables);
18625
- if (dialect6 !== "sqlite")
19095
+ if (dialect7 !== "sqlite")
18626
19096
  jsonStatements.push(...jsonCreateReferences);
18627
19097
  jsonStatements.push(...jsonAlterReferencesForAlteredTables);
18628
19098
  jsonStatements.push(...jsonCreateIndexesForCreatedTables);
@@ -18635,7 +19105,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18635
19105
  // src/migrationPreparator.ts
18636
19106
  var import_hanji2 = __toESM(require_hanji());
18637
19107
 
18638
- // node_modules/.pnpm/chalk@5.1.2/node_modules/chalk/source/vendor/ansi-styles/index.js
19108
+ // node_modules/.pnpm/chalk@5.2.0/node_modules/chalk/source/vendor/ansi-styles/index.js
18639
19109
  var ANSI_BACKGROUND_OFFSET = 10;
18640
19110
  var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
18641
19111
  var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
@@ -18812,11 +19282,11 @@ function assembleStyles() {
18812
19282
  var ansiStyles = assembleStyles();
18813
19283
  var ansi_styles_default = ansiStyles;
18814
19284
 
18815
- // node_modules/.pnpm/chalk@5.1.2/node_modules/chalk/source/vendor/supports-color/index.js
19285
+ // node_modules/.pnpm/chalk@5.2.0/node_modules/chalk/source/vendor/supports-color/index.js
18816
19286
  var import_node_process = __toESM(require("process"), 1);
18817
19287
  var import_node_os = __toESM(require("os"), 1);
18818
19288
  var import_node_tty = __toESM(require("tty"), 1);
18819
- function hasFlag(flag, argv = import_node_process.default.argv) {
19289
+ function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : import_node_process.default.argv) {
18820
19290
  const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
18821
19291
  const position = argv.indexOf(prefix + flag);
18822
19292
  const terminatorPosition = argv.indexOf("--");
@@ -18868,6 +19338,9 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
18868
19338
  return 2;
18869
19339
  }
18870
19340
  }
19341
+ if ("TF_BUILD" in env && "AGENT_NAME" in env) {
19342
+ return 1;
19343
+ }
18871
19344
  if (haveStream && !streamIsTTY && forceColor === void 0) {
18872
19345
  return 0;
18873
19346
  }
@@ -18883,7 +19356,10 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
18883
19356
  return 1;
18884
19357
  }
18885
19358
  if ("CI" in env) {
18886
- if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
19359
+ if ("GITHUB_ACTIONS" in env) {
19360
+ return 3;
19361
+ }
19362
+ if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
18887
19363
  return 1;
18888
19364
  }
18889
19365
  return min;
@@ -18891,19 +19367,21 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
18891
19367
  if ("TEAMCITY_VERSION" in env) {
18892
19368
  return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
18893
19369
  }
18894
- if ("TF_BUILD" in env && "AGENT_NAME" in env) {
18895
- return 1;
18896
- }
18897
19370
  if (env.COLORTERM === "truecolor") {
18898
19371
  return 3;
18899
19372
  }
19373
+ if (env.TERM === "xterm-kitty") {
19374
+ return 3;
19375
+ }
18900
19376
  if ("TERM_PROGRAM" in env) {
18901
19377
  const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
18902
19378
  switch (env.TERM_PROGRAM) {
18903
- case "iTerm.app":
19379
+ case "iTerm.app": {
18904
19380
  return version >= 3 ? 3 : 2;
18905
- case "Apple_Terminal":
19381
+ }
19382
+ case "Apple_Terminal": {
18906
19383
  return 2;
19384
+ }
18907
19385
  }
18908
19386
  }
18909
19387
  if (/-256(color)?$/i.test(env.TERM)) {
@@ -18930,7 +19408,7 @@ var supportsColor = {
18930
19408
  };
18931
19409
  var supports_color_default = supportsColor;
18932
19410
 
18933
- // node_modules/.pnpm/chalk@5.1.2/node_modules/chalk/source/utilities.js
19411
+ // node_modules/.pnpm/chalk@5.2.0/node_modules/chalk/source/utilities.js
18934
19412
  function stringReplaceAll(string, substring, replacer) {
18935
19413
  let index4 = string.indexOf(substring);
18936
19414
  if (index4 === -1) {
@@ -18960,7 +19438,7 @@ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index4) {
18960
19438
  return returnValue;
18961
19439
  }
18962
19440
 
18963
- // node_modules/.pnpm/chalk@5.1.2/node_modules/chalk/source/index.js
19441
+ // node_modules/.pnpm/chalk@5.2.0/node_modules/chalk/source/index.js
18964
19442
  var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
18965
19443
  var GENERATOR = Symbol("GENERATOR");
18966
19444
  var STYLER = Symbol("STYLER");
@@ -19333,8 +19811,8 @@ var prepareMigration = (outFolder = "drizzle", schemaPath, _dialect) => {
19333
19811
  const serialized = serializer_default(schemaPath, _dialect);
19334
19812
  const id = (0, import_crypto.randomUUID)();
19335
19813
  const idPrev = prevSnapshot.id;
19336
- const { version, dialect: dialect6, ...rest } = serialized;
19337
- const result = { version, dialect: dialect6, id, prevId: idPrev, ...rest };
19814
+ const { version, dialect: dialect7, ...rest } = serialized;
19815
+ const result = { version, dialect: dialect7, id, prevId: idPrev, ...rest };
19338
19816
  return { prev: prevSnapshot, cur: result };
19339
19817
  };
19340
19818
  var migrationPreparator_default = prepareMigration;
@@ -19345,9 +19823,9 @@ var import_hanji3 = __toESM(require_hanji());
19345
19823
  var prepareAndMigrate = async (config) => {
19346
19824
  const outFolder = config.out;
19347
19825
  const schemaPath = config.schema;
19348
- const dialect6 = config.dialect;
19826
+ const dialect7 = config.dialect;
19349
19827
  try {
19350
- const { prev, cur } = migrationPreparator_default(outFolder, schemaPath, dialect6);
19828
+ const { prev, cur } = migrationPreparator_default(outFolder, schemaPath, dialect7);
19351
19829
  const toSave = JSON.parse(JSON.stringify(cur));
19352
19830
  const validatedPrev = commonSchema.parse(prev);
19353
19831
  const validatedCur = commonSchema.parse(cur);
@@ -19357,7 +19835,7 @@ var prepareAndMigrate = async (config) => {
19357
19835
  freeeeeeze(validatedPrev);
19358
19836
  freeeeeeze(validatedCur);
19359
19837
  console.log(schema4(cur));
19360
- const sql = await prepareSQL(validatedPrev, validatedCur, dialect6);
19838
+ const sql = await prepareSQL(validatedPrev, validatedCur, dialect7);
19361
19839
  if (sql.length === 0) {
19362
19840
  console.log("No schema changes, nothing to migrate \u{1F634}");
19363
19841
  return;
@@ -19386,7 +19864,7 @@ var freeeeeeze = (obj) => {
19386
19864
  }
19387
19865
  }
19388
19866
  };
19389
- var prepareSQL = async (prev, cur, dialect6) => {
19867
+ var prepareSQL = async (prev, cur, dialect7) => {
19390
19868
  const tablesResolver = async (input) => {
19391
19869
  try {
19392
19870
  const { created, deleted, renamed } = await promptTablesConflict(
@@ -19417,7 +19895,7 @@ var prepareSQL = async (prev, cur, dialect6) => {
19417
19895
  cur,
19418
19896
  tablesResolver,
19419
19897
  columnsResolver,
19420
- dialect6
19898
+ dialect7
19421
19899
  );
19422
19900
  };
19423
19901
  var promptColumnsConflicts = async (tableName, newColumns, missingColumns) => {
@@ -19527,7 +20005,7 @@ var import_fs6 = __toESM(require("fs"));
19527
20005
  // src/cli/commands/check.ts
19528
20006
  var import_fs4 = __toESM(require("fs"));
19529
20007
  var checkHandler = (config) => {
19530
- const { dialect: dialect6, out } = config;
20008
+ const { dialect: dialect7, out } = config;
19531
20009
  const outFolderExists = import_fs4.default.existsSync(out);
19532
20010
  if (!outFolderExists) {
19533
20011
  import_fs4.default.mkdirSync(out);
@@ -19571,7 +20049,7 @@ var import_crypto2 = require("crypto");
19571
20049
  var import_fs5 = __toESM(require("fs"));
19572
20050
  var import_path3 = __toESM(require("path"));
19573
20051
  var upHandler = (config) => {
19574
- const { dialect: dialect6, out } = config;
20052
+ const { dialect: dialect7, out } = config;
19575
20053
  const outFolderExists = import_fs5.default.existsSync(out);
19576
20054
  if (!outFolderExists) {
19577
20055
  import_fs5.default.mkdirSync(out);
@@ -19737,7 +20215,7 @@ var migrationCommand = new Command("generate").alias("migrate").option(
19737
20215
  await prepareAndMigrate(result);
19738
20216
  });
19739
20217
  var prepareGenerateConfig = (options) => {
19740
- const { schema: schema5, out, dialect: dialect6, config } = options;
20218
+ const { schema: schema5, out, dialect: dialect7, config } = options;
19741
20219
  if (!(schema5 || out)) {
19742
20220
  const path3 = config != null ? config : "drizzle.config.json";
19743
20221
  const drizzleConfig = JSON.parse(
@@ -19745,30 +20223,30 @@ var prepareGenerateConfig = (options) => {
19745
20223
  );
19746
20224
  return drizzleConfig;
19747
20225
  }
19748
- if (!schema5 || !dialect6) {
20226
+ if (!schema5 || !dialect7) {
19749
20227
  return new Error(`'schema' and 'dialect' param must be set`);
19750
20228
  }
19751
- return configSchema.parse({ schema: schema5, out, dialect: dialect6 });
20229
+ return configSchema.parse({ schema: schema5, out, dialect: dialect7 });
19752
20230
  };
19753
20231
  var checkSchema = objectType({
19754
20232
  dialect: stringType().default(""),
19755
20233
  out: stringType().default("drizzle")
19756
20234
  }).strict();
19757
20235
  var checkCommand = new Command("check").option("--out <out>", `Output folder, 'drizzle' by default`).option("--dialect <dialect>", "One of pg|mysql|sqlite, pg by default").action((options) => {
19758
- const { out, dialect: dialect6 } = checkSchema.parse(options);
19759
- if (!out || !dialect6) {
20236
+ const { out, dialect: dialect7 } = checkSchema.parse(options);
20237
+ if (!out || !dialect7) {
19760
20238
  (0, import_hanji4.render)(error(`'out' folder and 'dialect' params must be set`));
19761
20239
  process.exit(0);
19762
20240
  }
19763
- checkHandler({ out, dialect: dialect6 });
20241
+ checkHandler({ out, dialect: dialect7 });
19764
20242
  });
19765
20243
  var upCommand = new Command("up").option("--out <out>", `Output folder, 'drizzle' by default`).option("--dialect <dialect>", "One of pg|mysql|sqlite, pg by default").action((options) => {
19766
- const { out, dialect: dialect6 } = checkSchema.parse(options);
19767
- if (!out || !dialect6) {
20244
+ const { out, dialect: dialect7 } = checkSchema.parse(options);
20245
+ if (!out || !dialect7) {
19768
20246
  (0, import_hanji4.render)(error(`'out' folder and 'dialect' params must be set`));
19769
20247
  process.exit(0);
19770
20248
  }
19771
- upHandler({ out, dialect: dialect6 });
20249
+ upHandler({ out, dialect: dialect7 });
19772
20250
  });
19773
20251
  program.addCommand(migrationCommand);
19774
20252
  program.addCommand(checkCommand);