typia 5.0.0-dev.20230824 → 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 (292) hide show
  1. package/README.md +1 -2
  2. package/lib/IRandomGenerator.d.ts +4 -3
  3. package/lib/factories/ExpressionFactory.d.ts +1 -1
  4. package/lib/factories/ExpressionFactory.js +1 -1
  5. package/lib/factories/ExpressionFactory.js.map +1 -1
  6. package/lib/factories/LiteralFactory.js +6 -2
  7. package/lib/factories/LiteralFactory.js.map +1 -1
  8. package/lib/factories/MetadataCollection.js +0 -1
  9. package/lib/factories/MetadataCollection.js.map +1 -1
  10. package/lib/factories/MetadataCommentTagFactory.js +532 -0
  11. package/lib/factories/MetadataCommentTagFactory.js.map +1 -0
  12. package/lib/factories/MetadataTypeTagFactory.d.ts +6 -0
  13. package/lib/factories/MetadataTypeTagFactory.js +207 -0
  14. package/lib/factories/MetadataTypeTagFactory.js.map +1 -0
  15. package/lib/factories/NumericRangeFactory.d.ts +6 -0
  16. package/lib/factories/NumericRangeFactory.js +34 -0
  17. package/lib/factories/NumericRangeFactory.js.map +1 -0
  18. package/lib/factories/ProtobufFactory.js +41 -10
  19. package/lib/factories/ProtobufFactory.js.map +1 -1
  20. package/lib/factories/internal/metadata/emend_metadata_atomics.js +7 -1
  21. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  22. package/lib/factories/internal/metadata/emplace_metadata_alias.js +1 -13
  23. package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -1
  24. package/lib/factories/internal/metadata/emplace_metadata_object.js +0 -1
  25. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  26. package/lib/factories/internal/metadata/iterate_metadata_atomic.js +2 -1
  27. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  28. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js +3 -4
  29. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -1
  30. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +8 -6
  31. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  32. package/lib/functional/Namespace.js +0 -16
  33. package/lib/functional/Namespace.js.map +1 -1
  34. package/lib/programmers/AssertProgrammer.js +28 -8
  35. package/lib/programmers/AssertProgrammer.js.map +1 -1
  36. package/lib/programmers/CheckerProgrammer.js +65 -52
  37. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  38. package/lib/programmers/FeatureProgrammer.d.ts +3 -5
  39. package/lib/programmers/FeatureProgrammer.js +6 -6
  40. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  41. package/lib/programmers/IsProgrammer.d.ts +1 -1
  42. package/lib/programmers/IsProgrammer.js +32 -19
  43. package/lib/programmers/IsProgrammer.js.map +1 -1
  44. package/lib/programmers/RandomProgrammer.js +155 -135
  45. package/lib/programmers/RandomProgrammer.js.map +1 -1
  46. package/lib/programmers/ValidateProgrammer.js +28 -8
  47. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  48. package/lib/programmers/helpers/CloneJoiner.js +10 -2
  49. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  50. package/lib/programmers/helpers/ICheckEntry.d.ts +3 -2
  51. package/lib/programmers/helpers/ProtobufUtil.d.ts +6 -2
  52. package/lib/programmers/helpers/ProtobufUtil.js +175 -17
  53. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  54. package/lib/programmers/helpers/RandomJoiner.d.ts +3 -5
  55. package/lib/programmers/helpers/RandomJoiner.js +7 -10
  56. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  57. package/lib/programmers/helpers/RandomRanger.d.ts +5 -6
  58. package/lib/programmers/helpers/RandomRanger.js +13 -33
  59. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  60. package/lib/programmers/helpers/UnionExplorer.d.ts +7 -8
  61. package/lib/programmers/helpers/UnionExplorer.js +6 -6
  62. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  63. package/lib/programmers/internal/application_alias.js +0 -1
  64. package/lib/programmers/internal/application_alias.js.map +1 -1
  65. package/lib/programmers/internal/application_array.js +60 -20
  66. package/lib/programmers/internal/application_array.js.map +1 -1
  67. package/lib/programmers/internal/application_number.js +95 -69
  68. package/lib/programmers/internal/application_number.js.map +1 -1
  69. package/lib/programmers/internal/application_object.js +0 -3
  70. package/lib/programmers/internal/application_object.js.map +1 -1
  71. package/lib/programmers/internal/application_schema.js +37 -20
  72. package/lib/programmers/internal/application_schema.js.map +1 -1
  73. package/lib/programmers/internal/application_string.js +56 -22
  74. package/lib/programmers/internal/application_string.js.map +1 -1
  75. package/lib/programmers/internal/check_array_length.js +25 -25
  76. package/lib/programmers/internal/check_array_length.js.map +1 -1
  77. package/lib/programmers/internal/check_bigint.js +13 -116
  78. package/lib/programmers/internal/check_bigint.js.map +1 -1
  79. package/lib/programmers/internal/check_dynamic_properties.js +1 -1
  80. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  81. package/lib/programmers/internal/check_number.js +62 -163
  82. package/lib/programmers/internal/check_number.js.map +1 -1
  83. package/lib/programmers/internal/check_string.js +16 -52
  84. package/lib/programmers/internal/check_string.js.map +1 -1
  85. package/lib/programmers/internal/check_template.js +16 -1
  86. package/lib/programmers/internal/check_template.js.map +1 -1
  87. package/lib/programmers/internal/check_union_array_like.js +4 -4
  88. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  89. package/lib/programmers/internal/feature_object_entries.js +1 -1
  90. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  91. package/lib/programmers/internal/random_custom.js +2 -2
  92. package/lib/programmers/internal/random_custom.js.map +1 -1
  93. package/lib/programmers/json/JsonStringifyProgrammer.js +21 -16
  94. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  95. package/lib/programmers/misc/MiscCloneProgrammer.js +13 -9
  96. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  97. package/lib/programmers/{IsPruneProgrammer.d.ts → misc/MiscIsPruneProgrammer.d.ts} +2 -2
  98. package/lib/programmers/{IsPruneProgrammer.js → misc/MiscIsPruneProgrammer.js} +11 -11
  99. package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -0
  100. package/lib/programmers/misc/MiscPruneProgrammer.js +10 -6
  101. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  102. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +24 -44
  103. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  104. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +138 -65
  105. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  106. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +59 -85
  107. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  108. package/lib/schemas/json/IJsonSchema.d.ts +10 -38
  109. package/lib/schemas/metadata/IMetadataAlias.d.ts +0 -2
  110. package/lib/schemas/metadata/IMetadataProperty.d.ts +0 -2
  111. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +2 -0
  112. package/lib/schemas/metadata/Metadata.d.ts +2 -2
  113. package/lib/schemas/metadata/Metadata.js +25 -25
  114. package/lib/schemas/metadata/Metadata.js.map +1 -1
  115. package/lib/schemas/metadata/MetadataAlias.d.ts +0 -2
  116. package/lib/schemas/metadata/MetadataAlias.js +0 -3
  117. package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
  118. package/lib/schemas/metadata/MetadataArray.d.ts +2 -0
  119. package/lib/schemas/metadata/MetadataArray.js +45 -2
  120. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  121. package/lib/schemas/metadata/MetadataAtomic.d.ts +9 -0
  122. package/lib/schemas/metadata/MetadataAtomic.js +59 -0
  123. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -0
  124. package/lib/schemas/metadata/MetadataProperty.d.ts +0 -2
  125. package/lib/schemas/metadata/MetadataProperty.js +0 -3
  126. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  127. package/lib/schemas/metadata/MetadataTuple.d.ts +4 -2
  128. package/lib/schemas/metadata/MetadataTuple.js +1 -2
  129. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  130. package/lib/tags/ExclusiveMaximum.d.ts +10 -8
  131. package/lib/tags/ExclusiveMinimum.d.ts +10 -8
  132. package/lib/tags/Format.d.ts +8 -8
  133. package/lib/tags/MaxItems.d.ts +8 -8
  134. package/lib/tags/MaxLength.d.ts +8 -8
  135. package/lib/tags/Maximum.d.ts +10 -8
  136. package/lib/tags/MinItems.d.ts +8 -8
  137. package/lib/tags/MinLength.d.ts +8 -8
  138. package/lib/tags/Minimum.d.ts +10 -8
  139. package/lib/tags/MultipleOf.d.ts +10 -8
  140. package/lib/tags/Pattern.d.ts +7 -8
  141. package/lib/tags/TagBase.d.ts +10 -6
  142. package/lib/tags/Type.d.ts +14 -13
  143. package/lib/tags/index.d.ts +1 -0
  144. package/lib/tags/index.js +1 -0
  145. package/lib/tags/index.js.map +1 -1
  146. package/lib/transformers/FileTransformer.js +3 -1
  147. package/lib/transformers/FileTransformer.js.map +1 -1
  148. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js +2 -2
  149. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js.map +1 -1
  150. package/lib/transformers/features/misc/MiscIsPruneTransformer.js +2 -2
  151. package/lib/transformers/features/misc/MiscIsPruneTransformer.js.map +1 -1
  152. package/lib/typings/ProtobufAtomic.d.ts +5 -0
  153. package/lib/{schemas/metadata/ICommentTag.js → typings/ProtobufAtomic.js} +1 -1
  154. package/lib/typings/ProtobufAtomic.js.map +1 -0
  155. package/package.json +2 -2
  156. package/src/IRandomGenerator.ts +4 -3
  157. package/src/factories/ExpressionFactory.ts +2 -2
  158. package/src/factories/LiteralFactory.ts +10 -3
  159. package/src/factories/MetadataCollection.ts +0 -1
  160. package/src/factories/MetadataCommentTagFactory.ts +583 -0
  161. package/src/factories/MetadataTypeTagFactory.ts +263 -0
  162. package/src/factories/NumericRangeFactory.ts +33 -0
  163. package/src/factories/ProtobufFactory.ts +27 -13
  164. package/src/factories/internal/metadata/emend_metadata_atomics.ts +6 -1
  165. package/src/factories/internal/metadata/emplace_metadata_alias.ts +0 -6
  166. package/src/factories/internal/metadata/emplace_metadata_object.ts +0 -1
  167. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +2 -1
  168. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +3 -7
  169. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +13 -10
  170. package/src/functional/Namespace.ts +0 -16
  171. package/src/programmers/AssertProgrammer.ts +57 -21
  172. package/src/programmers/CheckerProgrammer.ts +43 -118
  173. package/src/programmers/FeatureProgrammer.ts +11 -33
  174. package/src/programmers/IsProgrammer.ts +52 -41
  175. package/src/programmers/RandomProgrammer.ts +206 -226
  176. package/src/programmers/ValidateProgrammer.ts +60 -21
  177. package/src/programmers/helpers/CloneJoiner.ts +57 -20
  178. package/src/programmers/helpers/ICheckEntry.ts +3 -2
  179. package/src/programmers/helpers/ProtobufUtil.ts +113 -17
  180. package/src/programmers/helpers/RandomJoiner.ts +11 -37
  181. package/src/programmers/helpers/RandomRanger.ts +16 -51
  182. package/src/programmers/helpers/UnionExplorer.ts +1 -20
  183. package/src/programmers/internal/application_alias.ts +0 -1
  184. package/src/programmers/internal/application_array.ts +32 -10
  185. package/src/programmers/internal/application_number.ts +76 -70
  186. package/src/programmers/internal/application_object.ts +0 -3
  187. package/src/programmers/internal/application_schema.ts +36 -18
  188. package/src/programmers/internal/application_string.ts +33 -27
  189. package/src/programmers/internal/check_array_length.ts +34 -28
  190. package/src/programmers/internal/check_bigint.ts +25 -118
  191. package/src/programmers/internal/check_dynamic_properties.ts +1 -2
  192. package/src/programmers/internal/check_number.ts +81 -261
  193. package/src/programmers/internal/check_string.ts +28 -39
  194. package/src/programmers/internal/check_template.ts +17 -1
  195. package/src/programmers/internal/check_union_array_like.ts +1 -16
  196. package/src/programmers/internal/feature_object_entries.ts +12 -18
  197. package/src/programmers/internal/random_custom.ts +3 -3
  198. package/src/programmers/json/JsonStringifyProgrammer.ts +25 -36
  199. package/src/programmers/misc/MiscCloneProgrammer.ts +10 -24
  200. package/src/programmers/{IsPruneProgrammer.ts → misc/MiscIsPruneProgrammer.ts} +7 -7
  201. package/src/programmers/misc/MiscPruneProgrammer.ts +8 -18
  202. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +34 -68
  203. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +153 -98
  204. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +6 -36
  205. package/src/schemas/json/IJsonSchema.ts +11 -38
  206. package/src/schemas/metadata/IMetadataAlias.ts +0 -2
  207. package/src/schemas/metadata/IMetadataProperty.ts +0 -2
  208. package/src/schemas/metadata/IMetadataTypeTag.ts +2 -0
  209. package/src/schemas/metadata/Metadata.ts +28 -42
  210. package/src/schemas/metadata/MetadataAlias.ts +0 -5
  211. package/src/schemas/metadata/MetadataArray.ts +21 -3
  212. package/src/schemas/metadata/MetadataAtomic.ts +42 -0
  213. package/src/schemas/metadata/MetadataProperty.ts +0 -5
  214. package/src/schemas/metadata/MetadataTuple.ts +5 -4
  215. package/src/tags/ExclusiveMaximum.ts +13 -8
  216. package/src/tags/ExclusiveMinimum.ts +13 -8
  217. package/src/tags/Format.ts +21 -20
  218. package/src/tags/MaxItems.ts +9 -8
  219. package/src/tags/MaxLength.ts +9 -8
  220. package/src/tags/Maximum.ts +13 -8
  221. package/src/tags/MinItems.ts +9 -8
  222. package/src/tags/MinLength.ts +9 -8
  223. package/src/tags/Minimum.ts +13 -8
  224. package/src/tags/MultipleOf.ts +15 -10
  225. package/src/tags/Pattern.ts +8 -8
  226. package/src/tags/TagBase.ts +18 -13
  227. package/src/tags/Type.ts +26 -29
  228. package/src/tags/index.ts +1 -0
  229. package/src/transformers/FileTransformer.ts +4 -4
  230. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +2 -2
  231. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +2 -2
  232. package/src/typings/ProtobufAtomic.ts +19 -0
  233. package/lib/factories/MetadataTagFactory.d.ts +0 -6
  234. package/lib/factories/MetadataTagFactory.js +0 -312
  235. package/lib/factories/MetadataTagFactory.js.map +0 -1
  236. package/lib/factories/internal/metadata/iterate_metadata_type_tags.d.ts +0 -3
  237. package/lib/factories/internal/metadata/iterate_metadata_type_tags.js +0 -157
  238. package/lib/factories/internal/metadata/iterate_metadata_type_tags.js.map +0 -1
  239. package/lib/functional/$is_custom.d.ts +0 -2
  240. package/lib/functional/$is_custom.js +0 -13
  241. package/lib/functional/$is_custom.js.map +0 -1
  242. package/lib/functional/$is_date.d.ts +0 -1
  243. package/lib/functional/$is_date.js +0 -7
  244. package/lib/functional/$is_date.js.map +0 -1
  245. package/lib/functional/$is_datetime.d.ts +0 -1
  246. package/lib/functional/$is_datetime.js +0 -8
  247. package/lib/functional/$is_datetime.js.map +0 -1
  248. package/lib/functional/$is_email.d.ts +0 -1
  249. package/lib/functional/$is_email.js +0 -7
  250. package/lib/functional/$is_email.js.map +0 -1
  251. package/lib/functional/$is_ipv4.d.ts +0 -1
  252. package/lib/functional/$is_ipv4.js +0 -7
  253. package/lib/functional/$is_ipv4.js.map +0 -1
  254. package/lib/functional/$is_ipv6.d.ts +0 -1
  255. package/lib/functional/$is_ipv6.js +0 -7
  256. package/lib/functional/$is_ipv6.js.map +0 -1
  257. package/lib/functional/$is_url.d.ts +0 -1
  258. package/lib/functional/$is_url.js +0 -7
  259. package/lib/functional/$is_url.js.map +0 -1
  260. package/lib/functional/$is_uuid.d.ts +0 -1
  261. package/lib/functional/$is_uuid.js +0 -7
  262. package/lib/functional/$is_uuid.js.map +0 -1
  263. package/lib/programmers/IsPruneProgrammer.js.map +0 -1
  264. package/lib/programmers/internal/check_array_tags.js +0 -39
  265. package/lib/programmers/internal/check_array_tags.js.map +0 -1
  266. package/lib/programmers/internal/check_string_tags.d.ts +0 -1
  267. package/lib/programmers/internal/check_string_tags.js +0 -89
  268. package/lib/programmers/internal/check_string_tags.js.map +0 -1
  269. package/lib/programmers/internal/get_comment_tags.d.ts +0 -1
  270. package/lib/programmers/internal/get_comment_tags.js +0 -25
  271. package/lib/programmers/internal/get_comment_tags.js.map +0 -1
  272. package/lib/schemas/metadata/ICommentTag.d.ts +0 -4
  273. package/lib/schemas/metadata/ICommentTag.js.map +0 -1
  274. package/lib/schemas/metadata/IMetadataCommentTag.d.ts +0 -63
  275. package/lib/schemas/metadata/IMetadataCommentTag.js +0 -3
  276. package/lib/schemas/metadata/IMetadataCommentTag.js.map +0 -1
  277. package/src/factories/MetadataTagFactory.ts +0 -365
  278. package/src/factories/internal/metadata/iterate_metadata_type_tags.ts +0 -183
  279. package/src/functional/$is_custom.ts +0 -14
  280. package/src/functional/$is_date.ts +0 -3
  281. package/src/functional/$is_datetime.ts +0 -2
  282. package/src/functional/$is_email.ts +0 -4
  283. package/src/functional/$is_ipv4.ts +0 -4
  284. package/src/functional/$is_ipv6.ts +0 -4
  285. package/src/functional/$is_url.ts +0 -4
  286. package/src/functional/$is_uuid.ts +0 -4
  287. package/src/programmers/internal/check_array_tags.ts +0 -45
  288. package/src/programmers/internal/check_string_tags.ts +0 -67
  289. package/src/programmers/internal/get_comment_tags.ts +0 -23
  290. package/src/schemas/metadata/ICommentTag.ts +0 -4
  291. package/src/schemas/metadata/IMetadataCommentTag.ts +0 -112
  292. /package/lib/{programmers/internal/check_array_tags.d.ts → factories/MetadataCommentTagFactory.d.ts} +0 -0
@@ -8,12 +8,8 @@ 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 { IMetadataCommentTag } from "../schemas/metadata/IMetadataCommentTag";
13
- import { IMetadataTypeTag } from "../schemas/metadata/IMetadataTypeTag";
14
11
  import { Metadata } from "../schemas/metadata/Metadata";
15
12
  import { MetadataArray } from "../schemas/metadata/MetadataArray";
16
- import { MetadataArrayType } from "../schemas/metadata/MetadataArrayType";
17
13
  import { MetadataObject } from "../schemas/metadata/MetadataObject";
18
14
  import { MetadataTuple } from "../schemas/metadata/MetadataTuple";
19
15
  import { MetadataTupleType } from "../schemas/metadata/MetadataTupleType";
@@ -28,7 +24,6 @@ import { IExpressionEntry } from "./helpers/IExpressionEntry";
28
24
  import { OptionPredicator } from "./helpers/OptionPredicator";
29
25
  import { UnionExplorer } from "./helpers/UnionExplorer";
30
26
  import { check_array_length } from "./internal/check_array_length";
31
- import { check_array_tags } from "./internal/check_array_tags";
32
27
  import { check_bigint } from "./internal/check_bigint";
33
28
  import { check_native } from "./internal/check_native";
34
29
  import { check_number } from "./internal/check_number";
@@ -131,7 +126,7 @@ export namespace CheckerProgrammer {
131
126
  collection
132
127
  .arrays()
133
128
  .filter((a) => a.recursive)
134
- .map((array, i) =>
129
+ .map((type, i) =>
135
130
  StatementFactory.constant(
136
131
  `${config.prefix}a${i}`,
137
132
  ts.factory.createArrowFunction(
@@ -144,16 +139,16 @@ export namespace CheckerProgrammer {
144
139
  undefined,
145
140
  decode_array_inline(project)(config)(importer)(
146
141
  ts.factory.createIdentifier("input"),
147
- array,
142
+ MetadataArray.create({
143
+ type,
144
+ tags: [],
145
+ }),
148
146
  {
149
147
  tracable: config.trace,
150
148
  source: "function",
151
149
  from: "array",
152
150
  postfix: "",
153
151
  },
154
- [],
155
- [],
156
- [],
157
152
  ),
158
153
  ),
159
154
  ),
@@ -187,8 +182,6 @@ export namespace CheckerProgrammer {
187
182
  from: "array",
188
183
  postfix: "",
189
184
  },
190
- [],
191
- [],
192
185
  ),
193
186
  ),
194
187
  ),
@@ -296,8 +289,6 @@ export namespace CheckerProgrammer {
296
289
  input: ts.Expression,
297
290
  meta: Metadata,
298
291
  explore: IExplore,
299
- metaTags: IMetadataCommentTag[],
300
- jsDocTags: ts.JSDocTagInfo[],
301
292
  ): ts.Expression => {
302
293
  if (meta.any) return config.success;
303
294
 
@@ -306,10 +297,13 @@ export namespace CheckerProgrammer {
306
297
  const add = create_add(binaries)(input);
307
298
  const getConstantValue = (
308
299
  value: number | string | bigint | boolean,
309
- ) =>
310
- typeof value === "string"
311
- ? ts.factory.createStringLiteral(value)
312
- : 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
+ };
313
307
 
314
308
  //----
315
309
  // CHECK OPTIONAL
@@ -364,27 +358,21 @@ export namespace CheckerProgrammer {
364
358
  else if (atom.type === "number")
365
359
  binaries.push({
366
360
  expression: config.atomist(explore)(
367
- check_number(project, config.numeric)(
368
- atom.tags,
369
- metaTags,
370
- )(input),
361
+ check_number(project, config.numeric)(atom)(input),
371
362
  )(input),
372
363
  combined: false,
373
364
  });
374
365
  else if (atom.type === "bigint")
375
366
  binaries.push({
376
367
  expression: config.atomist(explore)(
377
- check_bigint(project)(atom.tags, metaTags)(input),
368
+ check_bigint(project)(atom)(input),
378
369
  )(input),
379
370
  combined: false,
380
371
  });
381
372
  else if (atom.type === "string")
382
373
  binaries.push({
383
374
  expression: config.atomist(explore)(
384
- check_string(project)(importer)(
385
- atom.tags,
386
- metaTags,
387
- )(input),
375
+ check_string(project)(atom)(input),
388
376
  )(input),
389
377
  combined: false,
390
378
  });
@@ -448,8 +436,6 @@ export namespace CheckerProgrammer {
448
436
  ...explore,
449
437
  from: "array",
450
438
  },
451
- [],
452
- [],
453
439
  ),
454
440
  );
455
441
  }
@@ -473,8 +459,6 @@ export namespace CheckerProgrammer {
473
459
  ...explore,
474
460
  from: "array",
475
461
  },
476
- metaTags,
477
- jsDocTags,
478
462
  ),
479
463
  );
480
464
  }
@@ -483,8 +467,12 @@ export namespace CheckerProgrammer {
483
467
  if (meta.tuples.length + meta.arrays.length > 0) {
484
468
  const install = prepare(
485
469
  config.atomist(explore)({
470
+ expected: [
471
+ ...meta.tuples.map((t) => t.type.name),
472
+ ...meta.arrays.map((a) => a.getName()),
473
+ ].join(" | "),
486
474
  expression: ExpressionFactory.isArray(input),
487
- tags: [],
475
+ conditions: [],
488
476
  })(input),
489
477
  [...meta.tuples, ...meta.arrays]
490
478
  .map((elem) => elem.type.name)
@@ -500,8 +488,6 @@ export namespace CheckerProgrammer {
500
488
  ...explore,
501
489
  from: "array",
502
490
  },
503
- metaTags,
504
- jsDocTags,
505
491
  ),
506
492
  );
507
493
  // TUPLE ONLY
@@ -514,8 +500,6 @@ export namespace CheckerProgrammer {
514
500
  ...explore,
515
501
  from: "array",
516
502
  },
517
- metaTags,
518
- jsDocTags,
519
503
  ),
520
504
  );
521
505
  else if (meta.arrays.some((elem) => elem.type.value.any))
@@ -531,8 +515,6 @@ export namespace CheckerProgrammer {
531
515
  ...explore,
532
516
  from: "array",
533
517
  },
534
- metaTags,
535
- jsDocTags,
536
518
  ),
537
519
  );
538
520
  else
@@ -544,8 +526,6 @@ export namespace CheckerProgrammer {
544
526
  ...explore,
545
527
  from: "array",
546
528
  },
547
- metaTags,
548
- jsDocTags,
549
529
  ),
550
530
  );
551
531
  else
@@ -554,8 +534,6 @@ export namespace CheckerProgrammer {
554
534
  input,
555
535
  [...meta.tuples, ...meta.arrays],
556
536
  explore,
557
- metaTags,
558
- jsDocTags,
559
537
  ),
560
538
  );
561
539
  }
@@ -670,21 +648,12 @@ export namespace CheckerProgrammer {
670
648
  (project: IProject) =>
671
649
  (config: IConfig) =>
672
650
  (importer: FunctionImporter) =>
673
- (
674
- input: ts.Expression,
675
- array: MetadataArray,
676
- explore: IExplore,
677
- metaTags: IMetadataCommentTag[],
678
- jsDocTags: IJsDocTagInfo[],
679
- ) => {
651
+ (input: ts.Expression, array: MetadataArray, explore: IExplore) => {
680
652
  if (array.type.recursive === false)
681
653
  return decode_array_inline(project)(config)(importer)(
682
654
  input,
683
- array.type,
655
+ array,
684
656
  explore,
685
- array.tags,
686
- metaTags,
687
- jsDocTags,
688
657
  );
689
658
 
690
659
  explore = {
@@ -716,29 +685,20 @@ export namespace CheckerProgrammer {
716
685
  (importer: FunctionImporter) =>
717
686
  (
718
687
  input: ts.Expression,
719
- array: MetadataArrayType,
688
+ array: MetadataArray,
720
689
  explore: IExplore,
721
- matrix: IMetadataTypeTag[][],
722
- metaTags: IMetadataCommentTag[],
723
- jsDocTags: IJsDocTagInfo[],
724
690
  ): ts.Expression => {
725
- const tagger = check_array_tags(project)(matrix, metaTags)(input);
691
+ const length = check_array_length(project)(array)(input);
726
692
  const main = FeatureProgrammer.decode_array({
727
693
  prefix: config.prefix,
728
694
  trace: config.trace,
729
695
  path: config.path,
730
696
  decoder: () => decode(project)(config)(importer),
731
- })(importer)(config.joiner.array)(
732
- input,
733
- array,
734
- explore,
735
- metaTags,
736
- jsDocTags,
737
- );
738
- return tagger.expression === null && tagger.tags.length === 0
697
+ })(importer)(config.joiner.array)(input, array, explore);
698
+ return length.expression === null && length.conditions.length === 0
739
699
  ? main
740
700
  : ts.factory.createLogicalAnd(
741
- config.atomist(explore)(tagger)(input),
701
+ config.atomist(explore)(length)(input),
742
702
  main,
743
703
  );
744
704
  };
@@ -751,16 +711,12 @@ export namespace CheckerProgrammer {
751
711
  input: ts.Expression,
752
712
  tuple: MetadataTuple,
753
713
  explore: IExplore,
754
- tagList: IMetadataCommentTag[],
755
- jsDocTags: ts.JSDocTagInfo[],
756
714
  ): ts.Expression => {
757
715
  if (tuple.type.recursive === false)
758
716
  return decode_tuple_inline(project)(config)(importer)(
759
717
  input,
760
718
  tuple.type,
761
719
  explore,
762
- tagList,
763
- jsDocTags,
764
720
  );
765
721
  explore = {
766
722
  ...explore,
@@ -792,8 +748,6 @@ export namespace CheckerProgrammer {
792
748
  input: ts.Expression,
793
749
  tuple: MetadataTupleType,
794
750
  explore: IExplore,
795
- tagList: IMetadataCommentTag[],
796
- jsDocTags: ts.JSDocTagInfo[],
797
751
  ): ts.Expression => {
798
752
  const binaries: ts.Expression[] = tuple.elements
799
753
  .filter((meta) => meta.rest === null)
@@ -808,8 +762,6 @@ export namespace CheckerProgrammer {
808
762
  ? `${explore.postfix.slice(0, -1)}[${index}]"`
809
763
  : `"[${index}]"`,
810
764
  },
811
- tuple.of_map === true && index !== 1 ? [] : tagList,
812
- tuple.of_map === true && index !== 1 ? [] : jsDocTags,
813
765
  ),
814
766
  );
815
767
  const rest: ts.Expression | null =
@@ -831,8 +783,6 @@ export namespace CheckerProgrammer {
831
783
  ...explore,
832
784
  start: tuple.elements.length - 1,
833
785
  },
834
- tagList,
835
- jsDocTags,
836
786
  )
837
787
  : null;
838
788
 
@@ -915,8 +865,6 @@ export namespace CheckerProgrammer {
915
865
  input: ts.Expression,
916
866
  sets: Metadata[],
917
867
  explore: IExplore,
918
- tags: IMetadataCommentTag[],
919
- jsDocTags: IJsDocTagInfo[],
920
868
  ): ts.Expression =>
921
869
  ts.factory.createCallExpression(
922
870
  UnionExplorer.set({
@@ -928,7 +876,7 @@ export namespace CheckerProgrammer {
928
876
  ts.factory.createReturnStatement(
929
877
  config.joiner.failure(input, expected, explore),
930
878
  ),
931
- })([])(input, sets, explore, tags, jsDocTags),
879
+ })([])(input, sets, explore),
932
880
  undefined,
933
881
  undefined,
934
882
  );
@@ -941,8 +889,6 @@ export namespace CheckerProgrammer {
941
889
  input: ts.Expression,
942
890
  maps: Metadata.Entry[],
943
891
  explore: IExplore,
944
- tags: IMetadataCommentTag[],
945
- jsDocTags: IJsDocTagInfo[],
946
892
  ): ts.Expression =>
947
893
  ts.factory.createCallExpression(
948
894
  UnionExplorer.map({
@@ -959,8 +905,6 @@ export namespace CheckerProgrammer {
959
905
  ...explore,
960
906
  postfix: `${explore.postfix}[0]`,
961
907
  },
962
- [],
963
- [],
964
908
  ),
965
909
  func(
966
910
  ts.factory.createElementAccessExpression(
@@ -972,8 +916,6 @@ export namespace CheckerProgrammer {
972
916
  ...explore,
973
917
  postfix: `${explore.postfix}[1]`,
974
918
  },
975
- [],
976
- [],
977
919
  ),
978
920
  );
979
921
  },
@@ -984,7 +926,7 @@ export namespace CheckerProgrammer {
984
926
  ts.factory.createReturnStatement(
985
927
  config.joiner.failure(input, expected, explore),
986
928
  ),
987
- })([])(input, maps, explore, tags, jsDocTags),
929
+ })([])(input, maps, explore),
988
930
  undefined,
989
931
  undefined,
990
932
  );
@@ -997,8 +939,6 @@ export namespace CheckerProgrammer {
997
939
  input: ts.Expression,
998
940
  tuples: MetadataTuple[],
999
941
  explore: IExplore,
1000
- tags: IMetadataCommentTag[],
1001
- jsDocTags: IJsDocTagInfo[],
1002
942
  ): ts.Expression =>
1003
943
  explore_array_like_union_types(config)(importer)(
1004
944
  UnionExplorer.tuple({
@@ -1011,7 +951,7 @@ export namespace CheckerProgrammer {
1011
951
  config.joiner.failure(input, expected, explore),
1012
952
  ),
1013
953
  }),
1014
- )(input, tuples, explore, tags, jsDocTags);
954
+ )(input, tuples, explore);
1015
955
 
1016
956
  const explore_arrays =
1017
957
  (project: IProject) =>
@@ -1021,8 +961,6 @@ export namespace CheckerProgrammer {
1021
961
  input: ts.Expression,
1022
962
  arrays: MetadataArray[],
1023
963
  explore: IExplore,
1024
- tags: IMetadataCommentTag[],
1025
- jsDocTags: IJsDocTagInfo[],
1026
964
  ): ts.Expression =>
1027
965
  explore_array_like_union_types(config)(importer)(
1028
966
  UnionExplorer.array({
@@ -1035,7 +973,7 @@ export namespace CheckerProgrammer {
1035
973
  config.joiner.failure(input, expected, explore),
1036
974
  ),
1037
975
  }),
1038
- )(input, arrays, explore, tags, jsDocTags);
976
+ )(input, arrays, explore);
1039
977
 
1040
978
  const explore_arrays_and_tuples =
1041
979
  (project: IProject) =>
@@ -1045,45 +983,42 @@ export namespace CheckerProgrammer {
1045
983
  input: ts.Expression,
1046
984
  elements: Array<MetadataArray | MetadataTuple>,
1047
985
  explore: IExplore,
1048
- tags: IMetadataCommentTag[],
1049
- jsDocTags: IJsDocTagInfo[],
1050
986
  ): ts.Expression =>
1051
987
  explore_array_like_union_types(config)(importer)(
1052
988
  UnionExplorer.array_or_tuple({
1053
- checker: (front, target, explore, tags, jsDocTags, array) =>
989
+ checker: (front, target, explore, array) =>
1054
990
  target instanceof MetadataTuple
1055
991
  ? decode_tuple(project)(config)(importer)(
1056
992
  front,
1057
993
  target,
1058
994
  explore,
1059
- tags,
1060
- jsDocTags,
1061
995
  )
1062
996
  : config.atomist(explore)({
997
+ expected: elements
998
+ .map((elem) =>
999
+ elem instanceof MetadataArray
1000
+ ? elem.getName()
1001
+ : elem.type.name,
1002
+ )
1003
+ .join(" | "),
1063
1004
  expression: decode(project)(config)(importer)(
1064
1005
  front,
1065
1006
  target,
1066
1007
  explore,
1067
- tags,
1068
- jsDocTags,
1069
1008
  ),
1070
- tags: check_array_length(tags)(array),
1009
+ conditions: [],
1071
1010
  })(array),
1072
- decoder: (input, target, explore, tags, jsDocTags) =>
1011
+ decoder: (input, target, explore) =>
1073
1012
  target instanceof MetadataTuple
1074
1013
  ? decode_tuple(project)(config)(importer)(
1075
1014
  input,
1076
1015
  target,
1077
1016
  explore,
1078
- tags,
1079
- jsDocTags,
1080
1017
  )
1081
1018
  : decode_array(project)(config)(importer)(
1082
1019
  input,
1083
1020
  target,
1084
1021
  explore,
1085
- tags,
1086
- jsDocTags,
1087
1022
  ),
1088
1023
  empty: config.success,
1089
1024
  success: config.success,
@@ -1092,7 +1027,7 @@ export namespace CheckerProgrammer {
1092
1027
  config.joiner.failure(input, expected, explore),
1093
1028
  ),
1094
1029
  }),
1095
- )(input, elements, explore, tags, jsDocTags);
1030
+ )(input, elements, explore);
1096
1031
 
1097
1032
  const explore_array_like_union_types =
1098
1033
  (config: IConfig) =>
@@ -1104,28 +1039,18 @@ export namespace CheckerProgrammer {
1104
1039
  input: ts.Expression,
1105
1040
  elements: T[],
1106
1041
  explore: IExplore,
1107
- tags: IMetadataCommentTag[],
1108
- jsDocTags: IJsDocTagInfo[],
1109
1042
  ) => ts.ArrowFunction,
1110
1043
  ) =>
1111
1044
  (
1112
1045
  input: ts.Expression,
1113
1046
  elements: T[],
1114
1047
  explore: IExplore,
1115
- tags: IMetadataCommentTag[],
1116
- jsDocTags: IJsDocTagInfo[],
1117
1048
  ): ts.Expression => {
1118
1049
  const arrow =
1119
1050
  (parameters: ts.ParameterDeclaration[]) =>
1120
1051
  (explore: IExplore) =>
1121
1052
  (input: ts.Expression): ts.ArrowFunction =>
1122
- factory(parameters)(
1123
- input,
1124
- elements,
1125
- explore,
1126
- tags,
1127
- jsDocTags,
1128
- );
1053
+ factory(parameters)(input, elements, explore);
1129
1054
  if (elements.every((e) => e.type.recursive === false))
1130
1055
  ts.factory.createCallExpression(
1131
1056
  arrow([])(explore)(input),
@@ -6,10 +6,8 @@ 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 { IMetadataCommentTag } from "../schemas/metadata/IMetadataCommentTag";
11
9
  import { Metadata } from "../schemas/metadata/Metadata";
12
- import { MetadataArrayType } from "../schemas/metadata/MetadataArrayType";
10
+ import { MetadataArray } from "../schemas/metadata/MetadataArray";
13
11
  import { MetadataObject } from "../schemas/metadata/MetadataObject";
14
12
 
15
13
  import { IProject } from "../transformers/IProject";
@@ -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: IMetadataCommentTag[],
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: IMetadataCommentTag[],
353
- jsDocTags: ts.JSDocTagInfo[],
354
336
  ) => ts.Expression,
355
337
  ) => {
356
338
  const rand: string = importer.increment().toString();
@@ -366,10 +348,8 @@ export namespace FeatureProgrammer {
366
348
 
367
349
  return (
368
350
  input: ts.Expression,
369
- array: MetadataArrayType,
351
+ array: MetadataArray,
370
352
  explore: IExplore,
371
- metaTags: IMetadataCommentTag[],
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