typia 3.3.12

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 (341) hide show
  1. package/CODE_OF_CONDUCT.md +133 -0
  2. package/CONTRIBUTING.md +104 -0
  3. package/LICENSE +21 -0
  4. package/README.md +572 -0
  5. package/lib/IValidation.d.ts +11 -0
  6. package/lib/IValidation.js +3 -0
  7. package/lib/IValidation.js.map +1 -0
  8. package/lib/TypeGuardError.d.ts +16 -0
  9. package/lib/TypeGuardError.js +39 -0
  10. package/lib/TypeGuardError.js.map +1 -0
  11. package/lib/factories/CommentFactory.d.ts +4 -0
  12. package/lib/factories/CommentFactory.js +14 -0
  13. package/lib/factories/CommentFactory.js.map +1 -0
  14. package/lib/factories/ExpressionFactory.d.ts +6 -0
  15. package/lib/factories/ExpressionFactory.js +30 -0
  16. package/lib/factories/ExpressionFactory.js.map +1 -0
  17. package/lib/factories/IdentifierFactory.d.ts +7 -0
  18. package/lib/factories/IdentifierFactory.js +35 -0
  19. package/lib/factories/IdentifierFactory.js.map +1 -0
  20. package/lib/factories/LiteralFactory.d.ts +4 -0
  21. package/lib/factories/LiteralFactory.js +67 -0
  22. package/lib/factories/LiteralFactory.js.map +1 -0
  23. package/lib/factories/MetadataCollection.d.ts +20 -0
  24. package/lib/factories/MetadataCollection.js +141 -0
  25. package/lib/factories/MetadataCollection.js.map +1 -0
  26. package/lib/factories/MetadataFactory.d.ts +10 -0
  27. package/lib/factories/MetadataFactory.js +47 -0
  28. package/lib/factories/MetadataFactory.js.map +1 -0
  29. package/lib/factories/MetadataTagFactory.d.ts +6 -0
  30. package/lib/factories/MetadataTagFactory.js +317 -0
  31. package/lib/factories/MetadataTagFactory.js.map +1 -0
  32. package/lib/factories/StatementFactory.d.ts +7 -0
  33. package/lib/factories/StatementFactory.js +31 -0
  34. package/lib/factories/StatementFactory.js.map +1 -0
  35. package/lib/factories/TemplateFactory.d.ts +4 -0
  36. package/lib/factories/TemplateFactory.js +41 -0
  37. package/lib/factories/TemplateFactory.js.map +1 -0
  38. package/lib/factories/TypeFactory.d.ts +6 -0
  39. package/lib/factories/TypeFactory.js +71 -0
  40. package/lib/factories/TypeFactory.js.map +1 -0
  41. package/lib/factories/ValueFactory.d.ts +8 -0
  42. package/lib/factories/ValueFactory.js +23 -0
  43. package/lib/factories/ValueFactory.js.map +1 -0
  44. package/lib/factories/internal/MetadataHelper.d.ts +4 -0
  45. package/lib/factories/internal/MetadataHelper.js +17 -0
  46. package/lib/factories/internal/MetadataHelper.js.map +1 -0
  47. package/lib/factories/internal/emplace_metadata_object.d.ts +5 -0
  48. package/lib/factories/internal/emplace_metadata_object.js +149 -0
  49. package/lib/factories/internal/emplace_metadata_object.js.map +1 -0
  50. package/lib/factories/internal/explore_metadata.d.ts +5 -0
  51. package/lib/factories/internal/explore_metadata.js +88 -0
  52. package/lib/factories/internal/explore_metadata.js.map +1 -0
  53. package/lib/factories/internal/iterate_metadata.d.ts +5 -0
  54. package/lib/factories/internal/iterate_metadata.js +37 -0
  55. package/lib/factories/internal/iterate_metadata.js.map +1 -0
  56. package/lib/factories/internal/iterate_metadata_array.d.ts +5 -0
  57. package/lib/factories/internal/iterate_metadata_array.js +22 -0
  58. package/lib/factories/internal/iterate_metadata_array.js.map +1 -0
  59. package/lib/factories/internal/iterate_metadata_atomic.d.ts +3 -0
  60. package/lib/factories/internal/iterate_metadata_atomic.js +73 -0
  61. package/lib/factories/internal/iterate_metadata_atomic.js.map +1 -0
  62. package/lib/factories/internal/iterate_metadata_coalesce.d.ts +3 -0
  63. package/lib/factories/internal/iterate_metadata_coalesce.js +35 -0
  64. package/lib/factories/internal/iterate_metadata_coalesce.js.map +1 -0
  65. package/lib/factories/internal/iterate_metadata_constant.d.ts +4 -0
  66. package/lib/factories/internal/iterate_metadata_constant.js +40 -0
  67. package/lib/factories/internal/iterate_metadata_constant.js.map +1 -0
  68. package/lib/factories/internal/iterate_metadata_object.d.ts +5 -0
  69. package/lib/factories/internal/iterate_metadata_object.js +38 -0
  70. package/lib/factories/internal/iterate_metadata_object.js.map +1 -0
  71. package/lib/factories/internal/iterate_metadata_resolve.d.ts +5 -0
  72. package/lib/factories/internal/iterate_metadata_resolve.js +24 -0
  73. package/lib/factories/internal/iterate_metadata_resolve.js.map +1 -0
  74. package/lib/factories/internal/iterate_metadata_template.d.ts +5 -0
  75. package/lib/factories/internal/iterate_metadata_template.js +33 -0
  76. package/lib/factories/internal/iterate_metadata_template.js.map +1 -0
  77. package/lib/factories/internal/iterate_metadata_tuple.d.ts +5 -0
  78. package/lib/factories/internal/iterate_metadata_tuple.js +27 -0
  79. package/lib/factories/internal/iterate_metadata_tuple.js.map +1 -0
  80. package/lib/factories/internal/iterate_metadata_union.d.ts +5 -0
  81. package/lib/factories/internal/iterate_metadata_union.js +82 -0
  82. package/lib/factories/internal/iterate_metadata_union.js.map +1 -0
  83. package/lib/functional/$is_email.d.ts +1 -0
  84. package/lib/functional/$is_email.js +9 -0
  85. package/lib/functional/$is_email.js.map +1 -0
  86. package/lib/functional/$is_ipv4.d.ts +1 -0
  87. package/lib/functional/$is_ipv4.js +9 -0
  88. package/lib/functional/$is_ipv4.js.map +1 -0
  89. package/lib/functional/$is_ipv6.d.ts +1 -0
  90. package/lib/functional/$is_ipv6.js +9 -0
  91. package/lib/functional/$is_ipv6.js.map +1 -0
  92. package/lib/functional/$is_url.d.ts +1 -0
  93. package/lib/functional/$is_url.js +9 -0
  94. package/lib/functional/$is_url.js.map +1 -0
  95. package/lib/functional/$is_uuid.d.ts +1 -0
  96. package/lib/functional/$is_uuid.js +9 -0
  97. package/lib/functional/$is_uuid.js.map +1 -0
  98. package/lib/functional/$join.d.ts +1 -0
  99. package/lib/functional/$join.js +52 -0
  100. package/lib/functional/$join.js.map +1 -0
  101. package/lib/functional/$number.d.ts +1 -0
  102. package/lib/functional/$number.js +23 -0
  103. package/lib/functional/$number.js.map +1 -0
  104. package/lib/functional/$string.d.ts +1 -0
  105. package/lib/functional/$string.js +36 -0
  106. package/lib/functional/$string.js.map +1 -0
  107. package/lib/functional/$tail.d.ts +1 -0
  108. package/lib/functional/$tail.js +8 -0
  109. package/lib/functional/$tail.js.map +1 -0
  110. package/lib/index.d.ts +3 -0
  111. package/lib/index.js +32 -0
  112. package/lib/index.js.map +1 -0
  113. package/lib/metadata/IJsDocTagInfo.d.ts +10 -0
  114. package/lib/metadata/IJsDocTagInfo.js +3 -0
  115. package/lib/metadata/IJsDocTagInfo.js.map +1 -0
  116. package/lib/metadata/IMetadata.d.ts +15 -0
  117. package/lib/metadata/IMetadata.js +3 -0
  118. package/lib/metadata/IMetadata.js.map +1 -0
  119. package/lib/metadata/IMetadataConstant.d.ts +8 -0
  120. package/lib/metadata/IMetadataConstant.js +3 -0
  121. package/lib/metadata/IMetadataConstant.js.map +1 -0
  122. package/lib/metadata/IMetadataObject.d.ts +8 -0
  123. package/lib/metadata/IMetadataObject.js +3 -0
  124. package/lib/metadata/IMetadataObject.js.map +1 -0
  125. package/lib/metadata/IMetadataProperty.d.ts +10 -0
  126. package/lib/metadata/IMetadataProperty.js +3 -0
  127. package/lib/metadata/IMetadataProperty.js.map +1 -0
  128. package/lib/metadata/IMetadataTag.d.ts +74 -0
  129. package/lib/metadata/IMetadataTag.js +3 -0
  130. package/lib/metadata/IMetadataTag.js.map +1 -0
  131. package/lib/metadata/Metadata.d.ts +33 -0
  132. package/lib/metadata/Metadata.js +568 -0
  133. package/lib/metadata/Metadata.js.map +1 -0
  134. package/lib/metadata/MetadataConstant.d.ts +2 -0
  135. package/lib/metadata/MetadataConstant.js +3 -0
  136. package/lib/metadata/MetadataConstant.js.map +1 -0
  137. package/lib/metadata/MetadataObject.d.ts +15 -0
  138. package/lib/metadata/MetadataObject.js +64 -0
  139. package/lib/metadata/MetadataObject.js.map +1 -0
  140. package/lib/metadata/MetadataProperty.d.ts +16 -0
  141. package/lib/metadata/MetadataProperty.js +37 -0
  142. package/lib/metadata/MetadataProperty.js.map +1 -0
  143. package/lib/module.d.ts +382 -0
  144. package/lib/module.js +187 -0
  145. package/lib/module.js.map +1 -0
  146. package/lib/programmers/ApplicationProgrammer.d.ts +11 -0
  147. package/lib/programmers/ApplicationProgrammer.js +48 -0
  148. package/lib/programmers/ApplicationProgrammer.js.map +1 -0
  149. package/lib/programmers/AssertProgrammer.d.ts +5 -0
  150. package/lib/programmers/AssertProgrammer.js +79 -0
  151. package/lib/programmers/AssertProgrammer.js.map +1 -0
  152. package/lib/programmers/CheckerProgrammer.d.ts +41 -0
  153. package/lib/programmers/CheckerProgrammer.js +279 -0
  154. package/lib/programmers/CheckerProgrammer.js.map +1 -0
  155. package/lib/programmers/FeatureProgrammer.d.ts +53 -0
  156. package/lib/programmers/FeatureProgrammer.js +211 -0
  157. package/lib/programmers/FeatureProgrammer.js.map +1 -0
  158. package/lib/programmers/IsProgrammer.d.ts +21 -0
  159. package/lib/programmers/IsProgrammer.js +78 -0
  160. package/lib/programmers/IsProgrammer.js.map +1 -0
  161. package/lib/programmers/StringifyProgrammer.d.ts +5 -0
  162. package/lib/programmers/StringifyProgrammer.js +433 -0
  163. package/lib/programmers/StringifyProgrammer.js.map +1 -0
  164. package/lib/programmers/ValidateProgrammer.d.ts +5 -0
  165. package/lib/programmers/ValidateProgrammer.js +96 -0
  166. package/lib/programmers/ValidateProgrammer.js.map +1 -0
  167. package/lib/programmers/helpers/FunctionImporeter.d.ts +9 -0
  168. package/lib/programmers/helpers/FunctionImporeter.js +58 -0
  169. package/lib/programmers/helpers/FunctionImporeter.js.map +1 -0
  170. package/lib/programmers/helpers/IExpressionEntry.d.ts +8 -0
  171. package/lib/programmers/helpers/IExpressionEntry.js +3 -0
  172. package/lib/programmers/helpers/IExpressionEntry.js.map +1 -0
  173. package/lib/programmers/helpers/OptionPredicator.d.ts +5 -0
  174. package/lib/programmers/helpers/OptionPredicator.js +17 -0
  175. package/lib/programmers/helpers/OptionPredicator.js.map +1 -0
  176. package/lib/programmers/helpers/StringifyJoinder.d.ts +8 -0
  177. package/lib/programmers/helpers/StringifyJoinder.js +95 -0
  178. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -0
  179. package/lib/programmers/helpers/StringifyPredicator.d.ts +5 -0
  180. package/lib/programmers/helpers/StringifyPredicator.js +19 -0
  181. package/lib/programmers/helpers/StringifyPredicator.js.map +1 -0
  182. package/lib/programmers/helpers/UnionExplorer.d.ts +13 -0
  183. package/lib/programmers/helpers/UnionExplorer.js +117 -0
  184. package/lib/programmers/helpers/UnionExplorer.js.map +1 -0
  185. package/lib/programmers/helpers/UnionPredicator.d.ts +11 -0
  186. package/lib/programmers/helpers/UnionPredicator.js +111 -0
  187. package/lib/programmers/helpers/UnionPredicator.js.map +1 -0
  188. package/lib/programmers/internal/application_array.d.ts +1 -0
  189. package/lib/programmers/internal/application_array.js +63 -0
  190. package/lib/programmers/internal/application_array.js.map +1 -0
  191. package/lib/programmers/internal/application_boolean.d.ts +1 -0
  192. package/lib/programmers/internal/application_boolean.js +18 -0
  193. package/lib/programmers/internal/application_boolean.js.map +1 -0
  194. package/lib/programmers/internal/application_constant.d.ts +1 -0
  195. package/lib/programmers/internal/application_constant.js +26 -0
  196. package/lib/programmers/internal/application_constant.js.map +1 -0
  197. package/lib/programmers/internal/application_default.d.ts +1 -0
  198. package/lib/programmers/internal/application_default.js +40 -0
  199. package/lib/programmers/internal/application_default.js.map +1 -0
  200. package/lib/programmers/internal/application_default_string.d.ts +1 -0
  201. package/lib/programmers/internal/application_default_string.js +61 -0
  202. package/lib/programmers/internal/application_default_string.js.map +1 -0
  203. package/lib/programmers/internal/application_number.d.ts +1 -0
  204. package/lib/programmers/internal/application_number.js +86 -0
  205. package/lib/programmers/internal/application_number.js.map +1 -0
  206. package/lib/programmers/internal/application_object.d.ts +1 -0
  207. package/lib/programmers/internal/application_object.js +96 -0
  208. package/lib/programmers/internal/application_object.js.map +1 -0
  209. package/lib/programmers/internal/application_schema.d.ts +1 -0
  210. package/lib/programmers/internal/application_schema.js +246 -0
  211. package/lib/programmers/internal/application_schema.js.map +1 -0
  212. package/lib/programmers/internal/application_string.d.ts +1 -0
  213. package/lib/programmers/internal/application_string.js +66 -0
  214. package/lib/programmers/internal/application_string.js.map +1 -0
  215. package/lib/programmers/internal/application_templates.d.ts +1 -0
  216. package/lib/programmers/internal/application_templates.js +24 -0
  217. package/lib/programmers/internal/application_templates.js.map +1 -0
  218. package/lib/programmers/internal/application_tuple.d.ts +1 -0
  219. package/lib/programmers/internal/application_tuple.js +24 -0
  220. package/lib/programmers/internal/application_tuple.js.map +1 -0
  221. package/lib/programmers/internal/check_array.d.ts +1 -0
  222. package/lib/programmers/internal/check_array.js +52 -0
  223. package/lib/programmers/internal/check_array.js.map +1 -0
  224. package/lib/programmers/internal/check_dynamic_properties.d.ts +1 -0
  225. package/lib/programmers/internal/check_dynamic_properties.js +111 -0
  226. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -0
  227. package/lib/programmers/internal/check_everything.d.ts +1 -0
  228. package/lib/programmers/internal/check_everything.js +17 -0
  229. package/lib/programmers/internal/check_everything.js.map +1 -0
  230. package/lib/programmers/internal/check_length.d.ts +1 -0
  231. package/lib/programmers/internal/check_length.js +28 -0
  232. package/lib/programmers/internal/check_length.js.map +1 -0
  233. package/lib/programmers/internal/check_number.d.ts +1 -0
  234. package/lib/programmers/internal/check_number.js +124 -0
  235. package/lib/programmers/internal/check_number.js.map +1 -0
  236. package/lib/programmers/internal/check_object.d.ts +1 -0
  237. package/lib/programmers/internal/check_object.js +35 -0
  238. package/lib/programmers/internal/check_object.js.map +1 -0
  239. package/lib/programmers/internal/check_string.d.ts +1 -0
  240. package/lib/programmers/internal/check_string.js +45 -0
  241. package/lib/programmers/internal/check_string.js.map +1 -0
  242. package/lib/programmers/internal/check_string_tags.d.ts +1 -0
  243. package/lib/programmers/internal/check_string_tags.js +51 -0
  244. package/lib/programmers/internal/check_string_tags.js.map +1 -0
  245. package/lib/programmers/internal/check_template.d.ts +1 -0
  246. package/lib/programmers/internal/check_template.js +50 -0
  247. package/lib/programmers/internal/check_template.js.map +1 -0
  248. package/lib/programmers/internal/decode_union_object.d.ts +1 -0
  249. package/lib/programmers/internal/decode_union_object.js +56 -0
  250. package/lib/programmers/internal/decode_union_object.js.map +1 -0
  251. package/lib/programmers/internal/metadata_to_pattern.d.ts +2 -0
  252. package/lib/programmers/internal/metadata_to_pattern.js +62 -0
  253. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -0
  254. package/lib/programmers/internal/stringify_dynamic_properties.d.ts +1 -0
  255. package/lib/programmers/internal/stringify_dynamic_properties.js +76 -0
  256. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -0
  257. package/lib/programmers/internal/stringify_regular_properties.d.ts +1 -0
  258. package/lib/programmers/internal/stringify_regular_properties.js +78 -0
  259. package/lib/programmers/internal/stringify_regular_properties.js.map +1 -0
  260. package/lib/programmers/internal/template_to_pattern.d.ts +1 -0
  261. package/lib/programmers/internal/template_to_pattern.js +13 -0
  262. package/lib/programmers/internal/template_to_pattern.js.map +1 -0
  263. package/lib/schemas/IJsonApplication.d.ts +8 -0
  264. package/lib/schemas/IJsonApplication.js +3 -0
  265. package/lib/schemas/IJsonApplication.js.map +1 -0
  266. package/lib/schemas/IJsonComponents.d.ts +19 -0
  267. package/lib/schemas/IJsonComponents.js +3 -0
  268. package/lib/schemas/IJsonComponents.js.map +1 -0
  269. package/lib/schemas/IJsonSchema.d.ts +62 -0
  270. package/lib/schemas/IJsonSchema.js +3 -0
  271. package/lib/schemas/IJsonSchema.js.map +1 -0
  272. package/lib/transform.d.ts +3 -0
  273. package/lib/transform.js +21 -0
  274. package/lib/transform.js.map +1 -0
  275. package/lib/transformers/CallExpressionTransformer.d.ts +5 -0
  276. package/lib/transformers/CallExpressionTransformer.js +45 -0
  277. package/lib/transformers/CallExpressionTransformer.js.map +1 -0
  278. package/lib/transformers/ExpressionWithArgumentTransformer.d.ts +0 -0
  279. package/lib/transformers/ExpressionWithArgumentTransformer.js +2 -0
  280. package/lib/transformers/ExpressionWithArgumentTransformer.js.map +1 -0
  281. package/lib/transformers/FileTransformer.d.ts +5 -0
  282. package/lib/transformers/FileTransformer.js +34 -0
  283. package/lib/transformers/FileTransformer.js.map +1 -0
  284. package/lib/transformers/IProject.d.ts +9 -0
  285. package/lib/transformers/IProject.js +3 -0
  286. package/lib/transformers/IProject.js.map +1 -0
  287. package/lib/transformers/ITransformOptions.d.ts +4 -0
  288. package/lib/transformers/ITransformOptions.js +3 -0
  289. package/lib/transformers/ITransformOptions.js.map +1 -0
  290. package/lib/transformers/NodeTransformer.d.ts +5 -0
  291. package/lib/transformers/NodeTransformer.js +18 -0
  292. package/lib/transformers/NodeTransformer.js.map +1 -0
  293. package/lib/transformers/features/ApplicationTransformer.d.ts +5 -0
  294. package/lib/transformers/features/ApplicationTransformer.js +63 -0
  295. package/lib/transformers/features/ApplicationTransformer.js.map +1 -0
  296. package/lib/transformers/features/AssertTransformer.d.ts +5 -0
  297. package/lib/transformers/features/AssertTransformer.js +30 -0
  298. package/lib/transformers/features/AssertTransformer.js.map +1 -0
  299. package/lib/transformers/features/CreateTransformer.d.ts +5 -0
  300. package/lib/transformers/features/CreateTransformer.js +29 -0
  301. package/lib/transformers/features/CreateTransformer.js.map +1 -0
  302. package/lib/transformers/features/IsTransformer.d.ts +5 -0
  303. package/lib/transformers/features/IsTransformer.js +30 -0
  304. package/lib/transformers/features/IsTransformer.js.map +1 -0
  305. package/lib/transformers/features/StringifyTransformer.d.ts +5 -0
  306. package/lib/transformers/features/StringifyTransformer.js +23 -0
  307. package/lib/transformers/features/StringifyTransformer.js.map +1 -0
  308. package/lib/transformers/features/ValidateTransformer.d.ts +5 -0
  309. package/lib/transformers/features/ValidateTransformer.js +30 -0
  310. package/lib/transformers/features/ValidateTransformer.js.map +1 -0
  311. package/lib/typings/Atomic.d.ts +11 -0
  312. package/lib/typings/Atomic.js +3 -0
  313. package/lib/typings/Atomic.js.map +1 -0
  314. package/lib/typings/ClassProperties.d.ts +4 -0
  315. package/lib/typings/ClassProperties.js +3 -0
  316. package/lib/typings/ClassProperties.js.map +1 -0
  317. package/lib/typings/OmitNever.d.ts +2 -0
  318. package/lib/typings/OmitNever.js +3 -0
  319. package/lib/typings/OmitNever.js.map +1 -0
  320. package/lib/typings/SpecialFields.d.ts +3 -0
  321. package/lib/typings/SpecialFields.js +3 -0
  322. package/lib/typings/SpecialFields.js.map +1 -0
  323. package/lib/typings/Writable.d.ts +5 -0
  324. package/lib/typings/Writable.js +8 -0
  325. package/lib/typings/Writable.js.map +1 -0
  326. package/lib/utils/ArrayUtil.d.ts +8 -0
  327. package/lib/utils/ArrayUtil.js +69 -0
  328. package/lib/utils/ArrayUtil.js.map +1 -0
  329. package/lib/utils/Escaper.d.ts +3 -0
  330. package/lib/utils/Escaper.js +52 -0
  331. package/lib/utils/Escaper.js.map +1 -0
  332. package/lib/utils/MapUtil.d.ts +3 -0
  333. package/lib/utils/MapUtil.js +16 -0
  334. package/lib/utils/MapUtil.js.map +1 -0
  335. package/lib/utils/PatternUtil.d.ts +7 -0
  336. package/lib/utils/PatternUtil.js +59 -0
  337. package/lib/utils/PatternUtil.js.map +1 -0
  338. package/lib/utils/Singleton.d.ts +6 -0
  339. package/lib/utils/Singleton.js +47 -0
  340. package/lib/utils/Singleton.js.map +1 -0
  341. package/package.json +78 -0
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __values = (this && this.__values) || function(o) {
19
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
20
+ if (m) return m.call(o);
21
+ if (o && typeof o.length === "number") return {
22
+ next: function () {
23
+ if (o && i >= o.length) o = void 0;
24
+ return { value: o && o[i++], done: !o };
25
+ }
26
+ };
27
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
28
+ };
29
+ var __importDefault = (this && this.__importDefault) || function (mod) {
30
+ return (mod && mod.__esModule) ? mod : { "default": mod };
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.emplace_metadata_object = void 0;
34
+ var typescript_1 = __importDefault(require("typescript"));
35
+ var MetadataProperty_1 = require("../../metadata/MetadataProperty");
36
+ var Writable_1 = require("../../typings/Writable");
37
+ var ArrayUtil_1 = require("../../utils/ArrayUtil");
38
+ var CommentFactory_1 = require("../CommentFactory");
39
+ var MetadataTagFactory_1 = require("../MetadataTagFactory");
40
+ var MetadataHelper_1 = require("./MetadataHelper");
41
+ var explore_metadata_1 = require("./explore_metadata");
42
+ var emplace_metadata_object = function (checker) {
43
+ return function (options) {
44
+ return function (collection) {
45
+ return function (parent, nullable) {
46
+ var e_1, _a, e_2, _b;
47
+ var _c;
48
+ var _d = __read(collection.emplace(checker, parent), 2), obj = _d[0], newbie = _d[1];
49
+ ArrayUtil_1.ArrayUtil.add(obj.nullables, nullable, function (elem) { return elem === nullable; });
50
+ if (newbie === false)
51
+ return obj;
52
+ var isClass = parent.isClass();
53
+ var pred = isClass
54
+ ? function (node) {
55
+ var _a, _b;
56
+ var kind = (_b = (_a = node
57
+ .getChildren()[0]) === null || _a === void 0 ? void 0 : _a.getChildren()[0]) === null || _b === void 0 ? void 0 : _b.kind;
58
+ return (kind !== typescript_1.default.SyntaxKind.PrivateKeyword &&
59
+ kind !== typescript_1.default.SyntaxKind.ProtectedKeyword &&
60
+ (typescript_1.default.isParameter(node) || typescript_1.default.isPropertyDeclaration(node)));
61
+ }
62
+ : function (node) {
63
+ return typescript_1.default.isPropertyDeclaration(node) ||
64
+ typescript_1.default.isPropertyAssignment(node) ||
65
+ typescript_1.default.isPropertySignature(node) ||
66
+ typescript_1.default.isTypeLiteralNode(node);
67
+ };
68
+ var insert = function (key) {
69
+ return function (value) {
70
+ return function (identifier) {
71
+ return function (symbol, filter) {
72
+ var description = CommentFactory_1.CommentFactory.generate((symbol === null || symbol === void 0 ? void 0 : symbol.getDocumentationComment(checker)) || []) || undefined;
73
+ var jsDocTags = ((symbol === null || symbol === void 0 ? void 0 : symbol.getJsDocTags()) || []).filter(filter || (function () { return true; }));
74
+ var property = MetadataProperty_1.MetadataProperty.create({
75
+ key: key,
76
+ value: value,
77
+ description: description,
78
+ jsDocTags: jsDocTags,
79
+ tags: MetadataTagFactory_1.MetadataTagFactory.generate(function () { return identifier(); }, value, jsDocTags),
80
+ });
81
+ obj.properties.push(property);
82
+ return property;
83
+ };
84
+ };
85
+ };
86
+ };
87
+ var _loop_1 = function (prop) {
88
+ if ((prop.getJsDocTags(checker) || []).find(function (tag) { return tag.name === "internal"; }) !== undefined)
89
+ return "continue";
90
+ var _j = __read((function () {
91
+ var node = (prop.getDeclarations() || [])[0];
92
+ var type = node
93
+ ? checker.getTypeOfSymbolAtLocation(prop, node)
94
+ : "getTypeOfPropertyOfType" in checker
95
+ ? checker.getTypeOfPropertyOfType(parent, prop.name)
96
+ : undefined;
97
+ return [node, type];
98
+ })(), 2), node = _j[0], type = _j[1];
99
+ if ((node && pred(node) === false) || type === undefined)
100
+ return "continue";
101
+ var key = MetadataHelper_1.MetadataHelper.literal_to_metadata(prop.name);
102
+ var value = (0, explore_metadata_1.explore_metadata)(checker)(options)(collection)(type, false);
103
+ if (node === null || node === void 0 ? void 0 : node.questionToken)
104
+ (0, Writable_1.Writable)(value).required = false;
105
+ insert(key)(value)(function () { return "".concat(obj.name, ".").concat(prop.name); })(prop);
106
+ };
107
+ try {
108
+ for (var _e = __values(parent.getApparentProperties()), _f = _e.next(); !_f.done; _f = _e.next()) {
109
+ var prop = _f.value;
110
+ _loop_1(prop);
111
+ }
112
+ }
113
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
114
+ finally {
115
+ try {
116
+ if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
117
+ }
118
+ finally { if (e_1) throw e_1.error; }
119
+ }
120
+ var _loop_2 = function (index) {
121
+ var analyzer = function (type) {
122
+ return (0, explore_metadata_1.explore_metadata)(checker)(options)(collection)(type, false);
123
+ };
124
+ var key = analyzer(index.keyType);
125
+ var value = analyzer(index.type);
126
+ insert(key)(value)(function () { return "".concat(obj.name, "[").concat(key.getName(), "]"); })(((_c = index.declaration) === null || _c === void 0 ? void 0 : _c.parent)
127
+ ? checker.getSymbolAtLocation(index.declaration.parent)
128
+ : undefined, function (doc) { return doc.name !== "default"; });
129
+ };
130
+ try {
131
+ for (var _g = __values(checker.getIndexInfosOfType(parent)), _h = _g.next(); !_h.done; _h = _g.next()) {
132
+ var index = _h.value;
133
+ _loop_2(index);
134
+ }
135
+ }
136
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
137
+ finally {
138
+ try {
139
+ if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
140
+ }
141
+ finally { if (e_2) throw e_2.error; }
142
+ }
143
+ return obj;
144
+ };
145
+ };
146
+ };
147
+ };
148
+ exports.emplace_metadata_object = emplace_metadata_object;
149
+ //# sourceMappingURL=emplace_metadata_object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emplace_metadata_object.js","sourceRoot":"","sources":["../../../src/factories/internal/emplace_metadata_object.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import ts from "typescript";
2
+ import { Metadata } from "../../metadata/Metadata";
3
+ import { MetadataCollection } from "../MetadataCollection";
4
+ import { MetadataFactory } from "../MetadataFactory";
5
+ export declare const explore_metadata: (checker: ts.TypeChecker) => (options: MetadataFactory.IOptions) => (collection: MetadataCollection) => (type: ts.Type | null, parentResolved: boolean) => Metadata;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.explore_metadata = void 0;
15
+ var Metadata_1 = require("../../metadata/Metadata");
16
+ var MetadataObject_1 = require("../../metadata/MetadataObject");
17
+ var ArrayUtil_1 = require("../../utils/ArrayUtil");
18
+ var iterate_metadata_1 = require("./iterate_metadata");
19
+ var explore_metadata = function (checker) {
20
+ return function (options) {
21
+ return function (collection) {
22
+ return function (type, parentResolved) {
23
+ var e_1, _a;
24
+ var meta = Metadata_1.Metadata.initialize();
25
+ if (type !== null)
26
+ (0, iterate_metadata_1.iterate_metadata)(checker)(options)(collection)(meta, type, parentResolved);
27
+ if (meta.objects.length > 1) {
28
+ meta.objects.sort(function (x, y) {
29
+ return MetadataObject_1.MetadataObject.covers(x, y)
30
+ ? -1
31
+ : MetadataObject_1.MetadataObject.covers(y, x)
32
+ ? 1
33
+ : 0;
34
+ });
35
+ if (parentResolved === false)
36
+ meta.union_index = collection.getUnionIndex(meta);
37
+ }
38
+ if (meta.arrays.length > 1)
39
+ meta.arrays.sort(function (x, y) {
40
+ return Metadata_1.Metadata.covers(x, y) ? -1 : Metadata_1.Metadata.covers(y, x) ? 1 : 0;
41
+ });
42
+ if (meta.tuples.length > 1)
43
+ meta.tuples.sort(function (x, y) {
44
+ var xt = Metadata_1.Metadata.initialize();
45
+ var yt = Metadata_1.Metadata.initialize();
46
+ xt.tuples.push(x);
47
+ yt.tuples.push(y);
48
+ return Metadata_1.Metadata.covers(xt, yt)
49
+ ? -1
50
+ : Metadata_1.Metadata.covers(yt, xt)
51
+ ? 1
52
+ : 0;
53
+ });
54
+ var _loop_1 = function (type_1) {
55
+ var index = meta.constants.findIndex(function (c) { return c.type === type_1; });
56
+ if (index !== -1)
57
+ meta.constants.splice(index, 1);
58
+ };
59
+ try {
60
+ for (var _b = __values(meta.atomics), _c = _b.next(); !_c.done; _c = _b.next()) {
61
+ var type_1 = _c.value;
62
+ _loop_1(type_1);
63
+ }
64
+ }
65
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
66
+ finally {
67
+ try {
68
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
69
+ }
70
+ finally { if (e_1) throw e_1.error; }
71
+ }
72
+ {
73
+ var index = meta.constants.findIndex(function (c) { return c.type === "boolean"; });
74
+ if (index !== -1 && meta.constants[index].values.length === 2) {
75
+ meta.constants.splice(index, 1);
76
+ ArrayUtil_1.ArrayUtil.take(meta.atomics, function (type) { return type === "boolean"; }, function () { return "boolean"; });
77
+ }
78
+ }
79
+ if (meta.templates.length &&
80
+ meta.atomics.find(function (type) { return type === "string"; }) !== undefined)
81
+ meta.templates.splice(0, meta.templates.length);
82
+ return meta;
83
+ };
84
+ };
85
+ };
86
+ };
87
+ exports.explore_metadata = explore_metadata;
88
+ //# sourceMappingURL=explore_metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explore_metadata.js","sourceRoot":"","sources":["../../../src/factories/internal/explore_metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import ts from "typescript";
2
+ import { Metadata } from "../../metadata/Metadata";
3
+ import { MetadataCollection } from "../MetadataCollection";
4
+ import { MetadataFactory } from "../MetadataFactory";
5
+ export declare const iterate_metadata: (checker: ts.TypeChecker) => (options: MetadataFactory.IOptions) => (collection: MetadataCollection) => (meta: Metadata, type: ts.Type, parentResolved: boolean) => void;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.iterate_metadata = void 0;
4
+ var iterate_metadata_array_1 = require("./iterate_metadata_array");
5
+ var iterate_metadata_atomic_1 = require("./iterate_metadata_atomic");
6
+ var iterate_metadata_coalesce_1 = require("./iterate_metadata_coalesce");
7
+ var iterate_metadata_constant_1 = require("./iterate_metadata_constant");
8
+ var iterate_metadata_object_1 = require("./iterate_metadata_object");
9
+ var iterate_metadata_resolve_1 = require("./iterate_metadata_resolve");
10
+ var iterate_metadata_template_1 = require("./iterate_metadata_template");
11
+ var iterate_metadata_tuple_1 = require("./iterate_metadata_tuple");
12
+ var iterate_metadata_union_1 = require("./iterate_metadata_union");
13
+ var iterate_metadata = function (checker) {
14
+ return function (options) {
15
+ return function (collection) {
16
+ return function (meta, type, parentResolved) {
17
+ if (type.isTypeParameter() === true)
18
+ throw new Error("Error on TSON.MetadataFactory.generate(): non-specified generic argument on ".concat(meta.getName(), "."));
19
+ if ((0, iterate_metadata_union_1.iterate_metadata_union)(checker)(options)(collection)(meta, type, parentResolved) ||
20
+ (0, iterate_metadata_resolve_1.iterate_metadata_resolve)(checker)(options)(collection)(meta, type, parentResolved))
21
+ return;
22
+ var node = checker.typeToTypeNode(type, undefined, undefined);
23
+ if (node === undefined)
24
+ return;
25
+ (0, iterate_metadata_coalesce_1.iterate_metadata_coalesce)(meta, type) ||
26
+ (0, iterate_metadata_constant_1.iterate_metadata_constant)(checker)(options)(meta, type) ||
27
+ (0, iterate_metadata_template_1.iterate_metadata_template)(checker)(options)(collection)(meta, type) ||
28
+ (0, iterate_metadata_atomic_1.iterate_metadata_atomic)(meta, type) ||
29
+ (0, iterate_metadata_tuple_1.iterate_metadata_tuple)(checker)(options)(collection)(meta, type) ||
30
+ (0, iterate_metadata_array_1.iterate_metadata_array)(checker)(options)(collection)(meta, type) ||
31
+ (0, iterate_metadata_object_1.iterate_metadata_object)(checker)(options)(collection)(meta, type, parentResolved);
32
+ };
33
+ };
34
+ };
35
+ };
36
+ exports.iterate_metadata = iterate_metadata;
37
+ //# sourceMappingURL=iterate_metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterate_metadata.js","sourceRoot":"","sources":["../../../src/factories/internal/iterate_metadata.ts"],"names":[],"mappings":";;;AAMA,mEAAkE;AAClE,qEAAoE;AACpE,yEAAwE;AACxE,yEAAwE;AACxE,qEAAoE;AACpE,uEAAsE;AACtE,yEAAwE;AACxE,mEAAkE;AAClE,mEAAkE;AAE3D,IAAM,gBAAgB,GACzB,UAAC,OAAuB;IACxB,OAAA,UAAC,OAAiC;QAClC,OAAA,UAAC,UAA8B;YAC/B,OAAA,UAAC,IAAc,EAAE,IAAa,EAAE,cAAuB;gBACnD,IAAI,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI;oBAC/B,MAAM,IAAI,KAAK,CACX,sFAA+E,IAAI,CAAC,OAAO,EAAE,MAAG,CACnG,CAAC;gBAGN,IACI,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAChD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB;oBACD,IAAA,mDAAwB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAClD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB;oBAED,OAAO;gBAGX,IAAM,IAAI,GAA4B,OAAO,CAAC,cAAc,CACxD,IAAI,EACJ,SAAS,EACT,SAAS,CACZ,CAAC;gBACF,IAAI,IAAI,KAAK,SAAS;oBAAE,OAAO;gBAE/B,IAAA,qDAAyB,EAAC,IAAI,EAAE,IAAI,CAAC;oBACjC,IAAA,qDAAyB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBACvD,IAAA,qDAAyB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACnD,IAAI,EACJ,IAAI,CACP;oBACD,IAAA,iDAAuB,EAAC,IAAI,EAAE,IAAI,CAAC;oBACnC,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAChE,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAChE,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACjD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB,CAAC;YACV,CAAC;QA3CD,CA2CC;IA5CD,CA4CC;AA7CD,CA6CC,CAAC;AA/CO,QAAA,gBAAgB,oBA+CvB"}
@@ -0,0 +1,5 @@
1
+ import ts from "typescript";
2
+ import { Metadata } from "../../metadata/Metadata";
3
+ import { MetadataCollection } from "../MetadataCollection";
4
+ import { MetadataFactory } from "../MetadataFactory";
5
+ export declare const iterate_metadata_array: (checker: ts.TypeChecker) => (options: MetadataFactory.IOptions) => (collection: MetadataCollection) => (meta: Metadata, type: ts.Type) => boolean;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.iterate_metadata_array = void 0;
4
+ var ArrayUtil_1 = require("../../utils/ArrayUtil");
5
+ var explore_metadata_1 = require("./explore_metadata");
6
+ var iterate_metadata_array = function (checker) {
7
+ return function (options) {
8
+ return function (collection) {
9
+ return function (meta, type) {
10
+ if (!checker.isArrayType(type) &&
11
+ !checker.isArrayLikeType(type))
12
+ return false;
13
+ var elemType = type.getNumberIndexType() || null;
14
+ var elemMeta = (0, explore_metadata_1.explore_metadata)(checker)(options)(collection)(elemType, false);
15
+ ArrayUtil_1.ArrayUtil.set(meta.arrays, elemMeta, function (elem) { return elem.getName(); });
16
+ return true;
17
+ };
18
+ };
19
+ };
20
+ };
21
+ exports.iterate_metadata_array = iterate_metadata_array;
22
+ //# sourceMappingURL=iterate_metadata_array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterate_metadata_array.js","sourceRoot":"","sources":["../../../src/factories/internal/iterate_metadata_array.ts"],"names":[],"mappings":";;;AAIA,mDAAkD;AAIlD,uDAAsD;AAE/C,IAAM,sBAAsB,GAC/B,UAAC,OAAuB;IACxB,OAAA,UAAC,OAAiC;QAClC,OAAA,UAAC,UAA8B;YAC/B,OAAA,UAAC,IAAc,EAAE,IAAa;gBAC1B,IACI,CAAE,OAAe,CAAC,WAAW,CAAC,IAAI,CAAC;oBACnC,CAAE,OAAe,CAAC,eAAe,CAAC,IAAI,CAAC;oBAEvC,OAAO,KAAK,CAAC;gBAEjB,IAAM,QAAQ,GAAmB,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC;gBACnE,IAAM,QAAQ,GAAa,IAAA,mCAAgB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CACzD,UAAU,CACb,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAEnB,qBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,OAAO,EAAE,EAAd,CAAc,CAAC,CAAC;gBAC/D,OAAO,IAAI,CAAC;YAChB,CAAC;QAdD,CAcC;IAfD,CAeC;AAhBD,CAgBC,CAAC;AAlBO,QAAA,sBAAsB,0BAkB7B"}
@@ -0,0 +1,3 @@
1
+ import ts from "typescript";
2
+ import { Metadata } from "../../metadata/Metadata";
3
+ export declare const iterate_metadata_atomic: (meta: Metadata, type: ts.Type) => boolean;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
13
+ var __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
29
+ var __importDefault = (this && this.__importDefault) || function (mod) {
30
+ return (mod && mod.__esModule) ? mod : { "default": mod };
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.iterate_metadata_atomic = void 0;
34
+ var typescript_1 = __importDefault(require("typescript"));
35
+ var ArrayUtil_1 = require("../../utils/ArrayUtil");
36
+ var iterate_metadata_atomic = function (meta, type) {
37
+ var e_1, _a;
38
+ var filter = function (flag) { return (type.getFlags() & flag) !== 0; };
39
+ var check = function (flag, literal, className) {
40
+ var _a;
41
+ if (filter(flag) ||
42
+ filter(literal) ||
43
+ ((_a = type.symbol) === null || _a === void 0 ? void 0 : _a.escapedName) === className) {
44
+ ArrayUtil_1.ArrayUtil.add(meta.atomics, className.toLowerCase());
45
+ return true;
46
+ }
47
+ return false;
48
+ };
49
+ try {
50
+ for (var ATOMICS_1 = __values(ATOMICS), ATOMICS_1_1 = ATOMICS_1.next(); !ATOMICS_1_1.done; ATOMICS_1_1 = ATOMICS_1.next()) {
51
+ var _b = __read(ATOMICS_1_1.value, 3), flag = _b[0], literal = _b[1], className = _b[2];
52
+ if (check(flag, literal, className) === true) {
53
+ return true;
54
+ }
55
+ }
56
+ }
57
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
58
+ finally {
59
+ try {
60
+ if (ATOMICS_1_1 && !ATOMICS_1_1.done && (_a = ATOMICS_1.return)) _a.call(ATOMICS_1);
61
+ }
62
+ finally { if (e_1) throw e_1.error; }
63
+ }
64
+ return false;
65
+ };
66
+ exports.iterate_metadata_atomic = iterate_metadata_atomic;
67
+ var ATOMICS = [
68
+ [typescript_1.default.TypeFlags.BooleanLike, typescript_1.default.TypeFlags.BooleanLiteral, "Boolean"],
69
+ [typescript_1.default.TypeFlags.NumberLike, typescript_1.default.TypeFlags.NumberLiteral, "Number"],
70
+ [typescript_1.default.TypeFlags.BigIntLike, typescript_1.default.TypeFlags.BigIntLiteral, "BigInt"],
71
+ [typescript_1.default.TypeFlags.StringLike, typescript_1.default.TypeFlags.StringLiteral, "String"],
72
+ ];
73
+ //# sourceMappingURL=iterate_metadata_atomic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterate_metadata_atomic.js","sourceRoot":"","sources":["../../../src/factories/internal/iterate_metadata_atomic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAI5B,mDAAkD;AAE3C,IAAM,uBAAuB,GAAG,UACnC,IAAc,EACd,IAAa;;IAGb,IAAM,MAAM,GAAG,UAAC,IAAkB,IAAK,OAAA,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAA9B,CAA8B,CAAC;IACtE,IAAM,KAAK,GAAG,UACV,IAAkB,EAClB,OAAqB,EACrB,SAAiB;;QAEjB,IACI,MAAM,CAAC,IAAI,CAAC;YACZ,MAAM,CAAC,OAAO,CAAC;YACf,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,WAAW,MAAK,SAAS,EACxC;YACE,qBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;;QAGF,KAAyC,IAAA,YAAA,SAAA,OAAO,CAAA,gCAAA;YAArC,IAAA,KAAA,4BAA0B,EAAzB,IAAI,QAAA,EAAE,OAAO,QAAA,EAAE,SAAS,QAAA;YAChC,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE;gBAC1C,OAAO,IAAI,CAAC;aACf;SAAA;;;;;;;;;IACL,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AA5BW,QAAA,uBAAuB,2BA4BlC;AAEF,IAAM,OAAO,GAA2C;IACpD,CAAC,oBAAE,CAAC,SAAS,CAAC,WAAW,EAAE,oBAAE,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC;IAClE,CAAC,oBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,oBAAE,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC;IAC/D,CAAC,oBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,oBAAE,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC;IAC/D,CAAC,oBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,oBAAE,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC;CAClE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import ts from "typescript";
2
+ import { Metadata } from "../../metadata/Metadata";
3
+ export declare const iterate_metadata_coalesce: (meta: Metadata, type: ts.Type) => boolean;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.iterate_metadata_coalesce = void 0;
7
+ var typescript_1 = __importDefault(require("typescript"));
8
+ var Writable_1 = require("../../typings/Writable");
9
+ var TypeFactory_1 = require("../TypeFactory");
10
+ var iterate_metadata_coalesce = function (meta, type) {
11
+ var filter = function (flag) { return (type.getFlags() & flag) !== 0; };
12
+ if (filter(typescript_1.default.TypeFlags.Unknown) ||
13
+ filter(typescript_1.default.TypeFlags.Never) ||
14
+ filter(typescript_1.default.TypeFlags.Any)) {
15
+ (0, Writable_1.Writable)(meta).any = true;
16
+ return true;
17
+ }
18
+ else if (filter(typescript_1.default.TypeFlags.Null)) {
19
+ (0, Writable_1.Writable)(meta).nullable = true;
20
+ return true;
21
+ }
22
+ else if (filter(typescript_1.default.TypeFlags.Undefined) ||
23
+ filter(typescript_1.default.TypeFlags.Void) ||
24
+ filter(typescript_1.default.TypeFlags.VoidLike)) {
25
+ (0, Writable_1.Writable)(meta).required = false;
26
+ return true;
27
+ }
28
+ else if (TypeFactory_1.TypeFactory.isFunction(type) === true) {
29
+ (0, Writable_1.Writable)(meta).functional = true;
30
+ return true;
31
+ }
32
+ return false;
33
+ };
34
+ exports.iterate_metadata_coalesce = iterate_metadata_coalesce;
35
+ //# sourceMappingURL=iterate_metadata_coalesce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterate_metadata_coalesce.js","sourceRoot":"","sources":["../../../src/factories/internal/iterate_metadata_coalesce.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAI5B,mDAAkD;AAElD,8CAA6C;AAEtC,IAAM,yBAAyB,GAAG,UACrC,IAAc,EACd,IAAa;IAEb,IAAM,MAAM,GAAG,UAAC,IAAkB,IAAK,OAAA,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAA9B,CAA8B,CAAC;IACtE,IACI,MAAM,CAAC,oBAAE,CAAC,SAAS,CAAC,OAAO,CAAC;QAC5B,MAAM,CAAC,oBAAE,CAAC,SAAS,CAAC,KAAK,CAAC;QAC1B,MAAM,CAAC,oBAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAC1B;QACE,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC;KACf;SAAM,IAAI,MAAM,CAAC,oBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QAClC,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC;KACf;SAAM,IACH,MAAM,CAAC,oBAAE,CAAC,SAAS,CAAC,SAAS,CAAC;QAC9B,MAAM,CAAC,oBAAE,CAAC,SAAS,CAAC,IAAI,CAAC;QACzB,MAAM,CAAC,oBAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC/B;QACE,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC;KACf;SAAM,IAAI,yBAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QAC9C,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;QACjC,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AA3BW,QAAA,yBAAyB,6BA2BpC"}
@@ -0,0 +1,4 @@
1
+ import ts from "typescript";
2
+ import { Metadata } from "../../metadata/Metadata";
3
+ import { MetadataFactory } from "../MetadataFactory";
4
+ export declare const iterate_metadata_constant: (checker: ts.TypeChecker) => (options: MetadataFactory.IOptions) => (meta: Metadata, type: ts.Type) => boolean;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.iterate_metadata_constant = void 0;
7
+ var typescript_1 = __importDefault(require("typescript"));
8
+ var ArrayUtil_1 = require("../../utils/ArrayUtil");
9
+ var iterate_metadata_constant = function (checker) {
10
+ return function (options) {
11
+ return function (meta, type) {
12
+ if (!options.constant)
13
+ return false;
14
+ var filter = function (flag) { return (type.getFlags() & flag) !== 0; };
15
+ if (type.isLiteral()) {
16
+ var value_1 = typeof type.value === "object"
17
+ ? BigInt("".concat(type.value.negative ? "-" : "").concat(type.value.base10Value))
18
+ : type.value;
19
+ var constant = ArrayUtil_1.ArrayUtil.take(meta.constants, function (elem) { return elem.type === typeof value_1; }, function () { return ({
20
+ type: typeof value_1,
21
+ values: [],
22
+ }); });
23
+ ArrayUtil_1.ArrayUtil.add(constant.values, value_1, function (a, b) { return a === b; });
24
+ return true;
25
+ }
26
+ else if (filter(typescript_1.default.TypeFlags.BooleanLiteral)) {
27
+ var value = checker.typeToString(type) === "true";
28
+ var constant = ArrayUtil_1.ArrayUtil.take(meta.constants, function (elem) { return elem.type === "boolean"; }, function () { return ({
29
+ type: "boolean",
30
+ values: [],
31
+ }); });
32
+ ArrayUtil_1.ArrayUtil.add(constant.values, value, function (a, b) { return a === b; });
33
+ return true;
34
+ }
35
+ return false;
36
+ };
37
+ };
38
+ };
39
+ exports.iterate_metadata_constant = iterate_metadata_constant;
40
+ //# sourceMappingURL=iterate_metadata_constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterate_metadata_constant.js","sourceRoot":"","sources":["../../../src/factories/internal/iterate_metadata_constant.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAK5B,mDAAkD;AAI3C,IAAM,yBAAyB,GAClC,UAAC,OAAuB;IACxB,OAAA,UAAC,OAAiC;QAClC,OAAA,UAAC,IAAc,EAAE,IAAa;YAC1B,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAEpC,IAAM,MAAM,GAAG,UAAC,IAAkB,IAAK,OAAA,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAA9B,CAA8B,CAAC;YACtE,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;gBAClB,IAAM,OAAK,GACP,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;oBAC1B,CAAC,CAAC,MAAM,CACF,UAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAC7B,IAAI,CAAC,KAAK,CAAC,WAAW,CACxB,CACL;oBACH,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBACrB,IAAM,QAAQ,GAAqB,qBAAS,CAAC,IAAI,CAC7C,IAAI,CAAC,SAAS,EACd,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,KAAK,OAAO,OAAK,EAA1B,CAA0B,EACpC,cAAM,OAAA,CAAC;oBACH,IAAI,EAAE,OAAO,OAAiB;oBAC9B,MAAM,EAAE,EAAE;iBACb,CAAC,EAHI,CAGJ,CACL,CAAC;gBACF,qBAAS,CAAC,GAAG,CACT,QAAQ,CAAC,MAAoB,EAC7B,OAAK,EACL,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,KAAK,CAAC,EAAP,CAAO,CACpB,CAAC;gBACF,OAAO,IAAI,CAAC;aACf;iBAAM,IAAI,MAAM,CAAC,oBAAE,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE;gBAC5C,IAAM,KAAK,GAAY,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;gBAC7D,IAAM,QAAQ,GAAqB,qBAAS,CAAC,IAAI,CAC7C,IAAI,CAAC,SAAS,EACd,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,KAAK,SAAS,EAAvB,CAAuB,EACjC,cAAM,OAAA,CAAC;oBACH,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,EAAE;iBACb,CAAC,EAHI,CAGJ,CACL,CAAC;gBACF,qBAAS,CAAC,GAAG,CACT,QAAQ,CAAC,MAAmB,EAC5B,KAAK,EACL,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,KAAK,CAAC,EAAP,CAAO,CACpB,CAAC;gBACF,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;IA7CD,CA6CC;AA9CD,CA8CC,CAAC;AAhDO,QAAA,yBAAyB,6BAgDhC"}
@@ -0,0 +1,5 @@
1
+ import ts from "typescript";
2
+ import { Metadata } from "../../metadata/Metadata";
3
+ import { MetadataCollection } from "../MetadataCollection";
4
+ import { MetadataFactory } from "../MetadataFactory";
5
+ export declare const iterate_metadata_object: (checker: ts.TypeChecker) => (options: MetadataFactory.IOptions) => (collection: MetadataCollection) => (meta: Metadata, type: ts.Type, parentResolved: boolean) => boolean;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.iterate_metadata_object = void 0;
7
+ var typescript_1 = __importDefault(require("typescript"));
8
+ var Metadata_1 = require("../../metadata/Metadata");
9
+ var ArrayUtil_1 = require("../../utils/ArrayUtil");
10
+ var MetadataCollection_1 = require("../MetadataCollection");
11
+ var emplace_metadata_object_1 = require("./emplace_metadata_object");
12
+ var iterate_metadata_1 = require("./iterate_metadata");
13
+ var iterate_metadata_object = function (checker) {
14
+ return function (options) {
15
+ return function (collection) {
16
+ return function (meta, type, parentResolved) {
17
+ var filter = function (flag) { return (type.getFlags() & flag) !== 0; };
18
+ if (!filter(typescript_1.default.TypeFlags.Object) && !type.isIntersection())
19
+ return false;
20
+ if (type.isIntersection()) {
21
+ var fakeCollection_1 = new MetadataCollection_1.MetadataCollection();
22
+ var fakeSchema_1 = Metadata_1.Metadata.initialize();
23
+ type.types.forEach(function (t) {
24
+ return (0, iterate_metadata_1.iterate_metadata)(checker)(options)(fakeCollection_1)(fakeSchema_1, t, parentResolved);
25
+ });
26
+ if (fakeSchema_1.objects.length === 0 ||
27
+ fakeSchema_1.objects.length !== fakeSchema_1.size())
28
+ return true;
29
+ }
30
+ var obj = (0, emplace_metadata_object_1.emplace_metadata_object)(checker)(options)(collection)(type, meta.nullable);
31
+ ArrayUtil_1.ArrayUtil.add(meta.objects, obj, function (elem) { return elem.name === obj.name; });
32
+ return true;
33
+ };
34
+ };
35
+ };
36
+ };
37
+ exports.iterate_metadata_object = iterate_metadata_object;
38
+ //# sourceMappingURL=iterate_metadata_object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterate_metadata_object.js","sourceRoot":"","sources":["../../../src/factories/internal/iterate_metadata_object.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,oDAAmD;AAGnD,mDAAkD;AAElD,4DAA2D;AAE3D,qEAAoE;AACpE,uDAAsD;AAE/C,IAAM,uBAAuB,GAChC,UAAC,OAAuB;IACxB,OAAA,UAAC,OAAiC;QAClC,OAAA,UAAC,UAA8B;YAC/B,OAAA,UAAC,IAAc,EAAE,IAAa,EAAE,cAAuB;gBACnD,IAAM,MAAM,GAAG,UAAC,IAAkB,IAAK,OAAA,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAA9B,CAA8B,CAAC;gBACtE,IAAI,CAAC,MAAM,CAAC,oBAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;oBACtD,OAAO,KAAK,CAAC;gBAEjB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;oBACvB,IAAM,gBAAc,GAAG,IAAI,uCAAkB,EAAE,CAAC;oBAChD,IAAM,YAAU,GAAa,mBAAQ,CAAC,UAAU,EAAE,CAAC;oBAEnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,CAAC;wBACjB,OAAA,IAAA,mCAAgB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,gBAAc,CAAC,CAC9C,YAAU,EACV,CAAC,EACD,cAAc,CACjB;oBAJD,CAIC,CACJ,CAAC;oBACF,IACI,YAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;wBAC/B,YAAU,CAAC,OAAO,CAAC,MAAM,KAAK,YAAU,CAAC,IAAI,EAAE;wBAE/C,OAAO,IAAI,CAAC;iBACnB;gBAED,IAAM,GAAG,GAAmB,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CACjE,UAAU,CACb,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvB,qBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAtB,CAAsB,CAAC,CAAC;gBACnE,OAAO,IAAI,CAAC;YAChB,CAAC;QA5BD,CA4BC;IA7BD,CA6BC;AA9BD,CA8BC,CAAC;AAhCO,QAAA,uBAAuB,2BAgC9B"}
@@ -0,0 +1,5 @@
1
+ import ts from "typescript";
2
+ import { Metadata } from "../../metadata/Metadata";
3
+ import { MetadataCollection } from "../MetadataCollection";
4
+ import { MetadataFactory } from "../MetadataFactory";
5
+ export declare const iterate_metadata_resolve: (checker: ts.TypeChecker) => (options: MetadataFactory.IOptions) => (collection: MetadataCollection) => (meta: Metadata, type: ts.Type, parentResolved: boolean) => boolean;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.iterate_metadata_resolve = void 0;
4
+ var Writable_1 = require("../../typings/Writable");
5
+ var TypeFactory_1 = require("../TypeFactory");
6
+ var explore_metadata_1 = require("./explore_metadata");
7
+ var iterate_metadata_resolve = function (checker) {
8
+ return function (options) {
9
+ return function (collection) {
10
+ return function (meta, type, parentResolved) {
11
+ if (options.resolve === true && parentResolved === false) {
12
+ var resolved = TypeFactory_1.TypeFactory.resolve(checker, type);
13
+ if (resolved !== null) {
14
+ (0, Writable_1.Writable)(meta).resolved = (0, explore_metadata_1.explore_metadata)(checker)(options)(collection)(resolved, true);
15
+ return true;
16
+ }
17
+ }
18
+ return false;
19
+ };
20
+ };
21
+ };
22
+ };
23
+ exports.iterate_metadata_resolve = iterate_metadata_resolve;
24
+ //# sourceMappingURL=iterate_metadata_resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterate_metadata_resolve.js","sourceRoot":"","sources":["../../../src/factories/internal/iterate_metadata_resolve.ts"],"names":[],"mappings":";;;AAIA,mDAAkD;AAIlD,8CAA6C;AAC7C,uDAAsD;AAE/C,IAAM,wBAAwB,GACjC,UAAC,OAAuB;IACxB,OAAA,UAAC,OAAiC;QAClC,OAAA,UAAC,UAA8B;YAC/B,OAAA,UAAC,IAAc,EAAE,IAAa,EAAE,cAAuB;gBACnD,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,cAAc,KAAK,KAAK,EAAE;oBACtD,IAAM,QAAQ,GAAmB,yBAAW,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBACpE,IAAI,QAAQ,KAAK,IAAI,EAAE;wBACnB,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAA,mCAAgB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CACxD,UAAU,CACb,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;wBAClB,OAAO,IAAI,CAAC;qBACf;iBACJ;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC;QAXD,CAWC;IAZD,CAYC;AAbD,CAaC,CAAC;AAfO,QAAA,wBAAwB,4BAe/B"}
@@ -0,0 +1,5 @@
1
+ import ts from "typescript";
2
+ import { Metadata } from "../../metadata/Metadata";
3
+ import { MetadataCollection } from "../MetadataCollection";
4
+ import { MetadataFactory } from "../MetadataFactory";
5
+ export declare const iterate_metadata_template: (checker: ts.TypeChecker) => (options: MetadataFactory.IOptions) => (collection: MetadataCollection) => (meta: Metadata, type: ts.Type) => boolean;