@fairmint/captable-ai 0.1.24 → 0.1.26

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/dist/index.js +1820 -629
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -448,7 +448,7 @@ async function runAuthStatus(args) {
448
448
  ]);
449
449
  }
450
450
 
451
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/external.js
451
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/external.js
452
452
  var external_exports = {};
453
453
  __export(external_exports, {
454
454
  $brand: () => $brand,
@@ -510,6 +510,7 @@ __export(external_exports, {
510
510
  ZodOptional: () => ZodOptional,
511
511
  ZodPipe: () => ZodPipe,
512
512
  ZodPrefault: () => ZodPrefault,
513
+ ZodPreprocess: () => ZodPreprocess,
513
514
  ZodPromise: () => ZodPromise,
514
515
  ZodReadonly: () => ZodReadonly,
515
516
  ZodRealError: () => ZodRealError,
@@ -588,6 +589,7 @@ __export(external_exports, {
588
589
  int32: () => int32,
589
590
  int64: () => int64,
590
591
  intersection: () => intersection,
592
+ invertCodec: () => invertCodec,
591
593
  ipv4: () => ipv42,
592
594
  ipv6: () => ipv62,
593
595
  iso: () => iso_exports,
@@ -689,7 +691,7 @@ __export(external_exports, {
689
691
  xor: () => xor
690
692
  });
691
693
 
692
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/index.js
694
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/index.js
693
695
  var core_exports2 = {};
694
696
  __export(core_exports2, {
695
697
  $ZodAny: () => $ZodAny,
@@ -769,6 +771,7 @@ __export(core_exports2, {
769
771
  $ZodOptional: () => $ZodOptional,
770
772
  $ZodPipe: () => $ZodPipe,
771
773
  $ZodPrefault: () => $ZodPrefault,
774
+ $ZodPreprocess: () => $ZodPreprocess,
772
775
  $ZodPromise: () => $ZodPromise,
773
776
  $ZodReadonly: () => $ZodReadonly,
774
777
  $ZodRealError: () => $ZodRealError,
@@ -967,8 +970,9 @@ __export(core_exports2, {
967
970
  version: () => version
968
971
  });
969
972
 
970
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/core.js
971
- var NEVER = Object.freeze({
973
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/core.js
974
+ var _a;
975
+ var NEVER = /* @__PURE__ */ Object.freeze({
972
976
  status: "aborted"
973
977
  });
974
978
  // @__NO_SIDE_EFFECTS__
@@ -1003,10 +1007,10 @@ function $constructor(name, initializer3, params) {
1003
1007
  }
1004
1008
  Object.defineProperty(Definition, "name", { value: name });
1005
1009
  function _(def) {
1006
- var _a2;
1010
+ var _a3;
1007
1011
  const inst = params?.Parent ? new Definition() : this;
1008
1012
  init(inst, def);
1009
- (_a2 = inst._zod).deferred ?? (_a2.deferred = []);
1013
+ (_a3 = inst._zod).deferred ?? (_a3.deferred = []);
1010
1014
  for (const fn of inst._zod.deferred) {
1011
1015
  fn();
1012
1016
  }
@@ -1035,14 +1039,15 @@ var $ZodEncodeError = class extends Error {
1035
1039
  this.name = "ZodEncodeError";
1036
1040
  }
1037
1041
  };
1038
- var globalConfig = {};
1042
+ (_a = globalThis).__zod_globalConfig ?? (_a.__zod_globalConfig = {});
1043
+ var globalConfig = globalThis.__zod_globalConfig;
1039
1044
  function config(newConfig) {
1040
1045
  if (newConfig)
1041
1046
  Object.assign(globalConfig, newConfig);
1042
1047
  return globalConfig;
1043
1048
  }
1044
1049
 
1045
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/util.js
1050
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/util.js
1046
1051
  var util_exports = {};
1047
1052
  __export(util_exports, {
1048
1053
  BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES,
@@ -1068,6 +1073,7 @@ __export(util_exports, {
1068
1073
  defineLazy: () => defineLazy,
1069
1074
  esc: () => esc,
1070
1075
  escapeRegex: () => escapeRegex,
1076
+ explicitlyAborted: () => explicitlyAborted,
1071
1077
  extend: () => extend,
1072
1078
  finalizeIssue: () => finalizeIssue,
1073
1079
  floatSafeRemainder: () => floatSafeRemainder,
@@ -1156,19 +1162,12 @@ function cleanRegex(source) {
1156
1162
  return source.slice(start, end);
1157
1163
  }
1158
1164
  function floatSafeRemainder(val, step) {
1159
- const valDecCount = (val.toString().split(".")[1] || "").length;
1160
- const stepString = step.toString();
1161
- let stepDecCount = (stepString.split(".")[1] || "").length;
1162
- if (stepDecCount === 0 && /\d?e-\d?/.test(stepString)) {
1163
- const match = stepString.match(/\d?e-(\d?)/);
1164
- if (match?.[1]) {
1165
- stepDecCount = Number.parseInt(match[1]);
1166
- }
1167
- }
1168
- const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;
1169
- const valInt = Number.parseInt(val.toFixed(decCount).replace(".", ""));
1170
- const stepInt = Number.parseInt(step.toFixed(decCount).replace(".", ""));
1171
- return valInt % stepInt / 10 ** decCount;
1165
+ const ratio = val / step;
1166
+ const roundedRatio = Math.round(ratio);
1167
+ const tolerance = Number.EPSILON * Math.max(Math.abs(ratio), 1);
1168
+ if (Math.abs(ratio - roundedRatio) < tolerance)
1169
+ return 0;
1170
+ return ratio - roundedRatio;
1172
1171
  }
1173
1172
  var EVALUATING = /* @__PURE__ */ Symbol("evaluating");
1174
1173
  function defineLazy(object2, key, getter) {
@@ -1250,7 +1249,10 @@ var captureStackTrace = "captureStackTrace" in Error ? Error.captureStackTrace :
1250
1249
  function isObject(data) {
1251
1250
  return typeof data === "object" && data !== null && !Array.isArray(data);
1252
1251
  }
1253
- var allowsEval = cached(() => {
1252
+ var allowsEval = /* @__PURE__ */ cached(() => {
1253
+ if (globalConfig.jitless) {
1254
+ return false;
1255
+ }
1254
1256
  if (typeof navigator !== "undefined" && navigator?.userAgent?.includes("Cloudflare")) {
1255
1257
  return false;
1256
1258
  }
@@ -1283,6 +1285,10 @@ function shallowClone(o) {
1283
1285
  return { ...o };
1284
1286
  if (Array.isArray(o))
1285
1287
  return [...o];
1288
+ if (o instanceof Map)
1289
+ return new Map(o);
1290
+ if (o instanceof Set)
1291
+ return new Set(o);
1286
1292
  return o;
1287
1293
  }
1288
1294
  function numKeys(data) {
@@ -1339,7 +1345,14 @@ var getParsedType = (data) => {
1339
1345
  }
1340
1346
  };
1341
1347
  var propertyKeyTypes = /* @__PURE__ */ new Set(["string", "number", "symbol"]);
1342
- var primitiveTypes = /* @__PURE__ */ new Set(["string", "number", "bigint", "boolean", "symbol", "undefined"]);
1348
+ var primitiveTypes = /* @__PURE__ */ new Set([
1349
+ "string",
1350
+ "number",
1351
+ "bigint",
1352
+ "boolean",
1353
+ "symbol",
1354
+ "undefined"
1355
+ ]);
1343
1356
  function escapeRegex(str) {
1344
1357
  return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1345
1358
  }
@@ -1508,6 +1521,9 @@ function safeExtend(schema, shape) {
1508
1521
  return clone(schema, def);
1509
1522
  }
1510
1523
  function merge(a, b) {
1524
+ if (a._zod.def.checks?.length) {
1525
+ throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");
1526
+ }
1511
1527
  const def = mergeDefs(a._zod.def, {
1512
1528
  get shape() {
1513
1529
  const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };
@@ -1517,8 +1533,7 @@ function merge(a, b) {
1517
1533
  get catchall() {
1518
1534
  return b._zod.def.catchall;
1519
1535
  },
1520
- checks: []
1521
- // delete existing checks
1536
+ checks: b._zod.def.checks ?? []
1522
1537
  });
1523
1538
  return clone(a, def);
1524
1539
  }
@@ -1601,10 +1616,20 @@ function aborted(x, startIndex = 0) {
1601
1616
  }
1602
1617
  return false;
1603
1618
  }
1619
+ function explicitlyAborted(x, startIndex = 0) {
1620
+ if (x.aborted === true)
1621
+ return true;
1622
+ for (let i = startIndex; i < x.issues.length; i++) {
1623
+ if (x.issues[i]?.continue === false) {
1624
+ return true;
1625
+ }
1626
+ }
1627
+ return false;
1628
+ }
1604
1629
  function prefixIssues(path, issues) {
1605
1630
  return issues.map((iss) => {
1606
- var _a2;
1607
- (_a2 = iss).path ?? (_a2.path = []);
1631
+ var _a3;
1632
+ (_a3 = iss).path ?? (_a3.path = []);
1608
1633
  iss.path.unshift(path);
1609
1634
  return iss;
1610
1635
  });
@@ -1613,17 +1638,14 @@ function unwrapMessage(message) {
1613
1638
  return typeof message === "string" ? message : message?.message;
1614
1639
  }
1615
1640
  function finalizeIssue(iss, ctx, config2) {
1616
- const full = { ...iss, path: iss.path ?? [] };
1617
- if (!iss.message) {
1618
- const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ?? unwrapMessage(ctx?.error?.(iss)) ?? unwrapMessage(config2.customError?.(iss)) ?? unwrapMessage(config2.localeError?.(iss)) ?? "Invalid input";
1619
- full.message = message;
1641
+ const message = iss.message ? iss.message : unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ?? unwrapMessage(ctx?.error?.(iss)) ?? unwrapMessage(config2.customError?.(iss)) ?? unwrapMessage(config2.localeError?.(iss)) ?? "Invalid input";
1642
+ const { inst: _inst, continue: _continue, input: _input, ...rest } = iss;
1643
+ rest.path ?? (rest.path = []);
1644
+ rest.message = message;
1645
+ if (ctx?.reportInput) {
1646
+ rest.input = _input;
1620
1647
  }
1621
- delete full.inst;
1622
- delete full.continue;
1623
- if (!ctx?.reportInput) {
1624
- delete full.input;
1625
- }
1626
- return full;
1648
+ return rest;
1627
1649
  }
1628
1650
  function getSizableOrigin(input) {
1629
1651
  if (input instanceof Set)
@@ -1721,7 +1743,7 @@ var Class = class {
1721
1743
  }
1722
1744
  };
1723
1745
 
1724
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/errors.js
1746
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/errors.js
1725
1747
  var initializer = (inst, def) => {
1726
1748
  inst.name = "$ZodError";
1727
1749
  Object.defineProperty(inst, "_zod", {
@@ -1740,10 +1762,10 @@ var initializer = (inst, def) => {
1740
1762
  };
1741
1763
  var $ZodError = $constructor("$ZodError", initializer);
1742
1764
  var $ZodRealError = $constructor("$ZodError", initializer, { Parent: Error });
1743
- function flattenError(error48, mapper = (issue2) => issue2.message) {
1765
+ function flattenError(error51, mapper = (issue2) => issue2.message) {
1744
1766
  const fieldErrors = {};
1745
1767
  const formErrors = [];
1746
- for (const sub of error48.issues) {
1768
+ for (const sub of error51.issues) {
1747
1769
  if (sub.path.length > 0) {
1748
1770
  fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];
1749
1771
  fieldErrors[sub.path[0]].push(mapper(sub));
@@ -1753,50 +1775,53 @@ function flattenError(error48, mapper = (issue2) => issue2.message) {
1753
1775
  }
1754
1776
  return { formErrors, fieldErrors };
1755
1777
  }
1756
- function formatError(error48, mapper = (issue2) => issue2.message) {
1778
+ function formatError(error51, mapper = (issue2) => issue2.message) {
1757
1779
  const fieldErrors = { _errors: [] };
1758
- const processError = (error49) => {
1759
- for (const issue2 of error49.issues) {
1780
+ const processError = (error52, path = []) => {
1781
+ for (const issue2 of error52.issues) {
1760
1782
  if (issue2.code === "invalid_union" && issue2.errors.length) {
1761
- issue2.errors.map((issues) => processError({ issues }));
1783
+ issue2.errors.map((issues) => processError({ issues }, [...path, ...issue2.path]));
1762
1784
  } else if (issue2.code === "invalid_key") {
1763
- processError({ issues: issue2.issues });
1785
+ processError({ issues: issue2.issues }, [...path, ...issue2.path]);
1764
1786
  } else if (issue2.code === "invalid_element") {
1765
- processError({ issues: issue2.issues });
1766
- } else if (issue2.path.length === 0) {
1767
- fieldErrors._errors.push(mapper(issue2));
1787
+ processError({ issues: issue2.issues }, [...path, ...issue2.path]);
1768
1788
  } else {
1769
- let curr = fieldErrors;
1770
- let i = 0;
1771
- while (i < issue2.path.length) {
1772
- const el = issue2.path[i];
1773
- const terminal = i === issue2.path.length - 1;
1774
- if (!terminal) {
1775
- curr[el] = curr[el] || { _errors: [] };
1776
- } else {
1777
- curr[el] = curr[el] || { _errors: [] };
1778
- curr[el]._errors.push(mapper(issue2));
1789
+ const fullpath = [...path, ...issue2.path];
1790
+ if (fullpath.length === 0) {
1791
+ fieldErrors._errors.push(mapper(issue2));
1792
+ } else {
1793
+ let curr = fieldErrors;
1794
+ let i = 0;
1795
+ while (i < fullpath.length) {
1796
+ const el = fullpath[i];
1797
+ const terminal = i === fullpath.length - 1;
1798
+ if (!terminal) {
1799
+ curr[el] = curr[el] || { _errors: [] };
1800
+ } else {
1801
+ curr[el] = curr[el] || { _errors: [] };
1802
+ curr[el]._errors.push(mapper(issue2));
1803
+ }
1804
+ curr = curr[el];
1805
+ i++;
1779
1806
  }
1780
- curr = curr[el];
1781
- i++;
1782
1807
  }
1783
1808
  }
1784
1809
  }
1785
1810
  };
1786
- processError(error48);
1811
+ processError(error51);
1787
1812
  return fieldErrors;
1788
1813
  }
1789
- function treeifyError(error48, mapper = (issue2) => issue2.message) {
1814
+ function treeifyError(error51, mapper = (issue2) => issue2.message) {
1790
1815
  const result = { errors: [] };
1791
- const processError = (error49, path = []) => {
1792
- var _a2, _b;
1793
- for (const issue2 of error49.issues) {
1816
+ const processError = (error52, path = []) => {
1817
+ var _a3, _b;
1818
+ for (const issue2 of error52.issues) {
1794
1819
  if (issue2.code === "invalid_union" && issue2.errors.length) {
1795
- issue2.errors.map((issues) => processError({ issues }, issue2.path));
1820
+ issue2.errors.map((issues) => processError({ issues }, [...path, ...issue2.path]));
1796
1821
  } else if (issue2.code === "invalid_key") {
1797
- processError({ issues: issue2.issues }, issue2.path);
1822
+ processError({ issues: issue2.issues }, [...path, ...issue2.path]);
1798
1823
  } else if (issue2.code === "invalid_element") {
1799
- processError({ issues: issue2.issues }, issue2.path);
1824
+ processError({ issues: issue2.issues }, [...path, ...issue2.path]);
1800
1825
  } else {
1801
1826
  const fullpath = [...path, ...issue2.path];
1802
1827
  if (fullpath.length === 0) {
@@ -1810,7 +1835,7 @@ function treeifyError(error48, mapper = (issue2) => issue2.message) {
1810
1835
  const terminal = i === fullpath.length - 1;
1811
1836
  if (typeof el === "string") {
1812
1837
  curr.properties ?? (curr.properties = {});
1813
- (_a2 = curr.properties)[el] ?? (_a2[el] = { errors: [] });
1838
+ (_a3 = curr.properties)[el] ?? (_a3[el] = { errors: [] });
1814
1839
  curr = curr.properties[el];
1815
1840
  } else {
1816
1841
  curr.items ?? (curr.items = []);
@@ -1825,7 +1850,7 @@ function treeifyError(error48, mapper = (issue2) => issue2.message) {
1825
1850
  }
1826
1851
  }
1827
1852
  };
1828
- processError(error48);
1853
+ processError(error51);
1829
1854
  return result;
1830
1855
  }
1831
1856
  function toDotPath(_path) {
@@ -1846,9 +1871,9 @@ function toDotPath(_path) {
1846
1871
  }
1847
1872
  return segs.join("");
1848
1873
  }
1849
- function prettifyError(error48) {
1874
+ function prettifyError(error51) {
1850
1875
  const lines = [];
1851
- const issues = [...error48.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);
1876
+ const issues = [...error51.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);
1852
1877
  for (const issue2 of issues) {
1853
1878
  lines.push(`\u2716 ${issue2.message}`);
1854
1879
  if (issue2.path?.length)
@@ -1857,9 +1882,9 @@ function prettifyError(error48) {
1857
1882
  return lines.join("\n");
1858
1883
  }
1859
1884
 
1860
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/parse.js
1885
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/parse.js
1861
1886
  var _parse = (_Err) => (schema, value, _ctx, _params) => {
1862
- const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };
1887
+ const ctx = _ctx ? { ..._ctx, async: false } : { async: false };
1863
1888
  const result = schema._zod.run({ value, issues: [] }, ctx);
1864
1889
  if (result instanceof Promise) {
1865
1890
  throw new $ZodAsyncError();
@@ -1873,7 +1898,7 @@ var _parse = (_Err) => (schema, value, _ctx, _params) => {
1873
1898
  };
1874
1899
  var parse = /* @__PURE__ */ _parse($ZodRealError);
1875
1900
  var _parseAsync = (_Err) => async (schema, value, _ctx, params) => {
1876
- const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };
1901
+ const ctx = _ctx ? { ..._ctx, async: true } : { async: true };
1877
1902
  let result = schema._zod.run({ value, issues: [] }, ctx);
1878
1903
  if (result instanceof Promise)
1879
1904
  result = await result;
@@ -1898,7 +1923,7 @@ var _safeParse = (_Err) => (schema, value, _ctx) => {
1898
1923
  };
1899
1924
  var safeParse = /* @__PURE__ */ _safeParse($ZodRealError);
1900
1925
  var _safeParseAsync = (_Err) => async (schema, value, _ctx) => {
1901
- const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };
1926
+ const ctx = _ctx ? { ..._ctx, async: true } : { async: true };
1902
1927
  let result = schema._zod.run({ value, issues: [] }, ctx);
1903
1928
  if (result instanceof Promise)
1904
1929
  result = await result;
@@ -1909,7 +1934,7 @@ var _safeParseAsync = (_Err) => async (schema, value, _ctx) => {
1909
1934
  };
1910
1935
  var safeParseAsync = /* @__PURE__ */ _safeParseAsync($ZodRealError);
1911
1936
  var _encode = (_Err) => (schema, value, _ctx) => {
1912
- const ctx = _ctx ? Object.assign(_ctx, { direction: "backward" }) : { direction: "backward" };
1937
+ const ctx = _ctx ? { ..._ctx, direction: "backward" } : { direction: "backward" };
1913
1938
  return _parse(_Err)(schema, value, ctx);
1914
1939
  };
1915
1940
  var encode = /* @__PURE__ */ _encode($ZodRealError);
@@ -1918,7 +1943,7 @@ var _decode = (_Err) => (schema, value, _ctx) => {
1918
1943
  };
1919
1944
  var decode = /* @__PURE__ */ _decode($ZodRealError);
1920
1945
  var _encodeAsync = (_Err) => async (schema, value, _ctx) => {
1921
- const ctx = _ctx ? Object.assign(_ctx, { direction: "backward" }) : { direction: "backward" };
1946
+ const ctx = _ctx ? { ..._ctx, direction: "backward" } : { direction: "backward" };
1922
1947
  return _parseAsync(_Err)(schema, value, ctx);
1923
1948
  };
1924
1949
  var encodeAsync = /* @__PURE__ */ _encodeAsync($ZodRealError);
@@ -1927,7 +1952,7 @@ var _decodeAsync = (_Err) => async (schema, value, _ctx) => {
1927
1952
  };
1928
1953
  var decodeAsync = /* @__PURE__ */ _decodeAsync($ZodRealError);
1929
1954
  var _safeEncode = (_Err) => (schema, value, _ctx) => {
1930
- const ctx = _ctx ? Object.assign(_ctx, { direction: "backward" }) : { direction: "backward" };
1955
+ const ctx = _ctx ? { ..._ctx, direction: "backward" } : { direction: "backward" };
1931
1956
  return _safeParse(_Err)(schema, value, ctx);
1932
1957
  };
1933
1958
  var safeEncode = /* @__PURE__ */ _safeEncode($ZodRealError);
@@ -1936,7 +1961,7 @@ var _safeDecode = (_Err) => (schema, value, _ctx) => {
1936
1961
  };
1937
1962
  var safeDecode = /* @__PURE__ */ _safeDecode($ZodRealError);
1938
1963
  var _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {
1939
- const ctx = _ctx ? Object.assign(_ctx, { direction: "backward" }) : { direction: "backward" };
1964
+ const ctx = _ctx ? { ..._ctx, direction: "backward" } : { direction: "backward" };
1940
1965
  return _safeParseAsync(_Err)(schema, value, ctx);
1941
1966
  };
1942
1967
  var safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync($ZodRealError);
@@ -1945,7 +1970,7 @@ var _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {
1945
1970
  };
1946
1971
  var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync($ZodRealError);
1947
1972
 
1948
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/regexes.js
1973
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/regexes.js
1949
1974
  var regexes_exports = {};
1950
1975
  __export(regexes_exports, {
1951
1976
  base64: () => base64,
@@ -1969,6 +1994,7 @@ __export(regexes_exports, {
1969
1994
  hex: () => hex,
1970
1995
  hostname: () => hostname,
1971
1996
  html5Email: () => html5Email,
1997
+ httpProtocol: () => httpProtocol,
1972
1998
  idnEmail: () => idnEmail,
1973
1999
  integer: () => integer,
1974
2000
  ipv4: () => ipv4,
@@ -2007,7 +2033,7 @@ __export(regexes_exports, {
2007
2033
  uuid7: () => uuid7,
2008
2034
  xid: () => xid
2009
2035
  });
2010
- var cuid = /^[cC][^\s-]{8,}$/;
2036
+ var cuid = /^[cC][0-9a-z]{6,}$/;
2011
2037
  var cuid2 = /^[0-9a-z]+$/;
2012
2038
  var ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;
2013
2039
  var xid = /^[0-9a-vA-V]{20}$/;
@@ -2046,6 +2072,7 @@ var base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/
2046
2072
  var base64url = /^[A-Za-z0-9_-]*$/;
2047
2073
  var hostname = /^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/;
2048
2074
  var domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/;
2075
+ var httpProtocol = /^https?$/;
2049
2076
  var e164 = /^\+[1-9]\d{6,14}$/;
2050
2077
  var dateSource = `(?:(?:\\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])))`;
2051
2078
  var date = /* @__PURE__ */ new RegExp(`^${dateSource}$`);
@@ -2102,12 +2129,12 @@ var sha512_hex = /^[0-9a-fA-F]{128}$/;
2102
2129
  var sha512_base64 = /* @__PURE__ */ fixedBase64(86, "==");
2103
2130
  var sha512_base64url = /* @__PURE__ */ fixedBase64url(86);
2104
2131
 
2105
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/checks.js
2132
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/checks.js
2106
2133
  var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
2107
- var _a2;
2134
+ var _a3;
2108
2135
  inst._zod ?? (inst._zod = {});
2109
2136
  inst._zod.def = def;
2110
- (_a2 = inst._zod).onattach ?? (_a2.onattach = []);
2137
+ (_a3 = inst._zod).onattach ?? (_a3.onattach = []);
2111
2138
  });
2112
2139
  var numericOriginMap = {
2113
2140
  number: "number",
@@ -2173,8 +2200,8 @@ var $ZodCheckGreaterThan = /* @__PURE__ */ $constructor("$ZodCheckGreaterThan",
2173
2200
  var $ZodCheckMultipleOf = /* @__PURE__ */ $constructor("$ZodCheckMultipleOf", (inst, def) => {
2174
2201
  $ZodCheck.init(inst, def);
2175
2202
  inst._zod.onattach.push((inst2) => {
2176
- var _a2;
2177
- (_a2 = inst2._zod.bag).multipleOf ?? (_a2.multipleOf = def.value);
2203
+ var _a3;
2204
+ (_a3 = inst2._zod.bag).multipleOf ?? (_a3.multipleOf = def.value);
2178
2205
  });
2179
2206
  inst._zod.check = (payload) => {
2180
2207
  if (typeof payload.value !== typeof def.value)
@@ -2307,9 +2334,9 @@ var $ZodCheckBigIntFormat = /* @__PURE__ */ $constructor("$ZodCheckBigIntFormat"
2307
2334
  };
2308
2335
  });
2309
2336
  var $ZodCheckMaxSize = /* @__PURE__ */ $constructor("$ZodCheckMaxSize", (inst, def) => {
2310
- var _a2;
2337
+ var _a3;
2311
2338
  $ZodCheck.init(inst, def);
2312
- (_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
2339
+ (_a3 = inst._zod.def).when ?? (_a3.when = (payload) => {
2313
2340
  const val = payload.value;
2314
2341
  return !nullish(val) && val.size !== void 0;
2315
2342
  });
@@ -2335,9 +2362,9 @@ var $ZodCheckMaxSize = /* @__PURE__ */ $constructor("$ZodCheckMaxSize", (inst, d
2335
2362
  };
2336
2363
  });
2337
2364
  var $ZodCheckMinSize = /* @__PURE__ */ $constructor("$ZodCheckMinSize", (inst, def) => {
2338
- var _a2;
2365
+ var _a3;
2339
2366
  $ZodCheck.init(inst, def);
2340
- (_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
2367
+ (_a3 = inst._zod.def).when ?? (_a3.when = (payload) => {
2341
2368
  const val = payload.value;
2342
2369
  return !nullish(val) && val.size !== void 0;
2343
2370
  });
@@ -2363,9 +2390,9 @@ var $ZodCheckMinSize = /* @__PURE__ */ $constructor("$ZodCheckMinSize", (inst, d
2363
2390
  };
2364
2391
  });
2365
2392
  var $ZodCheckSizeEquals = /* @__PURE__ */ $constructor("$ZodCheckSizeEquals", (inst, def) => {
2366
- var _a2;
2393
+ var _a3;
2367
2394
  $ZodCheck.init(inst, def);
2368
- (_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
2395
+ (_a3 = inst._zod.def).when ?? (_a3.when = (payload) => {
2369
2396
  const val = payload.value;
2370
2397
  return !nullish(val) && val.size !== void 0;
2371
2398
  });
@@ -2393,9 +2420,9 @@ var $ZodCheckSizeEquals = /* @__PURE__ */ $constructor("$ZodCheckSizeEquals", (i
2393
2420
  };
2394
2421
  });
2395
2422
  var $ZodCheckMaxLength = /* @__PURE__ */ $constructor("$ZodCheckMaxLength", (inst, def) => {
2396
- var _a2;
2423
+ var _a3;
2397
2424
  $ZodCheck.init(inst, def);
2398
- (_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
2425
+ (_a3 = inst._zod.def).when ?? (_a3.when = (payload) => {
2399
2426
  const val = payload.value;
2400
2427
  return !nullish(val) && val.length !== void 0;
2401
2428
  });
@@ -2422,9 +2449,9 @@ var $ZodCheckMaxLength = /* @__PURE__ */ $constructor("$ZodCheckMaxLength", (ins
2422
2449
  };
2423
2450
  });
2424
2451
  var $ZodCheckMinLength = /* @__PURE__ */ $constructor("$ZodCheckMinLength", (inst, def) => {
2425
- var _a2;
2452
+ var _a3;
2426
2453
  $ZodCheck.init(inst, def);
2427
- (_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
2454
+ (_a3 = inst._zod.def).when ?? (_a3.when = (payload) => {
2428
2455
  const val = payload.value;
2429
2456
  return !nullish(val) && val.length !== void 0;
2430
2457
  });
@@ -2451,9 +2478,9 @@ var $ZodCheckMinLength = /* @__PURE__ */ $constructor("$ZodCheckMinLength", (ins
2451
2478
  };
2452
2479
  });
2453
2480
  var $ZodCheckLengthEquals = /* @__PURE__ */ $constructor("$ZodCheckLengthEquals", (inst, def) => {
2454
- var _a2;
2481
+ var _a3;
2455
2482
  $ZodCheck.init(inst, def);
2456
- (_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
2483
+ (_a3 = inst._zod.def).when ?? (_a3.when = (payload) => {
2457
2484
  const val = payload.value;
2458
2485
  return !nullish(val) && val.length !== void 0;
2459
2486
  });
@@ -2482,7 +2509,7 @@ var $ZodCheckLengthEquals = /* @__PURE__ */ $constructor("$ZodCheckLengthEquals"
2482
2509
  };
2483
2510
  });
2484
2511
  var $ZodCheckStringFormat = /* @__PURE__ */ $constructor("$ZodCheckStringFormat", (inst, def) => {
2485
- var _a2, _b;
2512
+ var _a3, _b;
2486
2513
  $ZodCheck.init(inst, def);
2487
2514
  inst._zod.onattach.push((inst2) => {
2488
2515
  const bag = inst2._zod.bag;
@@ -2493,7 +2520,7 @@ var $ZodCheckStringFormat = /* @__PURE__ */ $constructor("$ZodCheckStringFormat"
2493
2520
  }
2494
2521
  });
2495
2522
  if (def.pattern)
2496
- (_a2 = inst._zod).check ?? (_a2.check = (payload) => {
2523
+ (_a3 = inst._zod).check ?? (_a3.check = (payload) => {
2497
2524
  def.pattern.lastIndex = 0;
2498
2525
  if (def.pattern.test(payload.value))
2499
2526
  return;
@@ -2650,7 +2677,7 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
2650
2677
  };
2651
2678
  });
2652
2679
 
2653
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/doc.js
2680
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/doc.js
2654
2681
  var Doc = class {
2655
2682
  constructor(args = []) {
2656
2683
  this.content = [];
@@ -2686,16 +2713,16 @@ var Doc = class {
2686
2713
  }
2687
2714
  };
2688
2715
 
2689
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/versions.js
2716
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/versions.js
2690
2717
  var version = {
2691
2718
  major: 4,
2692
- minor: 3,
2693
- patch: 6
2719
+ minor: 4,
2720
+ patch: 3
2694
2721
  };
2695
2722
 
2696
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/schemas.js
2723
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/schemas.js
2697
2724
  var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
2698
- var _a2;
2725
+ var _a3;
2699
2726
  inst ?? (inst = {});
2700
2727
  inst._zod.def = def;
2701
2728
  inst._zod.bag = inst._zod.bag || {};
@@ -2710,7 +2737,7 @@ var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
2710
2737
  }
2711
2738
  }
2712
2739
  if (checks.length === 0) {
2713
- (_a2 = inst._zod).deferred ?? (_a2.deferred = []);
2740
+ (_a3 = inst._zod).deferred ?? (_a3.deferred = []);
2714
2741
  inst._zod.deferred?.push(() => {
2715
2742
  inst._zod.run = inst._zod.parse;
2716
2743
  });
@@ -2720,6 +2747,8 @@ var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
2720
2747
  let asyncResult;
2721
2748
  for (const ch of checks2) {
2722
2749
  if (ch._zod.def.when) {
2750
+ if (explicitlyAborted(payload))
2751
+ continue;
2723
2752
  const shouldRun = ch._zod.def.when(payload);
2724
2753
  if (!shouldRun)
2725
2754
  continue;
@@ -2860,6 +2889,19 @@ var $ZodURL = /* @__PURE__ */ $constructor("$ZodURL", (inst, def) => {
2860
2889
  inst._zod.check = (payload) => {
2861
2890
  try {
2862
2891
  const trimmed = payload.value.trim();
2892
+ if (!def.normalize && def.protocol?.source === httpProtocol.source) {
2893
+ if (!/^https?:\/\//i.test(trimmed)) {
2894
+ payload.issues.push({
2895
+ code: "invalid_format",
2896
+ format: "url",
2897
+ note: "Invalid URL format",
2898
+ input: payload.value,
2899
+ inst,
2900
+ continue: !def.abort
2901
+ });
2902
+ return;
2903
+ }
2904
+ }
2863
2905
  const url2 = new URL(trimmed);
2864
2906
  if (def.hostname) {
2865
2907
  def.hostname.lastIndex = 0;
@@ -3013,6 +3055,8 @@ var $ZodCIDRv6 = /* @__PURE__ */ $constructor("$ZodCIDRv6", (inst, def) => {
3013
3055
  function isValidBase64(data) {
3014
3056
  if (data === "")
3015
3057
  return true;
3058
+ if (/\s/.test(data))
3059
+ return false;
3016
3060
  if (data.length % 4 !== 0)
3017
3061
  return false;
3018
3062
  try {
@@ -3205,8 +3249,6 @@ var $ZodUndefined = /* @__PURE__ */ $constructor("$ZodUndefined", (inst, def) =>
3205
3249
  $ZodType.init(inst, def);
3206
3250
  inst._zod.pattern = _undefined;
3207
3251
  inst._zod.values = /* @__PURE__ */ new Set([void 0]);
3208
- inst._zod.optin = "optional";
3209
- inst._zod.optout = "optional";
3210
3252
  inst._zod.parse = (payload, _ctx) => {
3211
3253
  const input = payload.value;
3212
3254
  if (typeof input === "undefined")
@@ -3335,15 +3377,27 @@ var $ZodArray = /* @__PURE__ */ $constructor("$ZodArray", (inst, def) => {
3335
3377
  return payload;
3336
3378
  };
3337
3379
  });
3338
- function handlePropertyResult(result, final, key, input, isOptionalOut) {
3380
+ function handlePropertyResult(result, final, key, input, isOptionalIn, isOptionalOut) {
3381
+ const isPresent = key in input;
3339
3382
  if (result.issues.length) {
3340
- if (isOptionalOut && !(key in input)) {
3383
+ if (isOptionalIn && isOptionalOut && !isPresent) {
3341
3384
  return;
3342
3385
  }
3343
3386
  final.issues.push(...prefixIssues(key, result.issues));
3344
3387
  }
3388
+ if (!isPresent && !isOptionalIn) {
3389
+ if (!result.issues.length) {
3390
+ final.issues.push({
3391
+ code: "invalid_type",
3392
+ expected: "nonoptional",
3393
+ input: void 0,
3394
+ path: [key]
3395
+ });
3396
+ }
3397
+ return;
3398
+ }
3345
3399
  if (result.value === void 0) {
3346
- if (key in input) {
3400
+ if (isPresent) {
3347
3401
  final.value[key] = void 0;
3348
3402
  }
3349
3403
  } else {
@@ -3371,8 +3425,11 @@ function handleCatchall(proms, input, payload, ctx, def, inst) {
3371
3425
  const keySet = def.keySet;
3372
3426
  const _catchall = def.catchall._zod;
3373
3427
  const t = _catchall.def.type;
3428
+ const isOptionalIn = _catchall.optin === "optional";
3374
3429
  const isOptionalOut = _catchall.optout === "optional";
3375
3430
  for (const key in input) {
3431
+ if (key === "__proto__")
3432
+ continue;
3376
3433
  if (keySet.has(key))
3377
3434
  continue;
3378
3435
  if (t === "never") {
@@ -3381,9 +3438,9 @@ function handleCatchall(proms, input, payload, ctx, def, inst) {
3381
3438
  }
3382
3439
  const r = _catchall.run({ value: input[key], issues: [] }, ctx);
3383
3440
  if (r instanceof Promise) {
3384
- proms.push(r.then((r2) => handlePropertyResult(r2, payload, key, input, isOptionalOut)));
3441
+ proms.push(r.then((r2) => handlePropertyResult(r2, payload, key, input, isOptionalIn, isOptionalOut)));
3385
3442
  } else {
3386
- handlePropertyResult(r, payload, key, input, isOptionalOut);
3443
+ handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut);
3387
3444
  }
3388
3445
  }
3389
3446
  if (unrecognized.length) {
@@ -3449,12 +3506,13 @@ var $ZodObject = /* @__PURE__ */ $constructor("$ZodObject", (inst, def) => {
3449
3506
  const shape = value.shape;
3450
3507
  for (const key of value.keys) {
3451
3508
  const el = shape[key];
3509
+ const isOptionalIn = el._zod.optin === "optional";
3452
3510
  const isOptionalOut = el._zod.optout === "optional";
3453
3511
  const r = el._zod.run({ value: input[key], issues: [] }, ctx);
3454
3512
  if (r instanceof Promise) {
3455
- proms.push(r.then((r2) => handlePropertyResult(r2, payload, key, input, isOptionalOut)));
3513
+ proms.push(r.then((r2) => handlePropertyResult(r2, payload, key, input, isOptionalIn, isOptionalOut)));
3456
3514
  } else {
3457
- handlePropertyResult(r, payload, key, input, isOptionalOut);
3515
+ handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut);
3458
3516
  }
3459
3517
  }
3460
3518
  if (!catchall) {
@@ -3485,9 +3543,10 @@ var $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def) =>
3485
3543
  const id = ids[key];
3486
3544
  const k = esc(key);
3487
3545
  const schema = shape[key];
3546
+ const isOptionalIn = schema?._zod?.optin === "optional";
3488
3547
  const isOptionalOut = schema?._zod?.optout === "optional";
3489
3548
  doc.write(`const ${id} = ${parseStr(key)};`);
3490
- if (isOptionalOut) {
3549
+ if (isOptionalIn && isOptionalOut) {
3491
3550
  doc.write(`
3492
3551
  if (${id}.issues.length) {
3493
3552
  if (${k} in input) {
@@ -3506,6 +3565,33 @@ var $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def) =>
3506
3565
  newResult[${k}] = ${id}.value;
3507
3566
  }
3508
3567
 
3568
+ `);
3569
+ } else if (!isOptionalIn) {
3570
+ doc.write(`
3571
+ const ${id}_present = ${k} in input;
3572
+ if (${id}.issues.length) {
3573
+ payload.issues = payload.issues.concat(${id}.issues.map(iss => ({
3574
+ ...iss,
3575
+ path: iss.path ? [${k}, ...iss.path] : [${k}]
3576
+ })));
3577
+ }
3578
+ if (!${id}_present && !${id}.issues.length) {
3579
+ payload.issues.push({
3580
+ code: "invalid_type",
3581
+ expected: "nonoptional",
3582
+ input: undefined,
3583
+ path: [${k}]
3584
+ });
3585
+ }
3586
+
3587
+ if (${id}_present) {
3588
+ if (${id}.value === undefined) {
3589
+ newResult[${k}] = undefined;
3590
+ } else {
3591
+ newResult[${k}] = ${id}.value;
3592
+ }
3593
+ }
3594
+
3509
3595
  `);
3510
3596
  } else {
3511
3597
  doc.write(`
@@ -3599,10 +3685,9 @@ var $ZodUnion = /* @__PURE__ */ $constructor("$ZodUnion", (inst, def) => {
3599
3685
  }
3600
3686
  return void 0;
3601
3687
  });
3602
- const single = def.options.length === 1;
3603
- const first = def.options[0]._zod.run;
3688
+ const first = def.options.length === 1 ? def.options[0]._zod.run : null;
3604
3689
  inst._zod.parse = (payload, ctx) => {
3605
- if (single) {
3690
+ if (first) {
3606
3691
  return first(payload, ctx);
3607
3692
  }
3608
3693
  let async = false;
@@ -3655,10 +3740,9 @@ function handleExclusiveUnionResults(results, final, inst, ctx) {
3655
3740
  var $ZodXor = /* @__PURE__ */ $constructor("$ZodXor", (inst, def) => {
3656
3741
  $ZodUnion.init(inst, def);
3657
3742
  def.inclusive = false;
3658
- const single = def.options.length === 1;
3659
- const first = def.options[0]._zod.run;
3743
+ const first = def.options.length === 1 ? def.options[0]._zod.run : null;
3660
3744
  inst._zod.parse = (payload, ctx) => {
3661
- if (single) {
3745
+ if (first) {
3662
3746
  return first(payload, ctx);
3663
3747
  }
3664
3748
  let async = false;
@@ -3733,7 +3817,7 @@ var $ZodDiscriminatedUnion = /* @__PURE__ */ $constructor("$ZodDiscriminatedUnio
3733
3817
  if (opt) {
3734
3818
  return opt._zod.run(payload, ctx);
3735
3819
  }
3736
- if (def.unionFallback) {
3820
+ if (def.unionFallback || ctx.direction === "backward") {
3737
3821
  return _super(payload, ctx);
3738
3822
  }
3739
3823
  payload.issues.push({
@@ -3741,6 +3825,7 @@ var $ZodDiscriminatedUnion = /* @__PURE__ */ $constructor("$ZodDiscriminatedUnio
3741
3825
  errors: [],
3742
3826
  note: "No matching discriminator",
3743
3827
  discriminator: def.discriminator,
3828
+ options: Array.from(disc.value.keys()),
3744
3829
  input,
3745
3830
  path: [def.discriminator],
3746
3831
  inst
@@ -3862,64 +3947,96 @@ var $ZodTuple = /* @__PURE__ */ $constructor("$ZodTuple", (inst, def) => {
3862
3947
  }
3863
3948
  payload.value = [];
3864
3949
  const proms = [];
3865
- const reversedIndex = [...items].reverse().findIndex((item) => item._zod.optin !== "optional");
3866
- const optStart = reversedIndex === -1 ? 0 : items.length - reversedIndex;
3950
+ const optinStart = getTupleOptStart(items, "optin");
3951
+ const optoutStart = getTupleOptStart(items, "optout");
3867
3952
  if (!def.rest) {
3868
- const tooBig = input.length > items.length;
3869
- const tooSmall = input.length < optStart - 1;
3870
- if (tooBig || tooSmall) {
3953
+ if (input.length < optinStart) {
3871
3954
  payload.issues.push({
3872
- ...tooBig ? { code: "too_big", maximum: items.length, inclusive: true } : { code: "too_small", minimum: items.length },
3955
+ code: "too_small",
3956
+ minimum: optinStart,
3957
+ inclusive: true,
3873
3958
  input,
3874
3959
  inst,
3875
3960
  origin: "array"
3876
3961
  });
3877
3962
  return payload;
3878
3963
  }
3879
- }
3880
- let i = -1;
3881
- for (const item of items) {
3882
- i++;
3883
- if (i >= input.length) {
3884
- if (i >= optStart)
3885
- continue;
3964
+ if (input.length > items.length) {
3965
+ payload.issues.push({
3966
+ code: "too_big",
3967
+ maximum: items.length,
3968
+ inclusive: true,
3969
+ input,
3970
+ inst,
3971
+ origin: "array"
3972
+ });
3886
3973
  }
3887
- const result = item._zod.run({
3888
- value: input[i],
3889
- issues: []
3890
- }, ctx);
3891
- if (result instanceof Promise) {
3892
- proms.push(result.then((result2) => handleTupleResult(result2, payload, i)));
3974
+ }
3975
+ const itemResults = new Array(items.length);
3976
+ for (let i = 0; i < items.length; i++) {
3977
+ const r = items[i]._zod.run({ value: input[i], issues: [] }, ctx);
3978
+ if (r instanceof Promise) {
3979
+ proms.push(r.then((rr) => {
3980
+ itemResults[i] = rr;
3981
+ }));
3893
3982
  } else {
3894
- handleTupleResult(result, payload, i);
3983
+ itemResults[i] = r;
3895
3984
  }
3896
3985
  }
3897
3986
  if (def.rest) {
3987
+ let i = items.length - 1;
3898
3988
  const rest = input.slice(items.length);
3899
3989
  for (const el of rest) {
3900
3990
  i++;
3901
- const result = def.rest._zod.run({
3902
- value: el,
3903
- issues: []
3904
- }, ctx);
3991
+ const result = def.rest._zod.run({ value: el, issues: [] }, ctx);
3905
3992
  if (result instanceof Promise) {
3906
- proms.push(result.then((result2) => handleTupleResult(result2, payload, i)));
3993
+ proms.push(result.then((r) => handleTupleResult(r, payload, i)));
3907
3994
  } else {
3908
3995
  handleTupleResult(result, payload, i);
3909
3996
  }
3910
3997
  }
3911
3998
  }
3912
- if (proms.length)
3913
- return Promise.all(proms).then(() => payload);
3914
- return payload;
3999
+ if (proms.length) {
4000
+ return Promise.all(proms).then(() => handleTupleResults(itemResults, payload, items, input, optoutStart));
4001
+ }
4002
+ return handleTupleResults(itemResults, payload, items, input, optoutStart);
3915
4003
  };
3916
4004
  });
4005
+ function getTupleOptStart(items, key) {
4006
+ for (let i = items.length - 1; i >= 0; i--) {
4007
+ if (items[i]._zod[key] !== "optional")
4008
+ return i + 1;
4009
+ }
4010
+ return 0;
4011
+ }
3917
4012
  function handleTupleResult(result, final, index) {
3918
4013
  if (result.issues.length) {
3919
4014
  final.issues.push(...prefixIssues(index, result.issues));
3920
4015
  }
3921
4016
  final.value[index] = result.value;
3922
4017
  }
4018
+ function handleTupleResults(itemResults, final, items, input, optoutStart) {
4019
+ for (let i = 0; i < items.length; i++) {
4020
+ const r = itemResults[i];
4021
+ const isPresent = i < input.length;
4022
+ if (r.issues.length) {
4023
+ if (!isPresent && i >= optoutStart) {
4024
+ final.value.length = i;
4025
+ break;
4026
+ }
4027
+ final.issues.push(...prefixIssues(i, r.issues));
4028
+ }
4029
+ final.value[i] = r.value;
4030
+ }
4031
+ for (let i = final.value.length - 1; i >= input.length; i--) {
4032
+ if (items[i]._zod.optout === "optional" && final.value[i] === void 0) {
4033
+ final.value.length = i;
4034
+ } else {
4035
+ break;
4036
+ }
4037
+ }
4038
+ return final;
4039
+ }
3923
4040
  var $ZodRecord = /* @__PURE__ */ $constructor("$ZodRecord", (inst, def) => {
3924
4041
  $ZodType.init(inst, def);
3925
4042
  inst._zod.parse = (payload, ctx) => {
@@ -3941,19 +4058,35 @@ var $ZodRecord = /* @__PURE__ */ $constructor("$ZodRecord", (inst, def) => {
3941
4058
  for (const key of values) {
3942
4059
  if (typeof key === "string" || typeof key === "number" || typeof key === "symbol") {
3943
4060
  recordKeys.add(typeof key === "number" ? key.toString() : key);
4061
+ const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);
4062
+ if (keyResult instanceof Promise) {
4063
+ throw new Error("Async schemas not supported in object keys currently");
4064
+ }
4065
+ if (keyResult.issues.length) {
4066
+ payload.issues.push({
4067
+ code: "invalid_key",
4068
+ origin: "record",
4069
+ issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())),
4070
+ input: key,
4071
+ path: [key],
4072
+ inst
4073
+ });
4074
+ continue;
4075
+ }
4076
+ const outKey = keyResult.value;
3944
4077
  const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);
3945
4078
  if (result instanceof Promise) {
3946
4079
  proms.push(result.then((result2) => {
3947
4080
  if (result2.issues.length) {
3948
4081
  payload.issues.push(...prefixIssues(key, result2.issues));
3949
4082
  }
3950
- payload.value[key] = result2.value;
4083
+ payload.value[outKey] = result2.value;
3951
4084
  }));
3952
4085
  } else {
3953
4086
  if (result.issues.length) {
3954
4087
  payload.issues.push(...prefixIssues(key, result.issues));
3955
4088
  }
3956
- payload.value[key] = result.value;
4089
+ payload.value[outKey] = result.value;
3957
4090
  }
3958
4091
  }
3959
4092
  }
@@ -3977,6 +4110,8 @@ var $ZodRecord = /* @__PURE__ */ $constructor("$ZodRecord", (inst, def) => {
3977
4110
  for (const key of Reflect.ownKeys(input)) {
3978
4111
  if (key === "__proto__")
3979
4112
  continue;
4113
+ if (!Object.prototype.propertyIsEnumerable.call(input, key))
4114
+ continue;
3980
4115
  let keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);
3981
4116
  if (keyResult instanceof Promise) {
3982
4117
  throw new Error("Async schemas not supported in object keys currently");
@@ -4181,6 +4316,7 @@ var $ZodFile = /* @__PURE__ */ $constructor("$ZodFile", (inst, def) => {
4181
4316
  });
4182
4317
  var $ZodTransform = /* @__PURE__ */ $constructor("$ZodTransform", (inst, def) => {
4183
4318
  $ZodType.init(inst, def);
4319
+ inst._zod.optin = "optional";
4184
4320
  inst._zod.parse = (payload, ctx) => {
4185
4321
  if (ctx.direction === "backward") {
4186
4322
  throw new $ZodEncodeError(inst.constructor.name);
@@ -4190,6 +4326,7 @@ var $ZodTransform = /* @__PURE__ */ $constructor("$ZodTransform", (inst, def) =>
4190
4326
  const output = _out instanceof Promise ? _out : Promise.resolve(_out);
4191
4327
  return output.then((output2) => {
4192
4328
  payload.value = output2;
4329
+ payload.fallback = true;
4193
4330
  return payload;
4194
4331
  });
4195
4332
  }
@@ -4197,11 +4334,12 @@ var $ZodTransform = /* @__PURE__ */ $constructor("$ZodTransform", (inst, def) =>
4197
4334
  throw new $ZodAsyncError();
4198
4335
  }
4199
4336
  payload.value = _out;
4337
+ payload.fallback = true;
4200
4338
  return payload;
4201
4339
  };
4202
4340
  });
4203
4341
  function handleOptionalResult(result, input) {
4204
- if (result.issues.length && input === void 0) {
4342
+ if (input === void 0 && (result.issues.length || result.fallback)) {
4205
4343
  return { issues: [], value: void 0 };
4206
4344
  }
4207
4345
  return result;
@@ -4219,10 +4357,11 @@ var $ZodOptional = /* @__PURE__ */ $constructor("$ZodOptional", (inst, def) => {
4219
4357
  });
4220
4358
  inst._zod.parse = (payload, ctx) => {
4221
4359
  if (def.innerType._zod.optin === "optional") {
4360
+ const input = payload.value;
4222
4361
  const result = def.innerType._zod.run(payload, ctx);
4223
4362
  if (result instanceof Promise)
4224
- return result.then((r) => handleOptionalResult(r, payload.value));
4225
- return handleOptionalResult(result, payload.value);
4363
+ return result.then((r) => handleOptionalResult(r, input));
4364
+ return handleOptionalResult(result, input);
4226
4365
  }
4227
4366
  if (payload.value === void 0) {
4228
4367
  return payload;
@@ -4338,7 +4477,7 @@ var $ZodSuccess = /* @__PURE__ */ $constructor("$ZodSuccess", (inst, def) => {
4338
4477
  });
4339
4478
  var $ZodCatch = /* @__PURE__ */ $constructor("$ZodCatch", (inst, def) => {
4340
4479
  $ZodType.init(inst, def);
4341
- defineLazy(inst._zod, "optin", () => def.innerType._zod.optin);
4480
+ inst._zod.optin = "optional";
4342
4481
  defineLazy(inst._zod, "optout", () => def.innerType._zod.optout);
4343
4482
  defineLazy(inst._zod, "values", () => def.innerType._zod.values);
4344
4483
  inst._zod.parse = (payload, ctx) => {
@@ -4358,6 +4497,7 @@ var $ZodCatch = /* @__PURE__ */ $constructor("$ZodCatch", (inst, def) => {
4358
4497
  input: payload.value
4359
4498
  });
4360
4499
  payload.issues = [];
4500
+ payload.fallback = true;
4361
4501
  }
4362
4502
  return payload;
4363
4503
  });
@@ -4372,6 +4512,7 @@ var $ZodCatch = /* @__PURE__ */ $constructor("$ZodCatch", (inst, def) => {
4372
4512
  input: payload.value
4373
4513
  });
4374
4514
  payload.issues = [];
4515
+ payload.fallback = true;
4375
4516
  }
4376
4517
  return payload;
4377
4518
  };
@@ -4417,7 +4558,7 @@ function handlePipeResult(left, next, ctx) {
4417
4558
  left.aborted = true;
4418
4559
  return left;
4419
4560
  }
4420
- return next._zod.run({ value: left.value, issues: left.issues }, ctx);
4561
+ return next._zod.run({ value: left.value, issues: left.issues, fallback: left.fallback }, ctx);
4421
4562
  }
4422
4563
  var $ZodCodec = /* @__PURE__ */ $constructor("$ZodCodec", (inst, def) => {
4423
4564
  $ZodType.init(inst, def);
@@ -4469,6 +4610,9 @@ function handleCodecTxResult(left, value, nextSchema, ctx) {
4469
4610
  }
4470
4611
  return nextSchema._zod.run({ value, issues: left.issues }, ctx);
4471
4612
  }
4613
+ var $ZodPreprocess = /* @__PURE__ */ $constructor("$ZodPreprocess", (inst, def) => {
4614
+ $ZodPipe.init(inst, def);
4615
+ });
4472
4616
  var $ZodReadonly = /* @__PURE__ */ $constructor("$ZodReadonly", (inst, def) => {
4473
4617
  $ZodType.init(inst, def);
4474
4618
  defineLazy(inst._zod, "propValues", () => def.innerType._zod.propValues);
@@ -4620,7 +4764,12 @@ var $ZodPromise = /* @__PURE__ */ $constructor("$ZodPromise", (inst, def) => {
4620
4764
  });
4621
4765
  var $ZodLazy = /* @__PURE__ */ $constructor("$ZodLazy", (inst, def) => {
4622
4766
  $ZodType.init(inst, def);
4623
- defineLazy(inst._zod, "innerType", () => def.getter());
4767
+ defineLazy(inst._zod, "innerType", () => {
4768
+ const d = def;
4769
+ if (!d._cachedInner)
4770
+ d._cachedInner = def.getter();
4771
+ return d._cachedInner;
4772
+ });
4624
4773
  defineLazy(inst._zod, "pattern", () => inst._zod.innerType?._zod?.pattern);
4625
4774
  defineLazy(inst._zod, "propValues", () => inst._zod.innerType?._zod?.propValues);
4626
4775
  defineLazy(inst._zod, "optin", () => inst._zod.innerType?._zod?.optin ?? void 0);
@@ -4664,7 +4813,7 @@ function handleRefineResult(result, payload, input, inst) {
4664
4813
  }
4665
4814
  }
4666
4815
 
4667
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/index.js
4816
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/index.js
4668
4817
  var locales_exports = {};
4669
4818
  __export(locales_exports, {
4670
4819
  ar: () => ar_default,
@@ -4675,6 +4824,7 @@ __export(locales_exports, {
4675
4824
  cs: () => cs_default,
4676
4825
  da: () => da_default,
4677
4826
  de: () => de_default,
4827
+ el: () => el_default,
4678
4828
  en: () => en_default,
4679
4829
  eo: () => eo_default,
4680
4830
  es: () => es_default,
@@ -4683,6 +4833,7 @@ __export(locales_exports, {
4683
4833
  fr: () => fr_default,
4684
4834
  frCA: () => fr_CA_default,
4685
4835
  he: () => he_default,
4836
+ hr: () => hr_default,
4686
4837
  hu: () => hu_default,
4687
4838
  hy: () => hy_default,
4688
4839
  id: () => id_default,
@@ -4702,6 +4853,7 @@ __export(locales_exports, {
4702
4853
  pl: () => pl_default,
4703
4854
  ps: () => ps_default,
4704
4855
  pt: () => pt_default,
4856
+ ro: () => ro_default,
4705
4857
  ru: () => ru_default,
4706
4858
  sl: () => sl_default,
4707
4859
  sv: () => sv_default,
@@ -4718,7 +4870,7 @@ __export(locales_exports, {
4718
4870
  zhTW: () => zh_TW_default
4719
4871
  });
4720
4872
 
4721
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ar.js
4873
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/ar.js
4722
4874
  var error = () => {
4723
4875
  const Sizable = {
4724
4876
  string: { unit: "\u062D\u0631\u0641", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" },
@@ -4825,7 +4977,7 @@ function ar_default() {
4825
4977
  };
4826
4978
  }
4827
4979
 
4828
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/az.js
4980
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/az.js
4829
4981
  var error2 = () => {
4830
4982
  const Sizable = {
4831
4983
  string: { unit: "simvol", verb: "olmal\u0131d\u0131r" },
@@ -4931,7 +5083,7 @@ function az_default() {
4931
5083
  };
4932
5084
  }
4933
5085
 
4934
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/be.js
5086
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/be.js
4935
5087
  function getBelarusianPlural(count, one, few, many) {
4936
5088
  const absCount = Math.abs(count);
4937
5089
  const lastDigit = absCount % 10;
@@ -5088,7 +5240,7 @@ function be_default() {
5088
5240
  };
5089
5241
  }
5090
5242
 
5091
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/bg.js
5243
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/bg.js
5092
5244
  var error4 = () => {
5093
5245
  const Sizable = {
5094
5246
  string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" },
@@ -5209,7 +5361,7 @@ function bg_default() {
5209
5361
  };
5210
5362
  }
5211
5363
 
5212
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ca.js
5364
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/ca.js
5213
5365
  var error5 = () => {
5214
5366
  const Sizable = {
5215
5367
  string: { unit: "car\xE0cters", verb: "contenir" },
@@ -5318,7 +5470,7 @@ function ca_default() {
5318
5470
  };
5319
5471
  }
5320
5472
 
5321
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/cs.js
5473
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/cs.js
5322
5474
  var error6 = () => {
5323
5475
  const Sizable = {
5324
5476
  string: { unit: "znak\u016F", verb: "m\xEDt" },
@@ -5430,7 +5582,7 @@ function cs_default() {
5430
5582
  };
5431
5583
  }
5432
5584
 
5433
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/da.js
5585
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/da.js
5434
5586
  var error7 = () => {
5435
5587
  const Sizable = {
5436
5588
  string: { unit: "tegn", verb: "havde" },
@@ -5546,7 +5698,7 @@ function da_default() {
5546
5698
  };
5547
5699
  }
5548
5700
 
5549
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/de.js
5701
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/de.js
5550
5702
  var error8 = () => {
5551
5703
  const Sizable = {
5552
5704
  string: { unit: "Zeichen", verb: "zu haben" },
@@ -5655,8 +5807,118 @@ function de_default() {
5655
5807
  };
5656
5808
  }
5657
5809
 
5658
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/en.js
5810
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/el.js
5659
5811
  var error9 = () => {
5812
+ const Sizable = {
5813
+ string: { unit: "\u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B5\u03C2", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" },
5814
+ file: { unit: "bytes", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" },
5815
+ array: { unit: "\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" },
5816
+ set: { unit: "\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" },
5817
+ map: { unit: "\u03BA\u03B1\u03C4\u03B1\u03C7\u03C9\u03C1\u03AE\u03C3\u03B5\u03B9\u03C2", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" }
5818
+ };
5819
+ function getSizing(origin) {
5820
+ return Sizable[origin] ?? null;
5821
+ }
5822
+ const FormatDictionary = {
5823
+ regex: "\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2",
5824
+ email: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 email",
5825
+ url: "URL",
5826
+ emoji: "emoji",
5827
+ uuid: "UUID",
5828
+ uuidv4: "UUIDv4",
5829
+ uuidv6: "UUIDv6",
5830
+ nanoid: "nanoid",
5831
+ guid: "GUID",
5832
+ cuid: "cuid",
5833
+ cuid2: "cuid2",
5834
+ ulid: "ULID",
5835
+ xid: "XID",
5836
+ ksuid: "KSUID",
5837
+ datetime: "ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03BA\u03B1\u03B9 \u03CE\u03C1\u03B1",
5838
+ date: "ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1",
5839
+ time: "ISO \u03CE\u03C1\u03B1",
5840
+ duration: "ISO \u03B4\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1",
5841
+ ipv4: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv4",
5842
+ ipv6: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv6",
5843
+ mac: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 MAC",
5844
+ cidrv4: "\u03B5\u03CD\u03C1\u03BF\u03C2 IPv4",
5845
+ cidrv6: "\u03B5\u03CD\u03C1\u03BF\u03C2 IPv6",
5846
+ base64: "\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64",
5847
+ base64url: "\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64url",
5848
+ json_string: "\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC JSON",
5849
+ e164: "\u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2 E.164",
5850
+ jwt: "JWT",
5851
+ template_literal: "\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2"
5852
+ };
5853
+ const TypeDictionary = {
5854
+ nan: "NaN"
5855
+ };
5856
+ return (issue2) => {
5857
+ switch (issue2.code) {
5858
+ case "invalid_type": {
5859
+ const expected = TypeDictionary[issue2.expected] ?? issue2.expected;
5860
+ const receivedType = parsedType(issue2.input);
5861
+ const received = TypeDictionary[receivedType] ?? receivedType;
5862
+ if (typeof issue2.expected === "string" && /^[A-Z]/.test(issue2.expected)) {
5863
+ return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD instanceof ${issue2.expected}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${received}`;
5864
+ }
5865
+ return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${expected}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${received}`;
5866
+ }
5867
+ case "invalid_value":
5868
+ if (issue2.values.length === 1)
5869
+ return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${stringifyPrimitive(issue2.values[0])}`;
5870
+ return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD \u03AD\u03BD\u03B1 \u03B1\u03C0\u03CC ${joinValues(issue2.values, "|")}`;
5871
+ case "too_big": {
5872
+ const adj = issue2.inclusive ? "<=" : "<";
5873
+ const sizing = getSizing(issue2.origin);
5874
+ if (sizing)
5875
+ return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue2.origin ?? "\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1"}`;
5876
+ return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue2.origin ?? "\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${adj}${issue2.maximum.toString()}`;
5877
+ }
5878
+ case "too_small": {
5879
+ const adj = issue2.inclusive ? ">=" : ">";
5880
+ const sizing = getSizing(issue2.origin);
5881
+ if (sizing) {
5882
+ return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue2.origin} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${adj}${issue2.minimum.toString()} ${sizing.unit}`;
5883
+ }
5884
+ return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue2.origin} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${adj}${issue2.minimum.toString()}`;
5885
+ }
5886
+ case "invalid_format": {
5887
+ const _issue = issue2;
5888
+ if (_issue.format === "starts_with") {
5889
+ return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03BE\u03B5\u03BA\u03B9\u03BD\u03AC \u03BC\u03B5 "${_issue.prefix}"`;
5890
+ }
5891
+ if (_issue.format === "ends_with")
5892
+ return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B5\u03BB\u03B5\u03B9\u03CE\u03BD\u03B5\u03B9 \u03BC\u03B5 "${_issue.suffix}"`;
5893
+ if (_issue.format === "includes")
5894
+ return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C0\u03B5\u03C1\u03B9\u03AD\u03C7\u03B5\u03B9 "${_issue.includes}"`;
5895
+ if (_issue.format === "regex")
5896
+ return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B1\u03B9\u03C1\u03B9\u03AC\u03B6\u03B5\u03B9 \u03BC\u03B5 \u03C4\u03BF \u03BC\u03BF\u03C4\u03AF\u03B2\u03BF ${_issue.pattern}`;
5897
+ return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF: ${FormatDictionary[_issue.format] ?? issue2.format}`;
5898
+ }
5899
+ case "not_multiple_of":
5900
+ return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF\u03C2 \u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03BF\u03BB\u03BB\u03B1\u03C0\u03BB\u03AC\u03C3\u03B9\u03BF \u03C4\u03BF\u03C5 ${issue2.divisor}`;
5901
+ case "unrecognized_keys":
5902
+ return `\u0386\u03B3\u03BD\u03C9\u03C3\u03C4${issue2.keys.length > 1 ? "\u03B1" : "\u03BF"} \u03BA\u03BB\u03B5\u03B9\u03B4${issue2.keys.length > 1 ? "\u03B9\u03AC" : "\u03AF"}: ${joinValues(issue2.keys, ", ")}`;
5903
+ case "invalid_key":
5904
+ return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF \u03BA\u03BB\u03B5\u03B9\u03B4\u03AF \u03C3\u03C4\u03BF ${issue2.origin}`;
5905
+ case "invalid_union":
5906
+ return "\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2";
5907
+ case "invalid_element":
5908
+ return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C4\u03B9\u03BC\u03AE \u03C3\u03C4\u03BF ${issue2.origin}`;
5909
+ default:
5910
+ return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2`;
5911
+ }
5912
+ };
5913
+ };
5914
+ function el_default() {
5915
+ return {
5916
+ localeError: error9()
5917
+ };
5918
+ }
5919
+
5920
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/en.js
5921
+ var error10 = () => {
5660
5922
  const Sizable = {
5661
5923
  string: { unit: "characters", verb: "to have" },
5662
5924
  file: { unit: "bytes", verb: "to have" },
@@ -5750,6 +6012,10 @@ var error9 = () => {
5750
6012
  case "invalid_key":
5751
6013
  return `Invalid key in ${issue2.origin}`;
5752
6014
  case "invalid_union":
6015
+ if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) {
6016
+ const opts = issue2.options.map((o) => `'${o}'`).join(" | ");
6017
+ return `Invalid discriminator value. Expected ${opts}`;
6018
+ }
5753
6019
  return "Invalid input";
5754
6020
  case "invalid_element":
5755
6021
  return `Invalid value in ${issue2.origin}`;
@@ -5760,12 +6026,12 @@ var error9 = () => {
5760
6026
  };
5761
6027
  function en_default() {
5762
6028
  return {
5763
- localeError: error9()
6029
+ localeError: error10()
5764
6030
  };
5765
6031
  }
5766
6032
 
5767
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/eo.js
5768
- var error10 = () => {
6033
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/eo.js
6034
+ var error11 = () => {
5769
6035
  const Sizable = {
5770
6036
  string: { unit: "karaktrojn", verb: "havi" },
5771
6037
  file: { unit: "bajtojn", verb: "havi" },
@@ -5870,12 +6136,12 @@ var error10 = () => {
5870
6136
  };
5871
6137
  function eo_default() {
5872
6138
  return {
5873
- localeError: error10()
6139
+ localeError: error11()
5874
6140
  };
5875
6141
  }
5876
6142
 
5877
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/es.js
5878
- var error11 = () => {
6143
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/es.js
6144
+ var error12 = () => {
5879
6145
  const Sizable = {
5880
6146
  string: { unit: "caracteres", verb: "tener" },
5881
6147
  file: { unit: "bytes", verb: "tener" },
@@ -6003,12 +6269,12 @@ var error11 = () => {
6003
6269
  };
6004
6270
  function es_default() {
6005
6271
  return {
6006
- localeError: error11()
6272
+ localeError: error12()
6007
6273
  };
6008
6274
  }
6009
6275
 
6010
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fa.js
6011
- var error12 = () => {
6276
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/fa.js
6277
+ var error13 = () => {
6012
6278
  const Sizable = {
6013
6279
  string: { unit: "\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" },
6014
6280
  file: { unit: "\u0628\u0627\u06CC\u062A", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" },
@@ -6118,12 +6384,12 @@ var error12 = () => {
6118
6384
  };
6119
6385
  function fa_default() {
6120
6386
  return {
6121
- localeError: error12()
6387
+ localeError: error13()
6122
6388
  };
6123
6389
  }
6124
6390
 
6125
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fi.js
6126
- var error13 = () => {
6391
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/fi.js
6392
+ var error14 = () => {
6127
6393
  const Sizable = {
6128
6394
  string: { unit: "merkki\xE4", subject: "merkkijonon" },
6129
6395
  file: { unit: "tavua", subject: "tiedoston" },
@@ -6231,12 +6497,12 @@ var error13 = () => {
6231
6497
  };
6232
6498
  function fi_default() {
6233
6499
  return {
6234
- localeError: error13()
6500
+ localeError: error14()
6235
6501
  };
6236
6502
  }
6237
6503
 
6238
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fr.js
6239
- var error14 = () => {
6504
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/fr.js
6505
+ var error15 = () => {
6240
6506
  const Sizable = {
6241
6507
  string: { unit: "caract\xE8res", verb: "avoir" },
6242
6508
  file: { unit: "octets", verb: "avoir" },
@@ -6277,9 +6543,27 @@ var error14 = () => {
6277
6543
  template_literal: "entr\xE9e"
6278
6544
  };
6279
6545
  const TypeDictionary = {
6280
- nan: "NaN",
6546
+ string: "cha\xEEne",
6281
6547
  number: "nombre",
6282
- array: "tableau"
6548
+ int: "entier",
6549
+ boolean: "bool\xE9en",
6550
+ bigint: "grand entier",
6551
+ symbol: "symbole",
6552
+ undefined: "ind\xE9fini",
6553
+ null: "null",
6554
+ never: "jamais",
6555
+ void: "vide",
6556
+ date: "date",
6557
+ array: "tableau",
6558
+ object: "objet",
6559
+ tuple: "tuple",
6560
+ record: "enregistrement",
6561
+ map: "carte",
6562
+ set: "ensemble",
6563
+ file: "fichier",
6564
+ nonoptional: "non-optionnel",
6565
+ nan: "NaN",
6566
+ function: "fonction"
6283
6567
  };
6284
6568
  return (issue2) => {
6285
6569
  switch (issue2.code) {
@@ -6300,16 +6584,15 @@ var error14 = () => {
6300
6584
  const adj = issue2.inclusive ? "<=" : "<";
6301
6585
  const sizing = getSizing(issue2.origin);
6302
6586
  if (sizing)
6303
- return `Trop grand : ${issue2.origin ?? "valeur"} doit ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\xE9l\xE9ment(s)"}`;
6304
- return `Trop grand : ${issue2.origin ?? "valeur"} doit \xEAtre ${adj}${issue2.maximum.toString()}`;
6587
+ return `Trop grand : ${TypeDictionary[issue2.origin] ?? "valeur"} doit ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\xE9l\xE9ment(s)"}`;
6588
+ return `Trop grand : ${TypeDictionary[issue2.origin] ?? "valeur"} doit \xEAtre ${adj}${issue2.maximum.toString()}`;
6305
6589
  }
6306
6590
  case "too_small": {
6307
6591
  const adj = issue2.inclusive ? ">=" : ">";
6308
6592
  const sizing = getSizing(issue2.origin);
6309
- if (sizing) {
6310
- return `Trop petit : ${issue2.origin} doit ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`;
6311
- }
6312
- return `Trop petit : ${issue2.origin} doit \xEAtre ${adj}${issue2.minimum.toString()}`;
6593
+ if (sizing)
6594
+ return `Trop petit : ${TypeDictionary[issue2.origin] ?? "valeur"} doit ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`;
6595
+ return `Trop petit : ${TypeDictionary[issue2.origin] ?? "valeur"} doit \xEAtre ${adj}${issue2.minimum.toString()}`;
6313
6596
  }
6314
6597
  case "invalid_format": {
6315
6598
  const _issue = issue2;
@@ -6340,12 +6623,12 @@ var error14 = () => {
6340
6623
  };
6341
6624
  function fr_default() {
6342
6625
  return {
6343
- localeError: error14()
6626
+ localeError: error15()
6344
6627
  };
6345
6628
  }
6346
6629
 
6347
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fr-CA.js
6348
- var error15 = () => {
6630
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/fr-CA.js
6631
+ var error16 = () => {
6349
6632
  const Sizable = {
6350
6633
  string: { unit: "caract\xE8res", verb: "avoir" },
6351
6634
  file: { unit: "octets", verb: "avoir" },
@@ -6448,12 +6731,12 @@ var error15 = () => {
6448
6731
  };
6449
6732
  function fr_CA_default() {
6450
6733
  return {
6451
- localeError: error15()
6734
+ localeError: error16()
6452
6735
  };
6453
6736
  }
6454
6737
 
6455
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/he.js
6456
- var error16 = () => {
6738
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/he.js
6739
+ var error17 = () => {
6457
6740
  const TypeNames = {
6458
6741
  string: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA", gender: "f" },
6459
6742
  number: { label: "\u05DE\u05E1\u05E4\u05E8", gender: "m" },
@@ -6641,14 +6924,137 @@ var error16 = () => {
6641
6924
  }
6642
6925
  };
6643
6926
  };
6644
- function he_default() {
6927
+ function he_default() {
6928
+ return {
6929
+ localeError: error17()
6930
+ };
6931
+ }
6932
+
6933
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/hr.js
6934
+ var error18 = () => {
6935
+ const Sizable = {
6936
+ string: { unit: "znakova", verb: "imati" },
6937
+ file: { unit: "bajtova", verb: "imati" },
6938
+ array: { unit: "stavki", verb: "imati" },
6939
+ set: { unit: "stavki", verb: "imati" }
6940
+ };
6941
+ function getSizing(origin) {
6942
+ return Sizable[origin] ?? null;
6943
+ }
6944
+ const FormatDictionary = {
6945
+ regex: "unos",
6946
+ email: "email adresa",
6947
+ url: "URL",
6948
+ emoji: "emoji",
6949
+ uuid: "UUID",
6950
+ uuidv4: "UUIDv4",
6951
+ uuidv6: "UUIDv6",
6952
+ nanoid: "nanoid",
6953
+ guid: "GUID",
6954
+ cuid: "cuid",
6955
+ cuid2: "cuid2",
6956
+ ulid: "ULID",
6957
+ xid: "XID",
6958
+ ksuid: "KSUID",
6959
+ datetime: "ISO datum i vrijeme",
6960
+ date: "ISO datum",
6961
+ time: "ISO vrijeme",
6962
+ duration: "ISO trajanje",
6963
+ ipv4: "IPv4 adresa",
6964
+ ipv6: "IPv6 adresa",
6965
+ cidrv4: "IPv4 raspon",
6966
+ cidrv6: "IPv6 raspon",
6967
+ base64: "base64 kodirani tekst",
6968
+ base64url: "base64url kodirani tekst",
6969
+ json_string: "JSON tekst",
6970
+ e164: "E.164 broj",
6971
+ jwt: "JWT",
6972
+ template_literal: "unos"
6973
+ };
6974
+ const TypeDictionary = {
6975
+ nan: "NaN",
6976
+ string: "tekst",
6977
+ number: "broj",
6978
+ boolean: "boolean",
6979
+ array: "niz",
6980
+ object: "objekt",
6981
+ set: "skup",
6982
+ file: "datoteka",
6983
+ date: "datum",
6984
+ bigint: "bigint",
6985
+ symbol: "simbol",
6986
+ undefined: "undefined",
6987
+ null: "null",
6988
+ function: "funkcija",
6989
+ map: "mapa"
6990
+ };
6991
+ return (issue2) => {
6992
+ switch (issue2.code) {
6993
+ case "invalid_type": {
6994
+ const expected = TypeDictionary[issue2.expected] ?? issue2.expected;
6995
+ const receivedType = parsedType(issue2.input);
6996
+ const received = TypeDictionary[receivedType] ?? receivedType;
6997
+ if (/^[A-Z]/.test(issue2.expected)) {
6998
+ return `Neispravan unos: o\u010Dekuje se instanceof ${issue2.expected}, a primljeno je ${received}`;
6999
+ }
7000
+ return `Neispravan unos: o\u010Dekuje se ${expected}, a primljeno je ${received}`;
7001
+ }
7002
+ case "invalid_value":
7003
+ if (issue2.values.length === 1)
7004
+ return `Neispravna vrijednost: o\u010Dekivano ${stringifyPrimitive(issue2.values[0])}`;
7005
+ return `Neispravna opcija: o\u010Dekivano jedno od ${joinValues(issue2.values, "|")}`;
7006
+ case "too_big": {
7007
+ const adj = issue2.inclusive ? "<=" : "<";
7008
+ const sizing = getSizing(issue2.origin);
7009
+ const origin = TypeDictionary[issue2.origin] ?? issue2.origin;
7010
+ if (sizing)
7011
+ return `Preveliko: o\u010Dekivano da ${origin ?? "vrijednost"} ima ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elemenata"}`;
7012
+ return `Preveliko: o\u010Dekivano da ${origin ?? "vrijednost"} bude ${adj}${issue2.maximum.toString()}`;
7013
+ }
7014
+ case "too_small": {
7015
+ const adj = issue2.inclusive ? ">=" : ">";
7016
+ const sizing = getSizing(issue2.origin);
7017
+ const origin = TypeDictionary[issue2.origin] ?? issue2.origin;
7018
+ if (sizing) {
7019
+ return `Premalo: o\u010Dekivano da ${origin} ima ${adj}${issue2.minimum.toString()} ${sizing.unit}`;
7020
+ }
7021
+ return `Premalo: o\u010Dekivano da ${origin} bude ${adj}${issue2.minimum.toString()}`;
7022
+ }
7023
+ case "invalid_format": {
7024
+ const _issue = issue2;
7025
+ if (_issue.format === "starts_with")
7026
+ return `Neispravan tekst: mora zapo\u010Dinjati s "${_issue.prefix}"`;
7027
+ if (_issue.format === "ends_with")
7028
+ return `Neispravan tekst: mora zavr\u0161avati s "${_issue.suffix}"`;
7029
+ if (_issue.format === "includes")
7030
+ return `Neispravan tekst: mora sadr\u017Eavati "${_issue.includes}"`;
7031
+ if (_issue.format === "regex")
7032
+ return `Neispravan tekst: mora odgovarati uzorku ${_issue.pattern}`;
7033
+ return `Neispravna ${FormatDictionary[_issue.format] ?? issue2.format}`;
7034
+ }
7035
+ case "not_multiple_of":
7036
+ return `Neispravan broj: mora biti vi\u0161ekratnik od ${issue2.divisor}`;
7037
+ case "unrecognized_keys":
7038
+ return `Neprepoznat${issue2.keys.length > 1 ? "i klju\u010Devi" : " klju\u010D"}: ${joinValues(issue2.keys, ", ")}`;
7039
+ case "invalid_key":
7040
+ return `Neispravan klju\u010D u ${TypeDictionary[issue2.origin] ?? issue2.origin}`;
7041
+ case "invalid_union":
7042
+ return "Neispravan unos";
7043
+ case "invalid_element":
7044
+ return `Neispravna vrijednost u ${TypeDictionary[issue2.origin] ?? issue2.origin}`;
7045
+ default:
7046
+ return `Neispravan unos`;
7047
+ }
7048
+ };
7049
+ };
7050
+ function hr_default() {
6645
7051
  return {
6646
- localeError: error16()
7052
+ localeError: error18()
6647
7053
  };
6648
7054
  }
6649
7055
 
6650
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/hu.js
6651
- var error17 = () => {
7056
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/hu.js
7057
+ var error19 = () => {
6652
7058
  const Sizable = {
6653
7059
  string: { unit: "karakter", verb: "legyen" },
6654
7060
  file: { unit: "byte", verb: "legyen" },
@@ -6752,11 +7158,11 @@ var error17 = () => {
6752
7158
  };
6753
7159
  function hu_default() {
6754
7160
  return {
6755
- localeError: error17()
7161
+ localeError: error19()
6756
7162
  };
6757
7163
  }
6758
7164
 
6759
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/hy.js
7165
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/hy.js
6760
7166
  function getArmenianPlural(count, one, many) {
6761
7167
  return Math.abs(count) === 1 ? one : many;
6762
7168
  }
@@ -6767,7 +7173,7 @@ function withDefiniteArticle(word) {
6767
7173
  const lastChar = word[word.length - 1];
6768
7174
  return word + (vowels.includes(lastChar) ? "\u0576" : "\u0568");
6769
7175
  }
6770
- var error18 = () => {
7176
+ var error20 = () => {
6771
7177
  const Sizable = {
6772
7178
  string: {
6773
7179
  unit: {
@@ -6900,12 +7306,12 @@ var error18 = () => {
6900
7306
  };
6901
7307
  function hy_default() {
6902
7308
  return {
6903
- localeError: error18()
7309
+ localeError: error20()
6904
7310
  };
6905
7311
  }
6906
7312
 
6907
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/id.js
6908
- var error19 = () => {
7313
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/id.js
7314
+ var error21 = () => {
6909
7315
  const Sizable = {
6910
7316
  string: { unit: "karakter", verb: "memiliki" },
6911
7317
  file: { unit: "byte", verb: "memiliki" },
@@ -7007,12 +7413,12 @@ var error19 = () => {
7007
7413
  };
7008
7414
  function id_default() {
7009
7415
  return {
7010
- localeError: error19()
7416
+ localeError: error21()
7011
7417
  };
7012
7418
  }
7013
7419
 
7014
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/is.js
7015
- var error20 = () => {
7420
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/is.js
7421
+ var error22 = () => {
7016
7422
  const Sizable = {
7017
7423
  string: { unit: "stafi", verb: "a\xF0 hafa" },
7018
7424
  file: { unit: "b\xE6ti", verb: "a\xF0 hafa" },
@@ -7117,12 +7523,12 @@ var error20 = () => {
7117
7523
  };
7118
7524
  function is_default() {
7119
7525
  return {
7120
- localeError: error20()
7526
+ localeError: error22()
7121
7527
  };
7122
7528
  }
7123
7529
 
7124
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/it.js
7125
- var error21 = () => {
7530
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/it.js
7531
+ var error23 = () => {
7126
7532
  const Sizable = {
7127
7533
  string: { unit: "caratteri", verb: "avere" },
7128
7534
  file: { unit: "byte", verb: "avere" },
@@ -7207,7 +7613,7 @@ var error21 = () => {
7207
7613
  return `Stringa non valida: deve includere "${_issue.includes}"`;
7208
7614
  if (_issue.format === "regex")
7209
7615
  return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`;
7210
- return `Invalid ${FormatDictionary[_issue.format] ?? issue2.format}`;
7616
+ return `Input non valido: ${FormatDictionary[_issue.format] ?? issue2.format}`;
7211
7617
  }
7212
7618
  case "not_multiple_of":
7213
7619
  return `Numero non valido: deve essere un multiplo di ${issue2.divisor}`;
@@ -7226,12 +7632,12 @@ var error21 = () => {
7226
7632
  };
7227
7633
  function it_default() {
7228
7634
  return {
7229
- localeError: error21()
7635
+ localeError: error23()
7230
7636
  };
7231
7637
  }
7232
7638
 
7233
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ja.js
7234
- var error22 = () => {
7639
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/ja.js
7640
+ var error24 = () => {
7235
7641
  const Sizable = {
7236
7642
  string: { unit: "\u6587\u5B57", verb: "\u3067\u3042\u308B" },
7237
7643
  file: { unit: "\u30D0\u30A4\u30C8", verb: "\u3067\u3042\u308B" },
@@ -7334,12 +7740,12 @@ var error22 = () => {
7334
7740
  };
7335
7741
  function ja_default() {
7336
7742
  return {
7337
- localeError: error22()
7743
+ localeError: error24()
7338
7744
  };
7339
7745
  }
7340
7746
 
7341
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ka.js
7342
- var error23 = () => {
7747
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/ka.js
7748
+ var error25 = () => {
7343
7749
  const Sizable = {
7344
7750
  string: { unit: "\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" },
7345
7751
  file: { unit: "\u10D1\u10D0\u10D8\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" },
@@ -7372,9 +7778,9 @@ var error23 = () => {
7372
7778
  ipv6: "IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",
7373
7779
  cidrv4: "IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",
7374
7780
  cidrv6: "IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",
7375
- base64: "base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",
7376
- base64url: "base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",
7377
- json_string: "JSON \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",
7781
+ base64: "base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8",
7782
+ base64url: "base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8",
7783
+ json_string: "JSON \u10D5\u10D4\u10DA\u10D8",
7378
7784
  e164: "E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8",
7379
7785
  jwt: "JWT",
7380
7786
  template_literal: "\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"
@@ -7382,7 +7788,7 @@ var error23 = () => {
7382
7788
  const TypeDictionary = {
7383
7789
  nan: "NaN",
7384
7790
  number: "\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8",
7385
- string: "\u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",
7791
+ string: "\u10D5\u10D4\u10DA\u10D8",
7386
7792
  boolean: "\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8",
7387
7793
  function: "\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0",
7388
7794
  array: "\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8"
@@ -7420,14 +7826,14 @@ var error23 = () => {
7420
7826
  case "invalid_format": {
7421
7827
  const _issue = issue2;
7422
7828
  if (_issue.format === "starts_with") {
7423
- return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${_issue.prefix}"-\u10D8\u10D7`;
7829
+ return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${_issue.prefix}"-\u10D8\u10D7`;
7424
7830
  }
7425
7831
  if (_issue.format === "ends_with")
7426
- return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${_issue.suffix}"-\u10D8\u10D7`;
7832
+ return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${_issue.suffix}"-\u10D8\u10D7`;
7427
7833
  if (_issue.format === "includes")
7428
- return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${_issue.includes}"-\u10E1`;
7834
+ return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${_issue.includes}"-\u10E1`;
7429
7835
  if (_issue.format === "regex")
7430
- return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${_issue.pattern}`;
7836
+ return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${_issue.pattern}`;
7431
7837
  return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${FormatDictionary[_issue.format] ?? issue2.format}`;
7432
7838
  }
7433
7839
  case "not_multiple_of":
@@ -7447,12 +7853,12 @@ var error23 = () => {
7447
7853
  };
7448
7854
  function ka_default() {
7449
7855
  return {
7450
- localeError: error23()
7856
+ localeError: error25()
7451
7857
  };
7452
7858
  }
7453
7859
 
7454
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/km.js
7455
- var error24 = () => {
7860
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/km.js
7861
+ var error26 = () => {
7456
7862
  const Sizable = {
7457
7863
  string: { unit: "\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" },
7458
7864
  file: { unit: "\u1794\u17C3", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" },
@@ -7558,17 +7964,17 @@ var error24 = () => {
7558
7964
  };
7559
7965
  function km_default() {
7560
7966
  return {
7561
- localeError: error24()
7967
+ localeError: error26()
7562
7968
  };
7563
7969
  }
7564
7970
 
7565
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/kh.js
7971
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/kh.js
7566
7972
  function kh_default() {
7567
7973
  return km_default();
7568
7974
  }
7569
7975
 
7570
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ko.js
7571
- var error25 = () => {
7976
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/ko.js
7977
+ var error27 = () => {
7572
7978
  const Sizable = {
7573
7979
  string: { unit: "\uBB38\uC790", verb: "to have" },
7574
7980
  file: { unit: "\uBC14\uC774\uD2B8", verb: "to have" },
@@ -7675,11 +8081,11 @@ var error25 = () => {
7675
8081
  };
7676
8082
  function ko_default() {
7677
8083
  return {
7678
- localeError: error25()
8084
+ localeError: error27()
7679
8085
  };
7680
8086
  }
7681
8087
 
7682
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/lt.js
8088
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/lt.js
7683
8089
  var capitalizeFirstCharacter = (text) => {
7684
8090
  return text.charAt(0).toUpperCase() + text.slice(1);
7685
8091
  };
@@ -7693,7 +8099,7 @@ function getUnitTypeFromNumber(number4) {
7693
8099
  return "one";
7694
8100
  return "few";
7695
8101
  }
7696
- var error26 = () => {
8102
+ var error28 = () => {
7697
8103
  const Sizable = {
7698
8104
  string: {
7699
8105
  unit: {
@@ -7879,12 +8285,12 @@ var error26 = () => {
7879
8285
  };
7880
8286
  function lt_default() {
7881
8287
  return {
7882
- localeError: error26()
8288
+ localeError: error28()
7883
8289
  };
7884
8290
  }
7885
8291
 
7886
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/mk.js
7887
- var error27 = () => {
8292
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/mk.js
8293
+ var error29 = () => {
7888
8294
  const Sizable = {
7889
8295
  string: { unit: "\u0437\u043D\u0430\u0446\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" },
7890
8296
  file: { unit: "\u0431\u0430\u0458\u0442\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" },
@@ -7989,12 +8395,12 @@ var error27 = () => {
7989
8395
  };
7990
8396
  function mk_default() {
7991
8397
  return {
7992
- localeError: error27()
8398
+ localeError: error29()
7993
8399
  };
7994
8400
  }
7995
8401
 
7996
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ms.js
7997
- var error28 = () => {
8402
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/ms.js
8403
+ var error30 = () => {
7998
8404
  const Sizable = {
7999
8405
  string: { unit: "aksara", verb: "mempunyai" },
8000
8406
  file: { unit: "bait", verb: "mempunyai" },
@@ -8097,12 +8503,12 @@ var error28 = () => {
8097
8503
  };
8098
8504
  function ms_default() {
8099
8505
  return {
8100
- localeError: error28()
8506
+ localeError: error30()
8101
8507
  };
8102
8508
  }
8103
8509
 
8104
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/nl.js
8105
- var error29 = () => {
8510
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/nl.js
8511
+ var error31 = () => {
8106
8512
  const Sizable = {
8107
8513
  string: { unit: "tekens", verb: "heeft" },
8108
8514
  file: { unit: "bytes", verb: "heeft" },
@@ -8208,12 +8614,12 @@ var error29 = () => {
8208
8614
  };
8209
8615
  function nl_default() {
8210
8616
  return {
8211
- localeError: error29()
8617
+ localeError: error31()
8212
8618
  };
8213
8619
  }
8214
8620
 
8215
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/no.js
8216
- var error30 = () => {
8621
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/no.js
8622
+ var error32 = () => {
8217
8623
  const Sizable = {
8218
8624
  string: { unit: "tegn", verb: "\xE5 ha" },
8219
8625
  file: { unit: "bytes", verb: "\xE5 ha" },
@@ -8317,12 +8723,12 @@ var error30 = () => {
8317
8723
  };
8318
8724
  function no_default() {
8319
8725
  return {
8320
- localeError: error30()
8726
+ localeError: error32()
8321
8727
  };
8322
8728
  }
8323
8729
 
8324
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ota.js
8325
- var error31 = () => {
8730
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/ota.js
8731
+ var error33 = () => {
8326
8732
  const Sizable = {
8327
8733
  string: { unit: "harf", verb: "olmal\u0131d\u0131r" },
8328
8734
  file: { unit: "bayt", verb: "olmal\u0131d\u0131r" },
@@ -8427,12 +8833,12 @@ var error31 = () => {
8427
8833
  };
8428
8834
  function ota_default() {
8429
8835
  return {
8430
- localeError: error31()
8836
+ localeError: error33()
8431
8837
  };
8432
8838
  }
8433
8839
 
8434
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ps.js
8435
- var error32 = () => {
8840
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/ps.js
8841
+ var error34 = () => {
8436
8842
  const Sizable = {
8437
8843
  string: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" },
8438
8844
  file: { unit: "\u0628\u0627\u06CC\u067C\u0633", verb: "\u0648\u0644\u0631\u064A" },
@@ -8542,12 +8948,12 @@ var error32 = () => {
8542
8948
  };
8543
8949
  function ps_default() {
8544
8950
  return {
8545
- localeError: error32()
8951
+ localeError: error34()
8546
8952
  };
8547
8953
  }
8548
8954
 
8549
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/pl.js
8550
- var error33 = () => {
8955
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/pl.js
8956
+ var error35 = () => {
8551
8957
  const Sizable = {
8552
8958
  string: { unit: "znak\xF3w", verb: "mie\u0107" },
8553
8959
  file: { unit: "bajt\xF3w", verb: "mie\u0107" },
@@ -8652,12 +9058,12 @@ var error33 = () => {
8652
9058
  };
8653
9059
  function pl_default() {
8654
9060
  return {
8655
- localeError: error33()
9061
+ localeError: error35()
8656
9062
  };
8657
9063
  }
8658
9064
 
8659
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/pt.js
8660
- var error34 = () => {
9065
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/pt.js
9066
+ var error36 = () => {
8661
9067
  const Sizable = {
8662
9068
  string: { unit: "caracteres", verb: "ter" },
8663
9069
  file: { unit: "bytes", verb: "ter" },
@@ -8761,11 +9167,131 @@ var error34 = () => {
8761
9167
  };
8762
9168
  function pt_default() {
8763
9169
  return {
8764
- localeError: error34()
9170
+ localeError: error36()
9171
+ };
9172
+ }
9173
+
9174
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/ro.js
9175
+ var error37 = () => {
9176
+ const Sizable = {
9177
+ string: { unit: "caractere", verb: "s\u0103 aib\u0103" },
9178
+ file: { unit: "octe\u021Bi", verb: "s\u0103 aib\u0103" },
9179
+ array: { unit: "elemente", verb: "s\u0103 aib\u0103" },
9180
+ set: { unit: "elemente", verb: "s\u0103 aib\u0103" },
9181
+ map: { unit: "intr\u0103ri", verb: "s\u0103 aib\u0103" }
9182
+ };
9183
+ function getSizing(origin) {
9184
+ return Sizable[origin] ?? null;
9185
+ }
9186
+ const FormatDictionary = {
9187
+ regex: "intrare",
9188
+ email: "adres\u0103 de email",
9189
+ url: "URL",
9190
+ emoji: "emoji",
9191
+ uuid: "UUID",
9192
+ uuidv4: "UUIDv4",
9193
+ uuidv6: "UUIDv6",
9194
+ nanoid: "nanoid",
9195
+ guid: "GUID",
9196
+ cuid: "cuid",
9197
+ cuid2: "cuid2",
9198
+ ulid: "ULID",
9199
+ xid: "XID",
9200
+ ksuid: "KSUID",
9201
+ datetime: "dat\u0103 \u0219i or\u0103 ISO",
9202
+ date: "dat\u0103 ISO",
9203
+ time: "or\u0103 ISO",
9204
+ duration: "durat\u0103 ISO",
9205
+ ipv4: "adres\u0103 IPv4",
9206
+ ipv6: "adres\u0103 IPv6",
9207
+ mac: "adres\u0103 MAC",
9208
+ cidrv4: "interval IPv4",
9209
+ cidrv6: "interval IPv6",
9210
+ base64: "\u0219ir codat base64",
9211
+ base64url: "\u0219ir codat base64url",
9212
+ json_string: "\u0219ir JSON",
9213
+ e164: "num\u0103r E.164",
9214
+ jwt: "JWT",
9215
+ template_literal: "intrare"
9216
+ };
9217
+ const TypeDictionary = {
9218
+ nan: "NaN",
9219
+ string: "\u0219ir",
9220
+ number: "num\u0103r",
9221
+ boolean: "boolean",
9222
+ function: "func\u021Bie",
9223
+ array: "matrice",
9224
+ object: "obiect",
9225
+ undefined: "nedefinit",
9226
+ symbol: "simbol",
9227
+ bigint: "num\u0103r mare",
9228
+ void: "void",
9229
+ never: "never",
9230
+ map: "hart\u0103",
9231
+ set: "set"
9232
+ };
9233
+ return (issue2) => {
9234
+ switch (issue2.code) {
9235
+ case "invalid_type": {
9236
+ const expected = TypeDictionary[issue2.expected] ?? issue2.expected;
9237
+ const receivedType = parsedType(issue2.input);
9238
+ const received = TypeDictionary[receivedType] ?? receivedType;
9239
+ return `Intrare invalid\u0103: a\u0219teptat ${expected}, primit ${received}`;
9240
+ }
9241
+ case "invalid_value":
9242
+ if (issue2.values.length === 1)
9243
+ return `Intrare invalid\u0103: a\u0219teptat ${stringifyPrimitive(issue2.values[0])}`;
9244
+ return `Op\u021Biune invalid\u0103: a\u0219teptat una dintre ${joinValues(issue2.values, "|")}`;
9245
+ case "too_big": {
9246
+ const adj = issue2.inclusive ? "<=" : "<";
9247
+ const sizing = getSizing(issue2.origin);
9248
+ if (sizing)
9249
+ return `Prea mare: a\u0219teptat ca ${issue2.origin ?? "valoarea"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elemente"}`;
9250
+ return `Prea mare: a\u0219teptat ca ${issue2.origin ?? "valoarea"} s\u0103 fie ${adj}${issue2.maximum.toString()}`;
9251
+ }
9252
+ case "too_small": {
9253
+ const adj = issue2.inclusive ? ">=" : ">";
9254
+ const sizing = getSizing(issue2.origin);
9255
+ if (sizing) {
9256
+ return `Prea mic: a\u0219teptat ca ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`;
9257
+ }
9258
+ return `Prea mic: a\u0219teptat ca ${issue2.origin} s\u0103 fie ${adj}${issue2.minimum.toString()}`;
9259
+ }
9260
+ case "invalid_format": {
9261
+ const _issue = issue2;
9262
+ if (_issue.format === "starts_with") {
9263
+ return `\u0218ir invalid: trebuie s\u0103 \xEEnceap\u0103 cu "${_issue.prefix}"`;
9264
+ }
9265
+ if (_issue.format === "ends_with")
9266
+ return `\u0218ir invalid: trebuie s\u0103 se termine cu "${_issue.suffix}"`;
9267
+ if (_issue.format === "includes")
9268
+ return `\u0218ir invalid: trebuie s\u0103 includ\u0103 "${_issue.includes}"`;
9269
+ if (_issue.format === "regex")
9270
+ return `\u0218ir invalid: trebuie s\u0103 se potriveasc\u0103 cu modelul ${_issue.pattern}`;
9271
+ return `Format invalid: ${FormatDictionary[_issue.format] ?? issue2.format}`;
9272
+ }
9273
+ case "not_multiple_of":
9274
+ return `Num\u0103r invalid: trebuie s\u0103 fie multiplu de ${issue2.divisor}`;
9275
+ case "unrecognized_keys":
9276
+ return `Chei nerecunoscute: ${joinValues(issue2.keys, ", ")}`;
9277
+ case "invalid_key":
9278
+ return `Cheie invalid\u0103 \xEEn ${issue2.origin}`;
9279
+ case "invalid_union":
9280
+ return "Intrare invalid\u0103";
9281
+ case "invalid_element":
9282
+ return `Valoare invalid\u0103 \xEEn ${issue2.origin}`;
9283
+ default:
9284
+ return `Intrare invalid\u0103`;
9285
+ }
9286
+ };
9287
+ };
9288
+ function ro_default() {
9289
+ return {
9290
+ localeError: error37()
8765
9291
  };
8766
9292
  }
8767
9293
 
8768
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ru.js
9294
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/ru.js
8769
9295
  function getRussianPlural(count, one, few, many) {
8770
9296
  const absCount = Math.abs(count);
8771
9297
  const lastDigit = absCount % 10;
@@ -8781,7 +9307,7 @@ function getRussianPlural(count, one, few, many) {
8781
9307
  }
8782
9308
  return many;
8783
9309
  }
8784
- var error35 = () => {
9310
+ var error38 = () => {
8785
9311
  const Sizable = {
8786
9312
  string: {
8787
9313
  unit: {
@@ -8918,12 +9444,12 @@ var error35 = () => {
8918
9444
  };
8919
9445
  function ru_default() {
8920
9446
  return {
8921
- localeError: error35()
9447
+ localeError: error38()
8922
9448
  };
8923
9449
  }
8924
9450
 
8925
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/sl.js
8926
- var error36 = () => {
9451
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/sl.js
9452
+ var error39 = () => {
8927
9453
  const Sizable = {
8928
9454
  string: { unit: "znakov", verb: "imeti" },
8929
9455
  file: { unit: "bajtov", verb: "imeti" },
@@ -9028,12 +9554,12 @@ var error36 = () => {
9028
9554
  };
9029
9555
  function sl_default() {
9030
9556
  return {
9031
- localeError: error36()
9557
+ localeError: error39()
9032
9558
  };
9033
9559
  }
9034
9560
 
9035
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/sv.js
9036
- var error37 = () => {
9561
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/sv.js
9562
+ var error40 = () => {
9037
9563
  const Sizable = {
9038
9564
  string: { unit: "tecken", verb: "att ha" },
9039
9565
  file: { unit: "bytes", verb: "att ha" },
@@ -9139,12 +9665,12 @@ var error37 = () => {
9139
9665
  };
9140
9666
  function sv_default() {
9141
9667
  return {
9142
- localeError: error37()
9668
+ localeError: error40()
9143
9669
  };
9144
9670
  }
9145
9671
 
9146
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ta.js
9147
- var error38 = () => {
9672
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/ta.js
9673
+ var error41 = () => {
9148
9674
  const Sizable = {
9149
9675
  string: { unit: "\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" },
9150
9676
  file: { unit: "\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" },
@@ -9250,12 +9776,12 @@ var error38 = () => {
9250
9776
  };
9251
9777
  function ta_default() {
9252
9778
  return {
9253
- localeError: error38()
9779
+ localeError: error41()
9254
9780
  };
9255
9781
  }
9256
9782
 
9257
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/th.js
9258
- var error39 = () => {
9783
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/th.js
9784
+ var error42 = () => {
9259
9785
  const Sizable = {
9260
9786
  string: { unit: "\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" },
9261
9787
  file: { unit: "\u0E44\u0E1A\u0E15\u0E4C", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" },
@@ -9361,12 +9887,12 @@ var error39 = () => {
9361
9887
  };
9362
9888
  function th_default() {
9363
9889
  return {
9364
- localeError: error39()
9890
+ localeError: error42()
9365
9891
  };
9366
9892
  }
9367
9893
 
9368
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/tr.js
9369
- var error40 = () => {
9894
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/tr.js
9895
+ var error43 = () => {
9370
9896
  const Sizable = {
9371
9897
  string: { unit: "karakter", verb: "olmal\u0131" },
9372
9898
  file: { unit: "bayt", verb: "olmal\u0131" },
@@ -9467,12 +9993,12 @@ var error40 = () => {
9467
9993
  };
9468
9994
  function tr_default() {
9469
9995
  return {
9470
- localeError: error40()
9996
+ localeError: error43()
9471
9997
  };
9472
9998
  }
9473
9999
 
9474
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/uk.js
9475
- var error41 = () => {
10000
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/uk.js
10001
+ var error44 = () => {
9476
10002
  const Sizable = {
9477
10003
  string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" },
9478
10004
  file: { unit: "\u0431\u0430\u0439\u0442\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" },
@@ -9576,17 +10102,17 @@ var error41 = () => {
9576
10102
  };
9577
10103
  function uk_default() {
9578
10104
  return {
9579
- localeError: error41()
10105
+ localeError: error44()
9580
10106
  };
9581
10107
  }
9582
10108
 
9583
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ua.js
10109
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/ua.js
9584
10110
  function ua_default() {
9585
10111
  return uk_default();
9586
10112
  }
9587
10113
 
9588
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ur.js
9589
- var error42 = () => {
10114
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/ur.js
10115
+ var error45 = () => {
9590
10116
  const Sizable = {
9591
10117
  string: { unit: "\u062D\u0631\u0648\u0641", verb: "\u06C1\u0648\u0646\u0627" },
9592
10118
  file: { unit: "\u0628\u0627\u0626\u0679\u0633", verb: "\u06C1\u0648\u0646\u0627" },
@@ -9692,17 +10218,18 @@ var error42 = () => {
9692
10218
  };
9693
10219
  function ur_default() {
9694
10220
  return {
9695
- localeError: error42()
10221
+ localeError: error45()
9696
10222
  };
9697
10223
  }
9698
10224
 
9699
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/uz.js
9700
- var error43 = () => {
10225
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/uz.js
10226
+ var error46 = () => {
9701
10227
  const Sizable = {
9702
10228
  string: { unit: "belgi", verb: "bo\u2018lishi kerak" },
9703
10229
  file: { unit: "bayt", verb: "bo\u2018lishi kerak" },
9704
10230
  array: { unit: "element", verb: "bo\u2018lishi kerak" },
9705
- set: { unit: "element", verb: "bo\u2018lishi kerak" }
10231
+ set: { unit: "element", verb: "bo\u2018lishi kerak" },
10232
+ map: { unit: "yozuv", verb: "bo\u2018lishi kerak" }
9706
10233
  };
9707
10234
  function getSizing(origin) {
9708
10235
  return Sizable[origin] ?? null;
@@ -9802,12 +10329,12 @@ var error43 = () => {
9802
10329
  };
9803
10330
  function uz_default() {
9804
10331
  return {
9805
- localeError: error43()
10332
+ localeError: error46()
9806
10333
  };
9807
10334
  }
9808
10335
 
9809
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/vi.js
9810
- var error44 = () => {
10336
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/vi.js
10337
+ var error47 = () => {
9811
10338
  const Sizable = {
9812
10339
  string: { unit: "k\xFD t\u1EF1", verb: "c\xF3" },
9813
10340
  file: { unit: "byte", verb: "c\xF3" },
@@ -9911,12 +10438,12 @@ var error44 = () => {
9911
10438
  };
9912
10439
  function vi_default() {
9913
10440
  return {
9914
- localeError: error44()
10441
+ localeError: error47()
9915
10442
  };
9916
10443
  }
9917
10444
 
9918
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/zh-CN.js
9919
- var error45 = () => {
10445
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/zh-CN.js
10446
+ var error48 = () => {
9920
10447
  const Sizable = {
9921
10448
  string: { unit: "\u5B57\u7B26", verb: "\u5305\u542B" },
9922
10449
  file: { unit: "\u5B57\u8282", verb: "\u5305\u542B" },
@@ -10021,12 +10548,12 @@ var error45 = () => {
10021
10548
  };
10022
10549
  function zh_CN_default() {
10023
10550
  return {
10024
- localeError: error45()
10551
+ localeError: error48()
10025
10552
  };
10026
10553
  }
10027
10554
 
10028
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/zh-TW.js
10029
- var error46 = () => {
10555
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/zh-TW.js
10556
+ var error49 = () => {
10030
10557
  const Sizable = {
10031
10558
  string: { unit: "\u5B57\u5143", verb: "\u64C1\u6709" },
10032
10559
  file: { unit: "\u4F4D\u5143\u7D44", verb: "\u64C1\u6709" },
@@ -10129,12 +10656,12 @@ var error46 = () => {
10129
10656
  };
10130
10657
  function zh_TW_default() {
10131
10658
  return {
10132
- localeError: error46()
10659
+ localeError: error49()
10133
10660
  };
10134
10661
  }
10135
10662
 
10136
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/yo.js
10137
- var error47 = () => {
10663
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/locales/yo.js
10664
+ var error50 = () => {
10138
10665
  const Sizable = {
10139
10666
  string: { unit: "\xE0mi", verb: "n\xED" },
10140
10667
  file: { unit: "bytes", verb: "n\xED" },
@@ -10237,12 +10764,12 @@ var error47 = () => {
10237
10764
  };
10238
10765
  function yo_default() {
10239
10766
  return {
10240
- localeError: error47()
10767
+ localeError: error50()
10241
10768
  };
10242
10769
  }
10243
10770
 
10244
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/registries.js
10245
- var _a;
10771
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/registries.js
10772
+ var _a2;
10246
10773
  var $output = /* @__PURE__ */ Symbol("ZodOutput");
10247
10774
  var $input = /* @__PURE__ */ Symbol("ZodInput");
10248
10775
  var $ZodRegistry = class {
@@ -10288,10 +10815,10 @@ var $ZodRegistry = class {
10288
10815
  function registry() {
10289
10816
  return new $ZodRegistry();
10290
10817
  }
10291
- (_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());
10818
+ (_a2 = globalThis).__zod_globalRegistry ?? (_a2.__zod_globalRegistry = registry());
10292
10819
  var globalRegistry = globalThis.__zod_globalRegistry;
10293
10820
 
10294
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/api.js
10821
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/api.js
10295
10822
  // @__NO_SIDE_EFFECTS__
10296
10823
  function _string(Class2, params) {
10297
10824
  return new Class2({
@@ -11206,7 +11733,7 @@ function _refine(Class2, fn, _params) {
11206
11733
  return schema;
11207
11734
  }
11208
11735
  // @__NO_SIDE_EFFECTS__
11209
- function _superRefine(fn) {
11736
+ function _superRefine(fn, params) {
11210
11737
  const ch = /* @__PURE__ */ _check((payload) => {
11211
11738
  payload.addIssue = (issue2) => {
11212
11739
  if (typeof issue2 === "string") {
@@ -11223,7 +11750,7 @@ function _superRefine(fn) {
11223
11750
  }
11224
11751
  };
11225
11752
  return fn(payload.value, payload);
11226
- });
11753
+ }, params);
11227
11754
  return ch;
11228
11755
  }
11229
11756
  // @__NO_SIDE_EFFECTS__
@@ -11330,7 +11857,7 @@ function _stringFormat(Class2, format, fnOrRegex, _params = {}) {
11330
11857
  return inst;
11331
11858
  }
11332
11859
 
11333
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.js
11860
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/to-json-schema.js
11334
11861
  function initializeContext(params) {
11335
11862
  let target = params?.target ?? "draft-2020-12";
11336
11863
  if (target === "draft-4")
@@ -11353,7 +11880,7 @@ function initializeContext(params) {
11353
11880
  };
11354
11881
  }
11355
11882
  function process2(schema, ctx, _params = { path: [], schemaPath: [] }) {
11356
- var _a2;
11883
+ var _a3;
11357
11884
  const def = schema._zod.def;
11358
11885
  const seen = ctx.seen.get(schema);
11359
11886
  if (seen) {
@@ -11400,8 +11927,8 @@ function process2(schema, ctx, _params = { path: [], schemaPath: [] }) {
11400
11927
  delete result.schema.examples;
11401
11928
  delete result.schema.default;
11402
11929
  }
11403
- if (ctx.io === "input" && result.schema._prefault)
11404
- (_a2 = result.schema).default ?? (_a2.default = result.schema._prefault);
11930
+ if (ctx.io === "input" && "_prefault" in result.schema)
11931
+ (_a3 = result.schema).default ?? (_a3.default = result.schema._prefault);
11405
11932
  delete result.schema._prefault;
11406
11933
  const _result = ctx.seen.get(schema);
11407
11934
  return _result.schema;
@@ -11582,10 +12109,15 @@ function finalize(ctx, schema) {
11582
12109
  result.$id = ctx.external.uri(id);
11583
12110
  }
11584
12111
  Object.assign(result, root.def ?? root.schema);
12112
+ const rootMetaId = ctx.metadataRegistry.get(schema)?.id;
12113
+ if (rootMetaId !== void 0 && result.id === rootMetaId)
12114
+ delete result.id;
11585
12115
  const defs = ctx.external?.defs ?? {};
11586
12116
  for (const entry of ctx.seen.entries()) {
11587
12117
  const seen = entry[1];
11588
12118
  if (seen.def && seen.defId) {
12119
+ if (seen.def.id === seen.defId)
12120
+ delete seen.def.id;
11589
12121
  defs[seen.defId] = seen.def;
11590
12122
  }
11591
12123
  }
@@ -11641,6 +12173,8 @@ function isTransforming(_schema, _ctx) {
11641
12173
  return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);
11642
12174
  }
11643
12175
  if (def.type === "pipe") {
12176
+ if (_schema._zod.traits.has("$ZodCodec"))
12177
+ return true;
11644
12178
  return isTransforming(def.in, ctx) || isTransforming(def.out, ctx);
11645
12179
  }
11646
12180
  if (def.type === "object") {
@@ -11682,7 +12216,7 @@ var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) =
11682
12216
  return finalize(ctx, schema);
11683
12217
  };
11684
12218
 
11685
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/json-schema-processors.js
12219
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/json-schema-processors.js
11686
12220
  var formatMap = {
11687
12221
  guid: "uuid",
11688
12222
  url: "uri",
@@ -11730,39 +12264,28 @@ var numberProcessor = (schema, ctx, _json, _params) => {
11730
12264
  json2.type = "integer";
11731
12265
  else
11732
12266
  json2.type = "number";
11733
- if (typeof exclusiveMinimum === "number") {
11734
- if (ctx.target === "draft-04" || ctx.target === "openapi-3.0") {
12267
+ const exMin = typeof exclusiveMinimum === "number" && exclusiveMinimum >= (minimum ?? Number.NEGATIVE_INFINITY);
12268
+ const exMax = typeof exclusiveMaximum === "number" && exclusiveMaximum <= (maximum ?? Number.POSITIVE_INFINITY);
12269
+ const legacy = ctx.target === "draft-04" || ctx.target === "openapi-3.0";
12270
+ if (exMin) {
12271
+ if (legacy) {
11735
12272
  json2.minimum = exclusiveMinimum;
11736
12273
  json2.exclusiveMinimum = true;
11737
12274
  } else {
11738
12275
  json2.exclusiveMinimum = exclusiveMinimum;
11739
12276
  }
11740
- }
11741
- if (typeof minimum === "number") {
12277
+ } else if (typeof minimum === "number") {
11742
12278
  json2.minimum = minimum;
11743
- if (typeof exclusiveMinimum === "number" && ctx.target !== "draft-04") {
11744
- if (exclusiveMinimum >= minimum)
11745
- delete json2.minimum;
11746
- else
11747
- delete json2.exclusiveMinimum;
11748
- }
11749
12279
  }
11750
- if (typeof exclusiveMaximum === "number") {
11751
- if (ctx.target === "draft-04" || ctx.target === "openapi-3.0") {
12280
+ if (exMax) {
12281
+ if (legacy) {
11752
12282
  json2.maximum = exclusiveMaximum;
11753
12283
  json2.exclusiveMaximum = true;
11754
12284
  } else {
11755
12285
  json2.exclusiveMaximum = exclusiveMaximum;
11756
12286
  }
11757
- }
11758
- if (typeof maximum === "number") {
12287
+ } else if (typeof maximum === "number") {
11759
12288
  json2.maximum = maximum;
11760
- if (typeof exclusiveMaximum === "number" && ctx.target !== "draft-04") {
11761
- if (exclusiveMaximum <= maximum)
11762
- delete json2.maximum;
11763
- else
11764
- delete json2.exclusiveMaximum;
11765
- }
11766
12289
  }
11767
12290
  if (typeof multipleOf === "number")
11768
12291
  json2.multipleOf = multipleOf;
@@ -11934,7 +12457,10 @@ var arrayProcessor = (schema, ctx, _json, params) => {
11934
12457
  if (typeof maximum === "number")
11935
12458
  json2.maxItems = maximum;
11936
12459
  json2.type = "array";
11937
- json2.items = process2(def.element, ctx, { ...params, path: [...params.path, "items"] });
12460
+ json2.items = process2(def.element, ctx, {
12461
+ ...params,
12462
+ path: [...params.path, "items"]
12463
+ });
11938
12464
  };
11939
12465
  var objectProcessor = (schema, ctx, _json, params) => {
11940
12466
  const json2 = _json;
@@ -12127,7 +12653,8 @@ var catchProcessor = (schema, ctx, json2, params) => {
12127
12653
  };
12128
12654
  var pipeProcessor = (schema, ctx, _json, params) => {
12129
12655
  const def = schema._zod.def;
12130
- const innerType = ctx.io === "input" ? def.in._zod.def.type === "transform" ? def.out : def.in : def.out;
12656
+ const inIsTransform = def.in._zod.traits.has("$ZodTransform");
12657
+ const innerType = ctx.io === "input" ? inIsTransform ? def.out : def.in : def.out;
12131
12658
  process2(innerType, ctx, params);
12132
12659
  const seen = ctx.seen.get(schema);
12133
12660
  seen.ref = innerType;
@@ -12233,7 +12760,7 @@ function toJSONSchema(input, params) {
12233
12760
  return finalize(ctx, input);
12234
12761
  }
12235
12762
 
12236
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/json-schema-generator.js
12763
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/json-schema-generator.js
12237
12764
  var JSONSchemaGenerator = class {
12238
12765
  /** @deprecated Access via ctx instead */
12239
12766
  get metadataRegistry() {
@@ -12308,10 +12835,10 @@ var JSONSchemaGenerator = class {
12308
12835
  }
12309
12836
  };
12310
12837
 
12311
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/json-schema.js
12838
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/json-schema.js
12312
12839
  var json_schema_exports = {};
12313
12840
 
12314
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/schemas.js
12841
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/schemas.js
12315
12842
  var schemas_exports2 = {};
12316
12843
  __export(schemas_exports2, {
12317
12844
  ZodAny: () => ZodAny,
@@ -12361,6 +12888,7 @@ __export(schemas_exports2, {
12361
12888
  ZodOptional: () => ZodOptional,
12362
12889
  ZodPipe: () => ZodPipe,
12363
12890
  ZodPrefault: () => ZodPrefault,
12891
+ ZodPreprocess: () => ZodPreprocess,
12364
12892
  ZodPromise: () => ZodPromise,
12365
12893
  ZodReadonly: () => ZodReadonly,
12366
12894
  ZodRecord: () => ZodRecord,
@@ -12421,6 +12949,7 @@ __export(schemas_exports2, {
12421
12949
  int32: () => int32,
12422
12950
  int64: () => int64,
12423
12951
  intersection: () => intersection,
12952
+ invertCodec: () => invertCodec,
12424
12953
  ipv4: () => ipv42,
12425
12954
  ipv6: () => ipv62,
12426
12955
  json: () => json,
@@ -12480,7 +13009,7 @@ __export(schemas_exports2, {
12480
13009
  xor: () => xor
12481
13010
  });
12482
13011
 
12483
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/checks.js
13012
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/checks.js
12484
13013
  var checks_exports2 = {};
12485
13014
  __export(checks_exports2, {
12486
13015
  endsWith: () => _endsWith,
@@ -12514,7 +13043,7 @@ __export(checks_exports2, {
12514
13043
  uppercase: () => _uppercase
12515
13044
  });
12516
13045
 
12517
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/iso.js
13046
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/iso.js
12518
13047
  var iso_exports = {};
12519
13048
  __export(iso_exports, {
12520
13049
  ZodISODate: () => ZodISODate,
@@ -12555,7 +13084,7 @@ function duration2(params) {
12555
13084
  return _isoDuration(ZodISODuration, params);
12556
13085
  }
12557
13086
 
12558
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/errors.js
13087
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/errors.js
12559
13088
  var initializer2 = (inst, issues) => {
12560
13089
  $ZodError.init(inst, issues);
12561
13090
  inst.name = "ZodError";
@@ -12590,12 +13119,12 @@ var initializer2 = (inst, issues) => {
12590
13119
  }
12591
13120
  });
12592
13121
  };
12593
- var ZodError = $constructor("ZodError", initializer2);
12594
- var ZodRealError = $constructor("ZodError", initializer2, {
13122
+ var ZodError = /* @__PURE__ */ $constructor("ZodError", initializer2);
13123
+ var ZodRealError = /* @__PURE__ */ $constructor("ZodError", initializer2, {
12595
13124
  Parent: Error
12596
13125
  });
12597
13126
 
12598
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/parse.js
13127
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/parse.js
12599
13128
  var parse2 = /* @__PURE__ */ _parse(ZodRealError);
12600
13129
  var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
12601
13130
  var safeParse2 = /* @__PURE__ */ _safeParse(ZodRealError);
@@ -12609,7 +13138,44 @@ var safeDecode2 = /* @__PURE__ */ _safeDecode(ZodRealError);
12609
13138
  var safeEncodeAsync2 = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
12610
13139
  var safeDecodeAsync2 = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
12611
13140
 
12612
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/schemas.js
13141
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/schemas.js
13142
+ var _installedGroups = /* @__PURE__ */ new WeakMap();
13143
+ function _installLazyMethods(inst, group, methods) {
13144
+ const proto = Object.getPrototypeOf(inst);
13145
+ let installed = _installedGroups.get(proto);
13146
+ if (!installed) {
13147
+ installed = /* @__PURE__ */ new Set();
13148
+ _installedGroups.set(proto, installed);
13149
+ }
13150
+ if (installed.has(group))
13151
+ return;
13152
+ installed.add(group);
13153
+ for (const key in methods) {
13154
+ const fn = methods[key];
13155
+ Object.defineProperty(proto, key, {
13156
+ configurable: true,
13157
+ enumerable: false,
13158
+ get() {
13159
+ const bound = fn.bind(this);
13160
+ Object.defineProperty(this, key, {
13161
+ configurable: true,
13162
+ writable: true,
13163
+ enumerable: true,
13164
+ value: bound
13165
+ });
13166
+ return bound;
13167
+ },
13168
+ set(v) {
13169
+ Object.defineProperty(this, key, {
13170
+ configurable: true,
13171
+ writable: true,
13172
+ enumerable: true,
13173
+ value: v
13174
+ });
13175
+ }
13176
+ });
13177
+ }
13178
+ }
12613
13179
  var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
12614
13180
  $ZodType.init(inst, def);
12615
13181
  Object.assign(inst["~standard"], {
@@ -12618,79 +13184,125 @@ var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
12618
13184
  output: createStandardJSONSchemaMethod(inst, "output")
12619
13185
  }
12620
13186
  });
12621
- inst.toJSONSchema = createToJSONSchemaMethod(inst, {});
12622
- inst.def = def;
12623
- inst.type = def.type;
12624
- Object.defineProperty(inst, "_def", { value: def });
12625
- inst.check = (...checks) => {
12626
- return inst.clone(util_exports.mergeDefs(def, {
12627
- checks: [
12628
- ...def.checks ?? [],
12629
- ...checks.map((ch) => typeof ch === "function" ? { _zod: { check: ch, def: { check: "custom" }, onattach: [] } } : ch)
12630
- ]
12631
- }), {
12632
- parent: true
12633
- });
12634
- };
12635
- inst.with = inst.check;
12636
- inst.clone = (def2, params) => clone(inst, def2, params);
12637
- inst.brand = () => inst;
12638
- inst.register = ((reg, meta3) => {
12639
- reg.add(inst, meta3);
12640
- return inst;
12641
- });
12642
- inst.parse = (data, params) => parse2(inst, data, params, { callee: inst.parse });
12643
- inst.safeParse = (data, params) => safeParse2(inst, data, params);
12644
- inst.parseAsync = async (data, params) => parseAsync2(inst, data, params, { callee: inst.parseAsync });
12645
- inst.safeParseAsync = async (data, params) => safeParseAsync2(inst, data, params);
12646
- inst.spa = inst.safeParseAsync;
12647
- inst.encode = (data, params) => encode2(inst, data, params);
12648
- inst.decode = (data, params) => decode2(inst, data, params);
12649
- inst.encodeAsync = async (data, params) => encodeAsync2(inst, data, params);
12650
- inst.decodeAsync = async (data, params) => decodeAsync2(inst, data, params);
12651
- inst.safeEncode = (data, params) => safeEncode2(inst, data, params);
12652
- inst.safeDecode = (data, params) => safeDecode2(inst, data, params);
12653
- inst.safeEncodeAsync = async (data, params) => safeEncodeAsync2(inst, data, params);
12654
- inst.safeDecodeAsync = async (data, params) => safeDecodeAsync2(inst, data, params);
12655
- inst.refine = (check2, params) => inst.check(refine(check2, params));
12656
- inst.superRefine = (refinement) => inst.check(superRefine(refinement));
12657
- inst.overwrite = (fn) => inst.check(_overwrite(fn));
12658
- inst.optional = () => optional(inst);
12659
- inst.exactOptional = () => exactOptional(inst);
12660
- inst.nullable = () => nullable(inst);
12661
- inst.nullish = () => optional(nullable(inst));
12662
- inst.nonoptional = (params) => nonoptional(inst, params);
12663
- inst.array = () => array(inst);
12664
- inst.or = (arg) => union([inst, arg]);
12665
- inst.and = (arg) => intersection(inst, arg);
12666
- inst.transform = (tx) => pipe(inst, transform(tx));
12667
- inst.default = (def2) => _default2(inst, def2);
12668
- inst.prefault = (def2) => prefault(inst, def2);
12669
- inst.catch = (params) => _catch2(inst, params);
12670
- inst.pipe = (target) => pipe(inst, target);
12671
- inst.readonly = () => readonly(inst);
12672
- inst.describe = (description) => {
12673
- const cl = inst.clone();
12674
- globalRegistry.add(cl, { description });
12675
- return cl;
12676
- };
13187
+ inst.toJSONSchema = createToJSONSchemaMethod(inst, {});
13188
+ inst.def = def;
13189
+ inst.type = def.type;
13190
+ Object.defineProperty(inst, "_def", { value: def });
13191
+ inst.parse = (data, params) => parse2(inst, data, params, { callee: inst.parse });
13192
+ inst.safeParse = (data, params) => safeParse2(inst, data, params);
13193
+ inst.parseAsync = async (data, params) => parseAsync2(inst, data, params, { callee: inst.parseAsync });
13194
+ inst.safeParseAsync = async (data, params) => safeParseAsync2(inst, data, params);
13195
+ inst.spa = inst.safeParseAsync;
13196
+ inst.encode = (data, params) => encode2(inst, data, params);
13197
+ inst.decode = (data, params) => decode2(inst, data, params);
13198
+ inst.encodeAsync = async (data, params) => encodeAsync2(inst, data, params);
13199
+ inst.decodeAsync = async (data, params) => decodeAsync2(inst, data, params);
13200
+ inst.safeEncode = (data, params) => safeEncode2(inst, data, params);
13201
+ inst.safeDecode = (data, params) => safeDecode2(inst, data, params);
13202
+ inst.safeEncodeAsync = async (data, params) => safeEncodeAsync2(inst, data, params);
13203
+ inst.safeDecodeAsync = async (data, params) => safeDecodeAsync2(inst, data, params);
13204
+ _installLazyMethods(inst, "ZodType", {
13205
+ check(...chks) {
13206
+ const def2 = this.def;
13207
+ return this.clone(util_exports.mergeDefs(def2, {
13208
+ checks: [
13209
+ ...def2.checks ?? [],
13210
+ ...chks.map((ch) => typeof ch === "function" ? { _zod: { check: ch, def: { check: "custom" }, onattach: [] } } : ch)
13211
+ ]
13212
+ }), { parent: true });
13213
+ },
13214
+ with(...chks) {
13215
+ return this.check(...chks);
13216
+ },
13217
+ clone(def2, params) {
13218
+ return clone(this, def2, params);
13219
+ },
13220
+ brand() {
13221
+ return this;
13222
+ },
13223
+ register(reg, meta3) {
13224
+ reg.add(this, meta3);
13225
+ return this;
13226
+ },
13227
+ refine(check2, params) {
13228
+ return this.check(refine(check2, params));
13229
+ },
13230
+ superRefine(refinement, params) {
13231
+ return this.check(superRefine(refinement, params));
13232
+ },
13233
+ overwrite(fn) {
13234
+ return this.check(_overwrite(fn));
13235
+ },
13236
+ optional() {
13237
+ return optional(this);
13238
+ },
13239
+ exactOptional() {
13240
+ return exactOptional(this);
13241
+ },
13242
+ nullable() {
13243
+ return nullable(this);
13244
+ },
13245
+ nullish() {
13246
+ return optional(nullable(this));
13247
+ },
13248
+ nonoptional(params) {
13249
+ return nonoptional(this, params);
13250
+ },
13251
+ array() {
13252
+ return array(this);
13253
+ },
13254
+ or(arg) {
13255
+ return union([this, arg]);
13256
+ },
13257
+ and(arg) {
13258
+ return intersection(this, arg);
13259
+ },
13260
+ transform(tx) {
13261
+ return pipe(this, transform(tx));
13262
+ },
13263
+ default(d) {
13264
+ return _default2(this, d);
13265
+ },
13266
+ prefault(d) {
13267
+ return prefault(this, d);
13268
+ },
13269
+ catch(params) {
13270
+ return _catch2(this, params);
13271
+ },
13272
+ pipe(target) {
13273
+ return pipe(this, target);
13274
+ },
13275
+ readonly() {
13276
+ return readonly(this);
13277
+ },
13278
+ describe(description) {
13279
+ const cl = this.clone();
13280
+ globalRegistry.add(cl, { description });
13281
+ return cl;
13282
+ },
13283
+ meta(...args) {
13284
+ if (args.length === 0)
13285
+ return globalRegistry.get(this);
13286
+ const cl = this.clone();
13287
+ globalRegistry.add(cl, args[0]);
13288
+ return cl;
13289
+ },
13290
+ isOptional() {
13291
+ return this.safeParse(void 0).success;
13292
+ },
13293
+ isNullable() {
13294
+ return this.safeParse(null).success;
13295
+ },
13296
+ apply(fn) {
13297
+ return fn(this);
13298
+ }
13299
+ });
12677
13300
  Object.defineProperty(inst, "description", {
12678
13301
  get() {
12679
13302
  return globalRegistry.get(inst)?.description;
12680
13303
  },
12681
13304
  configurable: true
12682
13305
  });
12683
- inst.meta = (...args) => {
12684
- if (args.length === 0) {
12685
- return globalRegistry.get(inst);
12686
- }
12687
- const cl = inst.clone();
12688
- globalRegistry.add(cl, args[0]);
12689
- return cl;
12690
- };
12691
- inst.isOptional = () => inst.safeParse(void 0).success;
12692
- inst.isNullable = () => inst.safeParse(null).success;
12693
- inst.apply = (fn) => fn(inst);
12694
13306
  return inst;
12695
13307
  });
12696
13308
  var _ZodString = /* @__PURE__ */ $constructor("_ZodString", (inst, def) => {
@@ -12701,21 +13313,53 @@ var _ZodString = /* @__PURE__ */ $constructor("_ZodString", (inst, def) => {
12701
13313
  inst.format = bag.format ?? null;
12702
13314
  inst.minLength = bag.minimum ?? null;
12703
13315
  inst.maxLength = bag.maximum ?? null;
12704
- inst.regex = (...args) => inst.check(_regex(...args));
12705
- inst.includes = (...args) => inst.check(_includes(...args));
12706
- inst.startsWith = (...args) => inst.check(_startsWith(...args));
12707
- inst.endsWith = (...args) => inst.check(_endsWith(...args));
12708
- inst.min = (...args) => inst.check(_minLength(...args));
12709
- inst.max = (...args) => inst.check(_maxLength(...args));
12710
- inst.length = (...args) => inst.check(_length(...args));
12711
- inst.nonempty = (...args) => inst.check(_minLength(1, ...args));
12712
- inst.lowercase = (params) => inst.check(_lowercase(params));
12713
- inst.uppercase = (params) => inst.check(_uppercase(params));
12714
- inst.trim = () => inst.check(_trim());
12715
- inst.normalize = (...args) => inst.check(_normalize(...args));
12716
- inst.toLowerCase = () => inst.check(_toLowerCase());
12717
- inst.toUpperCase = () => inst.check(_toUpperCase());
12718
- inst.slugify = () => inst.check(_slugify());
13316
+ _installLazyMethods(inst, "_ZodString", {
13317
+ regex(...args) {
13318
+ return this.check(_regex(...args));
13319
+ },
13320
+ includes(...args) {
13321
+ return this.check(_includes(...args));
13322
+ },
13323
+ startsWith(...args) {
13324
+ return this.check(_startsWith(...args));
13325
+ },
13326
+ endsWith(...args) {
13327
+ return this.check(_endsWith(...args));
13328
+ },
13329
+ min(...args) {
13330
+ return this.check(_minLength(...args));
13331
+ },
13332
+ max(...args) {
13333
+ return this.check(_maxLength(...args));
13334
+ },
13335
+ length(...args) {
13336
+ return this.check(_length(...args));
13337
+ },
13338
+ nonempty(...args) {
13339
+ return this.check(_minLength(1, ...args));
13340
+ },
13341
+ lowercase(params) {
13342
+ return this.check(_lowercase(params));
13343
+ },
13344
+ uppercase(params) {
13345
+ return this.check(_uppercase(params));
13346
+ },
13347
+ trim() {
13348
+ return this.check(_trim());
13349
+ },
13350
+ normalize(...args) {
13351
+ return this.check(_normalize(...args));
13352
+ },
13353
+ toLowerCase() {
13354
+ return this.check(_toLowerCase());
13355
+ },
13356
+ toUpperCase() {
13357
+ return this.check(_toUpperCase());
13358
+ },
13359
+ slugify() {
13360
+ return this.check(_slugify());
13361
+ }
13362
+ });
12719
13363
  });
12720
13364
  var ZodString = /* @__PURE__ */ $constructor("ZodString", (inst, def) => {
12721
13365
  $ZodString.init(inst, def);
@@ -12794,7 +13438,7 @@ function url(params) {
12794
13438
  }
12795
13439
  function httpUrl(params) {
12796
13440
  return _url(ZodURL, {
12797
- protocol: /^https?$/,
13441
+ protocol: regexes_exports.httpProtocol,
12798
13442
  hostname: regexes_exports.domain,
12799
13443
  ...util_exports.normalizeParams(params)
12800
13444
  });
@@ -12936,21 +13580,53 @@ var ZodNumber = /* @__PURE__ */ $constructor("ZodNumber", (inst, def) => {
12936
13580
  $ZodNumber.init(inst, def);
12937
13581
  ZodType.init(inst, def);
12938
13582
  inst._zod.processJSONSchema = (ctx, json2, params) => numberProcessor(inst, ctx, json2, params);
12939
- inst.gt = (value, params) => inst.check(_gt(value, params));
12940
- inst.gte = (value, params) => inst.check(_gte(value, params));
12941
- inst.min = (value, params) => inst.check(_gte(value, params));
12942
- inst.lt = (value, params) => inst.check(_lt(value, params));
12943
- inst.lte = (value, params) => inst.check(_lte(value, params));
12944
- inst.max = (value, params) => inst.check(_lte(value, params));
12945
- inst.int = (params) => inst.check(int(params));
12946
- inst.safe = (params) => inst.check(int(params));
12947
- inst.positive = (params) => inst.check(_gt(0, params));
12948
- inst.nonnegative = (params) => inst.check(_gte(0, params));
12949
- inst.negative = (params) => inst.check(_lt(0, params));
12950
- inst.nonpositive = (params) => inst.check(_lte(0, params));
12951
- inst.multipleOf = (value, params) => inst.check(_multipleOf(value, params));
12952
- inst.step = (value, params) => inst.check(_multipleOf(value, params));
12953
- inst.finite = () => inst;
13583
+ _installLazyMethods(inst, "ZodNumber", {
13584
+ gt(value, params) {
13585
+ return this.check(_gt(value, params));
13586
+ },
13587
+ gte(value, params) {
13588
+ return this.check(_gte(value, params));
13589
+ },
13590
+ min(value, params) {
13591
+ return this.check(_gte(value, params));
13592
+ },
13593
+ lt(value, params) {
13594
+ return this.check(_lt(value, params));
13595
+ },
13596
+ lte(value, params) {
13597
+ return this.check(_lte(value, params));
13598
+ },
13599
+ max(value, params) {
13600
+ return this.check(_lte(value, params));
13601
+ },
13602
+ int(params) {
13603
+ return this.check(int(params));
13604
+ },
13605
+ safe(params) {
13606
+ return this.check(int(params));
13607
+ },
13608
+ positive(params) {
13609
+ return this.check(_gt(0, params));
13610
+ },
13611
+ nonnegative(params) {
13612
+ return this.check(_gte(0, params));
13613
+ },
13614
+ negative(params) {
13615
+ return this.check(_lt(0, params));
13616
+ },
13617
+ nonpositive(params) {
13618
+ return this.check(_lte(0, params));
13619
+ },
13620
+ multipleOf(value, params) {
13621
+ return this.check(_multipleOf(value, params));
13622
+ },
13623
+ step(value, params) {
13624
+ return this.check(_multipleOf(value, params));
13625
+ },
13626
+ finite() {
13627
+ return this;
13628
+ }
13629
+ });
12954
13630
  const bag = inst._zod.bag;
12955
13631
  inst.minValue = Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;
12956
13632
  inst.maxValue = Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;
@@ -13097,11 +13773,23 @@ var ZodArray = /* @__PURE__ */ $constructor("ZodArray", (inst, def) => {
13097
13773
  ZodType.init(inst, def);
13098
13774
  inst._zod.processJSONSchema = (ctx, json2, params) => arrayProcessor(inst, ctx, json2, params);
13099
13775
  inst.element = def.element;
13100
- inst.min = (minLength, params) => inst.check(_minLength(minLength, params));
13101
- inst.nonempty = (params) => inst.check(_minLength(1, params));
13102
- inst.max = (maxLength, params) => inst.check(_maxLength(maxLength, params));
13103
- inst.length = (len, params) => inst.check(_length(len, params));
13104
- inst.unwrap = () => inst.element;
13776
+ _installLazyMethods(inst, "ZodArray", {
13777
+ min(n, params) {
13778
+ return this.check(_minLength(n, params));
13779
+ },
13780
+ nonempty(params) {
13781
+ return this.check(_minLength(1, params));
13782
+ },
13783
+ max(n, params) {
13784
+ return this.check(_maxLength(n, params));
13785
+ },
13786
+ length(n, params) {
13787
+ return this.check(_length(n, params));
13788
+ },
13789
+ unwrap() {
13790
+ return this.element;
13791
+ }
13792
+ });
13105
13793
  });
13106
13794
  function array(element, params) {
13107
13795
  return _array(ZodArray, element, params);
@@ -13117,23 +13805,47 @@ var ZodObject = /* @__PURE__ */ $constructor("ZodObject", (inst, def) => {
13117
13805
  util_exports.defineLazy(inst, "shape", () => {
13118
13806
  return def.shape;
13119
13807
  });
13120
- inst.keyof = () => _enum2(Object.keys(inst._zod.def.shape));
13121
- inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall });
13122
- inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });
13123
- inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });
13124
- inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });
13125
- inst.strip = () => inst.clone({ ...inst._zod.def, catchall: void 0 });
13126
- inst.extend = (incoming) => {
13127
- return util_exports.extend(inst, incoming);
13128
- };
13129
- inst.safeExtend = (incoming) => {
13130
- return util_exports.safeExtend(inst, incoming);
13131
- };
13132
- inst.merge = (other) => util_exports.merge(inst, other);
13133
- inst.pick = (mask) => util_exports.pick(inst, mask);
13134
- inst.omit = (mask) => util_exports.omit(inst, mask);
13135
- inst.partial = (...args) => util_exports.partial(ZodOptional, inst, args[0]);
13136
- inst.required = (...args) => util_exports.required(ZodNonOptional, inst, args[0]);
13808
+ _installLazyMethods(inst, "ZodObject", {
13809
+ keyof() {
13810
+ return _enum2(Object.keys(this._zod.def.shape));
13811
+ },
13812
+ catchall(catchall) {
13813
+ return this.clone({ ...this._zod.def, catchall });
13814
+ },
13815
+ passthrough() {
13816
+ return this.clone({ ...this._zod.def, catchall: unknown() });
13817
+ },
13818
+ loose() {
13819
+ return this.clone({ ...this._zod.def, catchall: unknown() });
13820
+ },
13821
+ strict() {
13822
+ return this.clone({ ...this._zod.def, catchall: never() });
13823
+ },
13824
+ strip() {
13825
+ return this.clone({ ...this._zod.def, catchall: void 0 });
13826
+ },
13827
+ extend(incoming) {
13828
+ return util_exports.extend(this, incoming);
13829
+ },
13830
+ safeExtend(incoming) {
13831
+ return util_exports.safeExtend(this, incoming);
13832
+ },
13833
+ merge(other) {
13834
+ return util_exports.merge(this, other);
13835
+ },
13836
+ pick(mask) {
13837
+ return util_exports.pick(this, mask);
13838
+ },
13839
+ omit(mask) {
13840
+ return util_exports.omit(this, mask);
13841
+ },
13842
+ partial(...args) {
13843
+ return util_exports.partial(ZodOptional, this, args[0]);
13844
+ },
13845
+ required(...args) {
13846
+ return util_exports.required(ZodNonOptional, this, args[0]);
13847
+ }
13848
+ });
13137
13849
  });
13138
13850
  function object(shape, params) {
13139
13851
  const def = {
@@ -13238,6 +13950,14 @@ var ZodRecord = /* @__PURE__ */ $constructor("ZodRecord", (inst, def) => {
13238
13950
  inst.valueType = def.valueType;
13239
13951
  });
13240
13952
  function record(keyType, valueType, params) {
13953
+ if (!valueType || !valueType._zod) {
13954
+ return new ZodRecord({
13955
+ type: "record",
13956
+ keyType: string2(),
13957
+ valueType: keyType,
13958
+ ...util_exports.normalizeParams(valueType)
13959
+ });
13960
+ }
13241
13961
  return new ZodRecord({
13242
13962
  type: "record",
13243
13963
  keyType,
@@ -13409,10 +14129,12 @@ var ZodTransform = /* @__PURE__ */ $constructor("ZodTransform", (inst, def) => {
13409
14129
  if (output instanceof Promise) {
13410
14130
  return output.then((output2) => {
13411
14131
  payload.value = output2;
14132
+ payload.fallback = true;
13412
14133
  return payload;
13413
14134
  });
13414
14135
  }
13415
14136
  payload.value = output;
14137
+ payload.fallback = true;
13416
14138
  return payload;
13417
14139
  };
13418
14140
  });
@@ -13567,6 +14289,20 @@ function codec(in_, out, params) {
13567
14289
  reverseTransform: params.encode
13568
14290
  });
13569
14291
  }
14292
+ function invertCodec(codec2) {
14293
+ const def = codec2._zod.def;
14294
+ return new ZodCodec({
14295
+ type: "pipe",
14296
+ in: def.out,
14297
+ out: def.in,
14298
+ transform: def.reverseTransform,
14299
+ reverseTransform: def.transform
14300
+ });
14301
+ }
14302
+ var ZodPreprocess = /* @__PURE__ */ $constructor("ZodPreprocess", (inst, def) => {
14303
+ ZodPipe.init(inst, def);
14304
+ $ZodPreprocess.init(inst, def);
14305
+ });
13570
14306
  var ZodReadonly = /* @__PURE__ */ $constructor("ZodReadonly", (inst, def) => {
13571
14307
  $ZodReadonly.init(inst, def);
13572
14308
  ZodType.init(inst, def);
@@ -13646,8 +14382,8 @@ function custom(fn, _params) {
13646
14382
  function refine(fn, _params = {}) {
13647
14383
  return _refine(ZodCustom, fn, _params);
13648
14384
  }
13649
- function superRefine(fn) {
13650
- return _superRefine(fn);
14385
+ function superRefine(fn, params) {
14386
+ return _superRefine(fn, params);
13651
14387
  }
13652
14388
  var describe2 = describe;
13653
14389
  var meta2 = meta;
@@ -13685,10 +14421,14 @@ function json(params) {
13685
14421
  return jsonSchema;
13686
14422
  }
13687
14423
  function preprocess(fn, schema) {
13688
- return pipe(transform(fn), schema);
14424
+ return new ZodPreprocess({
14425
+ type: "pipe",
14426
+ in: transform(fn),
14427
+ out: schema
14428
+ });
13689
14429
  }
13690
14430
 
13691
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/compat.js
14431
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/compat.js
13692
14432
  var ZodIssueCode = {
13693
14433
  invalid_type: "invalid_type",
13694
14434
  too_big: "too_big",
@@ -13714,7 +14454,7 @@ var ZodFirstPartyTypeKind;
13714
14454
  /* @__PURE__ */ (function(ZodFirstPartyTypeKind2) {
13715
14455
  })(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
13716
14456
 
13717
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/from-json-schema.js
14457
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/from-json-schema.js
13718
14458
  var z = {
13719
14459
  ...schemas_exports2,
13720
14460
  ...checks_exports2,
@@ -14106,12 +14846,6 @@ function convertBaseSchema(schema, ctx) {
14106
14846
  default:
14107
14847
  throw new Error(`Unsupported type: ${type}`);
14108
14848
  }
14109
- if (schema.description) {
14110
- zodSchema = zodSchema.describe(schema.description);
14111
- }
14112
- if (schema.default !== void 0) {
14113
- zodSchema = zodSchema.default(schema.default);
14114
- }
14115
14849
  return zodSchema;
14116
14850
  }
14117
14851
  function convertSchema(schema, ctx) {
@@ -14148,6 +14882,9 @@ function convertSchema(schema, ctx) {
14148
14882
  if (schema.readOnly === true) {
14149
14883
  baseSchema = z.readonly(baseSchema);
14150
14884
  }
14885
+ if (schema.default !== void 0) {
14886
+ baseSchema = baseSchema.default(schema.default);
14887
+ }
14151
14888
  const extraMeta = {};
14152
14889
  const coreMetadataKeys = ["$id", "id", "$comment", "$anchor", "$vocabulary", "$dynamicRef", "$dynamicAnchor"];
14153
14890
  for (const key of coreMetadataKeys) {
@@ -14169,26 +14906,35 @@ function convertSchema(schema, ctx) {
14169
14906
  if (Object.keys(extraMeta).length > 0) {
14170
14907
  ctx.registry.add(baseSchema, extraMeta);
14171
14908
  }
14909
+ if (schema.description) {
14910
+ baseSchema = baseSchema.describe(schema.description);
14911
+ }
14172
14912
  return baseSchema;
14173
14913
  }
14174
14914
  function fromJSONSchema(schema, params) {
14175
14915
  if (typeof schema === "boolean") {
14176
14916
  return schema ? z.any() : z.never();
14177
14917
  }
14178
- const version2 = detectVersion(schema, params?.defaultTarget);
14179
- const defs = schema.$defs || schema.definitions || {};
14918
+ let normalized;
14919
+ try {
14920
+ normalized = JSON.parse(JSON.stringify(schema));
14921
+ } catch {
14922
+ throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas");
14923
+ }
14924
+ const version2 = detectVersion(normalized, params?.defaultTarget);
14925
+ const defs = normalized.$defs || normalized.definitions || {};
14180
14926
  const ctx = {
14181
14927
  version: version2,
14182
14928
  defs,
14183
14929
  refs: /* @__PURE__ */ new Map(),
14184
14930
  processing: /* @__PURE__ */ new Set(),
14185
- rootSchema: schema,
14931
+ rootSchema: normalized,
14186
14932
  registry: params?.registry ?? globalRegistry
14187
14933
  };
14188
- return convertSchema(schema, ctx);
14934
+ return convertSchema(normalized, ctx);
14189
14935
  }
14190
14936
 
14191
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/coerce.js
14937
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/coerce.js
14192
14938
  var coerce_exports = {};
14193
14939
  __export(coerce_exports, {
14194
14940
  bigint: () => bigint3,
@@ -14213,7 +14959,7 @@ function date4(params) {
14213
14959
  return _coercedDate(ZodDate, params);
14214
14960
  }
14215
14961
 
14216
- // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/external.js
14962
+ // ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/external.js
14217
14963
  config(en_default());
14218
14964
 
14219
14965
  // ../captable-ai-core/dist/chat.js
@@ -14737,6 +15483,344 @@ function buildClassificationTypes() {
14737
15483
  }
14738
15484
  var CLASSIFICATION_TYPES_LIST = buildClassificationTypes();
14739
15485
 
15486
+ // ../captable-ai-core/dist/extraction-readiness.js
15487
+ var STATUS_TO_CATEGORY = {
15488
+ PENDING_UPLOAD: "pendingUpload",
15489
+ NEW: "preclassification",
15490
+ EXTRACTION: "preclassification",
15491
+ CLASSIFICATION: "preclassification",
15492
+ CLASSIFIED: "classified",
15493
+ OCF_EXTRACTION: "extracting",
15494
+ CREATION: "extracting",
15495
+ VALIDATION: "validating",
15496
+ FINALIZATION: "validating",
15497
+ PROCESSED: "complete",
15498
+ COMMITTED: "complete",
15499
+ FAILED: "failed",
15500
+ CANCELLED: "failed"
15501
+ };
15502
+ function categorizeDocumentStatus(status) {
15503
+ if (typeof status !== "string")
15504
+ return "unknown";
15505
+ return STATUS_TO_CATEGORY[status.trim().toUpperCase()] ?? "unknown";
15506
+ }
15507
+ var extractionReadinessSummarySchema = external_exports.object({
15508
+ total: external_exports.number().int().nonnegative().describe("Documents in scope."),
15509
+ pendingUpload: external_exports.number().int().nonnegative().describe("Documents whose upload never completed (PENDING_UPLOAD)."),
15510
+ preclassification: external_exports.number().int().nonnegative().describe("Documents still in OCR/classification (NEW, EXTRACTION, CLASSIFICATION)."),
15511
+ classified: external_exports.number().int().nonnegative().describe("Documents classified and waiting for an extraction trigger."),
15512
+ extracting: external_exports.number().int().nonnegative().describe("Documents in OCF extraction (OCF_EXTRACTION, CREATION)."),
15513
+ validating: external_exports.number().int().nonnegative().describe("Documents waiting on portal validation (VALIDATION, FINALIZATION)."),
15514
+ complete: external_exports.number().int().nonnegative().describe("Documents PROCESSED or COMMITTED."),
15515
+ failed: external_exports.number().int().nonnegative().describe("Documents FAILED or CANCELLED."),
15516
+ unknown: external_exports.number().int().nonnegative().describe("Documents with an unrecognized status."),
15517
+ processing: external_exports.number().int().nonnegative().describe("Backward-compatible total of preclassification + extracting + validating + unknown.")
15518
+ });
15519
+ function summarizeExtractionReadiness(documents) {
15520
+ const counts = {
15521
+ pendingUpload: 0,
15522
+ preclassification: 0,
15523
+ classified: 0,
15524
+ extracting: 0,
15525
+ validating: 0,
15526
+ complete: 0,
15527
+ failed: 0,
15528
+ unknown: 0
15529
+ };
15530
+ for (const document of documents) {
15531
+ counts[categorizeDocumentStatus(document.status)] += 1;
15532
+ }
15533
+ return {
15534
+ total: documents.length,
15535
+ ...counts,
15536
+ processing: counts.preclassification + counts.extracting + counts.validating + counts.unknown
15537
+ };
15538
+ }
15539
+ function deriveExtractionReadinessPhase(summary) {
15540
+ if (summary.total === 0)
15541
+ return "empty";
15542
+ if (summary.pendingUpload > 0)
15543
+ return "awaiting_upload";
15544
+ if (summary.preclassification > 0)
15545
+ return "classifying";
15546
+ if (summary.classified > 0)
15547
+ return "ready_to_extract";
15548
+ if (summary.extracting > 0 || summary.validating > 0 || summary.unknown > 0) {
15549
+ return "in_progress";
15550
+ }
15551
+ if (summary.failed > 0)
15552
+ return "failed";
15553
+ return "complete";
15554
+ }
15555
+ var IMPORT_SESSION_CLOCK_SKEW_MS = 5e3;
15556
+ function documentsForImportSession(documents, sessionCreatedAt) {
15557
+ if (typeof sessionCreatedAt !== "string")
15558
+ return [];
15559
+ const sessionMs = parseTimestampMs(sessionCreatedAt);
15560
+ if (sessionMs === null)
15561
+ return [];
15562
+ const cutoffMs = sessionMs - IMPORT_SESSION_CLOCK_SKEW_MS;
15563
+ return documents.filter((document) => {
15564
+ if (typeof document.createdAt !== "string")
15565
+ return false;
15566
+ const createdMs = parseTimestampMs(document.createdAt);
15567
+ return createdMs !== null && createdMs >= cutoffMs;
15568
+ });
15569
+ }
15570
+ function importSessionScopeUnknown(documents) {
15571
+ return documents.length > 0 && documents.every((document) => typeof document.createdAt !== "string" || parseTimestampMs(document.createdAt) === null);
15572
+ }
15573
+ var HAS_ZONE = /(?:Z|[+-]\d{2}(?::?\d{2})?)$/i;
15574
+ function parseTimestampMs(value) {
15575
+ let normalized = value.trim().replace(" ", "T").replace(/([+-]\d{2})$/, "$1:00");
15576
+ if (!HAS_ZONE.test(normalized))
15577
+ normalized += "Z";
15578
+ const parsed = Date.parse(normalized);
15579
+ return Number.isNaN(parsed) ? null : parsed;
15580
+ }
15581
+ var TRIGGER_EXTRACTION_MAX_IDS = 50;
15582
+ function idsInCategory(documents, category, predicate = () => true) {
15583
+ return documents.flatMap((document) => categorizeDocumentStatus(document.status) === category && typeof document.s3AssetId === "string" && predicate(document) ? [document.s3AssetId] : []);
15584
+ }
15585
+ var isRetryableFailure = (document) => (document.status ?? "").trim().toUpperCase() === "FAILED";
15586
+ function sessionTriggerScope(documents) {
15587
+ const eligible = documents.filter((document) => {
15588
+ const category = categorizeDocumentStatus(document.status);
15589
+ return category === "classified" || category === "failed" && isRetryableFailure(document);
15590
+ });
15591
+ const ids = eligible.flatMap((document) => typeof document.s3AssetId === "string" ? [document.s3AssetId] : []);
15592
+ if (ids.length === 0 || ids.length !== eligible.length) {
15593
+ return { kind: "unsafe", reason: "missing_ids" };
15594
+ }
15595
+ if (ids.length > TRIGGER_EXTRACTION_MAX_IDS)
15596
+ return { kind: "unsafe", reason: "too_many_ids" };
15597
+ const includesFailed = eligible.some((document) => categorizeDocumentStatus(document.status) === "failed");
15598
+ return { kind: "explicit", ids, includesFailed };
15599
+ }
15600
+ var BACKGROUND_MONITORING_SUGGESTION = "Processing can take several minutes. If you can run subagents or background tasks, delegate a monitor that re-checks document status every 30-60 seconds for up to 30 minutes. When the phase changes it may run only the returned nextActions, exactly as scoped (for example, trigger extraction with the listed s3AssetIds once every document is classified; never widen the scope to the whole company). It stops and reports back when the import is ready for review, needs the user (failures, uploads, scope questions), or the time box ends. Otherwise, check again periodically and tell the user if the import is still processing after about 30 minutes.";
15601
+ function shouldSuggestBackgroundMonitoring(phase) {
15602
+ switch (phase) {
15603
+ case "classifying":
15604
+ case "in_progress":
15605
+ return true;
15606
+ case "empty":
15607
+ case "awaiting_upload":
15608
+ case "ready_to_extract":
15609
+ case "failed":
15610
+ case "complete":
15611
+ return false;
15612
+ default: {
15613
+ const unhandled = phase;
15614
+ throw new Error(`Unhandled extraction readiness phase: ${String(unhandled)}`);
15615
+ }
15616
+ }
15617
+ }
15618
+ function reviewFailuresAction(documents) {
15619
+ const statusSet = /* @__PURE__ */ new Set();
15620
+ const ids = [];
15621
+ for (const document of documents) {
15622
+ if (categorizeDocumentStatus(document.status) !== "failed")
15623
+ continue;
15624
+ statusSet.add((document.status ?? "").trim().toUpperCase());
15625
+ if (typeof document.s3AssetId === "string")
15626
+ ids.push(document.s3AssetId);
15627
+ }
15628
+ const statuses = [...statusSet];
15629
+ return {
15630
+ id: "review_failures",
15631
+ label: "Review failed documents",
15632
+ required: true,
15633
+ ...ids.length > 0 && { s3AssetIds: ids },
15634
+ ...statuses.length === 1 && { statusFilter: statuses[0] }
15635
+ };
15636
+ }
15637
+ function triggerOrResolve(trigger, scope) {
15638
+ switch (scope.kind) {
15639
+ case "explicit":
15640
+ return {
15641
+ ...trigger,
15642
+ ...scope.includesFailed && {
15643
+ label: "Start OCF extraction for classified documents and retry failed ones"
15644
+ },
15645
+ s3AssetIds: scope.ids
15646
+ };
15647
+ case "unsafe":
15648
+ return {
15649
+ id: "resolve_extraction_scope",
15650
+ label: scope.reason === "too_many_ids" ? `This import has more classified documents than one scoped trigger accepts (${TRIGGER_EXTRACTION_MAX_IDS}), so extraction cannot be started safely for this import alone. Do not trigger extraction for the whole company on this import's behalf; ask the user how to proceed after reviewing the company's documents.` : "Some classified documents in this import have no document ID, so extraction cannot be scoped to this import. Review the company's documents, then check again.",
15651
+ required: trigger.required
15652
+ };
15653
+ default: {
15654
+ const unhandled = scope;
15655
+ throw new Error(`Unhandled trigger scope: ${String(unhandled)}`);
15656
+ }
15657
+ }
15658
+ }
15659
+ function stallRecoveryActions(documents) {
15660
+ const isStalled = (document) => document.health === "stalled";
15661
+ const isStalledOcr = (document) => isStalled(document) && (document.status ?? "").trim().toUpperCase() === "EXTRACTION";
15662
+ const stalledRestartable = [
15663
+ ...idsInCategory(documents, "preclassification", isStalledOcr),
15664
+ ...idsInCategory(documents, "extracting", isStalled)
15665
+ ];
15666
+ const actions = [];
15667
+ if (stalledRestartable.length > TRIGGER_EXTRACTION_MAX_IDS) {
15668
+ actions.push({
15669
+ id: "resolve_extraction_scope",
15670
+ label: `${stalledRestartable.length} documents in this import look stalled, more than one scoped restart accepts (${TRIGGER_EXTRACTION_MAX_IDS}). Do not restart extraction for the whole company on this import's behalf; ask the user how to proceed after reviewing the company's documents.`,
15671
+ required: false
15672
+ });
15673
+ } else if (stalledRestartable.length > 0) {
15674
+ actions.push({
15675
+ id: "restart_extraction",
15676
+ label: "Restart the stalled extraction",
15677
+ required: false,
15678
+ s3AssetIds: stalledRestartable
15679
+ });
15680
+ }
15681
+ return actions;
15682
+ }
15683
+ function planImportStatus({ documents, sessionState, scopeUnknown = false }) {
15684
+ const summary = summarizeExtractionReadiness(documents);
15685
+ const phase = deriveExtractionReadinessPhase(summary);
15686
+ if (scopeUnknown && phase === "empty") {
15687
+ return {
15688
+ phase,
15689
+ state: "processing",
15690
+ summary,
15691
+ shouldComplete: false,
15692
+ actions: [
15693
+ {
15694
+ id: "check_status",
15695
+ label: "This server does not report document creation times, so this import's documents can't be identified. Do not re-upload; check the company's documents, or retry after the server is updated.",
15696
+ required: true
15697
+ }
15698
+ ]
15699
+ };
15700
+ }
15701
+ const upload = {
15702
+ id: "upload_documents",
15703
+ label: "Upload the documents",
15704
+ required: true
15705
+ };
15706
+ const checkStatus = {
15707
+ id: "check_status",
15708
+ label: "Check import progress again",
15709
+ required: true
15710
+ };
15711
+ const trigger = {
15712
+ id: "trigger_extraction",
15713
+ label: "Start OCF extraction for classified documents",
15714
+ required: true
15715
+ };
15716
+ const triggerScope = sessionTriggerScope(documents);
15717
+ switch (phase) {
15718
+ case "empty":
15719
+ return { phase, state: "ready_to_import", summary, shouldComplete: false, actions: [upload] };
15720
+ case "awaiting_upload":
15721
+ return {
15722
+ phase,
15723
+ state: "ready_to_import",
15724
+ summary,
15725
+ shouldComplete: false,
15726
+ actions: [
15727
+ {
15728
+ ...upload,
15729
+ label: "Re-upload (or delete) the documents that did not finish uploading"
15730
+ }
15731
+ ]
15732
+ };
15733
+ case "classifying":
15734
+ return {
15735
+ phase,
15736
+ state: "processing",
15737
+ summary,
15738
+ shouldComplete: false,
15739
+ actions: [
15740
+ { ...checkStatus, label: "Wait for classification, then check again" },
15741
+ ...stallRecoveryActions(documents)
15742
+ ]
15743
+ };
15744
+ case "ready_to_extract":
15745
+ return {
15746
+ phase,
15747
+ state: "ready_to_import",
15748
+ summary,
15749
+ shouldComplete: false,
15750
+ actions: [
15751
+ triggerOrResolve(trigger, triggerScope),
15752
+ // CLASSIFIED documents take priority over in-flight ones in the
15753
+ // phase, so a stall elsewhere in the import would otherwise get no
15754
+ // recovery action: triggering only queues CLASSIFIED/FAILED docs.
15755
+ ...stallRecoveryActions(documents)
15756
+ ]
15757
+ };
15758
+ case "in_progress":
15759
+ return {
15760
+ phase,
15761
+ state: "processing",
15762
+ summary,
15763
+ shouldComplete: false,
15764
+ actions: [
15765
+ checkStatus,
15766
+ ...stallRecoveryActions(documents),
15767
+ // Surface failures now rather than after the last in-flight document
15768
+ // settles; optional because processing is still moving.
15769
+ ...summary.failed > 0 ? [{ ...reviewFailuresAction(documents), required: false }] : []
15770
+ ]
15771
+ };
15772
+ case "failed":
15773
+ return {
15774
+ phase,
15775
+ state: "blocked",
15776
+ summary,
15777
+ shouldComplete: false,
15778
+ actions: [reviewFailuresAction(documents)]
15779
+ };
15780
+ case "complete":
15781
+ return {
15782
+ phase,
15783
+ state: "needs_review",
15784
+ summary,
15785
+ shouldComplete: sessionState !== "completed",
15786
+ actions: [
15787
+ { id: "review_drafts", label: "Review extracted cap table drafts", required: true },
15788
+ { id: "preview_commit", label: "Preview the first commit", required: true },
15789
+ { id: "confirm_commit", label: "Commit reviewed drafts", required: true }
15790
+ ]
15791
+ };
15792
+ default: {
15793
+ const unhandled = phase;
15794
+ throw new Error(`Unhandled extraction readiness phase: ${String(unhandled)}`);
15795
+ }
15796
+ }
15797
+ }
15798
+ var EXTRACTION_NOT_READY_REASONS = [
15799
+ "pending_upload",
15800
+ "classification_in_progress"
15801
+ ];
15802
+ var TRIGGER_EXTRACTION_OUTCOMES = [
15803
+ "queued",
15804
+ "partially_queued",
15805
+ "queue_failed",
15806
+ "not_ready",
15807
+ "no_eligible_documents"
15808
+ ];
15809
+ function resolveTriggerExtractionOutcome(result) {
15810
+ const declared = TRIGGER_EXTRACTION_OUTCOMES.find((value) => value === result.outcome);
15811
+ if (declared)
15812
+ return declared;
15813
+ const queued = result.queuedCount ?? 0;
15814
+ const failed = result.failedCount ?? 0;
15815
+ if (queued > 0)
15816
+ return failed > 0 ? "partially_queued" : "queued";
15817
+ if (failed > 0)
15818
+ return "queue_failed";
15819
+ if (result.notReadyDocuments?.some((d) => d.blocking === true))
15820
+ return "not_ready";
15821
+ return "no_eligible_documents";
15822
+ }
15823
+
14740
15824
  // ../captable-ai-core/dist/documents.js
14741
15825
  var documentPrepareFileSchema = external_exports.object({
14742
15826
  name: external_exports.string().min(1).describe("Original filename."),
@@ -14817,16 +15901,31 @@ var documentContextResultSchema = external_exports.object({
14817
15901
  existing: external_exports.record(external_exports.string(), external_exports.unknown()).describe("Compact existing portal context. Empty when includeExisting=false.")
14818
15902
  });
14819
15903
  var triggerExtractionInputSchema = external_exports.object({
14820
- s3AssetIds: external_exports.array(external_exports.string().uuid()).min(1).max(50).optional().describe("Optional filter to specific document IDs (1-50).")
15904
+ s3AssetIds: external_exports.array(external_exports.string().uuid()).min(1).max(TRIGGER_EXTRACTION_MAX_IDS).optional().describe(`Optional filter to specific document IDs (1-${TRIGGER_EXTRACTION_MAX_IDS}).`)
14821
15905
  });
14822
15906
  var triggerExtractionDocSchema = external_exports.object({
14823
15907
  s3AssetId: external_exports.string().describe("S3 asset ID."),
14824
15908
  date: external_exports.string().nullable().describe("Document date.")
14825
15909
  });
15910
+ var triggerExtractionNotReadyDocSchema = external_exports.object({
15911
+ s3AssetId: external_exports.string().describe("S3 asset ID."),
15912
+ status: external_exports.string().describe("Current document status."),
15913
+ reason: external_exports.enum(EXTRACTION_NOT_READY_REASONS).describe("pending_upload: upload never completed, re-upload or delete it. classification_in_progress: OCR/classification still running, wait and retry."),
15914
+ blocking: external_exports.boolean().describe("True when this document prevented the batch from being queued.")
15915
+ });
15916
+ var triggerExtractionSkippedDocSchema = external_exports.object({
15917
+ s3AssetId: external_exports.string().describe("S3 asset ID."),
15918
+ status: external_exports.string().describe("Current document status (already extracting, validated, etc.).")
15919
+ });
14826
15920
  var triggerExtractionResultSchema = external_exports.object({
15921
+ outcome: external_exports.enum(TRIGGER_EXTRACTION_OUTCOMES).describe("queued | partially_queued | queue_failed | not_ready (nothing queued because in-scope documents are still classifying or uploading) | no_eligible_documents."),
14827
15922
  queuedCount: external_exports.number().describe("Number of documents queued for extraction."),
14828
15923
  failedCount: external_exports.number().describe("Number of documents that failed to queue."),
14829
- documents: external_exports.array(triggerExtractionDocSchema).describe("Documents processed.")
15924
+ documents: external_exports.array(triggerExtractionDocSchema).describe("Documents queued, in queue order."),
15925
+ notReadyCount: external_exports.number().int().nonnegative().describe("Number of in-scope documents not ready for extraction."),
15926
+ notReadyDocuments: external_exports.array(triggerExtractionNotReadyDocSchema).describe("In-scope documents not ready for extraction."),
15927
+ skippedDocuments: external_exports.array(triggerExtractionSkippedDocSchema).describe("Explicitly requested documents that are not in an extractable status."),
15928
+ missingIds: external_exports.array(external_exports.string()).describe("Explicitly requested document IDs not found in this portal.")
14830
15929
  });
14831
15930
  var cancelExtractionInputSchema = external_exports.object({
14832
15931
  documentId: external_exports.string().uuid().describe("The s3_asset_id of the document to cancel.")
@@ -14869,6 +15968,7 @@ var DOCUMENT_HEALTH_VALUES = [
14869
15968
  var documentProcessingStatusItemSchema = external_exports.object({
14870
15969
  s3AssetId: external_exports.string().describe("S3 asset / document ID."),
14871
15970
  status: external_exports.string().describe("Document processing status."),
15971
+ createdAt: external_exports.string().nullable().optional().describe("Immutable document creation timestamp; absent on older servers."),
14872
15972
  lastActivityAt: external_exports.string().nullable().describe("Last backend activity timestamp (updated_at / heartbeat); null if unknown."),
14873
15973
  queuePosition: external_exports.number().int().min(0).nullable().describe("0 = at the head (processing); >0 = waiting behind others; null = not in pipeline."),
14874
15974
  health: external_exports.enum(DOCUMENT_HEALTH_VALUES).describe("Derived health from backend heartbeat + queue position.")
@@ -16801,7 +17901,7 @@ var COMMAND_REGISTRY = [
16801
17901
  {
16802
17902
  name: "import status",
16803
17903
  group: "onboarding",
16804
- description: "Show import processing progress and the next existing-pipeline action.",
17904
+ description: "Show import progress by phase (uploading, classifying, ready to extract, extracting, validating) and the next action. Classified documents are actionable even while others validate; unfinished uploads need a re-upload, not more polling.",
16805
17905
  usage: "captable-ai import status <session-id> [--json]",
16806
17906
  requiresAuth: true,
16807
17907
  requiresPortal: false
@@ -17186,7 +18286,7 @@ var COMMAND_REGISTRY = [
17186
18286
  {
17187
18287
  name: "documents trigger-extraction",
17188
18288
  group: "captable",
17189
- description: "Trigger OCF extraction for classified documents. Sends them to the extraction queue for processing. Optionally filter to specific document IDs.",
18289
+ description: "Trigger OCF extraction for classified documents in chronological order. Optionally filter to specific document IDs. Queues nothing (outcome not_ready, exit 5) while a document in scope is still classifying or a requested document never finished uploading; wait or re-upload, then retry. Only queued batches are tracked as jobs.",
17190
18290
  usage: "captable-ai documents trigger-extraction [--s3-asset-ids ID1,ID2,...] [--json]",
17191
18291
  requiresAuth: true,
17192
18292
  requiresPortal: true,
@@ -18078,11 +19178,11 @@ async function runCommit(args, rawArgv) {
18078
19178
  process.exit(0);
18079
19179
  }
18080
19180
  validateFlags(args, { flags: ["objects"], booleans: ["all", "dry-run"] });
18081
- const USAGE = "captable-ai commit --dry-run [--objects id1,id2,...] [--json]\ncaptable-ai commit (--objects id1,id2,... | --all) [--json]";
19181
+ const USAGE2 = "captable-ai commit --dry-run [--objects id1,id2,...] [--json]\ncaptable-ai commit (--objects id1,id2,... | --all) [--json]";
18082
19182
  if (args.positional.length > 0) {
18083
19183
  exitWithUsage(
18084
19184
  `Unexpected argument: ${args.positional[0]}. This command takes no positional arguments.`,
18085
- USAGE
19185
+ USAGE2
18086
19186
  );
18087
19187
  }
18088
19188
  const dryRun = hasFlag(args, "dry-run");
@@ -18091,10 +19191,10 @@ async function runCommit(args, rawArgv) {
18091
19191
  const objectIds = parseObjectIdsList(objectIdsRaw);
18092
19192
  const hasExplicitObjectIds = hasObjectIds(objectIdsRaw, objectIds);
18093
19193
  if (objectIdsRaw !== void 0 && !hasExplicitObjectIds) {
18094
- exitWithUsage("The --objects flag must include at least one object ID.", USAGE);
19194
+ exitWithUsage("The --objects flag must include at least one object ID.", USAGE2);
18095
19195
  }
18096
19196
  if (all && objectIds) {
18097
- exitWithUsage("Specify either --objects or --all, not both.", USAGE);
19197
+ exitWithUsage("Specify either --objects or --all, not both.", USAGE2);
18098
19198
  }
18099
19199
  if (dryRun) {
18100
19200
  const portalId2 = await getActivePortalId();
@@ -18121,7 +19221,7 @@ async function runCommit(args, rawArgv) {
18121
19221
  { objectIdsLabel: "--objects id1,id2,...", allDraftsLabel: "--all" }
18122
19222
  );
18123
19223
  if (!selection.ok) {
18124
- exitWithUsage(`${selection.message} Preview first with --dry-run.`, USAGE);
19224
+ exitWithUsage(`${selection.message} Preview first with --dry-run.`, USAGE2);
18125
19225
  }
18126
19226
  const portalId = await getActivePortalId();
18127
19227
  if (!isJsonMode()) {
@@ -18969,81 +20069,174 @@ async function atomicWriteJobs(content) {
18969
20069
  }
18970
20070
 
18971
20071
  // src/commands/documents-trigger-extraction.ts
20072
+ var USAGE = "Usage: captable-ai documents trigger-extraction [--s3-asset-ids ID1,ID2,...] [--json]";
20073
+ var HELP = `documents trigger-extraction \u2014 Trigger OCF extraction
20074
+
20075
+ ${USAGE}
20076
+
20077
+ Queues CLASSIFIED (and previously FAILED) documents in chronological order.
20078
+ Nothing is queued while a document in scope is still being classified, or an
20079
+ explicitly requested document never finished uploading; the command then exits
20080
+ with code 5 (outcome not_ready) and lists those documents. Wait for classification
20081
+ (captable-ai documents processing-status) or re-upload, then retry.
20082
+ `;
20083
+ function normalize(data) {
20084
+ const d = data ?? {};
20085
+ return { ...d, outcome: resolveTriggerExtractionOutcome(d) };
20086
+ }
18972
20087
  async function runDocumentsTriggerExtraction(args, rawArgv) {
18973
20088
  if (rawArgv.includes("--help") || rawArgv.includes("-h")) {
18974
- process.stdout.write(
18975
- "documents trigger-extraction \u2014 Trigger OCF extraction\n\nUsage: captable-ai documents trigger-extraction [--s3-asset-ids ID1,ID2,...] [--json]\n"
18976
- );
20089
+ process.stdout.write(HELP);
18977
20090
  process.exit(0);
18978
20091
  }
18979
20092
  validateFlags(args, { flags: ["s3-asset-ids"], booleans: [] });
18980
20093
  if (args.positional.length > 0) {
18981
20094
  exitWithUsage(
18982
20095
  "Unexpected positional argument(s). Use --s3-asset-ids to filter specific documents.",
18983
- "Usage: captable-ai documents trigger-extraction [--s3-asset-ids ID1,ID2,...] [--json]"
20096
+ USAGE
18984
20097
  );
18985
20098
  }
18986
20099
  const portalId = await getActivePortalId();
18987
20100
  const body = {};
18988
20101
  const rawIds = getFlagValue(args, "s3-asset-ids");
18989
- if (rawIds) {
18990
- const ids = rawIds.split(",").map((id) => id.trim()).filter(Boolean);
18991
- if (ids.length > 0) body.s3AssetIds = ids;
20102
+ const requestedIds = rawIds === void 0 ? [] : rawIds.split(",").map((id) => id.trim()).filter(Boolean);
20103
+ if (rawIds !== void 0 && requestedIds.length === 0) {
20104
+ exitWithUsage("--s3-asset-ids needs at least one document ID.", USAGE);
18992
20105
  }
18993
- const res = await apiRequest(
18994
- `/${portalId}/documents/trigger-extraction`,
18995
- {
18996
- method: "POST",
18997
- body
20106
+ if (requestedIds.length > 0) body.s3AssetIds = requestedIds;
20107
+ const retryCommand = "captable-ai documents trigger-extraction" + (requestedIds.length > 0 ? ` --s3-asset-ids ${requestedIds.join(",")}` : "");
20108
+ const res = await apiRequest(`/${portalId}/documents/trigger-extraction`, {
20109
+ method: "POST",
20110
+ body
20111
+ });
20112
+ const d = normalize(res.data);
20113
+ const queuedIds = d.documents?.map((doc) => doc.s3AssetId) ?? [];
20114
+ const notReady = d.notReadyDocuments ?? [];
20115
+ const blocking = notReady.filter((doc) => doc.blocking);
20116
+ let jobId = null;
20117
+ let trackerFailed = false;
20118
+ if (queuedIds.length > 0) {
20119
+ jobId = generateJobId();
20120
+ try {
20121
+ await appendJob({
20122
+ id: jobId,
20123
+ kind: "extraction",
20124
+ portalId,
20125
+ s3AssetIds: queuedIds,
20126
+ submittedAt: (/* @__PURE__ */ new Date()).toISOString(),
20127
+ status: "submitted",
20128
+ lastCheckedAt: null,
20129
+ completedAt: null,
20130
+ result: null
20131
+ });
20132
+ } catch (trackErr) {
20133
+ trackerFailed = true;
20134
+ jobId = null;
20135
+ printWarning(
20136
+ `Job tracker write failed: ${trackErr instanceof Error ? trackErr.message : String(trackErr)}`
20137
+ );
18998
20138
  }
18999
- );
19000
- const d = res.data ?? { queuedCount: 0, failedCount: 0, documents: [] };
19001
- const jobId = generateJobId();
19002
- const s3AssetIds = d.documents?.map((doc) => doc.s3AssetId) ?? [];
19003
- let tracked = true;
19004
- try {
19005
- await appendJob({
19006
- id: jobId,
19007
- kind: "extraction",
19008
- portalId,
19009
- s3AssetIds,
19010
- submittedAt: (/* @__PURE__ */ new Date()).toISOString(),
19011
- status: d.queuedCount > 0 ? "submitted" : "failed",
19012
- lastCheckedAt: null,
19013
- completedAt: d.queuedCount === 0 ? (/* @__PURE__ */ new Date()).toISOString() : null,
19014
- result: null
19015
- });
19016
- } catch (trackErr) {
19017
- tracked = false;
19018
- printWarning(
19019
- `Job tracker write failed: ${trackErr instanceof Error ? trackErr.message : String(trackErr)}`
19020
- );
19021
20139
  }
19022
20140
  if (isJsonMode()) {
19023
20141
  printJson({
19024
- data: res.data,
19025
- ...tracked && {
20142
+ data: { ...res.data, outcome: d.outcome },
20143
+ ...jobId && {
19026
20144
  jobId,
19027
- hint: `Extraction takes 5-30+ min. Check progress: captable-ai jobs get ${jobId}`
20145
+ hint: `Extraction takes 5-30+ min. Check progress: captable-ai jobs get ${jobId}`,
20146
+ monitoringHint: BACKGROUND_MONITORING_SUGGESTION
19028
20147
  },
19029
- ...!tracked && { trackerWarning: "Local job tracking failed." }
20148
+ ...trackerFailed && { trackerWarning: "Local job tracking failed." },
20149
+ ...d.outcome === "not_ready" && {
20150
+ hint: "Nothing was queued. Wait for classification to finish (or re-upload unfinished uploads), then retry."
20151
+ }
19030
20152
  });
20153
+ if (d.outcome === "not_ready") process.exitCode = EXIT.CONFLICT;
20154
+ if (d.outcome === "queue_failed" || d.outcome === "partially_queued") {
20155
+ process.exitCode = EXIT.SERVER_ERROR;
20156
+ }
20157
+ flagMissingIds(d.missingIds);
19031
20158
  return;
19032
20159
  }
19033
- if (d.queuedCount === 0 && d.failedCount > 0) {
19034
- exitWithError(
19035
- `All ${d.failedCount} document(s) failed to queue for extraction.`,
19036
- "EXTRACTION_QUEUE_FAILED",
19037
- void 0,
19038
- EXIT.SERVER_ERROR
19039
- );
20160
+ switch (d.outcome) {
20161
+ case "not_ready": {
20162
+ const uploads = blocking.filter((doc) => doc.reason === "pending_upload");
20163
+ const classifying = blocking.filter((doc) => doc.reason === "classification_in_progress");
20164
+ const details = blocking.map((doc) => ({
20165
+ path: doc.s3AssetId,
20166
+ message: `${doc.status}: ${doc.reason}`
20167
+ }));
20168
+ const parts = [];
20169
+ if (classifying.length > 0) {
20170
+ parts.push(
20171
+ `${classifying.length} document(s) are still being classified; wait and retry (captable-ai documents processing-status). If one stays stuck, retry with --s3-asset-ids listing only the documents you intend to extract`
20172
+ );
20173
+ }
20174
+ if (uploads.length > 0) {
20175
+ parts.push(
20176
+ `${uploads.length} requested document(s) never finished uploading; re-upload or delete them`
20177
+ );
20178
+ }
20179
+ exitWithError(
20180
+ `No documents were queued. ${parts.join(". ")}.`,
20181
+ "EXTRACTION_NOT_READY",
20182
+ details,
20183
+ EXIT.CONFLICT
20184
+ );
20185
+ break;
20186
+ }
20187
+ case "queue_failed":
20188
+ exitWithError(
20189
+ `All ${d.failedCount ?? 0} document(s) failed to queue for extraction. Retry shortly: ${retryCommand}`,
20190
+ "EXTRACTION_QUEUE_FAILED",
20191
+ void 0,
20192
+ EXIT.SERVER_ERROR
20193
+ );
20194
+ break;
20195
+ case "no_eligible_documents":
20196
+ printLine("No CLASSIFIED or FAILED documents in scope; nothing was queued.");
20197
+ break;
20198
+ case "queued":
20199
+ case "partially_queued":
20200
+ printSuccess(
20201
+ `Queued ${d.queuedCount ?? queuedIds.length} document(s) for extraction${(d.failedCount ?? 0) > 0 ? ` (${d.failedCount} failed to queue)` : ""}.`
20202
+ );
20203
+ if (jobId) {
20204
+ printSuccess(`Job tracked: ${jobId}. Check progress: captable-ai jobs get ${jobId}`);
20205
+ printLine(`Tip: ${BACKGROUND_MONITORING_SUGGESTION}`);
20206
+ }
20207
+ if (d.outcome === "partially_queued") {
20208
+ printWarning(
20209
+ `${d.failedCount ?? 0} document(s) failed to queue and are still waiting for extraction. Re-run ${retryCommand} to queue them.`
20210
+ );
20211
+ process.exitCode = EXIT.SERVER_ERROR;
20212
+ }
20213
+ break;
20214
+ default: {
20215
+ const unhandled = d.outcome;
20216
+ throw new Error(`Unhandled trigger outcome: ${String(unhandled)}`);
20217
+ }
19040
20218
  }
19041
- printSuccess(
19042
- `Queued ${d.queuedCount} document(s) for extraction${d.failedCount > 0 ? ` (${d.failedCount} failed to queue)` : ""}.`
20219
+ const nonBlockingUploads = notReady.filter(
20220
+ (doc) => !doc.blocking && doc.reason === "pending_upload"
19043
20221
  );
19044
- if (tracked) {
19045
- printSuccess(`Job tracked: ${jobId}. Check progress: captable-ai jobs get ${jobId}`);
20222
+ if (nonBlockingUploads.length > 0) {
20223
+ printWarning(
20224
+ `${nonBlockingUploads.length} document(s) never finished uploading and were not queued. Re-upload or delete them.`
20225
+ );
20226
+ }
20227
+ const skipped = d.skippedDocuments ?? [];
20228
+ if (skipped.length > 0) {
20229
+ printWarning(
20230
+ `Not queued (already in progress or complete): ${skipped.map((doc) => `${doc.s3AssetId} (${doc.status})`).join(", ")}.`
20231
+ );
20232
+ }
20233
+ if ((d.missingIds?.length ?? 0) > 0) {
20234
+ printWarning(`Not found in this company: ${d.missingIds?.join(", ")}`);
19046
20235
  }
20236
+ flagMissingIds(d.missingIds);
20237
+ }
20238
+ function flagMissingIds(missingIds) {
20239
+ if ((missingIds?.length ?? 0) > 0 && !process.exitCode) process.exitCode = EXIT.NOT_FOUND;
19047
20240
  }
19048
20241
 
19049
20242
  // src/commands/documents-upload.ts
@@ -20729,22 +21922,22 @@ async function runObjectsRevert(args, rawArgv) {
20729
21922
  const objectIdsRaw = getFlagValue(args, "objects");
20730
21923
  const objectIdsFromFlag = parseObjectIdsList(objectIdsRaw);
20731
21924
  const hasExplicitObjectIds = hasObjectIds(objectIdsRaw, objectIdsFromFlag);
20732
- const USAGE = "captable-ai objects revert --dry-run [<object-id> | --objects id1,id2,... | --all] [--json]\ncaptable-ai objects revert (<object-id> | --objects id1,id2,... | --all) [--yes] [--json]";
21925
+ const USAGE2 = "captable-ai objects revert --dry-run [<object-id> | --objects id1,id2,... | --all] [--json]\ncaptable-ai objects revert (<object-id> | --objects id1,id2,... | --all) [--yes] [--json]";
20733
21926
  if (args.positional.length > 1) {
20734
21927
  exitWithUsage(
20735
21928
  `Too many arguments: expected one object ID, got ${args.positional.length}.`,
20736
- USAGE
21929
+ USAGE2
20737
21930
  );
20738
21931
  }
20739
21932
  if (objectIdRaw !== void 0 && !objectId) {
20740
- exitWithUsage("Object ID must be a non-empty string.", USAGE);
21933
+ exitWithUsage("Object ID must be a non-empty string.", USAGE2);
20741
21934
  }
20742
21935
  if (objectIdsRaw !== void 0 && !hasExplicitObjectIds) {
20743
- exitWithUsage("The --objects flag must include at least one object ID.", USAGE);
21936
+ exitWithUsage("The --objects flag must include at least one object ID.", USAGE2);
20744
21937
  }
20745
21938
  const selectionSources = [Boolean(objectId), Boolean(objectIdsFromFlag), all].filter(Boolean);
20746
21939
  if (selectionSources.length > 1) {
20747
- exitWithUsage("Specify only one of an object ID, --objects, or --all.", USAGE);
21940
+ exitWithUsage("Specify only one of an object ID, --objects, or --all.", USAGE2);
20748
21941
  }
20749
21942
  const objectIds = objectId ? [objectId] : objectIdsFromFlag;
20750
21943
  if (dryRun) {
@@ -20774,7 +21967,7 @@ async function runObjectsRevert(args, rawArgv) {
20774
21967
  { objectIdsLabel: "<object-id> or --objects id1,id2,...", allDraftsLabel: "--all" }
20775
21968
  );
20776
21969
  if (!selection.ok) {
20777
- exitWithUsage(`${selection.message} Preview first with --dry-run.`, USAGE);
21970
+ exitWithUsage(`${selection.message} Preview first with --dry-run.`, USAGE2);
20778
21971
  }
20779
21972
  const portalId = await getActivePortalId();
20780
21973
  if (selection.allDrafts) {
@@ -21414,28 +22607,45 @@ async function runImportStart(args) {
21414
22607
  printLine("Upload documents: captable-ai documents upload <file...>");
21415
22608
  printLine(`Check progress: captable-ai import status ${session.id}`);
21416
22609
  }
21417
- var TERMINAL_DOCUMENT_STATUSES = /* @__PURE__ */ new Set(["PROCESSED", "COMMITTED", "FAILED", "CANCELLED"]);
21418
- function documentsForImportSession(documents, sessionCreatedAt) {
21419
- if (typeof sessionCreatedAt !== "string" || sessionCreatedAt.length === 0) return [];
21420
- return documents.filter(
21421
- (document) => typeof document.lastActivityAt === "string" && document.lastActivityAt >= sessionCreatedAt
21422
- );
21423
- }
21424
- function summarizeImportDocuments(documents) {
21425
- const statuses = documents.map((document) => (document.status ?? "").toUpperCase());
21426
- const failed = statuses.filter((status) => ["FAILED", "CANCELLED"].includes(status)).length;
21427
- const classified = statuses.filter((status) => status === "CLASSIFIED").length;
21428
- const pendingUpload = statuses.filter((status) => status === "PENDING_UPLOAD").length;
21429
- const processing = statuses.filter(
21430
- (status) => status !== "" && !TERMINAL_DOCUMENT_STATUSES.has(status) && status !== "CLASSIFIED" && status !== "PENDING_UPLOAD"
21431
- ).length;
22610
+ function scopeFlag(ids) {
22611
+ return ids && ids.length > 0 ? ` --s3-asset-ids ${ids.join(",")}` : "";
22612
+ }
22613
+ function importStatusCommand(action, sessionId) {
22614
+ const command = (() => {
22615
+ switch (action.id) {
22616
+ case "upload_documents":
22617
+ return "captable-ai documents upload <file...>";
22618
+ case "trigger_extraction":
22619
+ return `captable-ai documents trigger-extraction${scopeFlag(action.s3AssetIds)}`;
22620
+ case "check_status":
22621
+ return `captable-ai import status ${sessionId}`;
22622
+ case "restart_extraction":
22623
+ return `captable-ai documents restart-extraction${scopeFlag(action.s3AssetIds)}`;
22624
+ case "retrigger_validation":
22625
+ return "captable-ai retrigger-validation";
22626
+ case "resolve_extraction_scope":
22627
+ return "captable-ai documents list";
22628
+ case "review_failures":
22629
+ return action.statusFilter ? `captable-ai documents list --status ${action.statusFilter}` : "captable-ai documents list";
22630
+ case "review_drafts":
22631
+ return "captable-ai objects list --status draft --all";
22632
+ case "preview_commit":
22633
+ return "captable-ai commit --dry-run";
22634
+ case "confirm_commit":
22635
+ return "captable-ai commit --all";
22636
+ default: {
22637
+ const unhandled = action.id;
22638
+ throw new Error(`Unhandled import status action: ${String(unhandled)}`);
22639
+ }
22640
+ }
22641
+ })();
22642
+ const id = action.id === "upload_documents" ? "upload_cli" : action.id;
21432
22643
  return {
21433
- total: documents.length,
21434
- processing,
21435
- classified,
21436
- pendingUpload,
21437
- failed,
21438
- complete: documents.length - failed - processing - classified - pendingUpload
22644
+ id,
22645
+ label: action.label,
22646
+ required: action.required,
22647
+ command,
22648
+ ...action.id === "review_failures" && action.s3AssetIds && { s3AssetIds: action.s3AssetIds }
21439
22649
  };
21440
22650
  }
21441
22651
  async function runImportStatus(args) {
@@ -21450,13 +22660,15 @@ async function runImportStatus(args) {
21450
22660
  const response = await apiRequest(
21451
22661
  `/import-sessions/${encodeURIComponent(sessionId)}/status`
21452
22662
  );
21453
- const documents = documentsForImportSession(
21454
- response.data?.processing?.documents ?? [],
21455
- response.data?.session?.createdAt
21456
- );
21457
- const summary = summarizeImportDocuments(documents);
21458
- const sessionState = response.data?.session?.state;
21459
- if (documents.length > 0 && summary.processing === 0 && summary.classified === 0 && summary.pendingUpload === 0 && summary.failed === 0 && sessionState !== "completed") {
22663
+ const portalDocuments = response.data?.processing?.documents ?? [];
22664
+ const documents = documentsForImportSession(portalDocuments, response.data?.session?.createdAt);
22665
+ const plan = planImportStatus({
22666
+ documents,
22667
+ sessionState: response.data?.session?.state,
22668
+ scopeUnknown: importSessionScopeUnknown(portalDocuments)
22669
+ });
22670
+ const { summary } = plan;
22671
+ if (plan.shouldComplete) {
21460
22672
  const completed = await apiRequest(
21461
22673
  `/import-sessions/${encodeURIComponent(sessionId)}/complete`,
21462
22674
  {
@@ -21468,56 +22680,15 @@ async function runImportStatus(args) {
21468
22680
  response.data.session = { ...response.data.session, ...completed.data.session };
21469
22681
  }
21470
22682
  }
21471
- const state = documents.length === 0 ? ONBOARDING_STATES.READY_TO_IMPORT : summary.processing > 0 ? ONBOARDING_STATES.PROCESSING : summary.classified > 0 || summary.pendingUpload > 0 ? ONBOARDING_STATES.READY_TO_IMPORT : summary.failed > 0 ? ONBOARDING_STATES.BLOCKED : ONBOARDING_STATES.NEEDS_REVIEW;
21472
- const nextActions = documents.length === 0 || summary.pendingUpload > 0 ? [
21473
- nextAction(
21474
- "upload_cli",
21475
- "Upload local documents directly to S3",
21476
- "captable-ai documents upload <file...>"
21477
- ),
21478
- ...summary.classified > 0 ? [
21479
- nextAction(
21480
- "trigger_extraction",
21481
- "Start OCF extraction for classified documents",
21482
- "captable-ai documents trigger-extraction"
21483
- )
21484
- ] : []
21485
- ] : summary.classified > 0 ? [
21486
- nextAction(
21487
- "trigger_extraction",
21488
- "Start OCF extraction for classified documents",
21489
- "captable-ai documents trigger-extraction"
21490
- )
21491
- ] : summary.processing > 0 ? [
21492
- nextAction(
21493
- "check_status",
21494
- "Check import progress again",
21495
- `captable-ai import status ${sessionId}`
21496
- )
21497
- ] : summary.failed > 0 ? [
21498
- nextAction(
21499
- "review_failures",
21500
- "Review failed documents",
21501
- "captable-ai documents list --status FAILED"
21502
- )
21503
- ] : [
21504
- nextAction(
21505
- "review_drafts",
21506
- "Review extracted drafts",
21507
- "captable-ai objects list --status draft --all"
21508
- ),
21509
- nextAction(
21510
- "preview_commit",
21511
- "Preview the first commit",
21512
- "captable-ai commit --dry-run"
21513
- ),
21514
- nextAction("confirm_commit", "Commit reviewed drafts", "captable-ai commit --all")
21515
- ];
22683
+ const nextActions = plan.actions.map((action) => importStatusCommand(action, sessionId));
22684
+ const suggestMonitoring = shouldSuggestBackgroundMonitoring(plan.phase);
21516
22685
  const data = {
21517
22686
  ...response.data,
21518
- state,
22687
+ state: plan.state,
22688
+ phase: plan.phase,
21519
22689
  summary,
21520
- nextActions
22690
+ nextActions,
22691
+ ...suggestMonitoring && { monitoringHint: BACKGROUND_MONITORING_SUGGESTION }
21521
22692
  };
21522
22693
  if (isJsonMode()) {
21523
22694
  printJson({ data });
@@ -21526,14 +22697,33 @@ async function runImportStatus(args) {
21526
22697
  printKeyValue([
21527
22698
  ["Session", sessionId],
21528
22699
  ["State", data.state],
22700
+ ["Phase", plan.phase],
21529
22701
  ["Documents", summary.total],
22702
+ ["Pending upload", summary.pendingUpload],
22703
+ ["Classifying", summary.preclassification],
21530
22704
  ["Classified", summary.classified],
21531
- ["Processing", summary.processing],
22705
+ ["Extracting", summary.extracting],
22706
+ ["Validating", summary.validating],
21532
22707
  ["Complete", summary.complete],
21533
22708
  ["Failed", summary.failed]
21534
22709
  ]);
22710
+ if (plan.phase === "awaiting_upload") {
22711
+ printLine(
22712
+ " Some uploads never finished. Re-upload them; checking status again will not complete them."
22713
+ );
22714
+ }
21535
22715
  for (const action of nextActions) {
21536
- printLine(` Next: ${String(action.command)}`);
22716
+ printLine(` Next: ${action.command}`);
22717
+ if (action.id === "resolve_extraction_scope") printLine(` Note: ${action.label}`);
22718
+ if (action.id === "check_status" && plan.phase === "empty") {
22719
+ printLine(` Note: ${action.label}`);
22720
+ }
22721
+ if (action.id === "review_failures" && action.s3AssetIds) {
22722
+ printLine(` Documents: ${action.s3AssetIds.join(", ")}`);
22723
+ }
22724
+ }
22725
+ if (suggestMonitoring) {
22726
+ printLine(` Tip: ${BACKGROUND_MONITORING_SUGGESTION}`);
21537
22727
  }
21538
22728
  }
21539
22729
 
@@ -22361,7 +23551,7 @@ Onboarding:
22361
23551
  onboarding status Show the next setup/import action (works with zero companies)
22362
23552
  onboarding setup Create the first production workspace
22363
23553
  import start Start or reuse a document import session
22364
- import status <id> Check import processing via existing document APIs
23554
+ import status <id> Show import phase and the next action (upload, wait, extract, review)
22365
23555
 
22366
23556
  Cap Table (read):
22367
23557
  summary Full cap table snapshot (capitalization, stakeholders, metrics)
@@ -22418,6 +23608,7 @@ Agent Logs (Fairmint super-admin only):
22418
23608
 
22419
23609
  Extraction Pipeline:
22420
23610
  documents trigger-extraction Trigger OCF extraction for classified documents
23611
+ Queues nothing while documents are still classifying
22421
23612
  Filter: --s3-asset-ids ID1,ID2,...
22422
23613
  documents cancel-extraction <s3AssetId> Cancel a stuck extraction
22423
23614
  documents restart-extraction Atomically restart stuck extractions (cancel + re-enqueue)