typia 9.0.1 → 9.1.0-dev.20250408

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