@rexeus/typeweaver-types 0.1.2 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -349,6 +349,8 @@ function isPlainObject(o) {
349
349
  function shallowClone(o) {
350
350
  if (isPlainObject(o))
351
351
  return { ...o };
352
+ if (Array.isArray(o))
353
+ return [...o];
352
354
  return o;
353
355
  }
354
356
  function numKeys(data) {
@@ -1062,14 +1064,14 @@ const email$1 = /^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-
1062
1064
  const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
1063
1065
  const rfc5322Email = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
1064
1066
  const unicodeEmail = /^[^\s@"]{1,64}@[^\s@]{1,255}$/u;
1065
- const idnEmail = /^[^\s@"]{1,64}@[^\s@]{1,255}$/u;
1067
+ const idnEmail = unicodeEmail;
1066
1068
  const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
1067
1069
  const _emoji$1 = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;
1068
1070
  function emoji$1() {
1069
1071
  return new RegExp(_emoji$1, "u");
1070
1072
  }
1071
1073
  const ipv4$1 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
1072
- const ipv6$1 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/;
1074
+ const ipv6$1 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;
1073
1075
  const cidrv4$1 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/;
1074
1076
  const cidrv6$1 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;
1075
1077
  const base64$1 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;
@@ -1101,12 +1103,12 @@ const string$2 = (params) => {
1101
1103
  const regex = params ? `[\\s\\S]{${params?.minimum ?? 0},${params?.maximum ?? ""}}` : `[\\s\\S]*`;
1102
1104
  return new RegExp(`^${regex}$`);
1103
1105
  };
1104
- const bigint$2 = /^\d+n?$/;
1105
- const integer = /^\d+$/;
1106
- const number$2 = /^-?\d+(?:\.\d+)?/i;
1107
- const boolean$2 = /true|false/i;
1108
- const _null$2 = /null/i;
1109
- const _undefined$2 = /undefined/i;
1106
+ const bigint$2 = /^-?\d+n?$/;
1107
+ const integer = /^-?\d+$/;
1108
+ const number$2 = /^-?\d+(?:\.\d+)?/;
1109
+ const boolean$2 = /^(?:true|false)$/i;
1110
+ const _null$2 = /^null$/i;
1111
+ const _undefined$2 = /^undefined$/i;
1110
1112
  const lowercase = /^[^A-Z]*$/;
1111
1113
  const uppercase = /^[^a-z]*$/;
1112
1114
  const hex$1 = /^[0-9a-fA-F]*$/;
@@ -1114,7 +1116,7 @@ function fixedBase64(bodyLength, padding) {
1114
1116
  return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);
1115
1117
  }
1116
1118
  function fixedBase64url(length) {
1117
- return new RegExp(`^[A-Za-z0-9-_]{${length}}$`);
1119
+ return new RegExp(`^[A-Za-z0-9_-]{${length}}$`);
1118
1120
  }
1119
1121
  const md5_hex = /^[0-9a-fA-F]{32}$/;
1120
1122
  const md5_base64 = /* @__PURE__ */ fixedBase64(22, "==");
@@ -1772,7 +1774,7 @@ class Doc {
1772
1774
  const version = {
1773
1775
  major: 4,
1774
1776
  minor: 1,
1775
- patch: 5
1777
+ patch: 11
1776
1778
  };
1777
1779
 
1778
1780
  const $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
@@ -2068,8 +2070,11 @@ const $ZodCIDRv6 = /* @__PURE__ */ $constructor("$ZodCIDRv6", (inst, def) => {
2068
2070
  def.pattern ?? (def.pattern = cidrv6$1);
2069
2071
  $ZodStringFormat.init(inst, def);
2070
2072
  inst._zod.check = (payload) => {
2071
- const [address, prefix] = payload.value.split("/");
2073
+ const parts = payload.value.split("/");
2072
2074
  try {
2075
+ if (parts.length !== 2)
2076
+ throw new Error();
2077
+ const [address, prefix] = parts;
2073
2078
  if (!prefix)
2074
2079
  throw new Error();
2075
2080
  const prefixNum = Number(prefix);
@@ -2433,7 +2438,7 @@ function handlePropertyResult(result, final, key, input) {
2433
2438
  function normalizeDef(def) {
2434
2439
  const keys = Object.keys(def.shape);
2435
2440
  for (const k of keys) {
2436
- if (!def.shape[k]._zod.traits.has("$ZodType")) {
2441
+ if (!def.shape?.[k]?._zod?.traits?.has("$ZodType")) {
2437
2442
  throw new Error(`Invalid element at key "${k}": expected a Zod schema`);
2438
2443
  }
2439
2444
  }
@@ -2481,6 +2486,19 @@ function handleCatchall(proms, input, payload, ctx, def, inst) {
2481
2486
  }
2482
2487
  const $ZodObject = /* @__PURE__ */ $constructor("$ZodObject", (inst, def) => {
2483
2488
  $ZodType.init(inst, def);
2489
+ const desc = Object.getOwnPropertyDescriptor(def, "shape");
2490
+ if (!desc?.get) {
2491
+ const sh = def.shape;
2492
+ Object.defineProperty(def, "shape", {
2493
+ get: () => {
2494
+ const newSh = { ...sh };
2495
+ Object.defineProperty(def, "shape", {
2496
+ value: newSh
2497
+ });
2498
+ return newSh;
2499
+ }
2500
+ });
2501
+ }
2484
2502
  const _normalized = cached(() => normalizeDef(def));
2485
2503
  defineLazy(inst._zod, "propValues", () => {
2486
2504
  const shape = def.shape;
@@ -2545,7 +2563,7 @@ const $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def)
2545
2563
  for (const key of normalized.keys) {
2546
2564
  ids[key] = `key_${counter++}`;
2547
2565
  }
2548
- doc.write(`const newResult = {}`);
2566
+ doc.write(`const newResult = {};`);
2549
2567
  for (const key of normalized.keys) {
2550
2568
  const id = ids[key];
2551
2569
  const k = esc(key);
@@ -2558,6 +2576,7 @@ const $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def)
2558
2576
  })));
2559
2577
  }
2560
2578
 
2579
+
2561
2580
  if (${id}.value === undefined) {
2562
2581
  if (${k} in input) {
2563
2582
  newResult[${k}] = undefined;
@@ -2565,6 +2584,7 @@ const $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def)
2565
2584
  } else {
2566
2585
  newResult[${k}] = ${id}.value;
2567
2586
  }
2587
+
2568
2588
  `);
2569
2589
  }
2570
2590
  doc.write(`payload.value = newResult;`);
@@ -3601,7 +3621,7 @@ function handleRefineResult(result, payload, input, inst) {
3601
3621
  }
3602
3622
  }
3603
3623
 
3604
- const error$F = () => {
3624
+ const error$H = () => {
3605
3625
  const Sizable = {
3606
3626
  string: { unit: "\u062D\u0631\u0641", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" },
3607
3627
  file: { unit: "\u0628\u0627\u064A\u062A", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" },
@@ -3713,11 +3733,11 @@ const error$F = () => {
3713
3733
  };
3714
3734
  function ar() {
3715
3735
  return {
3716
- localeError: error$F()
3736
+ localeError: error$H()
3717
3737
  };
3718
3738
  }
3719
3739
 
3720
- const error$E = () => {
3740
+ const error$G = () => {
3721
3741
  const Sizable = {
3722
3742
  string: { unit: "simvol", verb: "olmal\u0131d\u0131r" },
3723
3743
  file: { unit: "bayt", verb: "olmal\u0131d\u0131r" },
@@ -3828,7 +3848,7 @@ const error$E = () => {
3828
3848
  };
3829
3849
  function az() {
3830
3850
  return {
3831
- localeError: error$E()
3851
+ localeError: error$G()
3832
3852
  };
3833
3853
  }
3834
3854
 
@@ -3847,7 +3867,7 @@ function getBelarusianPlural(count, one, few, many) {
3847
3867
  }
3848
3868
  return many;
3849
3869
  }
3850
- const error$D = () => {
3870
+ const error$F = () => {
3851
3871
  const Sizable = {
3852
3872
  string: {
3853
3873
  unit: {
@@ -3992,11 +4012,11 @@ const error$D = () => {
3992
4012
  };
3993
4013
  function be() {
3994
4014
  return {
3995
- localeError: error$D()
4015
+ localeError: error$F()
3996
4016
  };
3997
4017
  }
3998
4018
 
3999
- const error$C = () => {
4019
+ const error$E = () => {
4000
4020
  const Sizable = {
4001
4021
  string: { unit: "car\xE0cters", verb: "contenir" },
4002
4022
  file: { unit: "bytes", verb: "contenir" },
@@ -4111,11 +4131,11 @@ const error$C = () => {
4111
4131
  };
4112
4132
  function ca() {
4113
4133
  return {
4114
- localeError: error$C()
4134
+ localeError: error$E()
4115
4135
  };
4116
4136
  }
4117
4137
 
4118
- const error$B = () => {
4138
+ const error$D = () => {
4119
4139
  const Sizable = {
4120
4140
  string: { unit: "znak\u016F", verb: "m\xEDt" },
4121
4141
  file: { unit: "bajt\u016F", verb: "m\xEDt" },
@@ -4246,11 +4266,11 @@ const error$B = () => {
4246
4266
  };
4247
4267
  function cs() {
4248
4268
  return {
4249
- localeError: error$B()
4269
+ localeError: error$D()
4250
4270
  };
4251
4271
  }
4252
4272
 
4253
- const error$A = () => {
4273
+ const error$C = () => {
4254
4274
  const Sizable = {
4255
4275
  string: { unit: "tegn", verb: "havde" },
4256
4276
  file: { unit: "bytes", verb: "havde" },
@@ -4377,11 +4397,11 @@ const error$A = () => {
4377
4397
  };
4378
4398
  function da() {
4379
4399
  return {
4380
- localeError: error$A()
4400
+ localeError: error$C()
4381
4401
  };
4382
4402
  }
4383
4403
 
4384
- const error$z = () => {
4404
+ const error$B = () => {
4385
4405
  const Sizable = {
4386
4406
  string: { unit: "Zeichen", verb: "zu haben" },
4387
4407
  file: { unit: "Bytes", verb: "zu haben" },
@@ -4493,11 +4513,11 @@ const error$z = () => {
4493
4513
  };
4494
4514
  function de() {
4495
4515
  return {
4496
- localeError: error$z()
4516
+ localeError: error$B()
4497
4517
  };
4498
4518
  }
4499
4519
 
4500
- const parsedType$3 = (data) => {
4520
+ const parsedType$5 = (data) => {
4501
4521
  const t = typeof data;
4502
4522
  switch (t) {
4503
4523
  case "number": {
@@ -4517,7 +4537,7 @@ const parsedType$3 = (data) => {
4517
4537
  }
4518
4538
  return t;
4519
4539
  };
4520
- const error$y = () => {
4540
+ const error$A = () => {
4521
4541
  const Sizable = {
4522
4542
  string: { unit: "characters", verb: "to have" },
4523
4543
  file: { unit: "bytes", verb: "to have" },
@@ -4560,7 +4580,7 @@ const error$y = () => {
4560
4580
  return (issue) => {
4561
4581
  switch (issue.code) {
4562
4582
  case "invalid_type":
4563
- return `Invalid input: expected ${issue.expected}, received ${parsedType$3(issue.input)}`;
4583
+ return `Invalid input: expected ${issue.expected}, received ${parsedType$5(issue.input)}`;
4564
4584
  case "invalid_value":
4565
4585
  if (issue.values.length === 1)
4566
4586
  return `Invalid input: expected ${stringifyPrimitive(issue.values[0])}`;
@@ -4610,11 +4630,11 @@ const error$y = () => {
4610
4630
  };
4611
4631
  function en() {
4612
4632
  return {
4613
- localeError: error$y()
4633
+ localeError: error$A()
4614
4634
  };
4615
4635
  }
4616
4636
 
4617
- const parsedType$2 = (data) => {
4637
+ const parsedType$4 = (data) => {
4618
4638
  const t = typeof data;
4619
4639
  switch (t) {
4620
4640
  case "number": {
@@ -4634,7 +4654,7 @@ const parsedType$2 = (data) => {
4634
4654
  }
4635
4655
  return t;
4636
4656
  };
4637
- const error$x = () => {
4657
+ const error$z = () => {
4638
4658
  const Sizable = {
4639
4659
  string: { unit: "karaktrojn", verb: "havi" },
4640
4660
  file: { unit: "bajtojn", verb: "havi" },
@@ -4677,7 +4697,7 @@ const error$x = () => {
4677
4697
  return (issue) => {
4678
4698
  switch (issue.code) {
4679
4699
  case "invalid_type":
4680
- return `Nevalida enigo: atendi\u011Dis ${issue.expected}, ricevi\u011Dis ${parsedType$2(issue.input)}`;
4700
+ return `Nevalida enigo: atendi\u011Dis ${issue.expected}, ricevi\u011Dis ${parsedType$4(issue.input)}`;
4681
4701
  case "invalid_value":
4682
4702
  if (issue.values.length === 1)
4683
4703
  return `Nevalida enigo: atendi\u011Dis ${stringifyPrimitive(issue.values[0])}`;
@@ -4726,36 +4746,66 @@ const error$x = () => {
4726
4746
  };
4727
4747
  function eo() {
4728
4748
  return {
4729
- localeError: error$x()
4749
+ localeError: error$z()
4730
4750
  };
4731
4751
  }
4732
4752
 
4733
- const error$w = () => {
4753
+ const error$y = () => {
4734
4754
  const Sizable = {
4735
4755
  string: { unit: "caracteres", verb: "tener" },
4736
4756
  file: { unit: "bytes", verb: "tener" },
4737
4757
  array: { unit: "elementos", verb: "tener" },
4738
4758
  set: { unit: "elementos", verb: "tener" }
4739
4759
  };
4760
+ const TypeNames = {
4761
+ string: "texto",
4762
+ number: "n\xFAmero",
4763
+ boolean: "booleano",
4764
+ array: "arreglo",
4765
+ object: "objeto",
4766
+ set: "conjunto",
4767
+ file: "archivo",
4768
+ date: "fecha",
4769
+ bigint: "n\xFAmero grande",
4770
+ symbol: "s\xEDmbolo",
4771
+ undefined: "indefinido",
4772
+ null: "nulo",
4773
+ function: "funci\xF3n",
4774
+ map: "mapa",
4775
+ record: "registro",
4776
+ tuple: "tupla",
4777
+ enum: "enumeraci\xF3n",
4778
+ union: "uni\xF3n",
4779
+ literal: "literal",
4780
+ promise: "promesa",
4781
+ void: "vac\xEDo",
4782
+ never: "nunca",
4783
+ unknown: "desconocido",
4784
+ any: "cualquiera"
4785
+ };
4740
4786
  function getSizing(origin) {
4741
4787
  return Sizable[origin] ?? null;
4742
4788
  }
4789
+ function getTypeName(type) {
4790
+ return TypeNames[type] ?? type;
4791
+ }
4743
4792
  const parsedType = (data) => {
4744
4793
  const t = typeof data;
4745
4794
  switch (t) {
4746
4795
  case "number": {
4747
- return Number.isNaN(data) ? "NaN" : "n\xFAmero";
4796
+ return Number.isNaN(data) ? "NaN" : "number";
4748
4797
  }
4749
4798
  case "object": {
4750
4799
  if (Array.isArray(data)) {
4751
- return "arreglo";
4800
+ return "array";
4752
4801
  }
4753
4802
  if (data === null) {
4754
- return "nulo";
4803
+ return "null";
4755
4804
  }
4756
4805
  if (Object.getPrototypeOf(data) !== Object.prototype) {
4757
4806
  return data.constructor.name;
4758
4807
  }
4808
+ return "object";
4759
4809
  }
4760
4810
  }
4761
4811
  return t;
@@ -4793,7 +4843,7 @@ const error$w = () => {
4793
4843
  return (issue) => {
4794
4844
  switch (issue.code) {
4795
4845
  case "invalid_type":
4796
- return `Entrada inv\xE1lida: se esperaba ${issue.expected}, recibido ${parsedType(issue.input)}`;
4846
+ return `Entrada inv\xE1lida: se esperaba ${getTypeName(issue.expected)}, recibido ${getTypeName(parsedType(issue.input))}`;
4797
4847
  // return `Entrada inválida: se esperaba ${issue.expected}, recibido ${util.getParsedType(issue.input)}`;
4798
4848
  case "invalid_value":
4799
4849
  if (issue.values.length === 1)
@@ -4802,17 +4852,19 @@ const error$w = () => {
4802
4852
  case "too_big": {
4803
4853
  const adj = issue.inclusive ? "<=" : "<";
4804
4854
  const sizing = getSizing(issue.origin);
4855
+ const origin = getTypeName(issue.origin);
4805
4856
  if (sizing)
4806
- return `Demasiado grande: se esperaba que ${issue.origin ?? "valor"} tuviera ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementos"}`;
4807
- return `Demasiado grande: se esperaba que ${issue.origin ?? "valor"} fuera ${adj}${issue.maximum.toString()}`;
4857
+ return `Demasiado grande: se esperaba que ${origin ?? "valor"} tuviera ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementos"}`;
4858
+ return `Demasiado grande: se esperaba que ${origin ?? "valor"} fuera ${adj}${issue.maximum.toString()}`;
4808
4859
  }
4809
4860
  case "too_small": {
4810
4861
  const adj = issue.inclusive ? ">=" : ">";
4811
4862
  const sizing = getSizing(issue.origin);
4863
+ const origin = getTypeName(issue.origin);
4812
4864
  if (sizing) {
4813
- return `Demasiado peque\xF1o: se esperaba que ${issue.origin} tuviera ${adj}${issue.minimum.toString()} ${sizing.unit}`;
4865
+ return `Demasiado peque\xF1o: se esperaba que ${origin} tuviera ${adj}${issue.minimum.toString()} ${sizing.unit}`;
4814
4866
  }
4815
- return `Demasiado peque\xF1o: se esperaba que ${issue.origin} fuera ${adj}${issue.minimum.toString()}`;
4867
+ return `Demasiado peque\xF1o: se esperaba que ${origin} fuera ${adj}${issue.minimum.toString()}`;
4816
4868
  }
4817
4869
  case "invalid_format": {
4818
4870
  const _issue = issue;
@@ -4831,11 +4883,11 @@ const error$w = () => {
4831
4883
  case "unrecognized_keys":
4832
4884
  return `Llave${issue.keys.length > 1 ? "s" : ""} desconocida${issue.keys.length > 1 ? "s" : ""}: ${joinValues(issue.keys, ", ")}`;
4833
4885
  case "invalid_key":
4834
- return `Llave inv\xE1lida en ${issue.origin}`;
4886
+ return `Llave inv\xE1lida en ${getTypeName(issue.origin)}`;
4835
4887
  case "invalid_union":
4836
4888
  return "Entrada inv\xE1lida";
4837
4889
  case "invalid_element":
4838
- return `Valor inv\xE1lido en ${issue.origin}`;
4890
+ return `Valor inv\xE1lido en ${getTypeName(issue.origin)}`;
4839
4891
  default:
4840
4892
  return `Entrada inv\xE1lida`;
4841
4893
  }
@@ -4843,11 +4895,11 @@ const error$w = () => {
4843
4895
  };
4844
4896
  function es() {
4845
4897
  return {
4846
- localeError: error$w()
4898
+ localeError: error$y()
4847
4899
  };
4848
4900
  }
4849
4901
 
4850
- const error$v = () => {
4902
+ const error$x = () => {
4851
4903
  const Sizable = {
4852
4904
  string: { unit: "\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" },
4853
4905
  file: { unit: "\u0628\u0627\u06CC\u062A", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" },
@@ -4965,11 +5017,11 @@ const error$v = () => {
4965
5017
  };
4966
5018
  function fa() {
4967
5019
  return {
4968
- localeError: error$v()
5020
+ localeError: error$x()
4969
5021
  };
4970
5022
  }
4971
5023
 
4972
- const error$u = () => {
5024
+ const error$w = () => {
4973
5025
  const Sizable = {
4974
5026
  string: { unit: "merkki\xE4", subject: "merkkijonon" },
4975
5027
  file: { unit: "tavua", subject: "tiedoston" },
@@ -5087,11 +5139,11 @@ const error$u = () => {
5087
5139
  };
5088
5140
  function fi() {
5089
5141
  return {
5090
- localeError: error$u()
5142
+ localeError: error$w()
5091
5143
  };
5092
5144
  }
5093
5145
 
5094
- const error$t = () => {
5146
+ const error$v = () => {
5095
5147
  const Sizable = {
5096
5148
  string: { unit: "caract\xE8res", verb: "avoir" },
5097
5149
  file: { unit: "octets", verb: "avoir" },
@@ -5203,11 +5255,11 @@ const error$t = () => {
5203
5255
  };
5204
5256
  function fr() {
5205
5257
  return {
5206
- localeError: error$t()
5258
+ localeError: error$v()
5207
5259
  };
5208
5260
  }
5209
5261
 
5210
- const error$s = () => {
5262
+ const error$u = () => {
5211
5263
  const Sizable = {
5212
5264
  string: { unit: "caract\xE8res", verb: "avoir" },
5213
5265
  file: { unit: "octets", verb: "avoir" },
@@ -5320,11 +5372,11 @@ const error$s = () => {
5320
5372
  };
5321
5373
  function frCA() {
5322
5374
  return {
5323
- localeError: error$s()
5375
+ localeError: error$u()
5324
5376
  };
5325
5377
  }
5326
5378
 
5327
- const error$r = () => {
5379
+ const error$t = () => {
5328
5380
  const Sizable = {
5329
5381
  string: { unit: "\u05D0\u05D5\u05EA\u05D9\u05D5\u05EA", verb: "\u05DC\u05DB\u05DC\u05D5\u05DC" },
5330
5382
  file: { unit: "\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD", verb: "\u05DC\u05DB\u05DC\u05D5\u05DC" },
@@ -5437,11 +5489,11 @@ const error$r = () => {
5437
5489
  };
5438
5490
  function he() {
5439
5491
  return {
5440
- localeError: error$r()
5492
+ localeError: error$t()
5441
5493
  };
5442
5494
  }
5443
5495
 
5444
- const error$q = () => {
5496
+ const error$s = () => {
5445
5497
  const Sizable = {
5446
5498
  string: { unit: "karakter", verb: "legyen" },
5447
5499
  file: { unit: "byte", verb: "legyen" },
@@ -5554,11 +5606,11 @@ const error$q = () => {
5554
5606
  };
5555
5607
  function hu() {
5556
5608
  return {
5557
- localeError: error$q()
5609
+ localeError: error$s()
5558
5610
  };
5559
5611
  }
5560
5612
 
5561
- const error$p = () => {
5613
+ const error$r = () => {
5562
5614
  const Sizable = {
5563
5615
  string: { unit: "karakter", verb: "memiliki" },
5564
5616
  file: { unit: "byte", verb: "memiliki" },
@@ -5670,11 +5722,11 @@ const error$p = () => {
5670
5722
  };
5671
5723
  function id() {
5672
5724
  return {
5673
- localeError: error$p()
5725
+ localeError: error$r()
5674
5726
  };
5675
5727
  }
5676
5728
 
5677
- const parsedType$1 = (data) => {
5729
+ const parsedType$3 = (data) => {
5678
5730
  const t = typeof data;
5679
5731
  switch (t) {
5680
5732
  case "number": {
@@ -5694,7 +5746,7 @@ const parsedType$1 = (data) => {
5694
5746
  }
5695
5747
  return t;
5696
5748
  };
5697
- const error$o = () => {
5749
+ const error$q = () => {
5698
5750
  const Sizable = {
5699
5751
  string: { unit: "stafi", verb: "a\xF0 hafa" },
5700
5752
  file: { unit: "b\xE6ti", verb: "a\xF0 hafa" },
@@ -5737,7 +5789,7 @@ const error$o = () => {
5737
5789
  return (issue) => {
5738
5790
  switch (issue.code) {
5739
5791
  case "invalid_type":
5740
- return `Rangt gildi: \xDE\xFA sl\xF3st inn ${parsedType$1(issue.input)} \xFEar sem \xE1 a\xF0 vera ${issue.expected}`;
5792
+ return `Rangt gildi: \xDE\xFA sl\xF3st inn ${parsedType$3(issue.input)} \xFEar sem \xE1 a\xF0 vera ${issue.expected}`;
5741
5793
  case "invalid_value":
5742
5794
  if (issue.values.length === 1)
5743
5795
  return `Rangt gildi: gert r\xE1\xF0 fyrir ${stringifyPrimitive(issue.values[0])}`;
@@ -5787,11 +5839,11 @@ const error$o = () => {
5787
5839
  };
5788
5840
  function is() {
5789
5841
  return {
5790
- localeError: error$o()
5842
+ localeError: error$q()
5791
5843
  };
5792
5844
  }
5793
5845
 
5794
- const error$n = () => {
5846
+ const error$p = () => {
5795
5847
  const Sizable = {
5796
5848
  string: { unit: "caratteri", verb: "avere" },
5797
5849
  file: { unit: "byte", verb: "avere" },
@@ -5904,11 +5956,11 @@ const error$n = () => {
5904
5956
  };
5905
5957
  function it() {
5906
5958
  return {
5907
- localeError: error$n()
5959
+ localeError: error$p()
5908
5960
  };
5909
5961
  }
5910
5962
 
5911
- const error$m = () => {
5963
+ const error$o = () => {
5912
5964
  const Sizable = {
5913
5965
  string: { unit: "\u6587\u5B57", verb: "\u3067\u3042\u308B" },
5914
5966
  file: { unit: "\u30D0\u30A4\u30C8", verb: "\u3067\u3042\u308B" },
@@ -6019,11 +6071,136 @@ const error$m = () => {
6019
6071
  };
6020
6072
  function ja() {
6021
6073
  return {
6022
- localeError: error$m()
6074
+ localeError: error$o()
6023
6075
  };
6024
6076
  }
6025
6077
 
6026
- const error$l = () => {
6078
+ const parsedType$2 = (data) => {
6079
+ const t = typeof data;
6080
+ switch (t) {
6081
+ case "number": {
6082
+ return Number.isNaN(data) ? "NaN" : "\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8";
6083
+ }
6084
+ case "object": {
6085
+ if (Array.isArray(data)) {
6086
+ return "\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8";
6087
+ }
6088
+ if (data === null) {
6089
+ return "null";
6090
+ }
6091
+ if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {
6092
+ return data.constructor.name;
6093
+ }
6094
+ }
6095
+ }
6096
+ const typeMap = {
6097
+ string: "\u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",
6098
+ boolean: "\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8",
6099
+ undefined: "undefined",
6100
+ bigint: "bigint",
6101
+ symbol: "symbol",
6102
+ function: "\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0"
6103
+ };
6104
+ return typeMap[t] ?? t;
6105
+ };
6106
+ const error$n = () => {
6107
+ const Sizable = {
6108
+ string: { unit: "\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" },
6109
+ file: { unit: "\u10D1\u10D0\u10D8\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" },
6110
+ array: { unit: "\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" },
6111
+ set: { unit: "\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" }
6112
+ };
6113
+ function getSizing(origin) {
6114
+ return Sizable[origin] ?? null;
6115
+ }
6116
+ const Nouns = {
6117
+ regex: "\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0",
6118
+ email: "\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",
6119
+ url: "URL",
6120
+ emoji: "\u10D4\u10DB\u10DD\u10EF\u10D8",
6121
+ uuid: "UUID",
6122
+ uuidv4: "UUIDv4",
6123
+ uuidv6: "UUIDv6",
6124
+ nanoid: "nanoid",
6125
+ guid: "GUID",
6126
+ cuid: "cuid",
6127
+ cuid2: "cuid2",
6128
+ ulid: "ULID",
6129
+ xid: "XID",
6130
+ ksuid: "KSUID",
6131
+ datetime: "\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD",
6132
+ date: "\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8",
6133
+ time: "\u10D3\u10E0\u10DD",
6134
+ duration: "\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0",
6135
+ ipv4: "IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",
6136
+ ipv6: "IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",
6137
+ cidrv4: "IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",
6138
+ cidrv6: "IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",
6139
+ base64: "base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",
6140
+ base64url: "base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",
6141
+ json_string: "JSON \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",
6142
+ e164: "E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8",
6143
+ jwt: "JWT",
6144
+ template_literal: "\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"
6145
+ };
6146
+ return (issue) => {
6147
+ switch (issue.code) {
6148
+ case "invalid_type":
6149
+ return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${parsedType$2(issue.input)}`;
6150
+ case "invalid_value":
6151
+ if (issue.values.length === 1)
6152
+ return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${stringifyPrimitive(issue.values[0])}`;
6153
+ return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${joinValues(issue.values, "|")}-\u10D3\u10D0\u10DC`;
6154
+ case "too_big": {
6155
+ const adj = issue.inclusive ? "<=" : "<";
6156
+ const sizing = getSizing(issue.origin);
6157
+ if (sizing)
6158
+ return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin ?? "\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit}`;
6159
+ return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin ?? "\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${adj}${issue.maximum.toString()}`;
6160
+ }
6161
+ case "too_small": {
6162
+ const adj = issue.inclusive ? ">=" : ">";
6163
+ const sizing = getSizing(issue.origin);
6164
+ if (sizing) {
6165
+ return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;
6166
+ }
6167
+ return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin} \u10D8\u10E7\u10DD\u10E1 ${adj}${issue.minimum.toString()}`;
6168
+ }
6169
+ case "invalid_format": {
6170
+ const _issue = issue;
6171
+ if (_issue.format === "starts_with") {
6172
+ 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`;
6173
+ }
6174
+ if (_issue.format === "ends_with")
6175
+ 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`;
6176
+ if (_issue.format === "includes")
6177
+ 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`;
6178
+ if (_issue.format === "regex")
6179
+ 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}`;
6180
+ return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${Nouns[_issue.format] ?? issue.format}`;
6181
+ }
6182
+ case "not_multiple_of":
6183
+ return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${issue.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;
6184
+ case "unrecognized_keys":
6185
+ return `\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${issue.keys.length > 1 ? "\u10D4\u10D1\u10D8" : "\u10D8"}: ${joinValues(issue.keys, ", ")}`;
6186
+ case "invalid_key":
6187
+ return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${issue.origin}-\u10E8\u10D8`;
6188
+ case "invalid_union":
6189
+ return "\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0";
6190
+ case "invalid_element":
6191
+ return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${issue.origin}-\u10E8\u10D8`;
6192
+ default:
6193
+ return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0`;
6194
+ }
6195
+ };
6196
+ };
6197
+ function ka() {
6198
+ return {
6199
+ localeError: error$n()
6200
+ };
6201
+ }
6202
+
6203
+ const error$m = () => {
6027
6204
  const Sizable = {
6028
6205
  string: { unit: "\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" },
6029
6206
  file: { unit: "\u1794\u17C3", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" },
@@ -6134,13 +6311,17 @@ const error$l = () => {
6134
6311
  }
6135
6312
  };
6136
6313
  };
6137
- function kh() {
6314
+ function km() {
6138
6315
  return {
6139
- localeError: error$l()
6316
+ localeError: error$m()
6140
6317
  };
6141
6318
  }
6142
6319
 
6143
- const error$k = () => {
6320
+ function kh() {
6321
+ return km();
6322
+ }
6323
+
6324
+ const error$l = () => {
6144
6325
  const Sizable = {
6145
6326
  string: { unit: "\uBB38\uC790", verb: "to have" },
6146
6327
  file: { unit: "\uBC14\uC774\uD2B8", verb: "to have" },
@@ -6256,6 +6437,236 @@ const error$k = () => {
6256
6437
  };
6257
6438
  };
6258
6439
  function ko() {
6440
+ return {
6441
+ localeError: error$l()
6442
+ };
6443
+ }
6444
+
6445
+ const parsedType$1 = (data) => {
6446
+ const t = typeof data;
6447
+ return parsedTypeFromType(t, data);
6448
+ };
6449
+ const parsedTypeFromType = (t, data = void 0) => {
6450
+ switch (t) {
6451
+ case "number": {
6452
+ return Number.isNaN(data) ? "NaN" : "skai\u010Dius";
6453
+ }
6454
+ case "bigint": {
6455
+ return "sveikasis skai\u010Dius";
6456
+ }
6457
+ case "string": {
6458
+ return "eilut\u0117";
6459
+ }
6460
+ case "boolean": {
6461
+ return "login\u0117 reik\u0161m\u0117";
6462
+ }
6463
+ case "undefined":
6464
+ case "void": {
6465
+ return "neapibr\u0117\u017Eta reik\u0161m\u0117";
6466
+ }
6467
+ case "function": {
6468
+ return "funkcija";
6469
+ }
6470
+ case "symbol": {
6471
+ return "simbolis";
6472
+ }
6473
+ case "object": {
6474
+ if (data === void 0)
6475
+ return "ne\u017Einomas objektas";
6476
+ if (data === null)
6477
+ return "nulin\u0117 reik\u0161m\u0117";
6478
+ if (Array.isArray(data))
6479
+ return "masyvas";
6480
+ if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {
6481
+ return data.constructor.name;
6482
+ }
6483
+ return "objektas";
6484
+ }
6485
+ //Zod types below
6486
+ case "null": {
6487
+ return "nulin\u0117 reik\u0161m\u0117";
6488
+ }
6489
+ }
6490
+ return t;
6491
+ };
6492
+ const capitalizeFirstCharacter = (text) => {
6493
+ return text.charAt(0).toUpperCase() + text.slice(1);
6494
+ };
6495
+ function getUnitTypeFromNumber(number) {
6496
+ const abs = Math.abs(number);
6497
+ const last = abs % 10;
6498
+ const last2 = abs % 100;
6499
+ if (last2 >= 11 && last2 <= 19 || last === 0)
6500
+ return "many";
6501
+ if (last === 1)
6502
+ return "one";
6503
+ return "few";
6504
+ }
6505
+ const error$k = () => {
6506
+ const Sizable = {
6507
+ string: {
6508
+ unit: {
6509
+ one: "simbolis",
6510
+ few: "simboliai",
6511
+ many: "simboli\u0173"
6512
+ },
6513
+ verb: {
6514
+ smaller: {
6515
+ inclusive: "turi b\u016Bti ne ilgesn\u0117 kaip",
6516
+ notInclusive: "turi b\u016Bti trumpesn\u0117 kaip"
6517
+ },
6518
+ bigger: {
6519
+ inclusive: "turi b\u016Bti ne trumpesn\u0117 kaip",
6520
+ notInclusive: "turi b\u016Bti ilgesn\u0117 kaip"
6521
+ }
6522
+ }
6523
+ },
6524
+ file: {
6525
+ unit: {
6526
+ one: "baitas",
6527
+ few: "baitai",
6528
+ many: "bait\u0173"
6529
+ },
6530
+ verb: {
6531
+ smaller: {
6532
+ inclusive: "turi b\u016Bti ne didesnis kaip",
6533
+ notInclusive: "turi b\u016Bti ma\u017Eesnis kaip"
6534
+ },
6535
+ bigger: {
6536
+ inclusive: "turi b\u016Bti ne ma\u017Eesnis kaip",
6537
+ notInclusive: "turi b\u016Bti didesnis kaip"
6538
+ }
6539
+ }
6540
+ },
6541
+ array: {
6542
+ unit: {
6543
+ one: "element\u0105",
6544
+ few: "elementus",
6545
+ many: "element\u0173"
6546
+ },
6547
+ verb: {
6548
+ smaller: {
6549
+ inclusive: "turi tur\u0117ti ne daugiau kaip",
6550
+ notInclusive: "turi tur\u0117ti ma\u017Eiau kaip"
6551
+ },
6552
+ bigger: {
6553
+ inclusive: "turi tur\u0117ti ne ma\u017Eiau kaip",
6554
+ notInclusive: "turi tur\u0117ti daugiau kaip"
6555
+ }
6556
+ }
6557
+ },
6558
+ set: {
6559
+ unit: {
6560
+ one: "element\u0105",
6561
+ few: "elementus",
6562
+ many: "element\u0173"
6563
+ },
6564
+ verb: {
6565
+ smaller: {
6566
+ inclusive: "turi tur\u0117ti ne daugiau kaip",
6567
+ notInclusive: "turi tur\u0117ti ma\u017Eiau kaip"
6568
+ },
6569
+ bigger: {
6570
+ inclusive: "turi tur\u0117ti ne ma\u017Eiau kaip",
6571
+ notInclusive: "turi tur\u0117ti daugiau kaip"
6572
+ }
6573
+ }
6574
+ }
6575
+ };
6576
+ function getSizing(origin, unitType, inclusive, targetShouldBe) {
6577
+ const result = Sizable[origin] ?? null;
6578
+ if (result === null)
6579
+ return result;
6580
+ return {
6581
+ unit: result.unit[unitType],
6582
+ verb: result.verb[targetShouldBe][inclusive ? "inclusive" : "notInclusive"]
6583
+ };
6584
+ }
6585
+ const Nouns = {
6586
+ regex: "\u012Fvestis",
6587
+ email: "el. pa\u0161to adresas",
6588
+ url: "URL",
6589
+ emoji: "jaustukas",
6590
+ uuid: "UUID",
6591
+ uuidv4: "UUIDv4",
6592
+ uuidv6: "UUIDv6",
6593
+ nanoid: "nanoid",
6594
+ guid: "GUID",
6595
+ cuid: "cuid",
6596
+ cuid2: "cuid2",
6597
+ ulid: "ULID",
6598
+ xid: "XID",
6599
+ ksuid: "KSUID",
6600
+ datetime: "ISO data ir laikas",
6601
+ date: "ISO data",
6602
+ time: "ISO laikas",
6603
+ duration: "ISO trukm\u0117",
6604
+ ipv4: "IPv4 adresas",
6605
+ ipv6: "IPv6 adresas",
6606
+ cidrv4: "IPv4 tinklo prefiksas (CIDR)",
6607
+ cidrv6: "IPv6 tinklo prefiksas (CIDR)",
6608
+ base64: "base64 u\u017Ekoduota eilut\u0117",
6609
+ base64url: "base64url u\u017Ekoduota eilut\u0117",
6610
+ json_string: "JSON eilut\u0117",
6611
+ e164: "E.164 numeris",
6612
+ jwt: "JWT",
6613
+ template_literal: "\u012Fvestis"
6614
+ };
6615
+ return (issue) => {
6616
+ switch (issue.code) {
6617
+ case "invalid_type":
6618
+ return `Gautas tipas ${parsedType$1(issue.input)}, o tik\u0117tasi - ${parsedTypeFromType(issue.expected)}`;
6619
+ case "invalid_value":
6620
+ if (issue.values.length === 1)
6621
+ return `Privalo b\u016Bti ${stringifyPrimitive(issue.values[0])}`;
6622
+ return `Privalo b\u016Bti vienas i\u0161 ${joinValues(issue.values, "|")} pasirinkim\u0173`;
6623
+ case "too_big": {
6624
+ const origin = parsedTypeFromType(issue.origin);
6625
+ const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.maximum)), issue.inclusive ?? false, "smaller");
6626
+ if (sizing?.verb)
6627
+ return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reik\u0161m\u0117")} ${sizing.verb} ${issue.maximum.toString()} ${sizing.unit ?? "element\u0173"}`;
6628
+ const adj = issue.inclusive ? "ne didesnis kaip" : "ma\u017Eesnis kaip";
6629
+ return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reik\u0161m\u0117")} turi b\u016Bti ${adj} ${issue.maximum.toString()} ${sizing?.unit}`;
6630
+ }
6631
+ case "too_small": {
6632
+ const origin = parsedTypeFromType(issue.origin);
6633
+ const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.minimum)), issue.inclusive ?? false, "bigger");
6634
+ if (sizing?.verb)
6635
+ return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reik\u0161m\u0117")} ${sizing.verb} ${issue.minimum.toString()} ${sizing.unit ?? "element\u0173"}`;
6636
+ const adj = issue.inclusive ? "ne ma\u017Eesnis kaip" : "didesnis kaip";
6637
+ return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reik\u0161m\u0117")} turi b\u016Bti ${adj} ${issue.minimum.toString()} ${sizing?.unit}`;
6638
+ }
6639
+ case "invalid_format": {
6640
+ const _issue = issue;
6641
+ if (_issue.format === "starts_with") {
6642
+ return `Eilut\u0117 privalo prasid\u0117ti "${_issue.prefix}"`;
6643
+ }
6644
+ if (_issue.format === "ends_with")
6645
+ return `Eilut\u0117 privalo pasibaigti "${_issue.suffix}"`;
6646
+ if (_issue.format === "includes")
6647
+ return `Eilut\u0117 privalo \u012Ftraukti "${_issue.includes}"`;
6648
+ if (_issue.format === "regex")
6649
+ return `Eilut\u0117 privalo atitikti ${_issue.pattern}`;
6650
+ return `Neteisingas ${Nouns[_issue.format] ?? issue.format}`;
6651
+ }
6652
+ case "not_multiple_of":
6653
+ return `Skai\u010Dius privalo b\u016Bti ${issue.divisor} kartotinis.`;
6654
+ case "unrecognized_keys":
6655
+ return `Neatpa\u017Eint${issue.keys.length > 1 ? "i" : "as"} rakt${issue.keys.length > 1 ? "ai" : "as"}: ${joinValues(issue.keys, ", ")}`;
6656
+ case "invalid_key":
6657
+ return "Rastas klaidingas raktas";
6658
+ case "invalid_union":
6659
+ return "Klaidinga \u012Fvestis";
6660
+ case "invalid_element": {
6661
+ const origin = parsedTypeFromType(issue.origin);
6662
+ return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`;
6663
+ }
6664
+ default:
6665
+ return "Klaidinga \u012Fvestis";
6666
+ }
6667
+ };
6668
+ };
6669
+ function lt() {
6259
6670
  return {
6260
6671
  localeError: error$k()
6261
6672
  };
@@ -8059,12 +8470,16 @@ const error$5 = () => {
8059
8470
  }
8060
8471
  };
8061
8472
  };
8062
- function ua() {
8473
+ function uk() {
8063
8474
  return {
8064
8475
  localeError: error$5()
8065
8476
  };
8066
8477
  }
8067
8478
 
8479
+ function ua() {
8480
+ return uk();
8481
+ }
8482
+
8068
8483
  const error$4 = () => {
8069
8484
  const Sizable = {
8070
8485
  string: { unit: "\u062D\u0631\u0648\u0641", verb: "\u06C1\u0648\u0646\u0627" },
@@ -8668,8 +9083,11 @@ var index$1 = /*#__PURE__*/Object.freeze({
8668
9083
  is: is,
8669
9084
  it: it,
8670
9085
  ja: ja,
9086
+ ka: ka,
8671
9087
  kh: kh,
9088
+ km: km,
8672
9089
  ko: ko,
9090
+ lt: lt,
8673
9091
  mk: mk,
8674
9092
  ms: ms,
8675
9093
  nl: nl,
@@ -8685,6 +9103,7 @@ var index$1 = /*#__PURE__*/Object.freeze({
8685
9103
  th: th,
8686
9104
  tr: tr,
8687
9105
  ua: ua,
9106
+ uk: uk,
8688
9107
  ur: ur,
8689
9108
  vi: vi,
8690
9109
  yo: yo,
@@ -8696,7 +9115,7 @@ const $output = Symbol("ZodOutput");
8696
9115
  const $input = Symbol("ZodInput");
8697
9116
  class $ZodRegistry {
8698
9117
  constructor() {
8699
- this._map = /* @__PURE__ */ new Map();
9118
+ this._map = /* @__PURE__ */ new WeakMap();
8700
9119
  this._idmap = /* @__PURE__ */ new Map();
8701
9120
  }
8702
9121
  add(schema, ..._meta) {
@@ -8711,7 +9130,7 @@ class $ZodRegistry {
8711
9130
  return this;
8712
9131
  }
8713
9132
  clear() {
8714
- this._map = /* @__PURE__ */ new Map();
9133
+ this._map = /* @__PURE__ */ new WeakMap();
8715
9134
  this._idmap = /* @__PURE__ */ new Map();
8716
9135
  return this;
8717
9136
  }
@@ -10799,16 +11218,12 @@ const ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
10799
11218
  inst.type = def.type;
10800
11219
  Object.defineProperty(inst, "_def", { value: def });
10801
11220
  inst.check = (...checks2) => {
10802
- return inst.clone(
10803
- {
10804
- ...def,
10805
- checks: [
10806
- ...def.checks ?? [],
10807
- ...checks2.map((ch) => typeof ch === "function" ? { _zod: { check: ch, def: { check: "custom" }, onattach: [] } } : ch)
10808
- ]
10809
- }
10810
- // { parent: true }
10811
- );
11221
+ return inst.clone(mergeDefs(def, {
11222
+ checks: [
11223
+ ...def.checks ?? [],
11224
+ ...checks2.map((ch) => typeof ch === "function" ? { _zod: { check: ch, def: { check: "custom" }, onattach: [] } } : ch)
11225
+ ]
11226
+ }));
10812
11227
  };
10813
11228
  inst.clone = (def2, params) => clone(inst, def2, params);
10814
11229
  inst.brand = () => inst;
@@ -11267,7 +11682,9 @@ function keyof(schema) {
11267
11682
  const ZodObject = /* @__PURE__ */ $constructor("ZodObject", (inst, def) => {
11268
11683
  $ZodObjectJIT.init(inst, def);
11269
11684
  ZodType.init(inst, def);
11270
- defineLazy(inst, "shape", () => def.shape);
11685
+ defineLazy(inst, "shape", () => {
11686
+ return def.shape;
11687
+ });
11271
11688
  inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));
11272
11689
  inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall });
11273
11690
  inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });
@@ -11289,10 +11706,7 @@ const ZodObject = /* @__PURE__ */ $constructor("ZodObject", (inst, def) => {
11289
11706
  function object(shape, params) {
11290
11707
  const def = {
11291
11708
  type: "object",
11292
- get shape() {
11293
- assignProp(this, "shape", shape ? objectClone(shape) : {});
11294
- return this.shape;
11295
- },
11709
+ shape: shape ?? {},
11296
11710
  ...normalizeParams(params)
11297
11711
  };
11298
11712
  return new ZodObject(def);
@@ -11300,10 +11714,7 @@ function object(shape, params) {
11300
11714
  function strictObject(shape, params) {
11301
11715
  return new ZodObject({
11302
11716
  type: "object",
11303
- get shape() {
11304
- assignProp(this, "shape", objectClone(shape));
11305
- return this.shape;
11306
- },
11717
+ shape,
11307
11718
  catchall: never(),
11308
11719
  ...normalizeParams(params)
11309
11720
  });
@@ -11311,10 +11722,7 @@ function strictObject(shape, params) {
11311
11722
  function looseObject(shape, params) {
11312
11723
  return new ZodObject({
11313
11724
  type: "object",
11314
- get shape() {
11315
- assignProp(this, "shape", objectClone(shape));
11316
- return this.shape;
11317
- },
11725
+ shape,
11318
11726
  catchall: unknown(),
11319
11727
  ...normalizeParams(params)
11320
11728
  });
@@ -5,7 +5,6 @@
5
5
  * @generated by @rexeus/typeweaver
6
6
  */
7
7
 
8
- import { z } from "zod";
9
8
  import type {
10
9
  HttpBodySchema,
11
10
  HttpHeaderSchema,
@@ -94,9 +93,7 @@ export abstract class ResponseValidator
94
93
  if (headerSchema) {
95
94
  const coercedHeader = this.coerceHeaderToSchema(
96
95
  response.header,
97
- headerSchema instanceof z.ZodObject
98
- ? headerSchema.shape
99
- : headerSchema.unwrap().shape
96
+ this.getSchema(headerSchema)
100
97
  );
101
98
  const validateHeaderResult = headerSchema.safeParse(
102
99
  coercedHeader
@@ -5,7 +5,12 @@
5
5
  * @generated by @rexeus/typeweaver
6
6
  */
7
7
 
8
+ import z from "zod";
8
9
  import { $ZodArray, $ZodOptional } from "zod/v4/core";
10
+ import type {
11
+ HttpHeaderSchema,
12
+ HttpQuerySchema,
13
+ } from "@rexeus/typeweaver-core";
9
14
  import type { $ZodShape } from "zod/v4/core";
10
15
 
11
16
  type SchemaInfo = { readonly originalKey: string; readonly isArray: boolean };
@@ -52,6 +57,29 @@ export abstract class Validator {
52
57
  return schemaMap;
53
58
  }
54
59
 
60
+ /**
61
+ *
62
+ * Extracts a Zod schema shape from header or query schemas.
63
+ * This is used to support schema coercion and analysis.
64
+ *
65
+ * @param headerSchema
66
+ * @returns
67
+ */
68
+ protected getSchema(
69
+ headerSchema: HttpHeaderSchema | HttpQuerySchema
70
+ ): $ZodShape {
71
+ if (headerSchema instanceof z.ZodObject) {
72
+ return headerSchema.shape;
73
+ }
74
+ if (headerSchema instanceof z.ZodOptional) {
75
+ const unwrapped = headerSchema.unwrap();
76
+ if (unwrapped instanceof z.ZodObject) {
77
+ return unwrapped.shape;
78
+ }
79
+ }
80
+ return {};
81
+ }
82
+
55
83
  /**
56
84
  * Builds a schema map by analyzing the Zod shape structure.
57
85
  * Extracts type information for each field to support proper coercion.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rexeus/typeweaver-types",
3
- "version": "0.1.2",
4
- "description": "TypeScript type and Zod validator generators for typeweaver APIs",
3
+ "version": "0.2.1",
4
+ "description": "Generates request and response types plus validators aligned with your API contract. Powered by Typeweaver 🧵✨",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -39,17 +39,17 @@
39
39
  },
40
40
  "homepage": "https://github.com/rexeus/typeweaver#readme",
41
41
  "peerDependencies": {
42
- "@rexeus/typeweaver-core": "^0.1.2",
43
- "@rexeus/typeweaver-gen": "^0.1.2"
42
+ "@rexeus/typeweaver-core": "^0.2.1",
43
+ "@rexeus/typeweaver-gen": "^0.2.1"
44
44
  },
45
45
  "devDependencies": {
46
46
  "test-utils": "file:../test-utils",
47
- "@rexeus/typeweaver-core": "^0.1.2",
48
- "@rexeus/typeweaver-gen": "^0.1.2"
47
+ "@rexeus/typeweaver-gen": "^0.2.1",
48
+ "@rexeus/typeweaver-core": "^0.2.1"
49
49
  },
50
50
  "dependencies": {
51
51
  "case": "^1.6.3",
52
- "@rexeus/typeweaver-zod-to-ts": "^0.1.2"
52
+ "@rexeus/typeweaver-zod-to-ts": "^0.2.1"
53
53
  },
54
54
  "scripts": {
55
55
  "typecheck": "tsc --noEmit",