typia 7.0.0-dev.20240930 → 7.0.0-dev.20241002

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 (373) hide show
  1. package/lib/executable/TypiaGenerateWizard.js +1 -1
  2. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  3. package/lib/executable/TypiaSetupWizard.js +1 -1
  4. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  5. package/lib/executable/setup/ArgumentParser.d.ts +1 -1
  6. package/lib/executable/setup/ArgumentParser.js +31 -33
  7. package/lib/executable/setup/ArgumentParser.js.map +1 -1
  8. package/lib/executable/setup/FileRetriever.d.ts +5 -2
  9. package/lib/executable/setup/FileRetriever.js +12 -21
  10. package/lib/executable/setup/FileRetriever.js.map +1 -1
  11. package/lib/executable/setup/PackageManager.js +4 -1
  12. package/lib/executable/setup/PackageManager.js.map +1 -1
  13. package/lib/factories/ExpressionFactory.d.ts +14 -7
  14. package/lib/factories/ExpressionFactory.js +26 -34
  15. package/lib/factories/ExpressionFactory.js.map +1 -1
  16. package/lib/factories/IdentifierFactory.d.ts +2 -2
  17. package/lib/factories/IdentifierFactory.js +10 -6
  18. package/lib/factories/IdentifierFactory.js.map +1 -1
  19. package/lib/factories/MetadataCollection.js +4 -1
  20. package/lib/factories/MetadataCollection.js.map +1 -1
  21. package/lib/factories/MetadataCommentTagFactory.js +133 -128
  22. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  23. package/lib/factories/MetadataFactory.js +1 -1
  24. package/lib/factories/MetadataFactory.js.map +1 -1
  25. package/lib/factories/MetadataTypeTagFactory.d.ts +14 -2
  26. package/lib/factories/MetadataTypeTagFactory.js +312 -267
  27. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  28. package/lib/factories/MetadataTypeTagSchemaFactory.d.ts +4 -1
  29. package/lib/factories/MetadataTypeTagSchemaFactory.js +70 -61
  30. package/lib/factories/MetadataTypeTagSchemaFactory.js.map +1 -1
  31. package/lib/factories/NumericRangeFactory.d.ts +2 -2
  32. package/lib/factories/NumericRangeFactory.js +2 -10
  33. package/lib/factories/NumericRangeFactory.js.map +1 -1
  34. package/lib/factories/StatementFactory.d.ts +14 -3
  35. package/lib/factories/StatementFactory.js +16 -8
  36. package/lib/factories/StatementFactory.js.map +1 -1
  37. package/lib/factories/TemplateFactory.js +24 -18
  38. package/lib/factories/TemplateFactory.js.map +1 -1
  39. package/lib/factories/TypeFactory.d.ts +10 -2
  40. package/lib/factories/TypeFactory.js +65 -53
  41. package/lib/factories/TypeFactory.js.map +1 -1
  42. package/lib/factories/internal/metadata/iterate_metadata.js +4 -1
  43. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  44. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js +16 -11
  45. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -1
  46. package/lib/factories/internal/metadata/iterate_metadata_escape.js +5 -1
  47. package/lib/factories/internal/metadata/iterate_metadata_escape.js.map +1 -1
  48. package/lib/factories/internal/metadata/iterate_metadata_function.js.map +1 -1
  49. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +6 -1
  50. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  51. package/lib/factories/internal/metadata/iterate_metadata_map.js +5 -1
  52. package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
  53. package/lib/factories/internal/metadata/iterate_metadata_native.js +11 -3
  54. package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
  55. package/lib/factories/internal/metadata/iterate_metadata_set.js +5 -1
  56. package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
  57. package/lib/index.mjs +25 -25
  58. package/lib/index.mjs.map +1 -1
  59. package/lib/programmers/AssertProgrammer.js +36 -22
  60. package/lib/programmers/AssertProgrammer.js.map +1 -1
  61. package/lib/programmers/CheckerProgrammer.js +316 -251
  62. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  63. package/lib/programmers/FeatureProgrammer.js +34 -20
  64. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  65. package/lib/programmers/IsProgrammer.js +41 -22
  66. package/lib/programmers/IsProgrammer.js.map +1 -1
  67. package/lib/programmers/RandomProgrammer.js +171 -135
  68. package/lib/programmers/RandomProgrammer.js.map +1 -1
  69. package/lib/programmers/TypiaProgrammer.d.ts +2 -2
  70. package/lib/programmers/TypiaProgrammer.js +79 -75
  71. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  72. package/lib/programmers/ValidateProgrammer.js +55 -24
  73. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  74. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +30 -15
  75. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -1
  76. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +16 -13
  77. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -1
  78. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js +11 -8
  79. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js.map +1 -1
  80. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js +8 -2
  81. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js.map +1 -1
  82. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +11 -5
  83. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -1
  84. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +8 -2
  85. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -1
  86. package/lib/programmers/helpers/CloneJoiner.js +13 -4
  87. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  88. package/lib/programmers/helpers/FunctionImporter.js +10 -7
  89. package/lib/programmers/helpers/FunctionImporter.js.map +1 -1
  90. package/lib/programmers/helpers/NotationJoiner.d.ts +2 -1
  91. package/lib/programmers/helpers/NotationJoiner.js +40 -33
  92. package/lib/programmers/helpers/NotationJoiner.js.map +1 -1
  93. package/lib/programmers/helpers/PruneJoiner.js +6 -3
  94. package/lib/programmers/helpers/PruneJoiner.js.map +1 -1
  95. package/lib/programmers/helpers/RandomJoiner.d.ts +1 -1
  96. package/lib/programmers/helpers/RandomJoiner.js +4 -1
  97. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  98. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  99. package/lib/programmers/helpers/StringifyJoinder.js +5 -2
  100. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
  101. package/lib/programmers/helpers/StringifyPredicator.d.ts +1 -1
  102. package/lib/programmers/helpers/StringifyPredicator.js +4 -3
  103. package/lib/programmers/helpers/StringifyPredicator.js.map +1 -1
  104. package/lib/programmers/helpers/UnionExplorer.d.ts +52 -12
  105. package/lib/programmers/helpers/UnionExplorer.js +183 -144
  106. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  107. package/lib/programmers/helpers/UnionPredicator.d.ts +1 -1
  108. package/lib/programmers/helpers/UnionPredicator.js +7 -7
  109. package/lib/programmers/http/HttpAssertFormDataProgrammer.js +8 -2
  110. package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -1
  111. package/lib/programmers/http/HttpAssertHeadersProgrammer.js +8 -2
  112. package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
  113. package/lib/programmers/http/HttpAssertQueryProgrammer.js +8 -2
  114. package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
  115. package/lib/programmers/http/HttpFormDataProgrammer.js +84 -71
  116. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  117. package/lib/programmers/http/HttpHeadersProgrammer.js +76 -69
  118. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  119. package/lib/programmers/http/HttpIsFormDataProgrammer.js +12 -3
  120. package/lib/programmers/http/HttpIsFormDataProgrammer.js.map +1 -1
  121. package/lib/programmers/http/HttpIsHeadersProgrammer.js +12 -3
  122. package/lib/programmers/http/HttpIsHeadersProgrammer.js.map +1 -1
  123. package/lib/programmers/http/HttpIsQueryProgrammer.js +12 -3
  124. package/lib/programmers/http/HttpIsQueryProgrammer.js.map +1 -1
  125. package/lib/programmers/http/HttpParameterProgrammer.js +17 -10
  126. package/lib/programmers/http/HttpParameterProgrammer.js.map +1 -1
  127. package/lib/programmers/http/HttpQueryProgrammer.js +76 -63
  128. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  129. package/lib/programmers/http/HttpValidateFormDataProgrammer.js +8 -2
  130. package/lib/programmers/http/HttpValidateFormDataProgrammer.js.map +1 -1
  131. package/lib/programmers/http/HttpValidateHeadersProgrammer.js +8 -2
  132. package/lib/programmers/http/HttpValidateHeadersProgrammer.js.map +1 -1
  133. package/lib/programmers/http/HttpValidateQueryProgrammer.js +8 -2
  134. package/lib/programmers/http/HttpValidateQueryProgrammer.js.map +1 -1
  135. package/lib/programmers/internal/application_escaped.js +4 -4
  136. package/lib/programmers/internal/application_escaped.js.map +1 -1
  137. package/lib/programmers/internal/application_templates.js +8 -2
  138. package/lib/programmers/internal/application_templates.js.map +1 -1
  139. package/lib/programmers/internal/application_union_discriminator.d.ts +1 -1
  140. package/lib/programmers/internal/application_union_discriminator.js +6 -6
  141. package/lib/programmers/internal/application_union_discriminator.js.map +1 -1
  142. package/lib/programmers/internal/application_v30_object.js +6 -3
  143. package/lib/programmers/internal/application_v30_object.js.map +1 -1
  144. package/lib/programmers/internal/application_v31_object.js +4 -1
  145. package/lib/programmers/internal/application_v31_object.js.map +1 -1
  146. package/lib/programmers/internal/check_array_length.js +21 -26
  147. package/lib/programmers/internal/check_array_length.js.map +1 -1
  148. package/lib/programmers/internal/check_bigint.js +18 -26
  149. package/lib/programmers/internal/check_bigint.js.map +1 -1
  150. package/lib/programmers/internal/check_dynamic_key.d.ts +1 -5
  151. package/lib/programmers/internal/check_dynamic_key.js +109 -91
  152. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  153. package/lib/programmers/internal/check_dynamic_properties.js +92 -91
  154. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  155. package/lib/programmers/internal/check_everything.js +1 -1
  156. package/lib/programmers/internal/check_everything.js.map +1 -1
  157. package/lib/programmers/internal/check_native.js +8 -5
  158. package/lib/programmers/internal/check_native.js.map +1 -1
  159. package/lib/programmers/internal/check_number.js +59 -65
  160. package/lib/programmers/internal/check_number.js.map +1 -1
  161. package/lib/programmers/internal/check_object.js +31 -22
  162. package/lib/programmers/internal/check_object.js.map +1 -1
  163. package/lib/programmers/internal/check_string.js +18 -26
  164. package/lib/programmers/internal/check_string.js.map +1 -1
  165. package/lib/programmers/internal/check_template.js +20 -21
  166. package/lib/programmers/internal/check_template.js.map +1 -1
  167. package/lib/programmers/internal/check_union_array_like.js +86 -53
  168. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  169. package/lib/programmers/internal/decode_union_object.js +59 -49
  170. package/lib/programmers/internal/decode_union_object.js.map +1 -1
  171. package/lib/programmers/internal/feature_object_entries.js +31 -37
  172. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  173. package/lib/programmers/internal/llm_schema_escaped.js +29 -11
  174. package/lib/programmers/internal/llm_schema_escaped.js.map +1 -1
  175. package/lib/programmers/internal/llm_schema_object.js +4 -1
  176. package/lib/programmers/internal/llm_schema_object.js.map +1 -1
  177. package/lib/programmers/internal/metadata_to_pattern.js +44 -41
  178. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  179. package/lib/programmers/internal/postfix_of_tuple.d.ts +1 -1
  180. package/lib/programmers/internal/postfix_of_tuple.js +3 -0
  181. package/lib/programmers/internal/postfix_of_tuple.js.map +1 -1
  182. package/lib/programmers/internal/prune_object_properties.js +7 -4
  183. package/lib/programmers/internal/prune_object_properties.js.map +1 -1
  184. package/lib/programmers/internal/random_custom.js +8 -14
  185. package/lib/programmers/internal/random_custom.js.map +1 -1
  186. package/lib/programmers/internal/stringify_dynamic_properties.js +8 -5
  187. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  188. package/lib/programmers/internal/stringify_regular_properties.js +4 -4
  189. package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
  190. package/lib/programmers/internal/template_to_pattern.js +10 -5
  191. package/lib/programmers/internal/template_to_pattern.js.map +1 -1
  192. package/lib/programmers/internal/wrap_metadata_rest_tuple.d.ts +1 -2
  193. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +3 -0
  194. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  195. package/lib/programmers/json/JsonAssertParseProgrammer.js +8 -2
  196. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  197. package/lib/programmers/json/JsonAssertStringifyProgrammer.js +8 -2
  198. package/lib/programmers/json/JsonAssertStringifyProgrammer.js.map +1 -1
  199. package/lib/programmers/json/JsonIsParseProgrammer.js +8 -2
  200. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  201. package/lib/programmers/json/JsonIsStringifyProgrammer.js +8 -2
  202. package/lib/programmers/json/JsonIsStringifyProgrammer.js.map +1 -1
  203. package/lib/programmers/json/JsonStringifyProgrammer.js +126 -95
  204. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  205. package/lib/programmers/json/JsonValidateParseProgrammer.js +8 -2
  206. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  207. package/lib/programmers/json/JsonValidateStringifyProgrammer.js +12 -3
  208. package/lib/programmers/json/JsonValidateStringifyProgrammer.js.map +1 -1
  209. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +8 -2
  210. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  211. package/lib/programmers/misc/MiscAssertPruneProgrammer.js +12 -3
  212. package/lib/programmers/misc/MiscAssertPruneProgrammer.js.map +1 -1
  213. package/lib/programmers/misc/MiscCloneProgrammer.js +203 -162
  214. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  215. package/lib/programmers/misc/MiscIsCloneProgrammer.js +8 -2
  216. package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
  217. package/lib/programmers/misc/MiscIsPruneProgrammer.js +8 -2
  218. package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -1
  219. package/lib/programmers/misc/MiscPruneProgrammer.js +114 -92
  220. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  221. package/lib/programmers/misc/MiscValidateCloneProgrammer.js +12 -3
  222. package/lib/programmers/misc/MiscValidateCloneProgrammer.js.map +1 -1
  223. package/lib/programmers/misc/MiscValidatePruneProgrammer.js +16 -4
  224. package/lib/programmers/misc/MiscValidatePruneProgrammer.js.map +1 -1
  225. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js +8 -2
  226. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js.map +1 -1
  227. package/lib/programmers/notations/NotationGeneralProgrammer.d.ts +4 -1
  228. package/lib/programmers/notations/NotationGeneralProgrammer.js +209 -145
  229. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  230. package/lib/programmers/notations/NotationIsGeneralProgrammer.js +8 -2
  231. package/lib/programmers/notations/NotationIsGeneralProgrammer.js.map +1 -1
  232. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js +12 -3
  233. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js.map +1 -1
  234. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +8 -2
  235. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  236. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js +8 -2
  237. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js.map +1 -1
  238. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +51 -30
  239. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  240. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +89 -65
  241. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  242. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +12 -3
  243. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
  244. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js +8 -2
  245. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js.map +1 -1
  246. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js +8 -2
  247. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js.map +1 -1
  248. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js +12 -3
  249. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js.map +1 -1
  250. package/lib/transformers/features/llm/LlmApplicationTransformer.js +5 -2
  251. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  252. package/lib/utils/NamingConvention/NamingConvention.js +41 -47
  253. package/lib/utils/NamingConvention/NamingConvention.js.map +1 -1
  254. package/package.json +1 -1
  255. package/src/executable/TypiaGenerateWizard.ts +1 -1
  256. package/src/executable/TypiaSetupWizard.ts +1 -1
  257. package/src/executable/setup/ArgumentParser.ts +27 -28
  258. package/src/executable/setup/FileRetriever.ts +14 -17
  259. package/src/executable/setup/PackageManager.ts +4 -3
  260. package/src/factories/ExpressionFactory.ts +98 -84
  261. package/src/factories/IdentifierFactory.ts +26 -7
  262. package/src/factories/MetadataCollection.ts +4 -1
  263. package/src/factories/MetadataCommentTagFactory.ts +97 -88
  264. package/src/factories/MetadataFactory.ts +2 -1
  265. package/src/factories/MetadataTypeTagFactory.ts +334 -285
  266. package/src/factories/MetadataTypeTagSchemaFactory.ts +75 -52
  267. package/src/factories/NumericRangeFactory.ts +8 -8
  268. package/src/factories/StatementFactory.ts +27 -11
  269. package/src/factories/TemplateFactory.ts +29 -21
  270. package/src/factories/TypeFactory.ts +80 -58
  271. package/src/factories/internal/metadata/iterate_metadata.ts +4 -1
  272. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +6 -4
  273. package/src/factories/internal/metadata/iterate_metadata_escape.ts +5 -3
  274. package/src/factories/internal/metadata/iterate_metadata_function.ts +4 -4
  275. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +6 -3
  276. package/src/factories/internal/metadata/iterate_metadata_map.ts +4 -3
  277. package/src/factories/internal/metadata/iterate_metadata_native.ts +12 -9
  278. package/src/factories/internal/metadata/iterate_metadata_set.ts +5 -1
  279. package/src/programmers/AssertProgrammer.ts +46 -32
  280. package/src/programmers/CheckerProgrammer.ts +295 -261
  281. package/src/programmers/FeatureProgrammer.ts +25 -23
  282. package/src/programmers/IsProgrammer.ts +38 -23
  283. package/src/programmers/RandomProgrammer.ts +55 -39
  284. package/src/programmers/TypiaProgrammer.ts +48 -34
  285. package/src/programmers/ValidateProgrammer.ts +67 -37
  286. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +4 -4
  287. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +4 -4
  288. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +4 -4
  289. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +7 -7
  290. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +14 -8
  291. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +7 -7
  292. package/src/programmers/helpers/CloneJoiner.ts +17 -7
  293. package/src/programmers/helpers/FunctionImporter.ts +12 -11
  294. package/src/programmers/helpers/NotationJoiner.ts +91 -82
  295. package/src/programmers/helpers/ProtobufUtil.ts +2 -2
  296. package/src/programmers/helpers/PruneJoiner.ts +7 -3
  297. package/src/programmers/helpers/RandomJoiner.ts +12 -6
  298. package/src/programmers/helpers/RandomRanger.ts +8 -1
  299. package/src/programmers/helpers/StringifyJoinder.ts +5 -2
  300. package/src/programmers/helpers/StringifyPredicator.ts +4 -3
  301. package/src/programmers/helpers/UnionExplorer.ts +287 -205
  302. package/src/programmers/helpers/UnionPredicator.ts +5 -5
  303. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +8 -2
  304. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +8 -2
  305. package/src/programmers/http/HttpAssertQueryProgrammer.ts +8 -2
  306. package/src/programmers/http/HttpFormDataProgrammer.ts +139 -114
  307. package/src/programmers/http/HttpHeadersProgrammer.ts +150 -121
  308. package/src/programmers/http/HttpIsFormDataProgrammer.ts +12 -6
  309. package/src/programmers/http/HttpIsHeadersProgrammer.ts +12 -6
  310. package/src/programmers/http/HttpIsQueryProgrammer.ts +12 -6
  311. package/src/programmers/http/HttpParameterProgrammer.ts +16 -11
  312. package/src/programmers/http/HttpQueryProgrammer.ts +141 -116
  313. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +8 -2
  314. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +8 -2
  315. package/src/programmers/http/HttpValidateQueryProgrammer.ts +8 -2
  316. package/src/programmers/internal/application_escaped.ts +6 -6
  317. package/src/programmers/internal/application_templates.ts +8 -6
  318. package/src/programmers/internal/application_union_discriminator.ts +6 -6
  319. package/src/programmers/internal/application_v30_object.ts +6 -3
  320. package/src/programmers/internal/application_v31_object.ts +4 -1
  321. package/src/programmers/internal/application_v31_tuple.ts +1 -1
  322. package/src/programmers/internal/check_array_length.ts +31 -30
  323. package/src/programmers/internal/check_bigint.ts +31 -31
  324. package/src/programmers/internal/check_dynamic_key.ts +155 -126
  325. package/src/programmers/internal/check_dynamic_properties.ts +155 -154
  326. package/src/programmers/internal/check_everything.ts +1 -1
  327. package/src/programmers/internal/check_native.ts +11 -5
  328. package/src/programmers/internal/check_number.ts +88 -84
  329. package/src/programmers/internal/check_object.ts +45 -31
  330. package/src/programmers/internal/check_string.ts +31 -30
  331. package/src/programmers/internal/check_template.ts +34 -32
  332. package/src/programmers/internal/check_union_array_like.ts +255 -228
  333. package/src/programmers/internal/decode_union_object.ts +92 -75
  334. package/src/programmers/internal/feature_object_entries.ts +43 -46
  335. package/src/programmers/internal/llm_schema_escaped.ts +36 -13
  336. package/src/programmers/internal/llm_schema_object.ts +4 -1
  337. package/src/programmers/internal/metadata_to_pattern.ts +31 -23
  338. package/src/programmers/internal/postfix_of_tuple.ts +3 -0
  339. package/src/programmers/internal/prune_object_properties.ts +7 -4
  340. package/src/programmers/internal/random_custom.ts +25 -23
  341. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -157
  342. package/src/programmers/internal/stringify_regular_properties.ts +7 -7
  343. package/src/programmers/internal/template_to_pattern.ts +12 -4
  344. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +3 -0
  345. package/src/programmers/json/JsonAssertParseProgrammer.ts +8 -2
  346. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +8 -2
  347. package/src/programmers/json/JsonIsParseProgrammer.ts +8 -2
  348. package/src/programmers/json/JsonIsStringifyProgrammer.ts +8 -2
  349. package/src/programmers/json/JsonStringifyProgrammer.ts +88 -66
  350. package/src/programmers/json/JsonValidateParseProgrammer.ts +8 -2
  351. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +12 -6
  352. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +8 -2
  353. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +12 -3
  354. package/src/programmers/misc/MiscCloneProgrammer.ts +186 -155
  355. package/src/programmers/misc/MiscIsCloneProgrammer.ts +8 -2
  356. package/src/programmers/misc/MiscIsPruneProgrammer.ts +8 -2
  357. package/src/programmers/misc/MiscPruneProgrammer.ts +77 -63
  358. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +12 -6
  359. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +16 -7
  360. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +8 -2
  361. package/src/programmers/notations/NotationGeneralProgrammer.ts +218 -160
  362. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +8 -2
  363. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +12 -6
  364. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +8 -2
  365. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +8 -2
  366. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +48 -46
  367. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +67 -55
  368. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -6
  369. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +8 -2
  370. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +8 -2
  371. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +12 -6
  372. package/src/transformers/features/llm/LlmApplicationTransformer.ts +7 -6
  373. package/src/utils/NamingConvention/NamingConvention.ts +40 -42
@@ -115,19 +115,22 @@ var CheckerProgrammer;
115
115
  .arrays()
116
116
  .filter(function (a) { return a.recursive; })
117
117
  .map(function (type, i) {
118
- return StatementFactory_1.StatementFactory.constant("".concat(props.config.prefix, "a").concat(i), typescript_1.default.factory.createArrowFunction(undefined, undefined, FeatureProgrammer_1.FeatureProgrammer.parameterDeclarations({
119
- config: props.config,
120
- type: TypeFactory_1.TypeFactory.keyword("any"),
121
- input: typescript_1.default.factory.createIdentifier("input"),
122
- }), TypeFactory_1.TypeFactory.keyword("any"), undefined, decode_array_inline(__assign(__assign({}, props), { input: typescript_1.default.factory.createIdentifier("input"), array: MetadataArray_1.MetadataArray.create({
123
- type: type,
124
- tags: [],
125
- }), explore: {
126
- tracable: props.config.trace,
127
- source: "function",
128
- from: "array",
129
- postfix: "",
130
- } }))));
118
+ return StatementFactory_1.StatementFactory.constant({
119
+ name: "".concat(props.config.prefix, "a").concat(i),
120
+ value: typescript_1.default.factory.createArrowFunction(undefined, undefined, FeatureProgrammer_1.FeatureProgrammer.parameterDeclarations({
121
+ config: props.config,
122
+ type: TypeFactory_1.TypeFactory.keyword("any"),
123
+ input: typescript_1.default.factory.createIdentifier("input"),
124
+ }), TypeFactory_1.TypeFactory.keyword("any"), undefined, decode_array_inline(__assign(__assign({}, props), { input: typescript_1.default.factory.createIdentifier("input"), array: MetadataArray_1.MetadataArray.create({
125
+ type: type,
126
+ tags: [],
127
+ }), explore: {
128
+ tracable: props.config.trace,
129
+ source: "function",
130
+ from: "array",
131
+ postfix: "",
132
+ } }))),
133
+ });
131
134
  });
132
135
  };
133
136
  CheckerProgrammer.write_tuple_functions = function (props) {
@@ -135,30 +138,33 @@ var CheckerProgrammer;
135
138
  .tuples()
136
139
  .filter(function (t) { return t.recursive; })
137
140
  .map(function (tuple, i) {
138
- return StatementFactory_1.StatementFactory.constant("".concat(props.config.prefix, "t").concat(i), typescript_1.default.factory.createArrowFunction(undefined, undefined, FeatureProgrammer_1.FeatureProgrammer.parameterDeclarations({
139
- config: props.config,
140
- type: TypeFactory_1.TypeFactory.keyword("any"),
141
- input: typescript_1.default.factory.createIdentifier("input"),
142
- }), TypeFactory_1.TypeFactory.keyword("any"), undefined, decode_tuple_inline({
143
- config: props.config,
144
- context: props.context,
145
- importer: props.importer,
146
- input: typescript_1.default.factory.createIdentifier("input"),
147
- tuple: tuple,
148
- explore: {
149
- tracable: props.config.trace,
150
- source: "function",
151
- from: "array",
152
- postfix: "",
153
- },
154
- })));
141
+ return StatementFactory_1.StatementFactory.constant({
142
+ name: "".concat(props.config.prefix, "t").concat(i),
143
+ value: typescript_1.default.factory.createArrowFunction(undefined, undefined, FeatureProgrammer_1.FeatureProgrammer.parameterDeclarations({
144
+ config: props.config,
145
+ type: TypeFactory_1.TypeFactory.keyword("any"),
146
+ input: typescript_1.default.factory.createIdentifier("input"),
147
+ }), TypeFactory_1.TypeFactory.keyword("any"), undefined, decode_tuple_inline({
148
+ config: props.config,
149
+ context: props.context,
150
+ importer: props.importer,
151
+ input: typescript_1.default.factory.createIdentifier("input"),
152
+ tuple: tuple,
153
+ explore: {
154
+ tracable: props.config.trace,
155
+ source: "function",
156
+ from: "array",
157
+ postfix: "",
158
+ },
159
+ })),
160
+ });
155
161
  });
156
162
  };
157
163
  var configure = function (props) { return ({
158
164
  types: {
159
165
  input: function () { return TypeFactory_1.TypeFactory.keyword("any"); },
160
166
  output: function (type, name) {
161
- return typescript_1.default.factory.createTypePredicateNode(undefined, "input", typescript_1.default.factory.createTypeReferenceNode(name !== null && name !== void 0 ? name : TypeFactory_1.TypeFactory.getFullName(props.context.checker)(type)));
167
+ return typescript_1.default.factory.createTypePredicateNode(undefined, "input", typescript_1.default.factory.createTypeReferenceNode(name !== null && name !== void 0 ? name : TypeFactory_1.TypeFactory.getFullName({ checker: props.context.checker, type: type })));
162
168
  },
163
169
  },
164
170
  trace: props.config.trace,
@@ -220,28 +226,33 @@ var CheckerProgrammer;
220
226
  unionizer: props.config.equals
221
227
  ? function (next) {
222
228
  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);
229
+ return (0, decode_union_object_1.decode_union_object)({
230
+ checker: function (v) {
231
+ return CheckerProgrammer.decode_object({
232
+ config: props.config,
233
+ importer: props.importer,
234
+ object: v.object,
235
+ input: v.input,
236
+ explore: v.explore,
237
+ });
238
+ },
239
+ decoder: function (v) {
240
+ return CheckerProgrammer.decode_object({
241
+ config: props.config,
242
+ importer: props.importer,
243
+ input: v.input,
244
+ object: v.object,
245
+ explore: __assign(__assign({}, v.explore), { tracable: true }),
246
+ });
247
+ },
248
+ success: (_a = props.config.joiner.is) !== null && _a !== void 0 ? _a : (function (expr) { return expr; }),
249
+ escaper: function (v) {
250
+ return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure(v));
251
+ },
252
+ input: next.input,
253
+ objects: next.objects,
254
+ explore: next.explore,
255
+ });
245
256
  }
246
257
  : function (next) {
247
258
  return props.config.combiner({
@@ -392,7 +403,7 @@ var CheckerProgrammer;
392
403
  ? ExpressionFactory_1.ExpressionFactory.number(v)
393
404
  : typescript_1.default.factory.createStringLiteral(v.toString());
394
405
  })),
395
- ])))("has"), undefined, [props.input]),
406
+ ])), "has"), undefined, [props.input]),
396
407
  });
397
408
  }
398
409
  else
@@ -441,7 +452,12 @@ var CheckerProgrammer;
441
452
  binaries.push({
442
453
  expression: props.config.atomist({
443
454
  explore: props.explore,
444
- entry: (0, check_number_1.check_number)(props.context, props.config.numeric)(atom)(props.input),
455
+ entry: (0, check_number_1.check_number)({
456
+ context: props.context,
457
+ numeric: props.config.numeric,
458
+ atomic: atom,
459
+ input: props.input,
460
+ }),
445
461
  input: props.input,
446
462
  }),
447
463
  combined: false,
@@ -450,7 +466,11 @@ var CheckerProgrammer;
450
466
  binaries.push({
451
467
  expression: props.config.atomist({
452
468
  explore: props.explore,
453
- entry: (0, check_bigint_1.check_bigint)(props.context)(atom)(props.input),
469
+ entry: (0, check_bigint_1.check_bigint)({
470
+ context: props.context,
471
+ atomic: atom,
472
+ input: props.input,
473
+ }),
454
474
  input: props.input,
455
475
  }),
456
476
  combined: false,
@@ -459,7 +479,11 @@ var CheckerProgrammer;
459
479
  binaries.push({
460
480
  expression: props.config.atomist({
461
481
  explore: props.explore,
462
- entry: (0, check_string_1.check_string)(props.context)(atom)(props.input),
482
+ entry: (0, check_string_1.check_string)({
483
+ context: props.context,
484
+ atomic: atom,
485
+ input: props.input,
486
+ }),
463
487
  input: props.input,
464
488
  }),
465
489
  combined: false,
@@ -485,7 +509,10 @@ var CheckerProgrammer;
485
509
  binaries.push({
486
510
  expression: props.config.atomist({
487
511
  explore: props.explore,
488
- entry: (0, check_template_1.check_template)(props.metadata.templates)(props.input),
512
+ entry: (0, check_template_1.check_template)({
513
+ templates: props.metadata.templates,
514
+ input: props.input,
515
+ }),
489
516
  input: props.input,
490
517
  }),
491
518
  combined: false,
@@ -495,7 +522,10 @@ var CheckerProgrammer;
495
522
  for (var _j = __values(props.metadata.natives), _k = _j.next(); !_k.done; _k = _j.next()) {
496
523
  var native = _k.value;
497
524
  binaries.push({
498
- expression: (0, check_native_1.check_native)(native)(props.input),
525
+ expression: (0, check_native_1.check_native)({
526
+ type: native,
527
+ input: props.input,
528
+ }),
499
529
  combined: false,
500
530
  });
501
531
  }
@@ -513,7 +543,10 @@ var CheckerProgrammer;
513
543
  if (props.metadata.sets.length) {
514
544
  var install = function (body) {
515
545
  return prepare({
516
- knock: (0, check_native_1.check_native)("Set")(props.input),
546
+ head: (0, check_native_1.check_native)({
547
+ type: "Set",
548
+ input: props.input,
549
+ }),
517
550
  expected: props.metadata.sets
518
551
  .map(function (elem) { return "Set<".concat(elem.getName(), ">"); })
519
552
  .join(" | "),
@@ -536,7 +569,10 @@ var CheckerProgrammer;
536
569
  if (props.metadata.maps.length) {
537
570
  var install = function (body) {
538
571
  return prepare({
539
- knock: (0, check_native_1.check_native)("Map")(props.input),
572
+ head: (0, check_native_1.check_native)({
573
+ type: "Map",
574
+ input: props.input,
575
+ }),
540
576
  expected: props.metadata.maps
541
577
  .map(function (_a) {
542
578
  var key = _a.key, value = _a.value;
@@ -562,7 +598,7 @@ var CheckerProgrammer;
562
598
  if (props.metadata.tuples.length + props.metadata.arrays.length > 0) {
563
599
  var install = function (body) {
564
600
  return prepare({
565
- knock: props.config.atomist({
601
+ head: props.config.atomist({
566
602
  explore: props.explore,
567
603
  entry: {
568
604
  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,12 +667,13 @@ var CheckerProgrammer;
631
667
  // OBJECT
632
668
  if (props.metadata.objects.length > 0)
633
669
  prepare({
634
- knock: ExpressionFactory_1.ExpressionFactory.isObject({
670
+ head: ExpressionFactory_1.ExpressionFactory.isObject({
635
671
  checkNull: true,
636
672
  checkArray: props.metadata.objects.some(function (obj) {
637
673
  return obj.properties.every(function (prop) { return !prop.key.isSoleLiteral() || !prop.value.isRequired(); });
638
674
  }),
639
- })(props.input),
675
+ input: props.input,
676
+ }),
640
677
  expected: props.metadata.objects.map(function (obj) { return obj.name; }).join(" | "),
641
678
  body: explore_objects({
642
679
  config: props.config,
@@ -651,24 +688,24 @@ var CheckerProgrammer;
651
688
  return function (ins) {
652
689
  return ins.body
653
690
  ? {
654
- expression: merger(ins.knock, ins.body),
691
+ expression: merger(ins.head, ins.body),
655
692
  combined: true,
656
693
  }
657
694
  : {
658
- expression: ins.knock,
695
+ expression: ins.head,
659
696
  combined: false,
660
697
  };
661
698
  };
662
699
  };
663
700
  if (instances.length === 1)
664
- binaries.push(transformer(function (pre, body) {
701
+ binaries.push(transformer(function (head, body) {
665
702
  return props.config.combiner({
666
703
  explore: props.explore,
667
704
  logic: "and",
668
705
  input: props.input,
669
- binaries: [pre, body].map(function (expression) { return ({
706
+ binaries: [head, body].map(function (expression) { return ({
670
707
  expression: expression,
671
- combined: expression !== pre,
708
+ combined: expression !== head,
672
709
  }); }),
673
710
  expected: props.metadata.getName(),
674
711
  });
@@ -691,7 +728,10 @@ var CheckerProgrammer;
691
728
  combined: false,
692
729
  expression: props.metadata.escaped.original.size() === 1 &&
693
730
  props.metadata.escaped.original.natives.length === 1
694
- ? (0, check_native_1.check_native)(props.metadata.escaped.original.natives[0])(props.input)
731
+ ? (0, check_native_1.check_native)({
732
+ type: props.metadata.escaped.original.natives[0],
733
+ input: props.input,
734
+ })
695
735
  : typescript_1.default.factory.createLogicalAnd(CheckerProgrammer.decode({
696
736
  context: props.context,
697
737
  config: props.config,
@@ -763,7 +803,11 @@ var CheckerProgrammer;
763
803
  }));
764
804
  };
765
805
  var decode_array_inline = function (props) {
766
- var length = (0, check_array_length_1.check_array_length)(props.context)(props.array)(props.input);
806
+ var length = (0, check_array_length_1.check_array_length)({
807
+ context: props.context,
808
+ array: props.array,
809
+ input: props.input,
810
+ });
767
811
  var main = FeatureProgrammer_1.FeatureProgrammer.decode_array({
768
812
  config: {
769
813
  prefix: props.config.prefix,
@@ -821,7 +865,7 @@ var CheckerProgrammer;
821
865
  config: props.config,
822
866
  context: props.context,
823
867
  importer: props.importer,
824
- input: typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(props.input)("slice"), undefined, [ExpressionFactory_1.ExpressionFactory.number(props.tuple.elements.length - 1)]),
868
+ input: typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(props.input, "slice"), undefined, [ExpressionFactory_1.ExpressionFactory.number(props.tuple.elements.length - 1)]),
825
869
  metadata: (0, wrap_metadata_rest_tuple_1.wrap_metadata_rest_tuple)(props.tuple.elements.at(-1).rest),
826
870
  explore: __assign(__assign({}, props.explore), { start: props.tuple.elements.length - 1 }),
827
871
  })
@@ -869,7 +913,7 @@ var CheckerProgrammer;
869
913
  };
870
914
  var decode_escaped = function (props) {
871
915
  return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createParenthesizedExpression(typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("input", TypeFactory_1.TypeFactory.keyword("any"))], undefined, undefined, CheckerProgrammer.decode(__assign(__assign({}, props), { input: typescript_1.default.factory.createIdentifier("input") })))), undefined, [
872
- typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(props.input)("toJSON"), undefined, []),
916
+ typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(props.input, "toJSON"), undefined, []),
873
917
  ]);
874
918
  };
875
919
  /* -----------------------------------------------------------
@@ -877,152 +921,164 @@ var CheckerProgrammer;
877
921
  ----------------------------------------------------------- */
878
922
  var explore_sets = function (props) {
879
923
  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({
924
+ config: {
925
+ checker: function (v) {
926
+ return CheckerProgrammer.decode({
958
927
  context: props.context,
959
928
  config: props.config,
960
929
  importer: props.importer,
961
- input: input,
962
- tuple: tuple,
963
- explore: explore,
930
+ input: v.input,
931
+ metadata: v.definition,
932
+ explore: v.explore,
964
933
  });
965
934
  },
966
- decoder: function (input, tuple, explore) {
967
- return decode_tuple({
968
- context: props.context,
935
+ decoder: function (v) {
936
+ return decode_array({
969
937
  config: props.config,
938
+ context: props.context,
970
939
  importer: props.importer,
971
- tuple: tuple,
972
- input: input,
973
- explore: explore,
940
+ array: v.definition,
941
+ input: v.input,
942
+ explore: v.explore,
974
943
  });
975
944
  },
976
945
  empty: props.config.success,
977
946
  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
- }));
947
+ failure: function (v) {
948
+ return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure(v));
984
949
  },
985
- }),
986
- definitions: props.tuples,
950
+ },
951
+ parameters: [],
987
952
  input: props.input,
953
+ sets: props.sets,
988
954
  explore: props.explore,
989
- });
955
+ }), undefined, undefined);
990
956
  };
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({
957
+ var explore_maps = function (props) {
958
+ return typescript_1.default.factory.createCallExpression(UnionExplorer_1.UnionExplorer.map({
959
+ config: {
960
+ checker: function (v) {
961
+ return typescript_1.default.factory.createLogicalAnd(CheckerProgrammer.decode({
962
+ config: props.config,
998
963
  context: props.context,
964
+ importer: props.importer,
965
+ input: typescript_1.default.factory.createElementAccessExpression(v.input, 0),
966
+ metadata: v.definition[0],
967
+ explore: __assign(__assign({}, v.explore), { postfix: "".concat(v.explore.postfix, "[0]") }),
968
+ }), CheckerProgrammer.decode({
999
969
  config: props.config,
970
+ context: props.context,
1000
971
  importer: props.importer,
1001
- metadata: metadata,
1002
- input: input,
1003
- explore: explore,
1004
- });
972
+ input: typescript_1.default.factory.createElementAccessExpression(v.input, 1),
973
+ metadata: v.definition[1],
974
+ explore: __assign(__assign({}, v.explore), { postfix: "".concat(v.explore.postfix, "[1]") }),
975
+ }));
1005
976
  },
1006
- decoder: function (input, array, explore) {
977
+ decoder: function (v) {
1007
978
  return decode_array({
1008
979
  context: props.context,
1009
980
  config: props.config,
1010
981
  importer: props.importer,
1011
- array: array,
1012
- input: input,
1013
- explore: explore,
982
+ array: v.definition,
983
+ input: v.input,
984
+ explore: v.explore,
1014
985
  });
1015
986
  },
1016
987
  empty: props.config.success,
1017
988
  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
- }));
989
+ failure: function (v) {
990
+ return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure(v));
1024
991
  },
1025
- }),
992
+ },
993
+ parameters: [],
994
+ input: props.input,
995
+ maps: props.maps,
996
+ explore: props.explore,
997
+ }), undefined, undefined);
998
+ };
999
+ var explore_tuples = function (props) {
1000
+ return explore_array_like_union_types({
1001
+ config: props.config,
1002
+ importer: props.importer,
1003
+ factory: function (next) {
1004
+ return UnionExplorer_1.UnionExplorer.tuple({
1005
+ config: {
1006
+ checker: function (v) {
1007
+ return decode_tuple({
1008
+ context: props.context,
1009
+ config: props.config,
1010
+ importer: props.importer,
1011
+ input: v.input,
1012
+ tuple: v.definition,
1013
+ explore: v.explore,
1014
+ });
1015
+ },
1016
+ decoder: function (v) {
1017
+ return decode_tuple({
1018
+ context: props.context,
1019
+ config: props.config,
1020
+ importer: props.importer,
1021
+ tuple: v.definition,
1022
+ input: v.input,
1023
+ explore: v.explore,
1024
+ });
1025
+ },
1026
+ empty: props.config.success,
1027
+ success: props.config.success,
1028
+ failure: function (v) {
1029
+ return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure(v));
1030
+ },
1031
+ },
1032
+ parameters: next.parameters,
1033
+ tuples: next.definitions,
1034
+ input: next.input,
1035
+ explore: next.explore,
1036
+ });
1037
+ },
1038
+ definitions: props.tuples,
1039
+ input: props.input,
1040
+ explore: props.explore,
1041
+ });
1042
+ };
1043
+ var explore_arrays = function (props) {
1044
+ return explore_array_like_union_types({
1045
+ config: props.config,
1046
+ importer: props.importer,
1047
+ factory: function (next) {
1048
+ return UnionExplorer_1.UnionExplorer.array({
1049
+ config: {
1050
+ checker: function (v) {
1051
+ return CheckerProgrammer.decode({
1052
+ context: props.context,
1053
+ config: props.config,
1054
+ importer: props.importer,
1055
+ metadata: v.definition,
1056
+ input: v.input,
1057
+ explore: v.explore,
1058
+ });
1059
+ },
1060
+ decoder: function (v) {
1061
+ return decode_array({
1062
+ context: props.context,
1063
+ config: props.config,
1064
+ importer: props.importer,
1065
+ array: v.definition,
1066
+ input: v.input,
1067
+ explore: v.explore,
1068
+ });
1069
+ },
1070
+ empty: props.config.success,
1071
+ success: props.config.success,
1072
+ failure: function (v) {
1073
+ return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure(v));
1074
+ },
1075
+ },
1076
+ parameters: next.parameters,
1077
+ arrays: next.definitions,
1078
+ input: next.input,
1079
+ explore: next.explore,
1080
+ });
1081
+ },
1026
1082
  definitions: props.arrays,
1027
1083
  input: props.input,
1028
1084
  explore: props.explore,
@@ -1032,69 +1088,73 @@ var CheckerProgrammer;
1032
1088
  return explore_array_like_union_types({
1033
1089
  config: props.config,
1034
1090
  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;
1091
+ factory: function (next) {
1092
+ return UnionExplorer_1.UnionExplorer.array_or_tuple({
1093
+ config: {
1094
+ checker: function (v) {
1095
+ return v.definition instanceof MetadataTuple_1.MetadataTuple
1096
+ ? decode_tuple({
1097
+ config: props.config,
1098
+ context: props.context,
1099
+ importer: props.importer,
1100
+ input: v.input,
1101
+ tuple: v.definition,
1102
+ explore: v.explore,
1054
1103
  })
1055
- .join(" | "),
1056
- expression: CheckerProgrammer.decode({
1104
+ : props.config.atomist({
1105
+ explore: v.explore,
1106
+ entry: {
1107
+ expected: props.definitions
1108
+ .map(function (elem) {
1109
+ return elem instanceof MetadataArray_1.MetadataArray
1110
+ ? elem.getName()
1111
+ : elem.type.name;
1112
+ })
1113
+ .join(" | "),
1114
+ expression: CheckerProgrammer.decode({
1115
+ importer: props.importer,
1116
+ context: props.context,
1117
+ config: props.config,
1118
+ metadata: v.definition,
1119
+ input: v.input,
1120
+ explore: v.explore,
1121
+ }),
1122
+ conditions: [],
1123
+ },
1124
+ input: v.container,
1125
+ });
1126
+ },
1127
+ decoder: function (v) {
1128
+ return v.definition instanceof MetadataTuple_1.MetadataTuple
1129
+ ? decode_tuple({
1130
+ context: props.context,
1131
+ config: props.config,
1057
1132
  importer: props.importer,
1133
+ input: v.input,
1134
+ tuple: v.definition,
1135
+ explore: v.explore,
1136
+ })
1137
+ : decode_array({
1058
1138
  context: props.context,
1059
1139
  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
- }),
1140
+ importer: props.importer,
1141
+ input: v.input,
1142
+ array: v.definition,
1143
+ explore: v.explore,
1144
+ });
1145
+ },
1146
+ empty: props.config.success,
1147
+ success: props.config.success,
1148
+ failure: function (v) {
1149
+ return typescript_1.default.factory.createReturnStatement(props.config.joiner.failure(v));
1150
+ },
1151
+ },
1152
+ parameters: next.parameters,
1153
+ definitions: next.definitions,
1154
+ input: next.input,
1155
+ explore: next.explore,
1156
+ });
1157
+ },
1098
1158
  input: props.input,
1099
1159
  definitions: props.definitions,
1100
1160
  explore: props.explore,
@@ -1102,7 +1162,12 @@ var CheckerProgrammer;
1102
1162
  };
1103
1163
  var explore_array_like_union_types = function (props) {
1104
1164
  var arrow = function (next) {
1105
- return props.factory(next.parameters)(next.input, props.definitions, next.explore);
1165
+ return props.factory({
1166
+ parameters: next.parameters,
1167
+ definitions: props.definitions,
1168
+ input: next.input,
1169
+ explore: next.explore,
1170
+ });
1106
1171
  };
1107
1172
  if (props.definitions.every(function (e) { return e.type.recursive === false; }))
1108
1173
  typescript_1.default.factory.createCallExpression(arrow({