typia 5.0.0-dev.20230823-2 → 5.0.0-dev.20230827

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 (424) hide show
  1. package/README.md +1 -2
  2. package/lib/IRandomGenerator.d.ts +4 -3
  3. package/lib/factories/ExpressionFactory.d.ts +3 -1
  4. package/lib/factories/ExpressionFactory.js +25 -1
  5. package/lib/factories/ExpressionFactory.js.map +1 -1
  6. package/lib/factories/IdentifierFactory.d.ts +2 -1
  7. package/lib/factories/IdentifierFactory.js +11 -0
  8. package/lib/factories/IdentifierFactory.js.map +1 -1
  9. package/lib/factories/LiteralFactory.js +6 -2
  10. package/lib/factories/LiteralFactory.js.map +1 -1
  11. package/lib/factories/MetadataCollection.d.ts +7 -7
  12. package/lib/factories/MetadataCollection.js +4 -5
  13. package/lib/factories/MetadataCollection.js.map +1 -1
  14. package/lib/factories/MetadataCommentTagFactory.js +532 -0
  15. package/lib/factories/MetadataCommentTagFactory.js.map +1 -0
  16. package/lib/factories/MetadataTypeTagFactory.d.ts +6 -0
  17. package/lib/factories/MetadataTypeTagFactory.js +207 -0
  18. package/lib/factories/MetadataTypeTagFactory.js.map +1 -0
  19. package/lib/factories/NumericRangeFactory.d.ts +6 -0
  20. package/lib/factories/NumericRangeFactory.js +34 -0
  21. package/lib/factories/NumericRangeFactory.js.map +1 -0
  22. package/lib/factories/ProtobufFactory.js +48 -16
  23. package/lib/factories/ProtobufFactory.js.map +1 -1
  24. package/lib/factories/internal/metadata/emend_metadata_atomics.js +12 -6
  25. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  26. package/lib/factories/internal/metadata/emplace_metadata_alias.js +1 -13
  27. package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -1
  28. package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +5 -0
  29. package/lib/factories/internal/metadata/{emplace_metadata_array.js → emplace_metadata_array_type.js} +4 -4
  30. package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -0
  31. package/lib/factories/internal/metadata/emplace_metadata_object.js +0 -1
  32. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  33. package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +2 -2
  34. package/lib/factories/internal/metadata/iterate_metadata_array.js +7 -3
  35. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
  36. package/lib/factories/internal/metadata/iterate_metadata_atomic.js +2 -1
  37. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  38. package/lib/factories/internal/metadata/iterate_metadata_collection.js +20 -12
  39. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  40. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +2 -0
  41. package/lib/factories/internal/metadata/{iterate_metadata_tag.js → iterate_metadata_comment_tags.js} +7 -8
  42. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -0
  43. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +140 -16
  44. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  45. package/lib/factories/internal/metadata/iterate_metadata_object.js +0 -7
  46. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  47. package/lib/factories/internal/metadata/iterate_metadata_sort.js +2 -2
  48. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  49. package/lib/factories/internal/metadata/iterate_metadata_tuple.js +6 -2
  50. package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
  51. package/lib/functional/$any.js +2 -1
  52. package/lib/functional/$any.js.map +1 -1
  53. package/lib/functional/$clone.d.ts +2 -0
  54. package/lib/functional/$clone.js +8 -0
  55. package/lib/functional/$clone.js.map +1 -0
  56. package/lib/functional/Namespace.js +0 -16
  57. package/lib/functional/Namespace.js.map +1 -1
  58. package/lib/module.d.ts +2 -39
  59. package/lib/module.js +3 -17
  60. package/lib/module.js.map +1 -1
  61. package/lib/programmers/AssertProgrammer.js +28 -10
  62. package/lib/programmers/AssertProgrammer.js.map +1 -1
  63. package/lib/programmers/CheckerProgrammer.js +90 -68
  64. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  65. package/lib/programmers/FeatureProgrammer.d.ts +2 -4
  66. package/lib/programmers/FeatureProgrammer.js +6 -6
  67. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  68. package/lib/programmers/IsProgrammer.d.ts +1 -1
  69. package/lib/programmers/IsProgrammer.js +32 -21
  70. package/lib/programmers/IsProgrammer.js.map +1 -1
  71. package/lib/programmers/RandomProgrammer.js +187 -156
  72. package/lib/programmers/RandomProgrammer.js.map +1 -1
  73. package/lib/programmers/ValidateProgrammer.js +28 -10
  74. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  75. package/lib/programmers/helpers/AtomicPredicator.js +2 -2
  76. package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
  77. package/lib/programmers/helpers/CloneJoiner.js +10 -2
  78. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  79. package/lib/programmers/helpers/ICheckEntry.d.ts +4 -3
  80. package/lib/programmers/helpers/ProtobufUtil.d.ts +6 -2
  81. package/lib/programmers/helpers/ProtobufUtil.js +175 -17
  82. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  83. package/lib/programmers/helpers/RandomJoiner.d.ts +3 -5
  84. package/lib/programmers/helpers/RandomJoiner.js +7 -10
  85. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  86. package/lib/programmers/helpers/RandomRanger.d.ts +5 -6
  87. package/lib/programmers/helpers/RandomRanger.js +13 -33
  88. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  89. package/lib/programmers/helpers/UnionExplorer.d.ts +7 -8
  90. package/lib/programmers/helpers/UnionExplorer.js +46 -35
  91. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  92. package/lib/programmers/internal/application_alias.js +0 -1
  93. package/lib/programmers/internal/application_alias.js.map +1 -1
  94. package/lib/programmers/internal/application_array.js +60 -20
  95. package/lib/programmers/internal/application_array.js.map +1 -1
  96. package/lib/programmers/internal/application_default_string.js +2 -2
  97. package/lib/programmers/internal/application_default_string.js.map +1 -1
  98. package/lib/programmers/internal/application_number.js +95 -69
  99. package/lib/programmers/internal/application_number.js.map +1 -1
  100. package/lib/programmers/internal/application_object.js +0 -3
  101. package/lib/programmers/internal/application_object.js.map +1 -1
  102. package/lib/programmers/internal/application_resolved.js +2 -2
  103. package/lib/programmers/internal/application_resolved.js.map +1 -1
  104. package/lib/programmers/internal/application_schema.js +39 -22
  105. package/lib/programmers/internal/application_schema.js.map +1 -1
  106. package/lib/programmers/internal/application_string.js +56 -22
  107. package/lib/programmers/internal/application_string.js.map +1 -1
  108. package/lib/programmers/internal/application_tuple.js +10 -9
  109. package/lib/programmers/internal/application_tuple.js.map +1 -1
  110. package/lib/programmers/internal/check_array_length.js +25 -25
  111. package/lib/programmers/internal/check_array_length.js.map +1 -1
  112. package/lib/programmers/internal/check_bigint.js +20 -109
  113. package/lib/programmers/internal/check_bigint.js.map +1 -1
  114. package/lib/programmers/internal/check_dynamic_properties.js +1 -1
  115. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  116. package/lib/programmers/internal/check_number.js +57 -147
  117. package/lib/programmers/internal/check_number.js.map +1 -1
  118. package/lib/programmers/internal/check_string.js +21 -33
  119. package/lib/programmers/internal/check_string.js.map +1 -1
  120. package/lib/programmers/internal/check_template.js +31 -49
  121. package/lib/programmers/internal/check_template.js.map +1 -1
  122. package/lib/programmers/internal/check_union_array_like.js +7 -6
  123. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  124. package/lib/programmers/internal/feature_object_entries.js +1 -1
  125. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  126. package/lib/programmers/internal/metadata_to_pattern.js +4 -4
  127. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  128. package/lib/programmers/internal/random_custom.js +2 -2
  129. package/lib/programmers/internal/random_custom.js.map +1 -1
  130. package/lib/programmers/internal/stringify_dynamic_properties.js +2 -1
  131. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  132. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +9 -5
  133. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  134. package/lib/programmers/json/JsonStringifyProgrammer.js +43 -32
  135. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  136. package/lib/programmers/misc/MiscCloneProgrammer.js +21 -17
  137. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  138. package/lib/programmers/{IsPruneProgrammer.d.ts → misc/MiscIsPruneProgrammer.d.ts} +2 -2
  139. package/lib/programmers/{IsPruneProgrammer.js → misc/MiscIsPruneProgrammer.js} +11 -11
  140. package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -0
  141. package/lib/programmers/misc/MiscLiteralsProgrammer.js +2 -2
  142. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  143. package/lib/programmers/misc/MiscPruneProgrammer.js +21 -17
  144. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  145. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +29 -49
  146. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  147. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +138 -65
  148. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  149. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +59 -85
  150. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  151. package/lib/schemas/json/IJsonSchema.d.ts +10 -38
  152. package/lib/schemas/metadata/IMetadata.d.ts +11 -4
  153. package/lib/schemas/metadata/IMetadataAlias.d.ts +0 -2
  154. package/lib/schemas/metadata/IMetadataArray.d.ts +4 -6
  155. package/lib/schemas/metadata/IMetadataArrayType.d.ts +8 -0
  156. package/lib/{CustomValidatorMap.js → schemas/metadata/IMetadataArrayType.js} +1 -1
  157. package/lib/schemas/metadata/IMetadataArrayType.js.map +1 -0
  158. package/lib/schemas/metadata/IMetadataAtomic.d.ts +5 -0
  159. package/lib/schemas/metadata/IMetadataAtomic.js +3 -0
  160. package/lib/schemas/metadata/IMetadataAtomic.js.map +1 -0
  161. package/lib/schemas/metadata/IMetadataCollection.d.ts +4 -4
  162. package/lib/schemas/metadata/IMetadataProperty.d.ts +0 -2
  163. package/lib/schemas/metadata/IMetadataTuple.d.ts +4 -6
  164. package/lib/schemas/metadata/IMetadataTupleType.d.ts +8 -0
  165. package/lib/schemas/metadata/IMetadataTupleType.js +3 -0
  166. package/lib/schemas/metadata/IMetadataTupleType.js.map +1 -0
  167. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +8 -0
  168. package/lib/schemas/metadata/IMetadataTypeTag.js +3 -0
  169. package/lib/schemas/metadata/IMetadataTypeTag.js.map +1 -0
  170. package/lib/schemas/metadata/Metadata.d.ts +2 -2
  171. package/lib/schemas/metadata/Metadata.js +219 -159
  172. package/lib/schemas/metadata/Metadata.js.map +1 -1
  173. package/lib/schemas/metadata/MetadataAlias.d.ts +0 -2
  174. package/lib/schemas/metadata/MetadataAlias.js +0 -3
  175. package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
  176. package/lib/schemas/metadata/MetadataArray.d.ts +8 -6
  177. package/lib/schemas/metadata/MetadataArray.js +48 -19
  178. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  179. package/lib/schemas/metadata/MetadataArrayType.d.ts +14 -0
  180. package/lib/schemas/metadata/MetadataArrayType.js +36 -0
  181. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -0
  182. package/lib/schemas/metadata/MetadataAtomic.d.ts +9 -0
  183. package/lib/schemas/metadata/MetadataAtomic.js +59 -0
  184. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -0
  185. package/lib/schemas/metadata/MetadataProperty.d.ts +0 -2
  186. package/lib/schemas/metadata/MetadataProperty.js +0 -3
  187. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  188. package/lib/schemas/metadata/MetadataTuple.d.ts +8 -8
  189. package/lib/schemas/metadata/MetadataTuple.js +4 -19
  190. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  191. package/lib/schemas/metadata/MetadataTupleType.d.ts +13 -0
  192. package/lib/schemas/metadata/MetadataTupleType.js +40 -0
  193. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -0
  194. package/lib/tags/ExclusiveMaximum.d.ts +10 -0
  195. package/lib/tags/ExclusiveMaximum.js +3 -0
  196. package/lib/tags/ExclusiveMaximum.js.map +1 -0
  197. package/lib/tags/ExclusiveMinimum.d.ts +10 -0
  198. package/lib/tags/ExclusiveMinimum.js +3 -0
  199. package/lib/tags/ExclusiveMinimum.js.map +1 -0
  200. package/lib/tags/Format.d.ts +8 -0
  201. package/lib/{schemas/metadata/ICommentTag.js → tags/Format.js} +1 -1
  202. package/lib/tags/Format.js.map +1 -0
  203. package/lib/tags/MaxItems.d.ts +8 -0
  204. package/lib/{schemas/metadata/IMetadataTag.js → tags/MaxItems.js} +1 -1
  205. package/lib/tags/MaxItems.js.map +1 -0
  206. package/lib/tags/MaxLength.d.ts +8 -0
  207. package/lib/tags/MaxLength.js +3 -0
  208. package/lib/tags/MaxLength.js.map +1 -0
  209. package/lib/tags/Maximum.d.ts +10 -0
  210. package/lib/tags/Maximum.js +3 -0
  211. package/lib/tags/Maximum.js.map +1 -0
  212. package/lib/tags/MinItems.d.ts +8 -0
  213. package/lib/tags/MinItems.js +3 -0
  214. package/lib/tags/MinItems.js.map +1 -0
  215. package/lib/tags/MinLength.d.ts +8 -0
  216. package/lib/tags/MinLength.js +3 -0
  217. package/lib/tags/MinLength.js.map +1 -0
  218. package/lib/tags/Minimum.d.ts +10 -0
  219. package/lib/tags/Minimum.js +3 -0
  220. package/lib/tags/Minimum.js.map +1 -0
  221. package/lib/tags/MultipleOf.d.ts +10 -0
  222. package/lib/tags/MultipleOf.js +3 -0
  223. package/lib/tags/MultipleOf.js.map +1 -0
  224. package/lib/tags/Pattern.d.ts +7 -0
  225. package/lib/tags/Pattern.js +3 -0
  226. package/lib/tags/Pattern.js.map +1 -0
  227. package/lib/tags/TagBase.d.ts +14 -0
  228. package/lib/tags/TagBase.js +3 -0
  229. package/lib/tags/TagBase.js.map +1 -0
  230. package/lib/tags/Type.d.ts +14 -0
  231. package/lib/tags/Type.js +3 -0
  232. package/lib/tags/Type.js.map +1 -0
  233. package/lib/tags/index.d.ts +13 -0
  234. package/lib/tags/index.js +30 -0
  235. package/lib/tags/index.js.map +1 -0
  236. package/lib/transformers/FileTransformer.d.ts +1 -1
  237. package/lib/transformers/FileTransformer.js +15 -2
  238. package/lib/transformers/FileTransformer.js.map +1 -1
  239. package/lib/transformers/IProject.d.ts +1 -0
  240. package/lib/transformers/features/json/JsonApplicationTransformer.js +4 -2
  241. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  242. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js +2 -2
  243. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js.map +1 -1
  244. package/lib/transformers/features/misc/MiscIsPruneTransformer.js +2 -2
  245. package/lib/transformers/features/misc/MiscIsPruneTransformer.js.map +1 -1
  246. package/lib/typings/ProtobufAtomic.d.ts +5 -0
  247. package/lib/typings/ProtobufAtomic.js +3 -0
  248. package/lib/typings/ProtobufAtomic.js.map +1 -0
  249. package/package.json +2 -2
  250. package/src/IRandomGenerator.ts +4 -3
  251. package/src/factories/ExpressionFactory.ts +46 -2
  252. package/src/factories/IdentifierFactory.ts +15 -0
  253. package/src/factories/LiteralFactory.ts +10 -3
  254. package/src/factories/MetadataCollection.ts +18 -13
  255. package/src/factories/MetadataCommentTagFactory.ts +583 -0
  256. package/src/factories/MetadataTypeTagFactory.ts +263 -0
  257. package/src/factories/NumericRangeFactory.ts +33 -0
  258. package/src/factories/ProtobufFactory.ts +34 -18
  259. package/src/factories/internal/metadata/emend_metadata_atomics.ts +12 -5
  260. package/src/factories/internal/metadata/emplace_metadata_alias.ts +0 -6
  261. package/src/factories/internal/metadata/{emplace_metadata_array.ts → emplace_metadata_array_type.ts} +3 -3
  262. package/src/factories/internal/metadata/emplace_metadata_object.ts +0 -1
  263. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +2 -2
  264. package/src/factories/internal/metadata/iterate_metadata_array.ts +13 -5
  265. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +7 -4
  266. package/src/factories/internal/metadata/iterate_metadata_collection.ts +23 -16
  267. package/src/factories/internal/metadata/{iterate_metadata_tag.ts → iterate_metadata_comment_tags.ts} +4 -8
  268. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +113 -16
  269. package/src/factories/internal/metadata/iterate_metadata_object.ts +10 -10
  270. package/src/factories/internal/metadata/iterate_metadata_sort.ts +2 -2
  271. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +12 -4
  272. package/src/functional/$any.ts +3 -1
  273. package/src/functional/$clone.ts +4 -0
  274. package/src/functional/Namespace.ts +0 -16
  275. package/src/module.ts +2 -55
  276. package/src/programmers/AssertProgrammer.ts +57 -21
  277. package/src/programmers/CheckerProgrammer.ts +81 -123
  278. package/src/programmers/FeatureProgrammer.ts +9 -31
  279. package/src/programmers/IsProgrammer.ts +53 -42
  280. package/src/programmers/RandomProgrammer.ts +242 -239
  281. package/src/programmers/ValidateProgrammer.ts +60 -21
  282. package/src/programmers/helpers/AtomicPredicator.ts +2 -2
  283. package/src/programmers/helpers/CloneJoiner.ts +57 -20
  284. package/src/programmers/helpers/ICheckEntry.ts +4 -3
  285. package/src/programmers/helpers/ProtobufUtil.ts +113 -17
  286. package/src/programmers/helpers/RandomJoiner.ts +11 -33
  287. package/src/programmers/helpers/RandomRanger.ts +16 -51
  288. package/src/programmers/helpers/UnionExplorer.ts +46 -51
  289. package/src/programmers/internal/application_alias.ts +0 -1
  290. package/src/programmers/internal/application_array.ts +33 -10
  291. package/src/programmers/internal/application_default_string.ts +6 -2
  292. package/src/programmers/internal/application_number.ts +76 -70
  293. package/src/programmers/internal/application_object.ts +0 -3
  294. package/src/programmers/internal/application_resolved.ts +2 -2
  295. package/src/programmers/internal/application_schema.ts +38 -20
  296. package/src/programmers/internal/application_string.ts +33 -27
  297. package/src/programmers/internal/application_tuple.ts +12 -11
  298. package/src/programmers/internal/check_array_length.ts +34 -28
  299. package/src/programmers/internal/check_bigint.ts +26 -91
  300. package/src/programmers/internal/check_dynamic_properties.ts +1 -2
  301. package/src/programmers/internal/check_number.ts +83 -236
  302. package/src/programmers/internal/check_string.ts +37 -17
  303. package/src/programmers/internal/check_template.ts +17 -12
  304. package/src/programmers/internal/check_union_array_like.ts +4 -18
  305. package/src/programmers/internal/feature_object_entries.ts +12 -18
  306. package/src/programmers/internal/metadata_to_pattern.ts +4 -4
  307. package/src/programmers/internal/random_custom.ts +3 -3
  308. package/src/programmers/internal/stringify_dynamic_properties.ts +1 -1
  309. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +9 -5
  310. package/src/programmers/json/JsonStringifyProgrammer.ts +46 -41
  311. package/src/programmers/misc/MiscCloneProgrammer.ts +23 -27
  312. package/src/programmers/{IsPruneProgrammer.ts → misc/MiscIsPruneProgrammer.ts} +7 -7
  313. package/src/programmers/misc/MiscLiteralsProgrammer.ts +2 -2
  314. package/src/programmers/misc/MiscPruneProgrammer.ts +24 -24
  315. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +40 -74
  316. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +154 -99
  317. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +6 -36
  318. package/src/schemas/json/IJsonSchema.ts +11 -38
  319. package/src/schemas/metadata/IMetadata.ts +11 -5
  320. package/src/schemas/metadata/IMetadataAlias.ts +0 -2
  321. package/src/schemas/metadata/IMetadataArray.ts +4 -7
  322. package/src/schemas/metadata/IMetadataArrayType.ts +10 -0
  323. package/src/schemas/metadata/IMetadataAtomic.ts +6 -0
  324. package/src/schemas/metadata/IMetadataCollection.ts +4 -4
  325. package/src/schemas/metadata/IMetadataDictionary.ts +4 -4
  326. package/src/schemas/metadata/IMetadataProperty.ts +0 -2
  327. package/src/schemas/metadata/IMetadataTuple.ts +4 -7
  328. package/src/schemas/metadata/IMetadataTupleType.ts +10 -0
  329. package/src/schemas/metadata/IMetadataTypeTag.ts +8 -0
  330. package/src/schemas/metadata/Metadata.ts +121 -70
  331. package/src/schemas/metadata/MetadataAlias.ts +0 -5
  332. package/src/schemas/metadata/MetadataArray.ts +28 -34
  333. package/src/schemas/metadata/MetadataArrayType.ts +57 -0
  334. package/src/schemas/metadata/MetadataAtomic.ts +42 -0
  335. package/src/schemas/metadata/MetadataProperty.ts +0 -5
  336. package/src/schemas/metadata/MetadataTuple.ts +9 -35
  337. package/src/schemas/metadata/MetadataTupleType.ts +67 -0
  338. package/src/tags/ExclusiveMaximum.ts +13 -0
  339. package/src/tags/ExclusiveMinimum.ts +13 -0
  340. package/src/tags/Format.ts +30 -0
  341. package/src/tags/MaxItems.ts +9 -0
  342. package/src/tags/MaxLength.ts +9 -0
  343. package/src/tags/Maximum.ts +13 -0
  344. package/src/tags/MinItems.ts +9 -0
  345. package/src/tags/MinLength.ts +9 -0
  346. package/src/tags/Minimum.ts +13 -0
  347. package/src/tags/MultipleOf.ts +15 -0
  348. package/src/tags/Pattern.ts +8 -0
  349. package/src/tags/TagBase.ts +22 -0
  350. package/src/tags/Type.ts +27 -0
  351. package/src/tags/index.ts +13 -0
  352. package/src/transformers/FileTransformer.ts +6 -6
  353. package/src/transformers/IProject.ts +1 -0
  354. package/src/transformers/features/json/JsonApplicationTransformer.ts +3 -2
  355. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +2 -2
  356. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +2 -2
  357. package/src/typings/Atomic.ts +1 -0
  358. package/src/typings/ProtobufAtomic.ts +19 -0
  359. package/lib/CustomValidatorMap.d.ts +0 -110
  360. package/lib/CustomValidatorMap.js.map +0 -1
  361. package/lib/factories/MetadataTagFactory.d.ts +0 -6
  362. package/lib/factories/MetadataTagFactory.js +0 -310
  363. package/lib/factories/MetadataTagFactory.js.map +0 -1
  364. package/lib/factories/internal/metadata/emplace_metadata_array.d.ts +0 -5
  365. package/lib/factories/internal/metadata/emplace_metadata_array.js.map +0 -1
  366. package/lib/factories/internal/metadata/iterate_metadata_tag.d.ts +0 -2
  367. package/lib/factories/internal/metadata/iterate_metadata_tag.js.map +0 -1
  368. package/lib/functional/$is_custom.d.ts +0 -2
  369. package/lib/functional/$is_custom.js +0 -13
  370. package/lib/functional/$is_custom.js.map +0 -1
  371. package/lib/functional/$is_date.d.ts +0 -1
  372. package/lib/functional/$is_date.js +0 -7
  373. package/lib/functional/$is_date.js.map +0 -1
  374. package/lib/functional/$is_datetime.d.ts +0 -1
  375. package/lib/functional/$is_datetime.js +0 -8
  376. package/lib/functional/$is_datetime.js.map +0 -1
  377. package/lib/functional/$is_email.d.ts +0 -1
  378. package/lib/functional/$is_email.js +0 -7
  379. package/lib/functional/$is_email.js.map +0 -1
  380. package/lib/functional/$is_ipv4.d.ts +0 -1
  381. package/lib/functional/$is_ipv4.js +0 -7
  382. package/lib/functional/$is_ipv4.js.map +0 -1
  383. package/lib/functional/$is_ipv6.d.ts +0 -1
  384. package/lib/functional/$is_ipv6.js +0 -7
  385. package/lib/functional/$is_ipv6.js.map +0 -1
  386. package/lib/functional/$is_url.d.ts +0 -1
  387. package/lib/functional/$is_url.js +0 -7
  388. package/lib/functional/$is_url.js.map +0 -1
  389. package/lib/functional/$is_uuid.d.ts +0 -1
  390. package/lib/functional/$is_uuid.js +0 -7
  391. package/lib/functional/$is_uuid.js.map +0 -1
  392. package/lib/programmers/IsPruneProgrammer.js.map +0 -1
  393. package/lib/programmers/internal/check_array.js +0 -44
  394. package/lib/programmers/internal/check_array.js.map +0 -1
  395. package/lib/programmers/internal/check_custom.d.ts +0 -1
  396. package/lib/programmers/internal/check_custom.js +0 -30
  397. package/lib/programmers/internal/check_custom.js.map +0 -1
  398. package/lib/programmers/internal/check_string_tags.d.ts +0 -1
  399. package/lib/programmers/internal/check_string_tags.js +0 -89
  400. package/lib/programmers/internal/check_string_tags.js.map +0 -1
  401. package/lib/programmers/internal/get_comment_tags.d.ts +0 -1
  402. package/lib/programmers/internal/get_comment_tags.js +0 -25
  403. package/lib/programmers/internal/get_comment_tags.js.map +0 -1
  404. package/lib/schemas/metadata/ICommentTag.d.ts +0 -4
  405. package/lib/schemas/metadata/ICommentTag.js.map +0 -1
  406. package/lib/schemas/metadata/IMetadataTag.d.ts +0 -63
  407. package/lib/schemas/metadata/IMetadataTag.js.map +0 -1
  408. package/src/CustomValidatorMap.ts +0 -126
  409. package/src/factories/MetadataTagFactory.ts +0 -364
  410. package/src/functional/$is_custom.ts +0 -14
  411. package/src/functional/$is_date.ts +0 -3
  412. package/src/functional/$is_datetime.ts +0 -2
  413. package/src/functional/$is_email.ts +0 -4
  414. package/src/functional/$is_ipv4.ts +0 -4
  415. package/src/functional/$is_ipv6.ts +0 -4
  416. package/src/functional/$is_url.ts +0 -4
  417. package/src/functional/$is_uuid.ts +0 -4
  418. package/src/programmers/internal/check_array.ts +0 -30
  419. package/src/programmers/internal/check_custom.ts +0 -31
  420. package/src/programmers/internal/check_string_tags.ts +0 -67
  421. package/src/programmers/internal/get_comment_tags.ts +0 -23
  422. package/src/schemas/metadata/ICommentTag.ts +0 -4
  423. package/src/schemas/metadata/IMetadataTag.ts +0 -112
  424. /package/lib/{programmers/internal/check_array.d.ts → factories/MetadataCommentTagFactory.d.ts} +0 -0
@@ -8,12 +8,11 @@ import { StatementFactory } from "../factories/StatementFactory";
8
8
  import { TypeFactory } from "../factories/TypeFactory";
9
9
  import { ValueFactory } from "../factories/ValueFactory";
10
10
 
11
- import { IJsDocTagInfo } from "../schemas/metadata/IJsDocTagInfo";
12
- import { IMetadataTag } from "../schemas/metadata/IMetadataTag";
13
11
  import { Metadata } from "../schemas/metadata/Metadata";
14
12
  import { MetadataArray } from "../schemas/metadata/MetadataArray";
15
13
  import { MetadataObject } from "../schemas/metadata/MetadataObject";
16
14
  import { MetadataTuple } from "../schemas/metadata/MetadataTuple";
15
+ import { MetadataTupleType } from "../schemas/metadata/MetadataTupleType";
17
16
 
18
17
  import { IProject } from "../transformers/IProject";
19
18
 
@@ -24,7 +23,6 @@ import { ICheckEntry } from "./helpers/ICheckEntry";
24
23
  import { IExpressionEntry } from "./helpers/IExpressionEntry";
25
24
  import { OptionPredicator } from "./helpers/OptionPredicator";
26
25
  import { UnionExplorer } from "./helpers/UnionExplorer";
27
- import { check_array } from "./internal/check_array";
28
26
  import { check_array_length } from "./internal/check_array_length";
29
27
  import { check_bigint } from "./internal/check_bigint";
30
28
  import { check_native } from "./internal/check_native";
@@ -128,7 +126,7 @@ export namespace CheckerProgrammer {
128
126
  collection
129
127
  .arrays()
130
128
  .filter((a) => a.recursive)
131
- .map((array, i) =>
129
+ .map((type, i) =>
132
130
  StatementFactory.constant(
133
131
  `${config.prefix}a${i}`,
134
132
  ts.factory.createArrowFunction(
@@ -141,15 +139,16 @@ export namespace CheckerProgrammer {
141
139
  undefined,
142
140
  decode_array_inline(project)(config)(importer)(
143
141
  ts.factory.createIdentifier("input"),
144
- array,
142
+ MetadataArray.create({
143
+ type,
144
+ tags: [],
145
+ }),
145
146
  {
146
147
  tracable: config.trace,
147
148
  source: "function",
148
149
  from: "array",
149
150
  postfix: "",
150
151
  },
151
- [],
152
- [],
153
152
  ),
154
153
  ),
155
154
  ),
@@ -183,8 +182,6 @@ export namespace CheckerProgrammer {
183
182
  from: "array",
184
183
  postfix: "",
185
184
  },
186
- [],
187
- [],
188
185
  ),
189
186
  ),
190
187
  ),
@@ -292,8 +289,6 @@ export namespace CheckerProgrammer {
292
289
  input: ts.Expression,
293
290
  meta: Metadata,
294
291
  explore: IExplore,
295
- metaTags: IMetadataTag[],
296
- jsDocTags: ts.JSDocTagInfo[],
297
292
  ): ts.Expression => {
298
293
  if (meta.any) return config.success;
299
294
 
@@ -302,10 +297,13 @@ export namespace CheckerProgrammer {
302
297
  const add = create_add(binaries)(input);
303
298
  const getConstantValue = (
304
299
  value: number | string | bigint | boolean,
305
- ) =>
306
- typeof value === "string"
307
- ? ts.factory.createStringLiteral(value)
308
- : ts.factory.createIdentifier(value.toString());
300
+ ) => {
301
+ if (typeof value === "string")
302
+ return ts.factory.createStringLiteral(value);
303
+ else if (typeof value === "bigint")
304
+ return ExpressionFactory.bigint(value);
305
+ return ts.factory.createIdentifier(value.toString());
306
+ };
309
307
 
310
308
  //----
311
309
  // CHECK OPTIONAL
@@ -354,35 +352,34 @@ export namespace CheckerProgrammer {
354
352
  add(true, getConstantValue(val));
355
353
 
356
354
  // ATOMIC VALUES
357
- for (const type of meta.atomics)
358
- if (AtomicPredicator.atomic(meta)(type) === false) continue;
359
- else if (type === "number")
355
+ for (const atom of meta.atomics)
356
+ if (AtomicPredicator.atomic(meta)(atom.type) === false)
357
+ continue;
358
+ else if (atom.type === "number")
360
359
  binaries.push({
361
360
  expression: config.atomist(explore)(
362
- check_number(project, config.numeric)(importer)(
363
- metaTags,
364
- )(jsDocTags)(input),
361
+ check_number(project, config.numeric)(atom)(input),
365
362
  )(input),
366
363
  combined: false,
367
364
  });
368
- else if (type === "bigint")
365
+ else if (atom.type === "bigint")
369
366
  binaries.push({
370
367
  expression: config.atomist(explore)(
371
- check_bigint(importer)(metaTags)(jsDocTags)(input),
368
+ check_bigint(project)(atom)(input),
372
369
  )(input),
373
370
  combined: false,
374
371
  });
375
- else if (type === "string")
372
+ else if (atom.type === "string")
376
373
  binaries.push({
377
374
  expression: config.atomist(explore)(
378
- check_string(importer)(metaTags)(jsDocTags)(input),
375
+ check_string(project)(atom)(input),
379
376
  )(input),
380
377
  combined: false,
381
378
  });
382
379
  else
383
380
  add(
384
381
  true,
385
- ts.factory.createStringLiteral(type),
382
+ ts.factory.createStringLiteral(atom.type),
386
383
  ValueFactory.TYPEOF(input),
387
384
  );
388
385
 
@@ -391,9 +388,7 @@ export namespace CheckerProgrammer {
391
388
  if (AtomicPredicator.template(meta))
392
389
  binaries.push({
393
390
  expression: config.atomist(explore)(
394
- check_template(importer)(metaTags)(jsDocTags)(
395
- meta.templates,
396
- )(input),
391
+ check_template(meta.templates)(input),
397
392
  )(input),
398
393
  combined: false,
399
394
  });
@@ -441,8 +436,6 @@ export namespace CheckerProgrammer {
441
436
  ...explore,
442
437
  from: "array",
443
438
  },
444
- [],
445
- [],
446
439
  ),
447
440
  );
448
441
  }
@@ -466,8 +459,6 @@ export namespace CheckerProgrammer {
466
459
  ...explore,
467
460
  from: "array",
468
461
  },
469
- metaTags,
470
- jsDocTags,
471
462
  ),
472
463
  );
473
464
  }
@@ -475,13 +466,16 @@ export namespace CheckerProgrammer {
475
466
  // ARRAYS AND TUPLES
476
467
  if (meta.tuples.length + meta.arrays.length > 0) {
477
468
  const install = prepare(
478
- config.atomist(explore)(
479
- check_array(importer)(
480
- meta.tuples.length === 0 ? metaTags : [],
481
- )(jsDocTags)(input),
482
- )(input),
469
+ config.atomist(explore)({
470
+ expected: [
471
+ ...meta.tuples.map((t) => t.type.name),
472
+ ...meta.arrays.map((a) => a.getName()),
473
+ ].join(" | "),
474
+ expression: ExpressionFactory.isArray(input),
475
+ conditions: [],
476
+ })(input),
483
477
  [...meta.tuples, ...meta.arrays]
484
- .map((elem) => elem.name)
478
+ .map((elem) => elem.type.name)
485
479
  .join(" | "),
486
480
  );
487
481
  if (meta.arrays.length === 0)
@@ -494,8 +488,6 @@ export namespace CheckerProgrammer {
494
488
  ...explore,
495
489
  from: "array",
496
490
  },
497
- metaTags,
498
- jsDocTags,
499
491
  ),
500
492
  );
501
493
  // TUPLE ONLY
@@ -508,11 +500,9 @@ export namespace CheckerProgrammer {
508
500
  ...explore,
509
501
  from: "array",
510
502
  },
511
- metaTags,
512
- jsDocTags,
513
503
  ),
514
504
  );
515
- else if (meta.arrays.some((elem) => elem.value.any))
505
+ else if (meta.arrays.some((elem) => elem.type.value.any))
516
506
  install(null);
517
507
  else if (meta.tuples.length === 0)
518
508
  if (meta.arrays.length === 1)
@@ -525,8 +515,6 @@ export namespace CheckerProgrammer {
525
515
  ...explore,
526
516
  from: "array",
527
517
  },
528
- metaTags,
529
- jsDocTags,
530
518
  ),
531
519
  );
532
520
  else
@@ -538,8 +526,6 @@ export namespace CheckerProgrammer {
538
526
  ...explore,
539
527
  from: "array",
540
528
  },
541
- metaTags,
542
- jsDocTags,
543
529
  ),
544
530
  );
545
531
  else
@@ -548,8 +534,6 @@ export namespace CheckerProgrammer {
548
534
  input,
549
535
  [...meta.tuples, ...meta.arrays],
550
536
  explore,
551
- metaTags,
552
- jsDocTags,
553
537
  ),
554
538
  );
555
539
  }
@@ -664,20 +648,12 @@ export namespace CheckerProgrammer {
664
648
  (project: IProject) =>
665
649
  (config: IConfig) =>
666
650
  (importer: FunctionImporter) =>
667
- (
668
- input: ts.Expression,
669
- array: MetadataArray,
670
- explore: IExplore,
671
- metaTags: IMetadataTag[],
672
- jsDocTags: IJsDocTagInfo[],
673
- ) => {
674
- if (array.recursive === false)
651
+ (input: ts.Expression, array: MetadataArray, explore: IExplore) => {
652
+ if (array.type.recursive === false)
675
653
  return decode_array_inline(project)(config)(importer)(
676
654
  input,
677
655
  array,
678
656
  explore,
679
- metaTags,
680
- jsDocTags,
681
657
  );
682
658
 
683
659
  explore = {
@@ -688,7 +664,9 @@ export namespace CheckerProgrammer {
688
664
  return ts.factory.createLogicalOr(
689
665
  ts.factory.createCallExpression(
690
666
  ts.factory.createIdentifier(
691
- importer.useLocal(`${config.prefix}a${array.index}`),
667
+ importer.useLocal(
668
+ `${config.prefix}a${array.type.index}`,
669
+ ),
692
670
  ),
693
671
  undefined,
694
672
  FeatureProgrammer.argumentsArray(config)({
@@ -697,7 +675,7 @@ export namespace CheckerProgrammer {
697
675
  from: "array",
698
676
  })(input),
699
677
  ),
700
- config.joiner.failure(input, array.name, explore),
678
+ config.joiner.failure(input, array.type.name, explore),
701
679
  );
702
680
  };
703
681
 
@@ -705,12 +683,25 @@ export namespace CheckerProgrammer {
705
683
  (project: IProject) =>
706
684
  (config: IConfig) =>
707
685
  (importer: FunctionImporter) =>
708
- FeatureProgrammer.decode_array({
686
+ (
687
+ input: ts.Expression,
688
+ array: MetadataArray,
689
+ explore: IExplore,
690
+ ): ts.Expression => {
691
+ const length = check_array_length(project)(array)(input);
692
+ const main = FeatureProgrammer.decode_array({
709
693
  prefix: config.prefix,
710
694
  trace: config.trace,
711
695
  path: config.path,
712
696
  decoder: () => decode(project)(config)(importer),
713
- })(importer)(config.joiner.array);
697
+ })(importer)(config.joiner.array)(input, array, explore);
698
+ return length.expression === null && length.conditions.length === 0
699
+ ? main
700
+ : ts.factory.createLogicalAnd(
701
+ config.atomist(explore)(length)(input),
702
+ main,
703
+ );
704
+ };
714
705
 
715
706
  const decode_tuple =
716
707
  (project: IProject) =>
@@ -720,16 +711,12 @@ export namespace CheckerProgrammer {
720
711
  input: ts.Expression,
721
712
  tuple: MetadataTuple,
722
713
  explore: IExplore,
723
- tagList: IMetadataTag[],
724
- jsDocTags: ts.JSDocTagInfo[],
725
714
  ): ts.Expression => {
726
- if (tuple.recursive === false)
715
+ if (tuple.type.recursive === false)
727
716
  return decode_tuple_inline(project)(config)(importer)(
728
717
  input,
729
- tuple,
718
+ tuple.type,
730
719
  explore,
731
- tagList,
732
- jsDocTags,
733
720
  );
734
721
  explore = {
735
722
  ...explore,
@@ -739,7 +726,9 @@ export namespace CheckerProgrammer {
739
726
  return ts.factory.createLogicalOr(
740
727
  ts.factory.createCallExpression(
741
728
  ts.factory.createIdentifier(
742
- importer.useLocal(`${config.prefix}t${tuple.index}`),
729
+ importer.useLocal(
730
+ `${config.prefix}t${tuple.type.index}`,
731
+ ),
743
732
  ),
744
733
  undefined,
745
734
  FeatureProgrammer.argumentsArray(config)({
@@ -747,7 +736,7 @@ export namespace CheckerProgrammer {
747
736
  source: "function",
748
737
  })(input),
749
738
  ),
750
- config.joiner.failure(input, tuple.name, explore),
739
+ config.joiner.failure(input, tuple.type.name, explore),
751
740
  );
752
741
  };
753
742
 
@@ -757,10 +746,8 @@ export namespace CheckerProgrammer {
757
746
  (importer: FunctionImporter) =>
758
747
  (
759
748
  input: ts.Expression,
760
- tuple: MetadataTuple,
749
+ tuple: MetadataTupleType,
761
750
  explore: IExplore,
762
- tagList: IMetadataTag[],
763
- jsDocTags: ts.JSDocTagInfo[],
764
751
  ): ts.Expression => {
765
752
  const binaries: ts.Expression[] = tuple.elements
766
753
  .filter((meta) => meta.rest === null)
@@ -775,8 +762,6 @@ export namespace CheckerProgrammer {
775
762
  ? `${explore.postfix.slice(0, -1)}[${index}]"`
776
763
  : `"[${index}]"`,
777
764
  },
778
- tuple.of_map === true && index !== 1 ? [] : tagList,
779
- tuple.of_map === true && index !== 1 ? [] : jsDocTags,
780
765
  ),
781
766
  );
782
767
  const rest: ts.Expression | null =
@@ -798,8 +783,6 @@ export namespace CheckerProgrammer {
798
783
  ...explore,
799
784
  start: tuple.elements.length - 1,
800
785
  },
801
- tagList,
802
- jsDocTags,
803
786
  )
804
787
  : null;
805
788
 
@@ -882,8 +865,6 @@ export namespace CheckerProgrammer {
882
865
  input: ts.Expression,
883
866
  sets: Metadata[],
884
867
  explore: IExplore,
885
- tags: IMetadataTag[],
886
- jsDocTags: IJsDocTagInfo[],
887
868
  ): ts.Expression =>
888
869
  ts.factory.createCallExpression(
889
870
  UnionExplorer.set({
@@ -895,7 +876,7 @@ export namespace CheckerProgrammer {
895
876
  ts.factory.createReturnStatement(
896
877
  config.joiner.failure(input, expected, explore),
897
878
  ),
898
- })([])(input, sets, explore, tags, jsDocTags),
879
+ })([])(input, sets, explore),
899
880
  undefined,
900
881
  undefined,
901
882
  );
@@ -908,8 +889,6 @@ export namespace CheckerProgrammer {
908
889
  input: ts.Expression,
909
890
  maps: Metadata.Entry[],
910
891
  explore: IExplore,
911
- tags: IMetadataTag[],
912
- jsDocTags: IJsDocTagInfo[],
913
892
  ): ts.Expression =>
914
893
  ts.factory.createCallExpression(
915
894
  UnionExplorer.map({
@@ -926,8 +905,6 @@ export namespace CheckerProgrammer {
926
905
  ...explore,
927
906
  postfix: `${explore.postfix}[0]`,
928
907
  },
929
- [],
930
- [],
931
908
  ),
932
909
  func(
933
910
  ts.factory.createElementAccessExpression(
@@ -939,8 +916,6 @@ export namespace CheckerProgrammer {
939
916
  ...explore,
940
917
  postfix: `${explore.postfix}[1]`,
941
918
  },
942
- [],
943
- [],
944
919
  ),
945
920
  );
946
921
  },
@@ -951,7 +926,7 @@ export namespace CheckerProgrammer {
951
926
  ts.factory.createReturnStatement(
952
927
  config.joiner.failure(input, expected, explore),
953
928
  ),
954
- })([])(input, maps, explore, tags, jsDocTags),
929
+ })([])(input, maps, explore),
955
930
  undefined,
956
931
  undefined,
957
932
  );
@@ -964,8 +939,6 @@ export namespace CheckerProgrammer {
964
939
  input: ts.Expression,
965
940
  tuples: MetadataTuple[],
966
941
  explore: IExplore,
967
- tags: IMetadataTag[],
968
- jsDocTags: IJsDocTagInfo[],
969
942
  ): ts.Expression =>
970
943
  explore_array_like_union_types(config)(importer)(
971
944
  UnionExplorer.tuple({
@@ -978,7 +951,7 @@ export namespace CheckerProgrammer {
978
951
  config.joiner.failure(input, expected, explore),
979
952
  ),
980
953
  }),
981
- )(input, tuples, explore, tags, jsDocTags);
954
+ )(input, tuples, explore);
982
955
 
983
956
  const explore_arrays =
984
957
  (project: IProject) =>
@@ -988,8 +961,6 @@ export namespace CheckerProgrammer {
988
961
  input: ts.Expression,
989
962
  arrays: MetadataArray[],
990
963
  explore: IExplore,
991
- tags: IMetadataTag[],
992
- jsDocTags: IJsDocTagInfo[],
993
964
  ): ts.Expression =>
994
965
  explore_array_like_union_types(config)(importer)(
995
966
  UnionExplorer.array({
@@ -1002,7 +973,7 @@ export namespace CheckerProgrammer {
1002
973
  config.joiner.failure(input, expected, explore),
1003
974
  ),
1004
975
  }),
1005
- )(input, arrays, explore, tags, jsDocTags);
976
+ )(input, arrays, explore);
1006
977
 
1007
978
  const explore_arrays_and_tuples =
1008
979
  (project: IProject) =>
@@ -1012,45 +983,42 @@ export namespace CheckerProgrammer {
1012
983
  input: ts.Expression,
1013
984
  elements: Array<MetadataArray | MetadataTuple>,
1014
985
  explore: IExplore,
1015
- tags: IMetadataTag[],
1016
- jsDocTags: IJsDocTagInfo[],
1017
986
  ): ts.Expression =>
1018
987
  explore_array_like_union_types(config)(importer)(
1019
988
  UnionExplorer.array_or_tuple({
1020
- checker: (front, target, explore, tags, jsDocTags, array) =>
989
+ checker: (front, target, explore, array) =>
1021
990
  target instanceof MetadataTuple
1022
991
  ? decode_tuple(project)(config)(importer)(
1023
992
  front,
1024
993
  target,
1025
994
  explore,
1026
- tags,
1027
- jsDocTags,
1028
995
  )
1029
996
  : config.atomist(explore)({
997
+ expected: elements
998
+ .map((elem) =>
999
+ elem instanceof MetadataArray
1000
+ ? elem.getName()
1001
+ : elem.type.name,
1002
+ )
1003
+ .join(" | "),
1030
1004
  expression: decode(project)(config)(importer)(
1031
1005
  front,
1032
1006
  target,
1033
1007
  explore,
1034
- tags,
1035
- jsDocTags,
1036
1008
  ),
1037
- tags: check_array_length(tags)(array),
1009
+ conditions: [],
1038
1010
  })(array),
1039
- decoder: (input, target, explore, tags, jsDocTags) =>
1011
+ decoder: (input, target, explore) =>
1040
1012
  target instanceof MetadataTuple
1041
1013
  ? decode_tuple(project)(config)(importer)(
1042
1014
  input,
1043
1015
  target,
1044
1016
  explore,
1045
- tags,
1046
- jsDocTags,
1047
1017
  )
1048
1018
  : decode_array(project)(config)(importer)(
1049
1019
  input,
1050
1020
  target,
1051
1021
  explore,
1052
- tags,
1053
- jsDocTags,
1054
1022
  ),
1055
1023
  empty: config.success,
1056
1024
  success: config.success,
@@ -1059,7 +1027,7 @@ export namespace CheckerProgrammer {
1059
1027
  config.joiner.failure(input, expected, explore),
1060
1028
  ),
1061
1029
  }),
1062
- )(input, elements, explore, tags, jsDocTags);
1030
+ )(input, elements, explore);
1063
1031
 
1064
1032
  const explore_array_like_union_types =
1065
1033
  (config: IConfig) =>
@@ -1071,29 +1039,19 @@ export namespace CheckerProgrammer {
1071
1039
  input: ts.Expression,
1072
1040
  elements: T[],
1073
1041
  explore: IExplore,
1074
- tags: IMetadataTag[],
1075
- jsDocTags: IJsDocTagInfo[],
1076
1042
  ) => ts.ArrowFunction,
1077
1043
  ) =>
1078
1044
  (
1079
1045
  input: ts.Expression,
1080
1046
  elements: T[],
1081
1047
  explore: IExplore,
1082
- tags: IMetadataTag[],
1083
- jsDocTags: IJsDocTagInfo[],
1084
1048
  ): ts.Expression => {
1085
1049
  const arrow =
1086
1050
  (parameters: ts.ParameterDeclaration[]) =>
1087
1051
  (explore: IExplore) =>
1088
1052
  (input: ts.Expression): ts.ArrowFunction =>
1089
- factory(parameters)(
1090
- input,
1091
- elements,
1092
- explore,
1093
- tags,
1094
- jsDocTags,
1095
- );
1096
- if (elements.every((e) => e.recursive === false))
1053
+ factory(parameters)(input, elements, explore);
1054
+ if (elements.every((e) => e.type.recursive === false))
1097
1055
  ts.factory.createCallExpression(
1098
1056
  arrow([])(explore)(input),
1099
1057
  undefined,
@@ -1109,7 +1067,7 @@ export namespace CheckerProgrammer {
1109
1067
  ts.factory.createIdentifier(
1110
1068
  importer.emplaceUnion(
1111
1069
  config.prefix,
1112
- elements.map((e) => e.name).join(" | "),
1070
+ elements.map((e) => e.type.name).join(" | "),
1113
1071
  () =>
1114
1072
  arrow(
1115
1073
  FeatureProgrammer.parameterDeclarations(
@@ -1128,7 +1086,7 @@ export namespace CheckerProgrammer {
1128
1086
  ),
1129
1087
  config.joiner.failure(
1130
1088
  input,
1131
- elements.map((e) => e.name).join(" | "),
1089
+ elements.map((e) => e.type.name).join(" | "),
1132
1090
  explore,
1133
1091
  ),
1134
1092
  );
@@ -6,8 +6,6 @@ import { StatementFactory } from "../factories/StatementFactory";
6
6
  import { TypeFactory } from "../factories/TypeFactory";
7
7
  import { ValueFactory } from "../factories/ValueFactory";
8
8
 
9
- import { IJsDocTagInfo } from "../schemas/metadata/IJsDocTagInfo";
10
- import { IMetadataTag } from "../schemas/metadata/IMetadataTag";
11
9
  import { Metadata } from "../schemas/metadata/Metadata";
12
10
  import { MetadataArray } from "../schemas/metadata/MetadataArray";
13
11
  import { MetadataObject } from "../schemas/metadata/MetadataObject";
@@ -191,13 +189,7 @@ export namespace FeatureProgrammer {
191
189
  T,
192
190
  Output extends ts.ConciseBody = ts.ConciseBody,
193
191
  > {
194
- (
195
- input: ts.Expression,
196
- target: T,
197
- explore: IExplore,
198
- metaTags: IMetadataTag[],
199
- jsDocTags: ts.JSDocTagInfo[],
200
- ): Output;
192
+ (input: ts.Expression, target: T, explore: IExplore): Output;
201
193
  }
202
194
 
203
195
  /* -----------------------------------------------------------
@@ -220,8 +212,6 @@ export namespace FeatureProgrammer {
220
212
  from: "top",
221
213
  postfix: '""',
222
214
  },
223
- [],
224
- [],
225
215
  );
226
216
 
227
217
  // RETURNS THE OPTIMAL ARROW FUNCTION
@@ -324,18 +314,12 @@ export namespace FeatureProgrammer {
324
314
  ),
325
315
  TypeFactory.keyword("any"),
326
316
  undefined,
327
- explorer(
328
- input,
329
- meta,
330
- {
331
- tracable: config.path || config.trace,
332
- source: "function",
333
- from: "object",
334
- postfix: "",
335
- },
336
- [],
337
- [],
338
- ),
317
+ explorer(input, meta, {
318
+ tracable: config.path || config.trace,
319
+ source: "function",
320
+ from: "object",
321
+ postfix: "",
322
+ }),
339
323
  );
340
324
  };
341
325
 
@@ -349,8 +333,6 @@ export namespace FeatureProgrammer {
349
333
  combiner: (
350
334
  input: ts.Expression,
351
335
  arrow: ts.ArrowFunction,
352
- metaTags: IMetadataTag[],
353
- jsDocTags: ts.JSDocTagInfo[],
354
336
  ) => ts.Expression,
355
337
  ) => {
356
338
  const rand: string = importer.increment().toString();
@@ -368,8 +350,6 @@ export namespace FeatureProgrammer {
368
350
  input: ts.Expression,
369
351
  array: MetadataArray,
370
352
  explore: IExplore,
371
- metaTags: IMetadataTag[],
372
- jsDocTags: IJsDocTagInfo[],
373
353
  ) => {
374
354
  const arrow: ts.ArrowFunction = ts.factory.createArrowFunction(
375
355
  undefined,
@@ -385,7 +365,7 @@ export namespace FeatureProgrammer {
385
365
  undefined,
386
366
  config.decoder()(
387
367
  ValueFactory.INPUT("elem"),
388
- array.value,
368
+ array.type.value,
389
369
  {
390
370
  tracable: explore.tracable,
391
371
  source: explore.source,
@@ -394,11 +374,9 @@ export namespace FeatureProgrammer {
394
374
  explore.postfix,
395
375
  )(rand),
396
376
  },
397
- metaTags,
398
- jsDocTags,
399
377
  ),
400
378
  );
401
- return combiner(input, arrow, metaTags, jsDocTags);
379
+ return combiner(input, arrow);
402
380
  };
403
381
  };
404
382