typia 7.6.0 → 7.6.1-dev.20250203

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 (578) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +150 -149
  3. package/lib/IReadableURLSearchParams.d.ts +1 -1
  4. package/lib/TypeGuardError.mjs +26 -0
  5. package/lib/TypeGuardError.mjs.map +1 -0
  6. package/lib/executable/setup/PluginConfigurator.js +3 -3
  7. package/lib/executable/typia.js +15 -15
  8. package/lib/factories/MetadataTypeTagFactory.js +1 -1
  9. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  10. package/lib/factories/ProtobufFactory.js +4 -4
  11. package/lib/factories/ProtobufFactory.js.map +1 -1
  12. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +1 -1
  13. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  14. package/lib/functional.mjs +120 -0
  15. package/lib/functional.mjs.map +1 -0
  16. package/lib/http.d.ts +16 -16
  17. package/lib/http.mjs +165 -0
  18. package/lib/http.mjs.map +1 -0
  19. package/lib/index.mjs +27 -1142
  20. package/lib/index.mjs.map +1 -1
  21. package/lib/internal/_isUniqueItems.js +1 -1
  22. package/lib/json.d.ts +5 -5
  23. package/lib/json.mjs +105 -0
  24. package/lib/json.mjs.map +1 -0
  25. package/lib/llm.d.ts +8 -8
  26. package/lib/llm.mjs +33 -0
  27. package/lib/llm.mjs.map +1 -0
  28. package/lib/misc.d.ts +10 -10
  29. package/lib/misc.mjs +111 -0
  30. package/lib/misc.mjs.map +1 -0
  31. package/lib/module.d.ts +5 -5
  32. package/lib/module.mjs +139 -0
  33. package/lib/module.mjs.map +1 -0
  34. package/lib/notations.mjs +153 -0
  35. package/lib/notations.mjs.map +1 -0
  36. package/lib/programmers/FeatureProgrammer.d.ts +3 -3
  37. package/lib/programmers/TypiaProgrammer.js +1 -1
  38. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  39. package/lib/programmers/helpers/UnionExplorer.js +1 -1
  40. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  41. package/lib/programmers/helpers/UnionPredicator.d.ts +1 -1
  42. package/lib/programmers/helpers/UnionPredicator.js +1 -1
  43. package/lib/programmers/helpers/UnionPredicator.js.map +1 -1
  44. package/lib/programmers/json/JsonApplicationProgrammer.js +1 -1
  45. package/lib/programmers/llm/LlmApplicationProgrammer.js +2 -2
  46. package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
  47. package/lib/programmers/llm/LlmParametersProgrammer.js +1 -1
  48. package/lib/programmers/llm/LlmParametersProgrammer.js.map +1 -1
  49. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +1 -1
  50. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  51. package/lib/protobuf.d.ts +9 -9
  52. package/lib/protobuf.mjs +111 -0
  53. package/lib/protobuf.mjs.map +1 -0
  54. package/lib/reflect.mjs +18 -0
  55. package/lib/reflect.mjs.map +1 -0
  56. package/lib/schemas/llm/ILlmApplicationOfValidate.d.ts +2 -2
  57. package/lib/schemas/llm/ILlmApplicationOfValidate.mjs +6 -0
  58. package/lib/schemas/llm/ILlmApplicationOfValidate.mjs.map +1 -0
  59. package/lib/schemas/llm/ILlmFunctionOfValidate.mjs +6 -0
  60. package/lib/schemas/llm/ILlmFunctionOfValidate.mjs.map +1 -0
  61. package/lib/tags/TagBase.d.ts +1 -1
  62. package/lib/tags/index.mjs +2 -0
  63. package/lib/tags/index.mjs.map +1 -0
  64. package/lib/transformers/ImportTransformer.js +3 -3
  65. package/lib/transformers/ImportTransformer.js.map +1 -1
  66. package/lib/transformers/features/json/JsonValidateParseTransformer.js +1 -1
  67. package/lib/transformers/features/json/JsonValidateParseTransformer.js.map +1 -1
  68. package/lib/transformers/features/json/JsonValidateStringifyTransformer.js +1 -1
  69. package/lib/transformers/features/json/JsonValidateStringifyTransformer.js.map +1 -1
  70. package/lib/transformers/features/misc/MiscValidateCloneTransformer.js +1 -1
  71. package/lib/transformers/features/misc/MiscValidateCloneTransformer.js.map +1 -1
  72. package/lib/transformers/features/misc/MiscValidatePruneTransformer.js +1 -1
  73. package/lib/transformers/features/misc/MiscValidatePruneTransformer.js.map +1 -1
  74. package/lib/transformers/features/reflect/ReflectNameTransformer.js +1 -1
  75. package/package.json +11 -9
  76. package/src/AssertionGuard.ts +1 -1
  77. package/src/CamelCase.ts +75 -75
  78. package/src/IRandomGenerator.ts +49 -49
  79. package/src/IReadableURLSearchParams.ts +9 -9
  80. package/src/IValidation.ts +21 -21
  81. package/src/PascalCase.ts +71 -71
  82. package/src/Primitive.ts +92 -92
  83. package/src/Resolved.ts +74 -74
  84. package/src/SnakeCase.ts +126 -126
  85. package/src/TypeGuardError.ts +37 -37
  86. package/src/executable/TypiaGenerateWizard.ts +83 -83
  87. package/src/executable/TypiaPatchWizard.ts +45 -45
  88. package/src/executable/TypiaSetupWizard.ts +179 -179
  89. package/src/executable/setup/ArgumentParser.ts +42 -42
  90. package/src/executable/setup/CommandExecutor.ts +8 -8
  91. package/src/executable/setup/FileRetriever.ts +19 -19
  92. package/src/executable/setup/PackageManager.ts +87 -87
  93. package/src/executable/setup/PluginConfigurator.ts +69 -69
  94. package/src/executable/typia.ts +55 -55
  95. package/src/factories/CommentFactory.ts +79 -79
  96. package/src/factories/ExpressionFactory.ts +216 -216
  97. package/src/factories/IdentifierFactory.ts +89 -89
  98. package/src/factories/JsonMetadataFactory.ts +83 -83
  99. package/src/factories/LiteralFactory.ts +52 -52
  100. package/src/factories/MetadataCollection.ts +278 -278
  101. package/src/factories/MetadataCommentTagFactory.ts +650 -650
  102. package/src/factories/MetadataFactory.ts +404 -404
  103. package/src/factories/MetadataTypeTagFactory.ts +411 -411
  104. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  105. package/src/factories/NumericRangeFactory.ts +72 -72
  106. package/src/factories/ProtobufFactory.ts +875 -875
  107. package/src/factories/StatementFactory.ts +90 -90
  108. package/src/factories/TemplateFactory.ts +64 -64
  109. package/src/factories/TypeFactory.ts +140 -140
  110. package/src/factories/ValueFactory.ts +12 -12
  111. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
  112. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  113. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  114. package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
  115. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  116. package/src/factories/internal/metadata/emplace_metadata_object.ts +208 -208
  117. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  118. package/src/factories/internal/metadata/explore_metadata.ts +31 -31
  119. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  120. package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
  121. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  122. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  123. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  124. package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
  125. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
  126. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  127. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  128. package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
  129. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +213 -213
  130. package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
  131. package/src/factories/internal/metadata/iterate_metadata_native.ts +255 -255
  132. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
  133. package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
  134. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
  135. package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
  136. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  137. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  138. package/src/functional.ts +750 -750
  139. package/src/http.ts +1047 -1047
  140. package/src/index.ts +4 -4
  141. package/src/internal/_IProtobufWriter.ts +18 -18
  142. package/src/internal/_ProtobufReader.ts +194 -194
  143. package/src/internal/_ProtobufSizer.ts +145 -145
  144. package/src/internal/_ProtobufWriter.ts +145 -145
  145. package/src/internal/_accessExpressionAsString.ts +46 -46
  146. package/src/internal/_assertGuard.ts +13 -13
  147. package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
  148. package/src/internal/_httpFormDataReadArray.ts +4 -4
  149. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  150. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  151. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  152. package/src/internal/_httpFormDataReadFile.ts +10 -10
  153. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  154. package/src/internal/_httpFormDataReadString.ts +10 -10
  155. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  156. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  157. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  158. package/src/internal/_httpParameterReadBigint.ts +10 -10
  159. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  160. package/src/internal/_httpParameterReadNumber.ts +7 -7
  161. package/src/internal/_httpParameterReadString.ts +2 -2
  162. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  163. package/src/internal/_httpQueryReadArray.ts +4 -4
  164. package/src/internal/_httpQueryReadBigint.ts +12 -12
  165. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  166. package/src/internal/_httpQueryReadNumber.ts +9 -9
  167. package/src/internal/_httpQueryReadString.ts +4 -4
  168. package/src/internal/_isBetween.ts +2 -2
  169. package/src/internal/_isBigintString.ts +8 -8
  170. package/src/internal/_isFormatByte.ts +7 -7
  171. package/src/internal/_isFormatDate.ts +3 -3
  172. package/src/internal/_isFormatDateTime.ts +4 -4
  173. package/src/internal/_isFormatDuration.ts +4 -4
  174. package/src/internal/_isFormatEmail.ts +4 -4
  175. package/src/internal/_isFormatHostname.ts +4 -4
  176. package/src/internal/_isFormatIdnEmail.ts +4 -4
  177. package/src/internal/_isFormatIdnHostname.ts +4 -4
  178. package/src/internal/_isFormatIpv4.ts +4 -4
  179. package/src/internal/_isFormatIpv6.ts +4 -4
  180. package/src/internal/_isFormatIri.ts +3 -3
  181. package/src/internal/_isFormatIriReference.ts +4 -4
  182. package/src/internal/_isFormatJsonPointer.ts +3 -3
  183. package/src/internal/_isFormatPassword.ts +1 -1
  184. package/src/internal/_isFormatRegex.ts +8 -8
  185. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  186. package/src/internal/_isFormatTime.ts +4 -4
  187. package/src/internal/_isFormatUri.ts +6 -6
  188. package/src/internal/_isFormatUriReference.ts +5 -5
  189. package/src/internal/_isFormatUriTemplate.ts +4 -4
  190. package/src/internal/_isFormatUrl.ts +4 -4
  191. package/src/internal/_isFormatUuid.ts +3 -3
  192. package/src/internal/_isTypeFloat.ts +5 -5
  193. package/src/internal/_isTypeInt32.ts +5 -5
  194. package/src/internal/_isTypeInt64.ts +5 -5
  195. package/src/internal/_isTypeUint32.ts +5 -5
  196. package/src/internal/_isTypeUint64.ts +5 -5
  197. package/src/internal/_isUniqueItems.ts +159 -159
  198. package/src/internal/_jsonStringifyNumber.ts +12 -12
  199. package/src/internal/_jsonStringifyRest.ts +3 -3
  200. package/src/internal/_jsonStringifyString.ts +42 -42
  201. package/src/internal/_jsonStringifyTail.ts +2 -2
  202. package/src/internal/_llmApplicationFinalize.ts +20 -20
  203. package/src/internal/_miscCloneAny.ts +46 -46
  204. package/src/internal/_notationAny.ts +37 -37
  205. package/src/internal/_notationCamel.ts +13 -13
  206. package/src/internal/_notationPascal.ts +8 -8
  207. package/src/internal/_notationSnake.ts +43 -43
  208. package/src/internal/_randomArray.ts +21 -21
  209. package/src/internal/_randomBigint.ts +6 -6
  210. package/src/internal/_randomBoolean.ts +1 -1
  211. package/src/internal/_randomFormatByte.ts +3 -3
  212. package/src/internal/_randomFormatDate.ts +18 -18
  213. package/src/internal/_randomFormatDatetime.ts +16 -16
  214. package/src/internal/_randomFormatDuration.ts +27 -27
  215. package/src/internal/_randomFormatEmail.ts +11 -11
  216. package/src/internal/_randomFormatHostname.ts +6 -6
  217. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  218. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  219. package/src/internal/_randomFormatIpv4.ts +11 -11
  220. package/src/internal/_randomFormatIpv6.ts +11 -11
  221. package/src/internal/_randomFormatIri.ts +3 -3
  222. package/src/internal/_randomFormatIriReference.ts +3 -3
  223. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  224. package/src/internal/_randomFormatPassword.ts +8 -8
  225. package/src/internal/_randomFormatRegex.ts +4 -4
  226. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  227. package/src/internal/_randomFormatTime.ts +14 -14
  228. package/src/internal/_randomFormatUri.ts +3 -3
  229. package/src/internal/_randomFormatUriReference.ts +3 -3
  230. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  231. package/src/internal/_randomFormatUrl.ts +11 -11
  232. package/src/internal/_randomFormatUuid.ts +6 -6
  233. package/src/internal/_randomInteger.ts +47 -47
  234. package/src/internal/_randomNumber.ts +74 -74
  235. package/src/internal/_randomPattern.ts +10 -10
  236. package/src/internal/_randomPick.ts +9 -9
  237. package/src/internal/_randomString.ts +24 -24
  238. package/src/internal/_throwTypeGuardError.ts +5 -5
  239. package/src/internal/_validateReport.ts +13 -13
  240. package/src/internal/private/__notationCapitalize.ts +2 -2
  241. package/src/internal/private/__notationUnsnake.ts +24 -24
  242. package/src/json.ts +752 -752
  243. package/src/llm.ts +481 -481
  244. package/src/misc.ts +658 -658
  245. package/src/module.ts +937 -937
  246. package/src/notations.ts +827 -827
  247. package/src/programmers/AssertProgrammer.ts +454 -454
  248. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  249. package/src/programmers/FeatureProgrammer.ts +622 -622
  250. package/src/programmers/ImportProgrammer.ts +185 -185
  251. package/src/programmers/IsProgrammer.ts +273 -273
  252. package/src/programmers/RandomProgrammer.ts +1190 -1190
  253. package/src/programmers/TypiaProgrammer.ts +174 -174
  254. package/src/programmers/ValidateProgrammer.ts +439 -439
  255. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  256. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  257. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  258. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  259. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  260. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  261. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  262. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  263. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  264. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  265. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  266. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  267. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  268. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  269. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  270. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  271. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  272. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  273. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  274. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  275. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  276. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  277. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  278. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  279. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  280. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  281. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  282. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  283. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  284. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  285. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  286. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  287. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  288. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  289. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  290. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  291. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  292. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  293. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  294. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  295. package/src/programmers/internal/check_array_length.ts +47 -47
  296. package/src/programmers/internal/check_bigint.ts +50 -50
  297. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  298. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  299. package/src/programmers/internal/check_everything.ts +23 -23
  300. package/src/programmers/internal/check_native.ts +27 -27
  301. package/src/programmers/internal/check_number.ts +112 -112
  302. package/src/programmers/internal/check_object.ts +75 -75
  303. package/src/programmers/internal/check_string.ts +50 -50
  304. package/src/programmers/internal/check_template.ts +48 -48
  305. package/src/programmers/internal/check_union_array_like.ts +335 -335
  306. package/src/programmers/internal/decode_union_object.ts +116 -116
  307. package/src/programmers/internal/feature_object_entries.ts +61 -61
  308. package/src/programmers/internal/json_schema_alias.ts +47 -47
  309. package/src/programmers/internal/json_schema_array.ts +45 -45
  310. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  311. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  312. package/src/programmers/internal/json_schema_constant.ts +26 -26
  313. package/src/programmers/internal/json_schema_description.ts +12 -12
  314. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  315. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  316. package/src/programmers/internal/json_schema_native.ts +33 -33
  317. package/src/programmers/internal/json_schema_number.ts +15 -15
  318. package/src/programmers/internal/json_schema_object.ts +158 -158
  319. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  320. package/src/programmers/internal/json_schema_station.ts +182 -182
  321. package/src/programmers/internal/json_schema_string.ts +15 -15
  322. package/src/programmers/internal/json_schema_template.ts +55 -55
  323. package/src/programmers/internal/json_schema_title.ts +20 -20
  324. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  325. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  326. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  327. package/src/programmers/internal/prune_object_properties.ts +71 -71
  328. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  329. package/src/programmers/internal/stringify_native.ts +7 -7
  330. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  331. package/src/programmers/internal/template_to_pattern.ts +23 -23
  332. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  333. package/src/programmers/json/JsonApplicationProgrammer.ts +279 -279
  334. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  335. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  336. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  337. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  338. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  339. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  340. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  341. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  342. package/src/programmers/llm/LlmApplicationOfValidateProgrammer.ts +104 -104
  343. package/src/programmers/llm/LlmApplicationProgrammer.ts +327 -327
  344. package/src/programmers/llm/LlmModelPredicator.ts +127 -127
  345. package/src/programmers/llm/LlmParametersProgrammer.ts +93 -93
  346. package/src/programmers/llm/LlmSchemaProgrammer.ts +192 -192
  347. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  348. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  349. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  350. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  351. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  352. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  353. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  354. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  355. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  356. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  357. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  358. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  359. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  360. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  361. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  362. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  363. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  364. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  365. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  366. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  367. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  368. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  369. package/src/protobuf.ts +868 -868
  370. package/src/reflect.ts +57 -57
  371. package/src/schemas/json/IJsonApplication.ts +73 -73
  372. package/src/schemas/json/IJsonSchemaCollection.ts +29 -29
  373. package/src/schemas/json/__IJsonApplication.ts +63 -63
  374. package/src/schemas/llm/ILlmApplicationOfValidate.ts +55 -55
  375. package/src/schemas/llm/ILlmFunctionOfValidate.ts +39 -39
  376. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  377. package/src/schemas/metadata/IMetadata.ts +35 -35
  378. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  379. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  380. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  381. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  382. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  383. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  384. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  385. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  386. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  387. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  388. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  389. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  390. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  391. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  392. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  393. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  394. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  395. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  396. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  397. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  398. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  399. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  400. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  401. package/src/schemas/metadata/Metadata.ts +669 -669
  402. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  403. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  404. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  405. package/src/schemas/metadata/MetadataArray.ts +49 -49
  406. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  407. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  408. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  409. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  410. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  411. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  412. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  413. package/src/schemas/metadata/MetadataMap.ts +48 -48
  414. package/src/schemas/metadata/MetadataNative.ts +44 -44
  415. package/src/schemas/metadata/MetadataObject.ts +48 -48
  416. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  417. package/src/schemas/metadata/MetadataParameter.ts +54 -54
  418. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  419. package/src/schemas/metadata/MetadataSet.ts +45 -45
  420. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  421. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  422. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  423. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  424. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  425. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  426. package/src/tags/Constant.ts +15 -15
  427. package/src/tags/ContentMediaType.ts +10 -10
  428. package/src/tags/Default.ts +22 -22
  429. package/src/tags/Example.ts +24 -24
  430. package/src/tags/Examples.ts +16 -16
  431. package/src/tags/ExclusiveMaximum.ts +25 -25
  432. package/src/tags/ExclusiveMinimum.ts +25 -25
  433. package/src/tags/Format.ts +50 -50
  434. package/src/tags/JsonSchemaPlugin.ts +8 -8
  435. package/src/tags/MaxItems.ts +12 -12
  436. package/src/tags/MaxLength.ts +12 -12
  437. package/src/tags/Maximum.ts +19 -19
  438. package/src/tags/MinItems.ts +12 -12
  439. package/src/tags/MinLength.ts +12 -12
  440. package/src/tags/Minimum.ts +19 -19
  441. package/src/tags/MultipleOf.ts +21 -21
  442. package/src/tags/Pattern.ts +31 -31
  443. package/src/tags/Sequence.ts +10 -10
  444. package/src/tags/TagBase.ts +82 -82
  445. package/src/tags/Type.ts +32 -32
  446. package/src/tags/UniqueItems.ts +14 -14
  447. package/src/tags/index.ts +21 -21
  448. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  449. package/src/transform.ts +35 -35
  450. package/src/transformers/CallExpressionTransformer.ts +547 -547
  451. package/src/transformers/FileTransformer.ts +136 -136
  452. package/src/transformers/IProgrammerProps.ts +11 -11
  453. package/src/transformers/ITransformOptions.ts +62 -62
  454. package/src/transformers/ITransformProps.ts +9 -9
  455. package/src/transformers/ITypiaContext.ts +18 -18
  456. package/src/transformers/ImportTransformer.ts +81 -81
  457. package/src/transformers/NodeTransformer.ts +17 -17
  458. package/src/transformers/TransformerError.ts +60 -60
  459. package/src/transformers/features/AssertTransformer.ts +24 -24
  460. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  461. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  462. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  463. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  464. package/src/transformers/features/IsTransformer.ts +18 -18
  465. package/src/transformers/features/RandomTransformer.ts +41 -41
  466. package/src/transformers/features/ValidateTransformer.ts +18 -18
  467. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  468. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  469. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  470. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  471. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  472. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  473. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  474. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  475. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  476. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  477. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  478. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  479. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  480. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  481. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  482. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  483. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  484. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  485. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  486. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  487. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  488. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  489. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  490. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  491. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  492. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  493. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  494. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  495. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  496. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  497. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  498. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  499. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  500. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  501. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  502. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  503. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  504. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  505. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  506. package/src/transformers/features/json/JsonSchemasTransformer.ts +143 -143
  507. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  508. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  509. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  510. package/src/transformers/features/llm/LlmApplicationOfValidateTransformer.ts +121 -121
  511. package/src/transformers/features/llm/LlmApplicationTransformer.ts +118 -118
  512. package/src/transformers/features/llm/LlmParametersTransformer.ts +94 -94
  513. package/src/transformers/features/llm/LlmSchemaTransformer.ts +135 -135
  514. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  515. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  516. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  517. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  518. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  519. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  520. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  521. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  522. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  523. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  524. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  525. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  526. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  527. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  528. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  529. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  530. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  531. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  532. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  533. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  534. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  535. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  536. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  537. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  538. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  539. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  540. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  541. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  542. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  543. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  544. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  545. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  546. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  547. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  548. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  549. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  550. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  551. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  552. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  553. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  554. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  555. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  556. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  557. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  558. package/src/transformers/internal/GenericTransformer.ts +101 -101
  559. package/src/typings/Atomic.ts +13 -13
  560. package/src/typings/ClassProperties.ts +5 -5
  561. package/src/typings/Customizable.ts +5 -5
  562. package/src/typings/Equal.ts +18 -18
  563. package/src/typings/IsTuple.ts +9 -9
  564. package/src/typings/NativeClass.ts +23 -23
  565. package/src/typings/OmitNever.ts +3 -3
  566. package/src/typings/ProtobufAtomic.ts +19 -19
  567. package/src/typings/SpecialFields.ts +3 -3
  568. package/src/typings/ValidationPipe.ts +9 -9
  569. package/src/typings/ValueOf.ts +20 -20
  570. package/src/typings/Writable.ts +11 -11
  571. package/src/utils/ArrayUtil.ts +41 -41
  572. package/src/utils/Escaper.ts +50 -50
  573. package/src/utils/MapUtil.ts +14 -14
  574. package/src/utils/NamingConvention.ts +94 -94
  575. package/src/utils/PatternUtil.ts +29 -29
  576. package/src/utils/ProtobufNameEncoder.ts +32 -32
  577. package/src/utils/Singleton.ts +16 -16
  578. package/src/utils/StringUtil.ts +16 -16
@@ -1,87 +1,87 @@
1
- import fs from "fs";
2
- import path from "path";
3
-
4
- import { CommandExecutor } from "./CommandExecutor";
5
- import { FileRetriever } from "./FileRetriever";
6
-
7
- export class PackageManager {
8
- public manager: Manager = "npm";
9
- public get file(): string {
10
- return path.join(this.directory, "package.json");
11
- }
12
-
13
- public static async mount(): Promise<PackageManager> {
14
- const location: string | null = await FileRetriever.directory({
15
- file: "package.json",
16
- location: process.cwd(),
17
- });
18
- if (location === null)
19
- throw new URIError(`Unable to find "package.json" file`);
20
-
21
- return new PackageManager(
22
- location,
23
- await this.load(path.join(location, "package.json")),
24
- );
25
- }
26
-
27
- public async save(modifier: (data: Package.Data) => void): Promise<void> {
28
- const content: string = await fs.promises.readFile(this.file, "utf8");
29
- this.data = JSON.parse(content);
30
- modifier(this.data);
31
-
32
- return fs.promises.writeFile(
33
- this.file,
34
- JSON.stringify(this.data, null, 2),
35
- "utf8",
36
- );
37
- }
38
-
39
- public install(props: {
40
- dev: boolean;
41
- modulo: string;
42
- version: string;
43
- }): boolean {
44
- const middle: string = [
45
- installCmdTable[this.manager],
46
- props.dev ? devOptionTable[this.manager] : "",
47
- ]
48
- .filter((str) => !!str.length)
49
- .join(" ");
50
- const modulo: string = `${props.modulo}${props.version ? `@${props.version}` : ""}`;
51
- CommandExecutor.run([this.manager, middle, modulo].join(" "));
52
- return true;
53
- }
54
-
55
- private constructor(
56
- public readonly directory: string,
57
- public data: Package.Data,
58
- ) {}
59
-
60
- private static async load(file: string): Promise<Package.Data> {
61
- const content: string = await fs.promises.readFile(file, "utf8");
62
- return JSON.parse(content);
63
- }
64
- }
65
- export namespace Package {
66
- export interface Data {
67
- scripts?: Record<string, string>;
68
- dependencies?: Record<string, string>;
69
- devDependencies?: Record<string, string>;
70
- }
71
- }
72
-
73
- type Manager = "npm" | "pnpm" | "yarn" | "bun";
74
-
75
- const installCmdTable = {
76
- npm: "i",
77
- pnpm: "add",
78
- yarn: "add",
79
- bun: "add",
80
- } as const satisfies Record<Manager, string>;
81
-
82
- const devOptionTable = {
83
- npm: "-D",
84
- pnpm: "-D",
85
- yarn: "-D",
86
- bun: "-d",
87
- } as const satisfies Record<Manager, string>;
1
+ import fs from "fs";
2
+ import path from "path";
3
+
4
+ import { CommandExecutor } from "./CommandExecutor";
5
+ import { FileRetriever } from "./FileRetriever";
6
+
7
+ export class PackageManager {
8
+ public manager: Manager = "npm";
9
+ public get file(): string {
10
+ return path.join(this.directory, "package.json");
11
+ }
12
+
13
+ public static async mount(): Promise<PackageManager> {
14
+ const location: string | null = await FileRetriever.directory({
15
+ file: "package.json",
16
+ location: process.cwd(),
17
+ });
18
+ if (location === null)
19
+ throw new URIError(`Unable to find "package.json" file`);
20
+
21
+ return new PackageManager(
22
+ location,
23
+ await this.load(path.join(location, "package.json")),
24
+ );
25
+ }
26
+
27
+ public async save(modifier: (data: Package.Data) => void): Promise<void> {
28
+ const content: string = await fs.promises.readFile(this.file, "utf8");
29
+ this.data = JSON.parse(content);
30
+ modifier(this.data);
31
+
32
+ return fs.promises.writeFile(
33
+ this.file,
34
+ JSON.stringify(this.data, null, 2),
35
+ "utf8",
36
+ );
37
+ }
38
+
39
+ public install(props: {
40
+ dev: boolean;
41
+ modulo: string;
42
+ version: string;
43
+ }): boolean {
44
+ const middle: string = [
45
+ installCmdTable[this.manager],
46
+ props.dev ? devOptionTable[this.manager] : "",
47
+ ]
48
+ .filter((str) => !!str.length)
49
+ .join(" ");
50
+ const modulo: string = `${props.modulo}${props.version ? `@${props.version}` : ""}`;
51
+ CommandExecutor.run([this.manager, middle, modulo].join(" "));
52
+ return true;
53
+ }
54
+
55
+ private constructor(
56
+ public readonly directory: string,
57
+ public data: Package.Data,
58
+ ) {}
59
+
60
+ private static async load(file: string): Promise<Package.Data> {
61
+ const content: string = await fs.promises.readFile(file, "utf8");
62
+ return JSON.parse(content);
63
+ }
64
+ }
65
+ export namespace Package {
66
+ export interface Data {
67
+ scripts?: Record<string, string>;
68
+ dependencies?: Record<string, string>;
69
+ devDependencies?: Record<string, string>;
70
+ }
71
+ }
72
+
73
+ type Manager = "npm" | "pnpm" | "yarn" | "bun";
74
+
75
+ const installCmdTable = {
76
+ npm: "i",
77
+ pnpm: "add",
78
+ yarn: "add",
79
+ bun: "add",
80
+ } as const satisfies Record<Manager, string>;
81
+
82
+ const devOptionTable = {
83
+ npm: "-D",
84
+ pnpm: "-D",
85
+ yarn: "-D",
86
+ bun: "-d",
87
+ } as const satisfies Record<Manager, string>;
@@ -1,69 +1,69 @@
1
- import comments from "comment-json";
2
- import fs from "fs";
3
-
4
- import { TypiaSetupWizard } from "../TypiaSetupWizard";
5
-
6
- export namespace PluginConfigurator {
7
- export async function configure(
8
- args: TypiaSetupWizard.IArguments,
9
- ): Promise<void> {
10
- // GET COMPILER-OPTIONS
11
- const config: comments.CommentObject = comments.parse(
12
- await fs.promises.readFile(args.project!, "utf8"),
13
- ) as comments.CommentObject;
14
- const compilerOptions = config.compilerOptions as
15
- | comments.CommentObject
16
- | undefined;
17
- if (compilerOptions === undefined)
18
- throw new ReferenceError(
19
- `${args.project} file does not have "compilerOptions" property.`,
20
- );
21
-
22
- // PREPARE PLUGINS
23
- const plugins: comments.CommentArray<comments.CommentObject> = (() => {
24
- const plugins = compilerOptions.plugins as
25
- | comments.CommentArray<comments.CommentObject>
26
- | undefined;
27
- if (plugins === undefined) return (compilerOptions.plugins = [] as any);
28
- else if (!Array.isArray(plugins))
29
- throw new TypeError(
30
- `"plugins" property of ${args.project} must be array type.`,
31
- );
32
- return plugins;
33
- })();
34
-
35
- const strict: boolean | undefined = compilerOptions.strict as
36
- | boolean
37
- | undefined;
38
- const strictNullChecks: boolean | undefined =
39
- compilerOptions.strictNullChecks as boolean | undefined;
40
- const oldbie: comments.CommentObject | undefined = plugins.find(
41
- (p) =>
42
- typeof p === "object" &&
43
- p !== null &&
44
- p.transform === "typia/lib/transform",
45
- );
46
- if (
47
- strictNullChecks !== false &&
48
- (strict === true || strictNullChecks === true) &&
49
- oldbie !== undefined
50
- )
51
- return;
52
-
53
- // DO CONFIGURE
54
- compilerOptions.strictNullChecks = true;
55
- if (strict === undefined && strictNullChecks === undefined)
56
- compilerOptions.strict = true;
57
- if (oldbie === undefined)
58
- plugins.push(
59
- comments.parse(`
60
- {
61
- "transform": "typia/lib/transform"
62
- }`) as comments.CommentObject,
63
- );
64
- await fs.promises.writeFile(
65
- args.project!,
66
- comments.stringify(config, null, 2),
67
- );
68
- }
69
- }
1
+ import comments from "comment-json";
2
+ import fs from "fs";
3
+
4
+ import { TypiaSetupWizard } from "../TypiaSetupWizard";
5
+
6
+ export namespace PluginConfigurator {
7
+ export async function configure(
8
+ args: TypiaSetupWizard.IArguments,
9
+ ): Promise<void> {
10
+ // GET COMPILER-OPTIONS
11
+ const config: comments.CommentObject = comments.parse(
12
+ await fs.promises.readFile(args.project!, "utf8"),
13
+ ) as comments.CommentObject;
14
+ const compilerOptions = config.compilerOptions as
15
+ | comments.CommentObject
16
+ | undefined;
17
+ if (compilerOptions === undefined)
18
+ throw new ReferenceError(
19
+ `${args.project} file does not have "compilerOptions" property.`,
20
+ );
21
+
22
+ // PREPARE PLUGINS
23
+ const plugins: comments.CommentArray<comments.CommentObject> = (() => {
24
+ const plugins = compilerOptions.plugins as
25
+ | comments.CommentArray<comments.CommentObject>
26
+ | undefined;
27
+ if (plugins === undefined) return (compilerOptions.plugins = [] as any);
28
+ else if (!Array.isArray(plugins))
29
+ throw new TypeError(
30
+ `"plugins" property of ${args.project} must be array type.`,
31
+ );
32
+ return plugins;
33
+ })();
34
+
35
+ const strict: boolean | undefined = compilerOptions.strict as
36
+ | boolean
37
+ | undefined;
38
+ const strictNullChecks: boolean | undefined =
39
+ compilerOptions.strictNullChecks as boolean | undefined;
40
+ const oldbie: comments.CommentObject | undefined = plugins.find(
41
+ (p) =>
42
+ typeof p === "object" &&
43
+ p !== null &&
44
+ p.transform === "typia/lib/transform",
45
+ );
46
+ if (
47
+ strictNullChecks !== false &&
48
+ (strict === true || strictNullChecks === true) &&
49
+ oldbie !== undefined
50
+ )
51
+ return;
52
+
53
+ // DO CONFIGURE
54
+ compilerOptions.strictNullChecks = true;
55
+ if (strict === undefined && strictNullChecks === undefined)
56
+ compilerOptions.strict = true;
57
+ if (oldbie === undefined)
58
+ plugins.push(
59
+ comments.parse(`
60
+ {
61
+ "transform": "typia/lib/transform"
62
+ }`) as comments.CommentObject,
63
+ );
64
+ await fs.promises.writeFile(
65
+ args.project!,
66
+ comments.stringify(config, null, 2),
67
+ );
68
+ }
69
+ }
@@ -1,55 +1,55 @@
1
- #!/usr/bin/env node
2
- const USAGE = `Wrong command has been detected. Use like below:
3
-
4
- npx typia setup \\
5
- --manager (npm|pnpm|yarn) \\
6
- --project {tsconfig.json file path}
7
-
8
- - npx typia setup
9
- - npx typia setup --manager pnpm
10
- - npx typia setup --project tsconfig.test.json
11
-
12
- npx typia generate
13
- --input {directory} \\
14
- --output {directory}
15
-
16
- --npx typia generate --input src/templates --output src/functinoal
17
- `;
18
-
19
- const halt = (desc: string): never => {
20
- console.error(desc);
21
- process.exit(-1);
22
- };
23
-
24
- const main = async (): Promise<void> => {
25
- try {
26
- await import("comment-json");
27
- await import("inquirer");
28
- await import("commander");
29
- } catch {
30
- halt(`typia has not been installed. Run "npm i typia" before.`);
31
- }
32
-
33
- const type: string | undefined = process.argv[2];
34
- if (type === "setup") {
35
- const { TypiaSetupWizard } = await import("./TypiaSetupWizard");
36
- await TypiaSetupWizard.setup();
37
- } else if (type === "patch") {
38
- const { TypiaPatchWizard } = await import("./TypiaPatchWizard");
39
- await TypiaPatchWizard.main();
40
- } else if (type === "generate") {
41
- try {
42
- await import("typescript");
43
- } catch {
44
- halt(
45
- `typescript has not been installed. Run "npm i -D typescript" before.`,
46
- );
47
- }
48
- const { TypiaGenerateWizard } = await import("./TypiaGenerateWizard");
49
- await TypiaGenerateWizard.generate();
50
- } else halt(USAGE);
51
- };
52
- main().catch((exp) => {
53
- console.error(exp);
54
- process.exit(-1);
55
- });
1
+ #!/usr/bin/env node
2
+ const USAGE = `Wrong command has been detected. Use like below:
3
+
4
+ npx typia setup \\
5
+ --manager (npm|pnpm|yarn) \\
6
+ --project {tsconfig.json file path}
7
+
8
+ - npx typia setup
9
+ - npx typia setup --manager pnpm
10
+ - npx typia setup --project tsconfig.test.json
11
+
12
+ npx typia generate
13
+ --input {directory} \\
14
+ --output {directory}
15
+
16
+ --npx typia generate --input src/templates --output src/functinoal
17
+ `;
18
+
19
+ const halt = (desc: string): never => {
20
+ console.error(desc);
21
+ process.exit(-1);
22
+ };
23
+
24
+ const main = async (): Promise<void> => {
25
+ try {
26
+ await import("comment-json");
27
+ await import("inquirer");
28
+ await import("commander");
29
+ } catch {
30
+ halt(`typia has not been installed. Run "npm i typia" before.`);
31
+ }
32
+
33
+ const type: string | undefined = process.argv[2];
34
+ if (type === "setup") {
35
+ const { TypiaSetupWizard } = await import("./TypiaSetupWizard");
36
+ await TypiaSetupWizard.setup();
37
+ } else if (type === "patch") {
38
+ const { TypiaPatchWizard } = await import("./TypiaPatchWizard");
39
+ await TypiaPatchWizard.main();
40
+ } else if (type === "generate") {
41
+ try {
42
+ await import("typescript");
43
+ } catch {
44
+ halt(
45
+ `typescript has not been installed. Run "npm i -D typescript" before.`,
46
+ );
47
+ }
48
+ const { TypiaGenerateWizard } = await import("./TypiaGenerateWizard");
49
+ await TypiaGenerateWizard.generate();
50
+ } else halt(USAGE);
51
+ };
52
+ main().catch((exp) => {
53
+ console.error(exp);
54
+ process.exit(-1);
55
+ });
@@ -1,79 +1,79 @@
1
- import ts from "typescript";
2
-
3
- export namespace CommentFactory {
4
- export const description = (
5
- symbol: ts.Symbol,
6
- includeTags: boolean = false,
7
- ): string | undefined => {
8
- const node = symbol.declarations?.[0];
9
- if (!node) return undefined;
10
-
11
- // FOR LEGACY TS < 5.2
12
- const [major, minor] = ts.versionMajorMinor.split(".").map(Number) as [
13
- number,
14
- number,
15
- ];
16
- if (major < 5 || (major === 5 && minor < 1)) {
17
- const content: string[] = [];
18
- const main: string = ts.displayPartsToString(
19
- symbol.getDocumentationComment(undefined),
20
- );
21
- if (main.length) {
22
- content.push(main);
23
- if (includeTags && symbol.getJsDocTags().length) content.push("");
24
- }
25
- if (includeTags)
26
- for (const tag of symbol.getJsDocTags()) {
27
- content.push(
28
- tag.text
29
- ? `@${tag.name} ${ts.displayPartsToString(tag.text)}`
30
- : `@${tag.name}`,
31
- );
32
- }
33
- return content.length
34
- ? content.map((line) => line.split("\r\n").join("\n")).join("\n")
35
- : undefined;
36
- }
37
-
38
- // NEW FEATURE OF TS 5.2
39
- const elements: readonly (ts.JSDoc | ts.JSDocTag)[] =
40
- ts.getJSDocCommentsAndTags(node);
41
- if (elements.length === 0) return undefined;
42
-
43
- const content: string[] = [];
44
- for (const comment of elements) {
45
- if (ts.isJSDoc(comment)) {
46
- const parsed: string | undefined = ts.getTextOfJSDocComment(
47
- comment.comment,
48
- );
49
- if (parsed?.length) {
50
- content.push(parsed);
51
- if (includeTags && comment.tags?.length) content.push("");
52
- }
53
- if (includeTags)
54
- for (const tag of comment.tags ?? [])
55
- content.push(parseJSDocTag(tag));
56
- } else if (includeTags) content.push(parseJSDocTag(comment));
57
- }
58
- const output: string = content
59
- .map((line) => line.split("\r\n").join("\n"))
60
- .join("\n");
61
- return output.length ? output : undefined;
62
- };
63
-
64
- export const merge = (comments: ts.SymbolDisplayPart[]): string =>
65
- comments
66
- .map((part) => part.text)
67
- .map((str) => str.split("\r\n").join("\n"))
68
- .join("");
69
- }
70
-
71
- const parseJSDocTag = (tag: ts.JSDocTag): string => {
72
- const name: string | undefined = (
73
- tag as ts.JSDocParameterTag
74
- ).name?.getText();
75
- const parsed: string | undefined = ts.getTextOfJSDocComment(tag.comment);
76
- return [`@${tag.tagName.text}`, name, parsed]
77
- .filter((str) => !!str?.length)
78
- .join(" ");
79
- };
1
+ import ts from "typescript";
2
+
3
+ export namespace CommentFactory {
4
+ export const description = (
5
+ symbol: ts.Symbol,
6
+ includeTags: boolean = false,
7
+ ): string | undefined => {
8
+ const node = symbol.declarations?.[0];
9
+ if (!node) return undefined;
10
+
11
+ // FOR LEGACY TS < 5.2
12
+ const [major, minor] = ts.versionMajorMinor.split(".").map(Number) as [
13
+ number,
14
+ number,
15
+ ];
16
+ if (major < 5 || (major === 5 && minor < 1)) {
17
+ const content: string[] = [];
18
+ const main: string = ts.displayPartsToString(
19
+ symbol.getDocumentationComment(undefined),
20
+ );
21
+ if (main.length) {
22
+ content.push(main);
23
+ if (includeTags && symbol.getJsDocTags().length) content.push("");
24
+ }
25
+ if (includeTags)
26
+ for (const tag of symbol.getJsDocTags()) {
27
+ content.push(
28
+ tag.text
29
+ ? `@${tag.name} ${ts.displayPartsToString(tag.text)}`
30
+ : `@${tag.name}`,
31
+ );
32
+ }
33
+ return content.length
34
+ ? content.map((line) => line.split("\r\n").join("\n")).join("\n")
35
+ : undefined;
36
+ }
37
+
38
+ // NEW FEATURE OF TS 5.2
39
+ const elements: readonly (ts.JSDoc | ts.JSDocTag)[] =
40
+ ts.getJSDocCommentsAndTags(node);
41
+ if (elements.length === 0) return undefined;
42
+
43
+ const content: string[] = [];
44
+ for (const comment of elements) {
45
+ if (ts.isJSDoc(comment)) {
46
+ const parsed: string | undefined = ts.getTextOfJSDocComment(
47
+ comment.comment,
48
+ );
49
+ if (parsed?.length) {
50
+ content.push(parsed);
51
+ if (includeTags && comment.tags?.length) content.push("");
52
+ }
53
+ if (includeTags)
54
+ for (const tag of comment.tags ?? [])
55
+ content.push(parseJSDocTag(tag));
56
+ } else if (includeTags) content.push(parseJSDocTag(comment));
57
+ }
58
+ const output: string = content
59
+ .map((line) => line.split("\r\n").join("\n"))
60
+ .join("\n");
61
+ return output.length ? output : undefined;
62
+ };
63
+
64
+ export const merge = (comments: ts.SymbolDisplayPart[]): string =>
65
+ comments
66
+ .map((part) => part.text)
67
+ .map((str) => str.split("\r\n").join("\n"))
68
+ .join("");
69
+ }
70
+
71
+ const parseJSDocTag = (tag: ts.JSDocTag): string => {
72
+ const name: string | undefined = (
73
+ tag as ts.JSDocParameterTag
74
+ ).name?.getText();
75
+ const parsed: string | undefined = ts.getTextOfJSDocComment(tag.comment);
76
+ return [`@${tag.tagName.text}`, name, parsed]
77
+ .filter((str) => !!str?.length)
78
+ .join(" ");
79
+ };