@fncts/schema 0.0.15 → 0.0.17

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 (153) hide show
  1. package/AST.d.ts +19 -6
  2. package/ASTAnnotation.d.ts +10 -2
  3. package/ParseError/ParseError.d.ts +231 -0
  4. package/ParseError/ParseErrorFormatter.d.ts +2 -0
  5. package/ParseError/PathFormatter.d.ts +13 -0
  6. package/ParseError/TreeFormatter.d.ts +14 -0
  7. package/ParseError.d.ts +4 -144
  8. package/ParseResult.d.ts +1 -8
  9. package/Parser/interpreter.d.ts +0 -1
  10. package/Schema/api/conc.d.ts +0 -2
  11. package/Schema/api/hashMap.d.ts +0 -1
  12. package/Schema/api/hashSet.d.ts +0 -1
  13. package/Schema/api/immutableArray.d.ts +0 -1
  14. package/Schema/api/list.d.ts +1 -2
  15. package/Schema/api/map.d.ts +19 -0
  16. package/Schema/api/set.d.ts +19 -0
  17. package/Schema/api.d.ts +12 -2
  18. package/Schema/derivations.d.ts +1 -1
  19. package/Schema.d.ts +2 -0
  20. package/Show.d.ts +7 -3
  21. package/_cjs/AST.cjs +180 -113
  22. package/_cjs/AST.cjs.map +1 -1
  23. package/_cjs/ASTAnnotation.cjs +6 -1
  24. package/_cjs/ASTAnnotation.cjs.map +1 -1
  25. package/_cjs/Gen.cjs +24 -24
  26. package/_cjs/Gen.cjs.map +1 -1
  27. package/_cjs/ParseError/ParseError.cjs +260 -0
  28. package/_cjs/ParseError/ParseError.cjs.map +1 -0
  29. package/_cjs/ParseError/ParseErrorFormatter.cjs +6 -0
  30. package/_cjs/ParseError/ParseErrorFormatter.cjs.map +1 -0
  31. package/_cjs/ParseError/PathFormatter.cjs +94 -0
  32. package/_cjs/ParseError/PathFormatter.cjs.map +1 -0
  33. package/_cjs/ParseError/TreeFormatter.cjs +123 -0
  34. package/_cjs/ParseError/TreeFormatter.cjs.map +1 -0
  35. package/_cjs/ParseError.cjs +43 -289
  36. package/_cjs/ParseError.cjs.map +1 -1
  37. package/_cjs/ParseResult.cjs +1 -10
  38. package/_cjs/ParseResult.cjs.map +1 -1
  39. package/_cjs/Parser/api.cjs +2 -2
  40. package/_cjs/Parser/api.cjs.map +1 -1
  41. package/_cjs/Parser/definition.cjs +1 -1
  42. package/_cjs/Parser/interpreter.cjs +121 -117
  43. package/_cjs/Parser/interpreter.cjs.map +1 -1
  44. package/_cjs/Schema/api/conc.cjs +35 -45
  45. package/_cjs/Schema/api/conc.cjs.map +1 -1
  46. package/_cjs/Schema/api/either.cjs +24 -30
  47. package/_cjs/Schema/api/either.cjs.map +1 -1
  48. package/_cjs/Schema/api/hashMap.cjs +41 -101
  49. package/_cjs/Schema/api/hashMap.cjs.map +1 -1
  50. package/_cjs/Schema/api/hashSet.cjs +46 -106
  51. package/_cjs/Schema/api/hashSet.cjs.map +1 -1
  52. package/_cjs/Schema/api/immutableArray.cjs +22 -48
  53. package/_cjs/Schema/api/immutableArray.cjs.map +1 -1
  54. package/_cjs/Schema/api/list.cjs +35 -52
  55. package/_cjs/Schema/api/list.cjs.map +1 -1
  56. package/_cjs/Schema/api/map.cjs +97 -0
  57. package/_cjs/Schema/api/map.cjs.map +1 -0
  58. package/_cjs/Schema/api/maybe.cjs +24 -35
  59. package/_cjs/Schema/api/maybe.cjs.map +1 -1
  60. package/_cjs/Schema/api/set.cjs +76 -0
  61. package/_cjs/Schema/api/set.cjs.map +1 -0
  62. package/_cjs/Schema/api.cjs +21 -3
  63. package/_cjs/Schema/api.cjs.map +1 -1
  64. package/_cjs/Schema.cjs +22 -0
  65. package/_cjs/Schema.cjs.map +1 -1
  66. package/_cjs/Show.cjs +106 -89
  67. package/_cjs/Show.cjs.map +1 -1
  68. package/_cjs/utils.cjs +5 -0
  69. package/_cjs/utils.cjs.map +1 -1
  70. package/_mjs/AST.mjs +177 -112
  71. package/_mjs/AST.mjs.map +1 -1
  72. package/_mjs/ASTAnnotation.mjs +5 -0
  73. package/_mjs/ASTAnnotation.mjs.map +1 -1
  74. package/_mjs/Gen.mjs +24 -24
  75. package/_mjs/Gen.mjs.map +1 -1
  76. package/_mjs/ParseError/ParseError.mjs +228 -0
  77. package/_mjs/ParseError/ParseError.mjs.map +1 -0
  78. package/_mjs/ParseError/ParseErrorFormatter.mjs +2 -0
  79. package/_mjs/ParseError/ParseErrorFormatter.mjs.map +1 -0
  80. package/_mjs/ParseError/PathFormatter.mjs +86 -0
  81. package/_mjs/ParseError/PathFormatter.mjs.map +1 -0
  82. package/_mjs/ParseError/TreeFormatter.mjs +113 -0
  83. package/_mjs/ParseError/TreeFormatter.mjs.map +1 -0
  84. package/_mjs/ParseError.mjs +6 -270
  85. package/_mjs/ParseError.mjs.map +1 -1
  86. package/_mjs/ParseResult.mjs +1 -9
  87. package/_mjs/ParseResult.mjs.map +1 -1
  88. package/_mjs/Parser/api.mjs +2 -2
  89. package/_mjs/Parser/api.mjs.map +1 -1
  90. package/_mjs/Parser/definition.mjs +1 -1
  91. package/_mjs/Parser/interpreter.mjs +121 -117
  92. package/_mjs/Parser/interpreter.mjs.map +1 -1
  93. package/_mjs/Schema/api/conc.mjs +35 -44
  94. package/_mjs/Schema/api/conc.mjs.map +1 -1
  95. package/_mjs/Schema/api/either.mjs +24 -30
  96. package/_mjs/Schema/api/either.mjs.map +1 -1
  97. package/_mjs/Schema/api/hashMap.mjs +41 -101
  98. package/_mjs/Schema/api/hashMap.mjs.map +1 -1
  99. package/_mjs/Schema/api/hashSet.mjs +46 -106
  100. package/_mjs/Schema/api/hashSet.mjs.map +1 -1
  101. package/_mjs/Schema/api/immutableArray.mjs +23 -49
  102. package/_mjs/Schema/api/immutableArray.mjs.map +1 -1
  103. package/_mjs/Schema/api/list.mjs +35 -52
  104. package/_mjs/Schema/api/list.mjs.map +1 -1
  105. package/_mjs/Schema/api/map.mjs +88 -0
  106. package/_mjs/Schema/api/map.mjs.map +1 -0
  107. package/_mjs/Schema/api/maybe.mjs +24 -35
  108. package/_mjs/Schema/api/maybe.mjs.map +1 -1
  109. package/_mjs/Schema/api/set.mjs +67 -0
  110. package/_mjs/Schema/api/set.mjs.map +1 -0
  111. package/_mjs/Schema/api.mjs +19 -3
  112. package/_mjs/Schema/api.mjs.map +1 -1
  113. package/_mjs/Schema.mjs +2 -0
  114. package/_mjs/Schema.mjs.map +1 -1
  115. package/_mjs/Show.mjs +106 -90
  116. package/_mjs/Show.mjs.map +1 -1
  117. package/_mjs/utils.mjs +4 -0
  118. package/_mjs/utils.mjs.map +1 -1
  119. package/_src/AST.ts +144 -43
  120. package/_src/ASTAnnotation.ts +8 -1
  121. package/_src/Gen.ts +12 -9
  122. package/_src/ParseError/ParseError.ts +304 -0
  123. package/_src/ParseError/ParseErrorFormatter.ts +1 -0
  124. package/_src/ParseError/PathFormatter.ts +117 -0
  125. package/_src/ParseError/TreeFormatter.ts +127 -0
  126. package/_src/ParseError.ts +7 -331
  127. package/_src/ParseResult.ts +2 -9
  128. package/_src/Parser/api.ts +1 -1
  129. package/_src/Parser/interpreter.ts +98 -75
  130. package/_src/Schema/api/conc.ts +33 -42
  131. package/_src/Schema/api/either.ts +20 -30
  132. package/_src/Schema/api/hashMap.ts +40 -124
  133. package/_src/Schema/api/hashSet.ts +31 -117
  134. package/_src/Schema/api/immutableArray.ts +15 -45
  135. package/_src/Schema/api/list.ts +32 -55
  136. package/_src/Schema/api/map.ts +93 -0
  137. package/_src/Schema/api/maybe.ts +19 -34
  138. package/_src/Schema/api/set.ts +74 -0
  139. package/_src/Schema/api.ts +21 -3
  140. package/_src/Schema/derivations.ts +1 -1
  141. package/_src/Schema.ts +2 -0
  142. package/_src/Show.ts +156 -128
  143. package/_src/global.ts +0 -4
  144. package/_src/utils.ts +5 -0
  145. package/global.d.ts +0 -4
  146. package/package.json +2 -2
  147. package/utils.d.ts +1 -0
  148. package/ParseFailure.d.ts +0 -18
  149. package/_cjs/ParseFailure.cjs +0 -28
  150. package/_cjs/ParseFailure.cjs.map +0 -1
  151. package/_mjs/ParseFailure.mjs +0 -20
  152. package/_mjs/ParseFailure.mjs.map +0 -1
  153. package/_src/ParseFailure.ts +0 -18
@@ -4,20 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.parserFor = parserFor;
7
- var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/Parser/definition"));
8
- var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/ParseResult"));
9
- var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/Vector/api"));
10
- var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/api"));
11
- var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/AST"));
12
- var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/ParseError"));
13
- var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/Vector/internal"));
14
- var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Either/api"));
7
+ var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Either/api"));
8
+ var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/Parser/definition"));
9
+ var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/ParseResult"));
10
+ var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/Vector/api"));
11
+ var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/api"));
12
+ var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/AST"));
13
+ var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/ParseError/ParseError"));
14
+ var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/Vector/internal"));
15
15
  var tsplus_module_9 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/definition"));
16
- var tsplus_module_10 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/ParseFailure"));
17
16
  var _Global = /*#__PURE__*/require("@fncts/base/data/Global");
18
17
  var _predicates = /*#__PURE__*/require("@fncts/base/util/predicates");
19
18
  var _AST2 = /*#__PURE__*/require("../AST.cjs");
20
- var _ParseError2 = /*#__PURE__*/require("../ParseError.cjs");
19
+ var _ParseError2 = /*#__PURE__*/require("../ParseError/ParseError.cjs");
21
20
  var _utils = /*#__PURE__*/require("../utils.cjs");
22
21
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
22
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -37,90 +36,93 @@ function go(ast, isDecoding) {
37
36
  void 0;
38
37
  switch (ast._tag) {
39
38
  case 0 /* ASTTag.Declaration */:
40
- return tsplus_module_1.make(ast.decode(...ast.typeParameters));
39
+ {
40
+ const parse = isDecoding ? ast.decode(...ast.typeParameters) : ast.encode(...ast.typeParameters);
41
+ return tsplus_module_2.make((input, options) => tsplus_module_1.mapLeft(error => new _ParseError2.DeclarationError(ast, input, error))(parse(input, options)));
42
+ }
41
43
  case 1 /* ASTTag.Literal */:
42
- return tsplus_module_1.fromRefinement(ast, u => u === ast.literal);
44
+ return tsplus_module_2.fromRefinement(ast, u => u === ast.literal);
43
45
  case 2 /* ASTTag.UniqueSymbol */:
44
- return tsplus_module_1.fromRefinement(ast, u => u === ast.symbol);
46
+ return tsplus_module_2.fromRefinement(ast, u => u === ast.symbol);
45
47
  case 3 /* ASTTag.UndefinedKeyword */:
46
48
  case 4 /* ASTTag.VoidKeyword */:
47
- return tsplus_module_1.fromRefinement(ast, _predicates.isUndefined);
49
+ return tsplus_module_2.fromRefinement(ast, _predicates.isUndefined);
48
50
  case 5 /* ASTTag.NeverKeyword */:
49
- return tsplus_module_1.fromRefinement(ast, _ => false);
51
+ return tsplus_module_2.fromRefinement(ast, _ => false);
50
52
  case 6 /* ASTTag.UnknownKeyword */:
51
53
  case 7 /* ASTTag.AnyKeyword */:
52
- return tsplus_module_1.make(tsplus_module_2.succeed);
54
+ return tsplus_module_2.make(tsplus_module_3.succeed);
53
55
  case 8 /* ASTTag.StringKeyword */:
54
- return tsplus_module_1.fromRefinement(ast, _predicates.isString);
56
+ return tsplus_module_2.fromRefinement(ast, _predicates.isString);
55
57
  case 9 /* ASTTag.NumberKeyword */:
56
- return tsplus_module_1.fromRefinement(ast, _predicates.isNumber);
58
+ return tsplus_module_2.fromRefinement(ast, _predicates.isNumber);
57
59
  case 10 /* ASTTag.BooleanKeyword */:
58
- return tsplus_module_1.fromRefinement(ast, _predicates.isBoolean);
60
+ return tsplus_module_2.fromRefinement(ast, _predicates.isBoolean);
59
61
  case 11 /* ASTTag.BigIntKeyword */:
60
- return tsplus_module_1.fromRefinement(ast, _predicates.isBigInt);
62
+ return tsplus_module_2.fromRefinement(ast, _predicates.isBigInt);
61
63
  case 12 /* ASTTag.SymbolKeyword */:
62
- return tsplus_module_1.fromRefinement(ast, _predicates.isSymbol);
64
+ return tsplus_module_2.fromRefinement(ast, _predicates.isSymbol);
63
65
  case 13 /* ASTTag.ObjectKeyword */:
64
- return tsplus_module_1.fromRefinement(ast, _predicates.isObject);
66
+ return tsplus_module_2.fromRefinement(ast, _predicates.isObject);
65
67
  case 14 /* ASTTag.Enum */:
66
- return tsplus_module_1.fromRefinement(ast, u => tsplus_module_3.some(([_, value]) => value === u)(ast.enums));
68
+ return tsplus_module_2.fromRefinement(ast, u => tsplus_module_4.some(([_, value]) => value === u)(ast.enums));
67
69
  case 15 /* ASTTag.TemplateLiteral */:
68
70
  {
69
71
  const regex = (0, _utils.getTemplateLiteralRegex)(ast);
70
- return tsplus_module_1.fromRefinement(ast, u => (0, _predicates.isString)(u) && regex.test(u));
72
+ return tsplus_module_2.fromRefinement(ast, u => (0, _predicates.isString)(u) && regex.test(u));
71
73
  }
72
74
  case 16 /* ASTTag.Tuple */:
73
75
  {
74
- const elements = tsplus_module_3.map(e => goMemo(e.type, isDecoding))(ast.elements);
75
- const rest = tsplus_module_4.map(rest => tsplus_module_3.map(ast => goMemo(ast, isDecoding))(rest))(ast.rest);
76
- return tsplus_module_1.make((input, options) => {
76
+ const elements = tsplus_module_4.map(e => goMemo(e.type, isDecoding))(ast.elements);
77
+ const rest = tsplus_module_5.map(rest => tsplus_module_4.map(ast => goMemo(ast, isDecoding))(rest))(ast.rest);
78
+ return tsplus_module_2.make((input, options) => {
77
79
  if (!Array.isArray(input)) {
78
- return tsplus_module_2.fail(tsplus_module_6.typeError(tsplus_module_5.unknownArray, input));
80
+ return tsplus_module_3.fail(tsplus_module_7.typeError(tsplus_module_6.unknownArray, input));
79
81
  }
80
82
  const output = [];
81
- const errors = tsplus_module_3.emptyPushable();
83
+ const errors = tsplus_module_4.emptyPushable();
82
84
  const allErrors = options?.allErrors;
83
85
  let i = 0;
84
86
  for (; i < elements.length; i++) {
85
87
  if (input.length < i + 1) {
86
- if (!tsplus_module_3.unsafeGet(i)(ast.elements).isOptional) {
87
- const e = tsplus_module_6.indexError(i, tsplus_module_3.vector(tsplus_module_6.missingError));
88
- tsplus_module_7.push(e)(errors);
88
+ if (!tsplus_module_4.unsafeGet(i)(ast.elements).isOptional) {
89
+ const e = tsplus_module_7.indexError(i, tsplus_module_7.missingError);
89
90
  if (allErrors) {
91
+ tsplus_module_8.push(e)(errors);
90
92
  continue;
91
93
  } else {
92
- return tsplus_module_2.failures(errors);
94
+ return tsplus_module_3.fail(tsplus_module_7.tupleError(ast, input, tsplus_module_4.vector(e), output));
93
95
  }
94
96
  }
95
97
  } else {
96
- const parser = tsplus_module_3.unsafeGet(i)(elements);
98
+ const parser = tsplus_module_4.unsafeGet(i)(elements);
97
99
  const t = parser(input[i], options);
98
100
  void 0;
99
- if (tsplus_module_8.isLeft(t)) {
100
- const e = tsplus_module_6.indexError(i, t.left.errors);
101
- tsplus_module_7.push(e)(errors);
101
+ if (tsplus_module_1.isLeft(t)) {
102
+ const e = tsplus_module_7.indexError(i, t.left);
102
103
  if (allErrors) {
104
+ tsplus_module_8.push(e)(errors);
103
105
  continue;
104
106
  } else {
105
- return tsplus_module_2.failures(errors);
107
+ return tsplus_module_3.fail(tsplus_module_7.tupleError(ast, input, tsplus_module_4.vector(e), output));
106
108
  }
107
109
  }
108
110
  output.push(t.right);
109
111
  }
110
112
  }
111
113
  if (tsplus_module_9.isJust(rest)) {
112
- const head = tsplus_module_3.unsafeHead(rest.value);
113
- const tail = tsplus_module_3.tail(rest.value);
114
+ const head = tsplus_module_4.unsafeHead(rest.value);
115
+ const tail = tsplus_module_4.tail(rest.value);
114
116
  for (; i < input.length - tail.length; i++) {
115
117
  const t = head(input[i], options);
116
118
  void 0;
117
- if (tsplus_module_8.isLeft(t)) {
118
- const e = tsplus_module_6.indexError(i, t.left.errors);
119
- tsplus_module_7.push(e)(errors);
119
+ if (tsplus_module_1.isLeft(t)) {
120
+ const e = tsplus_module_7.indexError(i, t.left);
120
121
  if (allErrors) {
122
+ tsplus_module_8.push(e)(errors);
121
123
  continue;
122
124
  } else {
123
- return tsplus_module_2.failures(errors);
125
+ return tsplus_module_3.fail(tsplus_module_7.tupleError(ast, input, tsplus_module_4.vector(e), output));
124
126
  }
125
127
  }
126
128
  output.push(t.right);
@@ -128,18 +130,23 @@ function go(ast, isDecoding) {
128
130
  for (let j = 0; j < tail.length; j++) {
129
131
  i += j;
130
132
  if (input.length < i + 1) {
131
- tsplus_module_7.push(tsplus_module_6.indexError(i, tsplus_module_3.vector(tsplus_module_6.missingError)))(errors);
132
- return tsplus_module_2.failures(errors);
133
+ const e = tsplus_module_7.indexError(i, tsplus_module_7.missingError);
134
+ if (allErrors) {
135
+ tsplus_module_8.push(e)(errors);
136
+ continue;
137
+ } else {
138
+ return tsplus_module_3.fail(tsplus_module_7.tupleError(ast, input, tsplus_module_4.vector(e), output));
139
+ }
133
140
  } else {
134
- const t = tsplus_module_3.unsafeGet(j)(tail)(input[i], options);
141
+ const t = tsplus_module_4.unsafeGet(j)(tail)(input[i], options);
135
142
  void 0;
136
- if (tsplus_module_8.isLeft(t)) {
137
- const e = tsplus_module_6.indexError(i, t.left.errors);
138
- tsplus_module_7.push(e)(errors);
143
+ if (tsplus_module_1.isLeft(t)) {
144
+ const e = tsplus_module_7.indexError(i, t.left);
139
145
  if (allErrors) {
146
+ tsplus_module_8.push(e)(errors);
140
147
  continue;
141
148
  } else {
142
- return tsplus_module_2.failures(errors);
149
+ return tsplus_module_3.fail(tsplus_module_7.tupleError(ast, input, tsplus_module_4.vector(e), output));
143
150
  }
144
151
  }
145
152
  output.push(t.right);
@@ -148,60 +155,60 @@ function go(ast, isDecoding) {
148
155
  } else {
149
156
  const isUnexpectedAllowed = options?.isUnexpectedAllowed;
150
157
  for (; i < input.length; i++) {
151
- const e = tsplus_module_6.indexError(i, tsplus_module_3.vector(tsplus_module_6.unexpectedError(input[i])));
158
+ const e = tsplus_module_7.indexError(i, tsplus_module_7.unexpectedError(input[i]));
152
159
  if (!isUnexpectedAllowed) {
153
- tsplus_module_7.push(e)(errors);
154
160
  if (allErrors) {
161
+ tsplus_module_8.push(e)(errors);
155
162
  continue;
156
163
  } else {
157
- return tsplus_module_2.failures(errors);
164
+ return tsplus_module_3.fail(tsplus_module_7.tupleError(ast, input, tsplus_module_4.vector(e), output));
158
165
  }
159
166
  }
160
167
  }
161
168
  }
162
- return tsplus_module_3.isNonEmpty(errors) ? tsplus_module_2.failures(errors) : tsplus_module_2.succeed(output);
169
+ return tsplus_module_4.isNonEmpty(errors) ? tsplus_module_3.fail(tsplus_module_7.tupleError(ast, input, errors, output)) : tsplus_module_3.succeed(output);
163
170
  });
164
171
  }
165
172
  case 17 /* ASTTag.TypeLiteral */:
166
173
  {
167
174
  if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) {
168
- return tsplus_module_1.fromRefinement(ast, u => u !== null);
175
+ return tsplus_module_2.fromRefinement(ast, u => u !== null);
169
176
  }
170
- const propertySignatureTypes = tsplus_module_3.map(f => goMemo(f.type, isDecoding))(ast.propertySignatures);
171
- const indexSignatures = tsplus_module_3.map(is => [goMemo(is.parameter, isDecoding), goMemo(is.type, isDecoding)])(ast.indexSignatures);
172
- return tsplus_module_1.make((input, options) => {
177
+ const propertySignatureTypes = tsplus_module_4.map(f => goMemo(f.type, isDecoding))(ast.propertySignatures);
178
+ const indexSignatures = tsplus_module_4.map(is => [goMemo(is.parameter, isDecoding), goMemo(is.type, isDecoding)])(ast.indexSignatures);
179
+ return tsplus_module_2.make((input, options) => {
173
180
  if (!(0, _predicates.isRecord)(input)) {
174
- return tsplus_module_2.fail(tsplus_module_6.typeError(tsplus_module_5.unknownRecord, input));
181
+ return tsplus_module_3.fail(tsplus_module_7.typeError(tsplus_module_6.unknownRecord, input));
175
182
  }
176
183
  const output = {};
177
184
  const expectedKeys = {};
178
- const errors = tsplus_module_3.emptyPushable();
185
+ const errors = tsplus_module_4.emptyPushable();
179
186
  const allErrors = options?.allErrors;
180
187
  for (let i = 0; i < propertySignatureTypes.length; i++) {
181
- const ps = tsplus_module_3.unsafeGet(i)(ast.propertySignatures);
182
- const parser = tsplus_module_3.unsafeGet(i)(propertySignatureTypes);
188
+ const ps = tsplus_module_4.unsafeGet(i)(ast.propertySignatures);
189
+ const parser = tsplus_module_4.unsafeGet(i)(propertySignatureTypes);
183
190
  const name = ps.name;
184
191
  expectedKeys[name] = null;
185
192
  if (!Object.prototype.hasOwnProperty.call(input, name)) {
186
193
  if (!ps.isOptional) {
187
- const e = tsplus_module_6.keyError(tsplus_module_5.createKey(name), name, tsplus_module_3.vector(tsplus_module_6.missingError));
188
- tsplus_module_7.push(e)(errors);
194
+ const e = tsplus_module_7.keyError(tsplus_module_6.createKey(name), name, tsplus_module_7.missingError);
189
195
  if (allErrors) {
196
+ tsplus_module_8.push(e)(errors);
190
197
  continue;
191
198
  } else {
192
- return tsplus_module_2.failures(errors);
199
+ return tsplus_module_3.fail(tsplus_module_7.typeLiteralError(ast, input, tsplus_module_4.vector(e), output));
193
200
  }
194
201
  }
195
202
  } else {
196
203
  const t = parser(input[name], options);
197
204
  void 0;
198
- if (tsplus_module_8.isLeft(t)) {
199
- const e = tsplus_module_6.keyError(tsplus_module_5.createKey(name), name, t.left.errors);
200
- tsplus_module_7.push(e)(errors);
205
+ if (tsplus_module_1.isLeft(t)) {
206
+ const e = tsplus_module_7.keyError(tsplus_module_6.createKey(name), name, t.left);
201
207
  if (allErrors) {
208
+ tsplus_module_8.push(e)(errors);
202
209
  continue;
203
210
  } else {
204
- return tsplus_module_2.failures(errors);
211
+ return tsplus_module_3.fail(tsplus_module_7.typeLiteralError(ast, input, tsplus_module_4.vector(e), output));
205
212
  }
206
213
  }
207
214
  output[name] = t.right;
@@ -209,32 +216,32 @@ function go(ast, isDecoding) {
209
216
  }
210
217
  if (indexSignatures.length > 0) {
211
218
  for (let i = 0; i < indexSignatures.length; i++) {
212
- const [parameter, type] = tsplus_module_3.unsafeGet(i)(indexSignatures);
213
- const keys = (0, _utils.getKeysForIndexSignature)(input, tsplus_module_3.unsafeGet(i)(ast.indexSignatures).parameter);
219
+ const [parameter, type] = tsplus_module_4.unsafeGet(i)(indexSignatures);
220
+ const keys = (0, _utils.getKeysForIndexSignature)(input, tsplus_module_4.unsafeGet(i)(ast.indexSignatures).parameter);
214
221
  for (const key of keys) {
215
222
  if (Object.prototype.hasOwnProperty.call(expectedKeys, key)) {
216
223
  continue;
217
224
  }
218
225
  let t = parameter(key, options);
219
226
  void 0;
220
- if (tsplus_module_8.isLeft(t)) {
221
- const e = tsplus_module_6.keyError(tsplus_module_5.createKey(key), key, t.left.errors);
222
- tsplus_module_7.push(e)(errors);
227
+ if (tsplus_module_1.isLeft(t)) {
228
+ const e = tsplus_module_7.keyError(tsplus_module_6.createKey(key), key, t.left);
223
229
  if (allErrors) {
230
+ tsplus_module_8.push(e)(errors);
224
231
  continue;
225
232
  } else {
226
- return tsplus_module_2.failures(errors);
233
+ return tsplus_module_3.fail(tsplus_module_7.typeLiteralError(ast, input, tsplus_module_4.vector(e), output));
227
234
  }
228
235
  }
229
236
  t = type(input[key], options);
230
237
  void 0;
231
- if (tsplus_module_8.isLeft(t)) {
232
- const e = tsplus_module_6.keyError(tsplus_module_5.createKey(key), key, t.left.errors);
233
- tsplus_module_7.push(e)(errors);
238
+ if (tsplus_module_1.isLeft(t)) {
239
+ const e = tsplus_module_7.keyError(tsplus_module_6.createKey(key), key, t.left);
240
+ tsplus_module_8.push(e)(errors);
234
241
  if (allErrors) {
235
242
  continue;
236
243
  } else {
237
- return tsplus_module_2.failures(errors);
244
+ return tsplus_module_3.fail(tsplus_module_7.typeLiteralError(ast, input, tsplus_module_4.vector(e), output));
238
245
  }
239
246
  }
240
247
  output[key] = t.right;
@@ -244,19 +251,19 @@ function go(ast, isDecoding) {
244
251
  const isUnexpectedAllowed = options?.isUnexpectedAllowed;
245
252
  for (const key of (0, _utils.ownKeys)(input)) {
246
253
  if (!Object.prototype.hasOwnProperty.call(expectedKeys, key)) {
247
- const e = tsplus_module_6.keyError(tsplus_module_5.createKey(key), key, tsplus_module_3.vector(tsplus_module_6.unexpectedError(input[key])));
248
254
  if (!isUnexpectedAllowed) {
249
- tsplus_module_7.push(e)(errors);
255
+ const e = tsplus_module_7.keyError(tsplus_module_6.createKey(key), key, tsplus_module_7.unexpectedError(input[key]));
250
256
  if (allErrors) {
257
+ tsplus_module_8.push(e)(errors);
251
258
  continue;
252
259
  } else {
253
- return tsplus_module_2.failures(errors);
260
+ return tsplus_module_3.fail(tsplus_module_7.typeLiteralError(ast, input, tsplus_module_4.vector(e), output));
254
261
  }
255
262
  }
256
263
  }
257
264
  }
258
265
  }
259
- return tsplus_module_3.isNonEmpty(errors) ? tsplus_module_2.failures(errors) : tsplus_module_2.succeed(output);
266
+ return tsplus_module_4.isNonEmpty(errors) ? tsplus_module_3.fail(tsplus_module_7.typeLiteralError(ast, input, errors, output)) : tsplus_module_3.succeed(output);
260
267
  });
261
268
  }
262
269
  case 18 /* ASTTag.Union */:
@@ -264,13 +271,13 @@ function go(ast, isDecoding) {
264
271
  const searchTree = (0, _AST2.getSearchTree)(ast.types, isDecoding);
265
272
  const ownKeys = Reflect.ownKeys(searchTree.keys);
266
273
  const len = ownKeys.length;
267
- const otherwise = searchTree.otherwise;
268
274
  const map = new Map();
269
- tsplus_module_3.forEach(ast => {
275
+ tsplus_module_4.forEach(ast => {
270
276
  map.set(ast, goMemo(ast, isDecoding));
271
277
  })(ast.types);
272
- return tsplus_module_1.make((input, options) => {
273
- const errors = tsplus_module_3.emptyPushable();
278
+ return tsplus_module_2.make((input, options) => {
279
+ const errors = tsplus_module_4.emptyPushable();
280
+ let candidates = [];
274
281
  if (len > 0) {
275
282
  if ((0, _predicates.isRecord)(input)) {
276
283
  for (let i = 0; i < len; i++) {
@@ -279,54 +286,51 @@ function go(ast, isDecoding) {
279
286
  if (Object.prototype.hasOwnProperty.call(input, name)) {
280
287
  const literal = String(input[name]);
281
288
  if (Object.prototype.hasOwnProperty.call(buckets, literal)) {
282
- const bucket = buckets[literal];
283
- for (let i = 0; i < bucket.length; i++) {
284
- const t = map.get(bucket[i])(input, options);
285
- void 0;
286
- if (tsplus_module_8.isRight(t)) {
287
- return t;
288
- } else {
289
- tsplus_module_7.push(tsplus_module_6.unionMemberError(t.left.errors))(errors);
290
- }
291
- }
289
+ candidates = candidates.concat(buckets[literal]);
292
290
  } else {
293
- tsplus_module_7.push(tsplus_module_6.keyError(tsplus_module_5.createKey(name), name, tsplus_module_3.vector(tsplus_module_6.typeError(searchTree.keys[name].ast, input[name]))))(errors);
291
+ const literals = tsplus_module_6.createUnion(tsplus_module_4.from(searchTree.keys[name].literals));
292
+ tsplus_module_8.push(tsplus_module_7.typeLiteralError(tsplus_module_6.createTypeLiteral(tsplus_module_4.vector(tsplus_module_6.createPropertySignature(name, literals, false, true)), tsplus_module_4.vector()), input, tsplus_module_4.vector(tsplus_module_7.keyError(tsplus_module_6.createKey(name), name, tsplus_module_7.typeError(searchTree.keys[name].ast, input[name])))))(errors);
294
293
  }
295
294
  } else {
296
- tsplus_module_7.push(tsplus_module_6.keyError(tsplus_module_5.createKey(name), name, tsplus_module_3.vector(tsplus_module_6.missingError)))(errors);
295
+ const literals = tsplus_module_6.createUnion(tsplus_module_4.from(searchTree.keys[name].literals));
296
+ tsplus_module_8.push(tsplus_module_7.typeLiteralError(tsplus_module_6.createTypeLiteral(tsplus_module_4.vector(tsplus_module_6.createPropertySignature(name, literals, false, true)), tsplus_module_4.vector()), input, tsplus_module_4.vector(tsplus_module_7.keyError(tsplus_module_6.createKey(name), name, tsplus_module_7.missingError))))(errors);
297
297
  }
298
298
  }
299
299
  } else {
300
- tsplus_module_7.push(tsplus_module_6.typeError(tsplus_module_5.unknownRecord, input))(errors);
300
+ tsplus_module_8.push(tsplus_module_7.typeError(tsplus_module_6.unknownRecord, input))(errors);
301
301
  }
302
302
  }
303
- for (let i = 0; i < otherwise.length; i++) {
304
- const t = map.get(otherwise[i])(input, options);
303
+ if (searchTree.otherwise.length > 0) {
304
+ candidates = candidates.concat(searchTree.otherwise);
305
+ }
306
+ for (let i = 0; i < candidates.length; i++) {
307
+ const candidate = candidates[i];
308
+ const pr = map.get(candidate)(input, options);
305
309
  void 0;
306
- if (tsplus_module_8.isRight(t)) {
307
- return t;
310
+ if (tsplus_module_1.isRight(pr)) {
311
+ return pr;
308
312
  } else {
309
- tsplus_module_7.push(tsplus_module_6.unionMemberError(t.left.errors))(errors);
313
+ tsplus_module_8.push(tsplus_module_7.unionMemberError(candidate, pr.left))(errors);
310
314
  }
311
315
  }
312
- return tsplus_module_3.isNonEmpty(errors) ? tsplus_module_2.failures(errors) : tsplus_module_2.fail(tsplus_module_6.typeError(tsplus_module_5.neverKeyword, input));
316
+ return tsplus_module_4.isNonEmpty(errors) ? errors.length === 1 && tsplus_module_4.unsafeGet(0)(errors)._tag === 1 /* ParseErrorTag.Type */ ? tsplus_module_3.fail(tsplus_module_4.unsafeGet(0)(errors)) : tsplus_module_3.fail(tsplus_module_7.unionError(ast, input, tsplus_module_4.from(errors))) : tsplus_module_3.fail(tsplus_module_7.typeError(tsplus_module_6.neverKeyword, input));
313
317
  });
314
318
  }
315
319
  case 19 /* ASTTag.Lazy */:
316
320
  {
317
321
  const f = () => goMemo(ast.getAST(), isDecoding);
318
322
  const get = (0, _utils.memoize)(f);
319
- return tsplus_module_1.make((a, options) => get()(a, options));
323
+ return tsplus_module_2.make((a, options) => get()(a, options));
320
324
  }
321
325
  case 20 /* ASTTag.Refinement */:
322
326
  {
323
327
  if (isDecoding) {
324
328
  const from = goMemo(ast.from, isDecoding);
325
- return tsplus_module_1.make((input, options) => tsplus_module_8.flatMap(a => tsplus_module_8.mapLeft(failure => tsplus_module_10.make(tsplus_module_3.vector(tsplus_module_6.refinementError(ast, input, "Predicate", failure.errors))))(ast.decode(a, options)))(tsplus_module_8.mapLeft(failure => tsplus_module_10.make(tsplus_module_3.vector(tsplus_module_6.refinementError(ast, input, "From", failure.errors))))(from(input, options))));
329
+ return tsplus_module_2.make((input, options) => tsplus_module_1.flatMap(a => tsplus_module_1.mapLeft(failure => tsplus_module_7.refinementError(ast, input, "Predicate", failure))(ast.decode(a, options)))(tsplus_module_1.mapLeft(failure => tsplus_module_7.refinementError(ast, input, "From", failure))(from(input, options))));
326
330
  } else {
327
331
  const from = goMemo(ast.from, true);
328
- const to = goMemo(tsplus_module_5.getTo(ast.from), false);
329
- return tsplus_module_1.make((input, options) => tsplus_module_8.flatMap(a => from(a, options))(tsplus_module_8.flatMap(a => ast.decode(a, options))(to(input, options))));
332
+ const to = goMemo(tsplus_module_6.getTo(ast.from), false);
333
+ return tsplus_module_2.make((input, options) => tsplus_module_1.flatMap(a => from(a, options))(tsplus_module_1.flatMap(a => ast.decode(a, options))(to(input, options))));
330
334
  }
331
335
  }
332
336
  case 21 /* ASTTag.Transform */:
@@ -334,24 +338,24 @@ function go(ast, isDecoding) {
334
338
  const transformation = isDecoding ? ast.decode : ast.encode;
335
339
  const from = isDecoding ? goMemo(ast.from, true) : goMemo(ast.to, false);
336
340
  const to = isDecoding ? goMemo(ast.to, true) : goMemo(ast.from, false);
337
- return tsplus_module_1.make((input, options) => tsplus_module_8.flatMap(a => tsplus_module_8.mapLeft(failure => tsplus_module_10.make(tsplus_module_3.vector(tsplus_module_6.transformationError(ast, input, isDecoding ? "Type" : "Encoded", failure.errors))))(to(a, options)))(tsplus_module_8.flatMap(a => tsplus_module_8.mapLeft(failure => tsplus_module_10.make(tsplus_module_3.vector(tsplus_module_6.transformationError(ast, input, "Transformation", failure.errors))))(transformation(a, options)))(tsplus_module_8.mapLeft(failure => tsplus_module_10.make(tsplus_module_3.vector(tsplus_module_6.transformationError(ast, input, isDecoding ? "Encoded" : "Type", failure.errors))))(from(input, options)))));
341
+ return tsplus_module_2.make((input, options) => tsplus_module_1.flatMap(a => tsplus_module_1.mapLeft(failure => tsplus_module_7.transformationError(ast, input, isDecoding ? "Type" : "Encoded", failure))(to(a, options)))(tsplus_module_1.flatMap(a => tsplus_module_1.mapLeft(failure => tsplus_module_7.transformationError(ast, input, "Transformation", failure))(transformation(a, options)))(tsplus_module_1.mapLeft(failure => tsplus_module_7.transformationError(ast, input, isDecoding ? "Encoded" : "Type", failure))(from(input, options)))));
338
342
  }
339
343
  case 22 /* ASTTag.Validation */:
340
344
  {
341
- return tsplus_module_1.make((u, options) => {
342
- const missedBrands = tsplus_module_3.emptyPushable();
345
+ return tsplus_module_2.make((u, options) => {
346
+ const missedBrands = tsplus_module_4.emptyPushable();
343
347
  const allErrors = options?.allErrors;
344
348
  for (const validation of ast.validation) {
345
349
  if (!validation.validate(u)) {
346
- tsplus_module_7.push(validation)(missedBrands);
350
+ tsplus_module_8.push(validation)(missedBrands);
347
351
  if (allErrors) {
348
352
  continue;
349
353
  } else {
350
- return tsplus_module_2.fail(tsplus_module_6.typeError(tsplus_module_5.createValidation(ast.from, missedBrands, ast.annotations), u));
354
+ return tsplus_module_3.fail(tsplus_module_7.typeError(tsplus_module_6.createValidation(ast.from, missedBrands, ast.annotations), u));
351
355
  }
352
356
  }
353
357
  }
354
- return missedBrands.length > 0 ? tsplus_module_2.fail(tsplus_module_6.typeError(tsplus_module_5.createValidation(ast.from, missedBrands, ast.annotations), u)) : tsplus_module_2.succeed(u);
358
+ return missedBrands.length > 0 ? tsplus_module_3.fail(tsplus_module_7.typeError(tsplus_module_6.createValidation(ast.from, missedBrands, ast.annotations), u)) : tsplus_module_3.succeed(u);
355
359
  });
356
360
  }
357
361
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interpreter.cjs","names":["_Global","require","_predicates","_AST2","_ParseError2","_utils","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","decodeMemoMap","globalValue","Symbol","for","encodeMemoMap","goMemo","ast","isDecoding","memoMap","memo","parser","go","_tag","tsplus_module_1","make","decode","typeParameters","fromRefinement","literal","symbol","isUndefined","_","tsplus_module_2","succeed","isString","isNumber","isBoolean","isBigInt","isSymbol","isObject","tsplus_module_3","some","value","enums","regex","getTemplateLiteralRegex","test","elements","map","type","rest","tsplus_module_4","input","options","Array","isArray","fail","tsplus_module_6","typeError","tsplus_module_5","unknownArray","output","errors","emptyPushable","allErrors","length","unsafeGet","isOptional","indexError","vector","missingError","tsplus_module_7","push","failures","tsplus_module_8","isLeft","left","right","tsplus_module_9","isJust","head","unsafeHead","tail","j","isUnexpectedAllowed","unexpectedError","isNonEmpty","propertySignatures","indexSignatures","propertySignatureTypes","f","is","parameter","isRecord","unknownRecord","expectedKeys","ps","name","keyError","createKey","keys","getKeysForIndexSignature","key","ownKeys","searchTree","getSearchTree","types","Reflect","len","otherwise","Map","forEach","buckets","String","bucket","isRight","unionMemberError","neverKeyword","getAST","memoize","from","flatMap","mapLeft","failure","tsplus_module_10","refinementError","to","getTo","transformation","encode","transformationError","missedBrands","validation","validate","createValidation","annotations","parserFor"],"sources":["../../_src/Parser/interpreter.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"interpreter.cjs","names":["_Global","require","_predicates","_AST2","_ParseError2","_utils","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","decodeMemoMap","globalValue","Symbol","for","encodeMemoMap","goMemo","ast","isDecoding","memoMap","memo","parser","go","_tag","parse","decode","typeParameters","encode","tsplus_module_2","make","input","options","tsplus_module_1","mapLeft","error","DeclarationError","fromRefinement","literal","symbol","isUndefined","_","tsplus_module_3","succeed","isString","isNumber","isBoolean","isBigInt","isSymbol","isObject","tsplus_module_4","some","value","enums","regex","getTemplateLiteralRegex","test","elements","map","type","rest","tsplus_module_5","Array","isArray","fail","tsplus_module_7","typeError","tsplus_module_6","unknownArray","output","errors","emptyPushable","allErrors","length","unsafeGet","isOptional","indexError","missingError","tsplus_module_8","push","tupleError","vector","isLeft","left","right","tsplus_module_9","isJust","head","unsafeHead","tail","j","isUnexpectedAllowed","unexpectedError","isNonEmpty","propertySignatures","indexSignatures","propertySignatureTypes","f","is","parameter","isRecord","unknownRecord","expectedKeys","ps","name","keyError","createKey","typeLiteralError","keys","getKeysForIndexSignature","key","ownKeys","searchTree","getSearchTree","types","Reflect","len","Map","forEach","candidates","buckets","String","concat","literals","createUnion","from","createTypeLiteral","createPropertySignature","otherwise","candidate","pr","isRight","unionMemberError","unionError","neverKeyword","getAST","memoize","flatMap","failure","refinementError","to","getTo","transformation","transformationError","missedBrands","validation","validate","createValidation","annotations","parserFor"],"sources":["../../_src/Parser/interpreter.ts"],"sourcesContent":[null],"mappings":"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"}