@fncts/schema 0.0.5 → 0.0.6

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 (151) hide show
  1. package/AST.d.ts +528 -0
  2. package/ASTAnnotation.d.ts +82 -0
  3. package/ASTAnnotationMap.d.ts +14 -0
  4. package/Gen.d.ts +15 -0
  5. package/InvalidInterpretationError.d.ts +5 -0
  6. package/ParseError.d.ts +107 -0
  7. package/ParseResult.d.ts +24 -0
  8. package/Parser/api.d.ts +42 -0
  9. package/Parser/definition.d.ts +22 -0
  10. package/Parser/interpreter.d.ts +6 -0
  11. package/Parser.d.ts +2 -0
  12. package/Schema/api/conc.d.ts +18 -0
  13. package/Schema/api/hashMap.d.ts +21 -0
  14. package/Schema/api/immutableArray.d.ts +23 -0
  15. package/Schema/api/list.d.ts +23 -0
  16. package/Schema/api/maybe.d.ts +21 -0
  17. package/Schema/api.d.ts +243 -0
  18. package/Schema/definition.d.ts +29 -0
  19. package/Schema/derivations.d.ts +70 -0
  20. package/Schema.d.ts +2 -144
  21. package/_cjs/AST.cjs +1171 -0
  22. package/_cjs/AST.cjs.map +1 -0
  23. package/_cjs/ASTAnnotation.cjs +111 -0
  24. package/_cjs/ASTAnnotation.cjs.map +1 -0
  25. package/_cjs/ASTAnnotationMap.cjs +35 -0
  26. package/_cjs/ASTAnnotationMap.cjs.map +1 -0
  27. package/_cjs/Gen.cjs +185 -0
  28. package/_cjs/Gen.cjs.map +1 -0
  29. package/_cjs/InvalidInterpretationError.cjs +18 -0
  30. package/_cjs/InvalidInterpretationError.cjs.map +1 -0
  31. package/_cjs/ParseError.cjs +222 -0
  32. package/_cjs/ParseError.cjs.map +1 -0
  33. package/_cjs/{Decoder.cjs → ParseResult.cjs} +24 -22
  34. package/_cjs/ParseResult.cjs.map +1 -0
  35. package/_cjs/Parser/api.cjs +80 -0
  36. package/_cjs/Parser/api.cjs.map +1 -0
  37. package/_cjs/{Guard.cjs → Parser/definition.cjs} +17 -22
  38. package/_cjs/Parser/definition.cjs.map +1 -0
  39. package/_cjs/Parser/interpreter.cjs +409 -0
  40. package/_cjs/Parser/interpreter.cjs.map +1 -0
  41. package/_cjs/Parser.cjs +28 -0
  42. package/_cjs/Parser.cjs.map +1 -0
  43. package/_cjs/Schema/api/conc.cjs +84 -0
  44. package/_cjs/Schema/api/conc.cjs.map +1 -0
  45. package/_cjs/Schema/api/hashMap.cjs +161 -0
  46. package/_cjs/Schema/api/hashMap.cjs.map +1 -0
  47. package/_cjs/Schema/api/immutableArray.cjs +90 -0
  48. package/_cjs/Schema/api/immutableArray.cjs.map +1 -0
  49. package/_cjs/Schema/api/list.cjs +98 -0
  50. package/_cjs/Schema/api/list.cjs.map +1 -0
  51. package/_cjs/Schema/api/maybe.cjs +75 -0
  52. package/_cjs/Schema/api/maybe.cjs.map +1 -0
  53. package/_cjs/Schema/api.cjs +424 -0
  54. package/_cjs/Schema/api.cjs.map +1 -0
  55. package/_cjs/Schema/definition.cjs +26 -0
  56. package/_cjs/Schema/definition.cjs.map +1 -0
  57. package/_cjs/Schema/derivations.cjs +108 -0
  58. package/_cjs/Schema/derivations.cjs.map +1 -0
  59. package/_cjs/Schema.cjs +20 -237
  60. package/_cjs/Schema.cjs.map +1 -1
  61. package/_cjs/utils.cjs +52 -0
  62. package/_cjs/utils.cjs.map +1 -0
  63. package/_mjs/AST.mjs +1060 -0
  64. package/_mjs/AST.mjs.map +1 -0
  65. package/_mjs/ASTAnnotation.mjs +80 -0
  66. package/_mjs/ASTAnnotation.mjs.map +1 -0
  67. package/_mjs/ASTAnnotationMap.mjs +27 -0
  68. package/_mjs/ASTAnnotationMap.mjs.map +1 -0
  69. package/_mjs/Gen.mjs +176 -0
  70. package/_mjs/Gen.mjs.map +1 -0
  71. package/_mjs/InvalidInterpretationError.mjs +10 -0
  72. package/_mjs/InvalidInterpretationError.mjs.map +1 -0
  73. package/_mjs/ParseError.mjs +200 -0
  74. package/_mjs/ParseError.mjs.map +1 -0
  75. package/_mjs/ParseResult.mjs +21 -0
  76. package/_mjs/ParseResult.mjs.map +1 -0
  77. package/_mjs/Parser/api.mjs +67 -0
  78. package/_mjs/Parser/api.mjs.map +1 -0
  79. package/_mjs/Parser/definition.mjs +15 -0
  80. package/_mjs/Parser/definition.mjs.map +1 -0
  81. package/_mjs/Parser/interpreter.mjs +401 -0
  82. package/_mjs/Parser/interpreter.mjs.map +1 -0
  83. package/_mjs/Parser.mjs +4 -0
  84. package/_mjs/Parser.mjs.map +1 -0
  85. package/_mjs/Schema/api/conc.mjs +72 -0
  86. package/_mjs/Schema/api/conc.mjs.map +1 -0
  87. package/_mjs/Schema/api/hashMap.mjs +150 -0
  88. package/_mjs/Schema/api/hashMap.mjs.map +1 -0
  89. package/_mjs/Schema/api/immutableArray.mjs +79 -0
  90. package/_mjs/Schema/api/immutableArray.mjs.map +1 -0
  91. package/_mjs/Schema/api/list.mjs +87 -0
  92. package/_mjs/Schema/api/list.mjs.map +1 -0
  93. package/_mjs/Schema/api/maybe.mjs +64 -0
  94. package/_mjs/Schema/api/maybe.mjs.map +1 -0
  95. package/_mjs/Schema/api.mjs +367 -0
  96. package/_mjs/Schema/api.mjs.map +1 -0
  97. package/_mjs/Schema/definition.mjs +16 -0
  98. package/_mjs/Schema/definition.mjs.map +1 -0
  99. package/_mjs/Schema/derivations.mjs +94 -0
  100. package/_mjs/Schema/derivations.mjs.map +1 -0
  101. package/_mjs/Schema.mjs +3 -212
  102. package/_mjs/Schema.mjs.map +1 -1
  103. package/_mjs/utils.mjs +41 -0
  104. package/_mjs/utils.mjs.map +1 -0
  105. package/_src/AST.ts +1353 -0
  106. package/_src/ASTAnnotation.ts +98 -0
  107. package/_src/ASTAnnotationMap.ts +38 -0
  108. package/_src/Gen.ts +171 -0
  109. package/_src/InvalidInterpretationError.ts +6 -0
  110. package/_src/ParseError.ts +237 -0
  111. package/_src/ParseResult.ts +26 -0
  112. package/_src/Parser/api.ts +71 -0
  113. package/_src/Parser/definition.ts +24 -0
  114. package/_src/Parser/interpreter.ts +442 -0
  115. package/_src/Parser.ts +4 -0
  116. package/_src/Schema/api/conc.ts +78 -0
  117. package/_src/Schema/api/hashMap.ts +184 -0
  118. package/_src/Schema/api/immutableArray.ts +88 -0
  119. package/_src/Schema/api/list.ts +96 -0
  120. package/_src/Schema/api/maybe.ts +68 -0
  121. package/_src/Schema/api.ts +530 -0
  122. package/_src/Schema/definition.ts +32 -0
  123. package/_src/Schema/derivations.ts +185 -0
  124. package/_src/Schema.ts +4 -254
  125. package/_src/global.ts +53 -0
  126. package/_src/utils.ts +48 -0
  127. package/global.d.ts +52 -0
  128. package/package.json +2 -2
  129. package/utils.d.ts +8 -0
  130. package/Decoder.d.ts +0 -3
  131. package/Encoder.d.ts +0 -4
  132. package/Guard.d.ts +0 -3
  133. package/Schemable.d.ts +0 -39
  134. package/_cjs/Decoder.cjs.map +0 -1
  135. package/_cjs/Encoder.cjs +0 -45
  136. package/_cjs/Encoder.cjs.map +0 -1
  137. package/_cjs/Guard.cjs.map +0 -1
  138. package/_cjs/Schemable.cjs +0 -6
  139. package/_cjs/Schemable.cjs.map +0 -1
  140. package/_mjs/Decoder.mjs +0 -20
  141. package/_mjs/Decoder.mjs.map +0 -1
  142. package/_mjs/Encoder.mjs +0 -36
  143. package/_mjs/Encoder.mjs.map +0 -1
  144. package/_mjs/Guard.mjs +0 -20
  145. package/_mjs/Guard.mjs.map +0 -1
  146. package/_mjs/Schemable.mjs +0 -2
  147. package/_mjs/Schemable.mjs.map +0 -1
  148. package/_src/Decoder.ts +0 -20
  149. package/_src/Encoder.ts +0 -38
  150. package/_src/Guard.ts +0 -20
  151. package/_src/Schemable.ts +0 -46
@@ -0,0 +1,67 @@
1
+ import * as tsplus_module_1 from "@fncts/schema/AST";
2
+ import * as tsplus_module_2 from "@fncts/base/data/Either/api";
3
+ import * as tsplus_module_3 from "@fncts/schema/ParseError";
4
+ import * as tsplus_module_4 from "@fncts/base/data/function/api";
5
+ import * as tsplus_module_5 from "@fncts/base/data/Either/destructors";
6
+ import { parserFor } from "./interpreter.mjs";
7
+ /**
8
+ * @tsplus getter fncts.schema.Schema decode
9
+ * @tsplus getter fncts.schema.Parser decode
10
+ */
11
+ export function decode(schema) {
12
+ return parserFor(schema.ast);
13
+ }
14
+ /**
15
+ * @tsplus getter fncts.schema.Schema decodeMaybe
16
+ * @tsplus getter fncts.schema.Parser decodeMaybe
17
+ */
18
+ export function decodeMaybe(schema) {
19
+ return parseMaybe(tsplus_module_1.getTo(schema.ast));
20
+ }
21
+ /**
22
+ * @tsplus getter fncts.schema.Schema encode
23
+ * @tsplus getter fncts.schema.Parser encode
24
+ */
25
+ export function encode(schema) {
26
+ return parserFor(tsplus_module_1.reverse(schema.ast));
27
+ }
28
+ /**
29
+ * @tsplus getter fncts.schema.Schema encodeMaybe
30
+ * @tsplus getter fncts.schema.Parser encodeMaybe
31
+ */
32
+ export function encodeMaybe(schema) {
33
+ return parseMaybe(tsplus_module_1.reverse(schema.ast));
34
+ }
35
+ /**
36
+ * @tsplus getter fncts.schema.Schema is
37
+ * @tsplus getter fncts.schema.Parser is
38
+ */
39
+ export function is(schema) {
40
+ return (input, options) => {
41
+ return tsplus_module_2.isRight(parserFor(schema.ast)(input, options));
42
+ };
43
+ }
44
+ function parseMaybe(ast) {
45
+ const parse = parserFor(ast);
46
+ return (input, options) => {
47
+ return tsplus_module_2.toMaybe(parse(input, options));
48
+ };
49
+ }
50
+ function parseOrThrow(ast) {
51
+ const parser = parserFor(ast);
52
+ return (input, options) => {
53
+ return tsplus_module_5.match(errors => {
54
+ throw new Error(tsplus_module_3.format(errors));
55
+ }, tsplus_module_4.identity)(parser(input, options));
56
+ };
57
+ }
58
+ /**
59
+ * @tsplus getter fncts.schema.Schema asserts
60
+ * @tsplus getter fncts.schema.Parser asserts
61
+ */
62
+ export function asserts(schema) {
63
+ return (input, options) => {
64
+ parseOrThrow(tsplus_module_1.getTo(schema.ast))(input, options);
65
+ };
66
+ }
67
+ //# sourceMappingURL=api.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.mjs","mappings":";;;;;AAEA,SAASA,SAAS,QAAQ,mBAAkB;AAE5C;;;;AAIA,OAAM,SAAUC,MAAM,CAAIC,MAAiB;EACzC,OAAOF,SAAS,CAACE,MAAM,CAACC,GAAG,CAAC;AAC9B;AAEA;;;;AAIA,OAAM,SAAUC,WAAW,CAAIF,MAAiB;EAC9C,OAAOG,UAAU,uBAACH,MAAM,CAACC,GAAG,EAAO;AACrC;AAEA;;;;AAIA,OAAM,SAAUG,MAAM,CAAIJ,MAAiB;EACzC,OAAOF,SAAS,yBAACE,MAAM,CAACC,GAAG,EAAS;AACtC;AAEA;;;;AAIA,OAAM,SAAUI,WAAW,CAAIL,MAAiB;EAC9C,OAAOG,UAAU,yBAACH,MAAM,CAACC,GAAG,EAAS;AACvC;AAEA;;;;AAIA,OAAM,SAAUK,EAAE,CAAIN,MAAiB;EACrC,OAAO,CAACO,KAAc,EAAEC,OAAsB,KAAgB;IAC5D,OAAOC,iCAAS,CAACT,MAAM,CAACC,GAAG,CAAC,CAACM,KAAK,EAAEC,OAAO,CAAC,CAAU;EACxD,CAAC;AACH;AAEA,SAASL,UAAU,CAACF,GAAQ;EAC1B,MAAMS,KAAK,GAAGZ,SAAS,CAACG,GAAG,CAAC;EAC5B,OAAO,CAACM,KAAc,EAAEC,OAAsB,KAAgB;IAC5D,+BAAOE,KAAK,CAACH,KAAK,EAAEC,OAAO,CAAC;EAC9B,CAAC;AACH;AAEA,SAASG,YAAY,CAACV,GAAQ;EAC5B,MAAMW,MAAM,GAAGd,SAAS,CAACG,GAAG,CAAC;EAC7B,OAAO,CAACM,KAAc,EAAEC,OAAsB,KAAI;IAChD,OAAOK,sBAA8BC,MAAM,IAAI;MAC7C,MAAM,IAAIC,KAAK,CAACC,uBAAkBF,MAAM,CAAC,CAAC;IAC5C,CAAC,4BAFMF,MAAM,CAACL,KAAK,EAAEC,OAAO,CAAC,CAER;EACvB,CAAC;AACH;AAEA;;;;AAIA,OAAM,SAAUS,OAAO,CAAIjB,MAAiB;EAC1C,OAAO,CAACO,KAAc,EAAEC,OAAsB,KAAwB;IACpEG,YAAY,uBAACX,MAAM,CAACC,GAAG,EAAO,CAACM,KAAK,EAAEC,OAAO,CAAC;EAChD,CAAC;AACH","names":["parserFor","decode","schema","ast","decodeMaybe","parseMaybe","encode","encodeMaybe","is","input","options","tsplus_module_2","parse","parseOrThrow","parser","tsplus_module_5","errors","Error","tsplus_module_3","asserts"],"sourceRoot":"","sources":["../../_src/Parser/api.ts"],"sourcesContent":[null]}
@@ -0,0 +1,15 @@
1
+ import * as tsplus_module_1 from "@fncts/schema/ParseResult";
2
+ import * as tsplus_module_2 from "@fncts/schema/ParseError";
3
+ /**
4
+ * @tsplus static fncts.schema.ParserOps make
5
+ */
6
+ export function make(parse) {
7
+ return parse;
8
+ }
9
+ /**
10
+ * @tsplus static fncts.schema.ParserOps fromRefinement
11
+ */
12
+ export function fromRefinement(ast, refinement) {
13
+ return u => refinement(u) ? tsplus_module_1.succeed(u) : tsplus_module_1.fail(tsplus_module_2.typeError(ast, u));
14
+ }
15
+ //# sourceMappingURL=definition.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.mjs","mappings":";;AAWA;;;AAGA,OAAM,SAAUA,IAAI,CAAIC,KAAgB;EACtC,OAAOA,KAAK;AACd;AAEA;;;AAGA,OAAM,SAAUC,cAAc,CAAIC,GAAQ,EAAEC,UAAkC;EAC5E,OAAQC,CAAC,IAAMD,UAAU,CAACC,CAAC,CAAC,GAAGC,wBAAoBD,CAAC,CAAC,GAAGC,qBAAiBC,0BAAqBJ,GAAG,EAAEE,CAAC,CAAC,CAAE;AACzG","names":["make","parse","fromRefinement","ast","refinement","u","tsplus_module_1","tsplus_module_2"],"sourceRoot":"","sources":["../../_src/Parser/definition.ts"],"sourcesContent":[null]}
@@ -0,0 +1,401 @@
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/ParseError";
6
+ import * as tsplus_module_6 from "@fncts/base/collection/immutable/Vector/internal";
7
+ import * as tsplus_module_7 from "@fncts/base/data/Either/api";
8
+ import * as tsplus_module_8 from "@fncts/base/data/Maybe/definition";
9
+ import * as tsplus_module_9 from "@fncts/schema/AST";
10
+ import * as tsplus_module_10 from "@fncts/base/data/Maybe/constructors";
11
+ import { isBigInt, isBoolean, isNumber, isObject, isRecord, isString, isSymbol, isUndefined } from "@fncts/base/util/predicates";
12
+ import { concrete } from "../AST.mjs";
13
+ import { getKeysForIndexSignature, getTemplateLiteralRegex, memoize, ownKeys } from "../utils.mjs";
14
+ const go = /*#__PURE__*/memoize(function go(ast) {
15
+ void 0;
16
+ switch (ast._tag) {
17
+ case 0 /* ASTTag.Declaration */:
18
+ return tsplus_module_1.make(ast.decode(...ast.typeParameters));
19
+ case 1 /* ASTTag.Literal */:
20
+ return tsplus_module_1.fromRefinement(ast, u => u === ast.literal);
21
+ case 2 /* ASTTag.UniqueSymbol */:
22
+ return tsplus_module_1.fromRefinement(ast, u => u === ast.symbol);
23
+ case 3 /* ASTTag.UndefinedKeyword */:
24
+ case 4 /* ASTTag.VoidKeyword */:
25
+ return tsplus_module_1.fromRefinement(ast, isUndefined);
26
+ case 5 /* ASTTag.NeverKeyword */:
27
+ return tsplus_module_1.fromRefinement(ast, _ => false);
28
+ case 6 /* ASTTag.UnknownKeyword */:
29
+ case 7 /* ASTTag.AnyKeyword */:
30
+ return tsplus_module_1.make(tsplus_module_2.succeed);
31
+ case 8 /* ASTTag.StringKeyword */:
32
+ return tsplus_module_1.fromRefinement(ast, isString);
33
+ case 9 /* ASTTag.NumberKeyword */:
34
+ return tsplus_module_1.fromRefinement(ast, isNumber);
35
+ case 10 /* ASTTag.BooleanKeyword */:
36
+ return tsplus_module_1.fromRefinement(ast, isBoolean);
37
+ case 11 /* ASTTag.BigIntKeyword */:
38
+ return tsplus_module_1.fromRefinement(ast, isBigInt);
39
+ case 12 /* ASTTag.SymbolKeyword */:
40
+ return tsplus_module_1.fromRefinement(ast, isSymbol);
41
+ case 13 /* ASTTag.ObjectKeyword */:
42
+ return tsplus_module_1.fromRefinement(ast, isObject);
43
+ case 14 /* ASTTag.Enum */:
44
+ return tsplus_module_1.fromRefinement(ast, u => tsplus_module_3.some(([_, value]) => value === u)(ast.enums));
45
+ case 15 /* ASTTag.TemplateLiteral */:
46
+ {
47
+ const regex = getTemplateLiteralRegex(ast);
48
+ return tsplus_module_1.fromRefinement(ast, u => isString(u) && regex.test(u));
49
+ }
50
+ case 16 /* ASTTag.Tuple */:
51
+ {
52
+ const elements = tsplus_module_3.map(e => go(e.type))(ast.elements);
53
+ const rest = tsplus_module_4.map(rest => tsplus_module_3.map(go)(rest))(ast.rest);
54
+ return tsplus_module_1.make((input, options) => {
55
+ if (!Array.isArray(input)) {
56
+ return tsplus_module_2.fail(tsplus_module_5.typeError(unknownArray, input));
57
+ }
58
+ const output = [];
59
+ const errors = tsplus_module_3.emptyPushable();
60
+ const allErrors = options?.allErrors;
61
+ let i = 0;
62
+ for (; i < elements.length; i++) {
63
+ if (input.length < i + i) {
64
+ if (!tsplus_module_3.unsafeGet(i)(ast.elements).isOptional) {
65
+ const e = tsplus_module_5.indexError(i, tsplus_module_3.vector(tsplus_module_5.missingError));
66
+ tsplus_module_6.push(e)(errors);
67
+ if (allErrors) {
68
+ continue;
69
+ } else {
70
+ return tsplus_module_2.failures(errors);
71
+ }
72
+ } else {
73
+ const parser = tsplus_module_3.unsafeGet(i)(elements);
74
+ const t = parser(input[i], options);
75
+ void 0;
76
+ if (tsplus_module_7.isLeft(t)) {
77
+ const e = tsplus_module_5.indexError(i, t.left);
78
+ tsplus_module_6.push(e)(errors);
79
+ if (allErrors) {
80
+ continue;
81
+ } else {
82
+ return tsplus_module_2.failures(errors);
83
+ }
84
+ }
85
+ output.push(t.right);
86
+ }
87
+ }
88
+ }
89
+ if (tsplus_module_8.isJust(rest)) {
90
+ const head = tsplus_module_3.unsafeHead(rest.value);
91
+ const tail = tsplus_module_3.tail(rest.value);
92
+ for (; i < input.length - tail.length; i++) {
93
+ const t = head(input[i], options);
94
+ void 0;
95
+ if (tsplus_module_7.isLeft(t)) {
96
+ const e = tsplus_module_5.indexError(i, t.left);
97
+ tsplus_module_6.push(e)(errors);
98
+ if (allErrors) {
99
+ continue;
100
+ } else {
101
+ return tsplus_module_2.failures(errors);
102
+ }
103
+ }
104
+ output.push(t.right);
105
+ }
106
+ for (let j = 0; j < tail.length; j++) {
107
+ i += j;
108
+ if (input.length < i + 1) {
109
+ tsplus_module_6.push(tsplus_module_5.indexError(i, tsplus_module_3.vector(tsplus_module_5.missingError)))(errors);
110
+ return tsplus_module_2.failures(errors);
111
+ } else {
112
+ const t = tsplus_module_3.unsafeGet(j)(tail)(input[i], options);
113
+ void 0;
114
+ if (tsplus_module_7.isLeft(t)) {
115
+ const e = tsplus_module_5.indexError(i, t.left);
116
+ tsplus_module_6.push(e)(errors);
117
+ if (allErrors) {
118
+ continue;
119
+ } else {
120
+ return tsplus_module_2.failures(errors);
121
+ }
122
+ }
123
+ output.push(t.right);
124
+ }
125
+ }
126
+ } else {
127
+ const isUnexpectedAllowed = options?.isUnexpectedAllowed;
128
+ for (; i < input.length; i++) {
129
+ const e = tsplus_module_5.indexError(i, tsplus_module_3.vector(tsplus_module_5.unexpectedError(input[i])));
130
+ if (!isUnexpectedAllowed) {
131
+ tsplus_module_6.push(e)(errors);
132
+ if (allErrors) {
133
+ continue;
134
+ } else {
135
+ return tsplus_module_2.failures(errors);
136
+ }
137
+ }
138
+ }
139
+ }
140
+ return tsplus_module_3.isNonEmpty(errors) ? tsplus_module_2.failures(errors) : tsplus_module_2.succeed(output);
141
+ });
142
+ }
143
+ case 17 /* ASTTag.TypeLiteral */:
144
+ {
145
+ if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) {
146
+ return tsplus_module_1.fromRefinement(ast, u => u !== null);
147
+ }
148
+ const propertySignatureTypes = tsplus_module_3.map(f => go(f.type))(ast.propertySignatures);
149
+ const indexSignatures = tsplus_module_3.map(is => [go(is.parameter), go(is.type)])(ast.indexSignatures);
150
+ return tsplus_module_1.make((input, options) => {
151
+ if (!isRecord(input)) {
152
+ return tsplus_module_2.fail(tsplus_module_5.typeError(unknownRecord, input));
153
+ }
154
+ const output = {};
155
+ const expectedKeys = {};
156
+ const errors = tsplus_module_3.emptyPushable();
157
+ const allErrors = options?.allErrors;
158
+ for (let i = 0; i < propertySignatureTypes.length; i++) {
159
+ const ps = tsplus_module_3.unsafeGet(i)(ast.propertySignatures);
160
+ const parser = tsplus_module_3.unsafeGet(i)(propertySignatureTypes);
161
+ const name = ps.name;
162
+ expectedKeys[name] = null;
163
+ if (!Object.prototype.hasOwnProperty.call(input, name)) {
164
+ if (!ps.isOptional) {
165
+ const e = tsplus_module_5.keyError(tsplus_module_9.createKey(name), name, tsplus_module_3.vector(tsplus_module_5.missingError));
166
+ tsplus_module_6.push(e)(errors);
167
+ if (allErrors) {
168
+ continue;
169
+ } else {
170
+ return tsplus_module_2.failures(errors);
171
+ }
172
+ }
173
+ } else {
174
+ const t = parser(input[name], options);
175
+ void 0;
176
+ if (tsplus_module_7.isLeft(t)) {
177
+ const e = tsplus_module_5.keyError(tsplus_module_9.createKey(name), name, t.left);
178
+ tsplus_module_6.push(e)(errors);
179
+ if (allErrors) {
180
+ continue;
181
+ } else {
182
+ return tsplus_module_2.failures(errors);
183
+ }
184
+ }
185
+ output[name] = t.right;
186
+ }
187
+ }
188
+ if (indexSignatures.length > 0) {
189
+ for (let i = 0; i < indexSignatures.length; i++) {
190
+ const [parameter, type] = tsplus_module_3.unsafeGet(i)(indexSignatures);
191
+ const keys = getKeysForIndexSignature(input, tsplus_module_3.unsafeGet(i)(ast.indexSignatures).parameter);
192
+ for (const key of keys) {
193
+ if (Object.prototype.hasOwnProperty.call(expectedKeys, key)) {
194
+ continue;
195
+ }
196
+ let t = parameter(key, options);
197
+ void 0;
198
+ if (tsplus_module_7.isLeft(t)) {
199
+ const e = tsplus_module_5.keyError(tsplus_module_9.createKey(key), key, t.left);
200
+ tsplus_module_6.push(e)(errors);
201
+ if (allErrors) {
202
+ continue;
203
+ } else {
204
+ return tsplus_module_2.failures(errors);
205
+ }
206
+ }
207
+ t = type(input[key], options);
208
+ void 0;
209
+ if (tsplus_module_7.isLeft(t)) {
210
+ const e = tsplus_module_5.keyError(tsplus_module_9.createKey(key), key, t.left);
211
+ tsplus_module_6.push(e)(errors);
212
+ if (allErrors) {
213
+ continue;
214
+ } else {
215
+ return tsplus_module_2.failures(errors);
216
+ }
217
+ }
218
+ output[key] = t.right;
219
+ }
220
+ }
221
+ } else {
222
+ const isUnexpectedAllowed = options?.isUnexpectedAllowed;
223
+ for (const key of ownKeys(input)) {
224
+ if (!Object.prototype.hasOwnProperty.call(expectedKeys, key)) {
225
+ const e = tsplus_module_5.keyError(tsplus_module_9.createKey(key), key, tsplus_module_3.vector(tsplus_module_5.unexpectedError(input[key])));
226
+ if (!isUnexpectedAllowed) {
227
+ tsplus_module_6.push(e)(errors);
228
+ if (allErrors) {
229
+ continue;
230
+ } else {
231
+ return tsplus_module_2.failures(errors);
232
+ }
233
+ }
234
+ }
235
+ }
236
+ }
237
+ return tsplus_module_3.isNonEmpty(errors) ? tsplus_module_2.failures(errors) : tsplus_module_2.succeed(output);
238
+ });
239
+ }
240
+ case 18 /* ASTTag.Union */:
241
+ {
242
+ const searchTree = getSearchTree(ast.types);
243
+ const ownKeys = Reflect.ownKeys(searchTree.keys);
244
+ const len = ownKeys.length;
245
+ const otherwise = searchTree.otherwise;
246
+ const map = new Map();
247
+ tsplus_module_3.forEach(ast => {
248
+ map.set(ast, go(ast));
249
+ })(ast.types);
250
+ return tsplus_module_1.make((input, options) => {
251
+ const errors = tsplus_module_3.emptyPushable();
252
+ if (len > 0) {
253
+ if (isRecord(input)) {
254
+ for (let i = 0; i < len; i++) {
255
+ const name = ownKeys[i];
256
+ const buckets = searchTree.keys[name].buckets;
257
+ if (Object.prototype.hasOwnProperty.call(input, name)) {
258
+ const literal = String(input[name]);
259
+ if (Object.prototype.hasOwnProperty.call(buckets, literal)) {
260
+ const bucket = buckets[literal];
261
+ for (let i = 0; i < bucket.length; i++) {
262
+ const t = map.get(bucket[i])(input, options);
263
+ void 0;
264
+ if (tsplus_module_7.isRight(t)) {
265
+ return t;
266
+ } else {
267
+ tsplus_module_6.push(tsplus_module_5.unionMemberError(t.left))(errors);
268
+ }
269
+ }
270
+ } else {
271
+ tsplus_module_6.push(tsplus_module_5.keyError(tsplus_module_9.createKey(name), name, tsplus_module_3.vector(tsplus_module_5.typeError(searchTree.keys[name].ast, input[name]))))(errors);
272
+ }
273
+ } else {
274
+ tsplus_module_6.push(tsplus_module_5.keyError(tsplus_module_9.createKey(name), name, tsplus_module_3.vector(tsplus_module_5.missingError)))(errors);
275
+ }
276
+ }
277
+ } else {
278
+ tsplus_module_6.push(tsplus_module_5.typeError(unknownRecord, input))(errors);
279
+ }
280
+ }
281
+ for (let i = 0; i < otherwise.length; i++) {
282
+ const t = map.get(otherwise[i])(input, options);
283
+ void 0;
284
+ if (tsplus_module_7.isRight(t)) {
285
+ return t;
286
+ } else {
287
+ tsplus_module_6.push(tsplus_module_5.unionMemberError(t.left))(errors);
288
+ }
289
+ }
290
+ return tsplus_module_3.isNonEmpty(errors) ? tsplus_module_2.failures(errors) : tsplus_module_2.fail(tsplus_module_5.typeError(tsplus_module_9.neverKeyword, input));
291
+ });
292
+ }
293
+ case 19 /* ASTTag.Lazy */:
294
+ {
295
+ const f = () => go(ast.getAST());
296
+ const get = memoize(f);
297
+ return tsplus_module_1.make((a, options) => get()(a, options));
298
+ }
299
+ case 20 /* ASTTag.Refinement */:
300
+ {
301
+ const from = go(ast.from);
302
+ if (ast.isReversed) {
303
+ const to = go(tsplus_module_9.getTo(ast.from));
304
+ return tsplus_module_1.make((input, options) => tsplus_module_7.flatMap(a => from(a, options))(tsplus_module_7.flatMap(a => ast.decode(a, options))(to(input, options))));
305
+ }
306
+ return tsplus_module_1.make((input, options) => tsplus_module_7.flatMap(a => ast.decode(a, options))(from(input, options)));
307
+ }
308
+ case 21 /* ASTTag.Transform */:
309
+ {
310
+ const from = go(ast.from);
311
+ if (ast.isReversed) {
312
+ const to = go(ast.to);
313
+ return tsplus_module_1.make((input, options) => tsplus_module_7.flatMap(a => from(a, options))(tsplus_module_7.flatMap(a => ast.encode(a, options))(to(input, options))));
314
+ }
315
+ return tsplus_module_1.make((input, options) => tsplus_module_7.flatMap(a => ast.decode(a, options))(from(input, options)));
316
+ }
317
+ case 22 /* ASTTag.Validation */:
318
+ {
319
+ return tsplus_module_1.make((u, options) => {
320
+ const missedBrands = tsplus_module_3.emptyPushable();
321
+ const allErrors = options?.allErrors;
322
+ for (const validation of ast.validation) {
323
+ if (!validation.validate(u)) {
324
+ tsplus_module_6.push(validation)(missedBrands);
325
+ if (allErrors) {
326
+ continue;
327
+ } else {
328
+ return tsplus_module_2.fail(tsplus_module_5.typeError(tsplus_module_9.createValidation(ast.from, missedBrands, ast.annotations), u));
329
+ }
330
+ }
331
+ }
332
+ return missedBrands.length > 0 ? tsplus_module_2.fail(tsplus_module_5.typeError(tsplus_module_9.createValidation(ast.from, missedBrands, ast.annotations), u)) : tsplus_module_2.succeed(u);
333
+ });
334
+ }
335
+ }
336
+ });
337
+ export function parserFor(ast) {
338
+ return go(ast);
339
+ }
340
+ const unknownArray = /*#__PURE__*/tsplus_module_9.createTuple( /*#__PURE__*/tsplus_module_3.empty(), /*#__PURE__*/tsplus_module_10.just( /*#__PURE__*/tsplus_module_3.vector(tsplus_module_9.unknownKeyword)), true);
341
+ const unknownRecord = /*#__PURE__*/tsplus_module_9.createTypeLiteral( /*#__PURE__*/tsplus_module_3.empty(), /*#__PURE__*/tsplus_module_3.vector( /*#__PURE__*/tsplus_module_9.createIndexSignature(tsplus_module_9.stringKeyword, tsplus_module_9.unknownKeyword, true), /*#__PURE__*/tsplus_module_9.createIndexSignature(tsplus_module_9.symbolKeyword, tsplus_module_9.unknownKeyword, true)));
342
+ function getLiterals(ast) {
343
+ void 0;
344
+ switch (ast._tag) {
345
+ case 0 /* ASTTag.Declaration */:
346
+ return getLiterals(ast.type);
347
+ case 17 /* ASTTag.TypeLiteral */:
348
+ {
349
+ const out = [];
350
+ for (let i = 0; i < ast.propertySignatures.length; i++) {
351
+ const propertySignature = tsplus_module_3.unsafeGet(i)(ast.propertySignatures);
352
+ if (tsplus_module_9.isLiteral(propertySignature.type) && !propertySignature.isOptional) {
353
+ out.push([propertySignature.name, propertySignature.type]);
354
+ }
355
+ }
356
+ return out;
357
+ }
358
+ case 20 /* ASTTag.Refinement */:
359
+ return getLiterals(ast.from);
360
+ case 21 /* ASTTag.Transform */:
361
+ return ast.isReversed ? getLiterals(ast.to) : getLiterals(tsplus_module_9.getFrom(ast.from));
362
+ }
363
+ return [];
364
+ }
365
+ function getSearchTree(members) {
366
+ const keys = {};
367
+ const otherwise = [];
368
+ for (let i = 0; i < members.length; i++) {
369
+ const member = tsplus_module_3.unsafeGet(i)(members);
370
+ const tags = getLiterals(member);
371
+ if (tags.length > 0) {
372
+ for (let j = 0; j < tags.length; j++) {
373
+ const [key, literal] = tags[j];
374
+ const hash = String(literal.literal);
375
+ keys[key] || (keys[key] = {
376
+ buckets: {},
377
+ ast: tsplus_module_9.neverKeyword
378
+ });
379
+ const buckets = keys[key].buckets;
380
+ if (Object.prototype.hasOwnProperty.call(buckets, hash)) {
381
+ if (j < tags.length - 1) {
382
+ continue;
383
+ }
384
+ buckets[hash].push(member);
385
+ keys[key].ast = tsplus_module_9.createUnion(tsplus_module_3.vector(keys[key].ast, literal));
386
+ } else {
387
+ buckets[hash] = [member];
388
+ keys[key].ast = tsplus_module_9.createUnion(tsplus_module_3.vector(keys[key].ast, literal));
389
+ break;
390
+ }
391
+ }
392
+ } else {
393
+ otherwise.push(member);
394
+ }
395
+ }
396
+ return {
397
+ keys,
398
+ otherwise
399
+ };
400
+ }
401
+ //# sourceMappingURL=interpreter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpreter.mjs","mappings":"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","names":["isBigInt","isBoolean","isNumber","isObject","isRecord","isString","isSymbol","isUndefined","concrete","getKeysForIndexSignature","getTemplateLiteralRegex","memoize","ownKeys","go","ast","_tag","tsplus_module_1","decode","typeParameters","u","literal","symbol","_","tsplus_module_3","value","enums","regex","test","elements","e","type","rest","tsplus_module_4","input","options","Array","isArray","tsplus_module_2","tsplus_module_5","unknownArray","output","errors","allErrors","i","length","isOptional","tsplus_module_6","parser","t","tsplus_module_7","left","push","right","tsplus_module_8","head","tail","j","isUnexpectedAllowed","propertySignatures","indexSignatures","propertySignatureTypes","f","is","parameter","unknownRecord","expectedKeys","ps","name","Object","prototype","hasOwnProperty","call","tsplus_module_9","keys","key","searchTree","getSearchTree","types","Reflect","len","otherwise","map","Map","set","buckets","String","bucket","get","getAST","a","from","isReversed","to","encode","missedBrands","validation","validate","annotations","parserFor","tsplus_module_10","getLiterals","out","propertySignature","members","member","tags","hash"],"sourceRoot":"","sources":["../../_src/Parser/interpreter.ts"],"sourcesContent":[null]}
@@ -0,0 +1,4 @@
1
+ // codegen:start { preset: barrel, include: ./Parser/*.ts }
2
+ export * from "./Parser/definition.mjs";
3
+ export * from "./Parser/interpreter.mjs";
4
+ //# sourceMappingURL=Parser.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Parser.mjs","mappings":"AAAA;AACA,cAAc,yBAAwB;AACtC,cAAc,0BAAyB","names":[],"sourceRoot":"","sources":["../_src/Parser.ts"],"sourcesContent":[null]}
@@ -0,0 +1,72 @@
1
+ import * as tsplus_module_1 from "@fncts/base/collection/immutable/Vector/api";
2
+ import * as tsplus_module_2 from "@fncts/schema/ASTAnnotation";
3
+ import * as tsplus_module_3 from "@fncts/schema/ASTAnnotationMap";
4
+ import * as tsplus_module_4 from "@fncts/schema/Schema/api";
5
+ import * as tsplus_module_5 from "@fncts/base/collection/immutable/Conc/definition";
6
+ import * as tsplus_module_6 from "@fncts/base/data/function/api";
7
+ import * as tsplus_module_7 from "@fncts/schema/ParseError";
8
+ import * as tsplus_module_8 from "@fncts/schema/ParseResult";
9
+ import * as tsplus_module_9 from "@fncts/schema/Parser/api";
10
+ import * as tsplus_module_10 from "@fncts/base/data/Either/api";
11
+ import * as tsplus_module_11 from "@fncts/base/collection/immutable/Vector/internal";
12
+ import * as tsplus_module_12 from "@fncts/schema/Parser/definition";
13
+ import * as tsplus_module_13 from "@fncts/base/data/Hashable/definition";
14
+ import * as tsplus_module_14 from "@fncts/base/data/Equatable/definition";
15
+ import * as tsplus_module_15 from "@fncts/test/control/Gen/api";
16
+ export const concFromArray = concFromArray_1;
17
+ import { ConcTypeId } from "@fncts/base/collection/immutable/Conc";
18
+ export function conc(value) {
19
+ return tsplus_module_4.declaration(tsplus_module_1.vector(value), inline(value), concParser, tsplus_module_3.ASTAnnotationMap.empty.annotate(tsplus_module_2.Identifier, "Conc").annotate(tsplus_module_2.GenHook, gen));
20
+ }
21
+ /**
22
+ * @tsplus static fncts.schema.SchemaOps concFromArray
23
+ */
24
+ function concFromArray_1(value) {
25
+ return tsplus_module_4.transform(conc(value), input => tsplus_module_5.fromArray(input), input => tsplus_module_5.toArray(input))(tsplus_module_4.array(value));
26
+ }
27
+ /**
28
+ * @tsplus derive fncts.schema.Schema[fncts.Conc]<_> 10
29
+ */
30
+ export function deriveConc(...[value]) {
31
+ return concFromArray_1(value);
32
+ }
33
+ export function concParser(value) {
34
+ const schema = conc(value);
35
+ return tsplus_module_12.make((u, options) => {
36
+ if (!tsplus_module_5.isConc(u)) {
37
+ return tsplus_module_8.fail(tsplus_module_7.typeError(schema.ast, u));
38
+ }
39
+ const allErrors = options?.allErrors;
40
+ const errors = tsplus_module_1.emptyPushable();
41
+ const out = [];
42
+ let i = 0;
43
+ for (const v of u) {
44
+ const t = tsplus_module_9.decode(value)(u);
45
+ void 0;
46
+ if (tsplus_module_10.isLeft(t)) {
47
+ tsplus_module_11.push(tsplus_module_7.indexError(i, t.left))(errors);
48
+ if (!allErrors) {
49
+ return tsplus_module_8.failures(errors);
50
+ }
51
+ } else {
52
+ out.push(t.right);
53
+ }
54
+ i++;
55
+ }
56
+ return tsplus_module_1.isNonEmpty(errors) ? tsplus_module_8.failures(errors) : tsplus_module_8.succeed(tsplus_module_5.fromArray(out));
57
+ });
58
+ }
59
+ function inline(_value) {
60
+ return tsplus_module_4.struct({
61
+ _A: tsplus_module_4.any,
62
+ [ConcTypeId]: tsplus_module_4.uniqueSymbol(ConcTypeId),
63
+ length: tsplus_module_4.number,
64
+ [Symbol.iterator]: tsplus_module_4.any,
65
+ [tsplus_module_13.hashSymbol]: tsplus_module_4.any,
66
+ [tsplus_module_14.equalsSymbol]: tsplus_module_4.any
67
+ });
68
+ }
69
+ function gen(value) {
70
+ return tsplus_module_15.conc(value);
71
+ }
72
+ //# sourceMappingURL=conc.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conc.mjs","mappings":";;;;;;;;;;;;;;;aAgBgBA,aAAa;AAd7B,SAASC,UAAU,QAAQ,uCAAuC;AAElE,OAAM,SAAUC,IAAI,CAAIC,KAAgB;EACtC,OAAOC,4BACLC,uBAAOF,KAAK,CAAC,EACbG,MAAM,CAACH,KAAK,CAAC,EACbI,UAAU,EACVC,gCAAgB,CAACC,KAAK,CAACC,QAAQ,6BAA2B,MAAM,CAAC,CAACA,QAAQ,0BAAwBC,GAAG,CAAC,CACvG;AACH;AAEA;;;AAGA,yBAAiCR,KAAgB;EAC/C,OAAOC,0BACLF,IAAI,CAACC,KAAK,CAAC,EACVS,KAAK,IAAKC,0BAAeD,KAAK,CAAC,EAC/BA,KAAK,IAAIC,wBAACD,KAAK,CAAQ,EAHnBR,sBAAaD,KAAK,CAAC,CAIzB;AACH;AAEA;;;AAGA,OAAM,SAAUW,UAAU,CACxB,GAAG,CAACX,KAAK,CAIA;EAET,OAAoBY,gBAAcZ,KAAK,CAAC;AAC1C;AAEA,OAAM,SAAUI,UAAU,CAAIJ,KAAgB;EAC5C,MAAMa,MAAM,GAAGd,IAAI,CAACC,KAAK,CAAC;EAC1B,OAAOc,sBAAY,CAACC,CAAC,EAAEC,OAAO,KAAI;IAChC,IAAI,CAACN,uBAAQK,CAAC,CAAC,EAAE;MACf,OAAOE,qBAAiBC,0BAAqBL,MAAM,CAACM,GAAG,EAAEJ,CAAC,CAAC,CAAC;;IAE9D,MAAMK,SAAS,GAAOJ,OAAO,EAAEI,SAAS;IACxC,MAAMC,MAAM,GAAUnB,+BAAkC;IACxD,MAAMoB,GAAG,GAAa,EAAE;IACxB,IAAIC,CAAC,GAAiB,CAAC;IACvB,KAAK,MAAMC,CAAC,IAAIT,CAAC,EAAE;MACjB,MAAMU,CAAC,GAAGC,4BAAK,EAAQX,CAAC,CAAC;MACzB;MACA,IAAIY,yBAAC,CAAS,EAAE;QACdC,sBAAYV,2BAAsBK,CAAC,EAAEE,CAAC,CAACI,IAAI,CAAC,EAA5CR,MAAM,CAAuC;QAC7C,IAAI,CAACD,SAAS,EAAE;UACd,OAAOH,yBAAqBI,MAAM,CAAC;;OAEtC,MAAM;QACLC,GAAG,CAACQ,IAAI,CAACL,CAAC,CAACM,KAAK,CAAC;;MAEnBR,CAAC,EAAE;;IAEL,OAAOrB,iCAAM,CAAa,GAAGe,yBAAqBI,MAAM,CAAC,GAAGJ,wBAAoBP,0BAAeY,GAAG,CAAC,CAAC;EACtG,CAAC,CAAC;AACJ;AAEA,SAASnB,MAAM,CAAI6B,MAAiB;EAClC,OAAO/B,uBAAc;IACnBgC,EAAE,qBAAY;IACd,CAACnC,UAAU,GAAGG,6BAAoBH,UAAU,CAAC;IAC7CoC,MAAM,wBAAe;IACrB,CAACC,MAAM,CAACC,QAAQ,GAACnC,mBAAY;IAC7B,+BAAaA,mBAAY;IACzB,iCAAeA;GAChB,CAAC;AACJ;AAEA,SAASO,GAAG,CAAIR,KAAoB;EAClC,OAAOqC,sBAASrC,KAAK,CAAC;AACxB","names":["concFromArray","ConcTypeId","conc","value","tsplus_module_4","tsplus_module_1","inline","concParser","tsplus_module_3","empty","annotate","gen","input","tsplus_module_5","deriveConc","concFromArray_1","schema","tsplus_module_12","u","options","tsplus_module_8","tsplus_module_7","ast","allErrors","errors","out","i","v","t","tsplus_module_9","tsplus_module_10","tsplus_module_11","left","push","right","_value","_A","length","Symbol","iterator","tsplus_module_15"],"sourceRoot":"","sources":["../../../_src/Schema/api/conc.ts"],"sourcesContent":[null]}