typia 7.0.0-dev.20240930 → 7.0.0-dev.20241001

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 (169) hide show
  1. package/lib/index.mjs +25 -25
  2. package/lib/index.mjs.map +1 -1
  3. package/lib/programmers/AssertProgrammer.js +20 -17
  4. package/lib/programmers/AssertProgrammer.js.map +1 -1
  5. package/lib/programmers/CheckerProgrammer.js +274 -216
  6. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  7. package/lib/programmers/FeatureProgrammer.js +16 -8
  8. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  9. package/lib/programmers/IsProgrammer.js +38 -20
  10. package/lib/programmers/IsProgrammer.js.map +1 -1
  11. package/lib/programmers/RandomProgrammer.js +83 -68
  12. package/lib/programmers/RandomProgrammer.js.map +1 -1
  13. package/lib/programmers/TypiaProgrammer.d.ts +2 -2
  14. package/lib/programmers/TypiaProgrammer.js +79 -75
  15. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  16. package/lib/programmers/ValidateProgrammer.js +39 -17
  17. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  18. package/lib/programmers/helpers/CloneJoiner.js +4 -1
  19. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  20. package/lib/programmers/helpers/NotationJoiner.d.ts +2 -1
  21. package/lib/programmers/helpers/NotationJoiner.js +34 -33
  22. package/lib/programmers/helpers/NotationJoiner.js.map +1 -1
  23. package/lib/programmers/helpers/PruneJoiner.js +4 -1
  24. package/lib/programmers/helpers/PruneJoiner.js.map +1 -1
  25. package/lib/programmers/helpers/RandomJoiner.d.ts +1 -1
  26. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  27. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  28. package/lib/programmers/helpers/StringifyJoinder.js +4 -1
  29. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
  30. package/lib/programmers/helpers/StringifyPredicator.d.ts +1 -1
  31. package/lib/programmers/helpers/StringifyPredicator.js +4 -3
  32. package/lib/programmers/helpers/StringifyPredicator.js.map +1 -1
  33. package/lib/programmers/helpers/UnionExplorer.d.ts +52 -12
  34. package/lib/programmers/helpers/UnionExplorer.js +183 -144
  35. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  36. package/lib/programmers/helpers/UnionPredicator.d.ts +1 -1
  37. package/lib/programmers/helpers/UnionPredicator.js +7 -7
  38. package/lib/programmers/http/HttpFormDataProgrammer.js +77 -70
  39. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  40. package/lib/programmers/http/HttpHeadersProgrammer.js +69 -68
  41. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  42. package/lib/programmers/http/HttpQueryProgrammer.js +69 -62
  43. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  44. package/lib/programmers/internal/application_escaped.js +4 -4
  45. package/lib/programmers/internal/application_escaped.js.map +1 -1
  46. package/lib/programmers/internal/application_templates.js +8 -2
  47. package/lib/programmers/internal/application_templates.js.map +1 -1
  48. package/lib/programmers/internal/application_union_discriminator.d.ts +1 -1
  49. package/lib/programmers/internal/application_union_discriminator.js +6 -6
  50. package/lib/programmers/internal/application_union_discriminator.js.map +1 -1
  51. package/lib/programmers/internal/application_v30_object.js +6 -3
  52. package/lib/programmers/internal/application_v30_object.js.map +1 -1
  53. package/lib/programmers/internal/application_v31_object.js +4 -1
  54. package/lib/programmers/internal/application_v31_object.js.map +1 -1
  55. package/lib/programmers/internal/check_array_length.js +21 -26
  56. package/lib/programmers/internal/check_array_length.js.map +1 -1
  57. package/lib/programmers/internal/check_bigint.js +18 -26
  58. package/lib/programmers/internal/check_bigint.js.map +1 -1
  59. package/lib/programmers/internal/check_dynamic_key.d.ts +1 -5
  60. package/lib/programmers/internal/check_dynamic_key.js +109 -91
  61. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  62. package/lib/programmers/internal/check_dynamic_properties.js +88 -90
  63. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  64. package/lib/programmers/internal/check_native.js +8 -5
  65. package/lib/programmers/internal/check_native.js.map +1 -1
  66. package/lib/programmers/internal/check_number.js +59 -65
  67. package/lib/programmers/internal/check_number.js.map +1 -1
  68. package/lib/programmers/internal/check_object.js +31 -22
  69. package/lib/programmers/internal/check_object.js.map +1 -1
  70. package/lib/programmers/internal/check_string.js +18 -26
  71. package/lib/programmers/internal/check_string.js.map +1 -1
  72. package/lib/programmers/internal/check_template.js +20 -21
  73. package/lib/programmers/internal/check_template.js.map +1 -1
  74. package/lib/programmers/internal/check_union_array_like.js +68 -53
  75. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  76. package/lib/programmers/internal/decode_union_object.js +59 -49
  77. package/lib/programmers/internal/decode_union_object.js.map +1 -1
  78. package/lib/programmers/internal/feature_object_entries.js +31 -37
  79. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  80. package/lib/programmers/internal/llm_schema_escaped.js +29 -11
  81. package/lib/programmers/internal/llm_schema_escaped.js.map +1 -1
  82. package/lib/programmers/internal/llm_schema_object.js +4 -1
  83. package/lib/programmers/internal/llm_schema_object.js.map +1 -1
  84. package/lib/programmers/internal/metadata_to_pattern.js +44 -41
  85. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  86. package/lib/programmers/internal/postfix_of_tuple.d.ts +1 -1
  87. package/lib/programmers/internal/postfix_of_tuple.js +3 -0
  88. package/lib/programmers/internal/postfix_of_tuple.js.map +1 -1
  89. package/lib/programmers/internal/prune_object_properties.js +6 -3
  90. package/lib/programmers/internal/prune_object_properties.js.map +1 -1
  91. package/lib/programmers/internal/random_custom.js +8 -14
  92. package/lib/programmers/internal/random_custom.js.map +1 -1
  93. package/lib/programmers/internal/stringify_dynamic_properties.js +4 -1
  94. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  95. package/lib/programmers/internal/stringify_regular_properties.js +4 -4
  96. package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
  97. package/lib/programmers/internal/template_to_pattern.js +10 -5
  98. package/lib/programmers/internal/template_to_pattern.js.map +1 -1
  99. package/lib/programmers/internal/wrap_metadata_rest_tuple.d.ts +1 -2
  100. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +3 -0
  101. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  102. package/lib/programmers/json/JsonStringifyProgrammer.js +76 -52
  103. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  104. package/lib/programmers/misc/MiscCloneProgrammer.js +143 -115
  105. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  106. package/lib/programmers/misc/MiscPruneProgrammer.js +65 -50
  107. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  108. package/lib/programmers/notations/NotationGeneralProgrammer.d.ts +4 -1
  109. package/lib/programmers/notations/NotationGeneralProgrammer.js +166 -115
  110. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  111. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +32 -24
  112. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  113. package/lib/utils/NamingConvention/NamingConvention.js +41 -47
  114. package/lib/utils/NamingConvention/NamingConvention.js.map +1 -1
  115. package/package.json +1 -1
  116. package/src/programmers/AssertProgrammer.ts +30 -27
  117. package/src/programmers/CheckerProgrammer.ts +279 -248
  118. package/src/programmers/FeatureProgrammer.ts +17 -15
  119. package/src/programmers/IsProgrammer.ts +34 -20
  120. package/src/programmers/RandomProgrammer.ts +18 -9
  121. package/src/programmers/TypiaProgrammer.ts +48 -34
  122. package/src/programmers/ValidateProgrammer.ts +50 -27
  123. package/src/programmers/helpers/CloneJoiner.ts +4 -1
  124. package/src/programmers/helpers/NotationJoiner.ts +85 -83
  125. package/src/programmers/helpers/ProtobufUtil.ts +2 -2
  126. package/src/programmers/helpers/PruneJoiner.ts +4 -1
  127. package/src/programmers/helpers/RandomJoiner.ts +5 -2
  128. package/src/programmers/helpers/RandomRanger.ts +8 -1
  129. package/src/programmers/helpers/StringifyJoinder.ts +4 -1
  130. package/src/programmers/helpers/StringifyPredicator.ts +4 -3
  131. package/src/programmers/helpers/UnionExplorer.ts +279 -202
  132. package/src/programmers/helpers/UnionPredicator.ts +5 -5
  133. package/src/programmers/http/HttpFormDataProgrammer.ts +135 -114
  134. package/src/programmers/http/HttpHeadersProgrammer.ts +145 -120
  135. package/src/programmers/http/HttpQueryProgrammer.ts +137 -116
  136. package/src/programmers/internal/application_escaped.ts +6 -6
  137. package/src/programmers/internal/application_templates.ts +8 -6
  138. package/src/programmers/internal/application_union_discriminator.ts +6 -6
  139. package/src/programmers/internal/application_v30_object.ts +6 -3
  140. package/src/programmers/internal/application_v31_object.ts +4 -1
  141. package/src/programmers/internal/application_v31_tuple.ts +1 -1
  142. package/src/programmers/internal/check_array_length.ts +31 -30
  143. package/src/programmers/internal/check_bigint.ts +31 -31
  144. package/src/programmers/internal/check_dynamic_key.ts +155 -126
  145. package/src/programmers/internal/check_dynamic_properties.ts +152 -154
  146. package/src/programmers/internal/check_native.ts +11 -5
  147. package/src/programmers/internal/check_number.ts +88 -84
  148. package/src/programmers/internal/check_object.ts +45 -31
  149. package/src/programmers/internal/check_string.ts +31 -30
  150. package/src/programmers/internal/check_template.ts +34 -32
  151. package/src/programmers/internal/check_union_array_like.ts +245 -228
  152. package/src/programmers/internal/decode_union_object.ts +92 -75
  153. package/src/programmers/internal/feature_object_entries.ts +43 -46
  154. package/src/programmers/internal/llm_schema_escaped.ts +36 -13
  155. package/src/programmers/internal/llm_schema_object.ts +4 -1
  156. package/src/programmers/internal/metadata_to_pattern.ts +31 -23
  157. package/src/programmers/internal/postfix_of_tuple.ts +3 -0
  158. package/src/programmers/internal/prune_object_properties.ts +6 -3
  159. package/src/programmers/internal/random_custom.ts +24 -23
  160. package/src/programmers/internal/stringify_dynamic_properties.ts +4 -1
  161. package/src/programmers/internal/stringify_regular_properties.ts +7 -7
  162. package/src/programmers/internal/template_to_pattern.ts +12 -4
  163. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +3 -0
  164. package/src/programmers/json/JsonStringifyProgrammer.ts +71 -51
  165. package/src/programmers/misc/MiscCloneProgrammer.ts +156 -132
  166. package/src/programmers/misc/MiscPruneProgrammer.ts +61 -49
  167. package/src/programmers/notations/NotationGeneralProgrammer.ts +193 -144
  168. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +25 -21
  169. package/src/utils/NamingConvention/NamingConvention.ts +40 -42
@@ -220,28 +220,33 @@ var CheckerProgrammer;
220
220
  unionizer: props.config.equals
221
221
  ? function (next) {
222
222
  var _a;
223
- return (0, decode_union_object_1.decode_union_object)(function (input, object, explore) {
224
- return CheckerProgrammer.decode_object({
225
- config: props.config,
226
- importer: props.importer,
227
- object: object,
228
- input: input,
229
- explore: explore,
230
- });
231
- })(function (input, object, explore) {
232
- return CheckerProgrammer.decode_object({
233
- config: props.config,
234
- importer: props.importer,
235
- input: input,
236
- object: object,
237
- explore: __assign(__assign({}, explore), { tracable: true }),
238
- });
239
- })((_a = props.config.joiner.is) !== null && _a !== void 0 ? _a : (function (expr) { return expr; }))(function (input, expected) {
240
- return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure({
241
- input: input,
242
- expected: expected,
243
- }));
244
- })(next.input, next.objects, next.explore);
223
+ return (0, decode_union_object_1.decode_union_object)({
224
+ checker: function (v) {
225
+ return CheckerProgrammer.decode_object({
226
+ config: props.config,
227
+ importer: props.importer,
228
+ object: v.object,
229
+ input: v.input,
230
+ explore: v.explore,
231
+ });
232
+ },
233
+ decoder: function (v) {
234
+ return CheckerProgrammer.decode_object({
235
+ config: props.config,
236
+ importer: props.importer,
237
+ input: v.input,
238
+ object: v.object,
239
+ explore: __assign(__assign({}, v.explore), { tracable: true }),
240
+ });
241
+ },
242
+ success: (_a = props.config.joiner.is) !== null && _a !== void 0 ? _a : (function (expr) { return expr; }),
243
+ escaper: function (v) {
244
+ return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure(v));
245
+ },
246
+ input: next.input,
247
+ objects: next.objects,
248
+ explore: next.explore,
249
+ });
245
250
  }
246
251
  : function (next) {
247
252
  return props.config.combiner({
@@ -441,7 +446,12 @@ var CheckerProgrammer;
441
446
  binaries.push({
442
447
  expression: props.config.atomist({
443
448
  explore: props.explore,
444
- entry: (0, check_number_1.check_number)(props.context, props.config.numeric)(atom)(props.input),
449
+ entry: (0, check_number_1.check_number)({
450
+ context: props.context,
451
+ numeric: props.config.numeric,
452
+ atomic: atom,
453
+ input: props.input,
454
+ }),
445
455
  input: props.input,
446
456
  }),
447
457
  combined: false,
@@ -450,7 +460,11 @@ var CheckerProgrammer;
450
460
  binaries.push({
451
461
  expression: props.config.atomist({
452
462
  explore: props.explore,
453
- entry: (0, check_bigint_1.check_bigint)(props.context)(atom)(props.input),
463
+ entry: (0, check_bigint_1.check_bigint)({
464
+ context: props.context,
465
+ atomic: atom,
466
+ input: props.input,
467
+ }),
454
468
  input: props.input,
455
469
  }),
456
470
  combined: false,
@@ -459,7 +473,11 @@ var CheckerProgrammer;
459
473
  binaries.push({
460
474
  expression: props.config.atomist({
461
475
  explore: props.explore,
462
- entry: (0, check_string_1.check_string)(props.context)(atom)(props.input),
476
+ entry: (0, check_string_1.check_string)({
477
+ context: props.context,
478
+ atomic: atom,
479
+ input: props.input,
480
+ }),
463
481
  input: props.input,
464
482
  }),
465
483
  combined: false,
@@ -485,7 +503,10 @@ var CheckerProgrammer;
485
503
  binaries.push({
486
504
  expression: props.config.atomist({
487
505
  explore: props.explore,
488
- entry: (0, check_template_1.check_template)(props.metadata.templates)(props.input),
506
+ entry: (0, check_template_1.check_template)({
507
+ templates: props.metadata.templates,
508
+ input: props.input,
509
+ }),
489
510
  input: props.input,
490
511
  }),
491
512
  combined: false,
@@ -495,7 +516,10 @@ var CheckerProgrammer;
495
516
  for (var _j = __values(props.metadata.natives), _k = _j.next(); !_k.done; _k = _j.next()) {
496
517
  var native = _k.value;
497
518
  binaries.push({
498
- expression: (0, check_native_1.check_native)(native)(props.input),
519
+ expression: (0, check_native_1.check_native)({
520
+ type: native,
521
+ input: props.input,
522
+ }),
499
523
  combined: false,
500
524
  });
501
525
  }
@@ -513,7 +537,10 @@ var CheckerProgrammer;
513
537
  if (props.metadata.sets.length) {
514
538
  var install = function (body) {
515
539
  return prepare({
516
- knock: (0, check_native_1.check_native)("Set")(props.input),
540
+ head: (0, check_native_1.check_native)({
541
+ type: "Set",
542
+ input: props.input,
543
+ }),
517
544
  expected: props.metadata.sets
518
545
  .map(function (elem) { return "Set<".concat(elem.getName(), ">"); })
519
546
  .join(" | "),
@@ -536,7 +563,10 @@ var CheckerProgrammer;
536
563
  if (props.metadata.maps.length) {
537
564
  var install = function (body) {
538
565
  return prepare({
539
- knock: (0, check_native_1.check_native)("Map")(props.input),
566
+ head: (0, check_native_1.check_native)({
567
+ type: "Map",
568
+ input: props.input,
569
+ }),
540
570
  expected: props.metadata.maps
541
571
  .map(function (_a) {
542
572
  var key = _a.key, value = _a.value;
@@ -562,7 +592,7 @@ var CheckerProgrammer;
562
592
  if (props.metadata.tuples.length + props.metadata.arrays.length > 0) {
563
593
  var install = function (body) {
564
594
  return prepare({
565
- knock: props.config.atomist({
595
+ head: props.config.atomist({
566
596
  explore: props.explore,
567
597
  entry: {
568
598
  expected: __spreadArray(__spreadArray([], __read(props.metadata.tuples.map(function (t) { return t.type.name; })), false), __read(props.metadata.arrays.map(function (a) { return a.getName(); })), false).join(" | "),
@@ -631,7 +661,7 @@ var CheckerProgrammer;
631
661
  // OBJECT
632
662
  if (props.metadata.objects.length > 0)
633
663
  prepare({
634
- knock: ExpressionFactory_1.ExpressionFactory.isObject({
664
+ head: ExpressionFactory_1.ExpressionFactory.isObject({
635
665
  checkNull: true,
636
666
  checkArray: props.metadata.objects.some(function (obj) {
637
667
  return obj.properties.every(function (prop) { return !prop.key.isSoleLiteral() || !prop.value.isRequired(); });
@@ -651,24 +681,24 @@ var CheckerProgrammer;
651
681
  return function (ins) {
652
682
  return ins.body
653
683
  ? {
654
- expression: merger(ins.knock, ins.body),
684
+ expression: merger(ins.head, ins.body),
655
685
  combined: true,
656
686
  }
657
687
  : {
658
- expression: ins.knock,
688
+ expression: ins.head,
659
689
  combined: false,
660
690
  };
661
691
  };
662
692
  };
663
693
  if (instances.length === 1)
664
- binaries.push(transformer(function (pre, body) {
694
+ binaries.push(transformer(function (head, body) {
665
695
  return props.config.combiner({
666
696
  explore: props.explore,
667
697
  logic: "and",
668
698
  input: props.input,
669
- binaries: [pre, body].map(function (expression) { return ({
699
+ binaries: [head, body].map(function (expression) { return ({
670
700
  expression: expression,
671
- combined: expression !== pre,
701
+ combined: expression !== head,
672
702
  }); }),
673
703
  expected: props.metadata.getName(),
674
704
  });
@@ -691,7 +721,10 @@ var CheckerProgrammer;
691
721
  combined: false,
692
722
  expression: props.metadata.escaped.original.size() === 1 &&
693
723
  props.metadata.escaped.original.natives.length === 1
694
- ? (0, check_native_1.check_native)(props.metadata.escaped.original.natives[0])(props.input)
724
+ ? (0, check_native_1.check_native)({
725
+ type: props.metadata.escaped.original.natives[0],
726
+ input: props.input,
727
+ })
695
728
  : typescript_1.default.factory.createLogicalAnd(CheckerProgrammer.decode({
696
729
  context: props.context,
697
730
  config: props.config,
@@ -763,7 +796,11 @@ var CheckerProgrammer;
763
796
  }));
764
797
  };
765
798
  var decode_array_inline = function (props) {
766
- var length = (0, check_array_length_1.check_array_length)(props.context)(props.array)(props.input);
799
+ var length = (0, check_array_length_1.check_array_length)({
800
+ context: props.context,
801
+ array: props.array,
802
+ input: props.input,
803
+ });
767
804
  var main = FeatureProgrammer_1.FeatureProgrammer.decode_array({
768
805
  config: {
769
806
  prefix: props.config.prefix,
@@ -877,152 +914,164 @@ var CheckerProgrammer;
877
914
  ----------------------------------------------------------- */
878
915
  var explore_sets = function (props) {
879
916
  return typescript_1.default.factory.createCallExpression(UnionExplorer_1.UnionExplorer.set({
880
- checker: function (input, metadata, explore, _container) {
881
- return CheckerProgrammer.decode({
882
- context: props.context,
883
- config: props.config,
884
- importer: props.importer,
885
- input: input,
886
- metadata: metadata,
887
- explore: explore,
888
- });
889
- },
890
- decoder: function (input, array, explore) {
891
- return decode_array({
892
- config: props.config,
893
- context: props.context,
894
- importer: props.importer,
895
- array: array,
896
- input: input,
897
- explore: explore,
898
- });
899
- },
900
- empty: props.config.success,
901
- success: props.config.success,
902
- failure: function (input, expected, explore) {
903
- return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure({
904
- input: input,
905
- expected: expected,
906
- explore: explore,
907
- }));
908
- },
909
- })([])(props.input, props.sets, props.explore), undefined, undefined);
910
- };
911
- var explore_maps = function (props) {
912
- return typescript_1.default.factory.createCallExpression(UnionExplorer_1.UnionExplorer.map({
913
- checker: function (input, entry, explore) {
914
- return typescript_1.default.factory.createLogicalAnd(CheckerProgrammer.decode({
915
- config: props.config,
916
- context: props.context,
917
- importer: props.importer,
918
- input: typescript_1.default.factory.createElementAccessExpression(input, 0),
919
- metadata: entry[0],
920
- explore: __assign(__assign({}, explore), { postfix: "".concat(explore.postfix, "[0]") }),
921
- }), CheckerProgrammer.decode({
922
- config: props.config,
923
- context: props.context,
924
- importer: props.importer,
925
- input: typescript_1.default.factory.createElementAccessExpression(input, 1),
926
- metadata: entry[1],
927
- explore: __assign(__assign({}, explore), { postfix: "".concat(explore.postfix, "[1]") }),
928
- }));
929
- },
930
- decoder: function (input, array, explore) {
931
- return decode_array({
932
- context: props.context,
933
- config: props.config,
934
- importer: props.importer,
935
- array: array,
936
- input: input,
937
- explore: explore,
938
- });
939
- },
940
- empty: props.config.success,
941
- success: props.config.success,
942
- failure: function (input, expected, explore) {
943
- return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure({
944
- input: input,
945
- expected: expected,
946
- explore: explore,
947
- }));
948
- },
949
- })([])(props.input, props.maps, props.explore), undefined, undefined);
950
- };
951
- var explore_tuples = function (props) {
952
- return explore_array_like_union_types({
953
- config: props.config,
954
- importer: props.importer,
955
- factory: UnionExplorer_1.UnionExplorer.tuple({
956
- checker: function (input, tuple, explore) {
957
- return decode_tuple({
917
+ config: {
918
+ checker: function (v) {
919
+ return CheckerProgrammer.decode({
958
920
  context: props.context,
959
921
  config: props.config,
960
922
  importer: props.importer,
961
- input: input,
962
- tuple: tuple,
963
- explore: explore,
923
+ input: v.input,
924
+ metadata: v.definition,
925
+ explore: v.explore,
964
926
  });
965
927
  },
966
- decoder: function (input, tuple, explore) {
967
- return decode_tuple({
968
- context: props.context,
928
+ decoder: function (v) {
929
+ return decode_array({
969
930
  config: props.config,
931
+ context: props.context,
970
932
  importer: props.importer,
971
- tuple: tuple,
972
- input: input,
973
- explore: explore,
933
+ array: v.definition,
934
+ input: v.input,
935
+ explore: v.explore,
974
936
  });
975
937
  },
976
938
  empty: props.config.success,
977
939
  success: props.config.success,
978
- failure: function (input, expected, explore) {
979
- return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure({
980
- input: input,
981
- expected: expected,
982
- explore: explore,
983
- }));
940
+ failure: function (v) {
941
+ return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure(v));
984
942
  },
985
- }),
986
- definitions: props.tuples,
943
+ },
944
+ parameters: [],
987
945
  input: props.input,
946
+ sets: props.sets,
988
947
  explore: props.explore,
989
- });
948
+ }), undefined, undefined);
990
949
  };
991
- var explore_arrays = function (props) {
992
- return explore_array_like_union_types({
993
- config: props.config,
994
- importer: props.importer,
995
- factory: UnionExplorer_1.UnionExplorer.array({
996
- checker: function (input, metadata, explore) {
997
- return CheckerProgrammer.decode({
950
+ var explore_maps = function (props) {
951
+ return typescript_1.default.factory.createCallExpression(UnionExplorer_1.UnionExplorer.map({
952
+ config: {
953
+ checker: function (v) {
954
+ return typescript_1.default.factory.createLogicalAnd(CheckerProgrammer.decode({
955
+ config: props.config,
998
956
  context: props.context,
957
+ importer: props.importer,
958
+ input: typescript_1.default.factory.createElementAccessExpression(v.input, 0),
959
+ metadata: v.definition[0],
960
+ explore: __assign(__assign({}, v.explore), { postfix: "".concat(v.explore.postfix, "[0]") }),
961
+ }), CheckerProgrammer.decode({
999
962
  config: props.config,
963
+ context: props.context,
1000
964
  importer: props.importer,
1001
- metadata: metadata,
1002
- input: input,
1003
- explore: explore,
1004
- });
965
+ input: typescript_1.default.factory.createElementAccessExpression(v.input, 1),
966
+ metadata: v.definition[1],
967
+ explore: __assign(__assign({}, v.explore), { postfix: "".concat(v.explore.postfix, "[1]") }),
968
+ }));
1005
969
  },
1006
- decoder: function (input, array, explore) {
970
+ decoder: function (v) {
1007
971
  return decode_array({
1008
972
  context: props.context,
1009
973
  config: props.config,
1010
974
  importer: props.importer,
1011
- array: array,
1012
- input: input,
1013
- explore: explore,
975
+ array: v.definition,
976
+ input: v.input,
977
+ explore: v.explore,
1014
978
  });
1015
979
  },
1016
980
  empty: props.config.success,
1017
981
  success: props.config.success,
1018
- failure: function (input, expected, explore) {
1019
- return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure({
1020
- input: input,
1021
- expected: expected,
1022
- explore: explore,
1023
- }));
982
+ failure: function (v) {
983
+ return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure(v));
1024
984
  },
1025
- }),
985
+ },
986
+ parameters: [],
987
+ input: props.input,
988
+ maps: props.maps,
989
+ explore: props.explore,
990
+ }), undefined, undefined);
991
+ };
992
+ var explore_tuples = function (props) {
993
+ return explore_array_like_union_types({
994
+ config: props.config,
995
+ importer: props.importer,
996
+ factory: function (next) {
997
+ return UnionExplorer_1.UnionExplorer.tuple({
998
+ config: {
999
+ checker: function (v) {
1000
+ return decode_tuple({
1001
+ context: props.context,
1002
+ config: props.config,
1003
+ importer: props.importer,
1004
+ input: v.input,
1005
+ tuple: v.definition,
1006
+ explore: v.explore,
1007
+ });
1008
+ },
1009
+ decoder: function (v) {
1010
+ return decode_tuple({
1011
+ context: props.context,
1012
+ config: props.config,
1013
+ importer: props.importer,
1014
+ tuple: v.definition,
1015
+ input: v.input,
1016
+ explore: v.explore,
1017
+ });
1018
+ },
1019
+ empty: props.config.success,
1020
+ success: props.config.success,
1021
+ failure: function (v) {
1022
+ return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure(v));
1023
+ },
1024
+ },
1025
+ parameters: next.parameters,
1026
+ tuples: next.definitions,
1027
+ input: next.input,
1028
+ explore: next.explore,
1029
+ });
1030
+ },
1031
+ definitions: props.tuples,
1032
+ input: props.input,
1033
+ explore: props.explore,
1034
+ });
1035
+ };
1036
+ var explore_arrays = function (props) {
1037
+ return explore_array_like_union_types({
1038
+ config: props.config,
1039
+ importer: props.importer,
1040
+ factory: function (next) {
1041
+ return UnionExplorer_1.UnionExplorer.array({
1042
+ config: {
1043
+ checker: function (v) {
1044
+ return CheckerProgrammer.decode({
1045
+ context: props.context,
1046
+ config: props.config,
1047
+ importer: props.importer,
1048
+ metadata: v.definition,
1049
+ input: v.input,
1050
+ explore: v.explore,
1051
+ });
1052
+ },
1053
+ decoder: function (v) {
1054
+ return decode_array({
1055
+ context: props.context,
1056
+ config: props.config,
1057
+ importer: props.importer,
1058
+ array: v.definition,
1059
+ input: v.input,
1060
+ explore: v.explore,
1061
+ });
1062
+ },
1063
+ empty: props.config.success,
1064
+ success: props.config.success,
1065
+ failure: function (v) {
1066
+ return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure(v));
1067
+ },
1068
+ },
1069
+ parameters: next.parameters,
1070
+ arrays: next.definitions,
1071
+ input: next.input,
1072
+ explore: next.explore,
1073
+ });
1074
+ },
1026
1075
  definitions: props.arrays,
1027
1076
  input: props.input,
1028
1077
  explore: props.explore,
@@ -1032,69 +1081,73 @@ var CheckerProgrammer;
1032
1081
  return explore_array_like_union_types({
1033
1082
  config: props.config,
1034
1083
  importer: props.importer,
1035
- factory: UnionExplorer_1.UnionExplorer.array_or_tuple({
1036
- checker: function (input, definition, explore, array) {
1037
- return definition instanceof MetadataTuple_1.MetadataTuple
1038
- ? decode_tuple({
1039
- config: props.config,
1040
- context: props.context,
1041
- importer: props.importer,
1042
- input: input,
1043
- tuple: definition,
1044
- explore: explore,
1045
- })
1046
- : props.config.atomist({
1047
- explore: explore,
1048
- entry: {
1049
- expected: props.definitions
1050
- .map(function (elem) {
1051
- return elem instanceof MetadataArray_1.MetadataArray
1052
- ? elem.getName()
1053
- : elem.type.name;
1084
+ factory: function (next) {
1085
+ return UnionExplorer_1.UnionExplorer.array_or_tuple({
1086
+ config: {
1087
+ checker: function (v) {
1088
+ return v.definition instanceof MetadataTuple_1.MetadataTuple
1089
+ ? decode_tuple({
1090
+ config: props.config,
1091
+ context: props.context,
1092
+ importer: props.importer,
1093
+ input: v.input,
1094
+ tuple: v.definition,
1095
+ explore: v.explore,
1054
1096
  })
1055
- .join(" | "),
1056
- expression: CheckerProgrammer.decode({
1097
+ : props.config.atomist({
1098
+ explore: v.explore,
1099
+ entry: {
1100
+ expected: props.definitions
1101
+ .map(function (elem) {
1102
+ return elem instanceof MetadataArray_1.MetadataArray
1103
+ ? elem.getName()
1104
+ : elem.type.name;
1105
+ })
1106
+ .join(" | "),
1107
+ expression: CheckerProgrammer.decode({
1108
+ importer: props.importer,
1109
+ context: props.context,
1110
+ config: props.config,
1111
+ metadata: v.definition,
1112
+ input: v.input,
1113
+ explore: v.explore,
1114
+ }),
1115
+ conditions: [],
1116
+ },
1117
+ input: v.container,
1118
+ });
1119
+ },
1120
+ decoder: function (v) {
1121
+ return v.definition instanceof MetadataTuple_1.MetadataTuple
1122
+ ? decode_tuple({
1123
+ context: props.context,
1124
+ config: props.config,
1057
1125
  importer: props.importer,
1126
+ input: v.input,
1127
+ tuple: v.definition,
1128
+ explore: v.explore,
1129
+ })
1130
+ : decode_array({
1058
1131
  context: props.context,
1059
1132
  config: props.config,
1060
- input: input,
1061
- metadata: definition,
1062
- explore: explore,
1063
- }),
1064
- conditions: [],
1065
- },
1066
- input: array,
1067
- });
1068
- },
1069
- decoder: function (input, definition, explore) {
1070
- return definition instanceof MetadataTuple_1.MetadataTuple
1071
- ? decode_tuple({
1072
- context: props.context,
1073
- config: props.config,
1074
- importer: props.importer,
1075
- input: input,
1076
- tuple: definition,
1077
- explore: explore,
1078
- })
1079
- : decode_array({
1080
- context: props.context,
1081
- config: props.config,
1082
- importer: props.importer,
1083
- input: input,
1084
- array: definition,
1085
- explore: explore,
1086
- });
1087
- },
1088
- empty: props.config.success,
1089
- success: props.config.success,
1090
- failure: function (input, expected, explore) {
1091
- return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure({
1092
- input: input,
1093
- expected: expected,
1094
- explore: explore,
1095
- }));
1096
- },
1097
- }),
1133
+ importer: props.importer,
1134
+ input: v.input,
1135
+ array: v.definition,
1136
+ explore: v.explore,
1137
+ });
1138
+ },
1139
+ empty: props.config.success,
1140
+ success: props.config.success,
1141
+ failure: function (v) {
1142
+ return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure(v));
1143
+ },
1144
+ },
1145
+ parameters: next.parameters,
1146
+ definitions: next.definitions,
1147
+ input: next.input,
1148
+ explore: next.explore,
1149
+ });
1150
+ },
1098
1151
  input: props.input,
1099
1152
  definitions: props.definitions,
1100
1153
  explore: props.explore,
@@ -1102,7 +1155,12 @@ var CheckerProgrammer;
1102
1155
  };
1103
1156
  var explore_array_like_union_types = function (props) {
1104
1157
  var arrow = function (next) {
1105
- return props.factory(next.parameters)(next.input, props.definitions, next.explore);
1158
+ return props.factory({
1159
+ parameters: next.parameters,
1160
+ definitions: props.definitions,
1161
+ input: next.input,
1162
+ explore: next.explore,
1163
+ });
1106
1164
  };
1107
1165
  if (props.definitions.every(function (e) { return e.type.recursive === false; }))
1108
1166
  typescript_1.default.factory.createCallExpression(arrow({