@fncts/schema 0.0.4 → 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.
- package/AST.d.ts +528 -0
- package/ASTAnnotation.d.ts +82 -0
- package/ASTAnnotationMap.d.ts +14 -0
- package/Gen.d.ts +15 -0
- package/InvalidInterpretationError.d.ts +5 -0
- package/ParseError.d.ts +107 -0
- package/ParseResult.d.ts +24 -0
- package/Parser/api.d.ts +42 -0
- package/Parser/definition.d.ts +22 -0
- package/Parser/interpreter.d.ts +6 -0
- package/Parser.d.ts +2 -0
- package/Schema/api/conc.d.ts +18 -0
- package/Schema/api/hashMap.d.ts +21 -0
- package/Schema/api/immutableArray.d.ts +23 -0
- package/Schema/api/list.d.ts +23 -0
- package/Schema/api/maybe.d.ts +21 -0
- package/Schema/api.d.ts +243 -0
- package/Schema/definition.d.ts +29 -0
- package/Schema/derivations.d.ts +70 -0
- package/Schema.d.ts +2 -144
- package/_cjs/AST.cjs +1171 -0
- package/_cjs/AST.cjs.map +1 -0
- package/_cjs/ASTAnnotation.cjs +111 -0
- package/_cjs/ASTAnnotation.cjs.map +1 -0
- package/_cjs/ASTAnnotationMap.cjs +35 -0
- package/_cjs/ASTAnnotationMap.cjs.map +1 -0
- package/_cjs/Gen.cjs +185 -0
- package/_cjs/Gen.cjs.map +1 -0
- package/_cjs/InvalidInterpretationError.cjs +18 -0
- package/_cjs/InvalidInterpretationError.cjs.map +1 -0
- package/_cjs/ParseError.cjs +222 -0
- package/_cjs/ParseError.cjs.map +1 -0
- package/_cjs/{Decoder.cjs → ParseResult.cjs} +24 -22
- package/_cjs/ParseResult.cjs.map +1 -0
- package/_cjs/Parser/api.cjs +80 -0
- package/_cjs/Parser/api.cjs.map +1 -0
- package/_cjs/{Guard.cjs → Parser/definition.cjs} +17 -22
- package/_cjs/Parser/definition.cjs.map +1 -0
- package/_cjs/Parser/interpreter.cjs +409 -0
- package/_cjs/Parser/interpreter.cjs.map +1 -0
- package/_cjs/Parser.cjs +28 -0
- package/_cjs/Parser.cjs.map +1 -0
- package/_cjs/Schema/api/conc.cjs +84 -0
- package/_cjs/Schema/api/conc.cjs.map +1 -0
- package/_cjs/Schema/api/hashMap.cjs +161 -0
- package/_cjs/Schema/api/hashMap.cjs.map +1 -0
- package/_cjs/Schema/api/immutableArray.cjs +90 -0
- package/_cjs/Schema/api/immutableArray.cjs.map +1 -0
- package/_cjs/Schema/api/list.cjs +98 -0
- package/_cjs/Schema/api/list.cjs.map +1 -0
- package/_cjs/Schema/api/maybe.cjs +75 -0
- package/_cjs/Schema/api/maybe.cjs.map +1 -0
- package/_cjs/Schema/api.cjs +424 -0
- package/_cjs/Schema/api.cjs.map +1 -0
- package/_cjs/Schema/definition.cjs +26 -0
- package/_cjs/Schema/definition.cjs.map +1 -0
- package/_cjs/Schema/derivations.cjs +108 -0
- package/_cjs/Schema/derivations.cjs.map +1 -0
- package/_cjs/Schema.cjs +20 -237
- package/_cjs/Schema.cjs.map +1 -1
- package/_cjs/utils.cjs +52 -0
- package/_cjs/utils.cjs.map +1 -0
- package/_mjs/AST.mjs +1060 -0
- package/_mjs/AST.mjs.map +1 -0
- package/_mjs/ASTAnnotation.mjs +80 -0
- package/_mjs/ASTAnnotation.mjs.map +1 -0
- package/_mjs/ASTAnnotationMap.mjs +27 -0
- package/_mjs/ASTAnnotationMap.mjs.map +1 -0
- package/_mjs/Gen.mjs +176 -0
- package/_mjs/Gen.mjs.map +1 -0
- package/_mjs/InvalidInterpretationError.mjs +10 -0
- package/_mjs/InvalidInterpretationError.mjs.map +1 -0
- package/_mjs/ParseError.mjs +200 -0
- package/_mjs/ParseError.mjs.map +1 -0
- package/_mjs/ParseResult.mjs +21 -0
- package/_mjs/ParseResult.mjs.map +1 -0
- package/_mjs/Parser/api.mjs +67 -0
- package/_mjs/Parser/api.mjs.map +1 -0
- package/_mjs/Parser/definition.mjs +15 -0
- package/_mjs/Parser/definition.mjs.map +1 -0
- package/_mjs/Parser/interpreter.mjs +401 -0
- package/_mjs/Parser/interpreter.mjs.map +1 -0
- package/_mjs/Parser.mjs +4 -0
- package/_mjs/Parser.mjs.map +1 -0
- package/_mjs/Schema/api/conc.mjs +72 -0
- package/_mjs/Schema/api/conc.mjs.map +1 -0
- package/_mjs/Schema/api/hashMap.mjs +150 -0
- package/_mjs/Schema/api/hashMap.mjs.map +1 -0
- package/_mjs/Schema/api/immutableArray.mjs +79 -0
- package/_mjs/Schema/api/immutableArray.mjs.map +1 -0
- package/_mjs/Schema/api/list.mjs +87 -0
- package/_mjs/Schema/api/list.mjs.map +1 -0
- package/_mjs/Schema/api/maybe.mjs +64 -0
- package/_mjs/Schema/api/maybe.mjs.map +1 -0
- package/_mjs/Schema/api.mjs +367 -0
- package/_mjs/Schema/api.mjs.map +1 -0
- package/_mjs/Schema/definition.mjs +16 -0
- package/_mjs/Schema/definition.mjs.map +1 -0
- package/_mjs/Schema/derivations.mjs +94 -0
- package/_mjs/Schema/derivations.mjs.map +1 -0
- package/_mjs/Schema.mjs +3 -212
- package/_mjs/Schema.mjs.map +1 -1
- package/_mjs/utils.mjs +41 -0
- package/_mjs/utils.mjs.map +1 -0
- package/_src/AST.ts +1353 -0
- package/_src/ASTAnnotation.ts +98 -0
- package/_src/ASTAnnotationMap.ts +38 -0
- package/_src/Gen.ts +171 -0
- package/_src/InvalidInterpretationError.ts +6 -0
- package/_src/ParseError.ts +237 -0
- package/_src/ParseResult.ts +26 -0
- package/_src/Parser/api.ts +71 -0
- package/_src/Parser/definition.ts +24 -0
- package/_src/Parser/interpreter.ts +442 -0
- package/_src/Parser.ts +4 -0
- package/_src/Schema/api/conc.ts +78 -0
- package/_src/Schema/api/hashMap.ts +184 -0
- package/_src/Schema/api/immutableArray.ts +88 -0
- package/_src/Schema/api/list.ts +96 -0
- package/_src/Schema/api/maybe.ts +68 -0
- package/_src/Schema/api.ts +530 -0
- package/_src/Schema/definition.ts +32 -0
- package/_src/Schema/derivations.ts +185 -0
- package/_src/Schema.ts +4 -254
- package/_src/global.ts +53 -0
- package/_src/utils.ts +48 -0
- package/global.d.ts +52 -0
- package/package.json +2 -2
- package/utils.d.ts +8 -0
- package/Decoder.d.ts +0 -3
- package/Encoder.d.ts +0 -4
- package/Guard.d.ts +0 -3
- package/Schemable.d.ts +0 -39
- package/_cjs/Decoder.cjs.map +0 -1
- package/_cjs/Encoder.cjs +0 -45
- package/_cjs/Encoder.cjs.map +0 -1
- package/_cjs/Guard.cjs.map +0 -1
- package/_cjs/Schemable.cjs +0 -6
- package/_cjs/Schemable.cjs.map +0 -1
- package/_mjs/Decoder.mjs +0 -20
- package/_mjs/Decoder.mjs.map +0 -1
- package/_mjs/Encoder.mjs +0 -36
- package/_mjs/Encoder.mjs.map +0 -1
- package/_mjs/Guard.mjs +0 -20
- package/_mjs/Guard.mjs.map +0 -1
- package/_mjs/Schemable.mjs +0 -2
- package/_mjs/Schemable.mjs.map +0 -1
- package/_src/Decoder.ts +0 -20
- package/_src/Encoder.ts +0 -38
- package/_src/Guard.ts +0 -20
- 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]}
|
package/_mjs/Parser.mjs
ADDED
|
@@ -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]}
|