@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,150 @@
|
|
|
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/HashMap/api";
|
|
6
|
+
import * as tsplus_module_6 from "@fncts/base/data/function/api";
|
|
7
|
+
import * as tsplus_module_7 from "@fncts/base/collection/immutable/HashMap/definition";
|
|
8
|
+
import * as tsplus_module_8 from "@fncts/schema/ParseError";
|
|
9
|
+
import * as tsplus_module_9 from "@fncts/schema/ParseResult";
|
|
10
|
+
import * as tsplus_module_10 from "@fncts/schema/Parser/api";
|
|
11
|
+
import * as tsplus_module_11 from "@fncts/base/data/Either/api";
|
|
12
|
+
import * as tsplus_module_12 from "@fncts/base/collection/immutable/Vector/internal";
|
|
13
|
+
import * as tsplus_module_13 from "@fncts/schema/Parser/definition";
|
|
14
|
+
import * as tsplus_module_14 from "@fncts/schema/Schema/api/maybe";
|
|
15
|
+
import * as tsplus_module_15 from "@fncts/base/data/Hashable/definition";
|
|
16
|
+
import * as tsplus_module_16 from "@fncts/base/data/Equatable/definition";
|
|
17
|
+
import * as tsplus_module_17 from "@fncts/test/control/Gen/api";
|
|
18
|
+
export const hashMap = hashMap_1;
|
|
19
|
+
export const hashMapFromRecord = hashMapFromRecord_1;
|
|
20
|
+
import { HashMapTypeId, HashMapVariance } from "@fncts/base/collection/immutable/HashMap";
|
|
21
|
+
/**
|
|
22
|
+
* @tsplus static fncts.schema.SchemaOps hashMap
|
|
23
|
+
*/
|
|
24
|
+
function hashMap_1(key, value) {
|
|
25
|
+
return tsplus_module_4.declaration(tsplus_module_1.vector(key, value), inline(key, value), hashMapParser, tsplus_module_3.ASTAnnotationMap.empty.annotate(tsplus_module_2.Identifier, "HashMap").annotate(tsplus_module_2.GenHook, gen));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @tsplus static fncts.schema.SchemaOps hashMapFromRecord
|
|
29
|
+
*/
|
|
30
|
+
function hashMapFromRecord_1(key, value) {
|
|
31
|
+
return tsplus_module_4.transform(hashMap_1(key, value), input => {
|
|
32
|
+
const out = tsplus_module_5.beginMutation(tsplus_module_5.empty());
|
|
33
|
+
for (const [k, v] of Object.entries(input)) {
|
|
34
|
+
tsplus_module_5.set(k, v)(out);
|
|
35
|
+
}
|
|
36
|
+
return tsplus_module_5.endMutation(out);
|
|
37
|
+
}, input => {
|
|
38
|
+
const out = {};
|
|
39
|
+
tsplus_module_5.forEachWithIndex((k, v) => {
|
|
40
|
+
out[k] = v;
|
|
41
|
+
})(input);
|
|
42
|
+
return out;
|
|
43
|
+
})(tsplus_module_4.record(key, value));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* @tsplus derive fncts.schema.Schema[fncts.HashMap]<_> 10
|
|
47
|
+
*/
|
|
48
|
+
export function deriveHashMap(
|
|
49
|
+
// @ts-expect-error
|
|
50
|
+
...[key, value]) {
|
|
51
|
+
return hashMapFromRecord_1(key, value);
|
|
52
|
+
}
|
|
53
|
+
function hashMapParser(key, value) {
|
|
54
|
+
const schema = hashMap_1(key, value);
|
|
55
|
+
return tsplus_module_13.make((u, options) => {
|
|
56
|
+
if (!tsplus_module_7.isHashMap(u)) {
|
|
57
|
+
return tsplus_module_9.fail(tsplus_module_8.typeError(schema.ast, u));
|
|
58
|
+
}
|
|
59
|
+
const allErrors = options?.allErrors;
|
|
60
|
+
const errors = tsplus_module_1.emptyPushable();
|
|
61
|
+
const out = tsplus_module_5.beginMutation(tsplus_module_5.empty());
|
|
62
|
+
for (const [k, v] of u) {
|
|
63
|
+
const tk = tsplus_module_10.decode(key)(k, options);
|
|
64
|
+
void 0;
|
|
65
|
+
if (tsplus_module_11.isLeft(tk)) {
|
|
66
|
+
tsplus_module_12.push(tsplus_module_8.keyError(key.ast, k, tk.left))(errors);
|
|
67
|
+
if (!allErrors) {
|
|
68
|
+
return tsplus_module_9.failures(errors);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const tv = tsplus_module_10.decode(value)(v, options);
|
|
72
|
+
void 0;
|
|
73
|
+
if (tsplus_module_11.isLeft(tv)) {
|
|
74
|
+
tsplus_module_12.push(tsplus_module_8.keyError(key.ast, k, tv.left))(errors);
|
|
75
|
+
if (!allErrors) {
|
|
76
|
+
return tsplus_module_9.failures(errors);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (tsplus_module_11.isLeft(tk) || tsplus_module_11.isLeft(tv)) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
tsplus_module_5.set(tk.right, tv.right)(out);
|
|
83
|
+
}
|
|
84
|
+
return tsplus_module_1.isNonEmpty(errors) ? tsplus_module_9.failures(errors) : tsplus_module_9.succeed(tsplus_module_5.endMutation(out));
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
function emptyNodeSchema(_key, _value) {
|
|
88
|
+
return tsplus_module_4.struct({
|
|
89
|
+
_tag: tsplus_module_4.literal("EmptyNode"),
|
|
90
|
+
modify: tsplus_module_4.any
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
function leafNodeSchema(key, value) {
|
|
94
|
+
return tsplus_module_4.struct({
|
|
95
|
+
_tag: tsplus_module_4.literal("LeafNode"),
|
|
96
|
+
edit: tsplus_module_4.number,
|
|
97
|
+
hash: tsplus_module_4.number,
|
|
98
|
+
key,
|
|
99
|
+
value: tsplus_module_14.maybe(value),
|
|
100
|
+
modify: tsplus_module_4.any
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
function collisionNodeSchema(key, value) {
|
|
104
|
+
return tsplus_module_4.lazy(() => tsplus_module_4.struct({
|
|
105
|
+
_tag: tsplus_module_4.literal("CollisionNode"),
|
|
106
|
+
edit: tsplus_module_4.number,
|
|
107
|
+
hash: tsplus_module_4.number,
|
|
108
|
+
children: tsplus_module_4.mutableArray(nodeSchema(key, value)),
|
|
109
|
+
modify: tsplus_module_4.any
|
|
110
|
+
}));
|
|
111
|
+
}
|
|
112
|
+
function indexedNodeSchema(key, value) {
|
|
113
|
+
return tsplus_module_4.lazy(() => tsplus_module_4.struct({
|
|
114
|
+
_tag: tsplus_module_4.literal("IndexedNode"),
|
|
115
|
+
edit: tsplus_module_4.number,
|
|
116
|
+
mask: tsplus_module_4.number,
|
|
117
|
+
children: tsplus_module_4.mutableArray(nodeSchema(key, value)),
|
|
118
|
+
modify: tsplus_module_4.any
|
|
119
|
+
}));
|
|
120
|
+
}
|
|
121
|
+
function arrayNodeSchema(key, value) {
|
|
122
|
+
return tsplus_module_4.lazy(() => tsplus_module_4.struct({
|
|
123
|
+
_tag: tsplus_module_4.literal("ArrayNode"),
|
|
124
|
+
edit: tsplus_module_4.number,
|
|
125
|
+
size: tsplus_module_4.number,
|
|
126
|
+
children: tsplus_module_4.mutableArray(nodeSchema(key, value)),
|
|
127
|
+
modify: tsplus_module_4.any
|
|
128
|
+
}));
|
|
129
|
+
}
|
|
130
|
+
function nodeSchema(key, value) {
|
|
131
|
+
return tsplus_module_4.union(emptyNodeSchema(key, value), leafNodeSchema(key, value), collisionNodeSchema(key, value), indexedNodeSchema(key, value), arrayNodeSchema(key, value));
|
|
132
|
+
}
|
|
133
|
+
function inline(key, value) {
|
|
134
|
+
return tsplus_module_4.struct({
|
|
135
|
+
[HashMapTypeId]: tsplus_module_4.uniqueSymbol(HashMapTypeId),
|
|
136
|
+
[HashMapVariance]: tsplus_module_4.any,
|
|
137
|
+
editable: tsplus_module_4.boolean,
|
|
138
|
+
edit: tsplus_module_4.number,
|
|
139
|
+
config: tsplus_module_4.any,
|
|
140
|
+
root: nodeSchema(key, value),
|
|
141
|
+
size: tsplus_module_4.number,
|
|
142
|
+
[Symbol.iterator]: tsplus_module_4.any,
|
|
143
|
+
[tsplus_module_15.hashSymbol]: tsplus_module_4.any,
|
|
144
|
+
[tsplus_module_16.equalsSymbol]: tsplus_module_4.any
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
function gen(key, value) {
|
|
148
|
+
return tsplus_module_17.map(pairs => tsplus_module_5.from(pairs))(tsplus_module_17.array(tsplus_module_17.tuple(key, value)));
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=hashMap.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hashMap.mjs","mappings":"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","names":["hashMap","hashMapFromRecord","HashMapTypeId","HashMapVariance","key","value","tsplus_module_4","tsplus_module_1","inline","hashMapParser","tsplus_module_3","empty","annotate","gen","hashMap_1","input","out","tsplus_module_5","k","v","Object","entries","deriveHashMap","hashMapFromRecord_1","schema","tsplus_module_13","u","options","tsplus_module_7","tsplus_module_9","tsplus_module_8","ast","allErrors","errors","tk","tsplus_module_10","tsplus_module_11","tsplus_module_12","left","tv","right","emptyNodeSchema","_key","_value","_tag","modify","leafNodeSchema","edit","hash","collisionNodeSchema","children","nodeSchema","indexedNodeSchema","mask","arrayNodeSchema","size","editable","config","root","Symbol","iterator","tsplus_module_17","pairs"],"sourceRoot":"","sources":["../../../_src/Schema/api/hashMap.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,79 @@
|
|
|
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/data/function/api";
|
|
6
|
+
import * as tsplus_module_6 from "@fncts/base/collection/immutable/ImmutableArray/definition";
|
|
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/Equatable/definition";
|
|
14
|
+
import * as tsplus_module_14 from "@fncts/base/data/Hashable/definition";
|
|
15
|
+
import * as tsplus_module_15 from "@fncts/test/control/Gen/api";
|
|
16
|
+
export const immutableArray = immutableArray_1;
|
|
17
|
+
export const immutableArrayFromArray = immutableArrayFromArray_1;
|
|
18
|
+
import { ImmutableArray, ImmutableArrayTypeId, ImmutableArrayVariance } from "@fncts/base/collection/immutable/ImmutableArray";
|
|
19
|
+
import { Vector } from "@fncts/base/collection/immutable/Vector";
|
|
20
|
+
/**
|
|
21
|
+
* @tsplus getter fncts.schema.Schema immutableArray
|
|
22
|
+
* @tsplus static fncts.schema.SchemaOps immutableArray
|
|
23
|
+
*/
|
|
24
|
+
function immutableArray_1(value) {
|
|
25
|
+
return tsplus_module_4.declaration(tsplus_module_1.vector(value), inline(value), parser, tsplus_module_3.ASTAnnotationMap.empty.annotate(tsplus_module_2.Identifier, "ImmutableArray").annotate(tsplus_module_2.GenHook, gen));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @tsplus getter fncts.schema.Schema immutableArrayFromArray
|
|
29
|
+
* @tsplus static fncts.schema.SchemaOps immutableArrayFromArray
|
|
30
|
+
*/
|
|
31
|
+
function immutableArrayFromArray_1(value) {
|
|
32
|
+
return tsplus_module_4.transform(immutableArray_1(value), input => new ImmutableArray(input), input => input._array)(tsplus_module_4.array(value));
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @tsplus derive fncts.schema.Schema[fncts.ImmutableArray]<_> 10
|
|
36
|
+
*/
|
|
37
|
+
export function deriveImmutableArray(...[value]) {
|
|
38
|
+
return immutableArrayFromArray_1(value);
|
|
39
|
+
}
|
|
40
|
+
function parser(value) {
|
|
41
|
+
const schema = immutableArray_1(value);
|
|
42
|
+
return tsplus_module_12.make((u, options) => {
|
|
43
|
+
if (!tsplus_module_6.isImmutableArray(u)) {
|
|
44
|
+
return tsplus_module_8.fail(tsplus_module_7.typeError(schema.ast, u));
|
|
45
|
+
}
|
|
46
|
+
const out = [];
|
|
47
|
+
const errors = tsplus_module_1.emptyPushable();
|
|
48
|
+
const allErrors = options?.allErrors;
|
|
49
|
+
const index = 0;
|
|
50
|
+
for (const v of u) {
|
|
51
|
+
const t = tsplus_module_9.decode(value)(v, options);
|
|
52
|
+
void 0;
|
|
53
|
+
if (tsplus_module_10.isLeft(t)) {
|
|
54
|
+
tsplus_module_11.push(tsplus_module_7.indexError(index, t.left))(errors);
|
|
55
|
+
if (allErrors) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
return tsplus_module_8.failures(errors);
|
|
59
|
+
} else {
|
|
60
|
+
out.push(t.right);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return tsplus_module_1.isNonEmpty(errors) ? tsplus_module_8.failures(errors) : tsplus_module_8.succeed(new ImmutableArray(out));
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
function inline(value) {
|
|
67
|
+
return tsplus_module_4.struct({
|
|
68
|
+
[ImmutableArrayTypeId]: tsplus_module_4.uniqueSymbol(ImmutableArrayTypeId),
|
|
69
|
+
[ImmutableArrayVariance]: tsplus_module_4.any,
|
|
70
|
+
_array: tsplus_module_4.array(value),
|
|
71
|
+
[tsplus_module_13.equalsSymbol]: tsplus_module_4.any,
|
|
72
|
+
[tsplus_module_14.hashSymbol]: tsplus_module_4.any,
|
|
73
|
+
[Symbol.iterator]: tsplus_module_4.any
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function gen(value) {
|
|
77
|
+
return tsplus_module_15.map(array => new ImmutableArray(array))(tsplus_module_15.array(value));
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=immutableArray.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"immutableArray.mjs","mappings":";;;;;;;;;;;;;;;aAagBA,cAAc;aAadC,uBAAuB;AAxBvC,SACEC,cAAc,EACdC,oBAAoB,EACpBC,sBAAsB,QACjB,iDAAiD;AACxD,SAASC,MAAM,QAAQ,yCAAyC;AAEhE;;;;AAIA,0BAAkCC,KAAgB;EAChD,OAAOC,4BACLC,uBAAOF,KAAK,CAAC,EACbG,MAAM,CAACH,KAAK,CAAC,EACbI,MAAM,EACNC,gCAAgB,CAACC,KAAK,CAACC,QAAQ,6BAA2B,gBAAgB,CAAC,CAACA,QAAQ,0BAAwBC,GAAG,CAAC,CACjH;AACH;AAEA;;;;AAIA,mCAA2CR,KAAgB;EACzD,OAAOC,0BACLQ,iBAAeT,KAAK,CAAC,EACpBU,KAAK,IAAK,IAAId,cAAc,CAACc,KAAK,CAAC,EACnCA,KAAK,IAAKA,KAAK,CAACC,MAAM,EAHlBV,sBAAaD,KAAK,CAAC,CAIzB;AACH;AAEA;;;AAGA,OAAM,SAAUY,oBAAoB,CAClC,GAAG,CAACZ,KAAK,CAIA;EAET,OAAoBa,0BAAwBb,KAAK,CAAC;AACpD;AAEA,SAASI,MAAM,CAAIJ,KAAgB;EACjC,MAAMc,MAAM,GAAGL,iBAAeT,KAAK,CAAC;EACpC,OAAOe,sBAAY,CAACC,CAAC,EAAEC,OAAO,KAAI;IAChC,IAAI,CAACC,iCAAkBF,CAAC,CAAC,EAAE;MACzB,OAAOG,qBAAiBC,0BAAqBN,MAAM,CAACO,GAAG,EAAEL,CAAC,CAAC,CAAC;;IAE9D,MAAMM,GAAG,GAAa,EAAE;IACxB,MAAMC,MAAM,GAAUrB,+BAAkC;IACxD,MAAMsB,SAAS,GAAOP,OAAO,EAAEO,SAAS;IACxC,MAAMC,KAAK,GAAW,CAAC;IACvB,KAAK,MAAMC,CAAC,IAAIV,CAAC,EAAE;MACjB,MAAMW,CAAC,GAAGC,4BAAK,EAAQF,CAAC,EAAET,OAAO,CAAC;MAClC;MACA,IAAIY,yBAAC,CAAS,EAAE;QACdC,sBAAYV,2BAAsBK,KAAK,EAAEE,CAAC,CAACI,IAAI,CAAC,EAAhDR,MAAM,CAA2C;QACjD,IAAIC,SAAS,EAAE;UACb;;QAEF,OAAOL,yBAAqBI,MAAM,CAAC;OACpC,MAAM;QACLD,GAAG,CAACU,IAAI,CAACL,CAAC,CAACM,KAAK,CAAC;;;IAGrB,OAAO/B,iCAAM,CAAa,GAAGiB,yBAAqBI,MAAM,CAAC,GAAGJ,wBAAoB,IAAIvB,cAAc,CAAC0B,GAAG,CAAC,CAAC;EAC1G,CAAC,CAAC;AACJ;AAEA,SAASnB,MAAM,CAAIH,KAAgB;EACjC,OAAOC,uBAAc;IACnB,CAACJ,oBAAoB,GAAGI,6BAAoBJ,oBAAoB,CAAC;IACjE,CAACC,sBAAsB,GAACG,mBAAY;IACpCU,MAAM,EAAEV,sBAAaD,KAAK,CAAC;IAC3B,iCAAeC,mBAAY;IAC3B,+BAAaA,mBAAY;IACzB,CAACiC,MAAM,CAACC,QAAQ,GAAClC;GAClB,CAAC;AACJ;AAEA,SAASO,GAAG,CAAIR,KAAoB;EAClC,OAAOoC,qBAAsBC,KAAK,IAAK,IAAIzC,cAAc,CAACyC,KAAK,CAAC,EAAzDD,uBAAUpC,KAAK,CAAC,CAA0C;AACnE","names":["immutableArray","immutableArrayFromArray","ImmutableArray","ImmutableArrayTypeId","ImmutableArrayVariance","Vector","value","tsplus_module_4","tsplus_module_1","inline","parser","tsplus_module_3","empty","annotate","gen","immutableArray_1","input","_array","deriveImmutableArray","immutableArrayFromArray_1","schema","tsplus_module_12","u","options","tsplus_module_6","tsplus_module_8","tsplus_module_7","ast","out","errors","allErrors","index","v","t","tsplus_module_9","tsplus_module_10","tsplus_module_11","left","push","right","Symbol","iterator","tsplus_module_15","array"],"sourceRoot":"","sources":["../../../_src/Schema/api/immutableArray.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,87 @@
|
|
|
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/List/constructors";
|
|
6
|
+
import * as tsplus_module_6 from "@fncts/base/data/function/api";
|
|
7
|
+
import * as tsplus_module_7 from "@fncts/base/collection/immutable/List/definition";
|
|
8
|
+
import * as tsplus_module_8 from "@fncts/schema/ParseError";
|
|
9
|
+
import * as tsplus_module_9 from "@fncts/schema/ParseResult";
|
|
10
|
+
import * as tsplus_module_10 from "@fncts/base/collection/mutable/ListBuffer";
|
|
11
|
+
import * as tsplus_module_11 from "@fncts/schema/Parser/api";
|
|
12
|
+
import * as tsplus_module_12 from "@fncts/base/data/Either/api";
|
|
13
|
+
import * as tsplus_module_13 from "@fncts/base/collection/immutable/Vector/internal";
|
|
14
|
+
import * as tsplus_module_14 from "@fncts/schema/Parser/definition";
|
|
15
|
+
import * as tsplus_module_15 from "@fncts/test/control/Gen/api";
|
|
16
|
+
export const list = list_1;
|
|
17
|
+
export const listFromArray = listFromArray_1;
|
|
18
|
+
import { ListTypeId } from "@fncts/base/collection/immutable/List";
|
|
19
|
+
/**
|
|
20
|
+
* @tsplus static fncts.schema.SchemaOps list
|
|
21
|
+
* @tsplus getter fncts.Schema.Schema list
|
|
22
|
+
*/
|
|
23
|
+
function list_1(value) {
|
|
24
|
+
return tsplus_module_4.declaration(tsplus_module_1.vector(value), inline(value), parser, tsplus_module_3.ASTAnnotationMap.empty.annotate(tsplus_module_2.Identifier, "List").annotate(tsplus_module_2.GenHook, gen));
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @tsplus static fncts.schema.SchemaOps listFromArray
|
|
28
|
+
* @tsplus getter fncts.Schema.Schema listFromArray
|
|
29
|
+
*/
|
|
30
|
+
function listFromArray_1(value) {
|
|
31
|
+
return tsplus_module_4.transform(list_1(value), input => tsplus_module_5.from(input), input => Array.from(input))(tsplus_module_4.array(value));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* @tsplus derive fncts.schema.Schema[fncts.List]<_> 10
|
|
35
|
+
*/
|
|
36
|
+
export function deriveList(...[value]) {
|
|
37
|
+
return listFromArray_1(value);
|
|
38
|
+
}
|
|
39
|
+
function parser(value) {
|
|
40
|
+
const schema = list_1(value);
|
|
41
|
+
return tsplus_module_14.make((u, options) => {
|
|
42
|
+
if (!tsplus_module_7.isList(u)) {
|
|
43
|
+
return tsplus_module_9.fail(tsplus_module_8.typeError(schema.ast, u));
|
|
44
|
+
}
|
|
45
|
+
const out = new tsplus_module_10.ListBuffer();
|
|
46
|
+
const errors = tsplus_module_1.emptyPushable();
|
|
47
|
+
const allErrors = options?.allErrors;
|
|
48
|
+
const index = 0;
|
|
49
|
+
for (const v of u) {
|
|
50
|
+
const t = tsplus_module_11.decode(value)(v, options);
|
|
51
|
+
void 0;
|
|
52
|
+
if (tsplus_module_12.isLeft(t)) {
|
|
53
|
+
tsplus_module_13.push(tsplus_module_8.indexError(index, t.left))(errors);
|
|
54
|
+
if (allErrors) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
return tsplus_module_9.failures(errors);
|
|
58
|
+
} else {
|
|
59
|
+
out.append(t.right);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return tsplus_module_1.isNonEmpty(errors) ? tsplus_module_9.failures(errors) : tsplus_module_9.succeed(out.toList);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function nil(_value) {
|
|
66
|
+
return tsplus_module_4.struct({
|
|
67
|
+
_tag: tsplus_module_4.literal("Nil"),
|
|
68
|
+
[ListTypeId]: tsplus_module_4.uniqueSymbol(ListTypeId),
|
|
69
|
+
[Symbol.iterator]: tsplus_module_4.any
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function cons(value) {
|
|
73
|
+
return tsplus_module_4.lazy(() => tsplus_module_4.struct({
|
|
74
|
+
_tag: tsplus_module_4.literal("Cons"),
|
|
75
|
+
[ListTypeId]: tsplus_module_4.uniqueSymbol(ListTypeId),
|
|
76
|
+
[Symbol.iterator]: tsplus_module_4.any,
|
|
77
|
+
head: value,
|
|
78
|
+
tail: inline(value)
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
function inline(value) {
|
|
82
|
+
return tsplus_module_4.lazy(() => tsplus_module_4.union(nil(value), cons(value)));
|
|
83
|
+
}
|
|
84
|
+
function gen(value) {
|
|
85
|
+
return tsplus_module_15.map(array => tsplus_module_5.from(array))(tsplus_module_15.array(value));
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=list.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.mjs","mappings":";;;;;;;;;;;;;;;aAQgBA,IAAI;aAaJC,aAAa;AAnB7B,SAASC,UAAU,QAAQ,uCAAuC;AAElE;;;;AAIA,gBAAwBC,KAAgB;EACtC,OAAOC,4BACLC,uBAAOF,KAAK,CAAC,EACbG,MAAM,CAACH,KAAK,CAAC,EACbI,MAAM,EACNC,gCAAgB,CAACC,KAAK,CAACC,QAAQ,6BAA2B,MAAM,CAAC,CAACA,QAAQ,0BAAwBC,GAAG,CAAC,CACvG;AACH;AAEA;;;;AAIA,yBAAiCR,KAAgB;EAC/C,OAAOC,0BACLQ,OAAKT,KAAK,CAAC,EACVU,KAAK,IAAKC,qBAAUD,KAAK,CAAC,EAC1BA,KAAK,IAAKE,KAAK,CAACC,IAAI,CAACH,KAAK,CAAC,EAHvBT,sBAAaD,KAAK,CAAC,CAIzB;AACH;AAEA;;;AAGA,OAAM,SAAUc,UAAU,CACxB,GAAG,CAACd,KAAK,CAIA;EAET,OAAoBe,gBAAcf,KAAK,CAAC;AAC1C;AAEA,SAASI,MAAM,CAAIJ,KAAgB;EACjC,MAAMgB,MAAM,GAAGP,OAAKT,KAAK,CAAC;EAC1B,OAAOiB,sBAAY,CAACC,CAAC,EAAEC,OAAO,KAAI;IAChC,IAAI,CAACC,uBAAQF,CAAC,CAAC,EAAE;MACf,OAAOG,qBAAiBC,0BAAqBN,MAAM,CAACO,GAAG,EAAEL,CAAC,CAAC,CAAC;;IAE9D,MAAMM,GAAG,GAAS,qBAAIC,UAAU,EAAK;IACrC,MAAMC,MAAM,GAAMxB,+BAAkC;IACpD,MAAMyB,SAAS,GAAGR,OAAO,EAAEQ,SAAS;IACpC,MAAMC,KAAK,GAAO,CAAC;IACnB,KAAK,MAAMC,CAAC,IAAIX,CAAC,EAAE;MACjB,MAAMY,CAAC,GAAGC,6BAAK,EAAQF,CAAC,EAAEV,OAAO,CAAC;MAClC;MACA,IAAIa,yBAAC,CAAS,EAAE;QACdC,sBAAYX,2BAAsBM,KAAK,EAAEE,CAAC,CAACI,IAAI,CAAC,EAAhDR,MAAM,CAA2C;QACjD,IAAIC,SAAS,EAAE;UACb;;QAEF,OAAON,yBAAqBK,MAAM,CAAC;OACpC,MAAM;QACLF,GAAG,CAACW,MAAM,CAACL,CAAC,CAACM,KAAK,CAAC;;;IAGvB,OAAOlC,iCAAM,CAAa,GAAGmB,yBAAqBK,MAAM,CAAC,GAAGL,wBAAoBG,GAAG,CAACa,MAAM,CAAC;EAC7F,CAAC,CAAC;AACJ;AAEA,SAASC,GAAG,CAAIC,MAAiB;EAC/B,OAAOtC,uBAAc;IACnBuC,IAAI,EAAEvC,wBAAe,KAAK,CAAC;IAC3B,CAACF,UAAU,GAAGE,6BAAoBF,UAAU,CAAC;IAC7C,CAAC0C,MAAM,CAACC,QAAQ,GAACzC;GAClB,CAAC;AACJ;AAEA,SAAS0C,IAAI,CAAI3C,KAAgB;EAC/B,OAAOC,qBAAY,MACjBA,uBAAc;IACZuC,IAAI,EAAEvC,wBAAe,MAAM,CAAC;IAC5B,CAACF,UAAU,GAAGE,6BAAoBF,UAAU,CAAC;IAC7C,CAAC0C,MAAM,CAACC,QAAQ,GAACzC,mBAAY;IAC7B2C,IAAI,EAAE5C,KAAK;IACX6C,IAAI,EAAE1C,MAAM,CAACH,KAAK;GACnB,CAAC,CACH;AACH;AAEA,SAASG,MAAM,CAAIH,KAAgB;EACjC,OAAOC,qBAAY,MAAMA,sBAAaqC,GAAG,CAACtC,KAAK,CAAC,EAAE2C,IAAI,CAAC3C,KAAK,CAAC,CAAC,CAAC;AACjE;AAEA,SAASQ,GAAG,CAAIR,KAAoB;EAClC,OAAO8C,qBAAsBC,KAAK,IAAKpC,qBAAUoC,KAAK,CAAC,EAAhDD,uBAAU9C,KAAK,CAAC,CAAiC;AAC1D","names":["list","listFromArray","ListTypeId","value","tsplus_module_4","tsplus_module_1","inline","parser","tsplus_module_3","empty","annotate","gen","list_1","input","tsplus_module_5","Array","from","deriveList","listFromArray_1","schema","tsplus_module_14","u","options","tsplus_module_7","tsplus_module_9","tsplus_module_8","ast","out","ListBuffer","errors","allErrors","index","v","t","tsplus_module_11","tsplus_module_12","tsplus_module_13","left","append","right","toList","nil","_value","_tag","Symbol","iterator","cons","head","tail","tsplus_module_15","array"],"sourceRoot":"","sources":["../../../_src/Schema/api/list.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,64 @@
|
|
|
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/data/Maybe/constructors";
|
|
6
|
+
import * as tsplus_module_6 from "@fncts/base/data/Maybe/api";
|
|
7
|
+
import * as tsplus_module_7 from "@fncts/base/data/function/api";
|
|
8
|
+
import * as tsplus_module_8 from "@fncts/base/data/Maybe/definition";
|
|
9
|
+
import * as tsplus_module_9 from "@fncts/schema/ParseError";
|
|
10
|
+
import * as tsplus_module_10 from "@fncts/schema/ParseResult";
|
|
11
|
+
import * as tsplus_module_11 from "@fncts/schema/Parser/api";
|
|
12
|
+
import * as tsplus_module_12 from "@fncts/base/data/Either/api";
|
|
13
|
+
import * as tsplus_module_13 from "@fncts/schema/Parser/definition";
|
|
14
|
+
import * as tsplus_module_14 from "@fncts/base/data/Equatable/definition";
|
|
15
|
+
import * as tsplus_module_15 from "@fncts/base/data/Hashable/definition";
|
|
16
|
+
export const maybe = maybe_1;
|
|
17
|
+
export const maybeFromNullable = maybeFromNullable_1;
|
|
18
|
+
/**
|
|
19
|
+
* @tsplus static fncts.schema.SchemaOps maybe
|
|
20
|
+
* @tsplus getter fncts.schema.Schema maybe
|
|
21
|
+
*/
|
|
22
|
+
function maybe_1(value) {
|
|
23
|
+
return tsplus_module_4.declaration(tsplus_module_1.vector(value), maybeInline(value), maybeParser, tsplus_module_3.ASTAnnotationMap.empty.annotate(tsplus_module_2.Identifier, "Maybe"));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @tsplus static fncts.schema.SchemaOps maybeFromNullable
|
|
27
|
+
* @tsplus getter fncts.schema.Schema maybeFromNullable
|
|
28
|
+
*/
|
|
29
|
+
function maybeFromNullable_1(value) {
|
|
30
|
+
return tsplus_module_4.transform(maybe_1(value), tsplus_module_5.fromNullable, input => tsplus_module_6.getOrElse(() => null)(input))(tsplus_module_4.union(tsplus_module_4._undefined, tsplus_module_4.nullable(value)));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @tsplus derive fncts.schema.Schema[fncts.Maybe]<_> 10
|
|
34
|
+
*/
|
|
35
|
+
export function deriveMaybe(...[value]) {
|
|
36
|
+
return maybeFromNullable_1(value);
|
|
37
|
+
}
|
|
38
|
+
function maybeParser(value) {
|
|
39
|
+
const schema = maybe_1(value);
|
|
40
|
+
return tsplus_module_13.make((u, options) => {
|
|
41
|
+
if (!tsplus_module_8.isMaybe(u)) {
|
|
42
|
+
return tsplus_module_10.fail(tsplus_module_9.typeError(schema.ast, u));
|
|
43
|
+
}
|
|
44
|
+
void 0;
|
|
45
|
+
if (tsplus_module_8.isNothing(u)) {
|
|
46
|
+
return tsplus_module_10.succeed(tsplus_module_5.nothing());
|
|
47
|
+
} else {
|
|
48
|
+
return tsplus_module_12.map(a => tsplus_module_5.just(a))(tsplus_module_11.decode(value)(u.value, options));
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
function maybeInline(value) {
|
|
53
|
+
return tsplus_module_4.union(tsplus_module_4.struct({
|
|
54
|
+
_tag: tsplus_module_4.literal("Nothing"),
|
|
55
|
+
[tsplus_module_14.equalsSymbol]: tsplus_module_4.any,
|
|
56
|
+
[tsplus_module_15.hashSymbol]: tsplus_module_4.any
|
|
57
|
+
}), tsplus_module_4.struct({
|
|
58
|
+
_tag: tsplus_module_4.literal("Just"),
|
|
59
|
+
value,
|
|
60
|
+
[tsplus_module_14.equalsSymbol]: tsplus_module_4.any,
|
|
61
|
+
[tsplus_module_15.hashSymbol]: tsplus_module_4.any
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=maybe.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maybe.mjs","mappings":";;;;;;;;;;;;;;;aAMgBA,KAAK;aAaLC,iBAAiB;AAjBjC;;;;AAIA,iBAAyBC,KAAgB;EACvC,OAAOC,4BACLC,uBAAOF,KAAK,CAAC,EACbG,WAAW,CAACH,KAAK,CAAC,EAClBI,WAAW,EACXC,gCAAgB,CAACC,KAAK,CAACC,QAAQ,6BAA2B,OAAO,CAAC,CACnE;AACH;AAEA;;;;AAIA,6BAAqCP,KAAgB;EACnD,OAAOC,kCAAyDD,KAAK,iCAA6BQ,KAAK,IACrGC,gCAAgB,IAAI,EAApBD,KAAK,CAAgB,EADhBP,2EAA+BD,KAAK,EAAU,CAEpD;AACH;AAEA;;;AAGA,OAAM,SAAUU,WAAW,CACzB,GAAG,CAACV,KAAK,CAIA;EAET,OAAoBW,oBAAkBX,KAAK,CAAC;AAC9C;AAEA,SAASI,WAAW,CAAIJ,KAAgB;EACtC,MAAMY,MAAM,GAAGC,QAAMb,KAAK,CAAC;EAC3B,OAAOc,sBAAY,CAACC,CAAC,EAAEC,OAAO,KAAI;IAChC,IAAI,CAACC,wBAAcF,CAAC,CAAC,EAAE;MACrB,OAAOG,sBAAiBC,0BAAqBP,MAAM,CAACQ,GAAG,EAAEL,CAAC,CAAC,CAAC;;IAE9D;IACA,IAAIE,2BAAC,CAAY,EAAE;MACjB,OAAOC,yBAAoBG,yBAAS,CAAC;KACtC,MAAM;MACL,OAAOC,qBAAoCC,CAAC,IAAKF,qBAAKE,CAAC,CAAC,EAAjDC,6BAAK,EAAQT,CAAC,CAACf,KAAK,EAAEgB,OAAO,CAAC,CAAoB;;EAE7D,CAAC,CAAC;AACJ;AAEA,SAASb,WAAW,CAAIH,KAAgB;EACtC,OAAOC,sBACLA,uBAAc;IACZwB,IAAI,EAAExB,wBAAe,SAAS,CAAC;IAC/B,iCAAeA,mBAAY;IAC3B,+BAAaA;GACd,CAAC,EACFA,uBAAc;IACZwB,IAAI,EAAExB,wBAAe,MAAM,CAAC;IAC5BD,KAAK;IACL,iCAAeC,mBAAY;IAC3B,+BAAaA;GACd,CAAC,CAC4B;AAClC","names":["maybe","maybeFromNullable","value","tsplus_module_4","tsplus_module_1","maybeInline","maybeParser","tsplus_module_3","empty","annotate","input","tsplus_module_6","deriveMaybe","maybeFromNullable_1","schema","maybe_1","tsplus_module_13","u","options","tsplus_module_8","tsplus_module_10","tsplus_module_9","ast","tsplus_module_5","tsplus_module_12","a","tsplus_module_11","_tag"],"sourceRoot":"","sources":["../../../_src/Schema/api/maybe.ts"],"sourcesContent":[null]}
|