drizzle-kit 0.21.2 → 0.21.4-b5744a6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/utils.js CHANGED
@@ -33,10 +33,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
33
33
 
34
34
  // node_modules/.pnpm/hanji@0.0.5/node_modules/hanji/readline.js
35
35
  var require_readline = __commonJS({
36
- "node_modules/.pnpm/hanji@0.0.5/node_modules/hanji/readline.js"(exports) {
36
+ "node_modules/.pnpm/hanji@0.0.5/node_modules/hanji/readline.js"(exports2) {
37
37
  "use strict";
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.prepareReadLine = void 0;
38
+ Object.defineProperty(exports2, "__esModule", { value: true });
39
+ exports2.prepareReadLine = void 0;
40
40
  var prepareReadLine = () => {
41
41
  const stdin = process.stdin;
42
42
  const stdout = process.stdout;
@@ -52,13 +52,13 @@ var require_readline = __commonJS({
52
52
  closable: rl
53
53
  };
54
54
  };
55
- exports.prepareReadLine = prepareReadLine;
55
+ exports2.prepareReadLine = prepareReadLine;
56
56
  }
57
57
  });
58
58
 
59
59
  // node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js
60
60
  var require_src = __commonJS({
61
- "node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js"(exports, module2) {
61
+ "node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js"(exports2, module2) {
62
62
  "use strict";
63
63
  var ESC = "\x1B";
64
64
  var CSI = `${ESC}[`;
@@ -119,10 +119,10 @@ var require_src = __commonJS({
119
119
 
120
120
  // node_modules/.pnpm/hanji@0.0.5/node_modules/hanji/utils.js
121
121
  var require_utils = __commonJS({
122
- "node_modules/.pnpm/hanji@0.0.5/node_modules/hanji/utils.js"(exports) {
122
+ "node_modules/.pnpm/hanji@0.0.5/node_modules/hanji/utils.js"(exports2) {
123
123
  "use strict";
124
- Object.defineProperty(exports, "__esModule", { value: true });
125
- exports.clear = void 0;
124
+ Object.defineProperty(exports2, "__esModule", { value: true });
125
+ exports2.clear = void 0;
126
126
  var sisteransi_1 = require_src();
127
127
  var strip = (str) => {
128
128
  const pattern = [
@@ -143,13 +143,13 @@ var require_utils = __commonJS({
143
143
  }
144
144
  return sisteransi_1.erase.lines(rows);
145
145
  };
146
- exports.clear = clear;
146
+ exports2.clear = clear;
147
147
  }
148
148
  });
149
149
 
150
150
  // node_modules/.pnpm/lodash.throttle@4.1.1/node_modules/lodash.throttle/index.js
151
151
  var require_lodash = __commonJS({
152
- "node_modules/.pnpm/lodash.throttle@4.1.1/node_modules/lodash.throttle/index.js"(exports, module2) {
152
+ "node_modules/.pnpm/lodash.throttle@4.1.1/node_modules/lodash.throttle/index.js"(exports2, module2) {
153
153
  var FUNC_ERROR_TEXT = "Expected a function";
154
154
  var NAN = 0 / 0;
155
155
  var symbolTag = "[object Symbol]";
@@ -297,9 +297,9 @@ var require_lodash = __commonJS({
297
297
 
298
298
  // node_modules/.pnpm/hanji@0.0.5/node_modules/hanji/index.js
299
299
  var require_hanji = __commonJS({
300
- "node_modules/.pnpm/hanji@0.0.5/node_modules/hanji/index.js"(exports) {
300
+ "node_modules/.pnpm/hanji@0.0.5/node_modules/hanji/index.js"(exports2) {
301
301
  "use strict";
302
- var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
302
+ var __awaiter = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
303
303
  function adopt(value) {
304
304
  return value instanceof P ? value : new P(function(resolve) {
305
305
  resolve(value);
@@ -326,11 +326,11 @@ var require_hanji = __commonJS({
326
326
  step((generator = generator.apply(thisArg, _arguments || [])).next());
327
327
  });
328
328
  };
329
- var __importDefault = exports && exports.__importDefault || function(mod) {
329
+ var __importDefault = exports2 && exports2.__importDefault || function(mod) {
330
330
  return mod && mod.__esModule ? mod : { "default": mod };
331
331
  };
332
- Object.defineProperty(exports, "__esModule", { value: true });
333
- exports.onTerminate = exports.renderWithTask = exports.render = exports.TaskTerminal = exports.TaskView = exports.Terminal = exports.deferred = exports.SelectState = exports.Prompt = void 0;
332
+ Object.defineProperty(exports2, "__esModule", { value: true });
333
+ exports2.onTerminate = exports2.renderWithTask = exports2.render = exports2.TaskTerminal = exports2.TaskView = exports2.Terminal = exports2.deferred = exports2.SelectState = exports2.Prompt = void 0;
334
334
  var readline_1 = require_readline();
335
335
  var sisteransi_1 = require_src();
336
336
  var utils_1 = require_utils();
@@ -365,7 +365,7 @@ var require_hanji = __commonJS({
365
365
  this.inputCallbacks.forEach((it) => it(str, key));
366
366
  }
367
367
  };
368
- exports.Prompt = Prompt2;
368
+ exports2.Prompt = Prompt2;
369
369
  var SelectState2 = class {
370
370
  constructor(items) {
371
371
  this.items = items;
@@ -393,7 +393,7 @@ var require_hanji = __commonJS({
393
393
  return false;
394
394
  }
395
395
  };
396
- exports.SelectState = SelectState2;
396
+ exports2.SelectState = SelectState2;
397
397
  var deferred = () => {
398
398
  let resolve;
399
399
  let reject;
@@ -407,7 +407,7 @@ var require_hanji = __commonJS({
407
407
  promise
408
408
  };
409
409
  };
410
- exports.deferred = deferred;
410
+ exports2.deferred = deferred;
411
411
  var Terminal = class {
412
412
  constructor(view, stdin, stdout, closable) {
413
413
  this.view = view;
@@ -452,7 +452,7 @@ var require_hanji = __commonJS({
452
452
  };
453
453
  this.stdin.on("keypress", keypress);
454
454
  this.view.attach(this);
455
- const { resolve, promise } = (0, exports.deferred)();
455
+ const { resolve, promise } = (0, exports2.deferred)();
456
456
  this.resolve = resolve;
457
457
  this.promise = promise;
458
458
  this.renderFunc = (0, lodash_throttle_1.default)((str) => {
@@ -483,7 +483,7 @@ var require_hanji = __commonJS({
483
483
  this.renderFunc(`${clearPrefix}${string}`);
484
484
  }
485
485
  };
486
- exports.Terminal = Terminal;
486
+ exports2.Terminal = Terminal;
487
487
  var TaskView2 = class {
488
488
  constructor() {
489
489
  this.attachCallbacks = [];
@@ -508,7 +508,7 @@ var require_hanji = __commonJS({
508
508
  }
509
509
  }
510
510
  };
511
- exports.TaskView = TaskView2;
511
+ exports2.TaskView = TaskView2;
512
512
  var TaskTerminal = class {
513
513
  constructor(view, stdout) {
514
514
  this.view = view;
@@ -529,7 +529,7 @@ var require_hanji = __commonJS({
529
529
  this.stdout.write(`${clearPrefix}${string}`);
530
530
  }
531
531
  };
532
- exports.TaskTerminal = TaskTerminal;
532
+ exports2.TaskTerminal = TaskTerminal;
533
533
  function render2(view) {
534
534
  const { stdin, stdout, closable } = (0, readline_1.prepareReadLine)();
535
535
  if (view instanceof Prompt2) {
@@ -542,7 +542,7 @@ var require_hanji = __commonJS({
542
542
  closable.close();
543
543
  return;
544
544
  }
545
- exports.render = render2;
545
+ exports2.render = render2;
546
546
  function renderWithTask(view, task) {
547
547
  return __awaiter(this, void 0, void 0, function* () {
548
548
  const terminal = new TaskTerminal(view, process.stdout);
@@ -552,12 +552,12 @@ var require_hanji = __commonJS({
552
552
  return result;
553
553
  });
554
554
  }
555
- exports.renderWithTask = renderWithTask;
555
+ exports2.renderWithTask = renderWithTask;
556
556
  var terminateHandler;
557
557
  function onTerminate(callback) {
558
558
  terminateHandler = callback;
559
559
  }
560
- exports.onTerminate = onTerminate;
560
+ exports2.onTerminate = onTerminate;
561
561
  }
562
562
  });
563
563
 
@@ -569,6 +569,7 @@ __export(utils_exports, {
569
569
  copy: () => copy,
570
570
  dryJournal: () => dryJournal,
571
571
  kloudMeta: () => kloudMeta,
572
+ normaliseSQLiteUrl: () => normaliseSQLiteUrl,
572
573
  objectValues: () => objectValues,
573
574
  prepareMigrationFolder: () => prepareMigrationFolder,
574
575
  prepareMigrationMeta: () => prepareMigrationMeta,
@@ -580,7 +581,7 @@ __export(utils_exports, {
580
581
  module.exports = __toCommonJS(utils_exports);
581
582
  var import_fs = require("fs");
582
583
 
583
- // node_modules/.pnpm/chalk@5.2.0/node_modules/chalk/source/vendor/ansi-styles/index.js
584
+ // node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/vendor/ansi-styles/index.js
584
585
  var ANSI_BACKGROUND_OFFSET = 10;
585
586
  var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
586
587
  var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
@@ -766,7 +767,7 @@ function assembleStyles() {
766
767
  var ansiStyles = assembleStyles();
767
768
  var ansi_styles_default = ansiStyles;
768
769
 
769
- // node_modules/.pnpm/chalk@5.2.0/node_modules/chalk/source/vendor/supports-color/index.js
770
+ // node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/vendor/supports-color/index.js
770
771
  var import_node_process = __toESM(require("node:process"), 1);
771
772
  var import_node_os = __toESM(require("node:os"), 1);
772
773
  var import_node_tty = __toESM(require("node:tty"), 1);
@@ -840,7 +841,7 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
840
841
  return 1;
841
842
  }
842
843
  if ("CI" in env) {
843
- if ("GITHUB_ACTIONS" in env) {
844
+ if ("GITHUB_ACTIONS" in env || "GITEA_ACTIONS" in env) {
844
845
  return 3;
845
846
  }
846
847
  if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
@@ -892,7 +893,7 @@ var supportsColor = {
892
893
  };
893
894
  var supports_color_default = supportsColor;
894
895
 
895
- // node_modules/.pnpm/chalk@5.2.0/node_modules/chalk/source/utilities.js
896
+ // node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/utilities.js
896
897
  function stringReplaceAll(string, substring, replacer) {
897
898
  let index4 = string.indexOf(substring);
898
899
  if (index4 === -1) {
@@ -922,7 +923,7 @@ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index4) {
922
923
  return returnValue;
923
924
  }
924
925
 
925
- // node_modules/.pnpm/chalk@5.2.0/node_modules/chalk/source/index.js
926
+ // node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/index.js
926
927
  var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
927
928
  var GENERATOR = Symbol("GENERATOR");
928
929
  var STYLER = Symbol("STYLER");
@@ -1078,8 +1079,11 @@ var info = (msg, greyMsg = "") => {
1078
1079
  // src/global.ts
1079
1080
  var originUUID = "00000000-0000-0000-0000-000000000000";
1080
1081
  var snapshotVersion = "6";
1082
+ function assertUnreachable(x) {
1083
+ throw new Error("Didn't expect to get here");
1084
+ }
1081
1085
 
1082
- // node_modules/.pnpm/zod@3.20.2/node_modules/zod/lib/index.mjs
1086
+ // node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/index.mjs
1083
1087
  var util;
1084
1088
  (function(util2) {
1085
1089
  util2.assertEqual = (val) => val;
@@ -1138,6 +1142,16 @@ var util;
1138
1142
  return value;
1139
1143
  };
1140
1144
  })(util || (util = {}));
1145
+ var objectUtil;
1146
+ (function(objectUtil2) {
1147
+ objectUtil2.mergeShapes = (first, second) => {
1148
+ return {
1149
+ ...first,
1150
+ ...second
1151
+ // second overwrites first
1152
+ };
1153
+ };
1154
+ })(objectUtil || (objectUtil = {}));
1141
1155
  var ZodParsedType = util.arrayToEnum([
1142
1156
  "string",
1143
1157
  "nan",
@@ -1219,7 +1233,7 @@ var ZodIssueCode = util.arrayToEnum([
1219
1233
  "not_multiple_of",
1220
1234
  "not_finite"
1221
1235
  ]);
1222
- var ZodError = class extends Error {
1236
+ var ZodError = class _ZodError extends Error {
1223
1237
  constructor(issues) {
1224
1238
  super();
1225
1239
  this.issues = [];
@@ -1277,6 +1291,11 @@ var ZodError = class extends Error {
1277
1291
  processError(this);
1278
1292
  return fieldErrors;
1279
1293
  }
1294
+ static assert(value) {
1295
+ if (!(value instanceof _ZodError)) {
1296
+ throw new Error(`Not a ZodError: ${value}`);
1297
+ }
1298
+ }
1280
1299
  toString() {
1281
1300
  return this.message;
1282
1301
  }
@@ -1343,7 +1362,12 @@ var errorMap = (issue, _ctx) => {
1343
1362
  break;
1344
1363
  case ZodIssueCode.invalid_string:
1345
1364
  if (typeof issue.validation === "object") {
1346
- if ("startsWith" in issue.validation) {
1365
+ if ("includes" in issue.validation) {
1366
+ message = `Invalid input: must include "${issue.validation.includes}"`;
1367
+ if (typeof issue.validation.position === "number") {
1368
+ message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;
1369
+ }
1370
+ } else if ("startsWith" in issue.validation) {
1347
1371
  message = `Invalid input: must start with "${issue.validation.startsWith}"`;
1348
1372
  } else if ("endsWith" in issue.validation) {
1349
1373
  message = `Invalid input: must end with "${issue.validation.endsWith}"`;
@@ -1364,7 +1388,7 @@ var errorMap = (issue, _ctx) => {
1364
1388
  else if (issue.type === "number")
1365
1389
  message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;
1366
1390
  else if (issue.type === "date")
1367
- message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(issue.minimum)}`;
1391
+ message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;
1368
1392
  else
1369
1393
  message = "Invalid input";
1370
1394
  break;
@@ -1375,8 +1399,10 @@ var errorMap = (issue, _ctx) => {
1375
1399
  message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;
1376
1400
  else if (issue.type === "number")
1377
1401
  message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
1402
+ else if (issue.type === "bigint")
1403
+ message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
1378
1404
  else if (issue.type === "date")
1379
- message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(issue.maximum)}`;
1405
+ message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;
1380
1406
  else
1381
1407
  message = "Invalid input";
1382
1408
  break;
@@ -1409,6 +1435,13 @@ var makeIssue = (params) => {
1409
1435
  ...issueData,
1410
1436
  path: fullPath
1411
1437
  };
1438
+ if (issueData.message !== void 0) {
1439
+ return {
1440
+ ...issueData,
1441
+ path: fullPath,
1442
+ message: issueData.message
1443
+ };
1444
+ }
1412
1445
  let errorMessage = "";
1413
1446
  const maps = errorMaps.filter((m) => !!m).slice().reverse();
1414
1447
  for (const map of maps) {
@@ -1417,10 +1450,11 @@ var makeIssue = (params) => {
1417
1450
  return {
1418
1451
  ...issueData,
1419
1452
  path: fullPath,
1420
- message: issueData.message || errorMessage
1453
+ message: errorMessage
1421
1454
  };
1422
1455
  };
1423
1456
  function addIssueToContext(ctx, issueData) {
1457
+ const overrideMap = getErrorMap();
1424
1458
  const issue = makeIssue({
1425
1459
  issueData,
1426
1460
  data: ctx.data,
@@ -1428,8 +1462,8 @@ function addIssueToContext(ctx, issueData) {
1428
1462
  errorMaps: [
1429
1463
  ctx.common.contextualErrorMap,
1430
1464
  ctx.schemaErrorMap,
1431
- getErrorMap(),
1432
- errorMap
1465
+ overrideMap,
1466
+ overrideMap === errorMap ? void 0 : errorMap
1433
1467
  // then global default map
1434
1468
  ].filter((x) => !!x)
1435
1469
  });
@@ -1461,9 +1495,11 @@ var ParseStatus = class _ParseStatus {
1461
1495
  static async mergeObjectAsync(status, pairs) {
1462
1496
  const syncPairs = [];
1463
1497
  for (const pair of pairs) {
1498
+ const key = await pair.key;
1499
+ const value = await pair.value;
1464
1500
  syncPairs.push({
1465
- key: await pair.key,
1466
- value: await pair.value
1501
+ key,
1502
+ value
1467
1503
  });
1468
1504
  }
1469
1505
  return _ParseStatus.mergeObjectSync(status, syncPairs);
@@ -1480,7 +1516,7 @@ var ParseStatus = class _ParseStatus {
1480
1516
  status.dirty();
1481
1517
  if (value.status === "dirty")
1482
1518
  status.dirty();
1483
- if (typeof value.value !== "undefined" || pair.alwaysSet) {
1519
+ if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) {
1484
1520
  finalObject[key.value] = value.value;
1485
1521
  }
1486
1522
  }
@@ -1495,21 +1531,47 @@ var OK = (value) => ({ status: "valid", value });
1495
1531
  var isAborted = (x) => x.status === "aborted";
1496
1532
  var isDirty = (x) => x.status === "dirty";
1497
1533
  var isValid = (x) => x.status === "valid";
1498
- var isAsync = (x) => typeof Promise !== void 0 && x instanceof Promise;
1534
+ var isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
1535
+ function __classPrivateFieldGet(receiver, state, kind, f) {
1536
+ if (kind === "a" && !f)
1537
+ throw new TypeError("Private accessor was defined without a getter");
1538
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
1539
+ throw new TypeError("Cannot read private member from an object whose class did not declare it");
1540
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
1541
+ }
1542
+ function __classPrivateFieldSet(receiver, state, value, kind, f) {
1543
+ if (kind === "m")
1544
+ throw new TypeError("Private method is not writable");
1545
+ if (kind === "a" && !f)
1546
+ throw new TypeError("Private accessor was defined without a setter");
1547
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
1548
+ throw new TypeError("Cannot write private member to an object whose class did not declare it");
1549
+ return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
1550
+ }
1499
1551
  var errorUtil;
1500
1552
  (function(errorUtil2) {
1501
1553
  errorUtil2.errToObj = (message) => typeof message === "string" ? { message } : message || {};
1502
1554
  errorUtil2.toString = (message) => typeof message === "string" ? message : message === null || message === void 0 ? void 0 : message.message;
1503
1555
  })(errorUtil || (errorUtil = {}));
1556
+ var _ZodEnum_cache;
1557
+ var _ZodNativeEnum_cache;
1504
1558
  var ParseInputLazyPath = class {
1505
1559
  constructor(parent, value, path, key) {
1560
+ this._cachedPath = [];
1506
1561
  this.parent = parent;
1507
1562
  this.data = value;
1508
1563
  this._path = path;
1509
1564
  this._key = key;
1510
1565
  }
1511
1566
  get path() {
1512
- return this._path.concat(this._key);
1567
+ if (!this._cachedPath.length) {
1568
+ if (this._key instanceof Array) {
1569
+ this._cachedPath.push(...this._path, ...this._key);
1570
+ } else {
1571
+ this._cachedPath.push(...this._path, this._key);
1572
+ }
1573
+ }
1574
+ return this._cachedPath;
1513
1575
  }
1514
1576
  };
1515
1577
  var handleResult = (ctx, result) => {
@@ -1519,8 +1581,16 @@ var handleResult = (ctx, result) => {
1519
1581
  if (!ctx.common.issues.length) {
1520
1582
  throw new Error("Validation failed but no issues detected.");
1521
1583
  }
1522
- const error = new ZodError(ctx.common.issues);
1523
- return { success: false, error };
1584
+ return {
1585
+ success: false,
1586
+ get error() {
1587
+ if (this._error)
1588
+ return this._error;
1589
+ const error = new ZodError(ctx.common.issues);
1590
+ this._error = error;
1591
+ return this._error;
1592
+ }
1593
+ };
1524
1594
  }
1525
1595
  };
1526
1596
  function processCreateParams(params) {
@@ -1533,12 +1603,17 @@ function processCreateParams(params) {
1533
1603
  if (errorMap2)
1534
1604
  return { errorMap: errorMap2, description };
1535
1605
  const customMap = (iss, ctx) => {
1536
- if (iss.code !== "invalid_type")
1537
- return { message: ctx.defaultError };
1606
+ var _a, _b;
1607
+ const { message } = params;
1608
+ if (iss.code === "invalid_enum_value") {
1609
+ return { message: message !== null && message !== void 0 ? message : ctx.defaultError };
1610
+ }
1538
1611
  if (typeof ctx.data === "undefined") {
1539
- return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError };
1612
+ return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };
1540
1613
  }
1541
- return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError };
1614
+ if (iss.code !== "invalid_type")
1615
+ return { message: ctx.defaultError };
1616
+ return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };
1542
1617
  };
1543
1618
  return { errorMap: customMap, description };
1544
1619
  }
@@ -1567,6 +1642,7 @@ var ZodType = class {
1567
1642
  this.catch = this.catch.bind(this);
1568
1643
  this.describe = this.describe.bind(this);
1569
1644
  this.pipe = this.pipe.bind(this);
1645
+ this.readonly = this.readonly.bind(this);
1570
1646
  this.isNullable = this.isNullable.bind(this);
1571
1647
  this.isOptional = this.isOptional.bind(this);
1572
1648
  }
@@ -1711,28 +1787,29 @@ var ZodType = class {
1711
1787
  return this._refinement(refinement);
1712
1788
  }
1713
1789
  optional() {
1714
- return ZodOptional.create(this);
1790
+ return ZodOptional.create(this, this._def);
1715
1791
  }
1716
1792
  nullable() {
1717
- return ZodNullable.create(this);
1793
+ return ZodNullable.create(this, this._def);
1718
1794
  }
1719
1795
  nullish() {
1720
- return this.optional().nullable();
1796
+ return this.nullable().optional();
1721
1797
  }
1722
1798
  array() {
1723
- return ZodArray.create(this);
1799
+ return ZodArray.create(this, this._def);
1724
1800
  }
1725
1801
  promise() {
1726
- return ZodPromise.create(this);
1802
+ return ZodPromise.create(this, this._def);
1727
1803
  }
1728
1804
  or(option) {
1729
- return ZodUnion.create([this, option]);
1805
+ return ZodUnion.create([this, option], this._def);
1730
1806
  }
1731
1807
  and(incoming) {
1732
- return ZodIntersection.create(this, incoming);
1808
+ return ZodIntersection.create(this, incoming, this._def);
1733
1809
  }
1734
1810
  transform(transform) {
1735
1811
  return new ZodEffects({
1812
+ ...processCreateParams(this._def),
1736
1813
  schema: this,
1737
1814
  typeName: ZodFirstPartyTypeKind.ZodEffects,
1738
1815
  effect: { type: "transform", transform }
@@ -1741,6 +1818,7 @@ var ZodType = class {
1741
1818
  default(def) {
1742
1819
  const defaultValueFunc = typeof def === "function" ? def : () => def;
1743
1820
  return new ZodDefault({
1821
+ ...processCreateParams(this._def),
1744
1822
  innerType: this,
1745
1823
  defaultValue: defaultValueFunc,
1746
1824
  typeName: ZodFirstPartyTypeKind.ZodDefault
@@ -1750,14 +1828,15 @@ var ZodType = class {
1750
1828
  return new ZodBranded({
1751
1829
  typeName: ZodFirstPartyTypeKind.ZodBranded,
1752
1830
  type: this,
1753
- ...processCreateParams(void 0)
1831
+ ...processCreateParams(this._def)
1754
1832
  });
1755
1833
  }
1756
1834
  catch(def) {
1757
- const defaultValueFunc = typeof def === "function" ? def : () => def;
1835
+ const catchValueFunc = typeof def === "function" ? def : () => def;
1758
1836
  return new ZodCatch({
1837
+ ...processCreateParams(this._def),
1759
1838
  innerType: this,
1760
- defaultValue: defaultValueFunc,
1839
+ catchValue: catchValueFunc,
1761
1840
  typeName: ZodFirstPartyTypeKind.ZodCatch
1762
1841
  });
1763
1842
  }
@@ -1771,6 +1850,9 @@ var ZodType = class {
1771
1850
  pipe(target) {
1772
1851
  return ZodPipeline.create(this, target);
1773
1852
  }
1853
+ readonly() {
1854
+ return ZodReadonly.create(this);
1855
+ }
1774
1856
  isOptional() {
1775
1857
  return this.safeParse(void 0).success;
1776
1858
  }
@@ -1779,43 +1861,50 @@ var ZodType = class {
1779
1861
  }
1780
1862
  };
1781
1863
  var cuidRegex = /^c[^\s-]{8,}$/i;
1782
- 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;
1783
- var emailRegex = /^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
1784
- var datetimeRegex = (args) => {
1864
+ var cuid2Regex = /^[0-9a-z]+$/;
1865
+ var ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/;
1866
+ var uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i;
1867
+ var nanoidRegex = /^[a-z0-9_-]{21}$/i;
1868
+ var durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/;
1869
+ var emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;
1870
+ var _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;
1871
+ var emojiRegex;
1872
+ var ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
1873
+ var ipv6Regex = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;
1874
+ var base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
1875
+ var dateRegexSource = `((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`;
1876
+ var dateRegex = new RegExp(`^${dateRegexSource}$`);
1877
+ function timeRegexSource(args) {
1878
+ let regex = `([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d`;
1785
1879
  if (args.precision) {
1786
- if (args.offset) {
1787
- return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}(([+-]\\d{2}:\\d{2})|Z)$`);
1788
- } else {
1789
- return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}Z$`);
1790
- }
1791
- } else if (args.precision === 0) {
1792
- if (args.offset) {
1793
- return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}:\\d{2})|Z)$`);
1794
- } else {
1795
- return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$`);
1796
- }
1797
- } else {
1798
- if (args.offset) {
1799
- return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}:\\d{2})|Z)$`);
1800
- } else {
1801
- return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$`);
1802
- }
1880
+ regex = `${regex}\\.\\d{${args.precision}}`;
1881
+ } else if (args.precision == null) {
1882
+ regex = `${regex}(\\.\\d+)?`;
1803
1883
  }
1804
- };
1805
- var ZodString = class _ZodString extends ZodType {
1806
- constructor() {
1807
- super(...arguments);
1808
- this._regex = (regex, validation, message) => this.refinement((data) => regex.test(data), {
1809
- validation,
1810
- code: ZodIssueCode.invalid_string,
1811
- ...errorUtil.errToObj(message)
1812
- });
1813
- this.nonempty = (message) => this.min(1, errorUtil.errToObj(message));
1814
- this.trim = () => new _ZodString({
1815
- ...this._def,
1816
- checks: [...this._def.checks, { kind: "trim" }]
1817
- });
1884
+ return regex;
1885
+ }
1886
+ function timeRegex(args) {
1887
+ return new RegExp(`^${timeRegexSource(args)}$`);
1888
+ }
1889
+ function datetimeRegex(args) {
1890
+ let regex = `${dateRegexSource}T${timeRegexSource(args)}`;
1891
+ const opts = [];
1892
+ opts.push(args.local ? `Z?` : `Z`);
1893
+ if (args.offset)
1894
+ opts.push(`([+-]\\d{2}:?\\d{2})`);
1895
+ regex = `${regex}(${opts.join("|")})`;
1896
+ return new RegExp(`^${regex}$`);
1897
+ }
1898
+ function isValidIP(ip, version) {
1899
+ if ((version === "v4" || !version) && ipv4Regex.test(ip)) {
1900
+ return true;
1818
1901
  }
1902
+ if ((version === "v6" || !version) && ipv6Regex.test(ip)) {
1903
+ return true;
1904
+ }
1905
+ return false;
1906
+ }
1907
+ var ZodString = class _ZodString extends ZodType {
1819
1908
  _parse(input) {
1820
1909
  if (this._def.coerce) {
1821
1910
  input.data = String(input.data);
@@ -1823,15 +1912,11 @@ var ZodString = class _ZodString extends ZodType {
1823
1912
  const parsedType = this._getType(input);
1824
1913
  if (parsedType !== ZodParsedType.string) {
1825
1914
  const ctx2 = this._getOrReturnCtx(input);
1826
- addIssueToContext(
1827
- ctx2,
1828
- {
1829
- code: ZodIssueCode.invalid_type,
1830
- expected: ZodParsedType.string,
1831
- received: ctx2.parsedType
1832
- }
1833
- //
1834
- );
1915
+ addIssueToContext(ctx2, {
1916
+ code: ZodIssueCode.invalid_type,
1917
+ expected: ZodParsedType.string,
1918
+ received: ctx2.parsedType
1919
+ });
1835
1920
  return INVALID;
1836
1921
  }
1837
1922
  const status = new ParseStatus();
@@ -1899,6 +1984,19 @@ var ZodString = class _ZodString extends ZodType {
1899
1984
  });
1900
1985
  status.dirty();
1901
1986
  }
1987
+ } else if (check.kind === "emoji") {
1988
+ if (!emojiRegex) {
1989
+ emojiRegex = new RegExp(_emojiRegex, "u");
1990
+ }
1991
+ if (!emojiRegex.test(input.data)) {
1992
+ ctx = this._getOrReturnCtx(input, ctx);
1993
+ addIssueToContext(ctx, {
1994
+ validation: "emoji",
1995
+ code: ZodIssueCode.invalid_string,
1996
+ message: check.message
1997
+ });
1998
+ status.dirty();
1999
+ }
1902
2000
  } else if (check.kind === "uuid") {
1903
2001
  if (!uuidRegex.test(input.data)) {
1904
2002
  ctx = this._getOrReturnCtx(input, ctx);
@@ -1909,6 +2007,16 @@ var ZodString = class _ZodString extends ZodType {
1909
2007
  });
1910
2008
  status.dirty();
1911
2009
  }
2010
+ } else if (check.kind === "nanoid") {
2011
+ if (!nanoidRegex.test(input.data)) {
2012
+ ctx = this._getOrReturnCtx(input, ctx);
2013
+ addIssueToContext(ctx, {
2014
+ validation: "nanoid",
2015
+ code: ZodIssueCode.invalid_string,
2016
+ message: check.message
2017
+ });
2018
+ status.dirty();
2019
+ }
1912
2020
  } else if (check.kind === "cuid") {
1913
2021
  if (!cuidRegex.test(input.data)) {
1914
2022
  ctx = this._getOrReturnCtx(input, ctx);
@@ -1919,6 +2027,26 @@ var ZodString = class _ZodString extends ZodType {
1919
2027
  });
1920
2028
  status.dirty();
1921
2029
  }
2030
+ } else if (check.kind === "cuid2") {
2031
+ if (!cuid2Regex.test(input.data)) {
2032
+ ctx = this._getOrReturnCtx(input, ctx);
2033
+ addIssueToContext(ctx, {
2034
+ validation: "cuid2",
2035
+ code: ZodIssueCode.invalid_string,
2036
+ message: check.message
2037
+ });
2038
+ status.dirty();
2039
+ }
2040
+ } else if (check.kind === "ulid") {
2041
+ if (!ulidRegex.test(input.data)) {
2042
+ ctx = this._getOrReturnCtx(input, ctx);
2043
+ addIssueToContext(ctx, {
2044
+ validation: "ulid",
2045
+ code: ZodIssueCode.invalid_string,
2046
+ message: check.message
2047
+ });
2048
+ status.dirty();
2049
+ }
1922
2050
  } else if (check.kind === "url") {
1923
2051
  try {
1924
2052
  new URL(input.data);
@@ -1945,6 +2073,20 @@ var ZodString = class _ZodString extends ZodType {
1945
2073
  }
1946
2074
  } else if (check.kind === "trim") {
1947
2075
  input.data = input.data.trim();
2076
+ } else if (check.kind === "includes") {
2077
+ if (!input.data.includes(check.value, check.position)) {
2078
+ ctx = this._getOrReturnCtx(input, ctx);
2079
+ addIssueToContext(ctx, {
2080
+ code: ZodIssueCode.invalid_string,
2081
+ validation: { includes: check.value, position: check.position },
2082
+ message: check.message
2083
+ });
2084
+ status.dirty();
2085
+ }
2086
+ } else if (check.kind === "toLowerCase") {
2087
+ input.data = input.data.toLowerCase();
2088
+ } else if (check.kind === "toUpperCase") {
2089
+ input.data = input.data.toUpperCase();
1948
2090
  } else if (check.kind === "startsWith") {
1949
2091
  if (!input.data.startsWith(check.value)) {
1950
2092
  ctx = this._getOrReturnCtx(input, ctx);
@@ -1976,12 +2118,71 @@ var ZodString = class _ZodString extends ZodType {
1976
2118
  });
1977
2119
  status.dirty();
1978
2120
  }
2121
+ } else if (check.kind === "date") {
2122
+ const regex = dateRegex;
2123
+ if (!regex.test(input.data)) {
2124
+ ctx = this._getOrReturnCtx(input, ctx);
2125
+ addIssueToContext(ctx, {
2126
+ code: ZodIssueCode.invalid_string,
2127
+ validation: "date",
2128
+ message: check.message
2129
+ });
2130
+ status.dirty();
2131
+ }
2132
+ } else if (check.kind === "time") {
2133
+ const regex = timeRegex(check);
2134
+ if (!regex.test(input.data)) {
2135
+ ctx = this._getOrReturnCtx(input, ctx);
2136
+ addIssueToContext(ctx, {
2137
+ code: ZodIssueCode.invalid_string,
2138
+ validation: "time",
2139
+ message: check.message
2140
+ });
2141
+ status.dirty();
2142
+ }
2143
+ } else if (check.kind === "duration") {
2144
+ if (!durationRegex.test(input.data)) {
2145
+ ctx = this._getOrReturnCtx(input, ctx);
2146
+ addIssueToContext(ctx, {
2147
+ validation: "duration",
2148
+ code: ZodIssueCode.invalid_string,
2149
+ message: check.message
2150
+ });
2151
+ status.dirty();
2152
+ }
2153
+ } else if (check.kind === "ip") {
2154
+ if (!isValidIP(input.data, check.version)) {
2155
+ ctx = this._getOrReturnCtx(input, ctx);
2156
+ addIssueToContext(ctx, {
2157
+ validation: "ip",
2158
+ code: ZodIssueCode.invalid_string,
2159
+ message: check.message
2160
+ });
2161
+ status.dirty();
2162
+ }
2163
+ } else if (check.kind === "base64") {
2164
+ if (!base64Regex.test(input.data)) {
2165
+ ctx = this._getOrReturnCtx(input, ctx);
2166
+ addIssueToContext(ctx, {
2167
+ validation: "base64",
2168
+ code: ZodIssueCode.invalid_string,
2169
+ message: check.message
2170
+ });
2171
+ status.dirty();
2172
+ }
1979
2173
  } else {
1980
2174
  util.assertNever(check);
1981
2175
  }
1982
2176
  }
1983
2177
  return { status: status.value, value: input.data };
1984
2178
  }
2179
+ _regex(regex, validation, message) {
2180
+ return this.refinement((data) => regex.test(data), {
2181
+ validation,
2182
+ code: ZodIssueCode.invalid_string,
2183
+ ...errorUtil.errToObj(message)
2184
+ });
2185
+ }
1985
2186
  _addCheck(check) {
1986
2187
  return new _ZodString({
1987
2188
  ...this._def,
@@ -1994,19 +2195,38 @@ var ZodString = class _ZodString extends ZodType {
1994
2195
  url(message) {
1995
2196
  return this._addCheck({ kind: "url", ...errorUtil.errToObj(message) });
1996
2197
  }
2198
+ emoji(message) {
2199
+ return this._addCheck({ kind: "emoji", ...errorUtil.errToObj(message) });
2200
+ }
1997
2201
  uuid(message) {
1998
2202
  return this._addCheck({ kind: "uuid", ...errorUtil.errToObj(message) });
1999
2203
  }
2204
+ nanoid(message) {
2205
+ return this._addCheck({ kind: "nanoid", ...errorUtil.errToObj(message) });
2206
+ }
2000
2207
  cuid(message) {
2001
2208
  return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) });
2002
2209
  }
2210
+ cuid2(message) {
2211
+ return this._addCheck({ kind: "cuid2", ...errorUtil.errToObj(message) });
2212
+ }
2213
+ ulid(message) {
2214
+ return this._addCheck({ kind: "ulid", ...errorUtil.errToObj(message) });
2215
+ }
2216
+ base64(message) {
2217
+ return this._addCheck({ kind: "base64", ...errorUtil.errToObj(message) });
2218
+ }
2219
+ ip(options) {
2220
+ return this._addCheck({ kind: "ip", ...errorUtil.errToObj(options) });
2221
+ }
2003
2222
  datetime(options) {
2004
- var _a;
2223
+ var _a, _b;
2005
2224
  if (typeof options === "string") {
2006
2225
  return this._addCheck({
2007
2226
  kind: "datetime",
2008
2227
  precision: null,
2009
2228
  offset: false,
2229
+ local: false,
2010
2230
  message: options
2011
2231
  });
2012
2232
  }
@@ -2014,9 +2234,30 @@ var ZodString = class _ZodString extends ZodType {
2014
2234
  kind: "datetime",
2015
2235
  precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === "undefined" ? null : options === null || options === void 0 ? void 0 : options.precision,
2016
2236
  offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,
2237
+ local: (_b = options === null || options === void 0 ? void 0 : options.local) !== null && _b !== void 0 ? _b : false,
2238
+ ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message)
2239
+ });
2240
+ }
2241
+ date(message) {
2242
+ return this._addCheck({ kind: "date", message });
2243
+ }
2244
+ time(options) {
2245
+ if (typeof options === "string") {
2246
+ return this._addCheck({
2247
+ kind: "time",
2248
+ precision: null,
2249
+ message: options
2250
+ });
2251
+ }
2252
+ return this._addCheck({
2253
+ kind: "time",
2254
+ precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === "undefined" ? null : options === null || options === void 0 ? void 0 : options.precision,
2017
2255
  ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message)
2018
2256
  });
2019
2257
  }
2258
+ duration(message) {
2259
+ return this._addCheck({ kind: "duration", ...errorUtil.errToObj(message) });
2260
+ }
2020
2261
  regex(regex, message) {
2021
2262
  return this._addCheck({
2022
2263
  kind: "regex",
@@ -2024,6 +2265,14 @@ var ZodString = class _ZodString extends ZodType {
2024
2265
  ...errorUtil.errToObj(message)
2025
2266
  });
2026
2267
  }
2268
+ includes(value, options) {
2269
+ return this._addCheck({
2270
+ kind: "includes",
2271
+ value,
2272
+ position: options === null || options === void 0 ? void 0 : options.position,
2273
+ ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message)
2274
+ });
2275
+ }
2027
2276
  startsWith(value, message) {
2028
2277
  return this._addCheck({
2029
2278
  kind: "startsWith",
@@ -2059,21 +2308,73 @@ var ZodString = class _ZodString extends ZodType {
2059
2308
  ...errorUtil.errToObj(message)
2060
2309
  });
2061
2310
  }
2311
+ /**
2312
+ * @deprecated Use z.string().min(1) instead.
2313
+ * @see {@link ZodString.min}
2314
+ */
2315
+ nonempty(message) {
2316
+ return this.min(1, errorUtil.errToObj(message));
2317
+ }
2318
+ trim() {
2319
+ return new _ZodString({
2320
+ ...this._def,
2321
+ checks: [...this._def.checks, { kind: "trim" }]
2322
+ });
2323
+ }
2324
+ toLowerCase() {
2325
+ return new _ZodString({
2326
+ ...this._def,
2327
+ checks: [...this._def.checks, { kind: "toLowerCase" }]
2328
+ });
2329
+ }
2330
+ toUpperCase() {
2331
+ return new _ZodString({
2332
+ ...this._def,
2333
+ checks: [...this._def.checks, { kind: "toUpperCase" }]
2334
+ });
2335
+ }
2062
2336
  get isDatetime() {
2063
2337
  return !!this._def.checks.find((ch) => ch.kind === "datetime");
2064
2338
  }
2339
+ get isDate() {
2340
+ return !!this._def.checks.find((ch) => ch.kind === "date");
2341
+ }
2342
+ get isTime() {
2343
+ return !!this._def.checks.find((ch) => ch.kind === "time");
2344
+ }
2345
+ get isDuration() {
2346
+ return !!this._def.checks.find((ch) => ch.kind === "duration");
2347
+ }
2065
2348
  get isEmail() {
2066
2349
  return !!this._def.checks.find((ch) => ch.kind === "email");
2067
2350
  }
2068
2351
  get isURL() {
2069
2352
  return !!this._def.checks.find((ch) => ch.kind === "url");
2070
2353
  }
2354
+ get isEmoji() {
2355
+ return !!this._def.checks.find((ch) => ch.kind === "emoji");
2356
+ }
2071
2357
  get isUUID() {
2072
2358
  return !!this._def.checks.find((ch) => ch.kind === "uuid");
2073
2359
  }
2360
+ get isNANOID() {
2361
+ return !!this._def.checks.find((ch) => ch.kind === "nanoid");
2362
+ }
2074
2363
  get isCUID() {
2075
2364
  return !!this._def.checks.find((ch) => ch.kind === "cuid");
2076
2365
  }
2366
+ get isCUID2() {
2367
+ return !!this._def.checks.find((ch) => ch.kind === "cuid2");
2368
+ }
2369
+ get isULID() {
2370
+ return !!this._def.checks.find((ch) => ch.kind === "ulid");
2371
+ }
2372
+ get isIP() {
2373
+ return !!this._def.checks.find((ch) => ch.kind === "ip");
2374
+ }
2375
+ get isBase64() {
2376
+ return !!this._def.checks.find((ch) => ch.kind === "base64");
2377
+ }
2077
2378
  get minLength() {
2078
2379
  let min = null;
2079
2380
  for (const ch of this._def.checks) {
@@ -2283,6 +2584,19 @@ var ZodNumber = class _ZodNumber extends ZodType {
2283
2584
  message: errorUtil.toString(message)
2284
2585
  });
2285
2586
  }
2587
+ safe(message) {
2588
+ return this._addCheck({
2589
+ kind: "min",
2590
+ inclusive: true,
2591
+ value: Number.MIN_SAFE_INTEGER,
2592
+ message: errorUtil.toString(message)
2593
+ })._addCheck({
2594
+ kind: "max",
2595
+ inclusive: true,
2596
+ value: Number.MAX_SAFE_INTEGER,
2597
+ message: errorUtil.toString(message)
2598
+ });
2599
+ }
2286
2600
  get minValue() {
2287
2601
  let min = null;
2288
2602
  for (const ch of this._def.checks) {
@@ -2304,7 +2618,22 @@ var ZodNumber = class _ZodNumber extends ZodType {
2304
2618
  return max;
2305
2619
  }
2306
2620
  get isInt() {
2307
- return !!this._def.checks.find((ch) => ch.kind === "int");
2621
+ return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util.isInteger(ch.value));
2622
+ }
2623
+ get isFinite() {
2624
+ let max = null, min = null;
2625
+ for (const ch of this._def.checks) {
2626
+ if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") {
2627
+ return true;
2628
+ } else if (ch.kind === "min") {
2629
+ if (min === null || ch.value > min)
2630
+ min = ch.value;
2631
+ } else if (ch.kind === "max") {
2632
+ if (max === null || ch.value < max)
2633
+ max = ch.value;
2634
+ }
2635
+ }
2636
+ return Number.isFinite(min) && Number.isFinite(max);
2308
2637
  }
2309
2638
  };
2310
2639
  ZodNumber.create = (params) => {
@@ -2315,27 +2644,167 @@ ZodNumber.create = (params) => {
2315
2644
  ...processCreateParams(params)
2316
2645
  });
2317
2646
  };
2318
- var ZodBigInt = class extends ZodType {
2647
+ var ZodBigInt = class _ZodBigInt extends ZodType {
2648
+ constructor() {
2649
+ super(...arguments);
2650
+ this.min = this.gte;
2651
+ this.max = this.lte;
2652
+ }
2319
2653
  _parse(input) {
2320
2654
  if (this._def.coerce) {
2321
2655
  input.data = BigInt(input.data);
2322
2656
  }
2323
2657
  const parsedType = this._getType(input);
2324
2658
  if (parsedType !== ZodParsedType.bigint) {
2325
- const ctx = this._getOrReturnCtx(input);
2326
- addIssueToContext(ctx, {
2659
+ const ctx2 = this._getOrReturnCtx(input);
2660
+ addIssueToContext(ctx2, {
2327
2661
  code: ZodIssueCode.invalid_type,
2328
2662
  expected: ZodParsedType.bigint,
2329
- received: ctx.parsedType
2663
+ received: ctx2.parsedType
2330
2664
  });
2331
2665
  return INVALID;
2332
2666
  }
2333
- return OK(input.data);
2667
+ let ctx = void 0;
2668
+ const status = new ParseStatus();
2669
+ for (const check of this._def.checks) {
2670
+ if (check.kind === "min") {
2671
+ const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;
2672
+ if (tooSmall) {
2673
+ ctx = this._getOrReturnCtx(input, ctx);
2674
+ addIssueToContext(ctx, {
2675
+ code: ZodIssueCode.too_small,
2676
+ type: "bigint",
2677
+ minimum: check.value,
2678
+ inclusive: check.inclusive,
2679
+ message: check.message
2680
+ });
2681
+ status.dirty();
2682
+ }
2683
+ } else if (check.kind === "max") {
2684
+ const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;
2685
+ if (tooBig) {
2686
+ ctx = this._getOrReturnCtx(input, ctx);
2687
+ addIssueToContext(ctx, {
2688
+ code: ZodIssueCode.too_big,
2689
+ type: "bigint",
2690
+ maximum: check.value,
2691
+ inclusive: check.inclusive,
2692
+ message: check.message
2693
+ });
2694
+ status.dirty();
2695
+ }
2696
+ } else if (check.kind === "multipleOf") {
2697
+ if (input.data % check.value !== BigInt(0)) {
2698
+ ctx = this._getOrReturnCtx(input, ctx);
2699
+ addIssueToContext(ctx, {
2700
+ code: ZodIssueCode.not_multiple_of,
2701
+ multipleOf: check.value,
2702
+ message: check.message
2703
+ });
2704
+ status.dirty();
2705
+ }
2706
+ } else {
2707
+ util.assertNever(check);
2708
+ }
2709
+ }
2710
+ return { status: status.value, value: input.data };
2711
+ }
2712
+ gte(value, message) {
2713
+ return this.setLimit("min", value, true, errorUtil.toString(message));
2714
+ }
2715
+ gt(value, message) {
2716
+ return this.setLimit("min", value, false, errorUtil.toString(message));
2717
+ }
2718
+ lte(value, message) {
2719
+ return this.setLimit("max", value, true, errorUtil.toString(message));
2720
+ }
2721
+ lt(value, message) {
2722
+ return this.setLimit("max", value, false, errorUtil.toString(message));
2723
+ }
2724
+ setLimit(kind, value, inclusive, message) {
2725
+ return new _ZodBigInt({
2726
+ ...this._def,
2727
+ checks: [
2728
+ ...this._def.checks,
2729
+ {
2730
+ kind,
2731
+ value,
2732
+ inclusive,
2733
+ message: errorUtil.toString(message)
2734
+ }
2735
+ ]
2736
+ });
2737
+ }
2738
+ _addCheck(check) {
2739
+ return new _ZodBigInt({
2740
+ ...this._def,
2741
+ checks: [...this._def.checks, check]
2742
+ });
2743
+ }
2744
+ positive(message) {
2745
+ return this._addCheck({
2746
+ kind: "min",
2747
+ value: BigInt(0),
2748
+ inclusive: false,
2749
+ message: errorUtil.toString(message)
2750
+ });
2751
+ }
2752
+ negative(message) {
2753
+ return this._addCheck({
2754
+ kind: "max",
2755
+ value: BigInt(0),
2756
+ inclusive: false,
2757
+ message: errorUtil.toString(message)
2758
+ });
2759
+ }
2760
+ nonpositive(message) {
2761
+ return this._addCheck({
2762
+ kind: "max",
2763
+ value: BigInt(0),
2764
+ inclusive: true,
2765
+ message: errorUtil.toString(message)
2766
+ });
2767
+ }
2768
+ nonnegative(message) {
2769
+ return this._addCheck({
2770
+ kind: "min",
2771
+ value: BigInt(0),
2772
+ inclusive: true,
2773
+ message: errorUtil.toString(message)
2774
+ });
2775
+ }
2776
+ multipleOf(value, message) {
2777
+ return this._addCheck({
2778
+ kind: "multipleOf",
2779
+ value,
2780
+ message: errorUtil.toString(message)
2781
+ });
2782
+ }
2783
+ get minValue() {
2784
+ let min = null;
2785
+ for (const ch of this._def.checks) {
2786
+ if (ch.kind === "min") {
2787
+ if (min === null || ch.value > min)
2788
+ min = ch.value;
2789
+ }
2790
+ }
2791
+ return min;
2792
+ }
2793
+ get maxValue() {
2794
+ let max = null;
2795
+ for (const ch of this._def.checks) {
2796
+ if (ch.kind === "max") {
2797
+ if (max === null || ch.value < max)
2798
+ max = ch.value;
2799
+ }
2800
+ }
2801
+ return max;
2334
2802
  }
2335
2803
  };
2336
2804
  ZodBigInt.create = (params) => {
2337
2805
  var _a;
2338
2806
  return new ZodBigInt({
2807
+ checks: [],
2339
2808
  typeName: ZodFirstPartyTypeKind.ZodBigInt,
2340
2809
  coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,
2341
2810
  ...processCreateParams(params)
@@ -2661,13 +3130,13 @@ var ZodArray = class _ZodArray extends ZodType {
2661
3130
  }
2662
3131
  }
2663
3132
  if (ctx.common.async) {
2664
- return Promise.all(ctx.data.map((item, i) => {
3133
+ return Promise.all([...ctx.data].map((item, i) => {
2665
3134
  return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));
2666
3135
  })).then((result2) => {
2667
3136
  return ParseStatus.mergeArray(status, result2);
2668
3137
  });
2669
3138
  }
2670
- const result = ctx.data.map((item, i) => {
3139
+ const result = [...ctx.data].map((item, i) => {
2671
3140
  return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));
2672
3141
  });
2673
3142
  return ParseStatus.mergeArray(status, result);
@@ -2707,25 +3176,6 @@ ZodArray.create = (schema3, params) => {
2707
3176
  ...processCreateParams(params)
2708
3177
  });
2709
3178
  };
2710
- var objectUtil;
2711
- (function(objectUtil2) {
2712
- objectUtil2.mergeShapes = (first, second) => {
2713
- return {
2714
- ...first,
2715
- ...second
2716
- // second overwrites first
2717
- };
2718
- };
2719
- })(objectUtil || (objectUtil = {}));
2720
- var AugmentFactory = (def) => (augmentation) => {
2721
- return new ZodObject({
2722
- ...def,
2723
- shape: () => ({
2724
- ...def.shape(),
2725
- ...augmentation
2726
- })
2727
- });
2728
- };
2729
3179
  function deepPartialify(schema3) {
2730
3180
  if (schema3 instanceof ZodObject) {
2731
3181
  const newShape = {};
@@ -2738,7 +3188,10 @@ function deepPartialify(schema3) {
2738
3188
  shape: () => newShape
2739
3189
  });
2740
3190
  } else if (schema3 instanceof ZodArray) {
2741
- return ZodArray.create(deepPartialify(schema3.element));
3191
+ return new ZodArray({
3192
+ ...schema3._def,
3193
+ type: deepPartialify(schema3.element)
3194
+ });
2742
3195
  } else if (schema3 instanceof ZodOptional) {
2743
3196
  return ZodOptional.create(deepPartialify(schema3.unwrap()));
2744
3197
  } else if (schema3 instanceof ZodNullable) {
@@ -2754,8 +3207,7 @@ var ZodObject = class _ZodObject extends ZodType {
2754
3207
  super(...arguments);
2755
3208
  this._cached = null;
2756
3209
  this.nonstrict = this.passthrough;
2757
- this.augment = AugmentFactory(this._def);
2758
- this.extend = AugmentFactory(this._def);
3210
+ this.augment = this.extend;
2759
3211
  }
2760
3212
  _getCached() {
2761
3213
  if (this._cached !== null)
@@ -2836,9 +3288,10 @@ var ZodObject = class _ZodObject extends ZodType {
2836
3288
  const syncPairs = [];
2837
3289
  for (const pair of pairs) {
2838
3290
  const key = await pair.key;
3291
+ const value = await pair.value;
2839
3292
  syncPairs.push({
2840
3293
  key,
2841
- value: await pair.value,
3294
+ value,
2842
3295
  alwaysSet: pair.alwaysSet
2843
3296
  });
2844
3297
  }
@@ -2885,8 +3338,31 @@ var ZodObject = class _ZodObject extends ZodType {
2885
3338
  unknownKeys: "passthrough"
2886
3339
  });
2887
3340
  }
2888
- setKey(key, schema3) {
2889
- return this.augment({ [key]: schema3 });
3341
+ // const AugmentFactory =
3342
+ // <Def extends ZodObjectDef>(def: Def) =>
3343
+ // <Augmentation extends ZodRawShape>(
3344
+ // augmentation: Augmentation
3345
+ // ): ZodObject<
3346
+ // extendShape<ReturnType<Def["shape"]>, Augmentation>,
3347
+ // Def["unknownKeys"],
3348
+ // Def["catchall"]
3349
+ // > => {
3350
+ // return new ZodObject({
3351
+ // ...def,
3352
+ // shape: () => ({
3353
+ // ...def.shape(),
3354
+ // ...augmentation,
3355
+ // }),
3356
+ // }) as any;
3357
+ // };
3358
+ extend(augmentation) {
3359
+ return new _ZodObject({
3360
+ ...this._def,
3361
+ shape: () => ({
3362
+ ...this._def.shape(),
3363
+ ...augmentation
3364
+ })
3365
+ });
2890
3366
  }
2891
3367
  /**
2892
3368
  * Prior to zod@1.0.12 there was a bug in the
@@ -2897,11 +3373,73 @@ var ZodObject = class _ZodObject extends ZodType {
2897
3373
  const merged = new _ZodObject({
2898
3374
  unknownKeys: merging._def.unknownKeys,
2899
3375
  catchall: merging._def.catchall,
2900
- shape: () => objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
3376
+ shape: () => ({
3377
+ ...this._def.shape(),
3378
+ ...merging._def.shape()
3379
+ }),
2901
3380
  typeName: ZodFirstPartyTypeKind.ZodObject
2902
3381
  });
2903
3382
  return merged;
2904
3383
  }
3384
+ // merge<
3385
+ // Incoming extends AnyZodObject,
3386
+ // Augmentation extends Incoming["shape"],
3387
+ // NewOutput extends {
3388
+ // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation
3389
+ // ? Augmentation[k]["_output"]
3390
+ // : k extends keyof Output
3391
+ // ? Output[k]
3392
+ // : never;
3393
+ // },
3394
+ // NewInput extends {
3395
+ // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation
3396
+ // ? Augmentation[k]["_input"]
3397
+ // : k extends keyof Input
3398
+ // ? Input[k]
3399
+ // : never;
3400
+ // }
3401
+ // >(
3402
+ // merging: Incoming
3403
+ // ): ZodObject<
3404
+ // extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
3405
+ // Incoming["_def"]["unknownKeys"],
3406
+ // Incoming["_def"]["catchall"],
3407
+ // NewOutput,
3408
+ // NewInput
3409
+ // > {
3410
+ // const merged: any = new ZodObject({
3411
+ // unknownKeys: merging._def.unknownKeys,
3412
+ // catchall: merging._def.catchall,
3413
+ // shape: () =>
3414
+ // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
3415
+ // typeName: ZodFirstPartyTypeKind.ZodObject,
3416
+ // }) as any;
3417
+ // return merged;
3418
+ // }
3419
+ setKey(key, schema3) {
3420
+ return this.augment({ [key]: schema3 });
3421
+ }
3422
+ // merge<Incoming extends AnyZodObject>(
3423
+ // merging: Incoming
3424
+ // ): //ZodObject<T & Incoming["_shape"], UnknownKeys, Catchall> = (merging) => {
3425
+ // ZodObject<
3426
+ // extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
3427
+ // Incoming["_def"]["unknownKeys"],
3428
+ // Incoming["_def"]["catchall"]
3429
+ // > {
3430
+ // // const mergedShape = objectUtil.mergeShapes(
3431
+ // // this._def.shape(),
3432
+ // // merging._def.shape()
3433
+ // // );
3434
+ // const merged: any = new ZodObject({
3435
+ // unknownKeys: merging._def.unknownKeys,
3436
+ // catchall: merging._def.catchall,
3437
+ // shape: () =>
3438
+ // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
3439
+ // typeName: ZodFirstPartyTypeKind.ZodObject,
3440
+ // }) as any;
3441
+ // return merged;
3442
+ // }
2905
3443
  catchall(index4) {
2906
3444
  return new _ZodObject({
2907
3445
  ...this._def,
@@ -2910,9 +3448,10 @@ var ZodObject = class _ZodObject extends ZodType {
2910
3448
  }
2911
3449
  pick(mask) {
2912
3450
  const shape = {};
2913
- util.objectKeys(mask).map((key) => {
2914
- if (this.shape[key])
3451
+ util.objectKeys(mask).forEach((key) => {
3452
+ if (mask[key] && this.shape[key]) {
2915
3453
  shape[key] = this.shape[key];
3454
+ }
2916
3455
  });
2917
3456
  return new _ZodObject({
2918
3457
  ...this._def,
@@ -2921,8 +3460,8 @@ var ZodObject = class _ZodObject extends ZodType {
2921
3460
  }
2922
3461
  omit(mask) {
2923
3462
  const shape = {};
2924
- util.objectKeys(this.shape).map((key) => {
2925
- if (util.objectKeys(mask).indexOf(key) === -1) {
3463
+ util.objectKeys(this.shape).forEach((key) => {
3464
+ if (!mask[key]) {
2926
3465
  shape[key] = this.shape[key];
2927
3466
  }
2928
3467
  });
@@ -2931,29 +3470,22 @@ var ZodObject = class _ZodObject extends ZodType {
2931
3470
  shape: () => shape
2932
3471
  });
2933
3472
  }
3473
+ /**
3474
+ * @deprecated
3475
+ */
2934
3476
  deepPartial() {
2935
3477
  return deepPartialify(this);
2936
3478
  }
2937
3479
  partial(mask) {
2938
3480
  const newShape = {};
2939
- if (mask) {
2940
- util.objectKeys(this.shape).map((key) => {
2941
- if (util.objectKeys(mask).indexOf(key) === -1) {
2942
- newShape[key] = this.shape[key];
2943
- } else {
2944
- newShape[key] = this.shape[key].optional();
2945
- }
2946
- });
2947
- return new _ZodObject({
2948
- ...this._def,
2949
- shape: () => newShape
2950
- });
2951
- } else {
2952
- for (const key in this.shape) {
2953
- const fieldSchema = this.shape[key];
3481
+ util.objectKeys(this.shape).forEach((key) => {
3482
+ const fieldSchema = this.shape[key];
3483
+ if (mask && !mask[key]) {
3484
+ newShape[key] = fieldSchema;
3485
+ } else {
2954
3486
  newShape[key] = fieldSchema.optional();
2955
3487
  }
2956
- }
3488
+ });
2957
3489
  return new _ZodObject({
2958
3490
  ...this._def,
2959
3491
  shape: () => newShape
@@ -2961,21 +3493,10 @@ var ZodObject = class _ZodObject extends ZodType {
2961
3493
  }
2962
3494
  required(mask) {
2963
3495
  const newShape = {};
2964
- if (mask) {
2965
- util.objectKeys(this.shape).map((key) => {
2966
- if (util.objectKeys(mask).indexOf(key) === -1) {
2967
- newShape[key] = this.shape[key];
2968
- } else {
2969
- const fieldSchema = this.shape[key];
2970
- let newField = fieldSchema;
2971
- while (newField instanceof ZodOptional) {
2972
- newField = newField._def.innerType;
2973
- }
2974
- newShape[key] = newField;
2975
- }
2976
- });
2977
- } else {
2978
- for (const key in this.shape) {
3496
+ util.objectKeys(this.shape).forEach((key) => {
3497
+ if (mask && !mask[key]) {
3498
+ newShape[key] = this.shape[key];
3499
+ } else {
2979
3500
  const fieldSchema = this.shape[key];
2980
3501
  let newField = fieldSchema;
2981
3502
  while (newField instanceof ZodOptional) {
@@ -2983,7 +3504,7 @@ var ZodObject = class _ZodObject extends ZodType {
2983
3504
  }
2984
3505
  newShape[key] = newField;
2985
3506
  }
2986
- }
3507
+ });
2987
3508
  return new _ZodObject({
2988
3509
  ...this._def,
2989
3510
  shape: () => newShape
@@ -3121,15 +3642,25 @@ var getDiscriminator = (type) => {
3121
3642
  } else if (type instanceof ZodEnum) {
3122
3643
  return type.options;
3123
3644
  } else if (type instanceof ZodNativeEnum) {
3124
- return Object.keys(type.enum);
3645
+ return util.objectValues(type.enum);
3125
3646
  } else if (type instanceof ZodDefault) {
3126
3647
  return getDiscriminator(type._def.innerType);
3127
3648
  } else if (type instanceof ZodUndefined) {
3128
3649
  return [void 0];
3129
3650
  } else if (type instanceof ZodNull) {
3130
3651
  return [null];
3652
+ } else if (type instanceof ZodOptional) {
3653
+ return [void 0, ...getDiscriminator(type.unwrap())];
3654
+ } else if (type instanceof ZodNullable) {
3655
+ return [null, ...getDiscriminator(type.unwrap())];
3656
+ } else if (type instanceof ZodBranded) {
3657
+ return getDiscriminator(type.unwrap());
3658
+ } else if (type instanceof ZodReadonly) {
3659
+ return getDiscriminator(type.unwrap());
3660
+ } else if (type instanceof ZodCatch) {
3661
+ return getDiscriminator(type._def.innerType);
3131
3662
  } else {
3132
- return null;
3663
+ return [];
3133
3664
  }
3134
3665
  };
3135
3666
  var ZodDiscriminatedUnion = class _ZodDiscriminatedUnion extends ZodType {
@@ -3189,7 +3720,7 @@ var ZodDiscriminatedUnion = class _ZodDiscriminatedUnion extends ZodType {
3189
3720
  const optionsMap = /* @__PURE__ */ new Map();
3190
3721
  for (const type of options) {
3191
3722
  const discriminatorValues = getDiscriminator(type.shape[discriminator]);
3192
- if (!discriminatorValues) {
3723
+ if (!discriminatorValues.length) {
3193
3724
  throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`);
3194
3725
  }
3195
3726
  for (const value of discriminatorValues) {
@@ -3331,7 +3862,7 @@ var ZodTuple = class _ZodTuple extends ZodType {
3331
3862
  });
3332
3863
  status.dirty();
3333
3864
  }
3334
- const items = ctx.data.map((item, itemIndex) => {
3865
+ const items = [...ctx.data].map((item, itemIndex) => {
3335
3866
  const schema3 = this._def.items[itemIndex] || this._def.rest;
3336
3867
  if (!schema3)
3337
3868
  return null;
@@ -3389,7 +3920,8 @@ var ZodRecord = class _ZodRecord extends ZodType {
3389
3920
  for (const key in ctx.data) {
3390
3921
  pairs.push({
3391
3922
  key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),
3392
- value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key))
3923
+ value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),
3924
+ alwaysSet: key in ctx.data
3393
3925
  });
3394
3926
  }
3395
3927
  if (ctx.common.async) {
@@ -3419,6 +3951,12 @@ var ZodRecord = class _ZodRecord extends ZodType {
3419
3951
  }
3420
3952
  };
3421
3953
  var ZodMap = class extends ZodType {
3954
+ get keySchema() {
3955
+ return this._def.keyType;
3956
+ }
3957
+ get valueSchema() {
3958
+ return this._def.valueType;
3959
+ }
3422
3960
  _parse(input) {
3423
3961
  const { status, ctx } = this._processInputParams(input);
3424
3962
  if (ctx.parsedType !== ZodParsedType.map) {
@@ -3613,27 +4151,29 @@ var ZodFunction = class _ZodFunction extends ZodType {
3613
4151
  const params = { errorMap: ctx.common.contextualErrorMap };
3614
4152
  const fn = ctx.data;
3615
4153
  if (this._def.returns instanceof ZodPromise) {
3616
- return OK(async (...args) => {
4154
+ const me = this;
4155
+ return OK(async function(...args) {
3617
4156
  const error = new ZodError([]);
3618
- const parsedArgs = await this._def.args.parseAsync(args, params).catch((e) => {
4157
+ const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {
3619
4158
  error.addIssue(makeArgsIssue(args, e));
3620
4159
  throw error;
3621
4160
  });
3622
- const result = await fn(...parsedArgs);
3623
- const parsedReturns = await this._def.returns._def.type.parseAsync(result, params).catch((e) => {
4161
+ const result = await Reflect.apply(fn, this, parsedArgs);
4162
+ const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e) => {
3624
4163
  error.addIssue(makeReturnsIssue(result, e));
3625
4164
  throw error;
3626
4165
  });
3627
4166
  return parsedReturns;
3628
4167
  });
3629
4168
  } else {
3630
- return OK((...args) => {
3631
- const parsedArgs = this._def.args.safeParse(args, params);
4169
+ const me = this;
4170
+ return OK(function(...args) {
4171
+ const parsedArgs = me._def.args.safeParse(args, params);
3632
4172
  if (!parsedArgs.success) {
3633
4173
  throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);
3634
4174
  }
3635
- const result = fn(...parsedArgs.data);
3636
- const parsedReturns = this._def.returns.safeParse(result, params);
4175
+ const result = Reflect.apply(fn, this, parsedArgs.data);
4176
+ const parsedReturns = me._def.returns.safeParse(result, params);
3637
4177
  if (!parsedReturns.success) {
3638
4178
  throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);
3639
4179
  }
@@ -3698,6 +4238,7 @@ var ZodLiteral = class extends ZodType {
3698
4238
  if (input.data !== this._def.value) {
3699
4239
  const ctx = this._getOrReturnCtx(input);
3700
4240
  addIssueToContext(ctx, {
4241
+ received: ctx.data,
3701
4242
  code: ZodIssueCode.invalid_literal,
3702
4243
  expected: this._def.value
3703
4244
  });
@@ -3723,7 +4264,11 @@ function createZodEnum(values, params) {
3723
4264
  ...processCreateParams(params)
3724
4265
  });
3725
4266
  }
3726
- var ZodEnum = class extends ZodType {
4267
+ var ZodEnum = class _ZodEnum extends ZodType {
4268
+ constructor() {
4269
+ super(...arguments);
4270
+ _ZodEnum_cache.set(this, void 0);
4271
+ }
3727
4272
  _parse(input) {
3728
4273
  if (typeof input.data !== "string") {
3729
4274
  const ctx = this._getOrReturnCtx(input);
@@ -3735,7 +4280,10 @@ var ZodEnum = class extends ZodType {
3735
4280
  });
3736
4281
  return INVALID;
3737
4282
  }
3738
- if (this._def.values.indexOf(input.data) === -1) {
4283
+ if (!__classPrivateFieldGet(this, _ZodEnum_cache, "f")) {
4284
+ __classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), "f");
4285
+ }
4286
+ if (!__classPrivateFieldGet(this, _ZodEnum_cache, "f").has(input.data)) {
3739
4287
  const ctx = this._getOrReturnCtx(input);
3740
4288
  const expectedValues = this._def.values;
3741
4289
  addIssueToContext(ctx, {
@@ -3771,9 +4319,26 @@ var ZodEnum = class extends ZodType {
3771
4319
  }
3772
4320
  return enumValues;
3773
4321
  }
4322
+ extract(values, newDef = this._def) {
4323
+ return _ZodEnum.create(values, {
4324
+ ...this._def,
4325
+ ...newDef
4326
+ });
4327
+ }
4328
+ exclude(values, newDef = this._def) {
4329
+ return _ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {
4330
+ ...this._def,
4331
+ ...newDef
4332
+ });
4333
+ }
3774
4334
  };
4335
+ _ZodEnum_cache = /* @__PURE__ */ new WeakMap();
3775
4336
  ZodEnum.create = createZodEnum;
3776
4337
  var ZodNativeEnum = class extends ZodType {
4338
+ constructor() {
4339
+ super(...arguments);
4340
+ _ZodNativeEnum_cache.set(this, void 0);
4341
+ }
3777
4342
  _parse(input) {
3778
4343
  const nativeEnumValues = util.getValidEnumValues(this._def.values);
3779
4344
  const ctx = this._getOrReturnCtx(input);
@@ -3786,7 +4351,10 @@ var ZodNativeEnum = class extends ZodType {
3786
4351
  });
3787
4352
  return INVALID;
3788
4353
  }
3789
- if (nativeEnumValues.indexOf(input.data) === -1) {
4354
+ if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, "f")) {
4355
+ __classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)), "f");
4356
+ }
4357
+ if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, "f").has(input.data)) {
3790
4358
  const expectedValues = util.objectValues(nativeEnumValues);
3791
4359
  addIssueToContext(ctx, {
3792
4360
  received: ctx.data,
@@ -3801,6 +4369,7 @@ var ZodNativeEnum = class extends ZodType {
3801
4369
  return this._def.values;
3802
4370
  }
3803
4371
  };
4372
+ _ZodNativeEnum_cache = /* @__PURE__ */ new WeakMap();
3804
4373
  ZodNativeEnum.create = (values, params) => {
3805
4374
  return new ZodNativeEnum({
3806
4375
  values,
@@ -3809,6 +4378,9 @@ ZodNativeEnum.create = (values, params) => {
3809
4378
  });
3810
4379
  };
3811
4380
  var ZodPromise = class extends ZodType {
4381
+ unwrap() {
4382
+ return this._def.type;
4383
+ }
3812
4384
  _parse(input) {
3813
4385
  const { ctx } = this._processInputParams(input);
3814
4386
  if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {
@@ -3845,24 +4417,6 @@ var ZodEffects = class extends ZodType {
3845
4417
  _parse(input) {
3846
4418
  const { status, ctx } = this._processInputParams(input);
3847
4419
  const effect = this._def.effect || null;
3848
- if (effect.type === "preprocess") {
3849
- const processed = effect.transform(ctx.data);
3850
- if (ctx.common.async) {
3851
- return Promise.resolve(processed).then((processed2) => {
3852
- return this._def.schema._parseAsync({
3853
- data: processed2,
3854
- path: ctx.path,
3855
- parent: ctx
3856
- });
3857
- });
3858
- } else {
3859
- return this._def.schema._parseSync({
3860
- data: processed,
3861
- path: ctx.path,
3862
- parent: ctx
3863
- });
3864
- }
3865
- }
3866
4420
  const checkCtx = {
3867
4421
  addIssue: (arg) => {
3868
4422
  addIssueToContext(ctx, arg);
@@ -3877,6 +4431,42 @@ var ZodEffects = class extends ZodType {
3877
4431
  }
3878
4432
  };
3879
4433
  checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);
4434
+ if (effect.type === "preprocess") {
4435
+ const processed = effect.transform(ctx.data, checkCtx);
4436
+ if (ctx.common.async) {
4437
+ return Promise.resolve(processed).then(async (processed2) => {
4438
+ if (status.value === "aborted")
4439
+ return INVALID;
4440
+ const result = await this._def.schema._parseAsync({
4441
+ data: processed2,
4442
+ path: ctx.path,
4443
+ parent: ctx
4444
+ });
4445
+ if (result.status === "aborted")
4446
+ return INVALID;
4447
+ if (result.status === "dirty")
4448
+ return DIRTY(result.value);
4449
+ if (status.value === "dirty")
4450
+ return DIRTY(result.value);
4451
+ return result;
4452
+ });
4453
+ } else {
4454
+ if (status.value === "aborted")
4455
+ return INVALID;
4456
+ const result = this._def.schema._parseSync({
4457
+ data: processed,
4458
+ path: ctx.path,
4459
+ parent: ctx
4460
+ });
4461
+ if (result.status === "aborted")
4462
+ return INVALID;
4463
+ if (result.status === "dirty")
4464
+ return DIRTY(result.value);
4465
+ if (status.value === "dirty")
4466
+ return DIRTY(result.value);
4467
+ return result;
4468
+ }
4469
+ }
3880
4470
  if (effect.type === "refinement") {
3881
4471
  const executeRefinement = (acc) => {
3882
4472
  const result = effect.refinement(acc, checkCtx);
@@ -4019,26 +4609,45 @@ ZodDefault.create = (type, params) => {
4019
4609
  var ZodCatch = class extends ZodType {
4020
4610
  _parse(input) {
4021
4611
  const { ctx } = this._processInputParams(input);
4612
+ const newCtx = {
4613
+ ...ctx,
4614
+ common: {
4615
+ ...ctx.common,
4616
+ issues: []
4617
+ }
4618
+ };
4022
4619
  const result = this._def.innerType._parse({
4023
- data: ctx.data,
4024
- path: ctx.path,
4025
- parent: ctx
4620
+ data: newCtx.data,
4621
+ path: newCtx.path,
4622
+ parent: {
4623
+ ...newCtx
4624
+ }
4026
4625
  });
4027
4626
  if (isAsync(result)) {
4028
4627
  return result.then((result2) => {
4029
4628
  return {
4030
4629
  status: "valid",
4031
- value: result2.status === "valid" ? result2.value : this._def.defaultValue()
4630
+ value: result2.status === "valid" ? result2.value : this._def.catchValue({
4631
+ get error() {
4632
+ return new ZodError(newCtx.common.issues);
4633
+ },
4634
+ input: newCtx.data
4635
+ })
4032
4636
  };
4033
4637
  });
4034
4638
  } else {
4035
4639
  return {
4036
4640
  status: "valid",
4037
- value: result.status === "valid" ? result.value : this._def.defaultValue()
4641
+ value: result.status === "valid" ? result.value : this._def.catchValue({
4642
+ get error() {
4643
+ return new ZodError(newCtx.common.issues);
4644
+ },
4645
+ input: newCtx.data
4646
+ })
4038
4647
  };
4039
4648
  }
4040
4649
  }
4041
- removeDefault() {
4650
+ removeCatch() {
4042
4651
  return this._def.innerType;
4043
4652
  }
4044
4653
  };
@@ -4046,7 +4655,7 @@ ZodCatch.create = (type, params) => {
4046
4655
  return new ZodCatch({
4047
4656
  innerType: type,
4048
4657
  typeName: ZodFirstPartyTypeKind.ZodCatch,
4049
- defaultValue: typeof params.default === "function" ? params.default : () => params.default,
4658
+ catchValue: typeof params.catch === "function" ? params.catch : () => params.catch,
4050
4659
  ...processCreateParams(params)
4051
4660
  });
4052
4661
  };
@@ -4141,6 +4750,28 @@ var ZodPipeline = class _ZodPipeline extends ZodType {
4141
4750
  });
4142
4751
  }
4143
4752
  };
4753
+ var ZodReadonly = class extends ZodType {
4754
+ _parse(input) {
4755
+ const result = this._def.innerType._parse(input);
4756
+ const freeze = (data) => {
4757
+ if (isValid(data)) {
4758
+ data.value = Object.freeze(data.value);
4759
+ }
4760
+ return data;
4761
+ };
4762
+ return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);
4763
+ }
4764
+ unwrap() {
4765
+ return this._def.innerType;
4766
+ }
4767
+ };
4768
+ ZodReadonly.create = (type, params) => {
4769
+ return new ZodReadonly({
4770
+ innerType: type,
4771
+ typeName: ZodFirstPartyTypeKind.ZodReadonly,
4772
+ ...processCreateParams(params)
4773
+ });
4774
+ };
4144
4775
  var late = {
4145
4776
  object: ZodObject.lazycreate
4146
4777
  };
@@ -4181,6 +4812,7 @@ var ZodFirstPartyTypeKind;
4181
4812
  ZodFirstPartyTypeKind2["ZodPromise"] = "ZodPromise";
4182
4813
  ZodFirstPartyTypeKind2["ZodBranded"] = "ZodBranded";
4183
4814
  ZodFirstPartyTypeKind2["ZodPipeline"] = "ZodPipeline";
4815
+ ZodFirstPartyTypeKind2["ZodReadonly"] = "ZodReadonly";
4184
4816
  })(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
4185
4817
  var stringType = ZodString.create;
4186
4818
  var numberType = ZodNumber.create;
@@ -4728,6 +5360,7 @@ var backwardCompatibleSqliteSchema = unionType([sqliteSchemaV5, schema2]);
4728
5360
 
4729
5361
  // src/utils.ts
4730
5362
  var import_path = require("path");
5363
+ var import_url = require("url");
4731
5364
  var copy = (it) => {
4732
5365
  return JSON.parse(JSON.stringify(it));
4733
5366
  };
@@ -4794,7 +5427,6 @@ var validateWithReport = (snapshots, dialect3) => {
4794
5427
  }
4795
5428
  const result2 = validator.safeParse(raw);
4796
5429
  if (!result2.success) {
4797
- console.error(result2.error);
4798
5430
  accum.malformed.push(it);
4799
5431
  return accum;
4800
5432
  }
@@ -4897,6 +5529,29 @@ var kloudMeta = () => {
4897
5529
  sqlite: []
4898
5530
  };
4899
5531
  };
5532
+ var normaliseSQLiteUrl = (it, type) => {
5533
+ if (type === "libsql") {
5534
+ if (it.startsWith("file:")) {
5535
+ return it;
5536
+ }
5537
+ try {
5538
+ const url = (0, import_url.parse)(it);
5539
+ if (url.protocol === null) {
5540
+ return `file:${it}`;
5541
+ }
5542
+ return it;
5543
+ } catch (e) {
5544
+ return `file:${it}`;
5545
+ }
5546
+ }
5547
+ if (type === "better-sqlite") {
5548
+ if (it.startsWith("file:")) {
5549
+ return it.substring(5);
5550
+ }
5551
+ return it;
5552
+ }
5553
+ assertUnreachable(type);
5554
+ };
4900
5555
  // Annotate the CommonJS export names for ESM import in node:
4901
5556
  0 && (module.exports = {
4902
5557
  assertV1OutFolder,
@@ -4904,6 +5559,7 @@ var kloudMeta = () => {
4904
5559
  copy,
4905
5560
  dryJournal,
4906
5561
  kloudMeta,
5562
+ normaliseSQLiteUrl,
4907
5563
  objectValues,
4908
5564
  prepareMigrationFolder,
4909
5565
  prepareMigrationMeta,