@fncts/schema 0.0.5 → 0.0.7

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 (157) hide show
  1. package/AST.d.ts +528 -0
  2. package/ASTAnnotation.d.ts +82 -0
  3. package/ASTAnnotationMap.d.ts +14 -0
  4. package/Gen.d.ts +15 -0
  5. package/InvalidInterpretationError.d.ts +5 -0
  6. package/ParseError.d.ts +107 -0
  7. package/ParseResult.d.ts +24 -0
  8. package/Parser/api.d.ts +42 -0
  9. package/Parser/definition.d.ts +22 -0
  10. package/Parser/interpreter.d.ts +6 -0
  11. package/Parser.d.ts +3 -0
  12. package/Schema/api/conc.d.ts +18 -0
  13. package/Schema/api/either.d.ts +19 -0
  14. package/Schema/api/hashMap.d.ts +21 -0
  15. package/Schema/api/immutableArray.d.ts +23 -0
  16. package/Schema/api/list.d.ts +23 -0
  17. package/Schema/api/maybe.d.ts +21 -0
  18. package/Schema/api.d.ts +243 -0
  19. package/Schema/definition.d.ts +29 -0
  20. package/Schema/derivations.d.ts +70 -0
  21. package/Schema.d.ts +9 -144
  22. package/_cjs/AST.cjs +1172 -0
  23. package/_cjs/AST.cjs.map +1 -0
  24. package/_cjs/ASTAnnotation.cjs +111 -0
  25. package/_cjs/ASTAnnotation.cjs.map +1 -0
  26. package/_cjs/ASTAnnotationMap.cjs +35 -0
  27. package/_cjs/ASTAnnotationMap.cjs.map +1 -0
  28. package/_cjs/Gen.cjs +182 -0
  29. package/_cjs/Gen.cjs.map +1 -0
  30. package/_cjs/InvalidInterpretationError.cjs +18 -0
  31. package/_cjs/InvalidInterpretationError.cjs.map +1 -0
  32. package/_cjs/ParseError.cjs +223 -0
  33. package/_cjs/ParseError.cjs.map +1 -0
  34. package/_cjs/{Decoder.cjs → ParseResult.cjs} +25 -22
  35. package/_cjs/ParseResult.cjs.map +1 -0
  36. package/_cjs/Parser/api.cjs +80 -0
  37. package/_cjs/Parser/api.cjs.map +1 -0
  38. package/_cjs/{Guard.cjs → Parser/definition.cjs} +17 -22
  39. package/_cjs/Parser/definition.cjs.map +1 -0
  40. package/_cjs/Parser/interpreter.cjs +410 -0
  41. package/_cjs/Parser/interpreter.cjs.map +1 -0
  42. package/_cjs/Parser.cjs +39 -0
  43. package/_cjs/Parser.cjs.map +1 -0
  44. package/_cjs/Schema/api/conc.cjs +84 -0
  45. package/_cjs/Schema/api/conc.cjs.map +1 -0
  46. package/_cjs/Schema/api/either.cjs +96 -0
  47. package/_cjs/Schema/api/either.cjs.map +1 -0
  48. package/_cjs/Schema/api/hashMap.cjs +161 -0
  49. package/_cjs/Schema/api/hashMap.cjs.map +1 -0
  50. package/_cjs/Schema/api/immutableArray.cjs +90 -0
  51. package/_cjs/Schema/api/immutableArray.cjs.map +1 -0
  52. package/_cjs/Schema/api/list.cjs +98 -0
  53. package/_cjs/Schema/api/list.cjs.map +1 -0
  54. package/_cjs/Schema/api/maybe.cjs +76 -0
  55. package/_cjs/Schema/api/maybe.cjs.map +1 -0
  56. package/_cjs/Schema/api.cjs +425 -0
  57. package/_cjs/Schema/api.cjs.map +1 -0
  58. package/_cjs/Schema/definition.cjs +26 -0
  59. package/_cjs/Schema/definition.cjs.map +1 -0
  60. package/_cjs/Schema/derivations.cjs +108 -0
  61. package/_cjs/Schema/derivations.cjs.map +1 -0
  62. package/_cjs/Schema.cjs +97 -237
  63. package/_cjs/Schema.cjs.map +1 -1
  64. package/_cjs/utils.cjs +52 -0
  65. package/_cjs/utils.cjs.map +1 -0
  66. package/_mjs/AST.mjs +1061 -0
  67. package/_mjs/AST.mjs.map +1 -0
  68. package/_mjs/ASTAnnotation.mjs +80 -0
  69. package/_mjs/ASTAnnotation.mjs.map +1 -0
  70. package/_mjs/ASTAnnotationMap.mjs +27 -0
  71. package/_mjs/ASTAnnotationMap.mjs.map +1 -0
  72. package/_mjs/Gen.mjs +173 -0
  73. package/_mjs/Gen.mjs.map +1 -0
  74. package/_mjs/InvalidInterpretationError.mjs +10 -0
  75. package/_mjs/InvalidInterpretationError.mjs.map +1 -0
  76. package/_mjs/ParseError.mjs +201 -0
  77. package/_mjs/ParseError.mjs.map +1 -0
  78. package/_mjs/ParseResult.mjs +22 -0
  79. package/_mjs/ParseResult.mjs.map +1 -0
  80. package/_mjs/Parser/api.mjs +67 -0
  81. package/_mjs/Parser/api.mjs.map +1 -0
  82. package/_mjs/Parser/definition.mjs +15 -0
  83. package/_mjs/Parser/definition.mjs.map +1 -0
  84. package/_mjs/Parser/interpreter.mjs +402 -0
  85. package/_mjs/Parser/interpreter.mjs.map +1 -0
  86. package/_mjs/Parser.mjs +5 -0
  87. package/_mjs/Parser.mjs.map +1 -0
  88. package/_mjs/Schema/api/conc.mjs +72 -0
  89. package/_mjs/Schema/api/conc.mjs.map +1 -0
  90. package/_mjs/Schema/api/either.mjs +85 -0
  91. package/_mjs/Schema/api/either.mjs.map +1 -0
  92. package/_mjs/Schema/api/hashMap.mjs +150 -0
  93. package/_mjs/Schema/api/hashMap.mjs.map +1 -0
  94. package/_mjs/Schema/api/immutableArray.mjs +79 -0
  95. package/_mjs/Schema/api/immutableArray.mjs.map +1 -0
  96. package/_mjs/Schema/api/list.mjs +87 -0
  97. package/_mjs/Schema/api/list.mjs.map +1 -0
  98. package/_mjs/Schema/api/maybe.mjs +65 -0
  99. package/_mjs/Schema/api/maybe.mjs.map +1 -0
  100. package/_mjs/Schema/api.mjs +368 -0
  101. package/_mjs/Schema/api.mjs.map +1 -0
  102. package/_mjs/Schema/definition.mjs +16 -0
  103. package/_mjs/Schema/definition.mjs.map +1 -0
  104. package/_mjs/Schema/derivations.mjs +94 -0
  105. package/_mjs/Schema/derivations.mjs.map +1 -0
  106. package/_mjs/Schema.mjs +12 -212
  107. package/_mjs/Schema.mjs.map +1 -1
  108. package/_mjs/utils.mjs +41 -0
  109. package/_mjs/utils.mjs.map +1 -0
  110. package/_src/AST.ts +1353 -0
  111. package/_src/ASTAnnotation.ts +98 -0
  112. package/_src/ASTAnnotationMap.ts +38 -0
  113. package/_src/Gen.ts +168 -0
  114. package/_src/InvalidInterpretationError.ts +6 -0
  115. package/_src/ParseError.ts +237 -0
  116. package/_src/ParseResult.ts +26 -0
  117. package/_src/Parser/api.ts +71 -0
  118. package/_src/Parser/definition.ts +24 -0
  119. package/_src/Parser/interpreter.ts +442 -0
  120. package/_src/Parser.ts +5 -0
  121. package/_src/Schema/api/conc.ts +78 -0
  122. package/_src/Schema/api/either.ts +96 -0
  123. package/_src/Schema/api/hashMap.ts +184 -0
  124. package/_src/Schema/api/immutableArray.ts +88 -0
  125. package/_src/Schema/api/list.ts +96 -0
  126. package/_src/Schema/api/maybe.ts +68 -0
  127. package/_src/Schema/api.ts +530 -0
  128. package/_src/Schema/definition.ts +32 -0
  129. package/_src/Schema/derivations.ts +185 -0
  130. package/_src/Schema.ts +14 -254
  131. package/_src/global.ts +53 -0
  132. package/_src/utils.ts +48 -0
  133. package/global.d.ts +52 -0
  134. package/package.json +2 -2
  135. package/utils.d.ts +8 -0
  136. package/Decoder.d.ts +0 -3
  137. package/Encoder.d.ts +0 -4
  138. package/Guard.d.ts +0 -3
  139. package/Schemable.d.ts +0 -39
  140. package/_cjs/Decoder.cjs.map +0 -1
  141. package/_cjs/Encoder.cjs +0 -45
  142. package/_cjs/Encoder.cjs.map +0 -1
  143. package/_cjs/Guard.cjs.map +0 -1
  144. package/_cjs/Schemable.cjs +0 -6
  145. package/_cjs/Schemable.cjs.map +0 -1
  146. package/_mjs/Decoder.mjs +0 -20
  147. package/_mjs/Decoder.mjs.map +0 -1
  148. package/_mjs/Encoder.mjs +0 -36
  149. package/_mjs/Encoder.mjs.map +0 -1
  150. package/_mjs/Guard.mjs +0 -20
  151. package/_mjs/Guard.mjs.map +0 -1
  152. package/_mjs/Schemable.mjs +0 -2
  153. package/_mjs/Schemable.mjs.map +0 -1
  154. package/_src/Decoder.ts +0 -20
  155. package/_src/Encoder.ts +0 -38
  156. package/_src/Guard.ts +0 -20
  157. package/_src/Schemable.ts +0 -46
@@ -0,0 +1,425 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.any = exports.annotate = exports._void = exports._undefined = exports._null = void 0;
7
+ exports.array = array;
8
+ exports.boolean = exports.bigint = void 0;
9
+ exports.brand = brand;
10
+ exports.declaration = declaration;
11
+ exports.enum = enum_1;
12
+ exports.enum_ = void 0;
13
+ exports.extend = extend;
14
+ exports.filter = void 0;
15
+ exports.instanceOf = instanceOf;
16
+ exports.isParseOptional = exports.isOptional = void 0;
17
+ exports.keyof = keyof;
18
+ exports.lazy = lazy;
19
+ exports.literal = literal;
20
+ exports.make = void 0;
21
+ exports.mutableArray = mutableArray;
22
+ exports.null = exports.never = void 0;
23
+ exports.nullable = nullable;
24
+ exports.object = exports.number = void 0;
25
+ exports.optional = optional;
26
+ exports.parseOptional = parseOptional;
27
+ exports.record = record;
28
+ exports.string = void 0;
29
+ exports.struct = struct;
30
+ exports.symbol = void 0;
31
+ exports.templateLiteral = templateLiteral;
32
+ exports.transformOrFail = exports.transform = void 0;
33
+ exports.tuple = tuple;
34
+ exports.union = exports.undefined = void 0;
35
+ exports.uniqueSymbol = uniqueSymbol;
36
+ exports.void = exports.unknown = void 0;
37
+ var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/Schema/definition"));
38
+ var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/Vector/api"));
39
+ var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/AST"));
40
+ var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/ParseResult"));
41
+ var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/ParseError"));
42
+ var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/ASTAnnotation"));
43
+ var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/api"));
44
+ var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/Schema/api/maybe"));
45
+ var tsplus_module_9 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/constructors"));
46
+ var tsplus_module_10 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/definition"));
47
+ var _Showable = /*#__PURE__*/require("@fncts/base/data/Showable");
48
+ var _AST2 = /*#__PURE__*/require("../AST.cjs");
49
+ var _utils = /*#__PURE__*/require("../utils.cjs");
50
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
51
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
52
+ const fileName_1 = "(@fncts/schema) src/Schema/api.ts";
53
+ const make = make_1;
54
+ exports.make = make;
55
+ const annotate = annotate_1;
56
+ exports.annotate = annotate;
57
+ const filter = filter_1;
58
+ exports.filter = filter;
59
+ const union = union_1;
60
+ exports.union = union;
61
+ const isOptional = isOptional_1;
62
+ exports.isOptional = isOptional;
63
+ const isParseOptional = isParseOptional_1;
64
+ exports.isParseOptional = isParseOptional;
65
+ const enum_ = enum_1;
66
+ exports.enum_ = enum_;
67
+ const transformOrFail = transformOrFail_1;
68
+ exports.transformOrFail = transformOrFail;
69
+ const transform = transform_1;
70
+ exports.transform = transform;
71
+ /**
72
+ * @tsplus static fncts.schema.SchemaOps fromAST
73
+ */
74
+ function make_1(ast) {
75
+ return new tsplus_module_1.Schema(ast);
76
+ }
77
+ /**
78
+ * @tsplus pipeable fncts.schema.Schema annotate
79
+ */
80
+ function annotate_1(annotation, value) {
81
+ return self => {
82
+ return make_1(self.ast.clone({
83
+ annotations: self.ast.annotations.annotate(annotation, value)
84
+ }));
85
+ };
86
+ }
87
+ /**
88
+ * @tsplus static fncts.schema.SchemaOps declaration
89
+ */
90
+ function declaration(typeParameters, type, decode, annotations) {
91
+ return make_1(tsplus_module_3.createDeclaration(tsplus_module_2.map(tp => tp.ast)(typeParameters), type.ast, (...typeParameters) => decode(...typeParameters.map(make_1)), annotations));
92
+ }
93
+ function filter_1(predicate) {
94
+ return self => {
95
+ const ast = tsplus_module_3.createRefinement(self.ast, a => predicate(a) ? tsplus_module_4.succeed(a) : tsplus_module_4.fail(tsplus_module_5.typeError(ast, a)), false);
96
+ return make_1(ast);
97
+ };
98
+ }
99
+ /**
100
+ * @tsplus pipeable fncts.schema.Schema brand
101
+ */
102
+ function brand(validation) {
103
+ return self => {
104
+ const ast = tsplus_module_3.createRefinement(self.ast, a => validation.validate(a) ? tsplus_module_4.succeed(a) : tsplus_module_4.fail(tsplus_module_5.typeError(ast, a)), false, self.ast.annotations.annotate(tsplus_module_6.Brand, tsplus_module_2.vector(validation)));
105
+ return make_1(ast);
106
+ };
107
+ }
108
+ function makeLiteral(value) {
109
+ return make_1(tsplus_module_3.createLiteral(value));
110
+ }
111
+ /**
112
+ * @tsplus static fncts.schema.SchemaOps literal
113
+ */
114
+ function literal(...literals) {
115
+ return union_1(...literals.map(makeLiteral));
116
+ }
117
+ /**
118
+ * @tsplus static fncts.schema.SchemaOps never
119
+ * @tsplus implicit
120
+ */
121
+ const never = /*#__PURE__*/make_1(tsplus_module_3.neverKeyword);
122
+ /**
123
+ * @tsplus static fncts.schema.SchemaOps unknown
124
+ * @tsplus implicit
125
+ */
126
+ exports.never = never;
127
+ const unknown = /*#__PURE__*/make_1(tsplus_module_3.unknownKeyword);
128
+ /**
129
+ * @tsplus static fncts.schema.SchemaOps any
130
+ */
131
+ exports.unknown = unknown;
132
+ const any = /*#__PURE__*/make_1(tsplus_module_3.anyKeyword);
133
+ /**
134
+ * @tsplus static fncts.schema.SchemaOps undefined
135
+ * @tsplus implicit
136
+ */
137
+ exports.any = any;
138
+ const _undefined_1 = /*#__PURE__*/make_1(tsplus_module_3.undefinedKeyword);
139
+ exports.undefined = _undefined_1;
140
+ const _undefined = _undefined_1;
141
+ exports._undefined = _undefined;
142
+ /**
143
+ * @tsplus static fncts.schema.SchemaOps null
144
+ * @tsplus implicit
145
+ */
146
+ const _null_1 = /*#__PURE__*/make_1( /*#__PURE__*/tsplus_module_3.createLiteral(null));
147
+ exports.null = _null_1;
148
+ const _null = _null_1;
149
+ exports._null = _null;
150
+ /**
151
+ * @tsplus static fncts.schema.SchemaOps void
152
+ * @tsplus implicit
153
+ */
154
+ const _void_1 = /*#__PURE__*/make_1(tsplus_module_3.voidKeyword);
155
+ exports.void = _void_1;
156
+ const _void = _void_1;
157
+ exports._void = _void;
158
+ /**
159
+ * @tsplus static fncts.schema.SchemaOps string
160
+ * @tsplus implicit
161
+ */
162
+ const string = /*#__PURE__*/make_1(tsplus_module_3.stringKeyword);
163
+ /**
164
+ * @tsplus static fncts.schema.SchemaOps number
165
+ * @tsplus implicit
166
+ */
167
+ exports.string = string;
168
+ const number = /*#__PURE__*/make_1(tsplus_module_3.numberKeyword);
169
+ /**
170
+ * @tsplus static fncts.schema.SchemaOps boolean
171
+ * @tsplus implicit
172
+ */
173
+ exports.number = number;
174
+ const boolean = /*#__PURE__*/make_1(tsplus_module_3.booleanKeyword);
175
+ /**
176
+ * @tsplus static fncts.schema.SchemaOps bigint
177
+ * @tsplus implicit
178
+ */
179
+ exports.boolean = boolean;
180
+ const bigint = /*#__PURE__*/make_1(tsplus_module_3.bigIntKeyword);
181
+ /**
182
+ * @tsplus static fncts.schema.SchemaOps symbol
183
+ * @tsplus implicit
184
+ */
185
+ exports.bigint = bigint;
186
+ const symbol = /*#__PURE__*/make_1(tsplus_module_3.symbolKeyword);
187
+ /**
188
+ * @tsplus static fncts.schema.SchemaOps object
189
+ * @tsplus implicit
190
+ */
191
+ exports.symbol = symbol;
192
+ const object = /*#__PURE__*/make_1(tsplus_module_3.objectKeyword);
193
+ /**
194
+ * @tsplus static fncts.schema.SchemaOps union
195
+ * @tsplus derive fncts.schema.Schema<|> 30
196
+ */
197
+ exports.object = object;
198
+ function union_1(...members) {
199
+ return make_1(tsplus_module_3.createUnion(tsplus_module_2.from(members.map(m => m.ast))));
200
+ }
201
+ /**
202
+ * @tsplus getter fncts.schema.Schema nullable
203
+ */
204
+ function nullable(self) {
205
+ return union_1(_null_1, self);
206
+ }
207
+ /**
208
+ * @tsplus static fncts.schema.SchemaOps uniqueSymbol
209
+ */
210
+ function uniqueSymbol(symbol, annotations) {
211
+ return make_1(tsplus_module_3.createUniqueSymbol(symbol, annotations));
212
+ }
213
+ /**
214
+ * @tsplus getter fncts.schema.Schema optional
215
+ */
216
+ function optional(self) {
217
+ return make_1(self.ast.clone({
218
+ annotations: self.ast.annotations.annotate(tsplus_module_6.Optional, true)
219
+ }));
220
+ }
221
+ /**
222
+ * @tsplus fluent fncts.schema.Schema isOptional
223
+ */
224
+ function isOptional_1(self) {
225
+ return tsplus_module_7.getOrElse(() => false)(self.ast.annotations.get(tsplus_module_6.Optional));
226
+ }
227
+ /**
228
+ * @tsplus getter fncts.schema.Schema parseOptional
229
+ */
230
+ function parseOptional(self) {
231
+ return make_1(self.ast.clone({
232
+ annotations: self.ast.annotations.annotate(tsplus_module_6.ParseOptional, true)
233
+ }));
234
+ }
235
+ /**
236
+ * @tsplus fluent fncts.schema.Schema isParseOptional
237
+ */
238
+ function isParseOptional_1(self) {
239
+ return tsplus_module_7.getOrElse(() => false)(self.ast.annotations.get(tsplus_module_6.ParseOptional));
240
+ }
241
+ /**
242
+ * @tsplus static fncts.schema.SchemaOps struct
243
+ */
244
+ function struct(fields) {
245
+ const parseOptionalKeys = tsplus_module_2.filter(key => isParseOptional_1(fields[key]))((0, _utils.ownKeys)(fields));
246
+ const struct = make_1(tsplus_module_3.createTypeLiteral(tsplus_module_2.map(key => tsplus_module_3.createPropertySignature(key, fields[key].ast, isOptional_1(fields[key]), true))((0, _utils.ownKeys)(fields)), tsplus_module_2.empty()));
247
+ if (tsplus_module_2.isEmpty(parseOptionalKeys)) {
248
+ return struct;
249
+ }
250
+ const propertySignatures = struct.ast.propertySignatures;
251
+ const from = make_1(tsplus_module_3.createTypeLiteral(tsplus_module_2.map(p => tsplus_module_2.includes(p.name)(parseOptionalKeys) ? tsplus_module_3.createPropertySignature(p.name, tsplus_module_3.createUnion(tsplus_module_2.vector(tsplus_module_3.undefinedKeyword, tsplus_module_3.createLiteral(null), p.type)), true, p.isReadonly) : p)(propertySignatures), tsplus_module_2.empty()));
252
+ const to = make_1(tsplus_module_3.createTypeLiteral(tsplus_module_2.map(p => {
253
+ if (tsplus_module_2.includes(p.name)(parseOptionalKeys)) {
254
+ if (tsplus_module_3.isLazy(fields[p.name].ast)) {
255
+ return tsplus_module_3.createPropertySignature(p.name, tsplus_module_3.createLazy(() => tsplus_module_8.maybe(fields[p.name]).ast), true, p.isReadonly);
256
+ }
257
+ return tsplus_module_3.createPropertySignature(p.name, tsplus_module_8.maybe(fields[p.name]).ast, true, p.isReadonly);
258
+ }
259
+ return p;
260
+ })(propertySignatures), tsplus_module_2.empty()));
261
+ return transform_1(to, input => {
262
+ const output = {
263
+ ...input
264
+ };
265
+ for (const key of parseOptionalKeys) {
266
+ output[key] = tsplus_module_9.fromNullable(input[key]);
267
+ }
268
+ return output;
269
+ }, input => {
270
+ const output = {
271
+ ...input
272
+ };
273
+ for (const key of parseOptionalKeys) {
274
+ const value = input[key];
275
+ if (tsplus_module_10.isNothing(value)) {
276
+ delete output[key];
277
+ continue;
278
+ }
279
+ output[key] = tsplus_module_7.toUndefined(value);
280
+ }
281
+ return output;
282
+ })(from);
283
+ }
284
+ /**
285
+ * @tsplus static fncts.schema.SchemaOps tuple
286
+ */
287
+ function tuple(...elements) {
288
+ return make_1(tsplus_module_3.createTuple(tsplus_module_2.from(elements.map(schema => tsplus_module_3.createElement(schema.ast, false))), tsplus_module_9.nothing(fileName_1 + ":320:105"), true));
289
+ }
290
+ /**
291
+ * @tsplus static fncts.schema.SchemaOps lazy
292
+ */
293
+ function lazy(f, annotations) {
294
+ return make_1(tsplus_module_3.createLazy(() => f().ast, annotations));
295
+ }
296
+ /**
297
+ * @tsplus static fncts.schema.SchemaOps array
298
+ * @tsplus getter fncts.schema.Schema array
299
+ */
300
+ function array(item) {
301
+ return make_1(tsplus_module_3.createTuple(tsplus_module_2.empty(), tsplus_module_9.just(tsplus_module_2.vector(item.ast), fileName_1 + ":336:61"), true));
302
+ }
303
+ /**
304
+ * @tsplus static fncts.schema.SchemaOps mutableArray
305
+ * @tsplus getter fncts.schema.Schema mutableArray
306
+ */
307
+ function mutableArray(item) {
308
+ return make_1(tsplus_module_3.createTuple(tsplus_module_2.empty(), tsplus_module_9.just(tsplus_module_2.vector(item.ast), fileName_1 + ":344:61"), false));
309
+ }
310
+ /**
311
+ * @tsplus static fncts.schema.SchemaOps record
312
+ */
313
+ function record(key, value) {
314
+ return make_1(tsplus_module_3.createRecord(key.ast, value.ast, true));
315
+ }
316
+ /**
317
+ * @tsplus static fncts.schema.SchemaOps enum
318
+ */
319
+ function enum_1(enums) {
320
+ return make_1(tsplus_module_3.createEnum(tsplus_module_2.from(Object.keys(enums).filter(key => typeof enums[enums[key]] !== "number").map(key => [key, enums[key]]))));
321
+ }
322
+ function getTemplateLiterals(ast) {
323
+ void 0;
324
+ switch (ast._tag) {
325
+ case 1 /* ASTTag.Literal */:
326
+ return tsplus_module_2.vector(ast);
327
+ case 9 /* ASTTag.NumberKeyword */:
328
+ case 8 /* ASTTag.StringKeyword */:
329
+ return tsplus_module_2.vector(tsplus_module_3.createTemplateLiteral("", tsplus_module_2.vector(new _AST2.TemplateLiteralSpan(ast, ""))));
330
+ case 18 /* ASTTag.Union */:
331
+ return tsplus_module_2.flatMap(getTemplateLiterals)(ast.types);
332
+ default:
333
+ throw new Error(`Unsupported template literal span ${(0, _Showable.show)(ast)}`);
334
+ }
335
+ }
336
+ function combineTemplateLiterals(a, b) {
337
+ if (tsplus_module_3.isLiteral(a)) {
338
+ return tsplus_module_3.isLiteral(b) ? tsplus_module_3.createLiteral(String(a.literal) + String(b.literal)) : tsplus_module_3.createTemplateLiteral(String(a.literal) + b.head, b.spans);
339
+ }
340
+ if (tsplus_module_3.isLiteral(b)) {
341
+ if (!tsplus_module_2.isNonEmpty(a.spans)) {
342
+ throw new Error("Invalid template literal");
343
+ }
344
+ const last = tsplus_module_2.unsafeLast(a.spans);
345
+ return tsplus_module_3.createTemplateLiteral(a.head, tsplus_module_2.append(new _AST2.TemplateLiteralSpan(last.type, last.literal + String(b.literal)))(tsplus_module_2.slice(0, -1)(a.spans)));
346
+ }
347
+ if (!tsplus_module_2.isNonEmpty(a.spans)) {
348
+ throw new Error("Invalid template literal");
349
+ }
350
+ const last = tsplus_module_2.unsafeLast(a.spans);
351
+ return tsplus_module_3.createTemplateLiteral(a.head, tsplus_module_2.concat(b.spans)(tsplus_module_2.append(new _AST2.TemplateLiteralSpan(last.type, last.literal + String(b.head)))(tsplus_module_2.slice(0, -1)(a.spans))));
352
+ }
353
+ /**
354
+ * @tsplus static fncts.schema.SchemaOps templateLiteral
355
+ */
356
+ function templateLiteral(...[head, ...tail]) {
357
+ let types = getTemplateLiterals(head.ast);
358
+ for (const span of tail) {
359
+ types = tsplus_module_2.flatMap(a => tsplus_module_2.map(b => combineTemplateLiterals(a, b))(getTemplateLiterals(span.ast)))(types);
360
+ }
361
+ return make_1(tsplus_module_3.createUnion(types));
362
+ }
363
+ /**
364
+ * @tsplus static fncts.schema.SchemaOps keyof
365
+ * @tsplus getter fncts.schema.Schema keyof
366
+ */
367
+ function keyof(self) {
368
+ return make_1(tsplus_module_3.keyof(self.ast));
369
+ }
370
+ function isOverlappingPropertySignatures(x, y) {
371
+ return tsplus_module_2.some(px => tsplus_module_2.some(py => px.name === py.name)(y.propertySignatures))(x.propertySignatures);
372
+ }
373
+ function isOverlappingIndexSignatures(x, y) {
374
+ return tsplus_module_2.some(ix => tsplus_module_2.some(iy => {
375
+ const bx = (0, _AST2.getParameter)(ix.parameter);
376
+ const by = (0, _AST2.getParameter)(iy.parameter);
377
+ return tsplus_module_3.isStringKeyword(bx) && tsplus_module_3.isStringKeyword(by) || tsplus_module_3.isSymbolKeyword(bx) && tsplus_module_3.isSymbolKeyword(by);
378
+ })(y.indexSignatures))(x.indexSignatures);
379
+ }
380
+ /**
381
+ * @tsplus pipeable fncts.schema.Schema extend
382
+ */
383
+ function extend(that) {
384
+ return self => {
385
+ const selfTypes = tsplus_module_3.isUnion(self.ast) ? self.ast.types : tsplus_module_2.vector(self.ast);
386
+ const thatTypes = tsplus_module_3.isUnion(that.ast) ? that.ast.types : tsplus_module_2.vector(that.ast);
387
+ if (tsplus_module_2.every(tsplus_module_3.isTypeLiteral)(selfTypes) && tsplus_module_2.every(tsplus_module_3.isTypeLiteral)(thatTypes)) {
388
+ return make_1(tsplus_module_3.createUnion(tsplus_module_2.flatMap(x => tsplus_module_2.map(y => {
389
+ if (isOverlappingPropertySignatures(x, y)) {
390
+ throw new Error("`extend` cannot handle overlapping property signatures");
391
+ }
392
+ if (isOverlappingIndexSignatures(x, y)) {
393
+ throw new Error("`extend` cannot handle overlapping index signatures");
394
+ }
395
+ return tsplus_module_3.createTypeLiteral(tsplus_module_2.concat(y.propertySignatures)(x.propertySignatures), tsplus_module_2.concat(y.indexSignatures)(x.indexSignatures));
396
+ })(thatTypes))(selfTypes)));
397
+ }
398
+ throw new Error("`extend can only handle type literals or unions of type literals`");
399
+ };
400
+ }
401
+ /**
402
+ * @tsplus pipeable fncts.schema.Schema instanceOf
403
+ */
404
+ function instanceOf(constructor) {
405
+ return self => {
406
+ return annotate_1(tsplus_module_6.Description, `an instance of ${constructor.name}`)(filter_1(value => value instanceof constructor)(self));
407
+ };
408
+ }
409
+ /**
410
+ * @tsplus pipeable fncts.schema.Schema transformOrFail
411
+ */
412
+ function transformOrFail_1(to, decode, encode) {
413
+ return from => {
414
+ return make_1(tsplus_module_3.createTransform(from.ast, to.ast, decode, encode, false));
415
+ };
416
+ }
417
+ /**
418
+ * @tsplus pipeable fncts.schema.Schema transform
419
+ */
420
+ function transform_1(to, decode, encode) {
421
+ return from => {
422
+ return transformOrFail_1(to, (input, options) => tsplus_module_4.succeed(decode(input, options)), (input, options) => tsplus_module_4.succeed(encode(input, options)))(from);
423
+ };
424
+ }
425
+ //# sourceMappingURL=api.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.cjs","mappings":"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","names":["make","annotate","filter","union","isOptional","isParseOptional","enum_","transformOrFail","transform","ast","Schema","annotation","value","self","make_1","clone","annotations","declaration","typeParameters","type","decode","tsplus_module_3","tsplus_module_2","tp","map","predicate","a","tsplus_module_4","tsplus_module_5","brand","validation","validate","makeLiteral","literal","literals","union_1","never","unknown","any","_undefined_1","_undefined","_null_1","_null","_void_1","_void","string","number","boolean","bigint","symbol","object","members","m","nullable","uniqueSymbol","optional","tsplus_module_7","get","parseOptional","struct","fields","parseOptionalKeys","key","isParseOptional_1","isOptional_1","propertySignatures","from","p","name","isReadonly","to","tsplus_module_8","transform_1","input","output","tsplus_module_9","tsplus_module_10","tuple","elements","schema","lazy","f","array","item","mutableArray","record","enums","Object","keys","getTemplateLiterals","_tag","TemplateLiteralSpan","types","Error","combineTemplateLiterals","b","String","head","spans","last","templateLiteral","tail","span","keyof","isOverlappingPropertySignatures","x","y","px","py","isOverlappingIndexSignatures","ix","iy","bx","parameter","by","indexSignatures","extend","that","selfTypes","thatTypes","instanceOf","constructor","annotate_1","filter_1","encode","transformOrFail_1","options"],"sourceRoot":"","sources":["../../_src/Schema/api.ts"],"sourcesContent":[null]}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SchemaVariance = exports.SchemaTypeId = exports.Schema = exports.OptionalSchemaSymbol = void 0;
7
+ var _a;
8
+ const SchemaVariance = /*#__PURE__*/Symbol.for("fncts.schema.Schema.Variance");
9
+ exports.SchemaVariance = SchemaVariance;
10
+ const SchemaTypeId = /*#__PURE__*/Symbol.for("fncts.schema.Schema");
11
+ exports.SchemaTypeId = SchemaTypeId;
12
+ const OptionalSchemaSymbol = /*#__PURE__*/Symbol.for("fncts.schema.Schema.OptionalSchema");
13
+ /**
14
+ * @tsplus type fncts.schema.Schema
15
+ * @tsplus companion fncts.schema.SchemaOps
16
+ */
17
+ exports.OptionalSchemaSymbol = OptionalSchemaSymbol;
18
+ class Schema {
19
+ constructor(ast) {
20
+ this.ast = ast;
21
+ this[_a] = SchemaTypeId;
22
+ }
23
+ }
24
+ exports.Schema = Schema;
25
+ _a = SchemaTypeId;
26
+ //# sourceMappingURL=definition.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.cjs","mappings":";;;;;;;AAAO,MAAMA,cAAc,gBAAGC,MAAM,CAACC,GAAG,CAAC,8BAA8B,CAAC;AAAC;AAGlE,MAAMC,YAAY,gBAAGF,MAAM,CAACC,GAAG,CAAC,qBAAqB,CAAC;AAAC;AAGvD,MAAME,oBAAoB,gBAAGH,MAAM,CAACC,GAAG,CAAC,oCAAoC,CAAC;AAOpF;;;;AAAA;AAIM,MAAOG,MAAM;EAKjBC,YAAqBC,GAAQ;IAAR,QAAG,GAAHA,GAAG;IAJf,QAAc,GAAiBJ,YAAY;EAIpB;;AACjC;KALWA,YAAY","names":["SchemaVariance","Symbol","for","SchemaTypeId","OptionalSchemaSymbol","Schema","constructor","ast"],"sourceRoot":"","sources":["../../_src/Schema/definition.ts"],"sourcesContent":[null]}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.deriveArray = deriveArray;
7
+ exports.deriveLazy = deriveLazy;
8
+ exports.deriveLiteral = deriveLiteral;
9
+ exports.deriveRecord = deriveRecord;
10
+ exports.deriveStruct = deriveStruct;
11
+ exports.deriveTuple = deriveTuple;
12
+ exports.deriveValidation = deriveValidation;
13
+ var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/Vector/api"));
14
+ var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/ASTAnnotation"));
15
+ var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/AST"));
16
+ var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/Schema/api"));
17
+ var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/Schema/api/maybe"));
18
+ var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/constructors"));
19
+ var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/definition"));
20
+ var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/api"));
21
+ var tsplus_module_9 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/function/api"));
22
+ var _utils = /*#__PURE__*/require("@fncts/schema/utils");
23
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+ /**
26
+ * @tsplus derive fncts.schema.Schema<_> 10
27
+ */
28
+ function deriveValidation(...[base, brands]) {
29
+ return tsplus_module_4.make(tsplus_module_3.createValidation(base.ast, tsplus_module_1.from(Object.values(brands)), base.ast.annotations.annotate(tsplus_module_2.Brand, tsplus_module_1.from(Object.values(brands)))));
30
+ }
31
+ /**
32
+ * @tsplus derive fncts.schema.Schema<_> 20
33
+ */
34
+ function deriveLiteral(...[value]) {
35
+ return tsplus_module_4.literal(value);
36
+ }
37
+ /**
38
+ * @tsplus derive fncts.schema.Schema<_> 20
39
+ */
40
+ function deriveStruct(...[requiredFields, optionalFields, maybeFields]) {
41
+ const maybeFieldsKeys = (0, _utils.ownKeys)(maybeFields);
42
+ let propertySignatures = tsplus_module_1.map(key => tsplus_module_3.createPropertySignature(key, requiredFields[key].ast, false, true))((0, _utils.ownKeys)(requiredFields));
43
+ if (optionalFields) {
44
+ propertySignatures = tsplus_module_1.concat(tsplus_module_1.map(key => tsplus_module_3.createPropertySignature(key, optionalFields[key].ast, true, true))((0, _utils.ownKeys)(optionalFields)))(propertySignatures);
45
+ }
46
+ const struct = tsplus_module_4.make(tsplus_module_3.createTypeLiteral(propertySignatures, tsplus_module_1.empty()));
47
+ if (tsplus_module_1.isEmpty(maybeFieldsKeys)) {
48
+ return struct;
49
+ }
50
+ propertySignatures = struct.ast.propertySignatures;
51
+ const from = tsplus_module_4.make(tsplus_module_3.createTypeLiteral(tsplus_module_1.concat(tsplus_module_1.map(key => tsplus_module_3.createPropertySignature(key, tsplus_module_3.createUnion(tsplus_module_1.vector(tsplus_module_3.undefinedKeyword, tsplus_module_3.createLiteral(null), maybeFields[key].ast)), true, true))(maybeFieldsKeys))(propertySignatures), tsplus_module_1.empty()));
52
+ const to = tsplus_module_4.make(tsplus_module_3.createTypeLiteral(tsplus_module_1.concat(tsplus_module_1.map(key => tsplus_module_3.createPropertySignature(key, tsplus_module_5.maybe(maybeFields[key]).ast, true, true))(maybeFieldsKeys))(propertySignatures), tsplus_module_1.empty()));
53
+ return tsplus_module_4.transform(to, input => {
54
+ const output = {
55
+ ...input
56
+ };
57
+ for (const key of maybeFieldsKeys) {
58
+ output[key] = tsplus_module_6.fromNullable(input[key]);
59
+ }
60
+ return output;
61
+ }, input => {
62
+ const output = {
63
+ ...input
64
+ };
65
+ for (const key of maybeFieldsKeys) {
66
+ const value = input[key];
67
+ if (tsplus_module_7.isNothing(value)) {
68
+ delete output[key];
69
+ continue;
70
+ }
71
+ output[key] = tsplus_module_8.toUndefined(value);
72
+ }
73
+ return output;
74
+ })(from);
75
+ }
76
+ /**
77
+ * @tsplus derive fncts.schema.Schema<_> 10
78
+ */
79
+ function deriveTuple(...[components]) {
80
+ return tsplus_module_4.tuple(...components);
81
+ }
82
+ /**
83
+ * @tsplus derive fncts.schema.Schema lazy
84
+ */
85
+ function deriveLazy(f) {
86
+ let cached;
87
+ const ast = tsplus_module_3.createLazy(() => {
88
+ if (!cached) {
89
+ cached = f(tsplus_module_4.make(ast)).ast;
90
+ }
91
+ return cached;
92
+ });
93
+ return tsplus_module_4.make(ast);
94
+ }
95
+ /**
96
+ * @tsplus derive fncts.schema.Schema[fncts.Array]<_> 10
97
+ * @tsplus derive fncts.schema.Schema[fncts.ReadonlyArray]<_> 10
98
+ */
99
+ function deriveArray(...[element]) {
100
+ return tsplus_module_4.array(element);
101
+ }
102
+ /**
103
+ * @tsplus derive fncts.schema.Schema<_> 15
104
+ */
105
+ function deriveRecord(...[keySchema, valueSchema]) {
106
+ return tsplus_module_4.record(keySchema, valueSchema);
107
+ }
108
+ //# sourceMappingURL=derivations.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derivations.cjs","mappings":";;;;;;;;;;;;;;;;;;;;;AAGA;AAA8C;AAAA;AAE9C;;;AAGM,SAAUA,gBAAgB,CAC9B,GAAG,CAACC,IAAI,EAAEC,MAAM,CAOP;EAET,OAAOC,qBACLC,iCACEH,IAAI,CAACI,GAAG,EACRC,qBAAYC,MAAM,CAACC,MAAM,CAACN,MAAM,CAAC,CAAC,EAClCD,IAAI,CAACI,GAAG,CAACI,WAAW,CAACC,QAAQ,wBAAsBJ,qBAAYC,MAAM,CAACC,MAAM,CAACN,MAAM,CAAC,CAAC,CAAC,CACvF,CACF;AACH;AAEA;;;AAGM,SAAUS,aAAa,CAC3B,GAAG,CAACC,KAAK,CAAkG;EAE3G,OAAOT,wBAAeS,KAAK,CAAC;AAC9B;AAIA;;;AAGM,SAAUC,YAAY,CAC1B,GAAG,CAACC,cAAc,EAAEC,cAAc,EAAEC,WAAW,CAsBtC;EAET,MAAMC,eAAe,GAAwB,kBAAO,EAACD,WAAW,CAAC;EACjE,IAAIE,kBAAkB,GAAuBZ,oBAA6Ba,GAAG,IAC3Ef,wCAA4Be,GAAG,EAAEL,cAAc,CAACK,GAAG,CAAE,CAACd,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EAD5B,kBAAO,EAACS,cAAc,CAAC,CAEnE;EAED,IAAIC,cAAc,EAAE;IAClBG,kBAAkB,GAAGZ,uBACnBA,oBAA6Ba,GAAG,IAAKf,wCAA4Be,GAAG,EAAEJ,cAAc,CAACI,GAAG,CAAE,CAACd,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAA3G,kBAAO,EAACU,cAAc,CAAC,CAAqF,EADzFG,kBAAkB,CAEtC;;EAGH,MAAME,MAAM,GAAGjB,qBAAeC,kCAAsBc,kBAAkB,EAAEZ,uBAAc,CAAC,CAAC;EAExF,IAAIA,uCAAe,CAAU,EAAE;IAC7B,OAAOc,MAAqB;;EAG9BF,kBAAkB,GAAIE,MAAM,CAACf,GAAmB,CAACa,kBAAkB;EAEnE,MAAMG,IAAI,GAAGlB,qBACXC,kCACEE,uBACEA,oBAAqBa,GAAG,IACtBf,wCACEe,GAAG,EACHf,4BAAgBE,yDAA6BF,8BAAkB,IAAI,CAAC,EAAEY,WAAY,CAACG,GAAG,CAAE,CAACd,GAAG,CAAC,CAAC,EAC9F,IAAI,EACJ,IAAI,CACL,EANHY,eAAe,CAOd,EARHC,kBAAkB,CASjB,EACDZ,uBAAc,CACf,CACF;EAED,MAAMgB,EAAE,GAAGnB,qBACTC,kCACEE,uBACEA,oBAAqBa,GAAG,IACtBf,wCAA4Be,GAAG,EAAEI,sBAAaP,WAAY,CAACG,GAAG,CAAE,CAAC,CAACd,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EADpFY,eAAe,CAEd,EAHHC,kBAAkB,CAIjB,EACDZ,uBAAc,CACf,CACF;EAED,OAAOH,0BACLmB,EAAE,EACDE,KAAK,IAAI;IACR,MAAMC,MAAM,GAAG;MAAE,GAAGD;IAAK,CAAE;IAC3B,KAAK,MAAML,GAAG,IAAIF,eAAe,EAAE;MACjCQ,MAAM,CAACN,GAAG,CAAC,GAAGO,6BAAmBF,KAAK,CAACL,GAAG,CAAC,CAAC;;IAE9C,OAAOM,MAAM;EACf,CAAC,EACAD,KAAK,IAAI;IACR,MAAMC,MAAM,GAAG;MAAE,GAAGD;IAAK,CAAE;IAC3B,KAAK,MAAML,GAAG,IAAIF,eAAe,EAAE;MACjC,MAAML,KAAK,GAAeY,KAAK,CAACL,GAAG,CAAC;MACpC,IAAIQ,+BAAK,CAAY,EAAE;QACrB,OAAOF,MAAM,CAACN,GAAG,CAAC;QAClB;;MAEFM,MAAM,CAACN,GAAG,CAAC,+BAAGP,KAAK,CAAM;;IAE3B,OAAOa,MAAM;EACf,CAAC,EApBIJ,IAAI,CAqBV;AACH;AAEA;;;AAGM,SAAUO,WAAW,CACzB,GAAG,CAACC,UAAU,CAAsG;EAEpH,OAAoB1B,sBAAa,GAAG0B,UAAU,CAAC;AACjD;AAEA;;;AAGM,SAAUC,UAAU,CAAIC,CAA8B;EAC1D,IAAIC,MAAuB;EAC3B,MAAM3B,GAAG,GAAGD,2BAAe,MAAK;IAC9B,IAAI,CAAC4B,MAAM,EAAE;MACXA,MAAM,GAAGD,CAAC,CAAC5B,qBAAeE,GAAG,CAAC,CAAC,CAACA,GAAG;;IAErC,OAAO2B,MAAM;EACf,CAAC,CAAC;EACF,OAAO7B,qBAAeE,GAAG,CAAC;AAC5B;AAEA;;;;AAIM,SAAU4B,WAAW,CACzB,GAAG,CAACC,OAAO,CAIF;EAET,OAAO/B,sBAAa+B,OAAO,CAAyB;AACtD;AAEA;;;AAGM,SAAUC,YAAY,CAC1B,GAAG,CAACC,SAAS,EAAEC,WAAW,CAIjB;EAET,OAAOlC,uBAAciC,SAAoC,EAAEC,WAAW,CAAc;AACtF","names":["deriveValidation","base","brands","tsplus_module_4","tsplus_module_3","ast","tsplus_module_1","Object","values","annotations","annotate","deriveLiteral","value","deriveStruct","requiredFields","optionalFields","maybeFields","maybeFieldsKeys","propertySignatures","key","struct","from","to","tsplus_module_5","input","output","tsplus_module_6","tsplus_module_7","deriveTuple","components","deriveLazy","f","cached","deriveArray","element","deriveRecord","keySchema","valueSchema"],"sourceRoot":"","sources":["../../_src/Schema/derivations.ts"],"sourcesContent":[null]}