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,317 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.MetadataTagFactory = void 0;
31
+ var MetadataTagFactory;
32
+ (function (MetadataTagFactory) {
33
+ function generate(identifier, metadata, tagList) {
34
+ var e_1, _a;
35
+ var output = [];
36
+ try {
37
+ for (var tagList_1 = __values(tagList), tagList_1_1 = tagList_1.next(); !tagList_1_1.done; tagList_1_1 = tagList_1.next()) {
38
+ var tag = tagList_1_1.value;
39
+ var elem = parse(identifier, metadata, tag, output);
40
+ if (elem !== null)
41
+ output.push(elem);
42
+ }
43
+ }
44
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
45
+ finally {
46
+ try {
47
+ if (tagList_1_1 && !tagList_1_1.done && (_a = tagList_1.return)) _a.call(tagList_1);
48
+ }
49
+ finally { if (e_1) throw e_1.error; }
50
+ }
51
+ return output;
52
+ }
53
+ MetadataTagFactory.generate = generate;
54
+ function parse(identifier, metadata, tag, output) {
55
+ var _a;
56
+ var closure = PARSER[tag.name];
57
+ if (closure === undefined)
58
+ return null;
59
+ var text = (_a = (tag.text || [])[0]) === null || _a === void 0 ? void 0 : _a.text;
60
+ if (text === undefined)
61
+ throw new Error("".concat(LABEL, ": no tag value on ").concat(identifier()));
62
+ return closure(identifier, metadata, text, output);
63
+ }
64
+ })(MetadataTagFactory = exports.MetadataTagFactory || (exports.MetadataTagFactory = {}));
65
+ var PARSER = {
66
+ items: function (identifier, metadata, text, output) {
67
+ validate(identifier, metadata, output, "items", "array", [
68
+ "minItems",
69
+ "maxItems",
70
+ ]);
71
+ return parse_range("items", identifier, text, true);
72
+ },
73
+ minItems: function (identifier, metadata, text, output) {
74
+ validate(identifier, metadata, output, "minItems", "array", ["items"]);
75
+ return {
76
+ kind: "minItems",
77
+ value: parse_number(identifier, text),
78
+ };
79
+ },
80
+ maxItems: function (identifier, metadata, text, output) {
81
+ validate(identifier, metadata, output, "maxItems", "array", ["items"]);
82
+ return {
83
+ kind: "maxItems",
84
+ value: parse_number(identifier, text),
85
+ };
86
+ },
87
+ type: function (identifier, metadata, text, output) {
88
+ validate(identifier, metadata, output, "type", "number", []);
89
+ if (text !== "int" && text !== "uint")
90
+ throw new Error("".concat(LABEL, ": invalid type tag on \"").concat(identifier(), "\"."));
91
+ return { kind: "type", value: text };
92
+ },
93
+ range: function (identifier, metadata, text, output) {
94
+ validate(identifier, metadata, output, "range", "number", [
95
+ "exclusiveMinimum",
96
+ "minimum",
97
+ "maximum",
98
+ "exclusiveMaximum",
99
+ ]);
100
+ return parse_range("range", identifier, text, false);
101
+ },
102
+ minimum: function (identifier, metadata, text, output) {
103
+ validate(identifier, metadata, output, "minimum", "number", [
104
+ "range",
105
+ "exclusiveMaximum",
106
+ "exclusiveMinimum",
107
+ ]);
108
+ return {
109
+ kind: "minimum",
110
+ value: parse_number(identifier, text),
111
+ };
112
+ },
113
+ maximum: function (identifier, metadata, text, output) {
114
+ validate(identifier, metadata, output, "maximum", "number", [
115
+ "range",
116
+ "exclusiveMinimum",
117
+ "exclusiveMaximum",
118
+ ]);
119
+ return {
120
+ kind: "maximum",
121
+ value: parse_number(identifier, text),
122
+ };
123
+ },
124
+ exclusiveMinimum: function (identifier, metadata, text, output) {
125
+ validate(identifier, metadata, output, "exclusiveMinimum", "number", [
126
+ "range",
127
+ "minimum",
128
+ "maximum",
129
+ ]);
130
+ return {
131
+ kind: "exclusiveMinimum",
132
+ value: parse_number(identifier, text),
133
+ };
134
+ },
135
+ exclusiveMaximum: function (identifier, metadata, text, output) {
136
+ validate(identifier, metadata, output, "exclusiveMaximum", "number", [
137
+ "range",
138
+ "minimum",
139
+ "maximum",
140
+ ]);
141
+ return {
142
+ kind: "exclusiveMaximum",
143
+ value: parse_number(identifier, text),
144
+ };
145
+ },
146
+ multipleOf: function (identifier, metadata, text, output) {
147
+ validate(identifier, metadata, output, "multipleOf", "number", [
148
+ "step",
149
+ ]);
150
+ return {
151
+ kind: "multipleOf",
152
+ value: parse_number(identifier, text),
153
+ };
154
+ },
155
+ step: function (identifier, metadata, text, output) {
156
+ validate(identifier, metadata, output, "step", "number", [
157
+ "multipleOf",
158
+ ]);
159
+ var minimum = output.some(function (tag) {
160
+ return tag.kind === "minimum" ||
161
+ tag.kind === "exclusiveMinimum" ||
162
+ (tag.kind === "range" && tag.minimum !== undefined);
163
+ });
164
+ if (minimum === undefined)
165
+ throw new Error("".concat(LABEL, ": step requires minimum tag on \"").concat(identifier(), "\"."));
166
+ return {
167
+ kind: "step",
168
+ value: parse_number(identifier, text),
169
+ };
170
+ },
171
+ format: function (identifier, metadata, value, output) {
172
+ validate(identifier, metadata, output, "format", "string", ["pattern"]);
173
+ if (FORMATS.has(value) === false)
174
+ return null;
175
+ return {
176
+ kind: "format",
177
+ value: value,
178
+ };
179
+ },
180
+ pattern: function (identifier, metadata, value, output) {
181
+ validate(identifier, metadata, output, "pattern", "string", ["format"]);
182
+ return {
183
+ kind: "pattern",
184
+ value: value,
185
+ };
186
+ },
187
+ length: function (identifier, metadata, text, output) {
188
+ validate(identifier, metadata, output, "length", "string", [
189
+ "minLength",
190
+ "maxLength",
191
+ ]);
192
+ return parse_range("length", identifier, text, true);
193
+ },
194
+ minLength: function (identifier, metadata, text, output) {
195
+ validate(identifier, metadata, output, "minLength", "string", [
196
+ "length",
197
+ ]);
198
+ return {
199
+ kind: "minLength",
200
+ value: parse_number(identifier, text),
201
+ };
202
+ },
203
+ maxLength: function (identifier, metadata, text, output) {
204
+ validate(identifier, metadata, output, "maxLength", "string", [
205
+ "length",
206
+ ]);
207
+ return {
208
+ kind: "maxLength",
209
+ value: parse_number(identifier, text),
210
+ };
211
+ },
212
+ };
213
+ function parse_range(kind, identifier, text, allowScalar) {
214
+ if (allowScalar === true && Number.isNaN(Number(text)) === false) {
215
+ var value = Number(text);
216
+ if (Math.floor(value) !== value)
217
+ throw new Error("".concat(LABEL, ": invalid length on \"").concat(identifier(), "\"."));
218
+ return {
219
+ kind: kind,
220
+ minimum: {
221
+ include: true,
222
+ value: value,
223
+ },
224
+ maximum: {
225
+ include: true,
226
+ value: value,
227
+ },
228
+ };
229
+ }
230
+ else if (text.indexOf(",") === -1)
231
+ if (LEFT_PARENTHESIS.some(function (str) { return text.indexOf(str) !== -1; }))
232
+ return {
233
+ kind: kind,
234
+ minimum: parse_side("left")(kind)(identifier)(text),
235
+ };
236
+ else if (RIGHT_PARENTHESIS.some(function (str) { return text.indexOf(str) !== -1; }))
237
+ return {
238
+ kind: kind,
239
+ maximum: parse_side("right")(kind)(identifier)(text),
240
+ };
241
+ else
242
+ throw new Error("".concat(LABEL, ": invalid ").concat(kind, " tag on \"").concat(identifier(), "\"."));
243
+ var _a = __read(text.split(","), 2), left = _a[0], right = _a[1];
244
+ return {
245
+ kind: kind,
246
+ minimum: parse_side("left")(kind)(identifier)(left),
247
+ maximum: parse_side("right")(kind)(identifier)(right),
248
+ };
249
+ }
250
+ var parse_side = function (side) {
251
+ var symbol = side === "left" ? LEFT_PARENTHESIS : RIGHT_PARENTHESIS;
252
+ var substring = side === "left"
253
+ ? function (str, index) { return str.substring(index + 1); }
254
+ : function (str, index) { return str.substring(0, index); };
255
+ return function (tag) { return function (identifier) { return function (text) {
256
+ var _a = __read(text.indexOf(symbol[0]) !== -1
257
+ ? [text.indexOf(symbol[0]), true]
258
+ : [text.indexOf(symbol[1]), false], 2), index = _a[0], include = _a[1];
259
+ if (index === -1)
260
+ throw new Error("".concat(LABEL, ": invalid ").concat(tag, " tag on \"").concat(identifier(), "\"."));
261
+ return {
262
+ include: include,
263
+ value: parse_number(identifier, substring(text, index)),
264
+ };
265
+ }; }; };
266
+ };
267
+ function parse_number(identifier, str) {
268
+ var value = Number(str);
269
+ if (isNaN(value) === true)
270
+ throw new Error("".concat(LABEL, ": invalid number on \"").concat(identifier(), "\"."));
271
+ return value;
272
+ }
273
+ var LABEL = "Error on TSON.MetadataTagFactory.generate()";
274
+ var LEFT_PARENTHESIS = ["[", "("];
275
+ var RIGHT_PARENTHESIS = ["]", ")"];
276
+ var FORMATS = new Set(["uuid", "email", "url", "mobile", "ipv4", "ipv6"]);
277
+ var WRONG_TYPE = function (tag, type, identifier) { return "".concat(LABEL, ": ").concat(tag, " requires ").concat(type, " type, but no \"").concat(identifier(), "\"."); };
278
+ function validate(identifier, metadata, output, kind, type, neighbors) {
279
+ var e_2, _a;
280
+ if (type === "array") {
281
+ if (has_array(metadata) === false)
282
+ throw new Error(WRONG_TYPE(kind, "array", identifier));
283
+ }
284
+ else if (has_atomic(metadata, type) === false)
285
+ throw new Error(WRONG_TYPE(kind, type, identifier));
286
+ if (output.some(function (tag) { return tag.kind === kind; }))
287
+ throw new Error("".concat(LABEL, ": duplicated ").concat(kind, " tags on \"").concat(identifier(), "\"."));
288
+ var _loop_1 = function (name_1) {
289
+ if (output.some(function (tag) { return tag.kind === name_1; }))
290
+ throw new Error("".concat(LABEL, ": ").concat(kind, " and ").concat(name_1, " tags on \"").concat(identifier(), "\"."));
291
+ };
292
+ try {
293
+ for (var neighbors_1 = __values(neighbors), neighbors_1_1 = neighbors_1.next(); !neighbors_1_1.done; neighbors_1_1 = neighbors_1.next()) {
294
+ var name_1 = neighbors_1_1.value;
295
+ _loop_1(name_1);
296
+ }
297
+ }
298
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
299
+ finally {
300
+ try {
301
+ if (neighbors_1_1 && !neighbors_1_1.done && (_a = neighbors_1.return)) _a.call(neighbors_1);
302
+ }
303
+ finally { if (e_2) throw e_2.error; }
304
+ }
305
+ }
306
+ function has_atomic(metadata, type) {
307
+ return (metadata.atomics.find(function (atom) { return atom === type; }) !== undefined ||
308
+ metadata.arrays.some(function (child) { return has_atomic(child, type); }) ||
309
+ metadata.tuples.some(function (tuple) {
310
+ return tuple.some(function (child) { return has_atomic(child, type); });
311
+ }));
312
+ }
313
+ function has_array(metadata) {
314
+ return (metadata.arrays.length !== 0 ||
315
+ metadata.tuples.some(function (tuple) { return tuple.some(function (child) { return has_array(child); }); }));
316
+ }
317
+ //# sourceMappingURL=MetadataTagFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetadataTagFactory.js","sourceRoot":"","sources":["../../src/factories/MetadataTagFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import ts from "typescript";
2
+ export declare namespace StatementFactory {
3
+ function variable(flag: ts.NodeFlags, name: string, initializer?: ts.Expression): ts.VariableStatement;
4
+ function transpile(script: string): ts.ExpressionStatement;
5
+ function require(variable: string, location: string): ts.ImportDeclaration;
6
+ function importModulo(variable: string, location: string): ts.ImportDeclaration;
7
+ }
@@ -0,0 +1,31 @@
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.StatementFactory = void 0;
7
+ var typescript_1 = __importDefault(require("typescript"));
8
+ var StatementFactory;
9
+ (function (StatementFactory) {
10
+ function variable(flag, name, initializer) {
11
+ return typescript_1.default.factory.createVariableStatement(undefined, typescript_1.default.factory.createVariableDeclarationList([
12
+ typescript_1.default.factory.createVariableDeclaration(name, undefined, undefined, initializer),
13
+ ], flag));
14
+ }
15
+ StatementFactory.variable = variable;
16
+ function transpile(script) {
17
+ return typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createIdentifier(typescript_1.default.transpile(script)));
18
+ }
19
+ StatementFactory.transpile = transpile;
20
+ function require(variable, location) {
21
+ return typescript_1.default.factory.createImportDeclaration(undefined, undefined, typescript_1.default.factory.createImportClause(false, undefined, typescript_1.default.factory.createNamespaceImport(typescript_1.default.factory.createIdentifier(variable))), typescript_1.default.factory.createStringLiteral(location));
22
+ }
23
+ StatementFactory.require = require;
24
+ function importModulo(variable, location) {
25
+ return typescript_1.default.factory.createImportDeclaration(undefined, undefined, typescript_1.default.factory.createImportClause(false, undefined, typescript_1.default.factory.createNamedImports([
26
+ typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier(variable)),
27
+ ])), typescript_1.default.factory.createStringLiteral(location));
28
+ }
29
+ StatementFactory.importModulo = importModulo;
30
+ })(StatementFactory = exports.StatementFactory || (exports.StatementFactory = {}));
31
+ //# sourceMappingURL=StatementFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatementFactory.js","sourceRoot":"","sources":["../../src/factories/StatementFactory.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,IAAiB,gBAAgB,CA6DhC;AA7DD,WAAiB,gBAAgB;IAC7B,SAAgB,QAAQ,CACpB,IAAkB,EAClB,IAAY,EACZ,WAA2B;QAE3B,OAAO,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CACrC,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CACpC;YACI,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAChC,IAAI,EACJ,SAAS,EACT,SAAS,EACT,WAAW,CACd;SACJ,EACD,IAAI,CACP,CACJ,CAAC;IACN,CAAC;IAnBe,yBAAQ,WAmBvB,CAAA;IAED,SAAgB,SAAS,CAAC,MAAc;QACpC,OAAO,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CACvC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,oBAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CACpD,CAAC;IACN,CAAC;IAJe,0BAAS,YAIxB,CAAA;IAED,SAAgB,OAAO,CAAC,QAAgB,EAAE,QAAgB;QACtD,OAAO,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CACrC,SAAS,EACT,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CACzB,KAAK,EACL,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC5B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CACxC,CACJ,EACD,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAC3C,CAAC;IACN,CAAC;IAbe,wBAAO,UAatB,CAAA;IAED,SAAgB,YAAY,CAAC,QAAgB,EAAE,QAAgB;QAC3D,OAAO,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CACrC,SAAS,EACT,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CACzB,KAAK,EACL,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAC1B,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC5B,KAAK,EACL,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CACxC;SACJ,CAAC,CACL,EACD,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAC3C,CAAC;IACN,CAAC;IAjBe,6BAAY,eAiB3B,CAAA;AACL,CAAC,EA7DgB,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QA6DhC"}
@@ -0,0 +1,4 @@
1
+ import ts from "typescript";
2
+ export declare namespace TemplateFactory {
3
+ function generate(expressions: ts.Expression[]): ts.Expression;
4
+ }
@@ -0,0 +1,41 @@
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.TemplateFactory = void 0;
7
+ var typescript_1 = __importDefault(require("typescript"));
8
+ var TemplateFactory;
9
+ (function (TemplateFactory) {
10
+ function generate(expressions) {
11
+ var it = {
12
+ value: "",
13
+ index: 0,
14
+ };
15
+ gather(expressions, it);
16
+ var head = typescript_1.default.factory.createTemplateHead(it.value);
17
+ var spans = [];
18
+ while (true) {
19
+ var elem = expressions[it.index++];
20
+ gather(expressions, it);
21
+ var broken = it.index === expressions.length;
22
+ spans.push(typescript_1.default.factory.createTemplateSpan(elem, broken
23
+ ? typescript_1.default.factory.createTemplateTail(it.value)
24
+ : typescript_1.default.factory.createTemplateMiddle(it.value)));
25
+ if (broken === true)
26
+ break;
27
+ }
28
+ return typescript_1.default.factory.createTemplateExpression(head, spans);
29
+ }
30
+ TemplateFactory.generate = generate;
31
+ function gather(expressions, it) {
32
+ var found = expressions.findIndex(function (elem, index) { return index >= it.index && !typescript_1.default.isStringLiteral(elem); });
33
+ var last = found !== -1 ? found : expressions.length;
34
+ it.value = expressions
35
+ .slice(it.index, last)
36
+ .map(function (elem) { return elem.text; })
37
+ .reduce(function (x, y) { return x + y; }, "");
38
+ it.index = last;
39
+ }
40
+ })(TemplateFactory = exports.TemplateFactory || (exports.TemplateFactory = {}));
41
+ //# sourceMappingURL=TemplateFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateFactory.js","sourceRoot":"","sources":["../../src/factories/TemplateFactory.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,IAAiB,eAAe,CA8C/B;AA9CD,WAAiB,eAAe;IAC5B,SAAgB,QAAQ,CAAC,WAA4B;QACjD,IAAM,EAAE,GAAa;YACjB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,CAAC;SACX,CAAC;QACF,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAExB,IAAM,IAAI,GAAoB,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACtE,IAAM,KAAK,GAAsB,EAAE,CAAC;QAEpC,OAAO,IAAI,EAAE;YACT,IAAM,IAAI,GAAkB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAE,CAAC;YACrD,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAExB,IAAM,MAAM,GAAY,EAAE,CAAC,KAAK,KAAK,WAAW,CAAC,MAAM,CAAC;YACxD,KAAK,CAAC,IAAI,CACN,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CACzB,IAAI,EACJ,MAAM;gBACF,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,CAAC;gBACzC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,CAAC,CAClD,CACJ,CAAC;YACF,IAAI,MAAM,KAAK,IAAI;gBAAE,MAAM;SAC9B;QACD,OAAO,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IA1Be,wBAAQ,WA0BvB,CAAA;IAED,SAAS,MAAM,CAAC,WAA4B,EAAE,EAAY;QACtD,IAAM,KAAK,GAAW,WAAW,CAAC,SAAS,CACvC,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,oBAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAA9C,CAA8C,CAClE,CAAC;QAEF,IAAM,IAAI,GAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;QAC/D,EAAE,CAAC,KAAK,GAAG,WAAW;aACjB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;aACrB,GAAG,CAAC,UAAC,IAAI,IAAK,OAAC,IAAyB,CAAC,IAAI,EAA/B,CAA+B,CAAC;aAC9C,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,EAAL,CAAK,EAAE,EAAE,CAAC,CAAC;QACjC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;AAML,CAAC,EA9CgB,eAAe,GAAf,uBAAe,KAAf,uBAAe,QA8C/B"}
@@ -0,0 +1,6 @@
1
+ import ts from "typescript";
2
+ export declare namespace TypeFactory {
3
+ function resolve(checker: ts.TypeChecker, type: ts.Type): ts.Type | null;
4
+ function isFunction(type: ts.Type): boolean;
5
+ function getFullName(checker: ts.TypeChecker, type: ts.Type): string;
6
+ }
@@ -0,0 +1,71 @@
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.TypeFactory = void 0;
7
+ var typescript_1 = __importDefault(require("typescript"));
8
+ var TypeFactory;
9
+ (function (TypeFactory) {
10
+ function resolve(checker, type) {
11
+ return get_return_type(checker, type, "toJSON");
12
+ }
13
+ TypeFactory.resolve = resolve;
14
+ function isFunction(type) {
15
+ return getFunction(type) !== null;
16
+ }
17
+ TypeFactory.isFunction = isFunction;
18
+ function getFunction(type) {
19
+ var _a, _b;
20
+ var node = (_b = (_a = type.symbol) === null || _a === void 0 ? void 0 : _a.declarations) === null || _b === void 0 ? void 0 : _b[0];
21
+ if (node === undefined)
22
+ return null;
23
+ return typescript_1.default.isFunctionLike(node)
24
+ ? node
25
+ : typescript_1.default.isPropertyAssignment(node) || typescript_1.default.isPropertyDeclaration(node)
26
+ ? typescript_1.default.isFunctionLike(node.initializer)
27
+ ? node.initializer
28
+ : null
29
+ : null;
30
+ }
31
+ function get_return_type(checker, type, name) {
32
+ var symbol = type.getProperty(name);
33
+ if (!symbol)
34
+ return null;
35
+ else if (!symbol.valueDeclaration)
36
+ return null;
37
+ var functor = checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration);
38
+ var signature = checker.getSignaturesOfType(functor, typescript_1.default.SignatureKind.Call)[0];
39
+ return signature ? signature.getReturnType() : null;
40
+ }
41
+ function getFullName(checker, type) {
42
+ var symbol = type.getSymbol() || type.aliasSymbol;
43
+ if (symbol === undefined)
44
+ return checker.typeToString(type, undefined, undefined);
45
+ if (type.aliasSymbol === undefined && type.isUnionOrIntersection()) {
46
+ var joiner = type.isIntersection() ? " & " : " | ";
47
+ return type.types
48
+ .map(function (child) { return getFullName(checker, child); })
49
+ .join(joiner);
50
+ }
51
+ var name = get_name(symbol);
52
+ var generic = checker.getTypeArguments(type);
53
+ return generic.length
54
+ ? name === "Promise"
55
+ ? getFullName(checker, generic[0])
56
+ : "".concat(name, "<").concat(generic
57
+ .map(function (child) { return getFullName(checker, child); })
58
+ .join(", "), ">")
59
+ : name;
60
+ }
61
+ TypeFactory.getFullName = getFullName;
62
+ function explore_name(name, decl) {
63
+ return typescript_1.default.isModuleBlock(decl)
64
+ ? explore_name("".concat(decl.parent.name.getText(), ".").concat(name), decl.parent.parent)
65
+ : name;
66
+ }
67
+ function get_name(symbol) {
68
+ return explore_name(symbol.escapedName.toString(), symbol.getDeclarations()[0].parent);
69
+ }
70
+ })(TypeFactory = exports.TypeFactory || (exports.TypeFactory = {}));
71
+ //# sourceMappingURL=TypeFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeFactory.js","sourceRoot":"","sources":["../../src/factories/TypeFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import ts from "typescript";
2
+ export declare namespace ValueFactory {
3
+ const NULL: () => ts.NullLiteral;
4
+ const UNDEFINED: () => ts.Identifier;
5
+ const BOOLEAN: (value: boolean) => ts.TrueLiteral | ts.FalseLiteral;
6
+ const INPUT: (str?: string) => ts.Identifier;
7
+ const TYPEOF: (input: ts.Expression) => ts.TypeOfExpression;
8
+ }
@@ -0,0 +1,23 @@
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.ValueFactory = void 0;
7
+ var typescript_1 = __importDefault(require("typescript"));
8
+ var ValueFactory;
9
+ (function (ValueFactory) {
10
+ ValueFactory.NULL = function () { return typescript_1.default.factory.createNull(); };
11
+ ValueFactory.UNDEFINED = function () { return typescript_1.default.factory.createIdentifier("undefined"); };
12
+ ValueFactory.BOOLEAN = function (value) {
13
+ return value ? typescript_1.default.factory.createTrue() : typescript_1.default.factory.createFalse();
14
+ };
15
+ ValueFactory.INPUT = function (str) {
16
+ if (str === void 0) { str = "input"; }
17
+ return typescript_1.default.factory.createIdentifier(str);
18
+ };
19
+ ValueFactory.TYPEOF = function (input) {
20
+ return typescript_1.default.factory.createTypeOfExpression(input);
21
+ };
22
+ })(ValueFactory = exports.ValueFactory || (exports.ValueFactory = {}));
23
+ //# sourceMappingURL=ValueFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValueFactory.js","sourceRoot":"","sources":["../../src/factories/ValueFactory.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,IAAiB,YAAY,CAS5B;AATD,WAAiB,YAAY;IACZ,iBAAI,GAAG,cAAM,OAAA,oBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAvB,CAAuB,CAAC;IACrC,sBAAS,GAAG,cAAM,OAAA,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAxC,CAAwC,CAAC;IAC3D,oBAAO,GAAG,UAAC,KAAc;QAClC,OAAA,KAAK,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,WAAW,EAAE;IAA1D,CAA0D,CAAC;IAClD,kBAAK,GAAG,UAAC,GAAqB;QAArB,oBAAA,EAAA,aAAqB;QACvC,OAAA,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC;IAAhC,CAAgC,CAAC;IACxB,mBAAM,GAAG,UAAC,KAAoB;QACvC,OAAA,oBAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC;IAAxC,CAAwC,CAAC;AACjD,CAAC,EATgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAS5B"}
@@ -0,0 +1,4 @@
1
+ import { Metadata } from "../../metadata/Metadata";
2
+ export declare namespace MetadataHelper {
3
+ function literal_to_metadata(key: string): Metadata;
4
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetadataHelper = void 0;
4
+ var Metadata_1 = require("../../metadata/Metadata");
5
+ var MetadataHelper;
6
+ (function (MetadataHelper) {
7
+ function literal_to_metadata(key) {
8
+ var metadata = Metadata_1.Metadata.initialize();
9
+ metadata.constants.push({
10
+ type: "string",
11
+ values: [key],
12
+ });
13
+ return metadata;
14
+ }
15
+ MetadataHelper.literal_to_metadata = literal_to_metadata;
16
+ })(MetadataHelper = exports.MetadataHelper || (exports.MetadataHelper = {}));
17
+ //# sourceMappingURL=MetadataHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetadataHelper.js","sourceRoot":"","sources":["../../../src/factories/internal/MetadataHelper.ts"],"names":[],"mappings":";;;AAAA,oDAAmD;AAEnD,IAAiB,cAAc,CAS9B;AATD,WAAiB,cAAc;IAC3B,SAAgB,mBAAmB,CAAC,GAAW;QAC3C,IAAM,QAAQ,GAAa,mBAAQ,CAAC,UAAU,EAAE,CAAC;QACjD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,CAAC,GAAG,CAAC;SAChB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IACpB,CAAC;IAPe,kCAAmB,sBAOlC,CAAA;AACL,CAAC,EATgB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAS9B"}
@@ -0,0 +1,5 @@
1
+ import ts from "typescript";
2
+ import { MetadataObject } from "../../metadata/MetadataObject";
3
+ import { MetadataCollection } from "../MetadataCollection";
4
+ import { MetadataFactory } from "../MetadataFactory";
5
+ export declare const emplace_metadata_object: (checker: ts.TypeChecker) => (options: MetadataFactory.IOptions) => (collection: MetadataCollection) => (parent: ts.Type, nullable: boolean) => MetadataObject;