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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/lib/executable/TypiaGenerateWizard.js +1 -1
  2. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  3. package/lib/executable/TypiaSetupWizard.js +1 -1
  4. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  5. package/lib/executable/setup/ArgumentParser.d.ts +1 -1
  6. package/lib/executable/setup/ArgumentParser.js +31 -33
  7. package/lib/executable/setup/ArgumentParser.js.map +1 -1
  8. package/lib/executable/setup/FileRetriever.d.ts +5 -2
  9. package/lib/executable/setup/FileRetriever.js +12 -21
  10. package/lib/executable/setup/FileRetriever.js.map +1 -1
  11. package/lib/executable/setup/PackageManager.js +4 -1
  12. package/lib/executable/setup/PackageManager.js.map +1 -1
  13. package/lib/factories/ExpressionFactory.d.ts +14 -7
  14. package/lib/factories/ExpressionFactory.js +26 -34
  15. package/lib/factories/ExpressionFactory.js.map +1 -1
  16. package/lib/factories/IdentifierFactory.d.ts +2 -2
  17. package/lib/factories/IdentifierFactory.js +10 -6
  18. package/lib/factories/IdentifierFactory.js.map +1 -1
  19. package/lib/factories/MetadataCollection.js +4 -1
  20. package/lib/factories/MetadataCollection.js.map +1 -1
  21. package/lib/factories/MetadataCommentTagFactory.js +133 -128
  22. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  23. package/lib/factories/MetadataFactory.js +1 -1
  24. package/lib/factories/MetadataFactory.js.map +1 -1
  25. package/lib/factories/MetadataTypeTagFactory.d.ts +14 -2
  26. package/lib/factories/MetadataTypeTagFactory.js +312 -267
  27. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  28. package/lib/factories/MetadataTypeTagSchemaFactory.d.ts +4 -1
  29. package/lib/factories/MetadataTypeTagSchemaFactory.js +70 -61
  30. package/lib/factories/MetadataTypeTagSchemaFactory.js.map +1 -1
  31. package/lib/factories/NumericRangeFactory.d.ts +2 -2
  32. package/lib/factories/NumericRangeFactory.js +2 -10
  33. package/lib/factories/NumericRangeFactory.js.map +1 -1
  34. package/lib/factories/StatementFactory.d.ts +14 -3
  35. package/lib/factories/StatementFactory.js +16 -8
  36. package/lib/factories/StatementFactory.js.map +1 -1
  37. package/lib/factories/TemplateFactory.js +24 -18
  38. package/lib/factories/TemplateFactory.js.map +1 -1
  39. package/lib/factories/TypeFactory.d.ts +10 -2
  40. package/lib/factories/TypeFactory.js +65 -53
  41. package/lib/factories/TypeFactory.js.map +1 -1
  42. package/lib/factories/internal/metadata/iterate_metadata.js +4 -1
  43. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  44. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js +16 -11
  45. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -1
  46. package/lib/factories/internal/metadata/iterate_metadata_escape.js +5 -1
  47. package/lib/factories/internal/metadata/iterate_metadata_escape.js.map +1 -1
  48. package/lib/factories/internal/metadata/iterate_metadata_function.js.map +1 -1
  49. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +6 -1
  50. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  51. package/lib/factories/internal/metadata/iterate_metadata_map.js +5 -1
  52. package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
  53. package/lib/factories/internal/metadata/iterate_metadata_native.js +11 -3
  54. package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
  55. package/lib/factories/internal/metadata/iterate_metadata_set.js +5 -1
  56. package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
  57. package/lib/index.mjs +25 -25
  58. package/lib/index.mjs.map +1 -1
  59. package/lib/programmers/AssertProgrammer.js +36 -22
  60. package/lib/programmers/AssertProgrammer.js.map +1 -1
  61. package/lib/programmers/CheckerProgrammer.js +316 -251
  62. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  63. package/lib/programmers/FeatureProgrammer.js +34 -20
  64. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  65. package/lib/programmers/IsProgrammer.js +41 -22
  66. package/lib/programmers/IsProgrammer.js.map +1 -1
  67. package/lib/programmers/RandomProgrammer.js +171 -135
  68. package/lib/programmers/RandomProgrammer.js.map +1 -1
  69. package/lib/programmers/TypiaProgrammer.d.ts +2 -2
  70. package/lib/programmers/TypiaProgrammer.js +79 -75
  71. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  72. package/lib/programmers/ValidateProgrammer.js +55 -24
  73. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  74. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +30 -15
  75. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -1
  76. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +16 -13
  77. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -1
  78. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js +11 -8
  79. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js.map +1 -1
  80. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js +8 -2
  81. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js.map +1 -1
  82. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +11 -5
  83. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -1
  84. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +8 -2
  85. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -1
  86. package/lib/programmers/helpers/CloneJoiner.js +13 -4
  87. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  88. package/lib/programmers/helpers/FunctionImporter.js +10 -7
  89. package/lib/programmers/helpers/FunctionImporter.js.map +1 -1
  90. package/lib/programmers/helpers/NotationJoiner.d.ts +2 -1
  91. package/lib/programmers/helpers/NotationJoiner.js +40 -33
  92. package/lib/programmers/helpers/NotationJoiner.js.map +1 -1
  93. package/lib/programmers/helpers/PruneJoiner.js +6 -3
  94. package/lib/programmers/helpers/PruneJoiner.js.map +1 -1
  95. package/lib/programmers/helpers/RandomJoiner.d.ts +1 -1
  96. package/lib/programmers/helpers/RandomJoiner.js +4 -1
  97. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  98. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  99. package/lib/programmers/helpers/StringifyJoinder.js +5 -2
  100. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
  101. package/lib/programmers/helpers/StringifyPredicator.d.ts +1 -1
  102. package/lib/programmers/helpers/StringifyPredicator.js +4 -3
  103. package/lib/programmers/helpers/StringifyPredicator.js.map +1 -1
  104. package/lib/programmers/helpers/UnionExplorer.d.ts +52 -12
  105. package/lib/programmers/helpers/UnionExplorer.js +183 -144
  106. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  107. package/lib/programmers/helpers/UnionPredicator.d.ts +1 -1
  108. package/lib/programmers/helpers/UnionPredicator.js +7 -7
  109. package/lib/programmers/http/HttpAssertFormDataProgrammer.js +8 -2
  110. package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -1
  111. package/lib/programmers/http/HttpAssertHeadersProgrammer.js +8 -2
  112. package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
  113. package/lib/programmers/http/HttpAssertQueryProgrammer.js +8 -2
  114. package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
  115. package/lib/programmers/http/HttpFormDataProgrammer.js +84 -71
  116. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  117. package/lib/programmers/http/HttpHeadersProgrammer.js +76 -69
  118. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  119. package/lib/programmers/http/HttpIsFormDataProgrammer.js +12 -3
  120. package/lib/programmers/http/HttpIsFormDataProgrammer.js.map +1 -1
  121. package/lib/programmers/http/HttpIsHeadersProgrammer.js +12 -3
  122. package/lib/programmers/http/HttpIsHeadersProgrammer.js.map +1 -1
  123. package/lib/programmers/http/HttpIsQueryProgrammer.js +12 -3
  124. package/lib/programmers/http/HttpIsQueryProgrammer.js.map +1 -1
  125. package/lib/programmers/http/HttpParameterProgrammer.js +17 -10
  126. package/lib/programmers/http/HttpParameterProgrammer.js.map +1 -1
  127. package/lib/programmers/http/HttpQueryProgrammer.js +76 -63
  128. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  129. package/lib/programmers/http/HttpValidateFormDataProgrammer.js +8 -2
  130. package/lib/programmers/http/HttpValidateFormDataProgrammer.js.map +1 -1
  131. package/lib/programmers/http/HttpValidateHeadersProgrammer.js +8 -2
  132. package/lib/programmers/http/HttpValidateHeadersProgrammer.js.map +1 -1
  133. package/lib/programmers/http/HttpValidateQueryProgrammer.js +8 -2
  134. package/lib/programmers/http/HttpValidateQueryProgrammer.js.map +1 -1
  135. package/lib/programmers/internal/application_escaped.js +4 -4
  136. package/lib/programmers/internal/application_escaped.js.map +1 -1
  137. package/lib/programmers/internal/application_templates.js +8 -2
  138. package/lib/programmers/internal/application_templates.js.map +1 -1
  139. package/lib/programmers/internal/application_union_discriminator.d.ts +1 -1
  140. package/lib/programmers/internal/application_union_discriminator.js +6 -6
  141. package/lib/programmers/internal/application_union_discriminator.js.map +1 -1
  142. package/lib/programmers/internal/application_v30_object.js +6 -3
  143. package/lib/programmers/internal/application_v30_object.js.map +1 -1
  144. package/lib/programmers/internal/application_v31_object.js +4 -1
  145. package/lib/programmers/internal/application_v31_object.js.map +1 -1
  146. package/lib/programmers/internal/check_array_length.js +21 -26
  147. package/lib/programmers/internal/check_array_length.js.map +1 -1
  148. package/lib/programmers/internal/check_bigint.js +18 -26
  149. package/lib/programmers/internal/check_bigint.js.map +1 -1
  150. package/lib/programmers/internal/check_dynamic_key.d.ts +1 -5
  151. package/lib/programmers/internal/check_dynamic_key.js +109 -91
  152. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  153. package/lib/programmers/internal/check_dynamic_properties.js +92 -91
  154. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  155. package/lib/programmers/internal/check_everything.js +1 -1
  156. package/lib/programmers/internal/check_everything.js.map +1 -1
  157. package/lib/programmers/internal/check_native.js +8 -5
  158. package/lib/programmers/internal/check_native.js.map +1 -1
  159. package/lib/programmers/internal/check_number.js +59 -65
  160. package/lib/programmers/internal/check_number.js.map +1 -1
  161. package/lib/programmers/internal/check_object.js +31 -22
  162. package/lib/programmers/internal/check_object.js.map +1 -1
  163. package/lib/programmers/internal/check_string.js +18 -26
  164. package/lib/programmers/internal/check_string.js.map +1 -1
  165. package/lib/programmers/internal/check_template.js +20 -21
  166. package/lib/programmers/internal/check_template.js.map +1 -1
  167. package/lib/programmers/internal/check_union_array_like.js +86 -53
  168. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  169. package/lib/programmers/internal/decode_union_object.js +59 -49
  170. package/lib/programmers/internal/decode_union_object.js.map +1 -1
  171. package/lib/programmers/internal/feature_object_entries.js +31 -37
  172. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  173. package/lib/programmers/internal/llm_schema_escaped.js +29 -11
  174. package/lib/programmers/internal/llm_schema_escaped.js.map +1 -1
  175. package/lib/programmers/internal/llm_schema_object.js +4 -1
  176. package/lib/programmers/internal/llm_schema_object.js.map +1 -1
  177. package/lib/programmers/internal/metadata_to_pattern.js +44 -41
  178. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  179. package/lib/programmers/internal/postfix_of_tuple.d.ts +1 -1
  180. package/lib/programmers/internal/postfix_of_tuple.js +3 -0
  181. package/lib/programmers/internal/postfix_of_tuple.js.map +1 -1
  182. package/lib/programmers/internal/prune_object_properties.js +7 -4
  183. package/lib/programmers/internal/prune_object_properties.js.map +1 -1
  184. package/lib/programmers/internal/random_custom.js +8 -14
  185. package/lib/programmers/internal/random_custom.js.map +1 -1
  186. package/lib/programmers/internal/stringify_dynamic_properties.js +8 -5
  187. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  188. package/lib/programmers/internal/stringify_regular_properties.js +4 -4
  189. package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
  190. package/lib/programmers/internal/template_to_pattern.js +10 -5
  191. package/lib/programmers/internal/template_to_pattern.js.map +1 -1
  192. package/lib/programmers/internal/wrap_metadata_rest_tuple.d.ts +1 -2
  193. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +3 -0
  194. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  195. package/lib/programmers/json/JsonAssertParseProgrammer.js +8 -2
  196. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  197. package/lib/programmers/json/JsonAssertStringifyProgrammer.js +8 -2
  198. package/lib/programmers/json/JsonAssertStringifyProgrammer.js.map +1 -1
  199. package/lib/programmers/json/JsonIsParseProgrammer.js +8 -2
  200. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  201. package/lib/programmers/json/JsonIsStringifyProgrammer.js +8 -2
  202. package/lib/programmers/json/JsonIsStringifyProgrammer.js.map +1 -1
  203. package/lib/programmers/json/JsonStringifyProgrammer.js +126 -95
  204. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  205. package/lib/programmers/json/JsonValidateParseProgrammer.js +8 -2
  206. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  207. package/lib/programmers/json/JsonValidateStringifyProgrammer.js +12 -3
  208. package/lib/programmers/json/JsonValidateStringifyProgrammer.js.map +1 -1
  209. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +8 -2
  210. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  211. package/lib/programmers/misc/MiscAssertPruneProgrammer.js +12 -3
  212. package/lib/programmers/misc/MiscAssertPruneProgrammer.js.map +1 -1
  213. package/lib/programmers/misc/MiscCloneProgrammer.js +203 -162
  214. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  215. package/lib/programmers/misc/MiscIsCloneProgrammer.js +8 -2
  216. package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
  217. package/lib/programmers/misc/MiscIsPruneProgrammer.js +8 -2
  218. package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -1
  219. package/lib/programmers/misc/MiscPruneProgrammer.js +114 -92
  220. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  221. package/lib/programmers/misc/MiscValidateCloneProgrammer.js +12 -3
  222. package/lib/programmers/misc/MiscValidateCloneProgrammer.js.map +1 -1
  223. package/lib/programmers/misc/MiscValidatePruneProgrammer.js +16 -4
  224. package/lib/programmers/misc/MiscValidatePruneProgrammer.js.map +1 -1
  225. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js +8 -2
  226. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js.map +1 -1
  227. package/lib/programmers/notations/NotationGeneralProgrammer.d.ts +4 -1
  228. package/lib/programmers/notations/NotationGeneralProgrammer.js +209 -145
  229. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  230. package/lib/programmers/notations/NotationIsGeneralProgrammer.js +8 -2
  231. package/lib/programmers/notations/NotationIsGeneralProgrammer.js.map +1 -1
  232. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js +12 -3
  233. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js.map +1 -1
  234. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +8 -2
  235. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  236. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js +8 -2
  237. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js.map +1 -1
  238. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +51 -30
  239. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  240. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +89 -65
  241. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  242. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +12 -3
  243. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
  244. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js +8 -2
  245. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js.map +1 -1
  246. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js +8 -2
  247. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js.map +1 -1
  248. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js +12 -3
  249. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js.map +1 -1
  250. package/lib/transformers/features/llm/LlmApplicationTransformer.js +5 -2
  251. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  252. package/lib/utils/NamingConvention/NamingConvention.js +41 -47
  253. package/lib/utils/NamingConvention/NamingConvention.js.map +1 -1
  254. package/package.json +1 -1
  255. package/src/executable/TypiaGenerateWizard.ts +1 -1
  256. package/src/executable/TypiaSetupWizard.ts +1 -1
  257. package/src/executable/setup/ArgumentParser.ts +27 -28
  258. package/src/executable/setup/FileRetriever.ts +14 -17
  259. package/src/executable/setup/PackageManager.ts +4 -3
  260. package/src/factories/ExpressionFactory.ts +98 -84
  261. package/src/factories/IdentifierFactory.ts +26 -7
  262. package/src/factories/MetadataCollection.ts +4 -1
  263. package/src/factories/MetadataCommentTagFactory.ts +97 -88
  264. package/src/factories/MetadataFactory.ts +2 -1
  265. package/src/factories/MetadataTypeTagFactory.ts +334 -285
  266. package/src/factories/MetadataTypeTagSchemaFactory.ts +75 -52
  267. package/src/factories/NumericRangeFactory.ts +8 -8
  268. package/src/factories/StatementFactory.ts +27 -11
  269. package/src/factories/TemplateFactory.ts +29 -21
  270. package/src/factories/TypeFactory.ts +80 -58
  271. package/src/factories/internal/metadata/iterate_metadata.ts +4 -1
  272. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +6 -4
  273. package/src/factories/internal/metadata/iterate_metadata_escape.ts +5 -3
  274. package/src/factories/internal/metadata/iterate_metadata_function.ts +4 -4
  275. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +6 -3
  276. package/src/factories/internal/metadata/iterate_metadata_map.ts +4 -3
  277. package/src/factories/internal/metadata/iterate_metadata_native.ts +12 -9
  278. package/src/factories/internal/metadata/iterate_metadata_set.ts +5 -1
  279. package/src/programmers/AssertProgrammer.ts +46 -32
  280. package/src/programmers/CheckerProgrammer.ts +295 -261
  281. package/src/programmers/FeatureProgrammer.ts +25 -23
  282. package/src/programmers/IsProgrammer.ts +38 -23
  283. package/src/programmers/RandomProgrammer.ts +55 -39
  284. package/src/programmers/TypiaProgrammer.ts +48 -34
  285. package/src/programmers/ValidateProgrammer.ts +67 -37
  286. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +4 -4
  287. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +4 -4
  288. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +4 -4
  289. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +7 -7
  290. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +14 -8
  291. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +7 -7
  292. package/src/programmers/helpers/CloneJoiner.ts +17 -7
  293. package/src/programmers/helpers/FunctionImporter.ts +12 -11
  294. package/src/programmers/helpers/NotationJoiner.ts +91 -82
  295. package/src/programmers/helpers/ProtobufUtil.ts +2 -2
  296. package/src/programmers/helpers/PruneJoiner.ts +7 -3
  297. package/src/programmers/helpers/RandomJoiner.ts +12 -6
  298. package/src/programmers/helpers/RandomRanger.ts +8 -1
  299. package/src/programmers/helpers/StringifyJoinder.ts +5 -2
  300. package/src/programmers/helpers/StringifyPredicator.ts +4 -3
  301. package/src/programmers/helpers/UnionExplorer.ts +287 -205
  302. package/src/programmers/helpers/UnionPredicator.ts +5 -5
  303. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +8 -2
  304. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +8 -2
  305. package/src/programmers/http/HttpAssertQueryProgrammer.ts +8 -2
  306. package/src/programmers/http/HttpFormDataProgrammer.ts +139 -114
  307. package/src/programmers/http/HttpHeadersProgrammer.ts +150 -121
  308. package/src/programmers/http/HttpIsFormDataProgrammer.ts +12 -6
  309. package/src/programmers/http/HttpIsHeadersProgrammer.ts +12 -6
  310. package/src/programmers/http/HttpIsQueryProgrammer.ts +12 -6
  311. package/src/programmers/http/HttpParameterProgrammer.ts +16 -11
  312. package/src/programmers/http/HttpQueryProgrammer.ts +141 -116
  313. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +8 -2
  314. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +8 -2
  315. package/src/programmers/http/HttpValidateQueryProgrammer.ts +8 -2
  316. package/src/programmers/internal/application_escaped.ts +6 -6
  317. package/src/programmers/internal/application_templates.ts +8 -6
  318. package/src/programmers/internal/application_union_discriminator.ts +6 -6
  319. package/src/programmers/internal/application_v30_object.ts +6 -3
  320. package/src/programmers/internal/application_v31_object.ts +4 -1
  321. package/src/programmers/internal/application_v31_tuple.ts +1 -1
  322. package/src/programmers/internal/check_array_length.ts +31 -30
  323. package/src/programmers/internal/check_bigint.ts +31 -31
  324. package/src/programmers/internal/check_dynamic_key.ts +155 -126
  325. package/src/programmers/internal/check_dynamic_properties.ts +155 -154
  326. package/src/programmers/internal/check_everything.ts +1 -1
  327. package/src/programmers/internal/check_native.ts +11 -5
  328. package/src/programmers/internal/check_number.ts +88 -84
  329. package/src/programmers/internal/check_object.ts +45 -31
  330. package/src/programmers/internal/check_string.ts +31 -30
  331. package/src/programmers/internal/check_template.ts +34 -32
  332. package/src/programmers/internal/check_union_array_like.ts +255 -228
  333. package/src/programmers/internal/decode_union_object.ts +92 -75
  334. package/src/programmers/internal/feature_object_entries.ts +43 -46
  335. package/src/programmers/internal/llm_schema_escaped.ts +36 -13
  336. package/src/programmers/internal/llm_schema_object.ts +4 -1
  337. package/src/programmers/internal/metadata_to_pattern.ts +31 -23
  338. package/src/programmers/internal/postfix_of_tuple.ts +3 -0
  339. package/src/programmers/internal/prune_object_properties.ts +7 -4
  340. package/src/programmers/internal/random_custom.ts +25 -23
  341. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -157
  342. package/src/programmers/internal/stringify_regular_properties.ts +7 -7
  343. package/src/programmers/internal/template_to_pattern.ts +12 -4
  344. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +3 -0
  345. package/src/programmers/json/JsonAssertParseProgrammer.ts +8 -2
  346. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +8 -2
  347. package/src/programmers/json/JsonIsParseProgrammer.ts +8 -2
  348. package/src/programmers/json/JsonIsStringifyProgrammer.ts +8 -2
  349. package/src/programmers/json/JsonStringifyProgrammer.ts +88 -66
  350. package/src/programmers/json/JsonValidateParseProgrammer.ts +8 -2
  351. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +12 -6
  352. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +8 -2
  353. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +12 -3
  354. package/src/programmers/misc/MiscCloneProgrammer.ts +186 -155
  355. package/src/programmers/misc/MiscIsCloneProgrammer.ts +8 -2
  356. package/src/programmers/misc/MiscIsPruneProgrammer.ts +8 -2
  357. package/src/programmers/misc/MiscPruneProgrammer.ts +77 -63
  358. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +12 -6
  359. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +16 -7
  360. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +8 -2
  361. package/src/programmers/notations/NotationGeneralProgrammer.ts +218 -160
  362. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +8 -2
  363. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +12 -6
  364. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +8 -2
  365. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +8 -2
  366. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +48 -46
  367. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +67 -55
  368. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -6
  369. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +8 -2
  370. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +8 -2
  371. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +12 -6
  372. package/src/transformers/features/llm/LlmApplicationTransformer.ts +7 -6
  373. package/src/utils/NamingConvention/NamingConvention.ts +40 -42
@@ -5,35 +5,30 @@ var ExpressionFactory_1 = require("../../factories/ExpressionFactory");
5
5
  /**
6
6
  * @internal
7
7
  */
8
- var check_array_length = function (project) {
9
- return function (array) {
10
- return function (input) {
11
- var conditions = check_string_type_tags(project)(array.tags)(input);
12
- return {
13
- expected: array.getName(),
14
- expression: null,
15
- conditions: conditions,
16
- };
17
- };
8
+ var check_array_length = function (props) {
9
+ var conditions = check_array_type_tags(props);
10
+ return {
11
+ expected: props.array.getName(),
12
+ expression: null,
13
+ conditions: conditions,
18
14
  };
19
15
  };
20
16
  exports.check_array_length = check_array_length;
21
- var check_string_type_tags = function (project) {
22
- return function (matrix) {
23
- return function (input) {
24
- return matrix
25
- .map(function (row) { return row.filter(function (tag) { return !!tag.validate; }); })
26
- .filter(function (row) { return !!row.length; })
27
- .map(function (row) {
28
- return row.map(function (tag) {
29
- var _a;
30
- return ({
31
- expected: "Array<> & ".concat(tag.name),
32
- expression: ((_a = tag.predicate) !== null && _a !== void 0 ? _a : ExpressionFactory_1.ExpressionFactory.transpile(project.transformer)(tag.validate))(input),
33
- });
34
- });
17
+ /**
18
+ * @internal
19
+ */
20
+ var check_array_type_tags = function (props) {
21
+ return props.array.tags
22
+ .map(function (row) { return row.filter(function (tag) { return !!tag.validate; }); })
23
+ .filter(function (row) { return !!row.length; })
24
+ .map(function (row) {
25
+ return row.map(function (tag) {
26
+ var _a;
27
+ return ({
28
+ expected: "Array<> & ".concat(tag.name),
29
+ expression: ((_a = tag.predicate) !== null && _a !== void 0 ? _a : ExpressionFactory_1.ExpressionFactory.transpile(props.context.transformer, tag.validate))(props.input),
35
30
  });
36
- };
37
- };
31
+ });
32
+ });
38
33
  };
39
34
  //# sourceMappingURL=check_array_length.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check_array_length.js","sourceRoot":"","sources":["../../../src/programmers/internal/check_array_length.ts"],"names":[],"mappings":";;;AAEA,uEAAsE;AAStE;;GAEG;AACI,IAAM,kBAAkB,GAC7B,UAAC,OAAsB;IACvB,OAAA,UAAC,KAAoB;QACrB,OAAA,UAAC,KAAoB;YACnB,IAAM,UAAU,GAA+B,sBAAsB,CACnE,OAAO,CACR,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;YAErB,OAAO;gBACL,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE;gBACzB,UAAU,EAAE,IAAI;gBAChB,UAAU,YAAA;aACX,CAAC;QACJ,CAAC;IAVD,CAUC;AAXD,CAWC,CAAC;AAbS,QAAA,kBAAkB,sBAa3B;AAEJ,IAAM,sBAAsB,GAC1B,UAAC,OAAsB;IACvB,OAAA,UAAC,MAA4B;QAC7B,OAAA,UAAC,KAAoB;YACnB,OAAA,MAAM;iBACH,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAd,CAAc,CAAC,EAAnC,CAAmC,CAAC;iBACjD,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,MAAM,EAAZ,CAAY,CAAC;iBAC7B,GAAG,CAAC,UAAC,GAAG;gBACP,OAAA,GAAG,CAAC,GAAG,CAAC,UAAC,GAAG;;oBAAK,OAAA,CAAC;wBAChB,QAAQ,EAAE,oBAAa,GAAG,CAAC,IAAI,CAAE;wBACjC,UAAU,EAAE,CACV,MAAA,GAAG,CAAC,SAAS,mCACb,qCAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAS,CAAC,CAChE,CAAC,KAAK,CAAC;qBACT,CAAC,CAAA;iBAAA,CAAC;YANH,CAMG,CACJ;QAXH,CAWG;IAZL,CAYK;AAbL,CAaK,CAAC"}
1
+ {"version":3,"file":"check_array_length.js","sourceRoot":"","sources":["../../../src/programmers/internal/check_array_length.ts"],"names":[],"mappings":";;;AAEA,uEAAsE;AAQtE;;GAEG;AACI,IAAM,kBAAkB,GAAG,UAAC,KAIlC;IACC,IAAM,UAAU,GAA+B,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC5E,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;QAC/B,UAAU,EAAE,IAAI;QAChB,UAAU,YAAA;KACX,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,kBAAkB,sBAW7B;AAEF;;GAEG;AACH,IAAM,qBAAqB,GAAG,UAAC,KAI9B;IACC,OAAA,KAAK,CAAC,KAAK,CAAC,IAAI;SACb,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAd,CAAc,CAAC,EAAnC,CAAmC,CAAC;SACjD,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,MAAM,EAAZ,CAAY,CAAC;SAC7B,GAAG,CAAC,UAAC,GAAG;QACP,OAAA,GAAG,CAAC,GAAG,CAAC,UAAC,GAAG;;YAAK,OAAA,CAAC;gBAChB,QAAQ,EAAE,oBAAa,GAAG,CAAC,IAAI,CAAE;gBACjC,UAAU,EAAE,CACV,MAAA,GAAG,CAAC,SAAS,mCACb,qCAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,QAAS,CAAC,CACtE,CAAC,KAAK,CAAC,KAAK,CAAC;aACf,CAAC,CAAA;SAAA,CAAC;IANH,CAMG,CACJ;AAXH,CAWG,CAAC"}
@@ -9,38 +9,30 @@ var ExpressionFactory_1 = require("../../factories/ExpressionFactory");
9
9
  /**
10
10
  * @internal
11
11
  */
12
- var check_bigint = function (project) {
13
- return function (atomic) {
14
- return function (input) {
15
- var conditions = check_bigint_type_tags(project)(atomic)(input);
16
- return {
17
- expected: atomic.getName(),
18
- expression: typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral("bigint"), typescript_1.default.factory.createTypeOfExpression(input)),
19
- conditions: conditions,
20
- };
21
- };
12
+ var check_bigint = function (props) {
13
+ var conditions = check_bigint_type_tags(props);
14
+ return {
15
+ expected: props.atomic.getName(),
16
+ expression: typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral("bigint"), typescript_1.default.factory.createTypeOfExpression(props.input)),
17
+ conditions: conditions,
22
18
  };
23
19
  };
24
20
  exports.check_bigint = check_bigint;
25
21
  /**
26
22
  * @internal
27
23
  */
28
- var check_bigint_type_tags = function (project) {
29
- return function (atomic) {
30
- return function (input) {
31
- return atomic.tags
32
- .map(function (row) { return row.filter(function (tag) { return !!tag.validate; }); })
33
- .filter(function (row) { return !!row.length; })
34
- .map(function (row) {
35
- return row.map(function (tag) {
36
- var _a;
37
- return ({
38
- expected: "bigint & ".concat(tag.name),
39
- expression: ((_a = tag.predicate) !== null && _a !== void 0 ? _a : ExpressionFactory_1.ExpressionFactory.transpile(project.transformer)(tag.validate))(input),
40
- });
41
- });
24
+ var check_bigint_type_tags = function (props) {
25
+ return props.atomic.tags
26
+ .map(function (row) { return row.filter(function (tag) { return !!tag.validate; }); })
27
+ .filter(function (row) { return !!row.length; })
28
+ .map(function (row) {
29
+ return row.map(function (tag) {
30
+ var _a;
31
+ return ({
32
+ expected: "bigint & ".concat(tag.name),
33
+ expression: ((_a = tag.predicate) !== null && _a !== void 0 ? _a : ExpressionFactory_1.ExpressionFactory.transpile(props.context.transformer, tag.validate))(props.input),
42
34
  });
43
- };
44
- };
35
+ });
36
+ });
45
37
  };
46
38
  //# sourceMappingURL=check_bigint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check_bigint.js","sourceRoot":"","sources":["../../../src/programmers/internal/check_bigint.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AAQtE;;GAEG;AACI,IAAM,YAAY,GACvB,UAAC,OAAsB;IACvB,OAAA,UAAC,MAAsB;QACvB,OAAA,UAAC,KAAoB;YACnB,IAAM,UAAU,GACd,sBAAsB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;YAEjD,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE;gBAC1B,UAAU,EAAE,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CACzC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EACxC,oBAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CACzC;gBACD,UAAU,YAAA;aACX,CAAC;QACJ,CAAC;IAZD,CAYC;AAbD,CAaC,CAAC;AAfS,QAAA,YAAY,gBAerB;AAEJ;;GAEG;AACH,IAAM,sBAAsB,GAC1B,UAAC,OAAsB;IACvB,OAAA,UAAC,MAAsB;QACvB,OAAA,UAAC,KAAoB;YACnB,OAAA,MAAM,CAAC,IAAI;iBACR,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAd,CAAc,CAAC,EAAnC,CAAmC,CAAC;iBACjD,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,MAAM,EAAZ,CAAY,CAAC;iBAC7B,GAAG,CAAC,UAAC,GAAG;gBACP,OAAA,GAAG,CAAC,GAAG,CAAC,UAAC,GAAG;;oBAAK,OAAA,CAAC;wBAChB,QAAQ,EAAE,mBAAY,GAAG,CAAC,IAAI,CAAE;wBAChC,UAAU,EAAE,CACV,MAAA,GAAG,CAAC,SAAS,mCACb,qCAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAS,CAAC,CAChE,CAAC,KAAK,CAAC;qBACT,CAAC,CAAA;iBAAA,CAAC;YANH,CAMG,CACJ;QAXH,CAWG;IAZL,CAYK;AAbL,CAaK,CAAC"}
1
+ {"version":3,"file":"check_bigint.js","sourceRoot":"","sources":["../../../src/programmers/internal/check_bigint.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AAQtE;;GAEG;AACI,IAAM,YAAY,GAAG,UAAC,KAI5B;IACC,IAAM,UAAU,GAA+B,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC7E,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;QAChC,UAAU,EAAE,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CACzC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EACxC,oBAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAC/C;QACD,UAAU,YAAA;KACX,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,YAAY,gBAcvB;AAEF;;GAEG;AACH,IAAM,sBAAsB,GAAG,UAAC,KAI/B;IACC,OAAA,KAAK,CAAC,MAAM,CAAC,IAAI;SACd,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAd,CAAc,CAAC,EAAnC,CAAmC,CAAC;SACjD,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,MAAM,EAAZ,CAAY,CAAC;SAC7B,GAAG,CAAC,UAAC,GAAG;QACP,OAAA,GAAG,CAAC,GAAG,CAAC,UAAC,GAAG;;YAAK,OAAA,CAAC;gBAChB,QAAQ,EAAE,mBAAY,GAAG,CAAC,IAAI,CAAE;gBAChC,UAAU,EAAE,CACV,MAAA,GAAG,CAAC,SAAS,mCACb,qCAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,QAAS,CAAC,CACtE,CAAC,KAAK,CAAC,KAAK,CAAC;aACf,CAAC,CAAA;SAAA,CAAC;IANH,CAMG,CACJ;AAXH,CAWG,CAAC"}
@@ -1,5 +1 @@
1
- import ts from "typescript";
2
- import { Metadata } from "../../schemas/metadata/Metadata";
3
- import { ITypiaContext } from "../../transformers/ITypiaContext";
4
- import { FunctionImporter } from "../helpers/FunctionImporter";
5
- export declare const check_dynamic_key: (project: ITypiaContext) => (importer: FunctionImporter) => (input: ts.Expression, metadata: Metadata) => ts.Expression;
1
+ export {};
@@ -45,106 +45,124 @@ var check_bigint_1 = require("./check_bigint");
45
45
  var check_number_1 = require("./check_number");
46
46
  var check_string_1 = require("./check_string");
47
47
  var check_template_1 = require("./check_template");
48
- var check_dynamic_key = function (project) {
49
- return function (importer) {
50
- return function (input, metadata) {
51
- var e_1, _a, e_2, _b, e_3, _c, e_4, _d;
52
- // IF PURE STRING EXISTS, THEN SKIP VALIDATION
53
- if ((metadata.atomics.length !== 0 &&
54
- metadata.atomics.some(function (a) {
55
- return a.type === "string" &&
56
- a.tags.filter(function (row) { return row.every(function (t) { return t.validate !== undefined; }); })
57
- .length === 0;
58
- })) ||
59
- (metadata.natives.length !== 0 &&
60
- metadata.natives.some(function (type) { return type === "String"; })))
61
- return typescript_1.default.factory.createTrue();
62
- var conditions = [];
63
- // NULLISH COALESCING
64
- if (metadata.nullable === true)
65
- conditions.push(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral("null"), input));
66
- if (metadata.isRequired() === false)
67
- conditions.push(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral("undefined"), input));
68
- try {
69
- // ATOMICS
70
- for (var _e = __values(metadata.atomics), _f = _e.next(); !_f.done; _f = _e.next()) {
71
- var atom = _f.value;
72
- if (atom.type === "boolean")
73
- conditions.push(typescript_1.default.factory.createLogicalOr(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral("false"), input), typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral("true"), input)));
74
- else if (atom.type === "bigint")
75
- conditions.push(typescript_1.default.factory.createLogicalAnd(typescript_1.default.factory.createCallExpression(importer.use("is_bigint_string"), undefined, [input]), atomist((0, check_bigint_1.check_bigint)(project)(atom)(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("BigInt"), undefined, [input])))));
76
- else if (atom.type === "number")
77
- conditions.push(atomist((0, check_number_1.check_number)(project, true)(atom)(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Number"), undefined, [input]))));
78
- else
79
- conditions.push(atomist((0, check_string_1.check_string)(project)(atom)(input)));
80
- }
81
- }
82
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
83
- finally {
84
- try {
85
- if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
86
- }
87
- finally { if (e_1) throw e_1.error; }
88
- }
89
- try {
90
- // CONSTANTS
91
- for (var _g = __values(metadata.constants), _h = _g.next(); !_h.done; _h = _g.next()) {
92
- var constant = _h.value;
93
- try {
94
- for (var _j = (e_3 = void 0, __values(constant.values)), _k = _j.next(); !_k.done; _k = _j.next()) {
95
- var value = _k.value.value;
96
- conditions.push(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral(String(value)), input));
97
- }
98
- }
99
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
100
- finally {
101
- try {
102
- if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
103
- }
104
- finally { if (e_3) throw e_3.error; }
105
- }
106
- }
107
- }
108
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
109
- finally {
110
- try {
111
- if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
112
- }
113
- finally { if (e_2) throw e_2.error; }
114
- }
115
- // TEMPLATES
116
- if (!!metadata.templates.length)
117
- conditions.push(atomist((0, check_template_1.check_template)(metadata.templates)(input)));
48
+ /**
49
+ * @internal
50
+ */
51
+ var check_dynamic_key = function (props) {
52
+ var e_1, _a, e_2, _b, e_3, _c, e_4, _d;
53
+ // IF PURE STRING EXISTS, THEN SKIP VALIDATION
54
+ if ((props.metadata.atomics.length !== 0 &&
55
+ props.metadata.atomics.some(function (a) {
56
+ return a.type === "string" &&
57
+ a.tags.filter(function (row) { return row.every(function (t) { return t.validate !== undefined; }); })
58
+ .length === 0;
59
+ })) ||
60
+ (props.metadata.natives.length !== 0 &&
61
+ props.metadata.natives.some(function (type) { return type === "String"; })))
62
+ return typescript_1.default.factory.createTrue();
63
+ var conditions = [];
64
+ // NULLISH COALESCING
65
+ if (props.metadata.nullable === true)
66
+ conditions.push(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral("null"), props.input));
67
+ if (props.metadata.isRequired() === false)
68
+ conditions.push(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral("undefined"), props.input));
69
+ try {
70
+ // ATOMICS
71
+ for (var _e = __values(props.metadata.atomics), _f = _e.next(); !_f.done; _f = _e.next()) {
72
+ var atom = _f.value;
73
+ if (atom.type === "boolean")
74
+ conditions.push(typescript_1.default.factory.createLogicalOr(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral("false"), props.input), typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral("true"), props.input)));
75
+ else if (atom.type === "bigint")
76
+ conditions.push(typescript_1.default.factory.createLogicalAnd(typescript_1.default.factory.createCallExpression(props.importer.use("is_bigint_string"), undefined, [props.input]), atomist((0, check_bigint_1.check_bigint)({
77
+ context: props.context,
78
+ atomic: atom,
79
+ input: typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("BigInt"), undefined, [props.input]),
80
+ }))));
81
+ else if (atom.type === "number")
82
+ conditions.push(atomist((0, check_number_1.check_number)({
83
+ context: props.context,
84
+ numeric: true,
85
+ atomic: atom,
86
+ input: typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Number"), undefined, [props.input]),
87
+ })));
88
+ else
89
+ conditions.push(atomist((0, check_string_1.check_string)({
90
+ context: props.context,
91
+ atomic: atom,
92
+ input: props.input,
93
+ })));
94
+ }
95
+ }
96
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
97
+ finally {
98
+ try {
99
+ if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
100
+ }
101
+ finally { if (e_1) throw e_1.error; }
102
+ }
103
+ try {
104
+ // CONSTANTS
105
+ for (var _g = __values(props.metadata.constants), _h = _g.next(); !_h.done; _h = _g.next()) {
106
+ var constant = _h.value;
118
107
  try {
119
- // NATIVES
120
- for (var _l = __values(metadata.natives), _m = _l.next(); !_m.done; _m = _l.next()) {
121
- var native = _m.value;
122
- if (native === "Boolean")
123
- conditions.push(typescript_1.default.factory.createLogicalOr(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral("false"), input), typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral("true"), input)));
124
- else if (native === "BigInt")
125
- conditions.push(typescript_1.default.factory.createCallExpression(importer.use("is_bigint_string"), undefined, [input]));
126
- else if (native === "Number")
127
- conditions.push(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createFalse(), typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Number.isNaN"), undefined, [
128
- typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Number"), undefined, [input]),
129
- ])));
108
+ for (var _j = (e_3 = void 0, __values(constant.values)), _k = _j.next(); !_k.done; _k = _j.next()) {
109
+ var value = _k.value.value;
110
+ conditions.push(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral(String(value)), props.input));
130
111
  }
131
112
  }
132
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
113
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
133
114
  finally {
134
115
  try {
135
- if (_m && !_m.done && (_d = _l.return)) _d.call(_l);
116
+ if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
136
117
  }
137
- finally { if (e_4) throw e_4.error; }
118
+ finally { if (e_3) throw e_3.error; }
138
119
  }
139
- return conditions.length === 0
140
- ? typescript_1.default.factory.createTrue()
141
- : conditions.length === 1
142
- ? conditions[0]
143
- : conditions.reduce(typescript_1.default.factory.createLogicalOr);
144
- };
145
- };
120
+ }
121
+ }
122
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
123
+ finally {
124
+ try {
125
+ if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
126
+ }
127
+ finally { if (e_2) throw e_2.error; }
128
+ }
129
+ // TEMPLATES
130
+ if (!!props.metadata.templates.length)
131
+ conditions.push(atomist((0, check_template_1.check_template)({
132
+ templates: props.metadata.templates,
133
+ input: props.input,
134
+ })));
135
+ try {
136
+ // NATIVES
137
+ for (var _l = __values(props.metadata.natives), _m = _l.next(); !_m.done; _m = _l.next()) {
138
+ var native = _m.value;
139
+ if (native === "Boolean")
140
+ conditions.push(typescript_1.default.factory.createLogicalOr(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral("false"), props.input), typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral("true"), props.input)));
141
+ else if (native === "BigInt")
142
+ conditions.push(typescript_1.default.factory.createCallExpression(props.importer.use("is_bigint_string"), undefined, [props.input]));
143
+ else if (native === "Number")
144
+ conditions.push(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createFalse(), typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Number.isNaN"), undefined, [
145
+ typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Number"), undefined, [props.input]),
146
+ ])));
147
+ }
148
+ }
149
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
150
+ finally {
151
+ try {
152
+ if (_m && !_m.done && (_d = _l.return)) _d.call(_l);
153
+ }
154
+ finally { if (e_4) throw e_4.error; }
155
+ }
156
+ return conditions.length === 0
157
+ ? typescript_1.default.factory.createTrue()
158
+ : conditions.length === 1
159
+ ? conditions[0]
160
+ : conditions.reduce(typescript_1.default.factory.createLogicalOr);
146
161
  };
147
162
  exports.check_dynamic_key = check_dynamic_key;
163
+ /**
164
+ * @internal
165
+ */
148
166
  var atomist = function (entry) {
149
167
  return __spreadArray(__spreadArray([], __read((entry.expression ? [entry.expression] : [])), false), __read((entry.conditions.length === 0
150
168
  ? []
@@ -1 +1 @@
1
- {"version":3,"file":"check_dynamic_key.js","sourceRoot":"","sources":["../../../src/programmers/internal/check_dynamic_key.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check_dynamic_key.js","sourceRoot":"","sources":["../../../src/programmers/internal/check_dynamic_key.ts"],"names":[],"mappings":"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"}
@@ -50,105 +50,106 @@ var check_everything_1 = require("./check_everything");
50
50
  * @internal
51
51
  */
52
52
  var check_dynamic_properties = function (props) {
53
- return function (project) {
54
- return function (importer) {
55
- return function (input, regular, dynamic) {
56
- var length = IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Object.keys"), undefined, [input]))("length");
57
- var left = props.equals === true && dynamic.length === 0
58
- ? props.undefined === true || regular.every(function (r) { return r.meta.isRequired(); })
59
- ? typescript_1.default.factory.createStrictEquality(ExpressionFactory_1.ExpressionFactory.number(regular.filter(function (r) { return r.meta.isRequired(); }).length), length)
60
- : typescript_1.default.factory.createCallExpression(importer.use("is_between"), [], [
61
- length,
62
- ExpressionFactory_1.ExpressionFactory.number(regular.filter(function (r) { return r.meta.isRequired(); }).length),
63
- ExpressionFactory_1.ExpressionFactory.number(regular.length),
64
- ])
65
- : null;
66
- if (props.undefined === false &&
67
- left !== null &&
68
- regular.every(function (r) { return r.meta.isRequired(); }))
69
- return left;
70
- var criteria = props.entries
71
- ? typescript_1.default.factory.createCallExpression(props.entries, undefined, [
72
- typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Object.keys"), undefined, [input]),
73
- check_dynamic_property(props)(project)(importer)(input, regular, dynamic),
74
- ])
75
- : typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Object.keys"), undefined, [input]))(props.assert ? "every" : "map"), undefined, [
76
- check_dynamic_property(props)(project)(importer)(input, regular, dynamic),
77
- ]);
78
- var right = (props.halt || (function (elem) { return elem; }))(props.assert ? criteria : (0, check_everything_1.check_everything)(criteria));
79
- return left
80
- ? (props.undefined
81
- ? typescript_1.default.factory.createLogicalOr
82
- : typescript_1.default.factory.createLogicalAnd)(left, right)
83
- : right;
84
- };
85
- };
86
- };
53
+ var length = IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Object.keys"), undefined, [props.input]), "length");
54
+ var left = props.config.equals === true && props.dynamic.length === 0
55
+ ? props.config.undefined === true ||
56
+ props.regular.every(function (r) { return r.meta.isRequired(); })
57
+ ? typescript_1.default.factory.createStrictEquality(ExpressionFactory_1.ExpressionFactory.number(props.regular.filter(function (r) { return r.meta.isRequired(); }).length), length)
58
+ : typescript_1.default.factory.createCallExpression(props.importer.use("is_between"), [], [
59
+ length,
60
+ ExpressionFactory_1.ExpressionFactory.number(props.regular.filter(function (r) { return r.meta.isRequired(); }).length),
61
+ ExpressionFactory_1.ExpressionFactory.number(props.regular.length),
62
+ ])
63
+ : null;
64
+ if (left !== null &&
65
+ props.config.undefined === false &&
66
+ props.regular.every(function (r) { return r.meta.isRequired(); }))
67
+ return left;
68
+ var criteria = props.config.entries
69
+ ? typescript_1.default.factory.createCallExpression(props.config.entries, undefined, [
70
+ typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Object.keys"), undefined, [props.input]),
71
+ check_dynamic_property(props),
72
+ ])
73
+ : typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Object.keys"), undefined, [props.input]), props.config.assert ? "every" : "map"), undefined, [check_dynamic_property(props)]);
74
+ var right = (props.config.halt || (function (elem) { return elem; }))(props.config.assert ? criteria : (0, check_everything_1.check_everything)(criteria));
75
+ return left
76
+ ? (props.config.undefined
77
+ ? typescript_1.default.factory.createLogicalOr
78
+ : typescript_1.default.factory.createLogicalAnd)(left, right)
79
+ : right;
87
80
  };
88
81
  exports.check_dynamic_properties = check_dynamic_properties;
82
+ /**
83
+ * @internal
84
+ */
89
85
  var check_dynamic_property = function (props) {
90
- return function (project) {
91
- return function (importer) {
92
- return function (input, regular, dynamic) {
93
- var e_1, _a;
94
- //----
95
- // IF CONDITIONS
96
- //----
97
- // PREPARE ASSETS
98
- var key = typescript_1.default.factory.createIdentifier("key");
99
- var value = typescript_1.default.factory.createIdentifier("value");
100
- var statements = [];
101
- var add = function (exp, output) {
102
- return statements.push(typescript_1.default.factory.createIfStatement(exp, typescript_1.default.factory.createReturnStatement(output)));
103
- };
104
- var broken = { value: false };
105
- // GATHER CONDITIONS
106
- if (regular.length)
107
- add(is_regular_property(regular), props.positive);
108
- statements.push(StatementFactory_1.StatementFactory.constant("value", typescript_1.default.factory.createElementAccessExpression(input, key)));
109
- if (props.undefined === true)
110
- add(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createIdentifier("undefined"), value), props.positive);
111
- try {
112
- for (var dynamic_1 = __values(dynamic), dynamic_1_1 = dynamic_1.next(); !dynamic_1_1.done; dynamic_1_1 = dynamic_1.next()) {
113
- var entry = dynamic_1_1.value;
114
- var condition = (0, check_dynamic_key_1.check_dynamic_key)(project)(importer)(key, entry.key);
115
- if (condition.kind === typescript_1.default.SyntaxKind.TrueKeyword) {
116
- statements.push(typescript_1.default.factory.createReturnStatement(entry.expression));
117
- broken.value = true;
118
- break;
119
- }
120
- else
121
- add(condition, entry.expression);
122
- }
123
- }
124
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
125
- finally {
126
- try {
127
- if (dynamic_1_1 && !dynamic_1_1.done && (_a = dynamic_1.return)) _a.call(dynamic_1);
128
- }
129
- finally { if (e_1) throw e_1.error; }
130
- }
131
- //----
132
- // FUNCTION BODY
133
- //----
134
- // CLOSURE BLOCK
135
- var block = typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(statements), false), __read((broken.value
136
- ? []
137
- : [
138
- typescript_1.default.factory.createReturnStatement(props.equals === true
139
- ? props.superfluous(value)
140
- : props.positive),
141
- ])), false), true);
142
- // RETURNS
143
- return typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("key")], undefined, undefined, block);
144
- };
145
- };
86
+ var e_1, _a;
87
+ //----
88
+ // IF CONDITIONS
89
+ //----
90
+ // PREPARE ASSETS
91
+ var key = typescript_1.default.factory.createIdentifier("key");
92
+ var value = typescript_1.default.factory.createIdentifier("value");
93
+ var statements = [];
94
+ var add = function (expression, output) {
95
+ return statements.push(typescript_1.default.factory.createIfStatement(expression, typescript_1.default.factory.createReturnStatement(output)));
146
96
  };
97
+ var broken = { value: false };
98
+ // GATHER CONDITIONS
99
+ if (props.regular.length)
100
+ add(is_regular_property(props.regular), props.config.positive);
101
+ statements.push(StatementFactory_1.StatementFactory.constant({
102
+ name: "value",
103
+ value: typescript_1.default.factory.createElementAccessExpression(props.input, key),
104
+ }));
105
+ if (props.config.undefined === true)
106
+ add(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createIdentifier("undefined"), value), props.config.positive);
107
+ try {
108
+ for (var _b = __values(props.dynamic), _c = _b.next(); !_c.done; _c = _b.next()) {
109
+ var entry = _c.value;
110
+ var condition = (0, check_dynamic_key_1.check_dynamic_key)({
111
+ context: props.context,
112
+ importer: props.importer,
113
+ metadata: entry.key,
114
+ input: key,
115
+ });
116
+ if (condition.kind === typescript_1.default.SyntaxKind.TrueKeyword) {
117
+ statements.push(typescript_1.default.factory.createReturnStatement(entry.expression));
118
+ broken.value = true;
119
+ break;
120
+ }
121
+ else
122
+ add(condition, entry.expression);
123
+ }
124
+ }
125
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
126
+ finally {
127
+ try {
128
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
129
+ }
130
+ finally { if (e_1) throw e_1.error; }
131
+ }
132
+ //----
133
+ // FUNCTION BODY
134
+ //----
135
+ // CLOSURE BLOCK
136
+ var block = typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(statements), false), __read((broken.value
137
+ ? []
138
+ : [
139
+ typescript_1.default.factory.createReturnStatement(props.config.equals === true
140
+ ? props.config.superfluous(value)
141
+ : props.config.positive),
142
+ ])), false), true);
143
+ // RETURNS
144
+ return typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("key")], undefined, undefined, block);
147
145
  };
146
+ /**
147
+ * @internal
148
+ */
148
149
  var is_regular_property = function (regular) {
149
150
  return typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createArrayLiteralExpression(regular.map(function (entry) {
150
151
  return typescript_1.default.factory.createStringLiteral(entry.key.getSoleLiteral());
151
- })))("some"), undefined, [
152
+ })), "some"), undefined, [
152
153
  typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("prop")], undefined, undefined, typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createIdentifier("key"), typescript_1.default.factory.createIdentifier("prop"))),
153
154
  ]);
154
155
  };