@duplojs/utils 1.6.2 → 1.6.3

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 (121) hide show
  1. package/dist/array/types/createTuple.d.ts +1 -1
  2. package/dist/clean/constraint/base.cjs +7 -0
  3. package/dist/clean/constraint/base.d.ts +26 -6
  4. package/dist/clean/constraint/base.mjs +7 -0
  5. package/dist/clean/constraint/cast.cjs +18 -0
  6. package/dist/clean/constraint/cast.d.ts +29 -0
  7. package/dist/clean/constraint/cast.mjs +16 -0
  8. package/dist/clean/constraint/defaultConstraint/number.cjs +2 -10
  9. package/dist/clean/constraint/defaultConstraint/number.d.ts +12 -37
  10. package/dist/clean/constraint/defaultConstraint/number.mjs +3 -10
  11. package/dist/clean/constraint/defaultConstraint/string.d.ts +9 -5
  12. package/dist/clean/constraint/index.d.ts +1 -0
  13. package/dist/clean/constraint/set.cjs +7 -1
  14. package/dist/clean/constraint/set.d.ts +25 -5
  15. package/dist/clean/constraint/set.mjs +7 -1
  16. package/dist/clean/entity/index.cjs +14 -4
  17. package/dist/clean/entity/index.d.ts +11 -1
  18. package/dist/clean/entity/index.mjs +15 -6
  19. package/dist/clean/index.cjs +5 -1
  20. package/dist/clean/index.d.ts +1 -0
  21. package/dist/clean/index.mjs +4 -2
  22. package/dist/clean/newType.cjs +6 -1
  23. package/dist/clean/newType.d.ts +20 -5
  24. package/dist/clean/newType.mjs +6 -1
  25. package/dist/clean/primitive/operations/equal.cjs +3 -0
  26. package/dist/clean/primitive/operations/equal.d.ts +2 -2
  27. package/dist/clean/primitive/operations/equal.mjs +3 -0
  28. package/dist/clean/toMapDataParser.cjs +52 -0
  29. package/dist/clean/toMapDataParser.d.ts +53 -0
  30. package/dist/clean/toMapDataParser.mjs +50 -0
  31. package/dist/common/index.d.ts +1 -0
  32. package/dist/common/printer.cjs +73 -0
  33. package/dist/common/printer.d.ts +139 -0
  34. package/dist/common/printer.mjs +73 -0
  35. package/dist/common/types/and.d.ts +1 -2
  36. package/dist/common/types/or.d.ts +1 -2
  37. package/dist/dataParser/base.cjs +12 -35
  38. package/dist/dataParser/base.d.ts +6 -9
  39. package/dist/dataParser/base.mjs +8 -30
  40. package/dist/dataParser/error.cjs +39 -21
  41. package/dist/dataParser/error.d.ts +19 -19
  42. package/dist/dataParser/error.mjs +37 -18
  43. package/dist/dataParser/extended/index.cjs +3 -4
  44. package/dist/dataParser/extended/index.mjs +1 -1
  45. package/dist/dataParser/identifier.d.ts +6 -6
  46. package/dist/dataParser/index.cjs +3 -6
  47. package/dist/dataParser/index.mjs +2 -2
  48. package/dist/dataParser/parsers/array/checkers/max.cjs +3 -6
  49. package/dist/dataParser/parsers/array/checkers/max.mjs +4 -7
  50. package/dist/dataParser/parsers/array/checkers/min.cjs +3 -6
  51. package/dist/dataParser/parsers/array/checkers/min.mjs +4 -7
  52. package/dist/dataParser/parsers/array/index.cjs +8 -8
  53. package/dist/dataParser/parsers/array/index.mjs +4 -4
  54. package/dist/dataParser/parsers/bigint/checkers/max.cjs +2 -2
  55. package/dist/dataParser/parsers/bigint/checkers/max.mjs +3 -3
  56. package/dist/dataParser/parsers/bigint/checkers/min.cjs +2 -2
  57. package/dist/dataParser/parsers/bigint/checkers/min.mjs +3 -3
  58. package/dist/dataParser/parsers/bigint/index.cjs +2 -2
  59. package/dist/dataParser/parsers/bigint/index.mjs +3 -3
  60. package/dist/dataParser/parsers/boolean.cjs +3 -3
  61. package/dist/dataParser/parsers/boolean.mjs +4 -4
  62. package/dist/dataParser/parsers/date.cjs +4 -4
  63. package/dist/dataParser/parsers/date.mjs +5 -5
  64. package/dist/dataParser/parsers/empty.cjs +2 -2
  65. package/dist/dataParser/parsers/empty.mjs +3 -3
  66. package/dist/dataParser/parsers/literal.cjs +2 -2
  67. package/dist/dataParser/parsers/literal.mjs +3 -3
  68. package/dist/dataParser/parsers/nil.cjs +2 -2
  69. package/dist/dataParser/parsers/nil.mjs +3 -3
  70. package/dist/dataParser/parsers/number/checkers/int.cjs +2 -2
  71. package/dist/dataParser/parsers/number/checkers/int.mjs +3 -3
  72. package/dist/dataParser/parsers/number/checkers/max.cjs +3 -1
  73. package/dist/dataParser/parsers/number/checkers/max.mjs +4 -2
  74. package/dist/dataParser/parsers/number/checkers/min.cjs +3 -1
  75. package/dist/dataParser/parsers/number/checkers/min.mjs +4 -2
  76. package/dist/dataParser/parsers/number/index.cjs +2 -2
  77. package/dist/dataParser/parsers/number/index.mjs +3 -3
  78. package/dist/dataParser/parsers/object/index.cjs +8 -8
  79. package/dist/dataParser/parsers/object/index.mjs +4 -4
  80. package/dist/dataParser/parsers/pipe.cjs +25 -10
  81. package/dist/dataParser/parsers/pipe.mjs +22 -7
  82. package/dist/dataParser/parsers/record/index.cjs +18 -16
  83. package/dist/dataParser/parsers/record/index.mjs +8 -6
  84. package/dist/dataParser/parsers/recover.cjs +7 -6
  85. package/dist/dataParser/parsers/recover.mjs +2 -1
  86. package/dist/dataParser/parsers/refine.cjs +3 -1
  87. package/dist/dataParser/parsers/refine.mjs +4 -2
  88. package/dist/dataParser/parsers/string/checkers/email.cjs +2 -2
  89. package/dist/dataParser/parsers/string/checkers/email.mjs +3 -3
  90. package/dist/dataParser/parsers/string/checkers/max.cjs +3 -1
  91. package/dist/dataParser/parsers/string/checkers/max.mjs +4 -2
  92. package/dist/dataParser/parsers/string/checkers/min.cjs +3 -1
  93. package/dist/dataParser/parsers/string/checkers/min.mjs +4 -2
  94. package/dist/dataParser/parsers/string/checkers/regex.cjs +2 -2
  95. package/dist/dataParser/parsers/string/checkers/regex.mjs +3 -3
  96. package/dist/dataParser/parsers/string/checkers/url.cjs +4 -4
  97. package/dist/dataParser/parsers/string/checkers/url.mjs +5 -5
  98. package/dist/dataParser/parsers/string/index.cjs +2 -2
  99. package/dist/dataParser/parsers/string/index.mjs +3 -3
  100. package/dist/dataParser/parsers/templateLiteral/index.cjs +2 -2
  101. package/dist/dataParser/parsers/templateLiteral/index.mjs +3 -3
  102. package/dist/dataParser/parsers/time/checkers/max.cjs +3 -1
  103. package/dist/dataParser/parsers/time/checkers/max.mjs +4 -2
  104. package/dist/dataParser/parsers/time/checkers/min.cjs +3 -1
  105. package/dist/dataParser/parsers/time/checkers/min.mjs +4 -2
  106. package/dist/dataParser/parsers/time/index.cjs +4 -4
  107. package/dist/dataParser/parsers/time/index.mjs +5 -5
  108. package/dist/dataParser/parsers/transform.cjs +6 -6
  109. package/dist/dataParser/parsers/transform.d.ts +2 -2
  110. package/dist/dataParser/parsers/transform.mjs +4 -4
  111. package/dist/dataParser/parsers/tuple.cjs +14 -14
  112. package/dist/dataParser/parsers/tuple.mjs +4 -4
  113. package/dist/dataParser/parsers/union.cjs +26 -8
  114. package/dist/dataParser/parsers/union.mjs +26 -8
  115. package/dist/index.cjs +5 -0
  116. package/dist/index.mjs +1 -0
  117. package/dist/metadata.json +27 -0
  118. package/dist/number/types/isGreater.d.ts +26 -3
  119. package/dist/string/length.d.ts +2 -2
  120. package/dist/string/types/split.d.ts +6 -5
  121. package/package.json +1 -1
@@ -11,8 +11,6 @@ var errorKindNamespace = require('../common/errorKindNamespace.cjs');
11
11
  var error$1 = require('../either/left/error.cjs');
12
12
  var success = require('../either/right/success.cjs');
13
13
 
14
- const SymbolDataParserErrorLabel = "SymbolDataParserError";
15
- const SymbolDataParserError = Symbol.for(SymbolDataParserErrorLabel);
16
14
  const checkerKind = kind.createDataParserKind("checker");
17
15
  function dataParserCheckerInit(kind, params, exec) {
18
16
  return kind.setTo(checkerKind.setTo({
@@ -22,9 +20,7 @@ function dataParserCheckerInit(kind, params, exec) {
22
20
  }
23
21
  const dataParserKind = kind.createDataParserKind("base");
24
22
  // This allows for better performance WTF ???
25
- const SDPEI = error.SymbolDataParserErrorIssue;
26
- const SDPEPI = error.SymbolDataParserErrorPromiseIssue;
27
- const SDPE = SymbolDataParserError;
23
+ const SDPE = error.SymbolDataParserError;
28
24
  const DPE = error.createError();
29
25
  const EE = error$1.error(null);
30
26
  const ES = success.success(null);
@@ -44,22 +40,13 @@ function dataParserInit(kind, definition, exec, specificOverrideHandler) {
44
40
  async: exec,
45
41
  isAsynchronous: () => false,
46
42
  };
47
- function middleExec(data, error$1) {
48
- let result = formattedExec.sync(data, error$1, self);
49
- if (result === SDPEI) {
50
- error.addIssue(error$1, self, data);
51
- return SDPE;
52
- }
53
- else if (result === SDPEPI) {
54
- error.addPromiseIssue(error$1, self, data);
55
- return SDPE;
56
- }
57
- else if (result !== SDPE
43
+ function middleExec(data, error) {
44
+ let result = formattedExec.sync(data, error, self);
45
+ if (result !== SDPE
58
46
  && self.definition.checkers.length) {
59
47
  for (const checker of self.definition.checkers) {
60
- const checkerResult = checker.exec(result, checker);
61
- if (checkerResult === SDPEI) {
62
- error.addIssue(error$1, checker, result);
48
+ const checkerResult = checker.exec(result, error, checker);
49
+ if (checkerResult === SDPE) {
63
50
  return SDPE;
64
51
  }
65
52
  else {
@@ -69,22 +56,13 @@ function dataParserInit(kind, definition, exec, specificOverrideHandler) {
69
56
  }
70
57
  return result;
71
58
  }
72
- async function middleAsyncExec(data, error$1) {
73
- let result = await formattedExec.async(data, error$1, self);
74
- if (result === SDPEI) {
75
- error.addIssue(error$1, self, data);
76
- return SDPE;
77
- }
78
- else if (result === SDPEPI) {
79
- error.addPromiseIssue(error$1, self, data);
80
- return SDPE;
81
- }
82
- else if (result !== SDPE
59
+ async function middleAsyncExec(data, error) {
60
+ let result = await formattedExec.async(data, error, self);
61
+ if (result !== SDPE
83
62
  && self.definition.checkers.length) {
84
63
  for (const checker of self.definition.checkers) {
85
- const checkerResult = checker.exec(result, checker);
86
- if (checkerResult === SDPEI) {
87
- error.addIssue(error$1, checker, result);
64
+ const checkerResult = checker.exec(result, error, checker);
65
+ if (checkerResult === SDPE) {
88
66
  return SDPE;
89
67
  }
90
68
  else {
@@ -172,9 +150,8 @@ function dataParserInit(kind, definition, exec, specificOverrideHandler) {
172
150
  }
173
151
  dataParserInit.overrideHandler = override.createOverride("@duplojs/utils/data-parser/base");
174
152
 
153
+ exports.SymbolDataParserError = error.SymbolDataParserError;
175
154
  exports.DataParserThrowError = DataParserThrowError;
176
- exports.SymbolDataParserError = SymbolDataParserError;
177
- exports.SymbolDataParserErrorLabel = SymbolDataParserErrorLabel;
178
155
  exports.checkerKind = checkerKind;
179
156
  exports.dataParserCheckerInit = dataParserCheckerInit;
180
157
  exports.dataParserInit = dataParserInit;
@@ -1,19 +1,17 @@
1
1
  import { type GetKind, type GetKindHandler, type GetKindValue, type IsEqual, type Kind, type KindHandler, type OverrideHandler, type RemoveKind } from "../common";
2
- import { SymbolDataParserErrorIssue, SymbolDataParserErrorPromiseIssue, type DataParserError } from "./error";
2
+ import { SymbolDataParserError, type DataParserError } from "./error";
3
3
  import * as DEither from "../either";
4
- export declare const SymbolDataParserErrorLabel = "SymbolDataParserError";
5
- export declare const SymbolDataParserError: unique symbol;
6
- export type SymbolDataParserError = typeof SymbolDataParserError;
4
+ export { SymbolDataParserError } from "./error";
7
5
  export declare const checkerKind: KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/checker", unknown>>;
8
6
  export interface DataParserCheckerDefinition {
9
7
  readonly errorMessage?: string;
10
8
  }
11
9
  export interface DataParserChecker<GenericDefinition extends DataParserCheckerDefinition = DataParserCheckerDefinition, GenericInput extends unknown = unknown> extends Kind<typeof checkerKind.definition, GenericInput> {
12
10
  readonly definition: GenericDefinition;
13
- exec(data: GenericInput, self: this): GenericInput | SymbolDataParserErrorIssue;
11
+ exec(data: GenericInput, error: DataParserError, self: this): GenericInput | SymbolDataParserError;
14
12
  }
15
13
  export type InputChecker<GenericDataParser extends DataParserChecker> = Parameters<GenericDataParser["exec"]>[0];
16
- export declare function dataParserCheckerInit<GenericDataParserChecker extends DataParserChecker>(kind: Exclude<GetKindHandler<GenericDataParserChecker>, typeof checkerKind>, params: NoInfer<Omit<RemoveKind<GenericDataParserChecker>, "exec">>, exec: (...args: Parameters<GenericDataParserChecker["exec"]>) => GetKindValue<typeof checkerKind, GenericDataParserChecker> | SymbolDataParserErrorIssue): GenericDataParserChecker;
14
+ export declare function dataParserCheckerInit<GenericDataParserChecker extends DataParserChecker>(kind: Exclude<GetKindHandler<GenericDataParserChecker>, typeof checkerKind>, params: NoInfer<Omit<RemoveKind<GenericDataParserChecker>, "exec">>, exec: (...args: Parameters<GenericDataParserChecker["exec"]>) => GetKindValue<typeof checkerKind, GenericDataParserChecker> | SymbolDataParserError): GenericDataParserChecker;
17
15
  export declare const dataParserKind: KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
18
16
  input: unknown;
19
17
  output: unknown;
@@ -239,8 +237,8 @@ export interface DataParser<GenericDefinition extends DataParserDefinition = Dat
239
237
  isAsynchronous(): boolean;
240
238
  }
241
239
  interface DataParserInitExecParams<GenericDataParser extends DataParser> {
242
- sync(...args: [...Parameters<GenericDataParser["exec"]>, self: GenericDataParser]): (GetKindValue<typeof dataParserKind, GenericDataParser>["output"] | SymbolDataParserError | SymbolDataParserErrorIssue | SymbolDataParserErrorPromiseIssue);
243
- async(...args: [...Parameters<GenericDataParser["exec"]>, self: GenericDataParser]): Promise<GetKindValue<typeof dataParserKind, GenericDataParser>["output"] | SymbolDataParserError | SymbolDataParserErrorIssue | SymbolDataParserErrorPromiseIssue>;
240
+ sync(...args: [...Parameters<GenericDataParser["exec"]>, self: GenericDataParser]): (GetKindValue<typeof dataParserKind, GenericDataParser>["output"] | SymbolDataParserError);
241
+ async(...args: [...Parameters<GenericDataParser["exec"]>, self: GenericDataParser]): Promise<GetKindValue<typeof dataParserKind, GenericDataParser>["output"] | SymbolDataParserError>;
244
242
  isAsynchronous(self: GenericDataParser): boolean;
245
243
  }
246
244
  declare const DataParserThrowError_base: new (params: {
@@ -261,4 +259,3 @@ export type AdvancedContract<GenericDataParser extends DataParser> = (GetKind<Ge
261
259
  addChecker(...args: never): AdvancedContract<GenericDataParser>;
262
260
  clone(): AdvancedContract<GenericDataParser>;
263
261
  });
264
- export {};
@@ -1,4 +1,4 @@
1
- import { createError, addIssue, addPromiseIssue, SymbolDataParserErrorIssue, SymbolDataParserErrorPromiseIssue } from './error.mjs';
1
+ import { createError, SymbolDataParserError } from './error.mjs';
2
2
  import { createDataParserKind } from './kind.mjs';
3
3
  import { simpleClone } from '../common/simpleClone.mjs';
4
4
  import { keyWrappedValue } from '../common/wrapValue.mjs';
@@ -9,8 +9,6 @@ import { createErrorKind } from '../common/errorKindNamespace.mjs';
9
9
  import { error } from '../either/left/error.mjs';
10
10
  import { success } from '../either/right/success.mjs';
11
11
 
12
- const SymbolDataParserErrorLabel = "SymbolDataParserError";
13
- const SymbolDataParserError = Symbol.for(SymbolDataParserErrorLabel);
14
12
  const checkerKind = createDataParserKind("checker");
15
13
  function dataParserCheckerInit(kind, params, exec) {
16
14
  return kind.setTo(checkerKind.setTo({
@@ -20,8 +18,6 @@ function dataParserCheckerInit(kind, params, exec) {
20
18
  }
21
19
  const dataParserKind = createDataParserKind("base");
22
20
  // This allows for better performance WTF ???
23
- const SDPEI = SymbolDataParserErrorIssue;
24
- const SDPEPI = SymbolDataParserErrorPromiseIssue;
25
21
  const SDPE = SymbolDataParserError;
26
22
  const DPE = createError();
27
23
  const EE = error(null);
@@ -44,20 +40,11 @@ function dataParserInit(kind, definition, exec, specificOverrideHandler) {
44
40
  };
45
41
  function middleExec(data, error) {
46
42
  let result = formattedExec.sync(data, error, self);
47
- if (result === SDPEI) {
48
- addIssue(error, self, data);
49
- return SDPE;
50
- }
51
- else if (result === SDPEPI) {
52
- addPromiseIssue(error, self, data);
53
- return SDPE;
54
- }
55
- else if (result !== SDPE
43
+ if (result !== SDPE
56
44
  && self.definition.checkers.length) {
57
45
  for (const checker of self.definition.checkers) {
58
- const checkerResult = checker.exec(result, checker);
59
- if (checkerResult === SDPEI) {
60
- addIssue(error, checker, result);
46
+ const checkerResult = checker.exec(result, error, checker);
47
+ if (checkerResult === SDPE) {
61
48
  return SDPE;
62
49
  }
63
50
  else {
@@ -69,20 +56,11 @@ function dataParserInit(kind, definition, exec, specificOverrideHandler) {
69
56
  }
70
57
  async function middleAsyncExec(data, error) {
71
58
  let result = await formattedExec.async(data, error, self);
72
- if (result === SDPEI) {
73
- addIssue(error, self, data);
74
- return SDPE;
75
- }
76
- else if (result === SDPEPI) {
77
- addPromiseIssue(error, self, data);
78
- return SDPE;
79
- }
80
- else if (result !== SDPE
59
+ if (result !== SDPE
81
60
  && self.definition.checkers.length) {
82
61
  for (const checker of self.definition.checkers) {
83
- const checkerResult = checker.exec(result, checker);
84
- if (checkerResult === SDPEI) {
85
- addIssue(error, checker, result);
62
+ const checkerResult = checker.exec(result, error, checker);
63
+ if (checkerResult === SDPE) {
86
64
  return SDPE;
87
65
  }
88
66
  else {
@@ -170,4 +148,4 @@ function dataParserInit(kind, definition, exec, specificOverrideHandler) {
170
148
  }
171
149
  dataParserInit.overrideHandler = createOverride("@duplojs/utils/data-parser/base");
172
150
 
173
- export { DataParserThrowError, SymbolDataParserError, SymbolDataParserErrorLabel, checkerKind, dataParserCheckerInit, dataParserInit, dataParserKind };
151
+ export { DataParserThrowError, SymbolDataParserError, checkerKind, dataParserCheckerInit, dataParserInit, dataParserKind };
@@ -1,13 +1,20 @@
1
1
  'use strict';
2
2
 
3
3
  var kind = require('./kind.cjs');
4
+ var printer = require('../common/printer.cjs');
5
+ var unwrap = require('../common/unwrap.cjs');
4
6
 
5
- const SymbolDataParserErrorIssueLabel = "SymbolDataParserErrorIssue";
7
+ const SymbolDataParserErrorLabel = "SymbolDataParserError";
8
+ const SymbolDataParserError = Symbol.for(SymbolDataParserErrorLabel);
9
+ /**
10
+ * @deprecated
11
+ */
12
+ const SymbolDataParserErrorIssueLabel = "SymbolDataParserError";
13
+ /**
14
+ * @deprecated
15
+ */
6
16
  const SymbolDataParserErrorIssue = Symbol.for(SymbolDataParserErrorIssueLabel);
7
17
  const errorIssueKind = kind.createDataParserKind("error-issue");
8
- const SymbolDataParserErrorPromiseIssueLabel = "SymbolDataParserErrorPromiseIssue";
9
- const SymbolDataParserErrorPromiseIssue = Symbol.for(SymbolDataParserErrorPromiseIssueLabel);
10
- const errorPromiseIssueKind = kind.createDataParserKind("error-issue-promise");
11
18
  const errorKind = kind.createDataParserKind("error");
12
19
  function createError() {
13
20
  return errorKind.setTo({
@@ -15,23 +22,14 @@ function createError() {
15
22
  currentPath: [],
16
23
  });
17
24
  }
18
- function addIssue(error, source, data, moreInformation) {
25
+ function addIssue(error, expected, data, message) {
19
26
  error.issues.push(errorIssueKind.setTo({
20
- source,
27
+ expected,
21
28
  path: error.currentPath.join("."),
22
29
  data,
23
- moreInformation,
30
+ message,
24
31
  }));
25
- return error;
26
- }
27
- function addPromiseIssue(error, source, data, moreInformation) {
28
- error.issues.push(errorPromiseIssueKind.setTo({
29
- source,
30
- path: error.currentPath.join("."),
31
- data,
32
- moreInformation,
33
- }));
34
- return error;
32
+ return SymbolDataParserError;
35
33
  }
36
34
  function setErrorPath(error, value, index) {
37
35
  error.currentPath[index] = value;
@@ -41,16 +39,36 @@ function popErrorPath(error) {
41
39
  error.currentPath.pop();
42
40
  return error;
43
41
  }
42
+ function interpretError(error) {
43
+ const dataParserError = errorKind.has(error)
44
+ ? error
45
+ : unwrap.unwrap(error);
46
+ return printer.Printer.renderParagraph([
47
+ printer.Printer.colorizedBold("Validation failed", "red"),
48
+ dataParserError.issues.map((issue) => printer.Printer.renderParagraph([
49
+ "",
50
+ printer.Printer.renderLine([
51
+ printer.Printer.colorizedBold("✖", "red"),
52
+ printer.Printer.colorizedBold(issue.path || "<root>", "cyan"),
53
+ "expected",
54
+ printer.Printer.colorized(issue.expected, "green"),
55
+ "but received",
56
+ printer.Printer.colorized(printer.Printer.stringify(issue.data), "red"),
57
+ ]),
58
+ issue.message !== undefined && `${printer.Printer.indent(1)}↳ ${issue.message}`,
59
+ ])),
60
+ dataParserError.issues.length === 0 && "No issue found",
61
+ ]);
62
+ }
44
63
 
64
+ exports.SymbolDataParserError = SymbolDataParserError;
45
65
  exports.SymbolDataParserErrorIssue = SymbolDataParserErrorIssue;
46
66
  exports.SymbolDataParserErrorIssueLabel = SymbolDataParserErrorIssueLabel;
47
- exports.SymbolDataParserErrorPromiseIssue = SymbolDataParserErrorPromiseIssue;
48
- exports.SymbolDataParserErrorPromiseIssueLabel = SymbolDataParserErrorPromiseIssueLabel;
67
+ exports.SymbolDataParserErrorLabel = SymbolDataParserErrorLabel;
49
68
  exports.addIssue = addIssue;
50
- exports.addPromiseIssue = addPromiseIssue;
51
69
  exports.createError = createError;
52
70
  exports.errorIssueKind = errorIssueKind;
53
71
  exports.errorKind = errorKind;
54
- exports.errorPromiseIssueKind = errorPromiseIssueKind;
72
+ exports.interpretError = interpretError;
55
73
  exports.popErrorPath = popErrorPath;
56
74
  exports.setErrorPath = setErrorPath;
@@ -1,34 +1,34 @@
1
1
  import { type Kind } from "../common";
2
- import { type DataParserTransform } from "./parsers";
3
- import { type DataParser } from "./base";
4
- import { type DataParserCheckers } from "./types";
5
- export declare const SymbolDataParserErrorIssueLabel = "SymbolDataParserErrorIssue";
2
+ import type * as DEither from "../either";
3
+ export declare const SymbolDataParserErrorLabel = "SymbolDataParserError";
4
+ export declare const SymbolDataParserError: unique symbol;
5
+ export type SymbolDataParserError = typeof SymbolDataParserError;
6
+ /**
7
+ * @deprecated
8
+ */
9
+ export declare const SymbolDataParserErrorIssueLabel = "SymbolDataParserError";
10
+ /**
11
+ * @deprecated
12
+ */
6
13
  export declare const SymbolDataParserErrorIssue: unique symbol;
14
+ /**
15
+ * @deprecated
16
+ */
7
17
  export type SymbolDataParserErrorIssue = typeof SymbolDataParserErrorIssue;
8
18
  export declare const errorIssueKind: import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/error-issue", unknown>>;
9
19
  export interface DataParserErrorIssue extends Kind<typeof errorIssueKind.definition> {
10
- readonly source: DataParser | DataParserCheckers;
20
+ readonly expected: string;
11
21
  readonly path: string;
12
22
  readonly data: unknown;
13
- readonly moreInformation?: string;
14
- }
15
- export declare const SymbolDataParserErrorPromiseIssueLabel = "SymbolDataParserErrorPromiseIssue";
16
- export declare const SymbolDataParserErrorPromiseIssue: unique symbol;
17
- export type SymbolDataParserErrorPromiseIssue = typeof SymbolDataParserErrorPromiseIssue;
18
- export declare const errorPromiseIssueKind: import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/error-issue-promise", unknown>>;
19
- export interface DataParserErrorPromiseIssue extends Kind<typeof errorPromiseIssueKind.definition> {
20
- readonly source: DataParserTransform;
21
- readonly path: string;
22
- readonly data: unknown;
23
- readonly moreInformation?: string;
23
+ readonly message: string | undefined;
24
24
  }
25
25
  export declare const errorKind: import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/error", unknown>>;
26
26
  export interface DataParserError extends Kind<typeof errorKind.definition> {
27
- readonly issues: (DataParserErrorIssue | DataParserErrorPromiseIssue)[];
27
+ readonly issues: DataParserErrorIssue[];
28
28
  readonly currentPath: string[];
29
29
  }
30
30
  export declare function createError(): DataParserError;
31
- export declare function addIssue(error: DataParserError, source: DataParser | DataParserCheckers, data: unknown, moreInformation?: string): DataParserError;
32
- export declare function addPromiseIssue(error: DataParserError, source: DataParserTransform, data: unknown, moreInformation?: string): DataParserError;
31
+ export declare function addIssue(error: DataParserError, expected: string, data: unknown, message: string | undefined): SymbolDataParserError;
33
32
  export declare function setErrorPath(error: DataParserError, value: string, index: number): DataParserError;
34
33
  export declare function popErrorPath(error: DataParserError): DataParserError;
34
+ export declare function interpretError(error: DataParserError | DEither.Left<string, DataParserError>): string;
@@ -1,11 +1,18 @@
1
1
  import { createDataParserKind } from './kind.mjs';
2
+ import { Printer } from '../common/printer.mjs';
3
+ import { unwrap } from '../common/unwrap.mjs';
2
4
 
3
- const SymbolDataParserErrorIssueLabel = "SymbolDataParserErrorIssue";
5
+ const SymbolDataParserErrorLabel = "SymbolDataParserError";
6
+ const SymbolDataParserError = Symbol.for(SymbolDataParserErrorLabel);
7
+ /**
8
+ * @deprecated
9
+ */
10
+ const SymbolDataParserErrorIssueLabel = "SymbolDataParserError";
11
+ /**
12
+ * @deprecated
13
+ */
4
14
  const SymbolDataParserErrorIssue = Symbol.for(SymbolDataParserErrorIssueLabel);
5
15
  const errorIssueKind = createDataParserKind("error-issue");
6
- const SymbolDataParserErrorPromiseIssueLabel = "SymbolDataParserErrorPromiseIssue";
7
- const SymbolDataParserErrorPromiseIssue = Symbol.for(SymbolDataParserErrorPromiseIssueLabel);
8
- const errorPromiseIssueKind = createDataParserKind("error-issue-promise");
9
16
  const errorKind = createDataParserKind("error");
10
17
  function createError() {
11
18
  return errorKind.setTo({
@@ -13,23 +20,14 @@ function createError() {
13
20
  currentPath: [],
14
21
  });
15
22
  }
16
- function addIssue(error, source, data, moreInformation) {
23
+ function addIssue(error, expected, data, message) {
17
24
  error.issues.push(errorIssueKind.setTo({
18
- source,
25
+ expected,
19
26
  path: error.currentPath.join("."),
20
27
  data,
21
- moreInformation,
28
+ message,
22
29
  }));
23
- return error;
24
- }
25
- function addPromiseIssue(error, source, data, moreInformation) {
26
- error.issues.push(errorPromiseIssueKind.setTo({
27
- source,
28
- path: error.currentPath.join("."),
29
- data,
30
- moreInformation,
31
- }));
32
- return error;
30
+ return SymbolDataParserError;
33
31
  }
34
32
  function setErrorPath(error, value, index) {
35
33
  error.currentPath[index] = value;
@@ -39,5 +37,26 @@ function popErrorPath(error) {
39
37
  error.currentPath.pop();
40
38
  return error;
41
39
  }
40
+ function interpretError(error) {
41
+ const dataParserError = errorKind.has(error)
42
+ ? error
43
+ : unwrap(error);
44
+ return Printer.renderParagraph([
45
+ Printer.colorizedBold("Validation failed", "red"),
46
+ dataParserError.issues.map((issue) => Printer.renderParagraph([
47
+ "",
48
+ Printer.renderLine([
49
+ Printer.colorizedBold("✖", "red"),
50
+ Printer.colorizedBold(issue.path || "<root>", "cyan"),
51
+ "expected",
52
+ Printer.colorized(issue.expected, "green"),
53
+ "but received",
54
+ Printer.colorized(Printer.stringify(issue.data), "red"),
55
+ ]),
56
+ issue.message !== undefined && `${Printer.indent(1)}↳ ${issue.message}`,
57
+ ])),
58
+ dataParserError.issues.length === 0 && "No issue found",
59
+ ]);
60
+ }
42
61
 
43
- export { SymbolDataParserErrorIssue, SymbolDataParserErrorIssueLabel, SymbolDataParserErrorPromiseIssue, SymbolDataParserErrorPromiseIssueLabel, addIssue, addPromiseIssue, createError, errorIssueKind, errorKind, errorPromiseIssueKind, popErrorPath, setErrorPath };
62
+ export { SymbolDataParserError, SymbolDataParserErrorIssue, SymbolDataParserErrorIssueLabel, SymbolDataParserErrorLabel, addIssue, createError, errorIssueKind, errorKind, interpretError, popErrorPath, setErrorPath };
@@ -53,15 +53,14 @@ exports.templateLiteral = templateLiteral.templateLiteral;
53
53
  exports.tuple = tuple.tuple;
54
54
  exports.unknown = unknown.unknown;
55
55
  exports.recover = recover.recover;
56
+ exports.SymbolDataParserError = error.SymbolDataParserError;
56
57
  exports.SymbolDataParserErrorIssue = error.SymbolDataParserErrorIssue;
57
58
  exports.SymbolDataParserErrorIssueLabel = error.SymbolDataParserErrorIssueLabel;
58
- exports.SymbolDataParserErrorPromiseIssue = error.SymbolDataParserErrorPromiseIssue;
59
- exports.SymbolDataParserErrorPromiseIssueLabel = error.SymbolDataParserErrorPromiseIssueLabel;
59
+ exports.SymbolDataParserErrorLabel = error.SymbolDataParserErrorLabel;
60
60
  exports.addIssue = error.addIssue;
61
- exports.addPromiseIssue = error.addPromiseIssue;
62
61
  exports.createError = error.createError;
63
62
  exports.errorIssueKind = error.errorIssueKind;
64
63
  exports.errorKind = error.errorKind;
65
- exports.errorPromiseIssueKind = error.errorPromiseIssueKind;
64
+ exports.interpretError = error.interpretError;
66
65
  exports.popErrorPath = error.popErrorPath;
67
66
  exports.setErrorPath = error.setErrorPath;
@@ -22,4 +22,4 @@ export { templateLiteral } from './templateLiteral.mjs';
22
22
  export { tuple } from './tuple.mjs';
23
23
  export { unknown } from './unknown.mjs';
24
24
  export { recover } from './recover.mjs';
25
- export { SymbolDataParserErrorIssue, SymbolDataParserErrorIssueLabel, SymbolDataParserErrorPromiseIssue, SymbolDataParserErrorPromiseIssueLabel, addIssue, addPromiseIssue, createError, errorIssueKind, errorKind, errorPromiseIssueKind, popErrorPath, setErrorPath } from '../error.mjs';
25
+ export { SymbolDataParserError, SymbolDataParserErrorIssue, SymbolDataParserErrorIssueLabel, SymbolDataParserErrorLabel, addIssue, createError, errorIssueKind, errorKind, interpretError, popErrorPath, setErrorPath } from '../error.mjs';
@@ -8,13 +8,13 @@ import { type DataParser } from "./base";
8
8
  * parsers, the correct type can be retrieved.
9
9
  */
10
10
  export declare const identifier: {
11
- <GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/bigint", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/extended", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/boolean", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/date", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/time", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/empty", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nil", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/number", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/string", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/array", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/transform", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/union", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/lazy", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nullable", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/object", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/optional", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/pipe", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/record", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/template-literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/tuple", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/unknown", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/recover", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
11
+ <GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/bigint", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/boolean", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/date", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/time", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/empty", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nil", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/number", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/string", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
12
12
  input: string;
13
13
  output: string;
14
- }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
14
+ }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/object", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/optional", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
15
15
  input: unknown;
16
16
  output: unknown;
17
- }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
17
+ }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/union", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/array", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/tuple", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/transform", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/template-literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/pipe", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nullable", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/lazy", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/unknown", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/record", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/recover", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/extended", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
18
18
  input: {
19
19
  [x: string]: unknown;
20
20
  [x: number]: unknown;
@@ -57,13 +57,13 @@ export declare const identifier: {
57
57
  input: Record<never, unknown>;
58
58
  output: Record<never, unknown>;
59
59
  }>>, GenericInput extends unknown, GenericGroupedKind extends import("../common").UnionToIntersection<GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<string, unknown>> ? import("../common").Kind<GenericKindHandler["definition"], GenericKindHandler["definition"]["value"]> : never>>(kind: GenericKindHandler | GenericKindHandler[]): (input: GenericInput) => input is (import("../common").IsEqual<import("../common").IsEqual<false | (GenericInput extends any ? import("../common").IsEqual<GenericInput, DataParser<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>> : never), boolean>, true> extends true ? Extract<DataParser<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>, GenericGroupedKind> | Extract<import("./parsers").DataParserString<import("./parsers").DataParserDefinitionString>, GenericGroupedKind> | Extract<import("./parsers").DataParserObject<import("./parsers").DataParserDefinitionObject>, GenericGroupedKind> | Extract<import("./parsers").DataParserNumber<import("./parsers").DataParserDefinitionNumber>, GenericGroupedKind> | Extract<import("./parsers").DataParserLiteral<import("./parsers").DataParserDefinitionLiteral>, GenericGroupedKind> | Extract<import("./parsers").DataParserUnion<import("./parsers").DataParserDefinitionUnion>, GenericGroupedKind> | Extract<import("./parsers").DataParserArray<import("./parsers").DataParserDefinitionArray>, GenericGroupedKind> | Extract<import("./parsers").DataParserBigInt<import("./parsers").DataParserDefinitionBigInt>, GenericGroupedKind> | Extract<import("./parsers").DataParserTuple<import("./parsers").DataParserDefinitionTuple>, GenericGroupedKind> | Extract<import("./parsers").DataParserTransform<import("./parsers").DataParserDefinitionTransform>, GenericGroupedKind> | Extract<import("./parsers").DataParserBoolean<import("./parsers").DataParserDefinitionBoolean>, GenericGroupedKind> | Extract<import("./parsers").DataParserDate<import("./parsers").DataParserDefinitionDate>, GenericGroupedKind> | Extract<import("./parsers").DataParserTime<import("./parsers").DataParserDefinitionTime>, GenericGroupedKind> | Extract<import("./parsers").DataParserNil<import("./parsers").DataParserDefinitionNil>, GenericGroupedKind> | Extract<import("./parsers").DataParserEmpty<import("./parsers").DataParserDefinitionEmpty>, GenericGroupedKind> | Extract<import("./parsers").DataParserTemplateLiteral<import("./parsers").DataParserDefinitionTemplateLiteral>, GenericGroupedKind> | Extract<import("./parsers").DataParserPipe<import("./parsers").DataParserDefinitionPipe>, GenericGroupedKind> | Extract<import("./parsers").DataParserNullable<import("./parsers").DataParserDefinitionNullable<unknown>>, GenericGroupedKind> | Extract<import("./parsers").DataParserOptional<import("./parsers").DataParserDefinitionOptional<unknown>>, GenericGroupedKind> | Extract<import("./parsers").DataParserLazy<import("./parsers").DataParserDefinitionLazy>, GenericGroupedKind> | Extract<import("./parsers").DataParserUnknown<import("./parsers").DataParserDefinitionUnknown>, GenericGroupedKind> | Extract<import("./parsers").DataParserRecord<import("./parsers").DataParserDefinitionRecord>, GenericGroupedKind> | Extract<import("./parsers").DataParserRecover<import("./parsers").DataParserDefinitionRecover>, GenericGroupedKind> | Extract<import("./baseExtended").DataParserExtended<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>, GenericGroupedKind> | Extract<import("./extended").DataParserStringExtended<import("./parsers").DataParserDefinitionString>, GenericGroupedKind> | Extract<import("./extended").DataParserObjectExtended<import("./parsers").DataParserDefinitionObject>, GenericGroupedKind> | Extract<import("./extended").DataParserNumberExtended<import("./parsers").DataParserDefinitionNumber>, GenericGroupedKind> | Extract<import("./extended").DataParserLiteralExtended<import("./parsers").DataParserDefinitionLiteral>, GenericGroupedKind> | Extract<import("./extended").DataParserUnionExtended<import("./parsers").DataParserDefinitionUnion>, GenericGroupedKind> | Extract<import("./extended").DataParserArrayExtended<import("./parsers").DataParserDefinitionArray>, GenericGroupedKind> | Extract<import("./extended").DataParserBigIntExtended<import("./parsers").DataParserDefinitionBigInt>, GenericGroupedKind> | Extract<import("./extended").DataParserTupleExtended<import("./parsers").DataParserDefinitionTuple>, GenericGroupedKind> | Extract<import("./extended").DataParserTransformExtended<import("./parsers").DataParserDefinitionTransform>, GenericGroupedKind> | Extract<import("./extended").DataParserBooleanExtended<import("./parsers").DataParserDefinitionBoolean>, GenericGroupedKind> | Extract<import("./extended").DataParserDateExtended<import("./parsers").DataParserDefinitionDate>, GenericGroupedKind> | Extract<import("./extended").DataParserTimeExtended<import("./parsers").DataParserDefinitionTime>, GenericGroupedKind> | Extract<import("./extended").DataParserNilExtended<import("./parsers").DataParserDefinitionNil>, GenericGroupedKind> | Extract<import("./extended").DataParserEmptyExtended<import("./parsers").DataParserDefinitionEmpty>, GenericGroupedKind> | Extract<import("./extended").DataParserTemplateLiteralExtended<import("./parsers").DataParserDefinitionTemplateLiteral>, GenericGroupedKind> | Extract<import("./extended").DataParserPipeExtended<import("./parsers").DataParserDefinitionPipe>, GenericGroupedKind> | Extract<import("./extended").DataParserNullableExtended<import("./parsers").DataParserDefinitionNullable<unknown>>, GenericGroupedKind> | Extract<import("./extended").DataParserOptionalExtended<import("./parsers").DataParserDefinitionOptional<unknown>>, GenericGroupedKind> | Extract<import("./extended").DataParserLazyExtended<import("./parsers").DataParserDefinitionLazy>, GenericGroupedKind> | Extract<import("./extended").DataParserUnknownExtended<import("./parsers").DataParserDefinitionUnknown>, GenericGroupedKind> | Extract<import("./extended").DataParserRecordExtended<import("./parsers").DataParserDefinitionRecord>, GenericGroupedKind> | Extract<import("./extended").DataParserRecoverExtended<import("./parsers").DataParserDefinitionRecover>, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>;
60
- <GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/bigint", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/extended", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/boolean", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/date", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/time", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/empty", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nil", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/number", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/string", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/array", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/transform", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/union", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/lazy", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nullable", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/object", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/optional", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/pipe", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/record", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/template-literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/tuple", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/unknown", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/recover", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
60
+ <GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/bigint", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/boolean", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/date", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/time", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/empty", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nil", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/number", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/string", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
61
61
  input: string;
62
62
  output: string;
63
- }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
63
+ }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/object", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/optional", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
64
64
  input: unknown;
65
65
  output: unknown;
66
- }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
66
+ }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/union", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/array", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/tuple", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/transform", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/template-literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/pipe", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nullable", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/lazy", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/unknown", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/record", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/recover", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/extended", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
67
67
  input: {
68
68
  [x: string]: unknown;
69
69
  [x: number]: unknown;
@@ -54,24 +54,21 @@ var recover = require('./parsers/recover.cjs');
54
54
 
55
55
 
56
56
  exports.DataParserThrowError = base.DataParserThrowError;
57
- exports.SymbolDataParserError = base.SymbolDataParserError;
58
- exports.SymbolDataParserErrorLabel = base.SymbolDataParserErrorLabel;
59
57
  exports.checkerKind = base.checkerKind;
60
58
  exports.dataParserCheckerInit = base.dataParserCheckerInit;
61
59
  exports.dataParserInit = base.dataParserInit;
62
60
  exports.dataParserKind = base.dataParserKind;
63
61
  exports.dataParserExtendedInit = baseExtended.dataParserExtendedInit;
64
62
  exports.extendedKind = baseExtended.extendedKind;
63
+ exports.SymbolDataParserError = error.SymbolDataParserError;
65
64
  exports.SymbolDataParserErrorIssue = error.SymbolDataParserErrorIssue;
66
65
  exports.SymbolDataParserErrorIssueLabel = error.SymbolDataParserErrorIssueLabel;
67
- exports.SymbolDataParserErrorPromiseIssue = error.SymbolDataParserErrorPromiseIssue;
68
- exports.SymbolDataParserErrorPromiseIssueLabel = error.SymbolDataParserErrorPromiseIssueLabel;
66
+ exports.SymbolDataParserErrorLabel = error.SymbolDataParserErrorLabel;
69
67
  exports.addIssue = error.addIssue;
70
- exports.addPromiseIssue = error.addPromiseIssue;
71
68
  exports.createError = error.createError;
72
69
  exports.errorIssueKind = error.errorIssueKind;
73
70
  exports.errorKind = error.errorKind;
74
- exports.errorPromiseIssueKind = error.errorPromiseIssueKind;
71
+ exports.interpretError = error.interpretError;
75
72
  exports.popErrorPath = error.popErrorPath;
76
73
  exports.setErrorPath = error.setErrorPath;
77
74
  exports.extended = index;
@@ -1,6 +1,6 @@
1
- export { DataParserThrowError, SymbolDataParserError, SymbolDataParserErrorLabel, checkerKind, dataParserCheckerInit, dataParserInit, dataParserKind } from './base.mjs';
1
+ export { DataParserThrowError, checkerKind, dataParserCheckerInit, dataParserInit, dataParserKind } from './base.mjs';
2
2
  export { dataParserExtendedInit, extendedKind } from './baseExtended.mjs';
3
- export { SymbolDataParserErrorIssue, SymbolDataParserErrorIssueLabel, SymbolDataParserErrorPromiseIssue, SymbolDataParserErrorPromiseIssueLabel, addIssue, addPromiseIssue, createError, errorIssueKind, errorKind, errorPromiseIssueKind, popErrorPath, setErrorPath } from './error.mjs';
3
+ export { SymbolDataParserError, SymbolDataParserErrorIssue, SymbolDataParserErrorIssueLabel, SymbolDataParserErrorLabel, addIssue, createError, errorIssueKind, errorKind, interpretError, popErrorPath, setErrorPath } from './error.mjs';
4
4
  import * as index from './extended/index.mjs';
5
5
  export { index as extended };
6
6
  export { identifier } from './identifier.mjs';
@@ -11,12 +11,9 @@ function checkerArrayMax(max, definition = {}) {
11
11
  ...definition,
12
12
  max,
13
13
  },
14
- }, (data, self) => {
15
- if (data.length > self.definition.max) {
16
- return error.SymbolDataParserErrorIssue;
17
- }
18
- return data;
19
- });
14
+ }, (data, error$1, self) => data.length <= self.definition.max
15
+ ? data
16
+ : error.addIssue(error$1, `array.length <= ${self.definition.max}`, data, self.definition.errorMessage));
20
17
  }
21
18
 
22
19
  exports.checkerArrayMax = checkerArrayMax;
@@ -1,5 +1,5 @@
1
1
  import { dataParserCheckerInit } from '../../../base.mjs';
2
- import { SymbolDataParserErrorIssue } from '../../../error.mjs';
2
+ import { addIssue } from '../../../error.mjs';
3
3
  import { createDataParserKind } from '../../../kind.mjs';
4
4
 
5
5
  const checkerArrayMaxKind = createDataParserKind("checker-array-max");
@@ -9,12 +9,9 @@ function checkerArrayMax(max, definition = {}) {
9
9
  ...definition,
10
10
  max,
11
11
  },
12
- }, (data, self) => {
13
- if (data.length > self.definition.max) {
14
- return SymbolDataParserErrorIssue;
15
- }
16
- return data;
17
- });
12
+ }, (data, error, self) => data.length <= self.definition.max
13
+ ? data
14
+ : addIssue(error, `array.length <= ${self.definition.max}`, data, self.definition.errorMessage));
18
15
  }
19
16
 
20
17
  export { checkerArrayMax, checkerArrayMaxKind };