drizzle-kit 0.12.18 → 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 +676 -190
  2. package/package.json +16 -16
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.15/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.15/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;
@@ -7379,12 +7384,14 @@ var pgSerializer_exports = {};
7379
7384
  __export(pgSerializer_exports, {
7380
7385
  generatePgSnapshot: () => generatePgSnapshot
7381
7386
  });
7382
- var import_utils, import_sql, import_table, generatePgSnapshot;
7387
+ var import_drizzle_orm_pg2, import_utils, import_sql, import_table, dialect4, generatePgSnapshot;
7383
7388
  var init_pgSerializer = __esm({
7384
7389
  "src/serializer/pgSerializer.ts"() {
7390
+ import_drizzle_orm_pg2 = require("drizzle-orm-pg");
7385
7391
  import_utils = require("drizzle-orm-pg/utils");
7386
7392
  import_sql = require("drizzle-orm/sql");
7387
7393
  import_table = require("drizzle-orm/table");
7394
+ dialect4 = new import_drizzle_orm_pg2.PgDialect();
7388
7395
  generatePgSnapshot = (tables, enums) => {
7389
7396
  const result = {};
7390
7397
  for (const table4 of tables) {
@@ -7439,9 +7446,15 @@ var init_pgSerializer = __esm({
7439
7446
  });
7440
7447
  (0, import_utils.getTableIndexes)(table4).forEach((value) => {
7441
7448
  var _a;
7442
- const columns = value.columns;
7443
- const name = value.name;
7444
- let indexColumns = columns.map((it) => it.name);
7449
+ const columns = value.config.columns;
7450
+ const name = value.config.name;
7451
+ let indexColumns = columns.map((it) => {
7452
+ if (it instanceof import_sql.SQL) {
7453
+ return dialect4.sqlToQuery(it).sql;
7454
+ } else {
7455
+ return it.name;
7456
+ }
7457
+ });
7445
7458
  indexesObject[name] = {
7446
7459
  name,
7447
7460
  columns: indexColumns,
@@ -7469,6 +7482,137 @@ var init_pgSerializer = __esm({
7469
7482
  }
7470
7483
  });
7471
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
+
7472
7616
  // src/serializer/sqliteImports.ts
7473
7617
  var sqliteImports_exports = {};
7474
7618
  __export(sqliteImports_exports, {
@@ -7500,22 +7644,22 @@ var sqliteSerializer_exports = {};
7500
7644
  __export(sqliteSerializer_exports, {
7501
7645
  generateSqliteSnapshot: () => generateSqliteSnapshot
7502
7646
  });
7503
- var import_table2, import_sql2, import_drizzle_orm_sqlite2, import_utils2, dialect4, generateSqliteSnapshot;
7647
+ var import_table3, import_sql3, import_drizzle_orm_sqlite2, import_utils3, dialect6, generateSqliteSnapshot;
7504
7648
  var init_sqliteSerializer = __esm({
7505
7649
  "src/serializer/sqliteSerializer.ts"() {
7506
- import_table2 = require("drizzle-orm/table");
7507
- import_sql2 = require("drizzle-orm/sql");
7650
+ import_table3 = require("drizzle-orm/table");
7651
+ import_sql3 = require("drizzle-orm/sql");
7508
7652
  import_drizzle_orm_sqlite2 = require("drizzle-orm-sqlite");
7509
- import_utils2 = require("drizzle-orm-sqlite/utils");
7510
- dialect4 = new import_drizzle_orm_sqlite2.SQLiteSyncDialect();
7653
+ import_utils3 = require("drizzle-orm-sqlite/utils");
7654
+ dialect6 = new import_drizzle_orm_sqlite2.SQLiteSyncDialect();
7511
7655
  generateSqliteSnapshot = (tables, enums) => {
7512
7656
  const result = {};
7513
7657
  for (const table4 of tables) {
7514
- const tableName = (0, import_table2.getTableName)(table4);
7658
+ const tableName = (0, import_table3.getTableName)(table4);
7515
7659
  const columnsObject = {};
7516
7660
  const indexesObject = {};
7517
7661
  const foreignKeysObject = {};
7518
- (0, import_utils2.getTableColumns)(table4).forEach((column4) => {
7662
+ (0, import_utils3.getTableColumns)(table4).forEach((column4) => {
7519
7663
  const notNull = column4.notNull;
7520
7664
  const primaryKey = column4.primary;
7521
7665
  const columnToSet = {
@@ -7525,7 +7669,7 @@ var init_sqliteSerializer = __esm({
7525
7669
  notNull
7526
7670
  };
7527
7671
  if (column4.default !== void 0) {
7528
- if (column4.default instanceof import_sql2.SQL) {
7672
+ if (column4.default instanceof import_sql3.SQL) {
7529
7673
  columnToSet.default = column4.default.queryChunks.map((it) => {
7530
7674
  if (typeof it === "string") {
7531
7675
  return `${it}`;
@@ -7541,14 +7685,14 @@ var init_sqliteSerializer = __esm({
7541
7685
  }
7542
7686
  columnsObject[column4.name] = columnToSet;
7543
7687
  });
7544
- const foreignKeys = (0, import_utils2.getTableForeignKeys)(table4).map((fk4) => {
7688
+ const foreignKeys = (0, import_utils3.getTableForeignKeys)(table4).map((fk4) => {
7545
7689
  const name = fk4.getName();
7546
7690
  const tableFrom = tableName;
7547
7691
  const onDelete = fk4.onDelete;
7548
7692
  const onUpdate = fk4.onUpdate;
7549
7693
  const reference = fk4.reference();
7550
7694
  const referenceFT = reference.foreignTable;
7551
- const tableTo = (0, import_table2.getTableName)(referenceFT);
7695
+ const tableTo = (0, import_table3.getTableName)(referenceFT);
7552
7696
  const columnsFrom = reference.columns.map((it) => it.name);
7553
7697
  const columnsTo = reference.foreignColumns.map((it) => it.name);
7554
7698
  return {
@@ -7564,21 +7708,21 @@ var init_sqliteSerializer = __esm({
7564
7708
  foreignKeys.forEach((it) => {
7565
7709
  foreignKeysObject[it.name] = it;
7566
7710
  });
7567
- (0, import_utils2.getTableIndexes)(table4).forEach((value) => {
7711
+ (0, import_utils3.getTableIndexes)(table4).forEach((value) => {
7568
7712
  var _a;
7569
7713
  const columns = value.config.columns;
7570
7714
  const name = value.config.name;
7571
7715
  let indexColumns = columns.map((it) => {
7572
- if (it instanceof import_sql2.SQL) {
7573
- return dialect4.sqlToQuery(it).sql;
7716
+ if (it instanceof import_sql3.SQL) {
7717
+ return dialect6.sqlToQuery(it).sql;
7574
7718
  } else {
7575
7719
  return it.name;
7576
7720
  }
7577
7721
  });
7578
7722
  let where = void 0;
7579
7723
  if (value.config.where !== void 0) {
7580
- if (value.config.where instanceof import_sql2.SQL) {
7581
- where = dialect4.sqlToQuery(value.config.where).sql;
7724
+ if (value.config.where instanceof import_sql3.SQL) {
7725
+ where = dialect6.sqlToQuery(value.config.where).sql;
7582
7726
  }
7583
7727
  }
7584
7728
  indexesObject[name] = {
@@ -14180,7 +14324,7 @@ var import_fs3 = __toESM(require("fs"));
14180
14324
  // src/migrationPreparator.ts
14181
14325
  var import_fs2 = __toESM(require("fs"));
14182
14326
 
14183
- // 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
14184
14328
  var util;
14185
14329
  (function(util2) {
14186
14330
  util2.assertEqual = (val) => val;
@@ -14276,6 +14420,8 @@ var getParsedType = (data) => {
14276
14420
  return ZodParsedType.function;
14277
14421
  case "bigint":
14278
14422
  return ZodParsedType.bigint;
14423
+ case "symbol":
14424
+ return ZodParsedType.symbol;
14279
14425
  case "object":
14280
14426
  if (Array.isArray(data)) {
14281
14427
  return ZodParsedType.array;
@@ -14315,7 +14461,8 @@ var ZodIssueCode = util.arrayToEnum([
14315
14461
  "too_small",
14316
14462
  "too_big",
14317
14463
  "invalid_intersection_types",
14318
- "not_multiple_of"
14464
+ "not_multiple_of",
14465
+ "not_finite"
14319
14466
  ]);
14320
14467
  var ZodError = class extends Error {
14321
14468
  constructor(issues) {
@@ -14456,25 +14603,25 @@ var errorMap = (issue, _ctx) => {
14456
14603
  break;
14457
14604
  case ZodIssueCode.too_small:
14458
14605
  if (issue.type === "array")
14459
- 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)`;
14460
14607
  else if (issue.type === "string")
14461
- 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)`;
14462
14609
  else if (issue.type === "number")
14463
- 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}`;
14464
14611
  else if (issue.type === "date")
14465
- 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)}`;
14466
14613
  else
14467
14614
  message = "Invalid input";
14468
14615
  break;
14469
14616
  case ZodIssueCode.too_big:
14470
14617
  if (issue.type === "array")
14471
- 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)`;
14472
14619
  else if (issue.type === "string")
14473
- 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)`;
14474
14621
  else if (issue.type === "number")
14475
- 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}`;
14476
14623
  else if (issue.type === "date")
14477
- 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)}`;
14478
14625
  else
14479
14626
  message = "Invalid input";
14480
14627
  break;
@@ -14487,6 +14634,9 @@ var errorMap = (issue, _ctx) => {
14487
14634
  case ZodIssueCode.not_multiple_of:
14488
14635
  message = `Number must be a multiple of ${issue.multipleOf}`;
14489
14636
  break;
14637
+ case ZodIssueCode.not_finite:
14638
+ message = "Number must be finite";
14639
+ break;
14490
14640
  default:
14491
14641
  message = _ctx.defaultError;
14492
14642
  util.assertNever(issue);
@@ -14584,6 +14734,7 @@ var ParseStatus = class {
14584
14734
  var INVALID = Object.freeze({
14585
14735
  status: "aborted"
14586
14736
  });
14737
+ var DIRTY = (value) => ({ status: "dirty", value });
14587
14738
  var OK = (value) => ({ status: "valid", value });
14588
14739
  var isAborted = (x) => x.status === "aborted";
14589
14740
  var isDirty = (x) => x.status === "dirty";
@@ -14638,7 +14789,6 @@ function processCreateParams(params) {
14638
14789
  var ZodType = class {
14639
14790
  constructor(def) {
14640
14791
  this.spa = this.safeParseAsync;
14641
- this.superRefine = this._refinement;
14642
14792
  this._def = def;
14643
14793
  this.parse = this.parse.bind(this);
14644
14794
  this.safeParse = this.safeParse.bind(this);
@@ -14656,8 +14806,11 @@ var ZodType = class {
14656
14806
  this.or = this.or.bind(this);
14657
14807
  this.and = this.and.bind(this);
14658
14808
  this.transform = this.transform.bind(this);
14809
+ this.brand = this.brand.bind(this);
14659
14810
  this.default = this.default.bind(this);
14811
+ this.catch = this.catch.bind(this);
14660
14812
  this.describe = this.describe.bind(this);
14813
+ this.pipe = this.pipe.bind(this);
14661
14814
  this.isNullable = this.isNullable.bind(this);
14662
14815
  this.isOptional = this.isOptional.bind(this);
14663
14816
  }
@@ -14743,7 +14896,7 @@ var ZodType = class {
14743
14896
  data,
14744
14897
  parsedType: getParsedType(data)
14745
14898
  };
14746
- const maybeAsyncResult = this._parse({ data, path: [], parent: ctx });
14899
+ const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });
14747
14900
  const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));
14748
14901
  return handleResult(ctx, result);
14749
14902
  }
@@ -14798,6 +14951,9 @@ var ZodType = class {
14798
14951
  effect: { type: "refinement", refinement }
14799
14952
  });
14800
14953
  }
14954
+ superRefine(refinement) {
14955
+ return this._refinement(refinement);
14956
+ }
14801
14957
  optional() {
14802
14958
  return ZodOptional.create(this);
14803
14959
  }
@@ -14841,6 +14997,14 @@ var ZodType = class {
14841
14997
  ...processCreateParams(void 0)
14842
14998
  });
14843
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
+ }
14844
15008
  describe(description) {
14845
15009
  const This = this.constructor;
14846
15010
  return new This({
@@ -14848,6 +15012,9 @@ var ZodType = class {
14848
15012
  description
14849
15013
  });
14850
15014
  }
15015
+ pipe(target) {
15016
+ return ZodPipeline.create(this, target);
15017
+ }
14851
15018
  isOptional() {
14852
15019
  return this.safeParse(void 0).success;
14853
15020
  }
@@ -14858,6 +15025,27 @@ var ZodType = class {
14858
15025
  var cuidRegex = /^c[^\s-]{8,}$/i;
14859
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;
14860
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
+ };
14861
15049
  var ZodString = class extends ZodType {
14862
15050
  constructor() {
14863
15051
  super(...arguments);
@@ -14873,6 +15061,9 @@ var ZodString = class extends ZodType {
14873
15061
  });
14874
15062
  }
14875
15063
  _parse(input) {
15064
+ if (this._def.coerce) {
15065
+ input.data = String(input.data);
15066
+ }
14876
15067
  const parsedType = this._getType(input);
14877
15068
  if (parsedType !== ZodParsedType.string) {
14878
15069
  const ctx2 = this._getOrReturnCtx(input);
@@ -14897,6 +15088,7 @@ var ZodString = class extends ZodType {
14897
15088
  minimum: check.value,
14898
15089
  type: "string",
14899
15090
  inclusive: true,
15091
+ exact: false,
14900
15092
  message: check.message
14901
15093
  });
14902
15094
  status.dirty();
@@ -14909,10 +15101,37 @@ var ZodString = class extends ZodType {
14909
15101
  maximum: check.value,
14910
15102
  type: "string",
14911
15103
  inclusive: true,
15104
+ exact: false,
14912
15105
  message: check.message
14913
15106
  });
14914
15107
  status.dirty();
14915
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
+ }
14916
15135
  } else if (check.kind === "email") {
14917
15136
  if (!emailRegex.test(input.data)) {
14918
15137
  ctx = this._getOrReturnCtx(input, ctx);
@@ -14989,6 +15208,17 @@ var ZodString = class extends ZodType {
14989
15208
  });
14990
15209
  status.dirty();
14991
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
+ }
14992
15222
  } else {
14993
15223
  util.assertNever(check);
14994
15224
  }
@@ -15013,6 +15243,23 @@ var ZodString = class extends ZodType {
15013
15243
  cuid(message) {
15014
15244
  return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) });
15015
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
+ }
15016
15263
  regex(regex, message) {
15017
15264
  return this._addCheck({
15018
15265
  kind: "regex",
@@ -15049,7 +15296,14 @@ var ZodString = class extends ZodType {
15049
15296
  });
15050
15297
  }
15051
15298
  length(len, message) {
15052
- 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");
15053
15307
  }
15054
15308
  get isEmail() {
15055
15309
  return !!this._def.checks.find((ch) => ch.kind === "email");
@@ -15085,9 +15339,11 @@ var ZodString = class extends ZodType {
15085
15339
  }
15086
15340
  };
15087
15341
  ZodString.create = (params) => {
15342
+ var _a;
15088
15343
  return new ZodString({
15089
15344
  checks: [],
15090
15345
  typeName: ZodFirstPartyTypeKind.ZodString,
15346
+ coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,
15091
15347
  ...processCreateParams(params)
15092
15348
  });
15093
15349
  };
@@ -15107,6 +15363,9 @@ var ZodNumber = class extends ZodType {
15107
15363
  this.step = this.multipleOf;
15108
15364
  }
15109
15365
  _parse(input) {
15366
+ if (this._def.coerce) {
15367
+ input.data = Number(input.data);
15368
+ }
15110
15369
  const parsedType = this._getType(input);
15111
15370
  if (parsedType !== ZodParsedType.number) {
15112
15371
  const ctx2 = this._getOrReturnCtx(input);
@@ -15140,6 +15399,7 @@ var ZodNumber = class extends ZodType {
15140
15399
  minimum: check.value,
15141
15400
  type: "number",
15142
15401
  inclusive: check.inclusive,
15402
+ exact: false,
15143
15403
  message: check.message
15144
15404
  });
15145
15405
  status.dirty();
@@ -15153,6 +15413,7 @@ var ZodNumber = class extends ZodType {
15153
15413
  maximum: check.value,
15154
15414
  type: "number",
15155
15415
  inclusive: check.inclusive,
15416
+ exact: false,
15156
15417
  message: check.message
15157
15418
  });
15158
15419
  status.dirty();
@@ -15167,6 +15428,15 @@ var ZodNumber = class extends ZodType {
15167
15428
  });
15168
15429
  status.dirty();
15169
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
+ }
15170
15440
  } else {
15171
15441
  util.assertNever(check);
15172
15442
  }
@@ -15250,6 +15520,12 @@ var ZodNumber = class extends ZodType {
15250
15520
  message: errorUtil.toString(message)
15251
15521
  });
15252
15522
  }
15523
+ finite(message) {
15524
+ return this._addCheck({
15525
+ kind: "finite",
15526
+ message: errorUtil.toString(message)
15527
+ });
15528
+ }
15253
15529
  get minValue() {
15254
15530
  let min = null;
15255
15531
  for (const ch of this._def.checks) {
@@ -15278,11 +15554,15 @@ ZodNumber.create = (params) => {
15278
15554
  return new ZodNumber({
15279
15555
  checks: [],
15280
15556
  typeName: ZodFirstPartyTypeKind.ZodNumber,
15557
+ coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
15281
15558
  ...processCreateParams(params)
15282
15559
  });
15283
15560
  };
15284
15561
  var ZodBigInt = class extends ZodType {
15285
15562
  _parse(input) {
15563
+ if (this._def.coerce) {
15564
+ input.data = BigInt(input.data);
15565
+ }
15286
15566
  const parsedType = this._getType(input);
15287
15567
  if (parsedType !== ZodParsedType.bigint) {
15288
15568
  const ctx = this._getOrReturnCtx(input);
@@ -15297,13 +15577,18 @@ var ZodBigInt = class extends ZodType {
15297
15577
  }
15298
15578
  };
15299
15579
  ZodBigInt.create = (params) => {
15580
+ var _a;
15300
15581
  return new ZodBigInt({
15301
15582
  typeName: ZodFirstPartyTypeKind.ZodBigInt,
15583
+ coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,
15302
15584
  ...processCreateParams(params)
15303
15585
  });
15304
15586
  };
15305
15587
  var ZodBoolean = class extends ZodType {
15306
15588
  _parse(input) {
15589
+ if (this._def.coerce) {
15590
+ input.data = Boolean(input.data);
15591
+ }
15307
15592
  const parsedType = this._getType(input);
15308
15593
  if (parsedType !== ZodParsedType.boolean) {
15309
15594
  const ctx = this._getOrReturnCtx(input);
@@ -15320,11 +15605,15 @@ var ZodBoolean = class extends ZodType {
15320
15605
  ZodBoolean.create = (params) => {
15321
15606
  return new ZodBoolean({
15322
15607
  typeName: ZodFirstPartyTypeKind.ZodBoolean,
15608
+ coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
15323
15609
  ...processCreateParams(params)
15324
15610
  });
15325
15611
  };
15326
15612
  var ZodDate = class extends ZodType {
15327
15613
  _parse(input) {
15614
+ if (this._def.coerce) {
15615
+ input.data = new Date(input.data);
15616
+ }
15328
15617
  const parsedType = this._getType(input);
15329
15618
  if (parsedType !== ZodParsedType.date) {
15330
15619
  const ctx2 = this._getOrReturnCtx(input);
@@ -15352,6 +15641,7 @@ var ZodDate = class extends ZodType {
15352
15641
  code: ZodIssueCode.too_small,
15353
15642
  message: check.message,
15354
15643
  inclusive: true,
15644
+ exact: false,
15355
15645
  minimum: check.value,
15356
15646
  type: "date"
15357
15647
  });
@@ -15364,6 +15654,7 @@ var ZodDate = class extends ZodType {
15364
15654
  code: ZodIssueCode.too_big,
15365
15655
  message: check.message,
15366
15656
  inclusive: true,
15657
+ exact: false,
15367
15658
  maximum: check.value,
15368
15659
  type: "date"
15369
15660
  });
@@ -15422,10 +15713,32 @@ var ZodDate = class extends ZodType {
15422
15713
  ZodDate.create = (params) => {
15423
15714
  return new ZodDate({
15424
15715
  checks: [],
15716
+ coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
15425
15717
  typeName: ZodFirstPartyTypeKind.ZodDate,
15426
15718
  ...processCreateParams(params)
15427
15719
  });
15428
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
+ };
15429
15742
  var ZodUndefined = class extends ZodType {
15430
15743
  _parse(input) {
15431
15744
  const parsedType = this._getType(input);
@@ -15548,6 +15861,22 @@ var ZodArray = class extends ZodType {
15548
15861
  });
15549
15862
  return INVALID;
15550
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
+ }
15551
15880
  if (def.minLength !== null) {
15552
15881
  if (ctx.data.length < def.minLength.value) {
15553
15882
  addIssueToContext(ctx, {
@@ -15555,6 +15884,7 @@ var ZodArray = class extends ZodType {
15555
15884
  minimum: def.minLength.value,
15556
15885
  type: "array",
15557
15886
  inclusive: true,
15887
+ exact: false,
15558
15888
  message: def.minLength.message
15559
15889
  });
15560
15890
  status.dirty();
@@ -15567,6 +15897,7 @@ var ZodArray = class extends ZodType {
15567
15897
  maximum: def.maxLength.value,
15568
15898
  type: "array",
15569
15899
  inclusive: true,
15900
+ exact: false,
15570
15901
  message: def.maxLength.message
15571
15902
  });
15572
15903
  status.dirty();
@@ -15600,7 +15931,10 @@ var ZodArray = class extends ZodType {
15600
15931
  });
15601
15932
  }
15602
15933
  length(len, message) {
15603
- return this.min(len, message).max(len, message);
15934
+ return new ZodArray({
15935
+ ...this._def,
15936
+ exactLength: { value: len, message: errorUtil.toString(message) }
15937
+ });
15604
15938
  }
15605
15939
  nonempty(message) {
15606
15940
  return this.min(1, message);
@@ -15611,6 +15945,7 @@ ZodArray.create = (schema5, params) => {
15611
15945
  type: schema5,
15612
15946
  minLength: null,
15613
15947
  maxLength: null,
15948
+ exactLength: null,
15614
15949
  typeName: ZodFirstPartyTypeKind.ZodArray,
15615
15950
  ...processCreateParams(params)
15616
15951
  });
@@ -15860,15 +16195,30 @@ var ZodObject = class extends ZodType {
15860
16195
  shape: () => newShape
15861
16196
  });
15862
16197
  }
15863
- required() {
16198
+ required(mask) {
15864
16199
  const newShape = {};
15865
- for (const key in this.shape) {
15866
- const fieldSchema = this.shape[key];
15867
- let newField = fieldSchema;
15868
- while (newField instanceof ZodOptional) {
15869
- 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;
15870
16221
  }
15871
- newShape[key] = newField;
15872
16222
  }
15873
16223
  return new ZodObject({
15874
16224
  ...this._def,
@@ -15997,6 +16347,27 @@ ZodUnion.create = (types, params) => {
15997
16347
  ...processCreateParams(params)
15998
16348
  });
15999
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
+ };
16000
16371
  var ZodDiscriminatedUnion = class extends ZodType {
16001
16372
  _parse(input) {
16002
16373
  const { ctx } = this._processInputParams(input);
@@ -16010,11 +16381,11 @@ var ZodDiscriminatedUnion = class extends ZodType {
16010
16381
  }
16011
16382
  const discriminator = this.discriminator;
16012
16383
  const discriminatorValue = ctx.data[discriminator];
16013
- const option = this.options.get(discriminatorValue);
16384
+ const option = this.optionsMap.get(discriminatorValue);
16014
16385
  if (!option) {
16015
16386
  addIssueToContext(ctx, {
16016
16387
  code: ZodIssueCode.invalid_union_discriminator,
16017
- options: this.validDiscriminatorValues,
16388
+ options: Array.from(this.optionsMap.keys()),
16018
16389
  path: [discriminator]
16019
16390
  });
16020
16391
  return INVALID;
@@ -16036,29 +16407,31 @@ var ZodDiscriminatedUnion = class extends ZodType {
16036
16407
  get discriminator() {
16037
16408
  return this._def.discriminator;
16038
16409
  }
16039
- get validDiscriminatorValues() {
16040
- return Array.from(this.options.keys());
16041
- }
16042
16410
  get options() {
16043
16411
  return this._def.options;
16044
16412
  }
16045
- static create(discriminator, types, params) {
16046
- const options = /* @__PURE__ */ new Map();
16047
- try {
16048
- types.forEach((type) => {
16049
- const discriminatorValue = type.shape[discriminator].value;
16050
- options.set(discriminatorValue, type);
16051
- });
16052
- } catch (e) {
16053
- throw new Error("The discriminator value could not be extracted from all the provided schemas");
16054
- }
16055
- if (options.size !== types.length) {
16056
- 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
+ }
16057
16429
  }
16058
16430
  return new ZodDiscriminatedUnion({
16059
16431
  typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,
16060
16432
  discriminator,
16061
16433
  options,
16434
+ optionsMap,
16062
16435
  ...processCreateParams(params)
16063
16436
  });
16064
16437
  }
@@ -16170,6 +16543,7 @@ var ZodTuple = class extends ZodType {
16170
16543
  code: ZodIssueCode.too_small,
16171
16544
  minimum: this._def.items.length,
16172
16545
  inclusive: true,
16546
+ exact: false,
16173
16547
  type: "array"
16174
16548
  });
16175
16549
  return INVALID;
@@ -16180,6 +16554,7 @@ var ZodTuple = class extends ZodType {
16180
16554
  code: ZodIssueCode.too_big,
16181
16555
  maximum: this._def.items.length,
16182
16556
  inclusive: true,
16557
+ exact: false,
16183
16558
  type: "array"
16184
16559
  });
16185
16560
  status.dirty();
@@ -16350,6 +16725,7 @@ var ZodSet = class extends ZodType {
16350
16725
  minimum: def.minSize.value,
16351
16726
  type: "set",
16352
16727
  inclusive: true,
16728
+ exact: false,
16353
16729
  message: def.minSize.message
16354
16730
  });
16355
16731
  status.dirty();
@@ -16362,6 +16738,7 @@ var ZodSet = class extends ZodType {
16362
16738
  maximum: def.maxSize.value,
16363
16739
  type: "set",
16364
16740
  inclusive: true,
16741
+ exact: false,
16365
16742
  message: def.maxSize.message
16366
16743
  });
16367
16744
  status.dirty();
@@ -16690,6 +17067,9 @@ var ZodEffects = class extends ZodType {
16690
17067
  innerType() {
16691
17068
  return this._def.schema;
16692
17069
  }
17070
+ sourceType() {
17071
+ return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema;
17072
+ }
16693
17073
  _parse(input) {
16694
17074
  const { status, ctx } = this._processInputParams(input);
16695
17075
  const effect = this._def.effect || null;
@@ -16857,9 +17237,44 @@ var ZodDefault = class extends ZodType {
16857
17237
  }
16858
17238
  };
16859
17239
  ZodDefault.create = (type, params) => {
16860
- return new ZodOptional({
17240
+ return new ZodDefault({
16861
17241
  innerType: type,
16862
- 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,
16863
17278
  ...processCreateParams(params)
16864
17279
  });
16865
17280
  };
@@ -16899,6 +17314,61 @@ var ZodBranded = class extends ZodType {
16899
17314
  return this._def.type;
16900
17315
  }
16901
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
+ };
16902
17372
  var late = {
16903
17373
  object: ZodObject.lazycreate
16904
17374
  };
@@ -16910,6 +17380,7 @@ var ZodFirstPartyTypeKind;
16910
17380
  ZodFirstPartyTypeKind2["ZodBigInt"] = "ZodBigInt";
16911
17381
  ZodFirstPartyTypeKind2["ZodBoolean"] = "ZodBoolean";
16912
17382
  ZodFirstPartyTypeKind2["ZodDate"] = "ZodDate";
17383
+ ZodFirstPartyTypeKind2["ZodSymbol"] = "ZodSymbol";
16913
17384
  ZodFirstPartyTypeKind2["ZodUndefined"] = "ZodUndefined";
16914
17385
  ZodFirstPartyTypeKind2["ZodNull"] = "ZodNull";
16915
17386
  ZodFirstPartyTypeKind2["ZodAny"] = "ZodAny";
@@ -16934,8 +17405,10 @@ var ZodFirstPartyTypeKind;
16934
17405
  ZodFirstPartyTypeKind2["ZodOptional"] = "ZodOptional";
16935
17406
  ZodFirstPartyTypeKind2["ZodNullable"] = "ZodNullable";
16936
17407
  ZodFirstPartyTypeKind2["ZodDefault"] = "ZodDefault";
17408
+ ZodFirstPartyTypeKind2["ZodCatch"] = "ZodCatch";
16937
17409
  ZodFirstPartyTypeKind2["ZodPromise"] = "ZodPromise";
16938
17410
  ZodFirstPartyTypeKind2["ZodBranded"] = "ZodBranded";
17411
+ ZodFirstPartyTypeKind2["ZodPipeline"] = "ZodPipeline";
16939
17412
  })(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
16940
17413
  var stringType = ZodString.create;
16941
17414
  var numberType = ZodNumber.create;
@@ -16943,6 +17416,7 @@ var nanType = ZodNaN.create;
16943
17416
  var bigIntType = ZodBigInt.create;
16944
17417
  var booleanType = ZodBoolean.create;
16945
17418
  var dateType = ZodDate.create;
17419
+ var symbolType = ZodSymbol.create;
16946
17420
  var undefinedType = ZodUndefined.create;
16947
17421
  var nullType = ZodNull.create;
16948
17422
  var anyType = ZodAny.create;
@@ -16969,6 +17443,7 @@ var effectsType = ZodEffects.create;
16969
17443
  var optionalType = ZodOptional.create;
16970
17444
  var nullableType = ZodNullable.create;
16971
17445
  var preprocessType = ZodEffects.createWithPreprocess;
17446
+ var pipelineType = ZodPipeline.create;
16972
17447
 
16973
17448
  // src/serializer/mysqlSchema.ts
16974
17449
  var index = objectType({
@@ -17327,23 +17802,26 @@ var import_crypto = require("crypto");
17327
17802
  var import_fs = __toESM(require("fs"));
17328
17803
  var import_node = __toESM(require_node2());
17329
17804
  var import_path = __toESM(require("path"));
17330
- var serialize = (path3, dialect5) => {
17805
+ var serialize = (path3, dialect7) => {
17331
17806
  const fileName = import_fs.default.lstatSync(path3).isDirectory() ? null : import_path.default.resolve(path3);
17332
17807
  const filenames = fileName ? [fileName] : import_fs.default.readdirSync(path3).map((it) => import_path.default.join(import_path.default.resolve(path3), it));
17333
17808
  const { unregister } = (0, import_node.register)({
17334
17809
  target: "node14",
17335
17810
  loader: "ts"
17336
17811
  });
17337
- if (dialect5 === "pg") {
17812
+ if (dialect7 === "pg") {
17338
17813
  const { prepareFromPgImports: prepareFromPgImports2 } = (init_pgImports(), __toCommonJS(pgImports_exports));
17339
17814
  const { generatePgSnapshot: generatePgSnapshot2 } = (init_pgSerializer(), __toCommonJS(pgSerializer_exports));
17340
17815
  const { tables, enums } = prepareFromPgImports2(filenames);
17341
17816
  unregister();
17342
17817
  return generatePgSnapshot2(tables, enums);
17343
- } else if (dialect5 === "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);
17344
17822
  unregister();
17345
- return {};
17346
- } else if (dialect5 === "sqlite") {
17823
+ return generateMySqlSnapshot2(tables, enums);
17824
+ } else if (dialect7 === "sqlite") {
17347
17825
  const { prepareFromSqliteImports: prepareFromSqliteImports2 } = (init_sqliteImports(), __toCommonJS(sqliteImports_exports));
17348
17826
  const { generateSqliteSnapshot: generateSqliteSnapshot2 } = (init_sqliteSerializer(), __toCommonJS(sqliteSerializer_exports));
17349
17827
  const { tables, enums } = prepareFromSqliteImports2(filenames);
@@ -17360,8 +17838,8 @@ var serializer_default = serialize;
17360
17838
  var Convertor = class {
17361
17839
  };
17362
17840
  var PgCreateTableConvertor = class extends Convertor {
17363
- can(statement, dialect5) {
17364
- return statement.type === "create_table" && dialect5 === "pg";
17841
+ can(statement, dialect7) {
17842
+ return statement.type === "create_table" && dialect7 === "pg";
17365
17843
  }
17366
17844
  convert(st) {
17367
17845
  const { tableName, columns } = st;
@@ -17383,8 +17861,8 @@ var PgCreateTableConvertor = class extends Convertor {
17383
17861
  }
17384
17862
  };
17385
17863
  var MySqlCreateTableConvertor = class extends Convertor {
17386
- can(statement, dialect5) {
17387
- return statement.type === "create_table" && dialect5 === "mysql";
17864
+ can(statement, dialect7) {
17865
+ return statement.type === "create_table" && dialect7 === "mysql";
17388
17866
  }
17389
17867
  convert(st) {
17390
17868
  const { tableName, columns } = st;
@@ -17407,8 +17885,8 @@ var MySqlCreateTableConvertor = class extends Convertor {
17407
17885
  }
17408
17886
  };
17409
17887
  var SQLiteCreateTableConvertor = class extends Convertor {
17410
- can(statement, dialect5) {
17411
- return statement.type === "sqlite_create_table" && dialect5 === "sqlite";
17888
+ can(statement, dialect7) {
17889
+ return statement.type === "sqlite_create_table" && dialect7 === "sqlite";
17412
17890
  }
17413
17891
  convert(st) {
17414
17892
  const { tableName, columns, referenceData } = st;
@@ -17489,8 +17967,8 @@ var DropTableConvertor = class extends Convertor {
17489
17967
  }
17490
17968
  };
17491
17969
  var PgRenameTableConvertor = class extends Convertor {
17492
- can(statement, dialect5) {
17493
- return statement.type === "rename_table" && dialect5 === "pg";
17970
+ can(statement, dialect7) {
17971
+ return statement.type === "rename_table" && dialect7 === "pg";
17494
17972
  }
17495
17973
  convert(statement) {
17496
17974
  const { tableNameFrom, tableNameTo } = statement;
@@ -17498,8 +17976,8 @@ var PgRenameTableConvertor = class extends Convertor {
17498
17976
  }
17499
17977
  };
17500
17978
  var SqliteRenameTableConvertor = class extends Convertor {
17501
- can(statement, dialect5) {
17502
- return statement.type === "rename_table" && dialect5 === "sqlite";
17979
+ can(statement, dialect7) {
17980
+ return statement.type === "rename_table" && dialect7 === "sqlite";
17503
17981
  }
17504
17982
  convert(statement) {
17505
17983
  const { tableNameFrom, tableNameTo } = statement;
@@ -17507,8 +17985,8 @@ var SqliteRenameTableConvertor = class extends Convertor {
17507
17985
  }
17508
17986
  };
17509
17987
  var MySqlRenameTableConvertor = class extends Convertor {
17510
- can(statement, dialect5) {
17511
- return statement.type === "rename_table" && dialect5 === "mysql";
17988
+ can(statement, dialect7) {
17989
+ return statement.type === "rename_table" && dialect7 === "mysql";
17512
17990
  }
17513
17991
  convert(statement) {
17514
17992
  const { tableNameFrom, tableNameTo } = statement;
@@ -17516,8 +17994,8 @@ var MySqlRenameTableConvertor = class extends Convertor {
17516
17994
  }
17517
17995
  };
17518
17996
  var PgAlterTableRenameColumnConvertor = class extends Convertor {
17519
- can(statement, dialect5) {
17520
- return statement.type === "alter_table_rename_column" && dialect5 === "pg";
17997
+ can(statement, dialect7) {
17998
+ return statement.type === "alter_table_rename_column" && dialect7 === "pg";
17521
17999
  }
17522
18000
  convert(statement) {
17523
18001
  const { tableName, oldColumnName, newColumnName } = statement;
@@ -17525,8 +18003,8 @@ var PgAlterTableRenameColumnConvertor = class extends Convertor {
17525
18003
  }
17526
18004
  };
17527
18005
  var MySqlAlterTableRenameColumnConvertor = class extends Convertor {
17528
- can(statement, dialect5) {
17529
- return statement.type === "alter_table_rename_column" && dialect5 === "mysql";
18006
+ can(statement, dialect7) {
18007
+ return statement.type === "alter_table_rename_column" && dialect7 === "mysql";
17530
18008
  }
17531
18009
  convert(statement) {
17532
18010
  const { tableName, oldColumnName, newColumnName } = statement;
@@ -17534,8 +18012,8 @@ var MySqlAlterTableRenameColumnConvertor = class extends Convertor {
17534
18012
  }
17535
18013
  };
17536
18014
  var SQLiteAlterTableRenameColumnConvertor = class extends Convertor {
17537
- can(statement, dialect5) {
17538
- return statement.type === "alter_table_rename_column" && dialect5 === "sqlite";
18015
+ can(statement, dialect7) {
18016
+ return statement.type === "alter_table_rename_column" && dialect7 === "sqlite";
17539
18017
  }
17540
18018
  convert(statement) {
17541
18019
  const { tableName, oldColumnName, newColumnName } = statement;
@@ -17543,8 +18021,8 @@ var SQLiteAlterTableRenameColumnConvertor = class extends Convertor {
17543
18021
  }
17544
18022
  };
17545
18023
  var PgAlterTableDropColumnConvertor = class extends Convertor {
17546
- can(statement, dialect5) {
17547
- return statement.type === "alter_table_drop_column" && dialect5 === "pg";
18024
+ can(statement, dialect7) {
18025
+ return statement.type === "alter_table_drop_column" && dialect7 === "pg";
17548
18026
  }
17549
18027
  convert(statement) {
17550
18028
  const { tableName, columnName } = statement;
@@ -17552,8 +18030,8 @@ var PgAlterTableDropColumnConvertor = class extends Convertor {
17552
18030
  }
17553
18031
  };
17554
18032
  var MySqlAlterTableDropColumnConvertor = class extends Convertor {
17555
- can(statement, dialect5) {
17556
- return statement.type === "alter_table_drop_column" && dialect5 === "mysql";
18033
+ can(statement, dialect7) {
18034
+ return statement.type === "alter_table_drop_column" && dialect7 === "mysql";
17557
18035
  }
17558
18036
  convert(statement) {
17559
18037
  const { tableName, columnName } = statement;
@@ -17561,8 +18039,8 @@ var MySqlAlterTableDropColumnConvertor = class extends Convertor {
17561
18039
  }
17562
18040
  };
17563
18041
  var SQLiteAlterTableDropColumnConvertor = class extends Convertor {
17564
- can(statement, dialect5) {
17565
- return statement.type === "alter_table_drop_column" && dialect5 === "sqlite";
18042
+ can(statement, dialect7) {
18043
+ return statement.type === "alter_table_drop_column" && dialect7 === "sqlite";
17566
18044
  }
17567
18045
  convert(statement) {
17568
18046
  const { tableName, columnName } = statement;
@@ -17570,8 +18048,8 @@ var SQLiteAlterTableDropColumnConvertor = class extends Convertor {
17570
18048
  }
17571
18049
  };
17572
18050
  var PgAlterTableAddColumnConvertor = class extends Convertor {
17573
- can(statement, dialect5) {
17574
- return statement.type === "alter_table_add_column" && dialect5 === "pg";
18051
+ can(statement, dialect7) {
18052
+ return statement.type === "alter_table_add_column" && dialect7 === "pg";
17575
18053
  }
17576
18054
  convert(statement) {
17577
18055
  const { tableName, column: column4 } = statement;
@@ -17582,8 +18060,8 @@ var PgAlterTableAddColumnConvertor = class extends Convertor {
17582
18060
  }
17583
18061
  };
17584
18062
  var MySqlAlterTableAddColumnConvertor = class extends Convertor {
17585
- can(statement, dialect5) {
17586
- return statement.type === "alter_table_add_column" && dialect5 === "mysql";
18063
+ can(statement, dialect7) {
18064
+ return statement.type === "alter_table_add_column" && dialect7 === "mysql";
17587
18065
  }
17588
18066
  convert(statement) {
17589
18067
  const { tableName, column: column4 } = statement;
@@ -17596,8 +18074,8 @@ var MySqlAlterTableAddColumnConvertor = class extends Convertor {
17596
18074
  }
17597
18075
  };
17598
18076
  var SQLiteAlterTableAddColumnConvertor = class extends Convertor {
17599
- can(statement, dialect5) {
17600
- return statement.type === "sqlite_alter_table_add_column" && dialect5 === "sqlite";
18077
+ can(statement, dialect7) {
18078
+ return statement.type === "sqlite_alter_table_add_column" && dialect7 === "sqlite";
17601
18079
  }
17602
18080
  convert(statement) {
17603
18081
  const { tableName, column: column4, referenceData } = statement;
@@ -17611,8 +18089,8 @@ var SQLiteAlterTableAddColumnConvertor = class extends Convertor {
17611
18089
  }
17612
18090
  };
17613
18091
  var PgAlterTableAlterColumnSetTypeConvertor = class extends Convertor {
17614
- can(statement, dialect5) {
17615
- return statement.type === "alter_table_alter_column_set_type" && dialect5 === "pg";
18092
+ can(statement, dialect7) {
18093
+ return statement.type === "alter_table_alter_column_set_type" && dialect7 === "pg";
17616
18094
  }
17617
18095
  convert(statement) {
17618
18096
  const { tableName, columnName, newDataType } = statement;
@@ -17620,8 +18098,8 @@ var PgAlterTableAlterColumnSetTypeConvertor = class extends Convertor {
17620
18098
  }
17621
18099
  };
17622
18100
  var SQLiteAlterTableAlterColumnSetTypeConvertor = class extends Convertor {
17623
- can(statement, dialect5) {
17624
- return statement.type === "alter_table_alter_column_set_type" && dialect5 === "sqlite";
18101
+ can(statement, dialect7) {
18102
+ return statement.type === "alter_table_alter_column_set_type" && dialect7 === "sqlite";
17625
18103
  }
17626
18104
  convert(statement) {
17627
18105
  return `/*
@@ -17635,8 +18113,8 @@ var SQLiteAlterTableAlterColumnSetTypeConvertor = class extends Convertor {
17635
18113
  }
17636
18114
  };
17637
18115
  var PgAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
17638
- can(statement, dialect5) {
17639
- return statement.type === "alter_table_alter_column_set_default" && dialect5 === "pg";
18116
+ can(statement, dialect7) {
18117
+ return statement.type === "alter_table_alter_column_set_default" && dialect7 === "pg";
17640
18118
  }
17641
18119
  convert(statement) {
17642
18120
  const { tableName, columnName } = statement;
@@ -17644,8 +18122,8 @@ var PgAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
17644
18122
  }
17645
18123
  };
17646
18124
  var SqliteAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
17647
- can(statement, dialect5) {
17648
- return statement.type === "alter_table_alter_column_set_default" && dialect5 === "sqlite";
18125
+ can(statement, dialect7) {
18126
+ return statement.type === "alter_table_alter_column_set_default" && dialect7 === "sqlite";
17649
18127
  }
17650
18128
  convert(statement) {
17651
18129
  return `/*
@@ -17659,8 +18137,8 @@ var SqliteAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
17659
18137
  }
17660
18138
  };
17661
18139
  var PgAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
17662
- can(statement, dialect5) {
17663
- return statement.type === "alter_table_alter_column_drop_default" && dialect5 === "pg";
18140
+ can(statement, dialect7) {
18141
+ return statement.type === "alter_table_alter_column_drop_default" && dialect7 === "pg";
17664
18142
  }
17665
18143
  convert(statement) {
17666
18144
  const { tableName, columnName } = statement;
@@ -17668,8 +18146,8 @@ var PgAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
17668
18146
  }
17669
18147
  };
17670
18148
  var SqliteAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
17671
- can(statement, dialect5) {
17672
- return statement.type === "alter_table_alter_column_drop_default" && dialect5 === "sqlite";
18149
+ can(statement, dialect7) {
18150
+ return statement.type === "alter_table_alter_column_drop_default" && dialect7 === "sqlite";
17673
18151
  }
17674
18152
  convert(statement) {
17675
18153
  return `/*
@@ -17683,8 +18161,8 @@ var SqliteAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
17683
18161
  }
17684
18162
  };
17685
18163
  var PgAlterTableAlterColumnSetNotNullConvertor = class extends Convertor {
17686
- can(statement, dialect5) {
17687
- return statement.type === "alter_table_alter_column_set_notnull" && dialect5 === "pg";
18164
+ can(statement, dialect7) {
18165
+ return statement.type === "alter_table_alter_column_set_notnull" && dialect7 === "pg";
17688
18166
  }
17689
18167
  convert(statement) {
17690
18168
  const { tableName, columnName } = statement;
@@ -17692,8 +18170,8 @@ var PgAlterTableAlterColumnSetNotNullConvertor = class extends Convertor {
17692
18170
  }
17693
18171
  };
17694
18172
  var SqliteAlterTableAlterColumnSetNotNullConvertor = class extends Convertor {
17695
- can(statement, dialect5) {
17696
- return statement.type === "alter_table_alter_column_set_notnull" && dialect5 === "sqlite";
18173
+ can(statement, dialect7) {
18174
+ return statement.type === "alter_table_alter_column_set_notnull" && dialect7 === "sqlite";
17697
18175
  }
17698
18176
  convert(statement) {
17699
18177
  return `/*
@@ -17707,8 +18185,8 @@ var SqliteAlterTableAlterColumnSetNotNullConvertor = class extends Convertor {
17707
18185
  }
17708
18186
  };
17709
18187
  var PgAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
17710
- can(statement, dialect5) {
17711
- return statement.type === "alter_table_alter_column_drop_notnull" && dialect5 === "pg";
18188
+ can(statement, dialect7) {
18189
+ return statement.type === "alter_table_alter_column_drop_notnull" && dialect7 === "pg";
17712
18190
  }
17713
18191
  convert(statement) {
17714
18192
  const { tableName, columnName } = statement;
@@ -17716,8 +18194,8 @@ var PgAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
17716
18194
  }
17717
18195
  };
17718
18196
  var SqliteAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
17719
- can(statement, dialect5) {
17720
- return statement.type === "alter_table_alter_column_drop_notnull" && dialect5 === "sqlite";
18197
+ can(statement, dialect7) {
18198
+ return statement.type === "alter_table_alter_column_drop_notnull" && dialect7 === "sqlite";
17721
18199
  }
17722
18200
  convert(statement) {
17723
18201
  return `/*
@@ -17731,8 +18209,8 @@ var SqliteAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
17731
18209
  }
17732
18210
  };
17733
18211
  var PgCreateForeignKeyConvertor = class extends Convertor {
17734
- can(statement, dialect5) {
17735
- return statement.type === "create_reference" && dialect5 === "pg";
18212
+ can(statement, dialect7) {
18213
+ return statement.type === "create_reference" && dialect7 === "pg";
17736
18214
  }
17737
18215
  convert(statement) {
17738
18216
  const {
@@ -17758,8 +18236,8 @@ var PgCreateForeignKeyConvertor = class extends Convertor {
17758
18236
  }
17759
18237
  };
17760
18238
  var SqliteCreateForeignKeyConvertor = class extends Convertor {
17761
- can(statement, dialect5) {
17762
- return statement.type === "create_reference" && dialect5 === "sqlite";
18239
+ can(statement, dialect7) {
18240
+ return statement.type === "create_reference" && dialect7 === "sqlite";
17763
18241
  }
17764
18242
  convert(statement) {
17765
18243
  return `/*
@@ -17772,8 +18250,8 @@ var SqliteCreateForeignKeyConvertor = class extends Convertor {
17772
18250
  }
17773
18251
  };
17774
18252
  var MySqlCreateForeignKeyConvertor = class extends Convertor {
17775
- can(statement, dialect5) {
17776
- return statement.type === "create_reference" && dialect5 === "mysql";
18253
+ can(statement, dialect7) {
18254
+ return statement.type === "create_reference" && dialect7 === "mysql";
17777
18255
  }
17778
18256
  convert(statement) {
17779
18257
  const {
@@ -17801,8 +18279,8 @@ var AlterForeignKeyConvertor = class extends Convertor {
17801
18279
  }
17802
18280
  };
17803
18281
  var SqliteAlterForeignKeyConvertor = class extends Convertor {
17804
- can(statement, dialect5) {
17805
- return statement.type === "alter_reference" && dialect5 === "sqlite";
18282
+ can(statement, dialect7) {
18283
+ return statement.type === "alter_reference" && dialect7 === "sqlite";
17806
18284
  }
17807
18285
  convert(statement) {
17808
18286
  return `/*
@@ -17815,8 +18293,8 @@ var SqliteAlterForeignKeyConvertor = class extends Convertor {
17815
18293
  }
17816
18294
  };
17817
18295
  var PgDeleteForeignKeyConvertor = class extends Convertor {
17818
- can(statement, dialect5) {
17819
- return statement.type === "delete_reference" && dialect5 === "pg";
18296
+ can(statement, dialect7) {
18297
+ return statement.type === "delete_reference" && dialect7 === "pg";
17820
18298
  }
17821
18299
  convert(statement) {
17822
18300
  const tableFrom = statement.tableName;
@@ -17826,8 +18304,8 @@ var PgDeleteForeignKeyConvertor = class extends Convertor {
17826
18304
  }
17827
18305
  };
17828
18306
  var SqliteDeleteForeignKeyConvertor = class extends Convertor {
17829
- can(statement, dialect5) {
17830
- return statement.type === "delete_reference" && dialect5 === "sqlite";
18307
+ can(statement, dialect7) {
18308
+ return statement.type === "delete_reference" && dialect7 === "sqlite";
17831
18309
  }
17832
18310
  convert(statement) {
17833
18311
  return `/*
@@ -17840,8 +18318,8 @@ var SqliteDeleteForeignKeyConvertor = class extends Convertor {
17840
18318
  }
17841
18319
  };
17842
18320
  var MySqlDeleteForeignKeyConvertor = class extends Convertor {
17843
- can(statement, dialect5) {
17844
- return statement.type === "delete_reference" && dialect5 === "mysql";
18321
+ can(statement, dialect7) {
18322
+ return statement.type === "delete_reference" && dialect7 === "mysql";
17845
18323
  }
17846
18324
  convert(statement) {
17847
18325
  const tableFrom = statement.tableName;
@@ -17851,8 +18329,8 @@ var MySqlDeleteForeignKeyConvertor = class extends Convertor {
17851
18329
  }
17852
18330
  };
17853
18331
  var CreatePgIndexConvertor = class extends Convertor {
17854
- can(statement, dialect5) {
17855
- return statement.type === "create_index" && dialect5 === "pg";
18332
+ can(statement, dialect7) {
18333
+ return statement.type === "create_index" && dialect7 === "pg";
17856
18334
  }
17857
18335
  convert(statement) {
17858
18336
  const { name, columns, isUnique } = PgSquasher.unsquashIdx(statement.data);
@@ -17862,8 +18340,8 @@ var CreatePgIndexConvertor = class extends Convertor {
17862
18340
  }
17863
18341
  };
17864
18342
  var CreateMySqlIndexConvertor = class extends Convertor {
17865
- can(statement, dialect5) {
17866
- return statement.type === "create_index" && dialect5 === "mysql";
18343
+ can(statement, dialect7) {
18344
+ return statement.type === "create_index" && dialect7 === "mysql";
17867
18345
  }
17868
18346
  convert(statement) {
17869
18347
  const { name, columns, isUnique } = PgSquasher.unsquashIdx(statement.data);
@@ -17873,8 +18351,8 @@ var CreateMySqlIndexConvertor = class extends Convertor {
17873
18351
  }
17874
18352
  };
17875
18353
  var CreateSqliteIndexConvertor = class extends Convertor {
17876
- can(statement, dialect5) {
17877
- return statement.type === "create_index" && dialect5 === "sqlite";
18354
+ can(statement, dialect7) {
18355
+ return statement.type === "create_index" && dialect7 === "sqlite";
17878
18356
  }
17879
18357
  convert(statement) {
17880
18358
  const { name, columns, isUnique, where } = SQLiteSquasher.unsquashIdx(
@@ -17887,8 +18365,8 @@ var CreateSqliteIndexConvertor = class extends Convertor {
17887
18365
  }
17888
18366
  };
17889
18367
  var PgDropIndexConvertor = class extends Convertor {
17890
- can(statement, dialect5) {
17891
- return statement.type === "drop_index" && dialect5 === "pg";
18368
+ can(statement, dialect7) {
18369
+ return statement.type === "drop_index" && dialect7 === "pg";
17892
18370
  }
17893
18371
  convert(statement) {
17894
18372
  const { name } = PgSquasher.unsquashIdx(statement.data);
@@ -17896,8 +18374,8 @@ var PgDropIndexConvertor = class extends Convertor {
17896
18374
  }
17897
18375
  };
17898
18376
  var SqliteDropIndexConvertor = class extends Convertor {
17899
- can(statement, dialect5) {
17900
- return statement.type === "drop_index" && dialect5 === "sqlite";
18377
+ can(statement, dialect7) {
18378
+ return statement.type === "drop_index" && dialect7 === "sqlite";
17901
18379
  }
17902
18380
  convert(statement) {
17903
18381
  const { name } = PgSquasher.unsquashIdx(statement.data);
@@ -17946,10 +18424,10 @@ convertors.push(new SqliteAlterTableAlterColumnSetNotNullConvertor());
17946
18424
  convertors.push(new SqliteAlterTableAlterColumnDropNotNullConvertor());
17947
18425
  convertors.push(new SqliteAlterTableAlterColumnSetDefaultConvertor());
17948
18426
  convertors.push(new SqliteAlterTableAlterColumnDropDefaultConvertor());
17949
- var fromJson = (statements, dialect5) => {
18427
+ var fromJson = (statements, dialect7) => {
17950
18428
  const result = statements.map((statement) => {
17951
18429
  const filtered = convertors.filter((it) => {
17952
- return it.can(statement, dialect5);
18430
+ return it.can(statement, dialect7);
17953
18431
  });
17954
18432
  const convertor = filtered.length === 1 ? filtered[0] : void 0;
17955
18433
  if (!convertor) {
@@ -18189,11 +18667,11 @@ var prepareRenameColumns = (tableName, pairs) => {
18189
18667
  };
18190
18668
  });
18191
18669
  };
18192
- var prepareAlterTableColumnsJson = (tableName, deleted, added, altered, addedFk, dialect5) => {
18670
+ var prepareAlterTableColumnsJson = (tableName, deleted, added, altered, addedFk, dialect7) => {
18193
18671
  const statements = [];
18194
18672
  const dropColumns = _prepareDropColumns(tableName, deleted);
18195
18673
  const alterColumns = _prepareAlterColumns(tableName, altered);
18196
- if (dialect5 === "sqlite") {
18674
+ if (dialect7 === "sqlite") {
18197
18675
  let jsonCreateFKStatements = Object.values(addedFk);
18198
18676
  const sqliteAddColumns = _prepareSQLiteAddColumns(
18199
18677
  tableName,
@@ -18382,13 +18860,13 @@ var mapValues = (obj, map) => {
18382
18860
  }, {});
18383
18861
  return result;
18384
18862
  };
18385
- var squashIndexesAndFKs = (json, dialect5 = "pg") => {
18863
+ var squashIndexesAndFKs = (json, dialect7 = "pg") => {
18386
18864
  const mappedTables = Object.fromEntries(
18387
18865
  Object.entries(json.tables).map((it) => {
18388
18866
  const squashedIndexes = mapValues(it[1].indexes, (index4) => {
18389
- if (dialect5 === "mysql") {
18867
+ if (dialect7 === "mysql") {
18390
18868
  return MySqlSquasher.squashIdx(index4);
18391
- } else if (dialect5 === "pg") {
18869
+ } else if (dialect7 === "pg") {
18392
18870
  return PgSquasher.squashIdx(index4);
18393
18871
  } else {
18394
18872
  return SQLiteSquasher.squashIdx(index4);
@@ -18396,9 +18874,9 @@ var squashIndexesAndFKs = (json, dialect5 = "pg") => {
18396
18874
  });
18397
18875
  const squashedFKs = mapValues(it[1].foreignKeys, (fk4) => {
18398
18876
  {
18399
- if (dialect5 === "mysql") {
18877
+ if (dialect7 === "mysql") {
18400
18878
  return MySqlSquasher.squashFK(fk4);
18401
- } else if (dialect5 === "pg") {
18879
+ } else if (dialect7 === "pg") {
18402
18880
  return PgSquasher.squashFK(fk4);
18403
18881
  } else {
18404
18882
  return SQLiteSquasher.squashFK(fk4);
@@ -18505,11 +18983,11 @@ var diffResultScheme = objectType({
18505
18983
  deletedEnums: enumSchema2.array(),
18506
18984
  alteredEnums: changedEnumSchema.array()
18507
18985
  }).strict();
18508
- var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, dialect5) => {
18986
+ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, dialect7) => {
18509
18987
  var _a, _b, _c, _d;
18510
18988
  const diffResult = applyJsonDiff(
18511
- squashIndexesAndFKs(json1, dialect5),
18512
- squashIndexesAndFKs(json2, dialect5)
18989
+ squashIndexesAndFKs(json1, dialect7),
18990
+ squashIndexesAndFKs(json2, dialect7)
18513
18991
  );
18514
18992
  if (Object.keys(diffResult).length === 0) {
18515
18993
  return "";
@@ -18575,7 +19053,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18575
19053
  it.added,
18576
19054
  it.altered,
18577
19055
  it.addedForeignKeys,
18578
- dialect5
19056
+ dialect7
18579
19057
  );
18580
19058
  }).flat();
18581
19059
  const jsonCreateIndexesForAllAlteredTables = allAltered.map((it) => {
@@ -18588,7 +19066,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18588
19066
  return prepareCreateReferencesJson(it.name, it.foreignKeys);
18589
19067
  }).flat();
18590
19068
  const jsonReferencesForAllAlteredTables = allAltered.map((it) => {
18591
- const forAdded = dialect5 !== "sqlite" ? prepareCreateReferencesJson(it.name, it.addedForeignKeys) : [];
19069
+ const forAdded = dialect7 !== "sqlite" ? prepareCreateReferencesJson(it.name, it.addedForeignKeys) : [];
18592
19070
  const forAltered = prepareDropReferencesJson(
18593
19071
  it.name,
18594
19072
  it.deletedForeignKeys
@@ -18605,7 +19083,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18605
19083
  }).flat()) != null ? _d : [];
18606
19084
  jsonStatements.push(...createEnums);
18607
19085
  jsonStatements.push(...jsonAlterEnumsWithAddedValues);
18608
- if (dialect5 === "sqlite") {
19086
+ if (dialect7 === "sqlite") {
18609
19087
  jsonStatements.push(...jsonSQLiteCreateTables);
18610
19088
  } else {
18611
19089
  jsonStatements.push(...jsonCreateTables);
@@ -18614,7 +19092,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18614
19092
  jsonStatements.push(...jsonRenameTables);
18615
19093
  jsonStatements.push(...jsonRenameColumnsStatements);
18616
19094
  jsonStatements.push(...jsonAlterTables);
18617
- if (dialect5 !== "sqlite")
19095
+ if (dialect7 !== "sqlite")
18618
19096
  jsonStatements.push(...jsonCreateReferences);
18619
19097
  jsonStatements.push(...jsonAlterReferencesForAlteredTables);
18620
19098
  jsonStatements.push(...jsonCreateIndexesForCreatedTables);
@@ -18627,7 +19105,7 @@ var applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver, d
18627
19105
  // src/migrationPreparator.ts
18628
19106
  var import_hanji2 = __toESM(require_hanji());
18629
19107
 
18630
- // 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
18631
19109
  var ANSI_BACKGROUND_OFFSET = 10;
18632
19110
  var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
18633
19111
  var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
@@ -18804,11 +19282,11 @@ function assembleStyles() {
18804
19282
  var ansiStyles = assembleStyles();
18805
19283
  var ansi_styles_default = ansiStyles;
18806
19284
 
18807
- // 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
18808
19286
  var import_node_process = __toESM(require("process"), 1);
18809
19287
  var import_node_os = __toESM(require("os"), 1);
18810
19288
  var import_node_tty = __toESM(require("tty"), 1);
18811
- function hasFlag(flag, argv = import_node_process.default.argv) {
19289
+ function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : import_node_process.default.argv) {
18812
19290
  const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
18813
19291
  const position = argv.indexOf(prefix + flag);
18814
19292
  const terminatorPosition = argv.indexOf("--");
@@ -18860,6 +19338,9 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
18860
19338
  return 2;
18861
19339
  }
18862
19340
  }
19341
+ if ("TF_BUILD" in env && "AGENT_NAME" in env) {
19342
+ return 1;
19343
+ }
18863
19344
  if (haveStream && !streamIsTTY && forceColor === void 0) {
18864
19345
  return 0;
18865
19346
  }
@@ -18875,7 +19356,10 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
18875
19356
  return 1;
18876
19357
  }
18877
19358
  if ("CI" in env) {
18878
- 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") {
18879
19363
  return 1;
18880
19364
  }
18881
19365
  return min;
@@ -18883,19 +19367,21 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
18883
19367
  if ("TEAMCITY_VERSION" in env) {
18884
19368
  return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
18885
19369
  }
18886
- if ("TF_BUILD" in env && "AGENT_NAME" in env) {
18887
- return 1;
18888
- }
18889
19370
  if (env.COLORTERM === "truecolor") {
18890
19371
  return 3;
18891
19372
  }
19373
+ if (env.TERM === "xterm-kitty") {
19374
+ return 3;
19375
+ }
18892
19376
  if ("TERM_PROGRAM" in env) {
18893
19377
  const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
18894
19378
  switch (env.TERM_PROGRAM) {
18895
- case "iTerm.app":
19379
+ case "iTerm.app": {
18896
19380
  return version >= 3 ? 3 : 2;
18897
- case "Apple_Terminal":
19381
+ }
19382
+ case "Apple_Terminal": {
18898
19383
  return 2;
19384
+ }
18899
19385
  }
18900
19386
  }
18901
19387
  if (/-256(color)?$/i.test(env.TERM)) {
@@ -18922,7 +19408,7 @@ var supportsColor = {
18922
19408
  };
18923
19409
  var supports_color_default = supportsColor;
18924
19410
 
18925
- // 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
18926
19412
  function stringReplaceAll(string, substring, replacer) {
18927
19413
  let index4 = string.indexOf(substring);
18928
19414
  if (index4 === -1) {
@@ -18952,7 +19438,7 @@ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index4) {
18952
19438
  return returnValue;
18953
19439
  }
18954
19440
 
18955
- // 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
18956
19442
  var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
18957
19443
  var GENERATOR = Symbol("GENERATOR");
18958
19444
  var STYLER = Symbol("STYLER");
@@ -19325,8 +19811,8 @@ var prepareMigration = (outFolder = "drizzle", schemaPath, _dialect) => {
19325
19811
  const serialized = serializer_default(schemaPath, _dialect);
19326
19812
  const id = (0, import_crypto.randomUUID)();
19327
19813
  const idPrev = prevSnapshot.id;
19328
- const { version, dialect: dialect5, ...rest } = serialized;
19329
- const result = { version, dialect: dialect5, id, prevId: idPrev, ...rest };
19814
+ const { version, dialect: dialect7, ...rest } = serialized;
19815
+ const result = { version, dialect: dialect7, id, prevId: idPrev, ...rest };
19330
19816
  return { prev: prevSnapshot, cur: result };
19331
19817
  };
19332
19818
  var migrationPreparator_default = prepareMigration;
@@ -19337,9 +19823,9 @@ var import_hanji3 = __toESM(require_hanji());
19337
19823
  var prepareAndMigrate = async (config) => {
19338
19824
  const outFolder = config.out;
19339
19825
  const schemaPath = config.schema;
19340
- const dialect5 = config.dialect;
19826
+ const dialect7 = config.dialect;
19341
19827
  try {
19342
- const { prev, cur } = migrationPreparator_default(outFolder, schemaPath, dialect5);
19828
+ const { prev, cur } = migrationPreparator_default(outFolder, schemaPath, dialect7);
19343
19829
  const toSave = JSON.parse(JSON.stringify(cur));
19344
19830
  const validatedPrev = commonSchema.parse(prev);
19345
19831
  const validatedCur = commonSchema.parse(cur);
@@ -19349,7 +19835,7 @@ var prepareAndMigrate = async (config) => {
19349
19835
  freeeeeeze(validatedPrev);
19350
19836
  freeeeeeze(validatedCur);
19351
19837
  console.log(schema4(cur));
19352
- const sql = await prepareSQL(validatedPrev, validatedCur, dialect5);
19838
+ const sql = await prepareSQL(validatedPrev, validatedCur, dialect7);
19353
19839
  if (sql.length === 0) {
19354
19840
  console.log("No schema changes, nothing to migrate \u{1F634}");
19355
19841
  return;
@@ -19378,7 +19864,7 @@ var freeeeeeze = (obj) => {
19378
19864
  }
19379
19865
  }
19380
19866
  };
19381
- var prepareSQL = async (prev, cur, dialect5) => {
19867
+ var prepareSQL = async (prev, cur, dialect7) => {
19382
19868
  const tablesResolver = async (input) => {
19383
19869
  try {
19384
19870
  const { created, deleted, renamed } = await promptTablesConflict(
@@ -19409,7 +19895,7 @@ var prepareSQL = async (prev, cur, dialect5) => {
19409
19895
  cur,
19410
19896
  tablesResolver,
19411
19897
  columnsResolver,
19412
- dialect5
19898
+ dialect7
19413
19899
  );
19414
19900
  };
19415
19901
  var promptColumnsConflicts = async (tableName, newColumns, missingColumns) => {
@@ -19519,7 +20005,7 @@ var import_fs6 = __toESM(require("fs"));
19519
20005
  // src/cli/commands/check.ts
19520
20006
  var import_fs4 = __toESM(require("fs"));
19521
20007
  var checkHandler = (config) => {
19522
- const { dialect: dialect5, out } = config;
20008
+ const { dialect: dialect7, out } = config;
19523
20009
  const outFolderExists = import_fs4.default.existsSync(out);
19524
20010
  if (!outFolderExists) {
19525
20011
  import_fs4.default.mkdirSync(out);
@@ -19563,7 +20049,7 @@ var import_crypto2 = require("crypto");
19563
20049
  var import_fs5 = __toESM(require("fs"));
19564
20050
  var import_path3 = __toESM(require("path"));
19565
20051
  var upHandler = (config) => {
19566
- const { dialect: dialect5, out } = config;
20052
+ const { dialect: dialect7, out } = config;
19567
20053
  const outFolderExists = import_fs5.default.existsSync(out);
19568
20054
  if (!outFolderExists) {
19569
20055
  import_fs5.default.mkdirSync(out);
@@ -19729,7 +20215,7 @@ var migrationCommand = new Command("generate").alias("migrate").option(
19729
20215
  await prepareAndMigrate(result);
19730
20216
  });
19731
20217
  var prepareGenerateConfig = (options) => {
19732
- const { schema: schema5, out, dialect: dialect5, config } = options;
20218
+ const { schema: schema5, out, dialect: dialect7, config } = options;
19733
20219
  if (!(schema5 || out)) {
19734
20220
  const path3 = config != null ? config : "drizzle.config.json";
19735
20221
  const drizzleConfig = JSON.parse(
@@ -19737,30 +20223,30 @@ var prepareGenerateConfig = (options) => {
19737
20223
  );
19738
20224
  return drizzleConfig;
19739
20225
  }
19740
- if (!schema5 || !dialect5) {
20226
+ if (!schema5 || !dialect7) {
19741
20227
  return new Error(`'schema' and 'dialect' param must be set`);
19742
20228
  }
19743
- return configSchema.parse({ schema: schema5, out, dialect: dialect5 });
20229
+ return configSchema.parse({ schema: schema5, out, dialect: dialect7 });
19744
20230
  };
19745
20231
  var checkSchema = objectType({
19746
20232
  dialect: stringType().default(""),
19747
20233
  out: stringType().default("drizzle")
19748
20234
  }).strict();
19749
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) => {
19750
- const { out, dialect: dialect5 } = checkSchema.parse(options);
19751
- if (!out || !dialect5) {
20236
+ const { out, dialect: dialect7 } = checkSchema.parse(options);
20237
+ if (!out || !dialect7) {
19752
20238
  (0, import_hanji4.render)(error(`'out' folder and 'dialect' params must be set`));
19753
20239
  process.exit(0);
19754
20240
  }
19755
- checkHandler({ out, dialect: dialect5 });
20241
+ checkHandler({ out, dialect: dialect7 });
19756
20242
  });
19757
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) => {
19758
- const { out, dialect: dialect5 } = checkSchema.parse(options);
19759
- if (!out || !dialect5) {
20244
+ const { out, dialect: dialect7 } = checkSchema.parse(options);
20245
+ if (!out || !dialect7) {
19760
20246
  (0, import_hanji4.render)(error(`'out' folder and 'dialect' params must be set`));
19761
20247
  process.exit(0);
19762
20248
  }
19763
- upHandler({ out, dialect: dialect5 });
20249
+ upHandler({ out, dialect: dialect7 });
19764
20250
  });
19765
20251
  program.addCommand(migrationCommand);
19766
20252
  program.addCommand(checkCommand);