@fncts/schema 0.0.24 → 0.0.25
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/LICENSE +26 -0
- package/_cjs/AST.cjs +1093 -1226
- package/_cjs/AST.cjs.map +1 -1
- package/_cjs/ASTAnnotation.cjs +114 -85
- package/_cjs/ASTAnnotation.cjs.map +1 -1
- package/_cjs/ASTAnnotationMap.cjs +43 -41
- package/_cjs/ASTAnnotationMap.cjs.map +1 -1
- package/_cjs/Eq.cjs +113 -145
- package/_cjs/Eq.cjs.map +1 -1
- package/_cjs/Gen.cjs +131 -167
- package/_cjs/Gen.cjs.map +1 -1
- package/_cjs/Guard.cjs +167 -267
- package/_cjs/Guard.cjs.map +1 -1
- package/_cjs/InvalidInterpretationError.cjs +9 -10
- package/_cjs/InvalidInterpretationError.cjs.map +1 -1
- package/_cjs/ParseError/ParseError.cjs +283 -284
- package/_cjs/ParseError/ParseError.cjs.map +1 -1
- package/_cjs/ParseError/ParseErrorFormatter.cjs +0 -2
- package/_cjs/ParseError/PathFormatter.cjs +55 -87
- package/_cjs/ParseError/PathFormatter.cjs.map +1 -1
- package/_cjs/ParseError/TreeFormatter.cjs +70 -102
- package/_cjs/ParseError/TreeFormatter.cjs.map +1 -1
- package/_cjs/ParseError.cjs +35 -50
- package/_cjs/ParseResult.cjs +15 -15
- package/_cjs/ParseResult.cjs.map +1 -1
- package/_cjs/Parser/api.cjs +54 -50
- package/_cjs/Parser/api.cjs.map +1 -1
- package/_cjs/Parser/definition.cjs +17 -16
- package/_cjs/Parser/definition.cjs.map +1 -1
- package/_cjs/Parser/interpreter.cjs +276 -358
- package/_cjs/Parser/interpreter.cjs.map +1 -1
- package/_cjs/Parser.cjs +12 -39
- package/_cjs/Schema/api/conc.cjs +64 -59
- package/_cjs/Schema/api/conc.cjs.map +1 -1
- package/_cjs/Schema/api/either.cjs +73 -72
- package/_cjs/Schema/api/either.cjs.map +1 -1
- package/_cjs/Schema/api/hashMap.cjs +85 -85
- package/_cjs/Schema/api/hashMap.cjs.map +1 -1
- package/_cjs/Schema/api/hashSet.cjs +75 -69
- package/_cjs/Schema/api/hashSet.cjs.map +1 -1
- package/_cjs/Schema/api/list.cjs +74 -66
- package/_cjs/Schema/api/list.cjs.map +1 -1
- package/_cjs/Schema/api/map.cjs +81 -83
- package/_cjs/Schema/api/map.cjs.map +1 -1
- package/_cjs/Schema/api/maybe.cjs +56 -49
- package/_cjs/Schema/api/maybe.cjs.map +1 -1
- package/_cjs/Schema/api/set.cjs +68 -61
- package/_cjs/Schema/api/set.cjs.map +1 -1
- package/_cjs/Schema/api.cjs +332 -350
- package/_cjs/Schema/api.cjs.map +1 -1
- package/_cjs/Schema/definition.cjs +28 -26
- package/_cjs/Schema/definition.cjs.map +1 -1
- package/_cjs/Schema/derivations.cjs +85 -100
- package/_cjs/Schema/derivations.cjs.map +1 -1
- package/_cjs/Schema.cjs +95 -127
- package/_cjs/Show.cjs +91 -151
- package/_cjs/Show.cjs.map +1 -1
- package/_cjs/chunk.cjs +28 -0
- package/_cjs/global.cjs +0 -2
- package/_cjs/index.cjs +0 -2
- package/_cjs/utils.cjs +41 -46
- package/_cjs/utils.cjs.map +1 -1
- package/_mjs/AST.mjs +996 -1161
- package/_mjs/AST.mjs.map +1 -1
- package/_mjs/ASTAnnotation.mjs +77 -73
- package/_mjs/ASTAnnotation.mjs.map +1 -1
- package/_mjs/ASTAnnotationMap.mjs +31 -29
- package/_mjs/ASTAnnotationMap.mjs.map +1 -1
- package/_mjs/Eq.mjs +101 -134
- package/_mjs/Eq.mjs.map +1 -1
- package/_mjs/Gen.mjs +117 -157
- package/_mjs/Gen.mjs.map +1 -1
- package/_mjs/Guard.mjs +154 -257
- package/_mjs/Guard.mjs.map +1 -1
- package/_mjs/InvalidInterpretationError.mjs +8 -4
- package/_mjs/InvalidInterpretationError.mjs.map +1 -1
- package/_mjs/ParseError/ParseError.mjs +266 -262
- package/_mjs/ParseError/ParseError.mjs.map +1 -1
- package/_mjs/ParseError/ParseErrorFormatter.mjs +0 -2
- package/_mjs/ParseError/PathFormatter.mjs +51 -80
- package/_mjs/ParseError/PathFormatter.mjs.map +1 -1
- package/_mjs/ParseError/TreeFormatter.mjs +62 -94
- package/_mjs/ParseError/TreeFormatter.mjs.map +1 -1
- package/_mjs/ParseError.mjs +5 -6
- package/_mjs/ParseResult.mjs +13 -9
- package/_mjs/ParseResult.mjs.map +1 -1
- package/_mjs/Parser/api.mjs +43 -39
- package/_mjs/Parser/api.mjs.map +1 -1
- package/_mjs/Parser/definition.mjs +12 -8
- package/_mjs/Parser/definition.mjs.map +1 -1
- package/_mjs/Parser/interpreter.mjs +262 -348
- package/_mjs/Parser/interpreter.mjs.map +1 -1
- package/_mjs/Parser.mjs +4 -5
- package/_mjs/Schema/api/conc.mjs +41 -45
- package/_mjs/Schema/api/conc.mjs.map +1 -1
- package/_mjs/Schema/api/either.mjs +55 -61
- package/_mjs/Schema/api/either.mjs.map +1 -1
- package/_mjs/Schema/api/hashMap.mjs +61 -71
- package/_mjs/Schema/api/hashMap.mjs.map +1 -1
- package/_mjs/Schema/api/hashSet.mjs +53 -56
- package/_mjs/Schema/api/hashSet.mjs.map +1 -1
- package/_mjs/Schema/api/list.mjs +50 -53
- package/_mjs/Schema/api/list.mjs.map +1 -1
- package/_mjs/Schema/api/map.mjs +59 -69
- package/_mjs/Schema/api/map.mjs.map +1 -1
- package/_mjs/Schema/api/maybe.mjs +34 -36
- package/_mjs/Schema/api/maybe.mjs.map +1 -1
- package/_mjs/Schema/api/set.mjs +47 -48
- package/_mjs/Schema/api/set.mjs.map +1 -1
- package/_mjs/Schema/api.mjs +304 -346
- package/_mjs/Schema/api.mjs.map +1 -1
- package/_mjs/Schema/definition.mjs +21 -17
- package/_mjs/Schema/definition.mjs.map +1 -1
- package/_mjs/Schema/derivations.mjs +71 -90
- package/_mjs/Schema/derivations.mjs.map +1 -1
- package/_mjs/Schema.mjs +12 -15
- package/_mjs/Show.mjs +79 -139
- package/_mjs/Show.mjs.map +1 -1
- package/_mjs/global.mjs +0 -2
- package/_mjs/index.mjs +0 -2
- package/_mjs/utils.mjs +35 -37
- package/_mjs/utils.mjs.map +1 -1
- package/package.json +7 -3
- package/_cjs/ParseError/ParseErrorFormatter.cjs.map +0 -1
- package/_cjs/ParseError.cjs.map +0 -1
- package/_cjs/Parser.cjs.map +0 -1
- package/_cjs/Schema.cjs.map +0 -1
- package/_cjs/global.cjs.map +0 -1
- package/_cjs/index.cjs.map +0 -1
- package/_mjs/ParseError/ParseErrorFormatter.mjs.map +0 -1
- package/_mjs/ParseError.mjs.map +0 -1
- package/_mjs/Parser.mjs.map +0 -1
- package/_mjs/Schema.mjs.map +0 -1
- package/_mjs/global.mjs.map +0 -1
- package/_mjs/index.mjs.map +0 -1
package/_cjs/Gen.cjs
CHANGED
|
@@ -1,180 +1,144 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_chunk = require("./chunk.cjs");
|
|
3
|
+
let _fncts_base_collection_immutable_Vector_api = require("@fncts/base/collection/immutable/Vector/api");
|
|
4
|
+
_fncts_base_collection_immutable_Vector_api = require_chunk.__toESM(_fncts_base_collection_immutable_Vector_api, 1);
|
|
5
|
+
let _fncts_schema_AST = require("@fncts/schema/AST");
|
|
6
|
+
_fncts_schema_AST = require_chunk.__toESM(_fncts_schema_AST, 1);
|
|
7
|
+
let _fncts_base_data_Maybe_api = require("@fncts/base/data/Maybe/api");
|
|
8
|
+
_fncts_base_data_Maybe_api = require_chunk.__toESM(_fncts_base_data_Maybe_api, 1);
|
|
9
|
+
let _fncts_base_data_Maybe_destructors = require("@fncts/base/data/Maybe/destructors");
|
|
10
|
+
_fncts_base_data_Maybe_destructors = require_chunk.__toESM(_fncts_base_data_Maybe_destructors, 1);
|
|
11
|
+
let _fncts_schema_utils = require("@fncts/schema/utils");
|
|
12
|
+
let _fncts_schema_ASTAnnotation = require("@fncts/schema/ASTAnnotation");
|
|
13
|
+
_fncts_schema_ASTAnnotation = require_chunk.__toESM(_fncts_schema_ASTAnnotation, 1);
|
|
14
|
+
let _fncts_base_data_Maybe_definition = require("@fncts/base/data/Maybe/definition");
|
|
15
|
+
_fncts_base_data_Maybe_definition = require_chunk.__toESM(_fncts_base_data_Maybe_definition, 1);
|
|
16
|
+
let _fncts_base_data_Either_api = require("@fncts/base/data/Either/api");
|
|
17
|
+
_fncts_base_data_Either_api = require_chunk.__toESM(_fncts_base_data_Either_api, 1);
|
|
18
|
+
let _fncts_test_control_Gen_api = require("@fncts/test/control/Gen/api");
|
|
19
|
+
_fncts_test_control_Gen_api = require_chunk.__toESM(_fncts_test_control_Gen_api, 1);
|
|
20
|
+
let _fncts_io_IO_api = require("@fncts/io/IO/api");
|
|
21
|
+
_fncts_io_IO_api = require_chunk.__toESM(_fncts_io_IO_api, 1);
|
|
22
|
+
let _fncts_schema_InvalidInterpretationError = require("@fncts/schema/InvalidInterpretationError");
|
|
23
|
+
//#region build/esm/Gen.js
|
|
20
24
|
const fileName_1 = "(@fncts/schema) src/Gen.ts";
|
|
21
25
|
/**
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
* @tsplus getter fncts.schema.Schema genFrom
|
|
27
|
+
*/
|
|
24
28
|
function genFrom(self) {
|
|
25
|
-
|
|
29
|
+
return go(_fncts_schema_AST.getFrom(self.ast));
|
|
26
30
|
}
|
|
27
31
|
/**
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
* @tsplus getter fncts.schema.Schema genTo
|
|
33
|
+
*/
|
|
30
34
|
function genTo(self) {
|
|
31
|
-
|
|
35
|
+
return go(self.ast);
|
|
32
36
|
}
|
|
33
37
|
function getHook(ast) {
|
|
34
|
-
|
|
38
|
+
return ast.annotations.get(_fncts_schema_ASTAnnotation.GenHook);
|
|
35
39
|
}
|
|
36
40
|
function record(key, value) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return out;
|
|
43
|
-
})(tsplus_module_3.arrayWith({
|
|
44
|
-
maxLength: 10
|
|
45
|
-
})(tsplus_module_3.tuple(key, value)));
|
|
41
|
+
return _fncts_test_control_Gen_api.map((tuples) => {
|
|
42
|
+
const out = {};
|
|
43
|
+
for (const [k, v] of tuples) out[k] = v;
|
|
44
|
+
return out;
|
|
45
|
+
})(_fncts_test_control_Gen_api.arrayWith({ maxLength: 10 })(_fncts_test_control_Gen_api.tuple(key, value)));
|
|
46
46
|
}
|
|
47
|
-
const go =
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
...d,
|
|
140
|
-
...o
|
|
141
|
-
}))(record(parameter, type));
|
|
142
|
-
})(output);
|
|
143
|
-
}
|
|
144
|
-
return output;
|
|
145
|
-
}
|
|
146
|
-
case 18 /* ASTTag.Union */:
|
|
147
|
-
{
|
|
148
|
-
const types = tsplus_module_5.map(go)(ast.types);
|
|
149
|
-
return tsplus_module_3.oneOf(...types);
|
|
150
|
-
}
|
|
151
|
-
case 19 /* ASTTag.Lazy */:
|
|
152
|
-
{
|
|
153
|
-
return tsplus_module_6.match(() => {
|
|
154
|
-
const f = () => go(ast.getAST());
|
|
155
|
-
const get = (0, _utils.memoize)(f);
|
|
156
|
-
return tsplus_module_3.defer(() => get(f));
|
|
157
|
-
}, handler => handler())(getHook(ast));
|
|
158
|
-
}
|
|
159
|
-
case 14 /* ASTTag.Enum */:
|
|
160
|
-
{
|
|
161
|
-
if (ast.enums.length === 0) {
|
|
162
|
-
return tsplus_module_3.fromIO(tsplus_module_4.haltNow(new _InvalidInterpretationError.InvalidInterpretationError("cannot build a Gen for an empty enum"), fileName_1 + ":149:37"));
|
|
163
|
-
}
|
|
164
|
-
return tsplus_module_3.oneOf(...tsplus_module_5.map(([_, value]) => tsplus_module_3.constant(value))(ast.enums));
|
|
165
|
-
}
|
|
166
|
-
case 20 /* ASTTag.Refinement */:
|
|
167
|
-
{
|
|
168
|
-
const from = go(ast.from);
|
|
169
|
-
return tsplus_module_6.match(() => tsplus_module_3.filter(a => tsplus_module_9.isRight(ast.decode(a)))(from), handler => handler(from))(getHook(ast));
|
|
170
|
-
}
|
|
171
|
-
case 21 /* ASTTag.Transform */:
|
|
172
|
-
return go(ast.to);
|
|
173
|
-
case 22 /* ASTTag.Validation */:
|
|
174
|
-
{
|
|
175
|
-
const from = go(ast.from);
|
|
176
|
-
return tsplus_module_6.match(() => tsplus_module_3.filter(a => tsplus_module_5.every(v => v.validate(a))(ast.validation))(from), handler => handler(from))(getHook(ast));
|
|
177
|
-
}
|
|
178
|
-
}
|
|
47
|
+
const go = (0, _fncts_schema_utils.memoize)(function go(ast) {
|
|
48
|
+
switch (ast._tag) {
|
|
49
|
+
case 0: return _fncts_base_data_Maybe_destructors.match(() => _fncts_test_control_Gen_api.fromIO(_fncts_io_IO_api.haltNow(new _fncts_schema_InvalidInterpretationError.InvalidInterpretationError("cannot build a Gen for a Declaration without a Gen hook"), fileName_1 + ":49:23")), (hook) => hook(..._fncts_base_collection_immutable_Vector_api.map(go)(ast.typeParameters)))(getHook(ast));
|
|
50
|
+
case 1: return _fncts_test_control_Gen_api.constant(ast.literal);
|
|
51
|
+
case 2: return _fncts_test_control_Gen_api.constant(ast.symbol);
|
|
52
|
+
case 3: return _fncts_test_control_Gen_api.constant(void 0);
|
|
53
|
+
case 4: return _fncts_test_control_Gen_api.constant(void 0);
|
|
54
|
+
case 5: return _fncts_test_control_Gen_api.fromIO(_fncts_io_IO_api.haltNow(new _fncts_schema_InvalidInterpretationError.InvalidInterpretationError("cannot build a Gen for `never`"), fileName_1 + ":62:35"));
|
|
55
|
+
case 6: return _fncts_test_control_Gen_api.anything();
|
|
56
|
+
case 7: return _fncts_test_control_Gen_api.anything();
|
|
57
|
+
case 8: return _fncts_test_control_Gen_api.fullUnicodeString();
|
|
58
|
+
case 9: return _fncts_test_control_Gen_api.float;
|
|
59
|
+
case 10: return _fncts_test_control_Gen_api.boolean;
|
|
60
|
+
case 11: return _fncts_test_control_Gen_api.bigInt;
|
|
61
|
+
case 12: return _fncts_test_control_Gen_api.map((s) => Symbol.for(s))(_fncts_test_control_Gen_api.fullUnicodeString());
|
|
62
|
+
case 13: return _fncts_test_control_Gen_api.anything();
|
|
63
|
+
case 15: {
|
|
64
|
+
const components = [_fncts_test_control_Gen_api.constant(ast.head)];
|
|
65
|
+
for (const span of ast.spans) {
|
|
66
|
+
components.push(_fncts_test_control_Gen_api.fullUnicodeString({ maxLength: 5 }));
|
|
67
|
+
components.push(_fncts_test_control_Gen_api.constant(span.literal));
|
|
68
|
+
}
|
|
69
|
+
return _fncts_test_control_Gen_api.map((spans) => spans.join(""))(_fncts_test_control_Gen_api.tuple(...components));
|
|
70
|
+
}
|
|
71
|
+
case 16: {
|
|
72
|
+
const elements = _fncts_base_collection_immutable_Vector_api.map((e) => go(e.type))(ast.elements);
|
|
73
|
+
const rest = _fncts_base_data_Maybe_api.map((restElement) => _fncts_base_collection_immutable_Vector_api.map(go)(restElement))(ast.rest);
|
|
74
|
+
let output = _fncts_test_control_Gen_api.tuple(...elements);
|
|
75
|
+
if (elements.length > 0 && _fncts_base_data_Maybe_definition.isNothing(rest)) {
|
|
76
|
+
const firstOptionalIndex = _fncts_base_collection_immutable_Vector_api.findIndex((e) => e.isOptional)(ast.elements);
|
|
77
|
+
if (firstOptionalIndex !== -1) output = _fncts_test_control_Gen_api.flatMap((as) => _fncts_test_control_Gen_api.map((i) => as.slice(0, i))(_fncts_test_control_Gen_api.intWith({
|
|
78
|
+
min: firstOptionalIndex,
|
|
79
|
+
max: elements.length - 1
|
|
80
|
+
})))(output);
|
|
81
|
+
}
|
|
82
|
+
if (_fncts_base_data_Maybe_definition.isJust(rest)) {
|
|
83
|
+
const head = _fncts_base_collection_immutable_Vector_api.unsafeHead(rest.value);
|
|
84
|
+
const tail = _fncts_base_collection_immutable_Vector_api.tail(rest.value);
|
|
85
|
+
output = _fncts_test_control_Gen_api.flatMap((as) => _fncts_test_control_Gen_api.map((rest) => [...as, ...rest])(_fncts_test_control_Gen_api.arrayWith({ maxLength: 5 })(head)))(output);
|
|
86
|
+
for (let j = 0; j < tail.length; j++) output = _fncts_test_control_Gen_api.flatMap((as) => _fncts_test_control_Gen_api.map((a) => [...as, a])(_fncts_base_collection_immutable_Vector_api.unsafeGet(j)(tail)))(output);
|
|
87
|
+
}
|
|
88
|
+
return output;
|
|
89
|
+
}
|
|
90
|
+
case 17: {
|
|
91
|
+
const propertySignatureTypes = _fncts_base_collection_immutable_Vector_api.map((ps) => go(ps.type))(ast.propertySignatures);
|
|
92
|
+
const indexSignatures = _fncts_base_collection_immutable_Vector_api.map((is) => [go(is.parameter), go(is.type)])(ast.indexSignatures);
|
|
93
|
+
const requiredGens = {};
|
|
94
|
+
const optionalGens = {};
|
|
95
|
+
for (let i = 0; i < propertySignatureTypes.length; i++) {
|
|
96
|
+
const ps = _fncts_base_collection_immutable_Vector_api.unsafeGet(i)(ast.propertySignatures);
|
|
97
|
+
const name = ps.name;
|
|
98
|
+
if (!ps.isOptional) requiredGens[name] = _fncts_base_collection_immutable_Vector_api.unsafeGet(i)(propertySignatureTypes);
|
|
99
|
+
else optionalGens[name] = _fncts_base_collection_immutable_Vector_api.unsafeGet(i)(propertySignatureTypes);
|
|
100
|
+
}
|
|
101
|
+
let output = _fncts_test_control_Gen_api.zipWith(_fncts_test_control_Gen_api.partial(optionalGens), (a, b) => ({
|
|
102
|
+
...a,
|
|
103
|
+
...b
|
|
104
|
+
}))(_fncts_test_control_Gen_api.struct(requiredGens));
|
|
105
|
+
for (let i = 0; i < indexSignatures.length; i++) {
|
|
106
|
+
const parameter = _fncts_base_collection_immutable_Vector_api.unsafeGet(i)(indexSignatures)[0];
|
|
107
|
+
const type = _fncts_base_collection_immutable_Vector_api.unsafeGet(i)(indexSignatures)[1];
|
|
108
|
+
output = _fncts_test_control_Gen_api.flatMap((o) => {
|
|
109
|
+
return _fncts_test_control_Gen_api.map((d) => ({
|
|
110
|
+
...d,
|
|
111
|
+
...o
|
|
112
|
+
}))(record(parameter, type));
|
|
113
|
+
})(output);
|
|
114
|
+
}
|
|
115
|
+
return output;
|
|
116
|
+
}
|
|
117
|
+
case 18: {
|
|
118
|
+
const types = _fncts_base_collection_immutable_Vector_api.map(go)(ast.types);
|
|
119
|
+
return _fncts_test_control_Gen_api.oneOf(...types);
|
|
120
|
+
}
|
|
121
|
+
case 19: return _fncts_base_data_Maybe_destructors.match(() => {
|
|
122
|
+
const f = () => go(ast.getAST());
|
|
123
|
+
const get = (0, _fncts_schema_utils.memoize)(f);
|
|
124
|
+
return _fncts_test_control_Gen_api.defer(() => get(f));
|
|
125
|
+
}, (handler) => handler())(getHook(ast));
|
|
126
|
+
case 14:
|
|
127
|
+
if (ast.enums.length === 0) return _fncts_test_control_Gen_api.fromIO(_fncts_io_IO_api.haltNow(new _fncts_schema_InvalidInterpretationError.InvalidInterpretationError("cannot build a Gen for an empty enum"), fileName_1 + ":149:37"));
|
|
128
|
+
return _fncts_test_control_Gen_api.oneOf(..._fncts_base_collection_immutable_Vector_api.map(([_, value]) => _fncts_test_control_Gen_api.constant(value))(ast.enums));
|
|
129
|
+
case 20: {
|
|
130
|
+
const from = go(ast.from);
|
|
131
|
+
return _fncts_base_data_Maybe_destructors.match(() => _fncts_test_control_Gen_api.filter((a) => _fncts_base_data_Either_api.isRight(ast.decode(a)))(from), (handler) => handler(from))(getHook(ast));
|
|
132
|
+
}
|
|
133
|
+
case 21: return go(ast.to);
|
|
134
|
+
case 22: {
|
|
135
|
+
const from = go(ast.from);
|
|
136
|
+
return _fncts_base_data_Maybe_destructors.match(() => _fncts_test_control_Gen_api.filter((a) => _fncts_base_collection_immutable_Vector_api.every((v) => v.validate(a))(ast.validation))(from), (handler) => handler(from))(getHook(ast));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
179
139
|
});
|
|
140
|
+
//#endregion
|
|
141
|
+
exports.genFrom = genFrom;
|
|
142
|
+
exports.genTo = genTo;
|
|
143
|
+
|
|
180
144
|
//# sourceMappingURL=Gen.cjs.map
|
package/_cjs/Gen.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gen.cjs","names":["_InvalidInterpretationError","require","_utils","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","genFrom","self","go","tsplus_module_1","getFrom","ast","genTo","getHook","annotations","tsplus_module_2","GenHook","record","key","value","tsplus_module_3","map","tuples","out","k","v","arrayWith","maxLength","tuple","memoize","_tag","tsplus_module_6","match","fromIO","tsplus_module_4","haltNow","InvalidInterpretationError","fileName_1","hook","tsplus_module_5","typeParameters","constant","literal","symbol","undefined","anything","fullUnicodeString","float","boolean","bigInt","s","Symbol","for","components","head","span","spans","push","join","elements","type","rest","tsplus_module_7","restElement","output","length","tsplus_module_8","isNothing","firstOptionalIndex","findIndex","isOptional","flatMap","as","slice","intWith","min","max","isJust","unsafeHead","tail","j","a","unsafeGet","propertySignatureTypes","ps","propertySignatures","indexSignatures","is","parameter","requiredGens","optionalGens","name","zipWith","partial","b","struct","d","types","oneOf","getAST","defer","handler","enums","_","from","filter","tsplus_module_9","isRight","decode","to","every","validate","validation"],"sources":["../_src/Gen.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Gen.cjs","names":["tsplus_module_1","tsplus_module_2","tsplus_module_3","tsplus_module_6","tsplus_module_4","InvalidInterpretationError","tsplus_module_5","tsplus_module_7","tsplus_module_8","tsplus_module_9"],"sources":["../esm/Gen.js"],"sourcesContent":["const fileName_1 = \"(@fncts/schema) src/Gen.ts\";\nimport * as tsplus_module_1 from \"@fncts/schema/AST\";\nimport * as tsplus_module_2 from \"@fncts/schema/ASTAnnotation\";\nimport * as tsplus_module_3 from \"@fncts/test/control/Gen/api\";\nimport * as tsplus_module_4 from \"@fncts/io/IO/api\";\nimport * as tsplus_module_5 from \"@fncts/base/collection/immutable/Vector/api\";\nimport * as tsplus_module_6 from \"@fncts/base/data/Maybe/destructors\";\nimport * as tsplus_module_7 from \"@fncts/base/data/Maybe/api\";\nimport * as tsplus_module_8 from \"@fncts/base/data/Maybe/definition\";\nimport * as tsplus_module_9 from \"@fncts/base/data/Either/api\";\nimport { InvalidInterpretationError } from \"@fncts/schema/InvalidInterpretationError\";\nimport { memoize } from \"@fncts/schema/utils\";\n/**\n * @tsplus getter fncts.schema.Schema genFrom\n */\nexport function genFrom(self) {\n return go(tsplus_module_1.getFrom(self.ast));\n}\n/**\n * @tsplus getter fncts.schema.Schema genTo\n */\nexport function genTo(self) {\n return go(self.ast);\n}\nfunction getHook(ast) {\n return ast.annotations.get(tsplus_module_2.GenHook);\n}\nfunction record(key, value) {\n return tsplus_module_3.map((tuples) => {\n const out = {};\n for (const [k, v] of tuples) {\n out[k] = v;\n }\n return out;\n })(tsplus_module_3.arrayWith({ maxLength: 10 })(tsplus_module_3.tuple(key, value)));\n}\nconst go = memoize(function go(ast) {\n void 0;\n switch (ast._tag) {\n case 0 /* ASTTag.Declaration */:\n return tsplus_module_6.match(() => tsplus_module_3.fromIO(tsplus_module_4.haltNow(new InvalidInterpretationError(\"cannot build a Gen for a Declaration without a Gen hook\"), fileName_1 + \":49:23\")), (hook) => hook(...tsplus_module_5.map(go)(ast.typeParameters)))(getHook(ast));\n case 1 /* ASTTag.Literal */:\n return tsplus_module_3.constant(ast.literal);\n case 2 /* ASTTag.UniqueSymbol */:\n return tsplus_module_3.constant(ast.symbol);\n case 3 /* ASTTag.UndefinedKeyword */:\n return tsplus_module_3.constant(undefined);\n case 4 /* ASTTag.VoidKeyword */:\n return tsplus_module_3.constant(undefined);\n case 5 /* ASTTag.NeverKeyword */:\n return tsplus_module_3.fromIO(tsplus_module_4.haltNow(new InvalidInterpretationError(\"cannot build a Gen for `never`\"), fileName_1 + \":62:35\"));\n case 6 /* ASTTag.UnknownKeyword */:\n return tsplus_module_3.anything();\n case 7 /* ASTTag.AnyKeyword */:\n return tsplus_module_3.anything();\n case 8 /* ASTTag.StringKeyword */:\n return tsplus_module_3.fullUnicodeString();\n case 9 /* ASTTag.NumberKeyword */:\n return tsplus_module_3.float;\n case 10 /* ASTTag.BooleanKeyword */:\n return tsplus_module_3.boolean;\n case 11 /* ASTTag.BigIntKeyword */:\n return tsplus_module_3.bigInt;\n case 12 /* ASTTag.SymbolKeyword */:\n return tsplus_module_3.map((s) => Symbol.for(s))(tsplus_module_3.fullUnicodeString());\n case 13 /* ASTTag.ObjectKeyword */:\n return tsplus_module_3.anything();\n case 15 /* ASTTag.TemplateLiteral */: {\n const components = [tsplus_module_3.constant(ast.head)];\n for (const span of ast.spans) {\n components.push(tsplus_module_3.fullUnicodeString({ maxLength: 5 }));\n components.push(tsplus_module_3.constant(span.literal));\n }\n return tsplus_module_3.map((spans) => spans.join(\"\"))(tsplus_module_3.tuple(...components));\n }\n case 16 /* ASTTag.Tuple */: {\n const elements = tsplus_module_5.map((e) => go(e.type))(ast.elements);\n const rest = tsplus_module_7.map((restElement) => tsplus_module_5.map(go)(restElement))(ast.rest);\n let output = tsplus_module_3.tuple(...elements);\n if (elements.length > 0 && tsplus_module_8.isNothing(rest)) {\n const firstOptionalIndex = tsplus_module_5.findIndex((e) => e.isOptional)(ast.elements);\n if (firstOptionalIndex !== -1) {\n output = tsplus_module_3.flatMap((as) => tsplus_module_3.map((i) => as.slice(0, i))(tsplus_module_3.intWith({ min: firstOptionalIndex, max: elements.length - 1 })))(output);\n }\n }\n if (tsplus_module_8.isJust(rest)) {\n const head = tsplus_module_5.unsafeHead(rest.value);\n const tail = tsplus_module_5.tail(rest.value);\n output = tsplus_module_3.flatMap((as) => tsplus_module_3.map((rest) => [...as, ...rest])(tsplus_module_3.arrayWith({ maxLength: 5 })(head)))(output);\n for (let j = 0; j < tail.length; j++) {\n output = tsplus_module_3.flatMap((as) => tsplus_module_3.map((a) => [...as, a])(tsplus_module_5.unsafeGet(j)(tail)))(output);\n }\n }\n return output;\n }\n case 17 /* ASTTag.TypeLiteral */: {\n const propertySignatureTypes = tsplus_module_5.map((ps) => go(ps.type))(ast.propertySignatures);\n const indexSignatures = tsplus_module_5.map((is) => [go(is.parameter), go(is.type)])(ast.indexSignatures);\n const requiredGens = {};\n const optionalGens = {};\n for (let i = 0; i < propertySignatureTypes.length; i++) {\n const ps = tsplus_module_5.unsafeGet(i)(ast.propertySignatures);\n const name = ps.name;\n if (!ps.isOptional) {\n requiredGens[name] = tsplus_module_5.unsafeGet(i)(propertySignatureTypes);\n }\n else {\n optionalGens[name] = tsplus_module_5.unsafeGet(i)(propertySignatureTypes);\n }\n }\n let output = tsplus_module_3.zipWith(tsplus_module_3.partial(optionalGens), (a, b) => ({ ...a, ...b }))(tsplus_module_3.struct(requiredGens));\n for (let i = 0; i < indexSignatures.length; i++) {\n const parameter = tsplus_module_5.unsafeGet(i)(indexSignatures)[0];\n const type = tsplus_module_5.unsafeGet(i)(indexSignatures)[1];\n output = tsplus_module_3.flatMap((o) => {\n return tsplus_module_3.map((d) => ({ ...d, ...o }))(record(parameter, type));\n })(output);\n }\n return output;\n }\n case 18 /* ASTTag.Union */: {\n const types = tsplus_module_5.map(go)(ast.types);\n return tsplus_module_3.oneOf(...types);\n }\n case 19 /* ASTTag.Lazy */: {\n return tsplus_module_6.match(() => {\n const f = () => go(ast.getAST());\n const get = memoize(f);\n return tsplus_module_3.defer(() => get(f));\n }, (handler) => handler())(getHook(ast));\n }\n case 14 /* ASTTag.Enum */: {\n if (ast.enums.length === 0) {\n return tsplus_module_3.fromIO(tsplus_module_4.haltNow(new InvalidInterpretationError(\"cannot build a Gen for an empty enum\"), fileName_1 + \":149:37\"));\n }\n return tsplus_module_3.oneOf(...tsplus_module_5.map(([_, value]) => tsplus_module_3.constant(value))(ast.enums));\n }\n case 20 /* ASTTag.Refinement */: {\n const from = go(ast.from);\n return tsplus_module_6.match(() => tsplus_module_3.filter((a) => tsplus_module_9.isRight(ast.decode(a)))(from), (handler) => handler(from))(getHook(ast));\n }\n case 21 /* ASTTag.Transform */:\n return go(ast.to);\n case 22 /* ASTTag.Validation */: {\n const from = go(ast.from);\n return tsplus_module_6.match(() => tsplus_module_3.filter((a) => tsplus_module_5.every((v) => v.validate(a))(ast.validation))(from), (handler) => handler(from))(getHook(ast));\n }\n }\n});\n//# sourceMappingURL=Gen.js.map"],"mappings":"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"}
|