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