drizzle-kit 0.13.0 → 0.14.1

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 +674 -187
  2. package/package.json +12 -12
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;
@@ -7397,6 +7402,7 @@ var init_pgSerializer = __esm({
7397
7402
  (0, import_utils.getTableColumns)(table4).forEach((column4) => {
7398
7403
  const notNull = column4.notNull;
7399
7404
  const primaryKey = column4.primary;
7405
+ const sqlTypeLowered = column4.getSQLType().toLowerCase();
7400
7406
  const columnToSet = {
7401
7407
  name: column4.name,
7402
7408
  type: column4.getSQLType(),
@@ -7412,7 +7418,15 @@ var init_pgSerializer = __esm({
7412
7418
  throw new Error("Only strings are allowed in .default()");
7413
7419
  }).join();
7414
7420
  } else {
7415
- columnToSet.default = typeof column4.default === "string" ? `'${column4.default}'` : column4.default;
7421
+ if (typeof column4.default === "string") {
7422
+ columnToSet.default = `'${column4.default}'`;
7423
+ } else {
7424
+ if (sqlTypeLowered === "jsonb" || sqlTypeLowered === "json") {
7425
+ columnToSet.default = `'${JSON.stringify(column4.default)}'::${sqlTypeLowered}`;
7426
+ } else {
7427
+ columnToSet.default = column4.default;
7428
+ }
7429
+ }
7416
7430
  }
7417
7431
  }
7418
7432
  columnsObject[column4.name] = columnToSet;
@@ -7477,6 +7491,137 @@ var init_pgSerializer = __esm({
7477
7491
  }
7478
7492
  });
7479
7493
 
7494
+ // src/serializer/mysqlImports.ts
7495
+ var mysqlImports_exports = {};
7496
+ __export(mysqlImports_exports, {
7497
+ prepareFromMySqlImports: () => prepareFromMySqlImports
7498
+ });
7499
+ var import_drizzle_orm_mysql, prepareFromMySqlImports;
7500
+ var init_mysqlImports = __esm({
7501
+ "src/serializer/mysqlImports.ts"() {
7502
+ import_drizzle_orm_mysql = require("drizzle-orm-mysql");
7503
+ prepareFromMySqlImports = (imports) => {
7504
+ const tables = [];
7505
+ const enums = [];
7506
+ imports.forEach((it) => {
7507
+ const i0 = require(it);
7508
+ const i0values = Object.values(i0);
7509
+ i0values.forEach((t) => {
7510
+ if (t instanceof import_drizzle_orm_mysql.MySqlTable) {
7511
+ tables.push(
7512
+ t
7513
+ );
7514
+ }
7515
+ });
7516
+ });
7517
+ return { tables, enums };
7518
+ };
7519
+ }
7520
+ });
7521
+
7522
+ // src/serializer/mysqlSerializer.ts
7523
+ var mysqlSerializer_exports = {};
7524
+ __export(mysqlSerializer_exports, {
7525
+ generateMySqlSnapshot: () => generateMySqlSnapshot
7526
+ });
7527
+ var import_drizzle_orm_mysql2, import_table2, import_utils2, import_sql2, import_common, dialect5, generateMySqlSnapshot;
7528
+ var init_mysqlSerializer = __esm({
7529
+ "src/serializer/mysqlSerializer.ts"() {
7530
+ import_drizzle_orm_mysql2 = require("drizzle-orm-mysql");
7531
+ import_table2 = require("drizzle-orm/table");
7532
+ import_utils2 = require("drizzle-orm-mysql/utils");
7533
+ import_sql2 = require("drizzle-orm/sql");
7534
+ import_common = require("drizzle-orm-mysql/columns/common");
7535
+ dialect5 = new import_drizzle_orm_mysql2.MySqlDialect();
7536
+ generateMySqlSnapshot = (tables, enums) => {
7537
+ const result = {};
7538
+ for (const table4 of tables) {
7539
+ const tableName = (0, import_table2.getTableName)(table4);
7540
+ const columnsObject = {};
7541
+ const indexesObject = {};
7542
+ const foreignKeysObject = {};
7543
+ (0, import_utils2.getTableColumns)(table4).forEach((column4) => {
7544
+ const notNull = column4.notNull;
7545
+ const primaryKey = column4.primary;
7546
+ const columnToSet = {
7547
+ name: column4.name,
7548
+ type: column4.getSQLType(),
7549
+ primaryKey,
7550
+ notNull,
7551
+ autoincrement: column4 instanceof import_common.MySqlColumnWithAutoIncrement ? column4.autoIncrement : false
7552
+ };
7553
+ if (column4.default !== void 0) {
7554
+ if (column4.default instanceof import_sql2.SQL) {
7555
+ columnToSet.default = column4.default.queryChunks.map((it) => {
7556
+ if (typeof it === "string") {
7557
+ return `${it}`;
7558
+ }
7559
+ throw new Error();
7560
+ }).join();
7561
+ } else {
7562
+ columnToSet.default = typeof column4.default === "string" ? `'${column4.default}'` : column4.default;
7563
+ }
7564
+ if (["blob", "text", "json"].includes(column4.getSQLType())) {
7565
+ columnToSet.default = `(${columnToSet.default})`;
7566
+ }
7567
+ }
7568
+ columnsObject[column4.name] = columnToSet;
7569
+ });
7570
+ const foreignKeys = (0, import_utils2.getTableForeignKeys)(table4).map((fk4) => {
7571
+ const name = fk4.getName();
7572
+ const tableFrom = tableName;
7573
+ const onDelete = fk4.onDelete;
7574
+ const onUpdate = fk4.onUpdate;
7575
+ const reference = fk4.reference();
7576
+ const referenceFT = reference.foreignTable;
7577
+ const tableTo = (0, import_table2.getTableName)(referenceFT);
7578
+ const columnsFrom = reference.columns.map((it) => it.name);
7579
+ const columnsTo = reference.foreignColumns.map((it) => it.name);
7580
+ return {
7581
+ name,
7582
+ tableFrom,
7583
+ tableTo,
7584
+ columnsFrom,
7585
+ columnsTo,
7586
+ onDelete,
7587
+ onUpdate
7588
+ };
7589
+ });
7590
+ foreignKeys.forEach((it) => {
7591
+ foreignKeysObject[it.name] = it;
7592
+ });
7593
+ (0, import_utils2.getTableIndexes)(table4).forEach((value) => {
7594
+ var _a;
7595
+ const columns = value.config.columns;
7596
+ const name = value.config.name;
7597
+ let indexColumns = columns.map((it) => {
7598
+ if (it instanceof import_sql2.SQL) {
7599
+ return dialect5.sqlToQuery(it).sql;
7600
+ } else {
7601
+ return it.name;
7602
+ }
7603
+ });
7604
+ indexesObject[name] = {
7605
+ name,
7606
+ columns: indexColumns,
7607
+ isUnique: (_a = value.config.unique) != null ? _a : false,
7608
+ using: value.config.using,
7609
+ algorithm: value.config.algorythm,
7610
+ lock: value.config.lock
7611
+ };
7612
+ });
7613
+ result[tableName] = {
7614
+ name: tableName,
7615
+ columns: columnsObject,
7616
+ indexes: indexesObject,
7617
+ foreignKeys: foreignKeysObject
7618
+ };
7619
+ }
7620
+ return { version: "3", dialect: "mysql", tables: result, enums: {} };
7621
+ };
7622
+ }
7623
+ });
7624
+
7480
7625
  // src/serializer/sqliteImports.ts
7481
7626
  var sqliteImports_exports = {};
7482
7627
  __export(sqliteImports_exports, {
@@ -7508,22 +7653,22 @@ var sqliteSerializer_exports = {};
7508
7653
  __export(sqliteSerializer_exports, {
7509
7654
  generateSqliteSnapshot: () => generateSqliteSnapshot
7510
7655
  });
7511
- var import_table2, import_sql2, import_drizzle_orm_sqlite2, import_utils2, dialect5, generateSqliteSnapshot;
7656
+ var import_table3, import_sql3, import_drizzle_orm_sqlite2, import_utils3, dialect6, generateSqliteSnapshot;
7512
7657
  var init_sqliteSerializer = __esm({
7513
7658
  "src/serializer/sqliteSerializer.ts"() {
7514
- import_table2 = require("drizzle-orm/table");
7515
- import_sql2 = require("drizzle-orm/sql");
7659
+ import_table3 = require("drizzle-orm/table");
7660
+ import_sql3 = require("drizzle-orm/sql");
7516
7661
  import_drizzle_orm_sqlite2 = require("drizzle-orm-sqlite");
7517
- import_utils2 = require("drizzle-orm-sqlite/utils");
7518
- dialect5 = new import_drizzle_orm_sqlite2.SQLiteSyncDialect();
7662
+ import_utils3 = require("drizzle-orm-sqlite/utils");
7663
+ dialect6 = new import_drizzle_orm_sqlite2.SQLiteSyncDialect();
7519
7664
  generateSqliteSnapshot = (tables, enums) => {
7520
7665
  const result = {};
7521
7666
  for (const table4 of tables) {
7522
- const tableName = (0, import_table2.getTableName)(table4);
7667
+ const tableName = (0, import_table3.getTableName)(table4);
7523
7668
  const columnsObject = {};
7524
7669
  const indexesObject = {};
7525
7670
  const foreignKeysObject = {};
7526
- (0, import_utils2.getTableColumns)(table4).forEach((column4) => {
7671
+ (0, import_utils3.getTableColumns)(table4).forEach((column4) => {
7527
7672
  const notNull = column4.notNull;
7528
7673
  const primaryKey = column4.primary;
7529
7674
  const columnToSet = {
@@ -7533,7 +7678,7 @@ var init_sqliteSerializer = __esm({
7533
7678
  notNull
7534
7679
  };
7535
7680
  if (column4.default !== void 0) {
7536
- if (column4.default instanceof import_sql2.SQL) {
7681
+ if (column4.default instanceof import_sql3.SQL) {
7537
7682
  columnToSet.default = column4.default.queryChunks.map((it) => {
7538
7683
  if (typeof it === "string") {
7539
7684
  return `${it}`;
@@ -7549,14 +7694,14 @@ var init_sqliteSerializer = __esm({
7549
7694
  }
7550
7695
  columnsObject[column4.name] = columnToSet;
7551
7696
  });
7552
- const foreignKeys = (0, import_utils2.getTableForeignKeys)(table4).map((fk4) => {
7697
+ const foreignKeys = (0, import_utils3.getTableForeignKeys)(table4).map((fk4) => {
7553
7698
  const name = fk4.getName();
7554
7699
  const tableFrom = tableName;
7555
7700
  const onDelete = fk4.onDelete;
7556
7701
  const onUpdate = fk4.onUpdate;
7557
7702
  const reference = fk4.reference();
7558
7703
  const referenceFT = reference.foreignTable;
7559
- const tableTo = (0, import_table2.getTableName)(referenceFT);
7704
+ const tableTo = (0, import_table3.getTableName)(referenceFT);
7560
7705
  const columnsFrom = reference.columns.map((it) => it.name);
7561
7706
  const columnsTo = reference.foreignColumns.map((it) => it.name);
7562
7707
  return {
@@ -7572,21 +7717,21 @@ var init_sqliteSerializer = __esm({
7572
7717
  foreignKeys.forEach((it) => {
7573
7718
  foreignKeysObject[it.name] = it;
7574
7719
  });
7575
- (0, import_utils2.getTableIndexes)(table4).forEach((value) => {
7720
+ (0, import_utils3.getTableIndexes)(table4).forEach((value) => {
7576
7721
  var _a;
7577
7722
  const columns = value.config.columns;
7578
7723
  const name = value.config.name;
7579
7724
  let indexColumns = columns.map((it) => {
7580
- if (it instanceof import_sql2.SQL) {
7581
- return dialect5.sqlToQuery(it).sql;
7725
+ if (it instanceof import_sql3.SQL) {
7726
+ return dialect6.sqlToQuery(it).sql;
7582
7727
  } else {
7583
7728
  return it.name;
7584
7729
  }
7585
7730
  });
7586
7731
  let where = void 0;
7587
7732
  if (value.config.where !== void 0) {
7588
- if (value.config.where instanceof import_sql2.SQL) {
7589
- where = dialect5.sqlToQuery(value.config.where).sql;
7733
+ if (value.config.where instanceof import_sql3.SQL) {
7734
+ where = dialect6.sqlToQuery(value.config.where).sql;
7590
7735
  }
7591
7736
  }
7592
7737
  indexesObject[name] = {
@@ -14188,7 +14333,7 @@ var import_fs3 = __toESM(require("fs"));
14188
14333
  // src/migrationPreparator.ts
14189
14334
  var import_fs2 = __toESM(require("fs"));
14190
14335
 
14191
- // node_modules/.pnpm/zod@3.19.1/node_modules/zod/lib/index.mjs
14336
+ // node_modules/.pnpm/zod@3.20.2/node_modules/zod/lib/index.mjs
14192
14337
  var util;
14193
14338
  (function(util2) {
14194
14339
  util2.assertEqual = (val) => val;
@@ -14284,6 +14429,8 @@ var getParsedType = (data) => {
14284
14429
  return ZodParsedType.function;
14285
14430
  case "bigint":
14286
14431
  return ZodParsedType.bigint;
14432
+ case "symbol":
14433
+ return ZodParsedType.symbol;
14287
14434
  case "object":
14288
14435
  if (Array.isArray(data)) {
14289
14436
  return ZodParsedType.array;
@@ -14323,7 +14470,8 @@ var ZodIssueCode = util.arrayToEnum([
14323
14470
  "too_small",
14324
14471
  "too_big",
14325
14472
  "invalid_intersection_types",
14326
- "not_multiple_of"
14473
+ "not_multiple_of",
14474
+ "not_finite"
14327
14475
  ]);
14328
14476
  var ZodError = class extends Error {
14329
14477
  constructor(issues) {
@@ -14464,25 +14612,25 @@ var errorMap = (issue, _ctx) => {
14464
14612
  break;
14465
14613
  case ZodIssueCode.too_small:
14466
14614
  if (issue.type === "array")
14467
- message = `Array must contain ${issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;
14615
+ message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;
14468
14616
  else if (issue.type === "string")
14469
- message = `String must contain ${issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;
14617
+ message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;
14470
14618
  else if (issue.type === "number")
14471
- message = `Number must be greater than ${issue.inclusive ? `or equal to ` : ``}${issue.minimum}`;
14619
+ message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;
14472
14620
  else if (issue.type === "date")
14473
- message = `Date must be greater than ${issue.inclusive ? `or equal to ` : ``}${new Date(issue.minimum)}`;
14621
+ message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(issue.minimum)}`;
14474
14622
  else
14475
14623
  message = "Invalid input";
14476
14624
  break;
14477
14625
  case ZodIssueCode.too_big:
14478
14626
  if (issue.type === "array")
14479
- message = `Array must contain ${issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;
14627
+ message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;
14480
14628
  else if (issue.type === "string")
14481
- message = `String must contain ${issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;
14629
+ message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;
14482
14630
  else if (issue.type === "number")
14483
- message = `Number must be less than ${issue.inclusive ? `or equal to ` : ``}${issue.maximum}`;
14631
+ message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
14484
14632
  else if (issue.type === "date")
14485
- message = `Date must be smaller than ${issue.inclusive ? `or equal to ` : ``}${new Date(issue.maximum)}`;
14633
+ message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(issue.maximum)}`;
14486
14634
  else
14487
14635
  message = "Invalid input";
14488
14636
  break;
@@ -14495,6 +14643,9 @@ var errorMap = (issue, _ctx) => {
14495
14643
  case ZodIssueCode.not_multiple_of:
14496
14644
  message = `Number must be a multiple of ${issue.multipleOf}`;
14497
14645
  break;
14646
+ case ZodIssueCode.not_finite:
14647
+ message = "Number must be finite";
14648
+ break;
14498
14649
  default:
14499
14650
  message = _ctx.defaultError;
14500
14651
  util.assertNever(issue);
@@ -14592,6 +14743,7 @@ var ParseStatus = class {
14592
14743
  var INVALID = Object.freeze({
14593
14744
  status: "aborted"
14594
14745
  });
14746
+ var DIRTY = (value) => ({ status: "dirty", value });
14595
14747
  var OK = (value) => ({ status: "valid", value });
14596
14748
  var isAborted = (x) => x.status === "aborted";
14597
14749
  var isDirty = (x) => x.status === "dirty";
@@ -14646,7 +14798,6 @@ function processCreateParams(params) {
14646
14798
  var ZodType = class {
14647
14799
  constructor(def) {
14648
14800
  this.spa = this.safeParseAsync;
14649
- this.superRefine = this._refinement;
14650
14801
  this._def = def;
14651
14802
  this.parse = this.parse.bind(this);
14652
14803
  this.safeParse = this.safeParse.bind(this);
@@ -14664,8 +14815,11 @@ var ZodType = class {
14664
14815
  this.or = this.or.bind(this);
14665
14816
  this.and = this.and.bind(this);
14666
14817
  this.transform = this.transform.bind(this);
14818
+ this.brand = this.brand.bind(this);
14667
14819
  this.default = this.default.bind(this);
14820
+ this.catch = this.catch.bind(this);
14668
14821
  this.describe = this.describe.bind(this);
14822
+ this.pipe = this.pipe.bind(this);
14669
14823
  this.isNullable = this.isNullable.bind(this);
14670
14824
  this.isOptional = this.isOptional.bind(this);
14671
14825
  }
@@ -14751,7 +14905,7 @@ var ZodType = class {
14751
14905
  data,
14752
14906
  parsedType: getParsedType(data)
14753
14907
  };
14754
- const maybeAsyncResult = this._parse({ data, path: [], parent: ctx });
14908
+ const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });
14755
14909
  const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));
14756
14910
  return handleResult(ctx, result);
14757
14911
  }
@@ -14806,6 +14960,9 @@ var ZodType = class {
14806
14960
  effect: { type: "refinement", refinement }
14807
14961
  });
14808
14962
  }
14963
+ superRefine(refinement) {
14964
+ return this._refinement(refinement);
14965
+ }
14809
14966
  optional() {
14810
14967
  return ZodOptional.create(this);
14811
14968
  }
@@ -14849,6 +15006,14 @@ var ZodType = class {
14849
15006
  ...processCreateParams(void 0)
14850
15007
  });
14851
15008
  }
15009
+ catch(def) {
15010
+ const defaultValueFunc = typeof def === "function" ? def : () => def;
15011
+ return new ZodCatch({
15012
+ innerType: this,
15013
+ defaultValue: defaultValueFunc,
15014
+ typeName: ZodFirstPartyTypeKind.ZodCatch
15015
+ });
15016
+ }
14852
15017
  describe(description) {
14853
15018
  const This = this.constructor;
14854
15019
  return new This({
@@ -14856,6 +15021,9 @@ var ZodType = class {
14856
15021
  description
14857
15022
  });
14858
15023
  }
15024
+ pipe(target) {
15025
+ return ZodPipeline.create(this, target);
15026
+ }
14859
15027
  isOptional() {
14860
15028
  return this.safeParse(void 0).success;
14861
15029
  }
@@ -14866,6 +15034,27 @@ var ZodType = class {
14866
15034
  var cuidRegex = /^c[^\s-]{8,}$/i;
14867
15035
  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
15036
  var emailRegex = /^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
15037
+ var datetimeRegex = (args) => {
15038
+ if (args.precision) {
15039
+ if (args.offset) {
15040
+ return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}(([+-]\\d{2}:\\d{2})|Z)$`);
15041
+ } else {
15042
+ return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}Z$`);
15043
+ }
15044
+ } else if (args.precision === 0) {
15045
+ if (args.offset) {
15046
+ return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}:\\d{2})|Z)$`);
15047
+ } else {
15048
+ return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$`);
15049
+ }
15050
+ } else {
15051
+ if (args.offset) {
15052
+ return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}:\\d{2})|Z)$`);
15053
+ } else {
15054
+ return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$`);
15055
+ }
15056
+ }
15057
+ };
14869
15058
  var ZodString = class extends ZodType {
14870
15059
  constructor() {
14871
15060
  super(...arguments);
@@ -14881,6 +15070,9 @@ var ZodString = class extends ZodType {
14881
15070
  });
14882
15071
  }
14883
15072
  _parse(input) {
15073
+ if (this._def.coerce) {
15074
+ input.data = String(input.data);
15075
+ }
14884
15076
  const parsedType = this._getType(input);
14885
15077
  if (parsedType !== ZodParsedType.string) {
14886
15078
  const ctx2 = this._getOrReturnCtx(input);
@@ -14905,6 +15097,7 @@ var ZodString = class extends ZodType {
14905
15097
  minimum: check.value,
14906
15098
  type: "string",
14907
15099
  inclusive: true,
15100
+ exact: false,
14908
15101
  message: check.message
14909
15102
  });
14910
15103
  status.dirty();
@@ -14917,10 +15110,37 @@ var ZodString = class extends ZodType {
14917
15110
  maximum: check.value,
14918
15111
  type: "string",
14919
15112
  inclusive: true,
15113
+ exact: false,
14920
15114
  message: check.message
14921
15115
  });
14922
15116
  status.dirty();
14923
15117
  }
15118
+ } else if (check.kind === "length") {
15119
+ const tooBig = input.data.length > check.value;
15120
+ const tooSmall = input.data.length < check.value;
15121
+ if (tooBig || tooSmall) {
15122
+ ctx = this._getOrReturnCtx(input, ctx);
15123
+ if (tooBig) {
15124
+ addIssueToContext(ctx, {
15125
+ code: ZodIssueCode.too_big,
15126
+ maximum: check.value,
15127
+ type: "string",
15128
+ inclusive: true,
15129
+ exact: true,
15130
+ message: check.message
15131
+ });
15132
+ } else if (tooSmall) {
15133
+ addIssueToContext(ctx, {
15134
+ code: ZodIssueCode.too_small,
15135
+ minimum: check.value,
15136
+ type: "string",
15137
+ inclusive: true,
15138
+ exact: true,
15139
+ message: check.message
15140
+ });
15141
+ }
15142
+ status.dirty();
15143
+ }
14924
15144
  } else if (check.kind === "email") {
14925
15145
  if (!emailRegex.test(input.data)) {
14926
15146
  ctx = this._getOrReturnCtx(input, ctx);
@@ -14997,6 +15217,17 @@ var ZodString = class extends ZodType {
14997
15217
  });
14998
15218
  status.dirty();
14999
15219
  }
15220
+ } else if (check.kind === "datetime") {
15221
+ const regex = datetimeRegex(check);
15222
+ if (!regex.test(input.data)) {
15223
+ ctx = this._getOrReturnCtx(input, ctx);
15224
+ addIssueToContext(ctx, {
15225
+ code: ZodIssueCode.invalid_string,
15226
+ validation: "datetime",
15227
+ message: check.message
15228
+ });
15229
+ status.dirty();
15230
+ }
15000
15231
  } else {
15001
15232
  util.assertNever(check);
15002
15233
  }
@@ -15021,6 +15252,23 @@ var ZodString = class extends ZodType {
15021
15252
  cuid(message) {
15022
15253
  return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) });
15023
15254
  }
15255
+ datetime(options) {
15256
+ var _a;
15257
+ if (typeof options === "string") {
15258
+ return this._addCheck({
15259
+ kind: "datetime",
15260
+ precision: null,
15261
+ offset: false,
15262
+ message: options
15263
+ });
15264
+ }
15265
+ return this._addCheck({
15266
+ kind: "datetime",
15267
+ precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === "undefined" ? null : options === null || options === void 0 ? void 0 : options.precision,
15268
+ offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,
15269
+ ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message)
15270
+ });
15271
+ }
15024
15272
  regex(regex, message) {
15025
15273
  return this._addCheck({
15026
15274
  kind: "regex",
@@ -15057,7 +15305,14 @@ var ZodString = class extends ZodType {
15057
15305
  });
15058
15306
  }
15059
15307
  length(len, message) {
15060
- return this.min(len, message).max(len, message);
15308
+ return this._addCheck({
15309
+ kind: "length",
15310
+ value: len,
15311
+ ...errorUtil.errToObj(message)
15312
+ });
15313
+ }
15314
+ get isDatetime() {
15315
+ return !!this._def.checks.find((ch) => ch.kind === "datetime");
15061
15316
  }
15062
15317
  get isEmail() {
15063
15318
  return !!this._def.checks.find((ch) => ch.kind === "email");
@@ -15093,9 +15348,11 @@ var ZodString = class extends ZodType {
15093
15348
  }
15094
15349
  };
15095
15350
  ZodString.create = (params) => {
15351
+ var _a;
15096
15352
  return new ZodString({
15097
15353
  checks: [],
15098
15354
  typeName: ZodFirstPartyTypeKind.ZodString,
15355
+ coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,
15099
15356
  ...processCreateParams(params)
15100
15357
  });
15101
15358
  };
@@ -15115,6 +15372,9 @@ var ZodNumber = class extends ZodType {
15115
15372
  this.step = this.multipleOf;
15116
15373
  }
15117
15374
  _parse(input) {
15375
+ if (this._def.coerce) {
15376
+ input.data = Number(input.data);
15377
+ }
15118
15378
  const parsedType = this._getType(input);
15119
15379
  if (parsedType !== ZodParsedType.number) {
15120
15380
  const ctx2 = this._getOrReturnCtx(input);
@@ -15148,6 +15408,7 @@ var ZodNumber = class extends ZodType {
15148
15408
  minimum: check.value,
15149
15409
  type: "number",
15150
15410
  inclusive: check.inclusive,
15411
+ exact: false,
15151
15412
  message: check.message
15152
15413
  });
15153
15414
  status.dirty();
@@ -15161,6 +15422,7 @@ var ZodNumber = class extends ZodType {
15161
15422
  maximum: check.value,
15162
15423
  type: "number",
15163
15424
  inclusive: check.inclusive,
15425
+ exact: false,
15164
15426
  message: check.message
15165
15427
  });
15166
15428
  status.dirty();
@@ -15175,6 +15437,15 @@ var ZodNumber = class extends ZodType {
15175
15437
  });
15176
15438
  status.dirty();
15177
15439
  }
15440
+ } else if (check.kind === "finite") {
15441
+ if (!Number.isFinite(input.data)) {
15442
+ ctx = this._getOrReturnCtx(input, ctx);
15443
+ addIssueToContext(ctx, {
15444
+ code: ZodIssueCode.not_finite,
15445
+ message: check.message
15446
+ });
15447
+ status.dirty();
15448
+ }
15178
15449
  } else {
15179
15450
  util.assertNever(check);
15180
15451
  }
@@ -15258,6 +15529,12 @@ var ZodNumber = class extends ZodType {
15258
15529
  message: errorUtil.toString(message)
15259
15530
  });
15260
15531
  }
15532
+ finite(message) {
15533
+ return this._addCheck({
15534
+ kind: "finite",
15535
+ message: errorUtil.toString(message)
15536
+ });
15537
+ }
15261
15538
  get minValue() {
15262
15539
  let min = null;
15263
15540
  for (const ch of this._def.checks) {
@@ -15286,11 +15563,15 @@ ZodNumber.create = (params) => {
15286
15563
  return new ZodNumber({
15287
15564
  checks: [],
15288
15565
  typeName: ZodFirstPartyTypeKind.ZodNumber,
15566
+ coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
15289
15567
  ...processCreateParams(params)
15290
15568
  });
15291
15569
  };
15292
15570
  var ZodBigInt = class extends ZodType {
15293
15571
  _parse(input) {
15572
+ if (this._def.coerce) {
15573
+ input.data = BigInt(input.data);
15574
+ }
15294
15575
  const parsedType = this._getType(input);
15295
15576
  if (parsedType !== ZodParsedType.bigint) {
15296
15577
  const ctx = this._getOrReturnCtx(input);
@@ -15305,13 +15586,18 @@ var ZodBigInt = class extends ZodType {
15305
15586
  }
15306
15587
  };
15307
15588
  ZodBigInt.create = (params) => {
15589
+ var _a;
15308
15590
  return new ZodBigInt({
15309
15591
  typeName: ZodFirstPartyTypeKind.ZodBigInt,
15592
+ coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,
15310
15593
  ...processCreateParams(params)
15311
15594
  });
15312
15595
  };
15313
15596
  var ZodBoolean = class extends ZodType {
15314
15597
  _parse(input) {
15598
+ if (this._def.coerce) {
15599
+ input.data = Boolean(input.data);
15600
+ }
15315
15601
  const parsedType = this._getType(input);
15316
15602
  if (parsedType !== ZodParsedType.boolean) {
15317
15603
  const ctx = this._getOrReturnCtx(input);
@@ -15328,11 +15614,15 @@ var ZodBoolean = class extends ZodType {
15328
15614
  ZodBoolean.create = (params) => {
15329
15615
  return new ZodBoolean({
15330
15616
  typeName: ZodFirstPartyTypeKind.ZodBoolean,
15617
+ coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
15331
15618
  ...processCreateParams(params)
15332
15619
  });
15333
15620
  };
15334
15621
  var ZodDate = class extends ZodType {
15335
15622
  _parse(input) {
15623
+ if (this._def.coerce) {
15624
+ input.data = new Date(input.data);
15625
+ }
15336
15626
  const parsedType = this._getType(input);
15337
15627
  if (parsedType !== ZodParsedType.date) {
15338
15628
  const ctx2 = this._getOrReturnCtx(input);
@@ -15360,6 +15650,7 @@ var ZodDate = class extends ZodType {
15360
15650
  code: ZodIssueCode.too_small,
15361
15651
  message: check.message,
15362
15652
  inclusive: true,
15653
+ exact: false,
15363
15654
  minimum: check.value,
15364
15655
  type: "date"
15365
15656
  });
@@ -15372,6 +15663,7 @@ var ZodDate = class extends ZodType {
15372
15663
  code: ZodIssueCode.too_big,
15373
15664
  message: check.message,
15374
15665
  inclusive: true,
15666
+ exact: false,
15375
15667
  maximum: check.value,
15376
15668
  type: "date"
15377
15669
  });
@@ -15430,10 +15722,32 @@ var ZodDate = class extends ZodType {
15430
15722
  ZodDate.create = (params) => {
15431
15723
  return new ZodDate({
15432
15724
  checks: [],
15725
+ coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
15433
15726
  typeName: ZodFirstPartyTypeKind.ZodDate,
15434
15727
  ...processCreateParams(params)
15435
15728
  });
15436
15729
  };
15730
+ var ZodSymbol = class extends ZodType {
15731
+ _parse(input) {
15732
+ const parsedType = this._getType(input);
15733
+ if (parsedType !== ZodParsedType.symbol) {
15734
+ const ctx = this._getOrReturnCtx(input);
15735
+ addIssueToContext(ctx, {
15736
+ code: ZodIssueCode.invalid_type,
15737
+ expected: ZodParsedType.symbol,
15738
+ received: ctx.parsedType
15739
+ });
15740
+ return INVALID;
15741
+ }
15742
+ return OK(input.data);
15743
+ }
15744
+ };
15745
+ ZodSymbol.create = (params) => {
15746
+ return new ZodSymbol({
15747
+ typeName: ZodFirstPartyTypeKind.ZodSymbol,
15748
+ ...processCreateParams(params)
15749
+ });
15750
+ };
15437
15751
  var ZodUndefined = class extends ZodType {
15438
15752
  _parse(input) {
15439
15753
  const parsedType = this._getType(input);
@@ -15556,6 +15870,22 @@ var ZodArray = class extends ZodType {
15556
15870
  });
15557
15871
  return INVALID;
15558
15872
  }
15873
+ if (def.exactLength !== null) {
15874
+ const tooBig = ctx.data.length > def.exactLength.value;
15875
+ const tooSmall = ctx.data.length < def.exactLength.value;
15876
+ if (tooBig || tooSmall) {
15877
+ addIssueToContext(ctx, {
15878
+ code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,
15879
+ minimum: tooSmall ? def.exactLength.value : void 0,
15880
+ maximum: tooBig ? def.exactLength.value : void 0,
15881
+ type: "array",
15882
+ inclusive: true,
15883
+ exact: true,
15884
+ message: def.exactLength.message
15885
+ });
15886
+ status.dirty();
15887
+ }
15888
+ }
15559
15889
  if (def.minLength !== null) {
15560
15890
  if (ctx.data.length < def.minLength.value) {
15561
15891
  addIssueToContext(ctx, {
@@ -15563,6 +15893,7 @@ var ZodArray = class extends ZodType {
15563
15893
  minimum: def.minLength.value,
15564
15894
  type: "array",
15565
15895
  inclusive: true,
15896
+ exact: false,
15566
15897
  message: def.minLength.message
15567
15898
  });
15568
15899
  status.dirty();
@@ -15575,6 +15906,7 @@ var ZodArray = class extends ZodType {
15575
15906
  maximum: def.maxLength.value,
15576
15907
  type: "array",
15577
15908
  inclusive: true,
15909
+ exact: false,
15578
15910
  message: def.maxLength.message
15579
15911
  });
15580
15912
  status.dirty();
@@ -15608,7 +15940,10 @@ var ZodArray = class extends ZodType {
15608
15940
  });
15609
15941
  }
15610
15942
  length(len, message) {
15611
- return this.min(len, message).max(len, message);
15943
+ return new ZodArray({
15944
+ ...this._def,
15945
+ exactLength: { value: len, message: errorUtil.toString(message) }
15946
+ });
15612
15947
  }
15613
15948
  nonempty(message) {
15614
15949
  return this.min(1, message);
@@ -15619,6 +15954,7 @@ ZodArray.create = (schema5, params) => {
15619
15954
  type: schema5,
15620
15955
  minLength: null,
15621
15956
  maxLength: null,
15957
+ exactLength: null,
15622
15958
  typeName: ZodFirstPartyTypeKind.ZodArray,
15623
15959
  ...processCreateParams(params)
15624
15960
  });
@@ -15868,15 +16204,30 @@ var ZodObject = class extends ZodType {
15868
16204
  shape: () => newShape
15869
16205
  });
15870
16206
  }
15871
- required() {
16207
+ required(mask) {
15872
16208
  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;
16209
+ if (mask) {
16210
+ util.objectKeys(this.shape).map((key) => {
16211
+ if (util.objectKeys(mask).indexOf(key) === -1) {
16212
+ newShape[key] = this.shape[key];
16213
+ } else {
16214
+ const fieldSchema = this.shape[key];
16215
+ let newField = fieldSchema;
16216
+ while (newField instanceof ZodOptional) {
16217
+ newField = newField._def.innerType;
16218
+ }
16219
+ newShape[key] = newField;
16220
+ }
16221
+ });
16222
+ } else {
16223
+ for (const key in this.shape) {
16224
+ const fieldSchema = this.shape[key];
16225
+ let newField = fieldSchema;
16226
+ while (newField instanceof ZodOptional) {
16227
+ newField = newField._def.innerType;
16228
+ }
16229
+ newShape[key] = newField;
15878
16230
  }
15879
- newShape[key] = newField;
15880
16231
  }
15881
16232
  return new ZodObject({
15882
16233
  ...this._def,
@@ -16005,6 +16356,27 @@ ZodUnion.create = (types, params) => {
16005
16356
  ...processCreateParams(params)
16006
16357
  });
16007
16358
  };
16359
+ var getDiscriminator = (type) => {
16360
+ if (type instanceof ZodLazy) {
16361
+ return getDiscriminator(type.schema);
16362
+ } else if (type instanceof ZodEffects) {
16363
+ return getDiscriminator(type.innerType());
16364
+ } else if (type instanceof ZodLiteral) {
16365
+ return [type.value];
16366
+ } else if (type instanceof ZodEnum) {
16367
+ return type.options;
16368
+ } else if (type instanceof ZodNativeEnum) {
16369
+ return Object.keys(type.enum);
16370
+ } else if (type instanceof ZodDefault) {
16371
+ return getDiscriminator(type._def.innerType);
16372
+ } else if (type instanceof ZodUndefined) {
16373
+ return [void 0];
16374
+ } else if (type instanceof ZodNull) {
16375
+ return [null];
16376
+ } else {
16377
+ return null;
16378
+ }
16379
+ };
16008
16380
  var ZodDiscriminatedUnion = class extends ZodType {
16009
16381
  _parse(input) {
16010
16382
  const { ctx } = this._processInputParams(input);
@@ -16018,11 +16390,11 @@ var ZodDiscriminatedUnion = class extends ZodType {
16018
16390
  }
16019
16391
  const discriminator = this.discriminator;
16020
16392
  const discriminatorValue = ctx.data[discriminator];
16021
- const option = this.options.get(discriminatorValue);
16393
+ const option = this.optionsMap.get(discriminatorValue);
16022
16394
  if (!option) {
16023
16395
  addIssueToContext(ctx, {
16024
16396
  code: ZodIssueCode.invalid_union_discriminator,
16025
- options: this.validDiscriminatorValues,
16397
+ options: Array.from(this.optionsMap.keys()),
16026
16398
  path: [discriminator]
16027
16399
  });
16028
16400
  return INVALID;
@@ -16044,29 +16416,31 @@ var ZodDiscriminatedUnion = class extends ZodType {
16044
16416
  get discriminator() {
16045
16417
  return this._def.discriminator;
16046
16418
  }
16047
- get validDiscriminatorValues() {
16048
- return Array.from(this.options.keys());
16049
- }
16050
16419
  get options() {
16051
16420
  return this._def.options;
16052
16421
  }
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");
16422
+ get optionsMap() {
16423
+ return this._def.optionsMap;
16424
+ }
16425
+ static create(discriminator, options, params) {
16426
+ const optionsMap = /* @__PURE__ */ new Map();
16427
+ for (const type of options) {
16428
+ const discriminatorValues = getDiscriminator(type.shape[discriminator]);
16429
+ if (!discriminatorValues) {
16430
+ throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`);
16431
+ }
16432
+ for (const value of discriminatorValues) {
16433
+ if (optionsMap.has(value)) {
16434
+ throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);
16435
+ }
16436
+ optionsMap.set(value, type);
16437
+ }
16065
16438
  }
16066
16439
  return new ZodDiscriminatedUnion({
16067
16440
  typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,
16068
16441
  discriminator,
16069
16442
  options,
16443
+ optionsMap,
16070
16444
  ...processCreateParams(params)
16071
16445
  });
16072
16446
  }
@@ -16178,6 +16552,7 @@ var ZodTuple = class extends ZodType {
16178
16552
  code: ZodIssueCode.too_small,
16179
16553
  minimum: this._def.items.length,
16180
16554
  inclusive: true,
16555
+ exact: false,
16181
16556
  type: "array"
16182
16557
  });
16183
16558
  return INVALID;
@@ -16188,6 +16563,7 @@ var ZodTuple = class extends ZodType {
16188
16563
  code: ZodIssueCode.too_big,
16189
16564
  maximum: this._def.items.length,
16190
16565
  inclusive: true,
16566
+ exact: false,
16191
16567
  type: "array"
16192
16568
  });
16193
16569
  status.dirty();
@@ -16358,6 +16734,7 @@ var ZodSet = class extends ZodType {
16358
16734
  minimum: def.minSize.value,
16359
16735
  type: "set",
16360
16736
  inclusive: true,
16737
+ exact: false,
16361
16738
  message: def.minSize.message
16362
16739
  });
16363
16740
  status.dirty();
@@ -16370,6 +16747,7 @@ var ZodSet = class extends ZodType {
16370
16747
  maximum: def.maxSize.value,
16371
16748
  type: "set",
16372
16749
  inclusive: true,
16750
+ exact: false,
16373
16751
  message: def.maxSize.message
16374
16752
  });
16375
16753
  status.dirty();
@@ -16698,6 +17076,9 @@ var ZodEffects = class extends ZodType {
16698
17076
  innerType() {
16699
17077
  return this._def.schema;
16700
17078
  }
17079
+ sourceType() {
17080
+ return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema;
17081
+ }
16701
17082
  _parse(input) {
16702
17083
  const { status, ctx } = this._processInputParams(input);
16703
17084
  const effect = this._def.effect || null;
@@ -16865,9 +17246,44 @@ var ZodDefault = class extends ZodType {
16865
17246
  }
16866
17247
  };
16867
17248
  ZodDefault.create = (type, params) => {
16868
- return new ZodOptional({
17249
+ return new ZodDefault({
16869
17250
  innerType: type,
16870
- typeName: ZodFirstPartyTypeKind.ZodOptional,
17251
+ typeName: ZodFirstPartyTypeKind.ZodDefault,
17252
+ defaultValue: typeof params.default === "function" ? params.default : () => params.default,
17253
+ ...processCreateParams(params)
17254
+ });
17255
+ };
17256
+ var ZodCatch = class extends ZodType {
17257
+ _parse(input) {
17258
+ const { ctx } = this._processInputParams(input);
17259
+ const result = this._def.innerType._parse({
17260
+ data: ctx.data,
17261
+ path: ctx.path,
17262
+ parent: ctx
17263
+ });
17264
+ if (isAsync(result)) {
17265
+ return result.then((result2) => {
17266
+ return {
17267
+ status: "valid",
17268
+ value: result2.status === "valid" ? result2.value : this._def.defaultValue()
17269
+ };
17270
+ });
17271
+ } else {
17272
+ return {
17273
+ status: "valid",
17274
+ value: result.status === "valid" ? result.value : this._def.defaultValue()
17275
+ };
17276
+ }
17277
+ }
17278
+ removeDefault() {
17279
+ return this._def.innerType;
17280
+ }
17281
+ };
17282
+ ZodCatch.create = (type, params) => {
17283
+ return new ZodCatch({
17284
+ innerType: type,
17285
+ typeName: ZodFirstPartyTypeKind.ZodCatch,
17286
+ defaultValue: typeof params.default === "function" ? params.default : () => params.default,
16871
17287
  ...processCreateParams(params)
16872
17288
  });
16873
17289
  };
@@ -16907,6 +17323,61 @@ var ZodBranded = class extends ZodType {
16907
17323
  return this._def.type;
16908
17324
  }
16909
17325
  };
17326
+ var ZodPipeline = class extends ZodType {
17327
+ _parse(input) {
17328
+ const { status, ctx } = this._processInputParams(input);
17329
+ if (ctx.common.async) {
17330
+ const handleAsync = async () => {
17331
+ const inResult = await this._def.in._parseAsync({
17332
+ data: ctx.data,
17333
+ path: ctx.path,
17334
+ parent: ctx
17335
+ });
17336
+ if (inResult.status === "aborted")
17337
+ return INVALID;
17338
+ if (inResult.status === "dirty") {
17339
+ status.dirty();
17340
+ return DIRTY(inResult.value);
17341
+ } else {
17342
+ return this._def.out._parseAsync({
17343
+ data: inResult.value,
17344
+ path: ctx.path,
17345
+ parent: ctx
17346
+ });
17347
+ }
17348
+ };
17349
+ return handleAsync();
17350
+ } else {
17351
+ const inResult = this._def.in._parseSync({
17352
+ data: ctx.data,
17353
+ path: ctx.path,
17354
+ parent: ctx
17355
+ });
17356
+ if (inResult.status === "aborted")
17357
+ return INVALID;
17358
+ if (inResult.status === "dirty") {
17359
+ status.dirty();
17360
+ return {
17361
+ status: "dirty",
17362
+ value: inResult.value
17363
+ };
17364
+ } else {
17365
+ return this._def.out._parseSync({
17366
+ data: inResult.value,
17367
+ path: ctx.path,
17368
+ parent: ctx
17369
+ });
17370
+ }
17371
+ }
17372
+ }
17373
+ static create(a, b) {
17374
+ return new ZodPipeline({
17375
+ in: a,
17376
+ out: b,
17377
+ typeName: ZodFirstPartyTypeKind.ZodPipeline
17378
+ });
17379
+ }
17380
+ };
16910
17381
  var late = {
16911
17382
  object: ZodObject.lazycreate
16912
17383
  };
@@ -16918,6 +17389,7 @@ var ZodFirstPartyTypeKind;
16918
17389
  ZodFirstPartyTypeKind2["ZodBigInt"] = "ZodBigInt";
16919
17390
  ZodFirstPartyTypeKind2["ZodBoolean"] = "ZodBoolean";
16920
17391
  ZodFirstPartyTypeKind2["ZodDate"] = "ZodDate";
17392
+ ZodFirstPartyTypeKind2["ZodSymbol"] = "ZodSymbol";
16921
17393
  ZodFirstPartyTypeKind2["ZodUndefined"] = "ZodUndefined";
16922
17394
  ZodFirstPartyTypeKind2["ZodNull"] = "ZodNull";
16923
17395
  ZodFirstPartyTypeKind2["ZodAny"] = "ZodAny";
@@ -16942,8 +17414,10 @@ var ZodFirstPartyTypeKind;
16942
17414
  ZodFirstPartyTypeKind2["ZodOptional"] = "ZodOptional";
16943
17415
  ZodFirstPartyTypeKind2["ZodNullable"] = "ZodNullable";
16944
17416
  ZodFirstPartyTypeKind2["ZodDefault"] = "ZodDefault";
17417
+ ZodFirstPartyTypeKind2["ZodCatch"] = "ZodCatch";
16945
17418
  ZodFirstPartyTypeKind2["ZodPromise"] = "ZodPromise";
16946
17419
  ZodFirstPartyTypeKind2["ZodBranded"] = "ZodBranded";
17420
+ ZodFirstPartyTypeKind2["ZodPipeline"] = "ZodPipeline";
16947
17421
  })(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
16948
17422
  var stringType = ZodString.create;
16949
17423
  var numberType = ZodNumber.create;
@@ -16951,6 +17425,7 @@ var nanType = ZodNaN.create;
16951
17425
  var bigIntType = ZodBigInt.create;
16952
17426
  var booleanType = ZodBoolean.create;
16953
17427
  var dateType = ZodDate.create;
17428
+ var symbolType = ZodSymbol.create;
16954
17429
  var undefinedType = ZodUndefined.create;
16955
17430
  var nullType = ZodNull.create;
16956
17431
  var anyType = ZodAny.create;
@@ -16977,6 +17452,7 @@ var effectsType = ZodEffects.create;
16977
17452
  var optionalType = ZodOptional.create;
16978
17453
  var nullableType = ZodNullable.create;
16979
17454
  var preprocessType = ZodEffects.createWithPreprocess;
17455
+ var pipelineType = ZodPipeline.create;
16980
17456
 
16981
17457
  // src/serializer/mysqlSchema.ts
16982
17458
  var index = objectType({
@@ -17335,23 +17811,26 @@ var import_crypto = require("crypto");
17335
17811
  var import_fs = __toESM(require("fs"));
17336
17812
  var import_node = __toESM(require_node2());
17337
17813
  var import_path = __toESM(require("path"));
17338
- var serialize = (path3, dialect6) => {
17814
+ var serialize = (path3, dialect7) => {
17339
17815
  const fileName = import_fs.default.lstatSync(path3).isDirectory() ? null : import_path.default.resolve(path3);
17340
17816
  const filenames = fileName ? [fileName] : import_fs.default.readdirSync(path3).map((it) => import_path.default.join(import_path.default.resolve(path3), it));
17341
17817
  const { unregister } = (0, import_node.register)({
17342
17818
  target: "node14",
17343
17819
  loader: "ts"
17344
17820
  });
17345
- if (dialect6 === "pg") {
17821
+ if (dialect7 === "pg") {
17346
17822
  const { prepareFromPgImports: prepareFromPgImports2 } = (init_pgImports(), __toCommonJS(pgImports_exports));
17347
17823
  const { generatePgSnapshot: generatePgSnapshot2 } = (init_pgSerializer(), __toCommonJS(pgSerializer_exports));
17348
17824
  const { tables, enums } = prepareFromPgImports2(filenames);
17349
17825
  unregister();
17350
17826
  return generatePgSnapshot2(tables, enums);
17351
- } else if (dialect6 === "mysql") {
17827
+ } else if (dialect7 === "mysql") {
17828
+ const { prepareFromMySqlImports: prepareFromMySqlImports2 } = (init_mysqlImports(), __toCommonJS(mysqlImports_exports));
17829
+ const { generateMySqlSnapshot: generateMySqlSnapshot2 } = (init_mysqlSerializer(), __toCommonJS(mysqlSerializer_exports));
17830
+ const { tables, enums } = prepareFromMySqlImports2(filenames);
17352
17831
  unregister();
17353
- return {};
17354
- } else if (dialect6 === "sqlite") {
17832
+ return generateMySqlSnapshot2(tables, enums);
17833
+ } else if (dialect7 === "sqlite") {
17355
17834
  const { prepareFromSqliteImports: prepareFromSqliteImports2 } = (init_sqliteImports(), __toCommonJS(sqliteImports_exports));
17356
17835
  const { generateSqliteSnapshot: generateSqliteSnapshot2 } = (init_sqliteSerializer(), __toCommonJS(sqliteSerializer_exports));
17357
17836
  const { tables, enums } = prepareFromSqliteImports2(filenames);
@@ -17368,8 +17847,8 @@ var serializer_default = serialize;
17368
17847
  var Convertor = class {
17369
17848
  };
17370
17849
  var PgCreateTableConvertor = class extends Convertor {
17371
- can(statement, dialect6) {
17372
- return statement.type === "create_table" && dialect6 === "pg";
17850
+ can(statement, dialect7) {
17851
+ return statement.type === "create_table" && dialect7 === "pg";
17373
17852
  }
17374
17853
  convert(st) {
17375
17854
  const { tableName, columns } = st;
@@ -17391,8 +17870,8 @@ var PgCreateTableConvertor = class extends Convertor {
17391
17870
  }
17392
17871
  };
17393
17872
  var MySqlCreateTableConvertor = class extends Convertor {
17394
- can(statement, dialect6) {
17395
- return statement.type === "create_table" && dialect6 === "mysql";
17873
+ can(statement, dialect7) {
17874
+ return statement.type === "create_table" && dialect7 === "mysql";
17396
17875
  }
17397
17876
  convert(st) {
17398
17877
  const { tableName, columns } = st;
@@ -17415,8 +17894,8 @@ var MySqlCreateTableConvertor = class extends Convertor {
17415
17894
  }
17416
17895
  };
17417
17896
  var SQLiteCreateTableConvertor = class extends Convertor {
17418
- can(statement, dialect6) {
17419
- return statement.type === "sqlite_create_table" && dialect6 === "sqlite";
17897
+ can(statement, dialect7) {
17898
+ return statement.type === "sqlite_create_table" && dialect7 === "sqlite";
17420
17899
  }
17421
17900
  convert(st) {
17422
17901
  const { tableName, columns, referenceData } = st;
@@ -17497,8 +17976,8 @@ var DropTableConvertor = class extends Convertor {
17497
17976
  }
17498
17977
  };
17499
17978
  var PgRenameTableConvertor = class extends Convertor {
17500
- can(statement, dialect6) {
17501
- return statement.type === "rename_table" && dialect6 === "pg";
17979
+ can(statement, dialect7) {
17980
+ return statement.type === "rename_table" && dialect7 === "pg";
17502
17981
  }
17503
17982
  convert(statement) {
17504
17983
  const { tableNameFrom, tableNameTo } = statement;
@@ -17506,8 +17985,8 @@ var PgRenameTableConvertor = class extends Convertor {
17506
17985
  }
17507
17986
  };
17508
17987
  var SqliteRenameTableConvertor = class extends Convertor {
17509
- can(statement, dialect6) {
17510
- return statement.type === "rename_table" && dialect6 === "sqlite";
17988
+ can(statement, dialect7) {
17989
+ return statement.type === "rename_table" && dialect7 === "sqlite";
17511
17990
  }
17512
17991
  convert(statement) {
17513
17992
  const { tableNameFrom, tableNameTo } = statement;
@@ -17515,8 +17994,8 @@ var SqliteRenameTableConvertor = class extends Convertor {
17515
17994
  }
17516
17995
  };
17517
17996
  var MySqlRenameTableConvertor = class extends Convertor {
17518
- can(statement, dialect6) {
17519
- return statement.type === "rename_table" && dialect6 === "mysql";
17997
+ can(statement, dialect7) {
17998
+ return statement.type === "rename_table" && dialect7 === "mysql";
17520
17999
  }
17521
18000
  convert(statement) {
17522
18001
  const { tableNameFrom, tableNameTo } = statement;
@@ -17524,8 +18003,8 @@ var MySqlRenameTableConvertor = class extends Convertor {
17524
18003
  }
17525
18004
  };
17526
18005
  var PgAlterTableRenameColumnConvertor = class extends Convertor {
17527
- can(statement, dialect6) {
17528
- return statement.type === "alter_table_rename_column" && dialect6 === "pg";
18006
+ can(statement, dialect7) {
18007
+ return statement.type === "alter_table_rename_column" && dialect7 === "pg";
17529
18008
  }
17530
18009
  convert(statement) {
17531
18010
  const { tableName, oldColumnName, newColumnName } = statement;
@@ -17533,8 +18012,8 @@ var PgAlterTableRenameColumnConvertor = class extends Convertor {
17533
18012
  }
17534
18013
  };
17535
18014
  var MySqlAlterTableRenameColumnConvertor = class extends Convertor {
17536
- can(statement, dialect6) {
17537
- return statement.type === "alter_table_rename_column" && dialect6 === "mysql";
18015
+ can(statement, dialect7) {
18016
+ return statement.type === "alter_table_rename_column" && dialect7 === "mysql";
17538
18017
  }
17539
18018
  convert(statement) {
17540
18019
  const { tableName, oldColumnName, newColumnName } = statement;
@@ -17542,8 +18021,8 @@ var MySqlAlterTableRenameColumnConvertor = class extends Convertor {
17542
18021
  }
17543
18022
  };
17544
18023
  var SQLiteAlterTableRenameColumnConvertor = class extends Convertor {
17545
- can(statement, dialect6) {
17546
- return statement.type === "alter_table_rename_column" && dialect6 === "sqlite";
18024
+ can(statement, dialect7) {
18025
+ return statement.type === "alter_table_rename_column" && dialect7 === "sqlite";
17547
18026
  }
17548
18027
  convert(statement) {
17549
18028
  const { tableName, oldColumnName, newColumnName } = statement;
@@ -17551,8 +18030,8 @@ var SQLiteAlterTableRenameColumnConvertor = class extends Convertor {
17551
18030
  }
17552
18031
  };
17553
18032
  var PgAlterTableDropColumnConvertor = class extends Convertor {
17554
- can(statement, dialect6) {
17555
- return statement.type === "alter_table_drop_column" && dialect6 === "pg";
18033
+ can(statement, dialect7) {
18034
+ return statement.type === "alter_table_drop_column" && dialect7 === "pg";
17556
18035
  }
17557
18036
  convert(statement) {
17558
18037
  const { tableName, columnName } = statement;
@@ -17560,8 +18039,8 @@ var PgAlterTableDropColumnConvertor = class extends Convertor {
17560
18039
  }
17561
18040
  };
17562
18041
  var MySqlAlterTableDropColumnConvertor = class extends Convertor {
17563
- can(statement, dialect6) {
17564
- return statement.type === "alter_table_drop_column" && dialect6 === "mysql";
18042
+ can(statement, dialect7) {
18043
+ return statement.type === "alter_table_drop_column" && dialect7 === "mysql";
17565
18044
  }
17566
18045
  convert(statement) {
17567
18046
  const { tableName, columnName } = statement;
@@ -17569,8 +18048,8 @@ var MySqlAlterTableDropColumnConvertor = class extends Convertor {
17569
18048
  }
17570
18049
  };
17571
18050
  var SQLiteAlterTableDropColumnConvertor = class extends Convertor {
17572
- can(statement, dialect6) {
17573
- return statement.type === "alter_table_drop_column" && dialect6 === "sqlite";
18051
+ can(statement, dialect7) {
18052
+ return statement.type === "alter_table_drop_column" && dialect7 === "sqlite";
17574
18053
  }
17575
18054
  convert(statement) {
17576
18055
  const { tableName, columnName } = statement;
@@ -17578,8 +18057,8 @@ var SQLiteAlterTableDropColumnConvertor = class extends Convertor {
17578
18057
  }
17579
18058
  };
17580
18059
  var PgAlterTableAddColumnConvertor = class extends Convertor {
17581
- can(statement, dialect6) {
17582
- return statement.type === "alter_table_add_column" && dialect6 === "pg";
18060
+ can(statement, dialect7) {
18061
+ return statement.type === "alter_table_add_column" && dialect7 === "pg";
17583
18062
  }
17584
18063
  convert(statement) {
17585
18064
  const { tableName, column: column4 } = statement;
@@ -17590,8 +18069,8 @@ var PgAlterTableAddColumnConvertor = class extends Convertor {
17590
18069
  }
17591
18070
  };
17592
18071
  var MySqlAlterTableAddColumnConvertor = class extends Convertor {
17593
- can(statement, dialect6) {
17594
- return statement.type === "alter_table_add_column" && dialect6 === "mysql";
18072
+ can(statement, dialect7) {
18073
+ return statement.type === "alter_table_add_column" && dialect7 === "mysql";
17595
18074
  }
17596
18075
  convert(statement) {
17597
18076
  const { tableName, column: column4 } = statement;
@@ -17604,8 +18083,8 @@ var MySqlAlterTableAddColumnConvertor = class extends Convertor {
17604
18083
  }
17605
18084
  };
17606
18085
  var SQLiteAlterTableAddColumnConvertor = class extends Convertor {
17607
- can(statement, dialect6) {
17608
- return statement.type === "sqlite_alter_table_add_column" && dialect6 === "sqlite";
18086
+ can(statement, dialect7) {
18087
+ return statement.type === "sqlite_alter_table_add_column" && dialect7 === "sqlite";
17609
18088
  }
17610
18089
  convert(statement) {
17611
18090
  const { tableName, column: column4, referenceData } = statement;
@@ -17619,8 +18098,8 @@ var SQLiteAlterTableAddColumnConvertor = class extends Convertor {
17619
18098
  }
17620
18099
  };
17621
18100
  var PgAlterTableAlterColumnSetTypeConvertor = class extends Convertor {
17622
- can(statement, dialect6) {
17623
- return statement.type === "alter_table_alter_column_set_type" && dialect6 === "pg";
18101
+ can(statement, dialect7) {
18102
+ return statement.type === "alter_table_alter_column_set_type" && dialect7 === "pg";
17624
18103
  }
17625
18104
  convert(statement) {
17626
18105
  const { tableName, columnName, newDataType } = statement;
@@ -17628,8 +18107,8 @@ var PgAlterTableAlterColumnSetTypeConvertor = class extends Convertor {
17628
18107
  }
17629
18108
  };
17630
18109
  var SQLiteAlterTableAlterColumnSetTypeConvertor = class extends Convertor {
17631
- can(statement, dialect6) {
17632
- return statement.type === "alter_table_alter_column_set_type" && dialect6 === "sqlite";
18110
+ can(statement, dialect7) {
18111
+ return statement.type === "alter_table_alter_column_set_type" && dialect7 === "sqlite";
17633
18112
  }
17634
18113
  convert(statement) {
17635
18114
  return `/*
@@ -17643,8 +18122,8 @@ var SQLiteAlterTableAlterColumnSetTypeConvertor = class extends Convertor {
17643
18122
  }
17644
18123
  };
17645
18124
  var PgAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
17646
- can(statement, dialect6) {
17647
- return statement.type === "alter_table_alter_column_set_default" && dialect6 === "pg";
18125
+ can(statement, dialect7) {
18126
+ return statement.type === "alter_table_alter_column_set_default" && dialect7 === "pg";
17648
18127
  }
17649
18128
  convert(statement) {
17650
18129
  const { tableName, columnName } = statement;
@@ -17652,8 +18131,8 @@ var PgAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
17652
18131
  }
17653
18132
  };
17654
18133
  var SqliteAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
17655
- can(statement, dialect6) {
17656
- return statement.type === "alter_table_alter_column_set_default" && dialect6 === "sqlite";
18134
+ can(statement, dialect7) {
18135
+ return statement.type === "alter_table_alter_column_set_default" && dialect7 === "sqlite";
17657
18136
  }
17658
18137
  convert(statement) {
17659
18138
  return `/*
@@ -17667,8 +18146,8 @@ var SqliteAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
17667
18146
  }
17668
18147
  };
17669
18148
  var PgAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
17670
- can(statement, dialect6) {
17671
- return statement.type === "alter_table_alter_column_drop_default" && dialect6 === "pg";
18149
+ can(statement, dialect7) {
18150
+ return statement.type === "alter_table_alter_column_drop_default" && dialect7 === "pg";
17672
18151
  }
17673
18152
  convert(statement) {
17674
18153
  const { tableName, columnName } = statement;
@@ -17676,8 +18155,8 @@ var PgAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
17676
18155
  }
17677
18156
  };
17678
18157
  var SqliteAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
17679
- can(statement, dialect6) {
17680
- return statement.type === "alter_table_alter_column_drop_default" && dialect6 === "sqlite";
18158
+ can(statement, dialect7) {
18159
+ return statement.type === "alter_table_alter_column_drop_default" && dialect7 === "sqlite";
17681
18160
  }
17682
18161
  convert(statement) {
17683
18162
  return `/*
@@ -17691,8 +18170,8 @@ var SqliteAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
17691
18170
  }
17692
18171
  };
17693
18172
  var PgAlterTableAlterColumnSetNotNullConvertor = class extends Convertor {
17694
- can(statement, dialect6) {
17695
- return statement.type === "alter_table_alter_column_set_notnull" && dialect6 === "pg";
18173
+ can(statement, dialect7) {
18174
+ return statement.type === "alter_table_alter_column_set_notnull" && dialect7 === "pg";
17696
18175
  }
17697
18176
  convert(statement) {
17698
18177
  const { tableName, columnName } = statement;
@@ -17700,8 +18179,8 @@ var PgAlterTableAlterColumnSetNotNullConvertor = class extends Convertor {
17700
18179
  }
17701
18180
  };
17702
18181
  var SqliteAlterTableAlterColumnSetNotNullConvertor = class extends Convertor {
17703
- can(statement, dialect6) {
17704
- return statement.type === "alter_table_alter_column_set_notnull" && dialect6 === "sqlite";
18182
+ can(statement, dialect7) {
18183
+ return statement.type === "alter_table_alter_column_set_notnull" && dialect7 === "sqlite";
17705
18184
  }
17706
18185
  convert(statement) {
17707
18186
  return `/*
@@ -17715,8 +18194,8 @@ var SqliteAlterTableAlterColumnSetNotNullConvertor = class extends Convertor {
17715
18194
  }
17716
18195
  };
17717
18196
  var PgAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
17718
- can(statement, dialect6) {
17719
- return statement.type === "alter_table_alter_column_drop_notnull" && dialect6 === "pg";
18197
+ can(statement, dialect7) {
18198
+ return statement.type === "alter_table_alter_column_drop_notnull" && dialect7 === "pg";
17720
18199
  }
17721
18200
  convert(statement) {
17722
18201
  const { tableName, columnName } = statement;
@@ -17724,8 +18203,8 @@ var PgAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
17724
18203
  }
17725
18204
  };
17726
18205
  var SqliteAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
17727
- can(statement, dialect6) {
17728
- return statement.type === "alter_table_alter_column_drop_notnull" && dialect6 === "sqlite";
18206
+ can(statement, dialect7) {
18207
+ return statement.type === "alter_table_alter_column_drop_notnull" && dialect7 === "sqlite";
17729
18208
  }
17730
18209
  convert(statement) {
17731
18210
  return `/*
@@ -17739,8 +18218,8 @@ var SqliteAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
17739
18218
  }
17740
18219
  };
17741
18220
  var PgCreateForeignKeyConvertor = class extends Convertor {
17742
- can(statement, dialect6) {
17743
- return statement.type === "create_reference" && dialect6 === "pg";
18221
+ can(statement, dialect7) {
18222
+ return statement.type === "create_reference" && dialect7 === "pg";
17744
18223
  }
17745
18224
  convert(statement) {
17746
18225
  const {
@@ -17766,8 +18245,8 @@ var PgCreateForeignKeyConvertor = class extends Convertor {
17766
18245
  }
17767
18246
  };
17768
18247
  var SqliteCreateForeignKeyConvertor = class extends Convertor {
17769
- can(statement, dialect6) {
17770
- return statement.type === "create_reference" && dialect6 === "sqlite";
18248
+ can(statement, dialect7) {
18249
+ return statement.type === "create_reference" && dialect7 === "sqlite";
17771
18250
  }
17772
18251
  convert(statement) {
17773
18252
  return `/*
@@ -17780,8 +18259,8 @@ var SqliteCreateForeignKeyConvertor = class extends Convertor {
17780
18259
  }
17781
18260
  };
17782
18261
  var MySqlCreateForeignKeyConvertor = class extends Convertor {
17783
- can(statement, dialect6) {
17784
- return statement.type === "create_reference" && dialect6 === "mysql";
18262
+ can(statement, dialect7) {
18263
+ return statement.type === "create_reference" && dialect7 === "mysql";
17785
18264
  }
17786
18265
  convert(statement) {
17787
18266
  const {
@@ -17809,8 +18288,8 @@ var AlterForeignKeyConvertor = class extends Convertor {
17809
18288
  }
17810
18289
  };
17811
18290
  var SqliteAlterForeignKeyConvertor = class extends Convertor {
17812
- can(statement, dialect6) {
17813
- return statement.type === "alter_reference" && dialect6 === "sqlite";
18291
+ can(statement, dialect7) {
18292
+ return statement.type === "alter_reference" && dialect7 === "sqlite";
17814
18293
  }
17815
18294
  convert(statement) {
17816
18295
  return `/*
@@ -17823,8 +18302,8 @@ var SqliteAlterForeignKeyConvertor = class extends Convertor {
17823
18302
  }
17824
18303
  };
17825
18304
  var PgDeleteForeignKeyConvertor = class extends Convertor {
17826
- can(statement, dialect6) {
17827
- return statement.type === "delete_reference" && dialect6 === "pg";
18305
+ can(statement, dialect7) {
18306
+ return statement.type === "delete_reference" && dialect7 === "pg";
17828
18307
  }
17829
18308
  convert(statement) {
17830
18309
  const tableFrom = statement.tableName;
@@ -17834,8 +18313,8 @@ var PgDeleteForeignKeyConvertor = class extends Convertor {
17834
18313
  }
17835
18314
  };
17836
18315
  var SqliteDeleteForeignKeyConvertor = class extends Convertor {
17837
- can(statement, dialect6) {
17838
- return statement.type === "delete_reference" && dialect6 === "sqlite";
18316
+ can(statement, dialect7) {
18317
+ return statement.type === "delete_reference" && dialect7 === "sqlite";
17839
18318
  }
17840
18319
  convert(statement) {
17841
18320
  return `/*
@@ -17848,8 +18327,8 @@ var SqliteDeleteForeignKeyConvertor = class extends Convertor {
17848
18327
  }
17849
18328
  };
17850
18329
  var MySqlDeleteForeignKeyConvertor = class extends Convertor {
17851
- can(statement, dialect6) {
17852
- return statement.type === "delete_reference" && dialect6 === "mysql";
18330
+ can(statement, dialect7) {
18331
+ return statement.type === "delete_reference" && dialect7 === "mysql";
17853
18332
  }
17854
18333
  convert(statement) {
17855
18334
  const tableFrom = statement.tableName;
@@ -17859,8 +18338,8 @@ var MySqlDeleteForeignKeyConvertor = class extends Convertor {
17859
18338
  }
17860
18339
  };
17861
18340
  var CreatePgIndexConvertor = class extends Convertor {
17862
- can(statement, dialect6) {
17863
- return statement.type === "create_index" && dialect6 === "pg";
18341
+ can(statement, dialect7) {
18342
+ return statement.type === "create_index" && dialect7 === "pg";
17864
18343
  }
17865
18344
  convert(statement) {
17866
18345
  const { name, columns, isUnique } = PgSquasher.unsquashIdx(statement.data);
@@ -17870,8 +18349,8 @@ var CreatePgIndexConvertor = class extends Convertor {
17870
18349
  }
17871
18350
  };
17872
18351
  var CreateMySqlIndexConvertor = class extends Convertor {
17873
- can(statement, dialect6) {
17874
- return statement.type === "create_index" && dialect6 === "mysql";
18352
+ can(statement, dialect7) {
18353
+ return statement.type === "create_index" && dialect7 === "mysql";
17875
18354
  }
17876
18355
  convert(statement) {
17877
18356
  const { name, columns, isUnique } = PgSquasher.unsquashIdx(statement.data);
@@ -17881,8 +18360,8 @@ var CreateMySqlIndexConvertor = class extends Convertor {
17881
18360
  }
17882
18361
  };
17883
18362
  var CreateSqliteIndexConvertor = class extends Convertor {
17884
- can(statement, dialect6) {
17885
- return statement.type === "create_index" && dialect6 === "sqlite";
18363
+ can(statement, dialect7) {
18364
+ return statement.type === "create_index" && dialect7 === "sqlite";
17886
18365
  }
17887
18366
  convert(statement) {
17888
18367
  const { name, columns, isUnique, where } = SQLiteSquasher.unsquashIdx(
@@ -17895,8 +18374,8 @@ var CreateSqliteIndexConvertor = class extends Convertor {
17895
18374
  }
17896
18375
  };
17897
18376
  var PgDropIndexConvertor = class extends Convertor {
17898
- can(statement, dialect6) {
17899
- return statement.type === "drop_index" && dialect6 === "pg";
18377
+ can(statement, dialect7) {
18378
+ return statement.type === "drop_index" && dialect7 === "pg";
17900
18379
  }
17901
18380
  convert(statement) {
17902
18381
  const { name } = PgSquasher.unsquashIdx(statement.data);
@@ -17904,8 +18383,8 @@ var PgDropIndexConvertor = class extends Convertor {
17904
18383
  }
17905
18384
  };
17906
18385
  var SqliteDropIndexConvertor = class extends Convertor {
17907
- can(statement, dialect6) {
17908
- return statement.type === "drop_index" && dialect6 === "sqlite";
18386
+ can(statement, dialect7) {
18387
+ return statement.type === "drop_index" && dialect7 === "sqlite";
17909
18388
  }
17910
18389
  convert(statement) {
17911
18390
  const { name } = PgSquasher.unsquashIdx(statement.data);
@@ -17954,10 +18433,10 @@ convertors.push(new SqliteAlterTableAlterColumnSetNotNullConvertor());
17954
18433
  convertors.push(new SqliteAlterTableAlterColumnDropNotNullConvertor());
17955
18434
  convertors.push(new SqliteAlterTableAlterColumnSetDefaultConvertor());
17956
18435
  convertors.push(new SqliteAlterTableAlterColumnDropDefaultConvertor());
17957
- var fromJson = (statements, dialect6) => {
18436
+ var fromJson = (statements, dialect7) => {
17958
18437
  const result = statements.map((statement) => {
17959
18438
  const filtered = convertors.filter((it) => {
17960
- return it.can(statement, dialect6);
18439
+ return it.can(statement, dialect7);
17961
18440
  });
17962
18441
  const convertor = filtered.length === 1 ? filtered[0] : void 0;
17963
18442
  if (!convertor) {
@@ -18197,11 +18676,11 @@ var prepareRenameColumns = (tableName, pairs) => {
18197
18676
  };
18198
18677
  });
18199
18678
  };
18200
- var prepareAlterTableColumnsJson = (tableName, deleted, added, altered, addedFk, dialect6) => {
18679
+ var prepareAlterTableColumnsJson = (tableName, deleted, added, altered, addedFk, dialect7) => {
18201
18680
  const statements = [];
18202
18681
  const dropColumns = _prepareDropColumns(tableName, deleted);
18203
18682
  const alterColumns = _prepareAlterColumns(tableName, altered);
18204
- if (dialect6 === "sqlite") {
18683
+ if (dialect7 === "sqlite") {
18205
18684
  let jsonCreateFKStatements = Object.values(addedFk);
18206
18685
  const sqliteAddColumns = _prepareSQLiteAddColumns(
18207
18686
  tableName,
@@ -18390,13 +18869,13 @@ var mapValues = (obj, map) => {
18390
18869
  }, {});
18391
18870
  return result;
18392
18871
  };
18393
- var squashIndexesAndFKs = (json, dialect6 = "pg") => {
18872
+ var squashIndexesAndFKs = (json, dialect7 = "pg") => {
18394
18873
  const mappedTables = Object.fromEntries(
18395
18874
  Object.entries(json.tables).map((it) => {
18396
18875
  const squashedIndexes = mapValues(it[1].indexes, (index4) => {
18397
- if (dialect6 === "mysql") {
18876
+ if (dialect7 === "mysql") {
18398
18877
  return MySqlSquasher.squashIdx(index4);
18399
- } else if (dialect6 === "pg") {
18878
+ } else if (dialect7 === "pg") {
18400
18879
  return PgSquasher.squashIdx(index4);
18401
18880
  } else {
18402
18881
  return SQLiteSquasher.squashIdx(index4);
@@ -18404,9 +18883,9 @@ var squashIndexesAndFKs = (json, dialect6 = "pg") => {
18404
18883
  });
18405
18884
  const squashedFKs = mapValues(it[1].foreignKeys, (fk4) => {
18406
18885
  {
18407
- if (dialect6 === "mysql") {
18886
+ if (dialect7 === "mysql") {
18408
18887
  return MySqlSquasher.squashFK(fk4);
18409
- } else if (dialect6 === "pg") {
18888
+ } else if (dialect7 === "pg") {
18410
18889
  return PgSquasher.squashFK(fk4);
18411
18890
  } else {
18412
18891
  return SQLiteSquasher.squashFK(fk4);
@@ -18513,11 +18992,11 @@ var diffResultScheme = objectType({
18513
18992
  deletedEnums: enumSchema2.array(),
18514
18993
  alteredEnums: changedEnumSchema.array()
18515
18994
  }).strict();
18516
- var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, dialect6) => {
18995
+ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, dialect7) => {
18517
18996
  var _a, _b, _c, _d;
18518
18997
  const diffResult = applyJsonDiff(
18519
- squashIndexesAndFKs(json1, dialect6),
18520
- squashIndexesAndFKs(json2, dialect6)
18998
+ squashIndexesAndFKs(json1, dialect7),
18999
+ squashIndexesAndFKs(json2, dialect7)
18521
19000
  );
18522
19001
  if (Object.keys(diffResult).length === 0) {
18523
19002
  return "";
@@ -18583,7 +19062,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18583
19062
  it.added,
18584
19063
  it.altered,
18585
19064
  it.addedForeignKeys,
18586
- dialect6
19065
+ dialect7
18587
19066
  );
18588
19067
  }).flat();
18589
19068
  const jsonCreateIndexesForAllAlteredTables = allAltered.map((it) => {
@@ -18596,7 +19075,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18596
19075
  return prepareCreateReferencesJson(it.name, it.foreignKeys);
18597
19076
  }).flat();
18598
19077
  const jsonReferencesForAllAlteredTables = allAltered.map((it) => {
18599
- const forAdded = dialect6 !== "sqlite" ? prepareCreateReferencesJson(it.name, it.addedForeignKeys) : [];
19078
+ const forAdded = dialect7 !== "sqlite" ? prepareCreateReferencesJson(it.name, it.addedForeignKeys) : [];
18600
19079
  const forAltered = prepareDropReferencesJson(
18601
19080
  it.name,
18602
19081
  it.deletedForeignKeys
@@ -18613,7 +19092,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18613
19092
  }).flat()) != null ? _d : [];
18614
19093
  jsonStatements.push(...createEnums);
18615
19094
  jsonStatements.push(...jsonAlterEnumsWithAddedValues);
18616
- if (dialect6 === "sqlite") {
19095
+ if (dialect7 === "sqlite") {
18617
19096
  jsonStatements.push(...jsonSQLiteCreateTables);
18618
19097
  } else {
18619
19098
  jsonStatements.push(...jsonCreateTables);
@@ -18622,7 +19101,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18622
19101
  jsonStatements.push(...jsonRenameTables);
18623
19102
  jsonStatements.push(...jsonRenameColumnsStatements);
18624
19103
  jsonStatements.push(...jsonAlterTables);
18625
- if (dialect6 !== "sqlite")
19104
+ if (dialect7 !== "sqlite")
18626
19105
  jsonStatements.push(...jsonCreateReferences);
18627
19106
  jsonStatements.push(...jsonAlterReferencesForAlteredTables);
18628
19107
  jsonStatements.push(...jsonCreateIndexesForCreatedTables);
@@ -18635,7 +19114,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18635
19114
  // src/migrationPreparator.ts
18636
19115
  var import_hanji2 = __toESM(require_hanji());
18637
19116
 
18638
- // node_modules/.pnpm/chalk@5.1.2/node_modules/chalk/source/vendor/ansi-styles/index.js
19117
+ // node_modules/.pnpm/chalk@5.2.0/node_modules/chalk/source/vendor/ansi-styles/index.js
18639
19118
  var ANSI_BACKGROUND_OFFSET = 10;
18640
19119
  var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
18641
19120
  var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
@@ -18812,11 +19291,11 @@ function assembleStyles() {
18812
19291
  var ansiStyles = assembleStyles();
18813
19292
  var ansi_styles_default = ansiStyles;
18814
19293
 
18815
- // node_modules/.pnpm/chalk@5.1.2/node_modules/chalk/source/vendor/supports-color/index.js
19294
+ // node_modules/.pnpm/chalk@5.2.0/node_modules/chalk/source/vendor/supports-color/index.js
18816
19295
  var import_node_process = __toESM(require("process"), 1);
18817
19296
  var import_node_os = __toESM(require("os"), 1);
18818
19297
  var import_node_tty = __toESM(require("tty"), 1);
18819
- function hasFlag(flag, argv = import_node_process.default.argv) {
19298
+ function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : import_node_process.default.argv) {
18820
19299
  const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
18821
19300
  const position = argv.indexOf(prefix + flag);
18822
19301
  const terminatorPosition = argv.indexOf("--");
@@ -18868,6 +19347,9 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
18868
19347
  return 2;
18869
19348
  }
18870
19349
  }
19350
+ if ("TF_BUILD" in env && "AGENT_NAME" in env) {
19351
+ return 1;
19352
+ }
18871
19353
  if (haveStream && !streamIsTTY && forceColor === void 0) {
18872
19354
  return 0;
18873
19355
  }
@@ -18883,7 +19365,10 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
18883
19365
  return 1;
18884
19366
  }
18885
19367
  if ("CI" in env) {
18886
- if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
19368
+ if ("GITHUB_ACTIONS" in env) {
19369
+ return 3;
19370
+ }
19371
+ if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
18887
19372
  return 1;
18888
19373
  }
18889
19374
  return min;
@@ -18891,19 +19376,21 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
18891
19376
  if ("TEAMCITY_VERSION" in env) {
18892
19377
  return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
18893
19378
  }
18894
- if ("TF_BUILD" in env && "AGENT_NAME" in env) {
18895
- return 1;
18896
- }
18897
19379
  if (env.COLORTERM === "truecolor") {
18898
19380
  return 3;
18899
19381
  }
19382
+ if (env.TERM === "xterm-kitty") {
19383
+ return 3;
19384
+ }
18900
19385
  if ("TERM_PROGRAM" in env) {
18901
19386
  const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
18902
19387
  switch (env.TERM_PROGRAM) {
18903
- case "iTerm.app":
19388
+ case "iTerm.app": {
18904
19389
  return version >= 3 ? 3 : 2;
18905
- case "Apple_Terminal":
19390
+ }
19391
+ case "Apple_Terminal": {
18906
19392
  return 2;
19393
+ }
18907
19394
  }
18908
19395
  }
18909
19396
  if (/-256(color)?$/i.test(env.TERM)) {
@@ -18930,7 +19417,7 @@ var supportsColor = {
18930
19417
  };
18931
19418
  var supports_color_default = supportsColor;
18932
19419
 
18933
- // node_modules/.pnpm/chalk@5.1.2/node_modules/chalk/source/utilities.js
19420
+ // node_modules/.pnpm/chalk@5.2.0/node_modules/chalk/source/utilities.js
18934
19421
  function stringReplaceAll(string, substring, replacer) {
18935
19422
  let index4 = string.indexOf(substring);
18936
19423
  if (index4 === -1) {
@@ -18960,7 +19447,7 @@ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index4) {
18960
19447
  return returnValue;
18961
19448
  }
18962
19449
 
18963
- // node_modules/.pnpm/chalk@5.1.2/node_modules/chalk/source/index.js
19450
+ // node_modules/.pnpm/chalk@5.2.0/node_modules/chalk/source/index.js
18964
19451
  var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
18965
19452
  var GENERATOR = Symbol("GENERATOR");
18966
19453
  var STYLER = Symbol("STYLER");
@@ -19333,8 +19820,8 @@ var prepareMigration = (outFolder = "drizzle", schemaPath, _dialect) => {
19333
19820
  const serialized = serializer_default(schemaPath, _dialect);
19334
19821
  const id = (0, import_crypto.randomUUID)();
19335
19822
  const idPrev = prevSnapshot.id;
19336
- const { version, dialect: dialect6, ...rest } = serialized;
19337
- const result = { version, dialect: dialect6, id, prevId: idPrev, ...rest };
19823
+ const { version, dialect: dialect7, ...rest } = serialized;
19824
+ const result = { version, dialect: dialect7, id, prevId: idPrev, ...rest };
19338
19825
  return { prev: prevSnapshot, cur: result };
19339
19826
  };
19340
19827
  var migrationPreparator_default = prepareMigration;
@@ -19345,9 +19832,9 @@ var import_hanji3 = __toESM(require_hanji());
19345
19832
  var prepareAndMigrate = async (config) => {
19346
19833
  const outFolder = config.out;
19347
19834
  const schemaPath = config.schema;
19348
- const dialect6 = config.dialect;
19835
+ const dialect7 = config.dialect;
19349
19836
  try {
19350
- const { prev, cur } = migrationPreparator_default(outFolder, schemaPath, dialect6);
19837
+ const { prev, cur } = migrationPreparator_default(outFolder, schemaPath, dialect7);
19351
19838
  const toSave = JSON.parse(JSON.stringify(cur));
19352
19839
  const validatedPrev = commonSchema.parse(prev);
19353
19840
  const validatedCur = commonSchema.parse(cur);
@@ -19357,7 +19844,7 @@ var prepareAndMigrate = async (config) => {
19357
19844
  freeeeeeze(validatedPrev);
19358
19845
  freeeeeeze(validatedCur);
19359
19846
  console.log(schema4(cur));
19360
- const sql = await prepareSQL(validatedPrev, validatedCur, dialect6);
19847
+ const sql = await prepareSQL(validatedPrev, validatedCur, dialect7);
19361
19848
  if (sql.length === 0) {
19362
19849
  console.log("No schema changes, nothing to migrate \u{1F634}");
19363
19850
  return;
@@ -19386,7 +19873,7 @@ var freeeeeeze = (obj) => {
19386
19873
  }
19387
19874
  }
19388
19875
  };
19389
- var prepareSQL = async (prev, cur, dialect6) => {
19876
+ var prepareSQL = async (prev, cur, dialect7) => {
19390
19877
  const tablesResolver = async (input) => {
19391
19878
  try {
19392
19879
  const { created, deleted, renamed } = await promptTablesConflict(
@@ -19417,7 +19904,7 @@ var prepareSQL = async (prev, cur, dialect6) => {
19417
19904
  cur,
19418
19905
  tablesResolver,
19419
19906
  columnsResolver,
19420
- dialect6
19907
+ dialect7
19421
19908
  );
19422
19909
  };
19423
19910
  var promptColumnsConflicts = async (tableName, newColumns, missingColumns) => {
@@ -19527,7 +20014,7 @@ var import_fs6 = __toESM(require("fs"));
19527
20014
  // src/cli/commands/check.ts
19528
20015
  var import_fs4 = __toESM(require("fs"));
19529
20016
  var checkHandler = (config) => {
19530
- const { dialect: dialect6, out } = config;
20017
+ const { dialect: dialect7, out } = config;
19531
20018
  const outFolderExists = import_fs4.default.existsSync(out);
19532
20019
  if (!outFolderExists) {
19533
20020
  import_fs4.default.mkdirSync(out);
@@ -19571,7 +20058,7 @@ var import_crypto2 = require("crypto");
19571
20058
  var import_fs5 = __toESM(require("fs"));
19572
20059
  var import_path3 = __toESM(require("path"));
19573
20060
  var upHandler = (config) => {
19574
- const { dialect: dialect6, out } = config;
20061
+ const { dialect: dialect7, out } = config;
19575
20062
  const outFolderExists = import_fs5.default.existsSync(out);
19576
20063
  if (!outFolderExists) {
19577
20064
  import_fs5.default.mkdirSync(out);
@@ -19737,7 +20224,7 @@ var migrationCommand = new Command("generate").alias("migrate").option(
19737
20224
  await prepareAndMigrate(result);
19738
20225
  });
19739
20226
  var prepareGenerateConfig = (options) => {
19740
- const { schema: schema5, out, dialect: dialect6, config } = options;
20227
+ const { schema: schema5, out, dialect: dialect7, config } = options;
19741
20228
  if (!(schema5 || out)) {
19742
20229
  const path3 = config != null ? config : "drizzle.config.json";
19743
20230
  const drizzleConfig = JSON.parse(
@@ -19745,30 +20232,30 @@ var prepareGenerateConfig = (options) => {
19745
20232
  );
19746
20233
  return drizzleConfig;
19747
20234
  }
19748
- if (!schema5 || !dialect6) {
20235
+ if (!schema5 || !dialect7) {
19749
20236
  return new Error(`'schema' and 'dialect' param must be set`);
19750
20237
  }
19751
- return configSchema.parse({ schema: schema5, out, dialect: dialect6 });
20238
+ return configSchema.parse({ schema: schema5, out, dialect: dialect7 });
19752
20239
  };
19753
20240
  var checkSchema = objectType({
19754
20241
  dialect: stringType().default(""),
19755
20242
  out: stringType().default("drizzle")
19756
20243
  }).strict();
19757
20244
  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) {
20245
+ const { out, dialect: dialect7 } = checkSchema.parse(options);
20246
+ if (!out || !dialect7) {
19760
20247
  (0, import_hanji4.render)(error(`'out' folder and 'dialect' params must be set`));
19761
20248
  process.exit(0);
19762
20249
  }
19763
- checkHandler({ out, dialect: dialect6 });
20250
+ checkHandler({ out, dialect: dialect7 });
19764
20251
  });
19765
20252
  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) {
20253
+ const { out, dialect: dialect7 } = checkSchema.parse(options);
20254
+ if (!out || !dialect7) {
19768
20255
  (0, import_hanji4.render)(error(`'out' folder and 'dialect' params must be set`));
19769
20256
  process.exit(0);
19770
20257
  }
19771
- upHandler({ out, dialect: dialect6 });
20258
+ upHandler({ out, dialect: dialect7 });
19772
20259
  });
19773
20260
  program.addCommand(migrationCommand);
19774
20261
  program.addCommand(checkCommand);