typia 7.0.0-dev.20240920 → 7.0.0-dev.20240922

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 (31) hide show
  1. package/lib/programmers/RandomProgrammer.js +557 -493
  2. package/lib/programmers/RandomProgrammer.js.map +1 -1
  3. package/lib/programmers/helpers/RandomJoiner.d.ts +17 -3
  4. package/lib/programmers/helpers/RandomJoiner.js +53 -63
  5. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  6. package/lib/programmers/helpers/RandomRanger.d.ts +11 -2
  7. package/lib/programmers/helpers/RandomRanger.js +134 -113
  8. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  9. package/lib/programmers/helpers/StringifyJoinder.d.ts +2 -1
  10. package/lib/programmers/helpers/StringifyJoinder.js +27 -31
  11. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
  12. package/lib/programmers/json/JsonStringifyProgrammer.js +33 -27
  13. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  14. package/lib/programmers/notations/NotationGeneralProgrammer.js +355 -369
  15. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  16. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +264 -239
  17. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  18. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +424 -368
  19. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  20. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +106 -85
  21. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  22. package/package.json +1 -1
  23. package/src/programmers/RandomProgrammer.ts +758 -595
  24. package/src/programmers/helpers/RandomJoiner.ts +121 -110
  25. package/src/programmers/helpers/RandomRanger.ts +160 -113
  26. package/src/programmers/helpers/StringifyJoinder.ts +45 -43
  27. package/src/programmers/json/JsonStringifyProgrammer.ts +67 -58
  28. package/src/programmers/notations/NotationGeneralProgrammer.ts +610 -528
  29. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +421 -358
  30. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +752 -613
  31. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +96 -63
@@ -99,26 +99,30 @@ var RandomProgrammer;
99
99
  if (result.success === false)
100
100
  throw TransformerError_1.TransformerError.from("typia.".concat(props.importer.method))(result.errors);
101
101
  // GENERATE FUNCTION
102
- var functions = Object.fromEntries(__spreadArray(__spreadArray(__spreadArray([], __read(write_object_functions(props.importer)(collection).map(function (v, i) { return [
103
- Prefix.object(i),
104
- v,
105
- ]; })), false), __read(write_array_functions(props.importer)(collection).map(function (v, i) { return [
106
- Prefix.array(i),
107
- v,
108
- ]; })), false), __read(write_tuple_functions(props.importer)(collection).map(function (v, i) { return [
109
- Prefix.tuple(i),
110
- v,
111
- ]; })), false));
102
+ var functions = Object.fromEntries(__spreadArray(__spreadArray(__spreadArray([], __read(write_object_functions({
103
+ importer: props.importer,
104
+ collection: collection,
105
+ }).map(function (v, i) { return [Prefix.object(i), v]; })), false), __read(write_array_functions({
106
+ importer: props.importer,
107
+ collection: collection,
108
+ }).map(function (v, i) { return [Prefix.array(i), v]; })), false), __read(write_tuple_functions({
109
+ importer: props.importer,
110
+ collection: collection,
111
+ }).map(function (v, i) { return [Prefix.tuple(i), v]; })), false));
112
112
  var arrow = typescript_1.default.factory.createArrowFunction(undefined, undefined, [
113
113
  IdentifierFactory_1.IdentifierFactory.parameter("generator", typescript_1.default.factory.createTypeReferenceNode("Partial<typia.IRandomGenerator>"), (_a = props.init) !== null && _a !== void 0 ? _a : typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken)),
114
114
  ], typescript_1.default.factory.createImportTypeNode(typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("typia")), undefined, typescript_1.default.factory.createIdentifier("Resolved"), [
115
115
  typescript_1.default.factory.createTypeReferenceNode((_b = props.name) !== null && _b !== void 0 ? _b : TypeFactory_1.TypeFactory.getFullName(props.context.checker)(props.type)),
116
116
  ], false), undefined, typescript_1.default.factory.createBlock([
117
117
  typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createBinaryExpression(typescript_1.default.factory.createIdentifier("_generator"), typescript_1.default.SyntaxKind.EqualsToken, typescript_1.default.factory.createIdentifier("generator"))),
118
- typescript_1.default.factory.createReturnStatement(decode(props.importer)({
119
- function: false,
120
- recursive: false,
121
- })(result.data)),
118
+ typescript_1.default.factory.createReturnStatement(decode({
119
+ importer: props.importer,
120
+ explore: {
121
+ function: false,
122
+ recursive: false,
123
+ },
124
+ metadata: result.data,
125
+ })),
122
126
  ], true));
123
127
  return {
124
128
  functions: functions,
@@ -135,225 +139,260 @@ var RandomProgrammer;
135
139
  result: result,
136
140
  });
137
141
  };
138
- var write_object_functions = function (importer) {
139
- return function (collection) {
140
- return collection.objects().map(function (obj, i) {
141
- return StatementFactory_1.StatementFactory.constant(Prefix.object(i), typescript_1.default.factory.createArrowFunction(undefined, undefined, [
142
- IdentifierFactory_1.IdentifierFactory.parameter("_recursive", TypeFactory_1.TypeFactory.keyword("boolean"), typescript_1.default.factory.createIdentifier(String(obj.recursive))),
143
- IdentifierFactory_1.IdentifierFactory.parameter("_depth", TypeFactory_1.TypeFactory.keyword("number"), ExpressionFactory_1.ExpressionFactory.number(0)),
144
- ], TypeFactory_1.TypeFactory.keyword("any"), undefined, RandomJoiner_1.RandomJoiner.object(COALESCE(importer))(decode(importer)({
145
- recursive: obj.recursive,
146
- function: true,
147
- }))(obj)));
148
- });
149
- };
142
+ var write_object_functions = function (props) {
143
+ return props.collection.objects().map(function (obj, i) {
144
+ return StatementFactory_1.StatementFactory.constant(Prefix.object(i), typescript_1.default.factory.createArrowFunction(undefined, undefined, [
145
+ IdentifierFactory_1.IdentifierFactory.parameter("_recursive", TypeFactory_1.TypeFactory.keyword("boolean"), typescript_1.default.factory.createIdentifier(String(obj.recursive))),
146
+ IdentifierFactory_1.IdentifierFactory.parameter("_depth", TypeFactory_1.TypeFactory.keyword("number"), ExpressionFactory_1.ExpressionFactory.number(0)),
147
+ ], TypeFactory_1.TypeFactory.keyword("any"), undefined, RandomJoiner_1.RandomJoiner.object({
148
+ coalesce: coalesce(props.importer),
149
+ decode: function (metadata) {
150
+ return decode({
151
+ importer: props.importer,
152
+ explore: {
153
+ recursive: obj.recursive,
154
+ function: true,
155
+ },
156
+ metadata: metadata,
157
+ });
158
+ },
159
+ object: obj,
160
+ })));
161
+ });
150
162
  };
151
- var write_array_functions = function (importer) {
152
- return function (collection) {
153
- return collection
154
- .arrays()
155
- .filter(function (a) { return a.recursive; })
156
- .map(function (array, i) {
157
- return StatementFactory_1.StatementFactory.constant(Prefix.array(i), typescript_1.default.factory.createArrowFunction(undefined, undefined, [
158
- IdentifierFactory_1.IdentifierFactory.parameter("length", TypeFactory_1.TypeFactory.keyword("number")),
159
- IdentifierFactory_1.IdentifierFactory.parameter("unique", TypeFactory_1.TypeFactory.keyword("boolean")),
160
- IdentifierFactory_1.IdentifierFactory.parameter("_recursive", TypeFactory_1.TypeFactory.keyword("boolean"), typescript_1.default.factory.createTrue()),
161
- IdentifierFactory_1.IdentifierFactory.parameter("_depth", TypeFactory_1.TypeFactory.keyword("number"), ExpressionFactory_1.ExpressionFactory.number(0)),
162
- ], TypeFactory_1.TypeFactory.keyword("any"), undefined, RandomJoiner_1.RandomJoiner.array(COALESCE(importer))(decode(importer)({
163
- recursive: true,
164
- function: true,
165
- }))({
163
+ var write_array_functions = function (props) {
164
+ return props.collection
165
+ .arrays()
166
+ .filter(function (a) { return a.recursive; })
167
+ .map(function (array, i) {
168
+ return StatementFactory_1.StatementFactory.constant(Prefix.array(i), typescript_1.default.factory.createArrowFunction(undefined, undefined, [
169
+ IdentifierFactory_1.IdentifierFactory.parameter("length", TypeFactory_1.TypeFactory.keyword("number")),
170
+ IdentifierFactory_1.IdentifierFactory.parameter("unique", TypeFactory_1.TypeFactory.keyword("boolean")),
171
+ IdentifierFactory_1.IdentifierFactory.parameter("_recursive", TypeFactory_1.TypeFactory.keyword("boolean"), typescript_1.default.factory.createTrue()),
172
+ IdentifierFactory_1.IdentifierFactory.parameter("_depth", TypeFactory_1.TypeFactory.keyword("number"), ExpressionFactory_1.ExpressionFactory.number(0)),
173
+ ], TypeFactory_1.TypeFactory.keyword("any"), undefined, RandomJoiner_1.RandomJoiner.array({
174
+ coalesce: coalesce(props.importer),
175
+ decode: function (metadata) {
176
+ return decode({
177
+ importer: props.importer,
178
+ explore: {
179
+ recursive: true,
180
+ function: true,
181
+ },
182
+ metadata: metadata,
183
+ });
184
+ },
185
+ explore: {
166
186
  recursive: true,
167
187
  function: true,
168
- })(typescript_1.default.factory.createIdentifier("length"), typescript_1.default.factory.createIdentifier("unique"))(array.value)));
169
- });
170
- };
188
+ },
189
+ length: typescript_1.default.factory.createIdentifier("length"),
190
+ unique: typescript_1.default.factory.createIdentifier("unique"),
191
+ metadata: array.value,
192
+ })));
193
+ });
171
194
  };
172
- var write_tuple_functions = function (importer) {
173
- return function (collection) {
174
- return collection
175
- .tuples()
176
- .filter(function (a) { return a.recursive; })
177
- .map(function (tuple, i) {
178
- return StatementFactory_1.StatementFactory.constant(Prefix.tuple(i), typescript_1.default.factory.createArrowFunction(undefined, undefined, [
179
- IdentifierFactory_1.IdentifierFactory.parameter("_recursive", TypeFactory_1.TypeFactory.keyword("boolean"), typescript_1.default.factory.createTrue()),
180
- IdentifierFactory_1.IdentifierFactory.parameter("_depth", TypeFactory_1.TypeFactory.keyword("number"), ExpressionFactory_1.ExpressionFactory.number(0)),
181
- ], TypeFactory_1.TypeFactory.keyword("any"), undefined, RandomJoiner_1.RandomJoiner.tuple(decode(importer)({
182
- function: true,
183
- recursive: true,
184
- }))(tuple.elements)));
185
- });
186
- };
195
+ var write_tuple_functions = function (props) {
196
+ return props.collection
197
+ .tuples()
198
+ .filter(function (a) { return a.recursive; })
199
+ .map(function (tuple, i) {
200
+ return StatementFactory_1.StatementFactory.constant(Prefix.tuple(i), typescript_1.default.factory.createArrowFunction(undefined, undefined, [
201
+ IdentifierFactory_1.IdentifierFactory.parameter("_recursive", TypeFactory_1.TypeFactory.keyword("boolean"), typescript_1.default.factory.createTrue()),
202
+ IdentifierFactory_1.IdentifierFactory.parameter("_depth", TypeFactory_1.TypeFactory.keyword("number"), ExpressionFactory_1.ExpressionFactory.number(0)),
203
+ ], TypeFactory_1.TypeFactory.keyword("any"), undefined, RandomJoiner_1.RandomJoiner.tuple({
204
+ decode: function (metadata) {
205
+ return decode({
206
+ importer: props.importer,
207
+ explore: {
208
+ function: true,
209
+ recursive: true,
210
+ },
211
+ metadata: metadata,
212
+ });
213
+ },
214
+ elements: tuple.elements,
215
+ })));
216
+ });
187
217
  };
188
218
  /* -----------------------------------------------------------
189
219
  DECODERS
190
220
  ----------------------------------------------------------- */
191
- var decode = function (importer) {
192
- return function (explore) {
193
- return function (meta) {
194
- var e_1, _a, e_2, _b, e_3, _c, e_4, _d, e_5, _e, e_6, _f, e_7, _g, e_8, _h, e_9, _j, e_10, _k;
195
- var expressions = [];
196
- if (meta.any)
197
- expressions.push(typescript_1.default.factory.createStringLiteral("any type used..."));
198
- // NULL COALESCING
199
- if (meta.isRequired() === false || meta.functions.length)
200
- expressions.push(typescript_1.default.factory.createIdentifier("undefined"));
201
- if (meta.nullable === true)
202
- expressions.push(typescript_1.default.factory.createNull());
203
- try {
204
- // CONSTANT TYPES
205
- for (var _l = __values(meta.constants), _m = _l.next(); !_m.done; _m = _l.next()) {
206
- var constant = _m.value;
207
- try {
208
- for (var _o = (e_2 = void 0, __values(constant.values)), _p = _o.next(); !_p.done; _p = _o.next()) {
209
- var value = _p.value.value;
210
- expressions.push(decode_atomic(value));
211
- }
212
- }
213
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
214
- finally {
215
- try {
216
- if (_p && !_p.done && (_b = _o.return)) _b.call(_o);
217
- }
218
- finally { if (e_2) throw e_2.error; }
219
- }
220
- }
221
- }
222
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
223
- finally {
224
- try {
225
- if (_m && !_m.done && (_a = _l.return)) _a.call(_l);
226
- }
227
- finally { if (e_1) throw e_1.error; }
228
- }
229
- try {
230
- // ATOMIC VARIABLES
231
- for (var _q = __values(meta.templates), _r = _q.next(); !_r.done; _r = _q.next()) {
232
- var template = _r.value;
233
- expressions.push(decode_template(importer)(explore)(template));
234
- }
235
- }
236
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
237
- finally {
238
- try {
239
- if (_r && !_r.done && (_c = _q.return)) _c.call(_q);
240
- }
241
- finally { if (e_3) throw e_3.error; }
242
- }
243
- try {
244
- for (var _s = __values(meta.atomics), _t = _s.next(); !_t.done; _t = _s.next()) {
245
- var atomic = _t.value;
246
- if (atomic.type === "boolean")
247
- expressions.push(decode_boolean(importer));
248
- else if (atomic.type === "number")
249
- expressions.push.apply(expressions, __spreadArray([], __read(decode_number(importer)(atomic)), false));
250
- else if (atomic.type === "string")
251
- expressions.push.apply(expressions, __spreadArray([], __read(decode_string(importer)(atomic)), false));
252
- else if (atomic.type === "bigint")
253
- expressions.push.apply(expressions, __spreadArray([], __read(decode_bigint(importer)(atomic)), false));
254
- }
255
- }
256
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
257
- finally {
258
- try {
259
- if (_t && !_t.done && (_d = _s.return)) _d.call(_s);
260
- }
261
- finally { if (e_4) throw e_4.error; }
262
- }
263
- // INSTANCE TYPES
264
- if (meta.escaped)
265
- expressions.push(decode(importer)(explore)(meta.escaped.returns));
266
- try {
267
- for (var _u = __values(meta.arrays), _v = _u.next(); !_v.done; _v = _u.next()) {
268
- var array = _v.value;
269
- expressions.push.apply(expressions, __spreadArray([], __read(decode_array(importer)(explore)(array)), false));
270
- }
271
- }
272
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
273
- finally {
274
- try {
275
- if (_v && !_v.done && (_e = _u.return)) _e.call(_u);
276
- }
277
- finally { if (e_5) throw e_5.error; }
278
- }
279
- try {
280
- for (var _w = __values(meta.tuples), _x = _w.next(); !_x.done; _x = _w.next()) {
281
- var tuple = _x.value;
282
- expressions.push(decode_tuple(importer)(explore)(tuple));
283
- }
284
- }
285
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
286
- finally {
287
- try {
288
- if (_x && !_x.done && (_f = _w.return)) _f.call(_w);
289
- }
290
- finally { if (e_6) throw e_6.error; }
291
- }
292
- try {
293
- for (var _y = __values(meta.objects), _z = _y.next(); !_z.done; _z = _y.next()) {
294
- var o = _z.value;
295
- expressions.push(decode_object(importer)(explore)(o));
296
- }
297
- }
298
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
299
- finally {
300
- try {
301
- if (_z && !_z.done && (_g = _y.return)) _g.call(_y);
302
- }
303
- finally { if (e_7) throw e_7.error; }
304
- }
305
- try {
306
- for (var _0 = __values(meta.natives), _1 = _0.next(); !_1.done; _1 = _0.next()) {
307
- var native = _1.value;
308
- expressions.push(decode_native(importer)(native));
309
- }
310
- }
311
- catch (e_8_1) { e_8 = { error: e_8_1 }; }
312
- finally {
313
- try {
314
- if (_1 && !_1.done && (_h = _0.return)) _h.call(_0);
315
- }
316
- finally { if (e_8) throw e_8.error; }
317
- }
318
- try {
319
- for (var _2 = __values(meta.sets), _3 = _2.next(); !_3.done; _3 = _2.next()) {
320
- var set = _3.value;
321
- expressions.push(decode_set(importer)(explore)(set));
322
- }
323
- }
324
- catch (e_9_1) { e_9 = { error: e_9_1 }; }
325
- finally {
326
- try {
327
- if (_3 && !_3.done && (_j = _2.return)) _j.call(_2);
328
- }
329
- finally { if (e_9) throw e_9.error; }
330
- }
221
+ var decode = function (props) {
222
+ var e_1, _a, e_2, _b, e_3, _c, e_4, _d, e_5, _e, e_6, _f, e_7, _g, e_8, _h, e_9, _j, e_10, _k;
223
+ var expressions = [];
224
+ if (props.metadata.any === true)
225
+ expressions.push(typescript_1.default.factory.createStringLiteral("any type used..."));
226
+ // NULL COALESCING
227
+ if (props.metadata.isRequired() === false ||
228
+ props.metadata.functions.length !== 0)
229
+ expressions.push(typescript_1.default.factory.createIdentifier("undefined"));
230
+ if (props.metadata.nullable === true)
231
+ expressions.push(typescript_1.default.factory.createNull());
232
+ try {
233
+ // CONSTANT TYPES
234
+ for (var _l = __values(props.metadata.constants), _m = _l.next(); !_m.done; _m = _l.next()) {
235
+ var constant = _m.value;
331
236
  try {
332
- for (var _4 = __values(meta.maps), _5 = _4.next(); !_5.done; _5 = _4.next()) {
333
- var map = _5.value;
334
- expressions.push(decode_map(importer)(explore)(map));
237
+ for (var _o = (e_2 = void 0, __values(constant.values)), _p = _o.next(); !_p.done; _p = _o.next()) {
238
+ var value = _p.value.value;
239
+ expressions.push(decode_atomic(value));
335
240
  }
336
241
  }
337
- catch (e_10_1) { e_10 = { error: e_10_1 }; }
242
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
338
243
  finally {
339
244
  try {
340
- if (_5 && !_5.done && (_k = _4.return)) _k.call(_4);
245
+ if (_p && !_p.done && (_b = _o.return)) _b.call(_o);
341
246
  }
342
- finally { if (e_10) throw e_10.error; }
247
+ finally { if (e_2) throw e_2.error; }
343
248
  }
344
- // PICK UP A TYPE
345
- if (expressions.length === 1)
346
- return expressions[0];
347
- return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createCallExpression(importer.use("pick"), undefined, [
348
- typescript_1.default.factory.createArrayLiteralExpression(expressions.map(function (expr) {
349
- return typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, undefined, expr);
350
- }), true),
351
- ]), undefined, undefined);
352
- };
353
- };
249
+ }
250
+ }
251
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
252
+ finally {
253
+ try {
254
+ if (_m && !_m.done && (_a = _l.return)) _a.call(_l);
255
+ }
256
+ finally { if (e_1) throw e_1.error; }
257
+ }
258
+ try {
259
+ // ATOMIC VARIABLES
260
+ for (var _q = __values(props.metadata.templates), _r = _q.next(); !_r.done; _r = _q.next()) {
261
+ var template = _r.value;
262
+ expressions.push(decode_template(__assign(__assign({}, props), { template: template })));
263
+ }
264
+ }
265
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
266
+ finally {
267
+ try {
268
+ if (_r && !_r.done && (_c = _q.return)) _c.call(_q);
269
+ }
270
+ finally { if (e_3) throw e_3.error; }
271
+ }
272
+ try {
273
+ for (var _s = __values(props.metadata.atomics), _t = _s.next(); !_t.done; _t = _s.next()) {
274
+ var atomic = _t.value;
275
+ if (atomic.type === "boolean")
276
+ expressions.push(decode_boolean(props.importer));
277
+ else if (atomic.type === "number")
278
+ expressions.push.apply(expressions, __spreadArray([], __read(decode_number({
279
+ importer: props.importer,
280
+ atomic: atomic,
281
+ })), false));
282
+ else if (atomic.type === "string")
283
+ expressions.push.apply(expressions, __spreadArray([], __read(decode_string({
284
+ importer: props.importer,
285
+ atomic: atomic,
286
+ })), false));
287
+ else if (atomic.type === "bigint")
288
+ expressions.push.apply(expressions, __spreadArray([], __read(decode_bigint({
289
+ importer: props.importer,
290
+ atomic: atomic,
291
+ })), false));
292
+ }
293
+ }
294
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
295
+ finally {
296
+ try {
297
+ if (_t && !_t.done && (_d = _s.return)) _d.call(_s);
298
+ }
299
+ finally { if (e_4) throw e_4.error; }
300
+ }
301
+ // INSTANCE TYPES
302
+ if (props.metadata.escaped)
303
+ expressions.push(decode(__assign(__assign({}, props), { metadata: props.metadata.escaped.returns })));
304
+ try {
305
+ for (var _u = __values(props.metadata.arrays), _v = _u.next(); !_v.done; _v = _u.next()) {
306
+ var array = _v.value;
307
+ expressions.push.apply(expressions, __spreadArray([], __read(decode_array(__assign(__assign({}, props), { array: array }))), false));
308
+ }
309
+ }
310
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
311
+ finally {
312
+ try {
313
+ if (_v && !_v.done && (_e = _u.return)) _e.call(_u);
314
+ }
315
+ finally { if (e_5) throw e_5.error; }
316
+ }
317
+ try {
318
+ for (var _w = __values(props.metadata.tuples), _x = _w.next(); !_x.done; _x = _w.next()) {
319
+ var tuple = _x.value;
320
+ expressions.push(decode_tuple(__assign(__assign({}, props), { tuple: tuple })));
321
+ }
322
+ }
323
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
324
+ finally {
325
+ try {
326
+ if (_x && !_x.done && (_f = _w.return)) _f.call(_w);
327
+ }
328
+ finally { if (e_6) throw e_6.error; }
329
+ }
330
+ try {
331
+ for (var _y = __values(props.metadata.objects), _z = _y.next(); !_z.done; _z = _y.next()) {
332
+ var object = _z.value;
333
+ expressions.push(decode_object(__assign(__assign({}, props), { object: object })));
334
+ }
335
+ }
336
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
337
+ finally {
338
+ try {
339
+ if (_z && !_z.done && (_g = _y.return)) _g.call(_y);
340
+ }
341
+ finally { if (e_7) throw e_7.error; }
342
+ }
343
+ try {
344
+ for (var _0 = __values(props.metadata.natives), _1 = _0.next(); !_1.done; _1 = _0.next()) {
345
+ var name_1 = _1.value;
346
+ expressions.push(decode_native({
347
+ importer: props.importer,
348
+ name: name_1,
349
+ }));
350
+ }
351
+ }
352
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
353
+ finally {
354
+ try {
355
+ if (_1 && !_1.done && (_h = _0.return)) _h.call(_0);
356
+ }
357
+ finally { if (e_8) throw e_8.error; }
358
+ }
359
+ try {
360
+ for (var _2 = __values(props.metadata.sets), _3 = _2.next(); !_3.done; _3 = _2.next()) {
361
+ var metadata = _3.value;
362
+ expressions.push(decode_set(__assign(__assign({}, props), { metadata: metadata })));
363
+ }
364
+ }
365
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
366
+ finally {
367
+ try {
368
+ if (_3 && !_3.done && (_j = _2.return)) _j.call(_2);
369
+ }
370
+ finally { if (e_9) throw e_9.error; }
371
+ }
372
+ try {
373
+ for (var _4 = __values(props.metadata.maps), _5 = _4.next(); !_5.done; _5 = _4.next()) {
374
+ var entry = _5.value;
375
+ expressions.push(decode_map(__assign(__assign({}, props), { entry: entry })));
376
+ }
377
+ }
378
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
379
+ finally {
380
+ try {
381
+ if (_5 && !_5.done && (_k = _4.return)) _k.call(_4);
382
+ }
383
+ finally { if (e_10) throw e_10.error; }
384
+ }
385
+ // PICK UP A TYPE
386
+ if (expressions.length === 1)
387
+ return expressions[0];
388
+ return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createCallExpression(props.importer.use("pick"), undefined, [
389
+ typescript_1.default.factory.createArrayLiteralExpression(expressions.map(function (expr) {
390
+ return typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, undefined, expr);
391
+ }), true),
392
+ ]), undefined, undefined);
354
393
  };
355
394
  var decode_boolean = function (importer) {
356
- return typescript_1.default.factory.createCallExpression(COALESCE(importer)("boolean"), undefined, undefined);
395
+ return typescript_1.default.factory.createCallExpression(coalesce(importer)("boolean"), undefined, undefined);
357
396
  };
358
397
  var decode_atomic = function (value) {
359
398
  return typeof value === "boolean"
@@ -364,47 +403,47 @@ var RandomProgrammer;
364
403
  ? typescript_1.default.factory.createStringLiteral(value)
365
404
  : ExpressionFactory_1.ExpressionFactory.bigint(Number(value));
366
405
  };
367
- var decode_template = function (importer) {
368
- return function (explore) {
369
- return function (template) {
370
- return TemplateFactory_1.TemplateFactory.generate(template.row.map(function (meta) { return decode(importer)(explore)(meta); }));
371
- };
372
- };
406
+ var decode_template = function (props) {
407
+ return TemplateFactory_1.TemplateFactory.generate(props.template.row.map(function (metadata) {
408
+ return decode(__assign(__assign({}, props), { metadata: metadata }));
409
+ }));
373
410
  };
374
- var decode_number = function (importer) {
375
- return function (atomic) {
376
- return (atomic.tags.length ? atomic.tags : [[]]).map(function (tags) {
377
- var type = tags.find(function (t) {
378
- return t.kind === "type" && (t.value === "int32" || t.value === "int64");
411
+ var decode_number = function (props) {
412
+ return (props.atomic.tags.length ? props.atomic.tags : [[]]).map(function (tags) {
413
+ var type = tags.find(function (t) {
414
+ return t.kind === "type" && (t.value === "int32" || t.value === "int64");
415
+ })
416
+ ? "int"
417
+ : tags.find(function (t) {
418
+ return t.kind === "type" &&
419
+ (t.value === "uint32" || t.value === "uint64");
379
420
  })
380
- ? "int"
381
- : tags.find(function (t) {
382
- return t.kind === "type" &&
383
- (t.value === "uint32" || t.value === "uint64");
384
- })
385
- ? "uint"
386
- : "double";
387
- var multiply = tags.find(function (t) { return t.kind === "multipleOf"; });
388
- return (0, random_custom_1.random_custom)(COALESCE(importer))("number")(tags)(RandomRanger_1.RandomRanger.number({
421
+ ? "uint"
422
+ : "double";
423
+ var multiply = tags.find(function (t) { return t.kind === "multipleOf"; });
424
+ return (0, random_custom_1.random_custom)(coalesce(props.importer))("number")(tags)(RandomRanger_1.RandomRanger.number({
425
+ config: {
389
426
  type: type,
390
427
  transform: function (value) { return ExpressionFactory_1.ExpressionFactory.number(value); },
391
428
  setter: function (args) {
392
429
  return typescript_1.default.factory.createCallExpression(type !== "double" || multiply !== undefined
393
- ? COALESCE(importer)("integer")
394
- : COALESCE(importer)("number"), undefined, args.map(function (val) { return ExpressionFactory_1.ExpressionFactory.number(val); }));
430
+ ? coalesce(props.importer)("integer")
431
+ : coalesce(props.importer)("number"), undefined, args.map(function (val) { return ExpressionFactory_1.ExpressionFactory.number(val); }));
395
432
  },
396
- })({
433
+ },
434
+ defaults: {
397
435
  minimum: 0,
398
436
  maximum: 100,
399
437
  gap: 10,
400
- })(tags));
401
- });
402
- };
438
+ },
439
+ tags: tags,
440
+ }));
441
+ });
403
442
  };
404
- var decode_bigint = function (importer) {
405
- return function (atomic) {
406
- return (atomic.tags.length ? atomic.tags : [[]]).map(function (tags) {
407
- return (0, random_custom_1.random_custom)(COALESCE(importer))("bigint")(tags)(RandomRanger_1.RandomRanger.number({
443
+ var decode_bigint = function (props) {
444
+ return (props.atomic.tags.length ? props.atomic.tags : [[]]).map(function (tags) {
445
+ return (0, random_custom_1.random_custom)(coalesce(props.importer))("bigint")(tags)(RandomRanger_1.RandomRanger.number({
446
+ config: {
408
447
  type: tags.find(function (t) {
409
448
  return t.kind === "type" &&
410
449
  (t.value === "uint" || t.value === "uint64");
@@ -413,297 +452,322 @@ var RandomProgrammer;
413
452
  : "int",
414
453
  transform: function (value) { return ExpressionFactory_1.ExpressionFactory.bigint(value); },
415
454
  setter: function (args) {
416
- return typescript_1.default.factory.createCallExpression(COALESCE(importer)("bigint"), undefined, args.map(function (value) { return ExpressionFactory_1.ExpressionFactory.bigint(value); }));
455
+ return typescript_1.default.factory.createCallExpression(coalesce(props.importer)("bigint"), undefined, args.map(function (value) { return ExpressionFactory_1.ExpressionFactory.bigint(value); }));
417
456
  },
418
- })({
457
+ },
458
+ defaults: {
419
459
  minimum: 0,
420
460
  maximum: 100,
421
461
  gap: 10,
422
- })(tags));
423
- });
424
- };
462
+ },
463
+ tags: tags,
464
+ }));
465
+ });
425
466
  };
426
- var decode_string = function (importer) {
427
- return function (atomic) {
428
- return (atomic.tags.length ? atomic.tags : [[]]).map(function (tags) {
429
- return (0, random_custom_1.random_custom)(COALESCE(importer))("string")(tags)((function () {
430
- var e_11, _a;
431
- try {
432
- for (var tags_1 = __values(tags), tags_1_1 = tags_1.next(); !tags_1_1.done; tags_1_1 = tags_1.next()) {
433
- var t = tags_1_1.value;
434
- if (t.kind === "format")
435
- return typescript_1.default.factory.createCallExpression(COALESCE(importer)(emendFormat(t.value)), undefined, undefined);
436
- else if (t.kind === "pattern")
437
- return typescript_1.default.factory.createCallExpression(COALESCE(importer)("pattern"), undefined, [
438
- typescript_1.default.factory.createIdentifier("RegExp(".concat(JSON.stringify(t.value), ")")),
439
- ]);
440
- }
467
+ var decode_string = function (props) {
468
+ return (props.atomic.tags.length ? props.atomic.tags : [[]]).map(function (tags) {
469
+ return (0, random_custom_1.random_custom)(coalesce(props.importer))("string")(tags)((function () {
470
+ var e_11, _a;
471
+ try {
472
+ for (var tags_1 = __values(tags), tags_1_1 = tags_1.next(); !tags_1_1.done; tags_1_1 = tags_1.next()) {
473
+ var t = tags_1_1.value;
474
+ if (t.kind === "format")
475
+ return typescript_1.default.factory.createCallExpression(coalesce(props.importer)(emendFormat(t.value)), undefined, undefined);
476
+ else if (t.kind === "pattern")
477
+ return typescript_1.default.factory.createCallExpression(coalesce(props.importer)("pattern"), undefined, [
478
+ typescript_1.default.factory.createIdentifier("RegExp(".concat(JSON.stringify(t.value), ")")),
479
+ ]);
441
480
  }
442
- catch (e_11_1) { e_11 = { error: e_11_1 }; }
443
- finally {
444
- try {
445
- if (tags_1_1 && !tags_1_1.done && (_a = tags_1.return)) _a.call(tags_1);
446
- }
447
- finally { if (e_11) throw e_11.error; }
481
+ }
482
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
483
+ finally {
484
+ try {
485
+ if (tags_1_1 && !tags_1_1.done && (_a = tags_1.return)) _a.call(tags_1);
448
486
  }
449
- var tail = RandomRanger_1.RandomRanger.length(COALESCE(importer))({
487
+ finally { if (e_11) throw e_11.error; }
488
+ }
489
+ var tail = RandomRanger_1.RandomRanger.length({
490
+ coalesce: coalesce(props.importer),
491
+ defaults: {
450
492
  minimum: 5,
451
493
  maximum: 25,
452
494
  gap: 5,
453
- })({
495
+ },
496
+ accessors: {
454
497
  minimum: "minLength",
455
498
  maximum: "maxLength",
456
- })(tags);
457
- return typescript_1.default.factory.createCallExpression(COALESCE(importer)("string"), undefined, tail ? [tail] : undefined);
458
- })());
459
- });
460
- };
461
- };
462
- var decode_array = function (importer) {
463
- return function (explore) {
464
- return function (array) {
465
- var fixed = (array.tags.length ? array.tags : [[]]).map(function (tags) { return [
466
- RandomRanger_1.RandomRanger.length(COALESCE(importer))({
467
- minimum: 0,
468
- maximum: 3,
469
- gap: 3,
470
- })({
471
- minimum: "minItems",
472
- maximum: "maxItems",
473
- })(tags),
474
- (function () {
475
- var uniqueItems = tags.find(function (t) { return t.kind === "uniqueItems"; });
476
- return uniqueItems === undefined
477
- ? undefined
478
- : uniqueItems.value === false
479
- ? typescript_1.default.factory.createFalse()
480
- : typescript_1.default.factory.createTrue();
481
- })(),
482
- ]; });
483
- if (array.type.recursive)
484
- return fixed.map(function (_a) {
485
- var _b = __read(_a, 2), len = _b[0], unique = _b[1];
486
- return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.useLocal(Prefix.array(array.type.index))), undefined, [
487
- len !== null && len !== void 0 ? len : COALESCE(importer)("length"),
488
- unique !== null && unique !== void 0 ? unique : typescript_1.default.factory.createFalse(),
489
- typescript_1.default.factory.createTrue(),
490
- explore.recursive
491
- ? typescript_1.default.factory.createAdd(ExpressionFactory_1.ExpressionFactory.number(1), typescript_1.default.factory.createIdentifier("_depth"))
492
- : ExpressionFactory_1.ExpressionFactory.number(0),
493
- ]);
494
- });
495
- return fixed.map(function (_a) {
496
- var _b = __read(_a, 2), len = _b[0], unique = _b[1];
497
- var expr = RandomJoiner_1.RandomJoiner.array(COALESCE(importer))(decode(importer)(explore))(explore)(len, unique)(array.type.value);
498
- return explore.recursive
499
- ? typescript_1.default.factory.createConditionalExpression(typescript_1.default.factory.createLogicalAnd(typescript_1.default.factory.createIdentifier("_recursive"), typescript_1.default.factory.createLessThan(ExpressionFactory_1.ExpressionFactory.number(5), typescript_1.default.factory.createIdentifier("_depth"))), undefined, typescript_1.default.factory.createIdentifier("[]"), undefined, expr)
500
- : expr;
499
+ },
500
+ tags: tags,
501
501
  });
502
- };
503
- };
502
+ return typescript_1.default.factory.createCallExpression(coalesce(props.importer)("string"), undefined, tail ? [tail] : undefined);
503
+ })());
504
+ });
504
505
  };
505
- var decode_tuple = function (importer) {
506
- return function (explore) {
507
- return function (tuple) {
508
- return tuple.type.recursive
509
- ? typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.useLocal(Prefix.tuple(tuple.type.index))), undefined, [
510
- typescript_1.default.factory.createTrue(),
511
- explore.recursive
512
- ? typescript_1.default.factory.createAdd(ExpressionFactory_1.ExpressionFactory.number(1), typescript_1.default.factory.createIdentifier("_depth"))
513
- : ExpressionFactory_1.ExpressionFactory.number(0),
514
- ])
515
- : RandomJoiner_1.RandomJoiner.tuple(decode(importer)(explore))(tuple.type.elements);
516
- };
517
- };
506
+ var decode_array = function (props) {
507
+ var fixed = (props.array.tags.length ? props.array.tags : [[]]).map(function (tags) { return [
508
+ RandomRanger_1.RandomRanger.length({
509
+ coalesce: coalesce(props.importer),
510
+ defaults: {
511
+ minimum: 0,
512
+ maximum: 3,
513
+ gap: 3,
514
+ },
515
+ accessors: {
516
+ minimum: "minItems",
517
+ maximum: "maxItems",
518
+ },
519
+ tags: tags,
520
+ }),
521
+ (function () {
522
+ var uniqueItems = tags.find(function (t) { return t.kind === "uniqueItems"; });
523
+ return uniqueItems === undefined
524
+ ? undefined
525
+ : uniqueItems.value === false
526
+ ? typescript_1.default.factory.createFalse()
527
+ : typescript_1.default.factory.createTrue();
528
+ })(),
529
+ ]; });
530
+ if (props.array.type.recursive)
531
+ return fixed.map(function (_a) {
532
+ var _b = __read(_a, 2), len = _b[0], unique = _b[1];
533
+ return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(props.importer.useLocal(Prefix.array(props.array.type.index))), undefined, [
534
+ len !== null && len !== void 0 ? len : coalesce(props.importer)("length"),
535
+ unique !== null && unique !== void 0 ? unique : typescript_1.default.factory.createFalse(),
536
+ typescript_1.default.factory.createTrue(),
537
+ props.explore.recursive
538
+ ? typescript_1.default.factory.createAdd(ExpressionFactory_1.ExpressionFactory.number(1), typescript_1.default.factory.createIdentifier("_depth"))
539
+ : ExpressionFactory_1.ExpressionFactory.number(0),
540
+ ]);
541
+ });
542
+ return fixed.map(function (_a) {
543
+ var _b = __read(_a, 2), len = _b[0], unique = _b[1];
544
+ var expr = RandomJoiner_1.RandomJoiner.array({
545
+ coalesce: coalesce(props.importer),
546
+ decode: function (metadata) {
547
+ return decode(__assign(__assign({}, props), { metadata: metadata }));
548
+ },
549
+ explore: props.explore,
550
+ length: len,
551
+ unique: unique,
552
+ metadata: props.array.type.value,
553
+ });
554
+ return props.explore.recursive
555
+ ? typescript_1.default.factory.createConditionalExpression(typescript_1.default.factory.createLogicalAnd(typescript_1.default.factory.createIdentifier("_recursive"), typescript_1.default.factory.createLessThan(ExpressionFactory_1.ExpressionFactory.number(5), typescript_1.default.factory.createIdentifier("_depth"))), undefined, typescript_1.default.factory.createIdentifier("[]"), undefined, expr)
556
+ : expr;
557
+ });
518
558
  };
519
- var decode_object = function (importer) {
520
- return function (explore) {
521
- return function (object) {
522
- return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.useLocal(Prefix.object(object.index))), undefined, explore.function
523
- ? [
524
- explore.recursive
525
- ? typescript_1.default.factory.createTrue()
526
- : typescript_1.default.factory.createIdentifier("_recursive"),
527
- typescript_1.default.factory.createConditionalExpression(typescript_1.default.factory.createIdentifier("_recursive"), undefined, typescript_1.default.factory.createAdd(ExpressionFactory_1.ExpressionFactory.number(1), typescript_1.default.factory.createIdentifier("_depth")), undefined, typescript_1.default.factory.createIdentifier("_depth")),
528
- ]
529
- : undefined);
530
- };
531
- };
559
+ var decode_tuple = function (props) {
560
+ return props.tuple.type.recursive
561
+ ? typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(props.importer.useLocal(Prefix.tuple(props.tuple.type.index))), undefined, [
562
+ typescript_1.default.factory.createTrue(),
563
+ props.explore.recursive
564
+ ? typescript_1.default.factory.createAdd(ExpressionFactory_1.ExpressionFactory.number(1), typescript_1.default.factory.createIdentifier("_depth"))
565
+ : ExpressionFactory_1.ExpressionFactory.number(0),
566
+ ])
567
+ : RandomJoiner_1.RandomJoiner.tuple({
568
+ decode: function (metadata) {
569
+ return decode(__assign(__assign({}, props), { metadata: metadata }));
570
+ },
571
+ elements: props.tuple.type.elements,
572
+ });
573
+ };
574
+ var decode_object = function (props) {
575
+ return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(props.importer.useLocal(Prefix.object(props.object.index))), undefined, props.explore.function
576
+ ? [
577
+ props.explore.recursive
578
+ ? typescript_1.default.factory.createTrue()
579
+ : typescript_1.default.factory.createIdentifier("_recursive"),
580
+ typescript_1.default.factory.createConditionalExpression(typescript_1.default.factory.createIdentifier("_recursive"), undefined, typescript_1.default.factory.createAdd(ExpressionFactory_1.ExpressionFactory.number(1), typescript_1.default.factory.createIdentifier("_depth")), undefined, typescript_1.default.factory.createIdentifier("_depth")),
581
+ ]
582
+ : undefined);
532
583
  };
533
584
  /* -----------------------------------------------------------
534
585
  NATIVE CLASSES
535
586
  ----------------------------------------------------------- */
536
- var decode_set = function (importer) { return function (explore) { return function (meta) {
587
+ var decode_set = function (props) {
537
588
  return typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier("Set"), undefined, [
538
- decode_array(importer)(explore)(MetadataArray_1.MetadataArray.create({
539
- tags: [],
540
- type: MetadataArrayType_1.MetadataArrayType.create({
541
- value: meta,
542
- recursive: false,
543
- index: null,
544
- nullables: [],
545
- name: "Set<".concat(meta.getName(), ">"),
546
- }),
547
- }))[0],
589
+ decode_array(__assign(__assign({}, props), { array: MetadataArray_1.MetadataArray.create({
590
+ tags: [],
591
+ type: MetadataArrayType_1.MetadataArrayType.create({
592
+ value: props.metadata,
593
+ recursive: false,
594
+ index: null,
595
+ nullables: [],
596
+ name: "Set<".concat(props.metadata.getName(), ">"),
597
+ }),
598
+ }) }))[0],
548
599
  ]);
549
- }; }; };
550
- var decode_map = function (importer) {
551
- return function (explore) {
552
- return function (map) {
553
- return typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier("Map"), undefined, [
554
- decode_array(importer)(explore)(MetadataArray_1.MetadataArray.create({
555
- tags: [],
556
- type: MetadataArrayType_1.MetadataArrayType.create({
557
- name: "Map<".concat(map.key.getName(), ", ").concat(map.value.getName(), ">"),
558
- index: null,
559
- recursive: false,
560
- nullables: [],
561
- value: Metadata_1.Metadata.create(__assign(__assign({}, Metadata_1.Metadata.initialize()), { tuples: [
562
- (function () {
563
- var type = MetadataTupleType_1.MetadataTupleType.create({
564
- name: "[".concat(map.key.getName(), ", ").concat(map.value.getName(), "]"),
565
- index: null,
566
- recursive: false,
567
- nullables: [],
568
- elements: [map.key, map.value],
569
- });
570
- type.of_map = true;
571
- return MetadataTuple_1.MetadataTuple.create({
572
- type: type,
573
- tags: [],
574
- });
575
- })(),
576
- ] })),
577
- }),
578
- }))[0],
579
- ]);
580
- };
581
- };
582
600
  };
583
- var decode_native = function (importer) {
584
- return function (type) {
585
- if (type === "Boolean")
586
- return decode_boolean(importer);
587
- else if (type === "Number")
588
- return decode_number(importer)(MetadataAtomic_1.MetadataAtomic.create({
601
+ var decode_map = function (props) {
602
+ return typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier("Map"), undefined, [
603
+ decode_array(__assign(__assign({}, props), { array: MetadataArray_1.MetadataArray.create({
604
+ tags: [],
605
+ type: MetadataArrayType_1.MetadataArrayType.create({
606
+ name: "Map<".concat(props.entry.key.getName(), ", ").concat(props.entry.value.getName(), ">"),
607
+ index: null,
608
+ recursive: false,
609
+ nullables: [],
610
+ value: Metadata_1.Metadata.create(__assign(__assign({}, Metadata_1.Metadata.initialize()), { tuples: [
611
+ (function () {
612
+ var type = MetadataTupleType_1.MetadataTupleType.create({
613
+ name: "[".concat(props.entry.key.getName(), ", ").concat(props.entry.value.getName(), "]"),
614
+ index: null,
615
+ recursive: false,
616
+ nullables: [],
617
+ elements: [props.entry.key, props.entry.value],
618
+ });
619
+ type.of_map = true;
620
+ return MetadataTuple_1.MetadataTuple.create({
621
+ type: type,
622
+ tags: [],
623
+ });
624
+ })(),
625
+ ] })),
626
+ }),
627
+ }) }))[0],
628
+ ]);
629
+ };
630
+ var decode_native = function (props) {
631
+ if (props.name === "Boolean")
632
+ return decode_boolean(props.importer);
633
+ else if (props.name === "Number")
634
+ return decode_number({
635
+ importer: props.importer,
636
+ atomic: MetadataAtomic_1.MetadataAtomic.create({
589
637
  type: "number",
590
638
  tags: [],
591
- }))[0];
592
- else if (type === "String")
593
- return decode_string(importer)(MetadataAtomic_1.MetadataAtomic.create({
639
+ }),
640
+ })[0];
641
+ else if (props.name === "String")
642
+ return decode_string({
643
+ importer: props.importer,
644
+ atomic: MetadataAtomic_1.MetadataAtomic.create({
594
645
  type: "string",
595
646
  tags: [],
596
- }))[0];
597
- else if (type === "Date")
598
- return decode_native_date(importer);
599
- else if (type === "Uint8Array" ||
600
- type === "Uint8ClampedArray" ||
601
- type === "Uint16Array" ||
602
- type === "Uint32Array" ||
603
- type === "BigUint64Array" ||
604
- type === "Int8Array" ||
605
- type === "Int16Array" ||
606
- type === "Int32Array" ||
607
- type === "BigInt64Array" ||
608
- type === "Float32Array" ||
609
- type === "Float64Array")
610
- return decode_native_byte_array(importer)(type);
611
- else if (type === "ArrayBuffer" || type === "SharedArrayBuffer")
612
- return decode_native_array_buffer(importer)(type);
613
- else if (type === "DataView")
614
- return decode_native_data_view(importer);
615
- else if (type === "Blob")
616
- return decode_native_blob(importer);
617
- else if (type === "File")
618
- return decode_native_file(importer);
619
- else if (type === "RegExp")
620
- return decode_regexp();
621
- else
622
- return typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier(type), undefined, []);
623
- };
647
+ }),
648
+ })[0];
649
+ else if (props.name === "Date")
650
+ return decode_native_date(props.importer);
651
+ else if (props.name === "Uint8Array" ||
652
+ props.name === "Uint8ClampedArray" ||
653
+ props.name === "Uint16Array" ||
654
+ props.name === "Uint32Array" ||
655
+ props.name === "BigUint64Array" ||
656
+ props.name === "Int8Array" ||
657
+ props.name === "Int16Array" ||
658
+ props.name === "Int32Array" ||
659
+ props.name === "BigInt64Array" ||
660
+ props.name === "Float32Array" ||
661
+ props.name === "Float64Array")
662
+ return decode_native_byte_array(__assign(__assign({}, props), { name: props.name }));
663
+ else if (props.name === "ArrayBuffer" || props.name === "SharedArrayBuffer")
664
+ return decode_native_array_buffer(__assign(__assign({}, props), { name: props.name }));
665
+ else if (props.name === "DataView")
666
+ return decode_native_data_view(props.importer);
667
+ else if (props.name === "Blob")
668
+ return decode_native_blob(props.importer);
669
+ else if (props.name === "File")
670
+ return decode_native_file(props.importer);
671
+ else if (props.name === "RegExp")
672
+ return decode_regexp();
673
+ else
674
+ return typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier(props.name), undefined, []);
624
675
  };
625
676
  var decode_native_date = function (importer) {
626
677
  return typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier("Date"), undefined, [
627
- typescript_1.default.factory.createCallExpression(COALESCE(importer)("datetime"), undefined, []),
678
+ typescript_1.default.factory.createCallExpression(coalesce(importer)("datetime"), undefined, []),
628
679
  ]);
629
680
  };
630
- var decode_native_byte_array = function (importer) {
631
- return function (type) {
632
- new BigInt64Array();
633
- var _a = __read((function () {
634
- if (type === "Uint8Array" || type === "Uint8ClampedArray")
635
- return [0, 255];
636
- else if (type === "Uint16Array")
637
- return [0, 65535];
638
- else if (type === "Uint32Array")
639
- return [0, 4294967295];
640
- else if (type === "BigUint64Array")
641
- return [0, 18446744073709551615];
642
- else if (type === "Int8Array")
643
- return [-128, 127];
644
- else if (type === "Int16Array")
645
- return [-32768, 32767];
646
- else if (type === "Int32Array")
647
- return [-2147483648, 2147483647];
648
- else if (type === "BigInt64Array")
649
- return [-9223372036854775808, 9223372036854775807];
650
- else if (type === "Float32Array")
651
- return [-1.175494351e38, 3.4028235e38];
652
- return [Number.MIN_VALUE, Number.MAX_VALUE];
653
- })(), 2), minimum = _a[0], maximum = _a[1];
654
- var literal = type === "BigInt64Array" || type === "BigUint64Array"
655
- ? ExpressionFactory_1.ExpressionFactory.bigint
656
- : ExpressionFactory_1.ExpressionFactory.number;
657
- return typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier(type), [], [
658
- typescript_1.default.factory.createCallExpression(COALESCE(importer)("array"), undefined, [
659
- typescript_1.default.factory.createArrowFunction(undefined, undefined, [], TypeFactory_1.TypeFactory.keyword("any"), undefined, typescript_1.default.factory.createCallExpression(COALESCE(importer)(type === "Float32Array" || type === "Float64Array"
660
- ? "number"
661
- : type === "BigInt64Array" || type === "BigUint64Array"
662
- ? "bigint"
663
- : "integer"), undefined, [literal(minimum), literal(maximum)])),
664
- ]),
665
- ]);
666
- };
681
+ var decode_native_byte_array = function (props) {
682
+ new BigInt64Array();
683
+ var _a = __read((function () {
684
+ if (props.name === "Uint8Array" || props.name === "Uint8ClampedArray")
685
+ return [0, 255];
686
+ else if (props.name === "Uint16Array")
687
+ return [0, 65535];
688
+ else if (props.name === "Uint32Array")
689
+ return [0, 4294967295];
690
+ else if (props.name === "BigUint64Array")
691
+ return [0, 18446744073709551615];
692
+ else if (props.name === "Int8Array")
693
+ return [-128, 127];
694
+ else if (props.name === "Int16Array")
695
+ return [-32768, 32767];
696
+ else if (props.name === "Int32Array")
697
+ return [-2147483648, 2147483647];
698
+ else if (props.name === "BigInt64Array")
699
+ return [-9223372036854775808, 9223372036854775807];
700
+ else if (props.name === "Float32Array")
701
+ return [-1.175494351e38, 3.4028235e38];
702
+ return [Number.MIN_VALUE, Number.MAX_VALUE];
703
+ })(), 2), minimum = _a[0], maximum = _a[1];
704
+ var literal = props.name === "BigInt64Array" || props.name === "BigUint64Array"
705
+ ? ExpressionFactory_1.ExpressionFactory.bigint
706
+ : ExpressionFactory_1.ExpressionFactory.number;
707
+ return typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier(props.name), [], [
708
+ typescript_1.default.factory.createCallExpression(coalesce(props.importer)("array"), undefined, [
709
+ typescript_1.default.factory.createArrowFunction(undefined, undefined, [], TypeFactory_1.TypeFactory.keyword("any"), undefined, typescript_1.default.factory.createCallExpression(coalesce(props.importer)(props.name === "Float32Array" || props.name === "Float64Array"
710
+ ? "number"
711
+ : props.name === "BigInt64Array" ||
712
+ props.name === "BigUint64Array"
713
+ ? "bigint"
714
+ : "integer"), undefined, [literal(minimum), literal(maximum)])),
715
+ ]),
716
+ ]);
667
717
  };
668
718
  var decode_native_blob = function (importer) {
669
719
  return typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier("Blob"), undefined, [
670
- typescript_1.default.factory.createArrayLiteralExpression([decode_native_byte_array(importer)("Uint8Array")], true),
720
+ typescript_1.default.factory.createArrayLiteralExpression([
721
+ decode_native_byte_array({
722
+ importer: importer,
723
+ name: "Uint8Array",
724
+ }),
725
+ ], true),
671
726
  ]);
672
727
  };
673
728
  var decode_native_file = function (importer) {
674
729
  return typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier("File"), undefined, [
675
- typescript_1.default.factory.createArrayLiteralExpression([decode_native_byte_array(importer)("Uint8Array")], true),
730
+ typescript_1.default.factory.createArrayLiteralExpression([
731
+ decode_native_byte_array({
732
+ importer: importer,
733
+ name: "Uint8Array",
734
+ }),
735
+ ], true),
676
736
  typescript_1.default.factory.createTemplateExpression(typescript_1.default.factory.createTemplateHead(""), [
677
- typescript_1.default.factory.createTemplateSpan(typescript_1.default.factory.createCallExpression(COALESCE(importer)("string"), undefined, [typescript_1.default.factory.createNumericLiteral(8)]), typescript_1.default.factory.createTemplateMiddle(".")),
678
- typescript_1.default.factory.createTemplateSpan(typescript_1.default.factory.createCallExpression(COALESCE(importer)("string"), undefined, [typescript_1.default.factory.createNumericLiteral(3)]), typescript_1.default.factory.createTemplateTail("")),
737
+ typescript_1.default.factory.createTemplateSpan(typescript_1.default.factory.createCallExpression(coalesce(importer)("string"), undefined, [typescript_1.default.factory.createNumericLiteral(8)]), typescript_1.default.factory.createTemplateMiddle(".")),
738
+ typescript_1.default.factory.createTemplateSpan(typescript_1.default.factory.createCallExpression(coalesce(importer)("string"), undefined, [typescript_1.default.factory.createNumericLiteral(3)]), typescript_1.default.factory.createTemplateTail("")),
679
739
  ]),
680
740
  ]);
681
741
  };
682
- var decode_native_array_buffer = function (importer) {
683
- return function (type) {
684
- return type === "ArrayBuffer"
685
- ? IdentifierFactory_1.IdentifierFactory.access(decode_native_byte_array(importer)("Uint8Array"))("buffer")
686
- : ExpressionFactory_1.ExpressionFactory.selfCall(typescript_1.default.factory.createBlock([
687
- StatementFactory_1.StatementFactory.constant("length", typescript_1.default.factory.createCallExpression(COALESCE(importer)("integer"), undefined, [])),
688
- StatementFactory_1.StatementFactory.constant("buffer", typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier("SharedArrayBuffer"), [], [typescript_1.default.factory.createIdentifier("length")])),
689
- StatementFactory_1.StatementFactory.constant("bytes", typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier("Uint8Array"), [], [typescript_1.default.factory.createIdentifier("buffer")])),
690
- typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createIdentifier("bytes"))("set"), undefined, [
691
- typescript_1.default.factory.createCallExpression(COALESCE(importer)("array"), undefined, [
692
- typescript_1.default.factory.createArrowFunction(undefined, undefined, [], TypeFactory_1.TypeFactory.keyword("any"), undefined, typescript_1.default.factory.createCallExpression(COALESCE(importer)("integer"), undefined, [
693
- ExpressionFactory_1.ExpressionFactory.number(0),
694
- ExpressionFactory_1.ExpressionFactory.number(255),
695
- ])),
696
- typescript_1.default.factory.createIdentifier("length"),
697
- ]),
698
- ExpressionFactory_1.ExpressionFactory.number(0),
699
- ])),
700
- typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createIdentifier("buffer")),
701
- ], true));
702
- };
742
+ var decode_native_array_buffer = function (props) {
743
+ return props.name === "ArrayBuffer"
744
+ ? IdentifierFactory_1.IdentifierFactory.access(decode_native_byte_array({
745
+ importer: props.importer,
746
+ name: "Uint8Array",
747
+ }))("buffer")
748
+ : ExpressionFactory_1.ExpressionFactory.selfCall(typescript_1.default.factory.createBlock([
749
+ StatementFactory_1.StatementFactory.constant("length", typescript_1.default.factory.createCallExpression(coalesce(props.importer)("integer"), undefined, [])),
750
+ StatementFactory_1.StatementFactory.constant("buffer", typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier("SharedArrayBuffer"), [], [typescript_1.default.factory.createIdentifier("length")])),
751
+ StatementFactory_1.StatementFactory.constant("bytes", typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier("Uint8Array"), [], [typescript_1.default.factory.createIdentifier("buffer")])),
752
+ typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createIdentifier("bytes"))("set"), undefined, [
753
+ typescript_1.default.factory.createCallExpression(coalesce(props.importer)("array"), undefined, [
754
+ typescript_1.default.factory.createArrowFunction(undefined, undefined, [], TypeFactory_1.TypeFactory.keyword("any"), undefined, typescript_1.default.factory.createCallExpression(coalesce(props.importer)("integer"), undefined, [
755
+ ExpressionFactory_1.ExpressionFactory.number(0),
756
+ ExpressionFactory_1.ExpressionFactory.number(255),
757
+ ])),
758
+ typescript_1.default.factory.createIdentifier("length"),
759
+ ]),
760
+ ExpressionFactory_1.ExpressionFactory.number(0),
761
+ ])),
762
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createIdentifier("buffer")),
763
+ ], true));
703
764
  };
704
765
  var decode_native_data_view = function (importer) {
705
766
  return typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier("DataView"), [], [
706
- IdentifierFactory_1.IdentifierFactory.access(decode_native_byte_array(importer)("Uint8Array"))("buffer"),
767
+ IdentifierFactory_1.IdentifierFactory.access(decode_native_byte_array({
768
+ importer: importer,
769
+ name: "Uint8Array",
770
+ }))("buffer"),
707
771
  ]);
708
772
  };
709
773
  var decode_regexp = function () {
@@ -715,7 +779,7 @@ var Prefix = {
715
779
  array: function (i) { return "$ra".concat(i); },
716
780
  tuple: function (i) { return "$rt".concat(i); },
717
781
  };
718
- var COALESCE = function (importer) { return function (name) {
782
+ var coalesce = function (importer) { return function (name) {
719
783
  return ExpressionFactory_1.ExpressionFactory.coalesce(Escaper_1.Escaper.variable(name)
720
784
  ? typescript_1.default.factory.createPropertyAccessChain(typescript_1.default.factory.createIdentifier("_generator"), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionDotToken), typescript_1.default.factory.createIdentifier(name))
721
785
  : typescript_1.default.factory.createElementAccessChain(typescript_1.default.factory.createIdentifier("_generator"), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionDotToken), typescript_1.default.factory.createStringLiteral(name)))(IdentifierFactory_1.IdentifierFactory.access(importer.use("generator"))(name));