@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.
Files changed (135) hide show
  1. package/LICENSE +26 -0
  2. package/_cjs/AST.cjs +1093 -1226
  3. package/_cjs/AST.cjs.map +1 -1
  4. package/_cjs/ASTAnnotation.cjs +114 -85
  5. package/_cjs/ASTAnnotation.cjs.map +1 -1
  6. package/_cjs/ASTAnnotationMap.cjs +43 -41
  7. package/_cjs/ASTAnnotationMap.cjs.map +1 -1
  8. package/_cjs/Eq.cjs +113 -145
  9. package/_cjs/Eq.cjs.map +1 -1
  10. package/_cjs/Gen.cjs +131 -167
  11. package/_cjs/Gen.cjs.map +1 -1
  12. package/_cjs/Guard.cjs +167 -267
  13. package/_cjs/Guard.cjs.map +1 -1
  14. package/_cjs/InvalidInterpretationError.cjs +9 -10
  15. package/_cjs/InvalidInterpretationError.cjs.map +1 -1
  16. package/_cjs/ParseError/ParseError.cjs +283 -284
  17. package/_cjs/ParseError/ParseError.cjs.map +1 -1
  18. package/_cjs/ParseError/ParseErrorFormatter.cjs +0 -2
  19. package/_cjs/ParseError/PathFormatter.cjs +55 -87
  20. package/_cjs/ParseError/PathFormatter.cjs.map +1 -1
  21. package/_cjs/ParseError/TreeFormatter.cjs +70 -102
  22. package/_cjs/ParseError/TreeFormatter.cjs.map +1 -1
  23. package/_cjs/ParseError.cjs +35 -50
  24. package/_cjs/ParseResult.cjs +15 -15
  25. package/_cjs/ParseResult.cjs.map +1 -1
  26. package/_cjs/Parser/api.cjs +54 -50
  27. package/_cjs/Parser/api.cjs.map +1 -1
  28. package/_cjs/Parser/definition.cjs +17 -16
  29. package/_cjs/Parser/definition.cjs.map +1 -1
  30. package/_cjs/Parser/interpreter.cjs +276 -358
  31. package/_cjs/Parser/interpreter.cjs.map +1 -1
  32. package/_cjs/Parser.cjs +12 -39
  33. package/_cjs/Schema/api/conc.cjs +64 -59
  34. package/_cjs/Schema/api/conc.cjs.map +1 -1
  35. package/_cjs/Schema/api/either.cjs +73 -72
  36. package/_cjs/Schema/api/either.cjs.map +1 -1
  37. package/_cjs/Schema/api/hashMap.cjs +85 -85
  38. package/_cjs/Schema/api/hashMap.cjs.map +1 -1
  39. package/_cjs/Schema/api/hashSet.cjs +75 -69
  40. package/_cjs/Schema/api/hashSet.cjs.map +1 -1
  41. package/_cjs/Schema/api/list.cjs +74 -66
  42. package/_cjs/Schema/api/list.cjs.map +1 -1
  43. package/_cjs/Schema/api/map.cjs +81 -83
  44. package/_cjs/Schema/api/map.cjs.map +1 -1
  45. package/_cjs/Schema/api/maybe.cjs +56 -49
  46. package/_cjs/Schema/api/maybe.cjs.map +1 -1
  47. package/_cjs/Schema/api/set.cjs +68 -61
  48. package/_cjs/Schema/api/set.cjs.map +1 -1
  49. package/_cjs/Schema/api.cjs +332 -350
  50. package/_cjs/Schema/api.cjs.map +1 -1
  51. package/_cjs/Schema/definition.cjs +28 -26
  52. package/_cjs/Schema/definition.cjs.map +1 -1
  53. package/_cjs/Schema/derivations.cjs +85 -100
  54. package/_cjs/Schema/derivations.cjs.map +1 -1
  55. package/_cjs/Schema.cjs +95 -127
  56. package/_cjs/Show.cjs +91 -151
  57. package/_cjs/Show.cjs.map +1 -1
  58. package/_cjs/chunk.cjs +28 -0
  59. package/_cjs/global.cjs +0 -2
  60. package/_cjs/index.cjs +0 -2
  61. package/_cjs/utils.cjs +41 -46
  62. package/_cjs/utils.cjs.map +1 -1
  63. package/_mjs/AST.mjs +996 -1161
  64. package/_mjs/AST.mjs.map +1 -1
  65. package/_mjs/ASTAnnotation.mjs +77 -73
  66. package/_mjs/ASTAnnotation.mjs.map +1 -1
  67. package/_mjs/ASTAnnotationMap.mjs +31 -29
  68. package/_mjs/ASTAnnotationMap.mjs.map +1 -1
  69. package/_mjs/Eq.mjs +101 -134
  70. package/_mjs/Eq.mjs.map +1 -1
  71. package/_mjs/Gen.mjs +117 -157
  72. package/_mjs/Gen.mjs.map +1 -1
  73. package/_mjs/Guard.mjs +154 -257
  74. package/_mjs/Guard.mjs.map +1 -1
  75. package/_mjs/InvalidInterpretationError.mjs +8 -4
  76. package/_mjs/InvalidInterpretationError.mjs.map +1 -1
  77. package/_mjs/ParseError/ParseError.mjs +266 -262
  78. package/_mjs/ParseError/ParseError.mjs.map +1 -1
  79. package/_mjs/ParseError/ParseErrorFormatter.mjs +0 -2
  80. package/_mjs/ParseError/PathFormatter.mjs +51 -80
  81. package/_mjs/ParseError/PathFormatter.mjs.map +1 -1
  82. package/_mjs/ParseError/TreeFormatter.mjs +62 -94
  83. package/_mjs/ParseError/TreeFormatter.mjs.map +1 -1
  84. package/_mjs/ParseError.mjs +5 -6
  85. package/_mjs/ParseResult.mjs +13 -9
  86. package/_mjs/ParseResult.mjs.map +1 -1
  87. package/_mjs/Parser/api.mjs +43 -39
  88. package/_mjs/Parser/api.mjs.map +1 -1
  89. package/_mjs/Parser/definition.mjs +12 -8
  90. package/_mjs/Parser/definition.mjs.map +1 -1
  91. package/_mjs/Parser/interpreter.mjs +262 -348
  92. package/_mjs/Parser/interpreter.mjs.map +1 -1
  93. package/_mjs/Parser.mjs +4 -5
  94. package/_mjs/Schema/api/conc.mjs +41 -45
  95. package/_mjs/Schema/api/conc.mjs.map +1 -1
  96. package/_mjs/Schema/api/either.mjs +55 -61
  97. package/_mjs/Schema/api/either.mjs.map +1 -1
  98. package/_mjs/Schema/api/hashMap.mjs +61 -71
  99. package/_mjs/Schema/api/hashMap.mjs.map +1 -1
  100. package/_mjs/Schema/api/hashSet.mjs +53 -56
  101. package/_mjs/Schema/api/hashSet.mjs.map +1 -1
  102. package/_mjs/Schema/api/list.mjs +50 -53
  103. package/_mjs/Schema/api/list.mjs.map +1 -1
  104. package/_mjs/Schema/api/map.mjs +59 -69
  105. package/_mjs/Schema/api/map.mjs.map +1 -1
  106. package/_mjs/Schema/api/maybe.mjs +34 -36
  107. package/_mjs/Schema/api/maybe.mjs.map +1 -1
  108. package/_mjs/Schema/api/set.mjs +47 -48
  109. package/_mjs/Schema/api/set.mjs.map +1 -1
  110. package/_mjs/Schema/api.mjs +304 -346
  111. package/_mjs/Schema/api.mjs.map +1 -1
  112. package/_mjs/Schema/definition.mjs +21 -17
  113. package/_mjs/Schema/definition.mjs.map +1 -1
  114. package/_mjs/Schema/derivations.mjs +71 -90
  115. package/_mjs/Schema/derivations.mjs.map +1 -1
  116. package/_mjs/Schema.mjs +12 -15
  117. package/_mjs/Show.mjs +79 -139
  118. package/_mjs/Show.mjs.map +1 -1
  119. package/_mjs/global.mjs +0 -2
  120. package/_mjs/index.mjs +0 -2
  121. package/_mjs/utils.mjs +35 -37
  122. package/_mjs/utils.mjs.map +1 -1
  123. package/package.json +7 -3
  124. package/_cjs/ParseError/ParseErrorFormatter.cjs.map +0 -1
  125. package/_cjs/ParseError.cjs.map +0 -1
  126. package/_cjs/Parser.cjs.map +0 -1
  127. package/_cjs/Schema.cjs.map +0 -1
  128. package/_cjs/global.cjs.map +0 -1
  129. package/_cjs/index.cjs.map +0 -1
  130. package/_mjs/ParseError/ParseErrorFormatter.mjs.map +0 -1
  131. package/_mjs/ParseError.mjs.map +0 -1
  132. package/_mjs/Parser.mjs.map +0 -1
  133. package/_mjs/Schema.mjs.map +0 -1
  134. package/_mjs/global.mjs.map +0 -1
  135. package/_mjs/index.mjs.map +0 -1
package/_cjs/Gen.cjs CHANGED
@@ -1,180 +1,144 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.genFrom = genFrom;
7
- exports.genTo = genTo;
8
- var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/schema/AST"));
9
- var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/schema/ASTAnnotation"));
10
- var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/test/control/Gen/api"));
11
- var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api"));
12
- var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/collection/immutable/Vector/api"));
13
- var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Maybe/destructors"));
14
- var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Maybe/api"));
15
- var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Maybe/definition"));
16
- var tsplus_module_9 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Either/api"));
17
- var _InvalidInterpretationError = /*#__PURE__*/require("@fncts/schema/InvalidInterpretationError");
18
- var _utils = /*#__PURE__*/require("@fncts/schema/utils");
19
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
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
- * @tsplus getter fncts.schema.Schema genFrom
23
- */
26
+ * @tsplus getter fncts.schema.Schema genFrom
27
+ */
24
28
  function genFrom(self) {
25
- return go(tsplus_module_1.getFrom(self.ast));
29
+ return go(_fncts_schema_AST.getFrom(self.ast));
26
30
  }
27
31
  /**
28
- * @tsplus getter fncts.schema.Schema genTo
29
- */
32
+ * @tsplus getter fncts.schema.Schema genTo
33
+ */
30
34
  function genTo(self) {
31
- return go(self.ast);
35
+ return go(self.ast);
32
36
  }
33
37
  function getHook(ast) {
34
- return ast.annotations.get(tsplus_module_2.GenHook);
38
+ return ast.annotations.get(_fncts_schema_ASTAnnotation.GenHook);
35
39
  }
36
40
  function record(key, value) {
37
- return tsplus_module_3.map(tuples => {
38
- const out = {};
39
- for (const [k, v] of tuples) {
40
- out[k] = v;
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 = /*#__PURE__*/(0, _utils.memoize)(function go(ast) {
48
- void 0;
49
- switch (ast._tag) {
50
- case 0 /* ASTTag.Declaration */:
51
- return tsplus_module_6.match(() => tsplus_module_3.fromIO(tsplus_module_4.haltNow(new _InvalidInterpretationError.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));
52
- case 1 /* ASTTag.Literal */:
53
- return tsplus_module_3.constant(ast.literal);
54
- case 2 /* ASTTag.UniqueSymbol */:
55
- return tsplus_module_3.constant(ast.symbol);
56
- case 3 /* ASTTag.UndefinedKeyword */:
57
- return tsplus_module_3.constant(undefined);
58
- case 4 /* ASTTag.VoidKeyword */:
59
- return tsplus_module_3.constant(undefined);
60
- case 5 /* ASTTag.NeverKeyword */:
61
- return tsplus_module_3.fromIO(tsplus_module_4.haltNow(new _InvalidInterpretationError.InvalidInterpretationError("cannot build a Gen for `never`"), fileName_1 + ":62:35"));
62
- case 6 /* ASTTag.UnknownKeyword */:
63
- return tsplus_module_3.anything();
64
- case 7 /* ASTTag.AnyKeyword */:
65
- return tsplus_module_3.anything();
66
- case 8 /* ASTTag.StringKeyword */:
67
- return tsplus_module_3.fullUnicodeString();
68
- case 9 /* ASTTag.NumberKeyword */:
69
- return tsplus_module_3.float;
70
- case 10 /* ASTTag.BooleanKeyword */:
71
- return tsplus_module_3.boolean;
72
- case 11 /* ASTTag.BigIntKeyword */:
73
- return tsplus_module_3.bigInt;
74
- case 12 /* ASTTag.SymbolKeyword */:
75
- return tsplus_module_3.map(s => Symbol.for(s))(tsplus_module_3.fullUnicodeString());
76
- case 13 /* ASTTag.ObjectKeyword */:
77
- return tsplus_module_3.anything();
78
- case 15 /* ASTTag.TemplateLiteral */:
79
- {
80
- const components = [tsplus_module_3.constant(ast.head)];
81
- for (const span of ast.spans) {
82
- components.push(tsplus_module_3.fullUnicodeString({
83
- maxLength: 5
84
- }));
85
- components.push(tsplus_module_3.constant(span.literal));
86
- }
87
- return tsplus_module_3.map(spans => spans.join(""))(tsplus_module_3.tuple(...components));
88
- }
89
- case 16 /* ASTTag.Tuple */:
90
- {
91
- const elements = tsplus_module_5.map(e => go(e.type))(ast.elements);
92
- const rest = tsplus_module_7.map(restElement => tsplus_module_5.map(go)(restElement))(ast.rest);
93
- let output = tsplus_module_3.tuple(...elements);
94
- if (elements.length > 0 && tsplus_module_8.isNothing(rest)) {
95
- const firstOptionalIndex = tsplus_module_5.findIndex(e => e.isOptional)(ast.elements);
96
- if (firstOptionalIndex !== -1) {
97
- output = tsplus_module_3.flatMap(as => tsplus_module_3.map(i => as.slice(0, i))(tsplus_module_3.intWith({
98
- min: firstOptionalIndex,
99
- max: elements.length - 1
100
- })))(output);
101
- }
102
- }
103
- if (tsplus_module_8.isJust(rest)) {
104
- const head = tsplus_module_5.unsafeHead(rest.value);
105
- const tail = tsplus_module_5.tail(rest.value);
106
- output = tsplus_module_3.flatMap(as => tsplus_module_3.map(rest => [...as, ...rest])(tsplus_module_3.arrayWith({
107
- maxLength: 5
108
- })(head)))(output);
109
- for (let j = 0; j < tail.length; j++) {
110
- output = tsplus_module_3.flatMap(as => tsplus_module_3.map(a => [...as, a])(tsplus_module_5.unsafeGet(j)(tail)))(output);
111
- }
112
- }
113
- return output;
114
- }
115
- case 17 /* ASTTag.TypeLiteral */:
116
- {
117
- const propertySignatureTypes = tsplus_module_5.map(ps => go(ps.type))(ast.propertySignatures);
118
- const indexSignatures = tsplus_module_5.map(is => [go(is.parameter), go(is.type)])(ast.indexSignatures);
119
- const requiredGens = {};
120
- const optionalGens = {};
121
- for (let i = 0; i < propertySignatureTypes.length; i++) {
122
- const ps = tsplus_module_5.unsafeGet(i)(ast.propertySignatures);
123
- const name = ps.name;
124
- if (!ps.isOptional) {
125
- requiredGens[name] = tsplus_module_5.unsafeGet(i)(propertySignatureTypes);
126
- } else {
127
- optionalGens[name] = tsplus_module_5.unsafeGet(i)(propertySignatureTypes);
128
- }
129
- }
130
- let output = tsplus_module_3.zipWith(tsplus_module_3.partial(optionalGens), (a, b) => ({
131
- ...a,
132
- ...b
133
- }))(tsplus_module_3.struct(requiredGens));
134
- for (let i = 0; i < indexSignatures.length; i++) {
135
- const parameter = tsplus_module_5.unsafeGet(i)(indexSignatures)[0];
136
- const type = tsplus_module_5.unsafeGet(i)(indexSignatures)[1];
137
- output = tsplus_module_3.flatMap(o => {
138
- return tsplus_module_3.map(d => ({
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":";;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,aAAa;;;;AAenB,SAAgB,QAAQ,MAAM;AAC1B,QAAO,GAAGA,kBAAgB,QAAQ,KAAK,IAAI,CAAC;;;;;AAKhD,SAAgB,MAAM,MAAM;AACxB,QAAO,GAAG,KAAK,IAAI;;AAEvB,SAAS,QAAQ,KAAK;AAClB,QAAO,IAAI,YAAY,IAAIC,4BAAgB,QAAQ;;AAEvD,SAAS,OAAO,KAAK,OAAO;AACxB,QAAOC,4BAAgB,KAAK,WAAW;EACnC,MAAM,MAAM,EAAE;AACd,OAAK,MAAM,CAAC,GAAG,MAAM,OACjB,KAAI,KAAK;AAEb,SAAO;GACT,CAACA,4BAAgB,UAAU,EAAE,WAAW,IAAI,CAAC,CAACA,4BAAgB,MAAM,KAAK,MAAM,CAAC,CAAC;;AAEvF,MAAM,MAAA,GAAA,oBAAA,SAAa,SAAS,GAAG,KAAK;AAEhC,SAAQ,IAAI,MAAZ;EACI,KAAK,EACD,QAAOC,mCAAgB,YAAYD,4BAAgB,OAAOE,iBAAgB,QAAQ,IAAIC,yCAAAA,2BAA2B,0DAA0D,EAAE,aAAa,SAAS,CAAC,GAAG,SAAS,KAAK,GAAGC,4CAAgB,IAAI,GAAG,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC;EACvR,KAAK,EACD,QAAOJ,4BAAgB,SAAS,IAAI,QAAQ;EAChD,KAAK,EACD,QAAOA,4BAAgB,SAAS,IAAI,OAAO;EAC/C,KAAK,EACD,QAAOA,4BAAgB,SAAS,KAAA,EAAU;EAC9C,KAAK,EACD,QAAOA,4BAAgB,SAAS,KAAA,EAAU;EAC9C,KAAK,EACD,QAAOA,4BAAgB,OAAOE,iBAAgB,QAAQ,IAAIC,yCAAAA,2BAA2B,iCAAiC,EAAE,aAAa,SAAS,CAAC;EACnJ,KAAK,EACD,QAAOH,4BAAgB,UAAU;EACrC,KAAK,EACD,QAAOA,4BAAgB,UAAU;EACrC,KAAK,EACD,QAAOA,4BAAgB,mBAAmB;EAC9C,KAAK,EACD,QAAOA,4BAAgB;EAC3B,KAAK,GACD,QAAOA,4BAAgB;EAC3B,KAAK,GACD,QAAOA,4BAAgB;EAC3B,KAAK,GACD,QAAOA,4BAAgB,KAAK,MAAM,OAAO,IAAI,EAAE,CAAC,CAACA,4BAAgB,mBAAmB,CAAC;EACzF,KAAK,GACD,QAAOA,4BAAgB,UAAU;EACrC,KAAK,IAAiC;GAClC,MAAM,aAAa,CAACA,4BAAgB,SAAS,IAAI,KAAK,CAAC;AACvD,QAAK,MAAM,QAAQ,IAAI,OAAO;AAC1B,eAAW,KAAKA,4BAAgB,kBAAkB,EAAE,WAAW,GAAG,CAAC,CAAC;AACpE,eAAW,KAAKA,4BAAgB,SAAS,KAAK,QAAQ,CAAC;;AAE3D,UAAOA,4BAAgB,KAAK,UAAU,MAAM,KAAK,GAAG,CAAC,CAACA,4BAAgB,MAAM,GAAG,WAAW,CAAC;;EAE/F,KAAK,IAAuB;GACxB,MAAM,WAAWI,4CAAgB,KAAK,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,SAAS;GACrE,MAAM,OAAOC,2BAAgB,KAAK,gBAAgBD,4CAAgB,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,KAAK;GACjG,IAAI,SAASJ,4BAAgB,MAAM,GAAG,SAAS;AAC/C,OAAI,SAAS,SAAS,KAAKM,kCAAgB,UAAU,KAAK,EAAE;IACxD,MAAM,qBAAqBF,4CAAgB,WAAW,MAAM,EAAE,WAAW,CAAC,IAAI,SAAS;AACvF,QAAI,uBAAuB,GACvB,UAASJ,4BAAgB,SAAS,OAAOA,4BAAgB,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,CAACA,4BAAgB,QAAQ;KAAE,KAAK;KAAoB,KAAK,SAAS,SAAS;KAAG,CAAC,CAAC,CAAC,CAAC,OAAO;;AAGpL,OAAIM,kCAAgB,OAAO,KAAK,EAAE;IAC9B,MAAM,OAAOF,4CAAgB,WAAW,KAAK,MAAM;IACnD,MAAM,OAAOA,4CAAgB,KAAK,KAAK,MAAM;AAC7C,aAASJ,4BAAgB,SAAS,OAAOA,4BAAgB,KAAK,SAAS,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAACA,4BAAgB,UAAU,EAAE,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;AACpJ,SAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,IAC7B,UAASA,4BAAgB,SAAS,OAAOA,4BAAgB,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAACI,4CAAgB,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;;AAGpI,UAAO;;EAEX,KAAK,IAA6B;GAC9B,MAAM,yBAAyBA,4CAAgB,KAAK,OAAO,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,mBAAmB;GAC/F,MAAM,kBAAkBA,4CAAgB,KAAK,OAAO,CAAC,GAAG,GAAG,UAAU,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,gBAAgB;GACzG,MAAM,eAAe,EAAE;GACvB,MAAM,eAAe,EAAE;AACvB,QAAK,IAAI,IAAI,GAAG,IAAI,uBAAuB,QAAQ,KAAK;IACpD,MAAM,KAAKA,4CAAgB,UAAU,EAAE,CAAC,IAAI,mBAAmB;IAC/D,MAAM,OAAO,GAAG;AAChB,QAAI,CAAC,GAAG,WACJ,cAAa,QAAQA,4CAAgB,UAAU,EAAE,CAAC,uBAAuB;QAGzE,cAAa,QAAQA,4CAAgB,UAAU,EAAE,CAAC,uBAAuB;;GAGjF,IAAI,SAASJ,4BAAgB,QAAQA,4BAAgB,QAAQ,aAAa,GAAG,GAAG,OAAO;IAAE,GAAG;IAAG,GAAG;IAAG,EAAE,CAACA,4BAAgB,OAAO,aAAa,CAAC;AAC7I,QAAK,IAAI,IAAI,GAAG,IAAI,gBAAgB,QAAQ,KAAK;IAC7C,MAAM,YAAYI,4CAAgB,UAAU,EAAE,CAAC,gBAAgB,CAAC;IAChE,MAAM,OAAOA,4CAAgB,UAAU,EAAE,CAAC,gBAAgB,CAAC;AAC3D,aAASJ,4BAAgB,SAAS,MAAM;AACpC,YAAOA,4BAAgB,KAAK,OAAO;MAAE,GAAG;MAAG,GAAG;MAAG,EAAE,CAAC,OAAO,WAAW,KAAK,CAAC;MAC9E,CAAC,OAAO;;AAEd,UAAO;;EAEX,KAAK,IAAuB;GACxB,MAAM,QAAQI,4CAAgB,IAAI,GAAG,CAAC,IAAI,MAAM;AAChD,UAAOJ,4BAAgB,MAAM,GAAG,MAAM;;EAE1C,KAAK,GACD,QAAOC,mCAAgB,YAAY;GAC/B,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAC;GAChC,MAAM,OAAA,GAAA,oBAAA,SAAc,EAAE;AACtB,UAAOD,4BAAgB,YAAY,IAAI,EAAE,CAAC;MAC1C,YAAY,SAAS,CAAC,CAAC,QAAQ,IAAI,CAAC;EAE5C,KAAK;AACD,OAAI,IAAI,MAAM,WAAW,EACrB,QAAOA,4BAAgB,OAAOE,iBAAgB,QAAQ,IAAIC,yCAAAA,2BAA2B,uCAAuC,EAAE,aAAa,UAAU,CAAC;AAE1J,UAAOH,4BAAgB,MAAM,GAAGI,4CAAgB,KAAK,CAAC,GAAG,WAAWJ,4BAAgB,SAAS,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC;EAEpH,KAAK,IAA4B;GAC7B,MAAM,OAAO,GAAG,IAAI,KAAK;AACzB,UAAOC,mCAAgB,YAAYD,4BAAgB,QAAQ,MAAMO,4BAAgB,QAAQ,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,YAAY,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC;;EAE7J,KAAK,GACD,QAAO,GAAG,IAAI,GAAG;EACrB,KAAK,IAA4B;GAC7B,MAAM,OAAO,GAAG,IAAI,KAAK;AACzB,UAAON,mCAAgB,YAAYD,4BAAgB,QAAQ,MAAMI,4CAAgB,OAAO,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,KAAK,GAAG,YAAY,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC;;;EAGxL"}