typia 5.0.0-dev.20230730 → 5.0.0-dev.20230808

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 (239) hide show
  1. package/lib/executable/TypiaSetupWizard.js +39 -28
  2. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  3. package/lib/factories/CommentFactory.d.ts +1 -1
  4. package/lib/factories/CommentFactory.js +31 -28
  5. package/lib/factories/CommentFactory.js.map +1 -1
  6. package/lib/functional/$string.js +16 -20
  7. package/lib/functional/$string.js.map +1 -1
  8. package/lib/programmers/RandomProgrammer.js +1 -1
  9. package/lib/programmers/RandomProgrammer.js.map +1 -1
  10. package/lib/programmers/internal/application_object.js +2 -0
  11. package/lib/programmers/internal/application_object.js.map +1 -1
  12. package/lib/programmers/internal/stringify_dynamic_properties.js +1 -0
  13. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  14. package/lib/schemas/metadata/Metadata.d.ts +1 -0
  15. package/lib/schemas/metadata/Metadata.js +3 -0
  16. package/lib/schemas/metadata/Metadata.js.map +1 -1
  17. package/lib/utils/PatternUtil.d.ts +1 -1
  18. package/lib/utils/PatternUtil.js +3 -1
  19. package/lib/utils/PatternUtil.js.map +1 -1
  20. package/package.json +3 -3
  21. package/src/executable/TypiaSetupWizard.ts +34 -14
  22. package/src/factories/CommentFactory.ts +84 -76
  23. package/src/factories/MetadataCollection.ts +264 -264
  24. package/src/factories/MetadataFactory.ts +30 -30
  25. package/src/factories/MetadataTagFactory.ts +362 -362
  26. package/src/factories/ProtocolFactory.ts +80 -80
  27. package/src/factories/internal/metadata/MetadataHelper.ts +12 -12
  28. package/src/factories/internal/metadata/emend_metadata_atomics.ts +33 -33
  29. package/src/factories/internal/metadata/emplace_metadata_alias.ts +40 -40
  30. package/src/factories/internal/metadata/emplace_metadata_array.ts +34 -34
  31. package/src/factories/internal/metadata/emplace_metadata_object.ts +136 -136
  32. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +50 -50
  33. package/src/factories/internal/metadata/explore_metadata.ts +40 -40
  34. package/src/factories/internal/metadata/iterate_metadata.ts +81 -81
  35. package/src/factories/internal/metadata/iterate_metadata_alias.ts +30 -30
  36. package/src/factories/internal/metadata/iterate_metadata_array.ts +24 -24
  37. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +59 -59
  38. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  39. package/src/factories/internal/metadata/iterate_metadata_collection.ts +133 -133
  40. package/src/factories/internal/metadata/iterate_metadata_constant.ts +58 -58
  41. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +83 -83
  42. package/src/factories/internal/metadata/iterate_metadata_map.ts +41 -41
  43. package/src/factories/internal/metadata/iterate_metadata_native.ts +219 -219
  44. package/src/factories/internal/metadata/iterate_metadata_object.ts +43 -43
  45. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +49 -49
  46. package/src/factories/internal/metadata/iterate_metadata_set.ts +33 -33
  47. package/src/factories/internal/metadata/iterate_metadata_sort.ts +69 -69
  48. package/src/factories/internal/metadata/iterate_metadata_tag.ts +31 -31
  49. package/src/factories/internal/metadata/iterate_metadata_template.ts +38 -38
  50. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +24 -24
  51. package/src/factories/internal/metadata/iterate_metadata_union.ts +24 -24
  52. package/src/factories/internal/protocols/ProtocolMetadataUtil.ts +180 -180
  53. package/src/factories/internal/protocols/emplace_protocol_object.ts +25 -25
  54. package/src/factories/internal/protocols/emplace_protocol_property.ts +12 -12
  55. package/src/factories/internal/protocols/iterate_protocol_atomic.ts +34 -34
  56. package/src/factories/internal/protocols/iterate_protocol_constant.ts +27 -27
  57. package/src/factories/internal/protocols/iterate_protocol_main.ts +19 -19
  58. package/src/factories/internal/protocols/iterate_protocol_map.ts +58 -58
  59. package/src/factories/internal/protocols/iterate_protocol_metadata.ts +96 -96
  60. package/src/factories/internal/protocols/iterate_protocol_native.ts +34 -34
  61. package/src/factories/internal/protocols/iterate_protocol_never.ts +1 -1
  62. package/src/factories/internal/protocols/iterate_protocol_object.ts +110 -110
  63. package/src/factories/internal/protocols/iterate_protocol_repeated.ts +34 -34
  64. package/src/factories/internal/protocols/iterate_protocol_tuple.ts +29 -29
  65. package/src/functional/$number.ts +13 -13
  66. package/src/functional/$proto_bytes.ts +25 -25
  67. package/src/functional/$proto_field.ts +30 -30
  68. package/src/functional/$proto_float.ts +37 -37
  69. package/src/functional/$proto_i32.ts +29 -29
  70. package/src/functional/$proto_i64.ts +37 -37
  71. package/src/functional/$proto_size.ts +82 -82
  72. package/src/functional/$proto_string.ts +24 -24
  73. package/src/functional/$string.ts +32 -19
  74. package/src/functional/$varint.ts +130 -130
  75. package/src/functional/$zigzag.ts +39 -39
  76. package/src/json.ts +648 -648
  77. package/src/misc.ts +651 -651
  78. package/src/module.ts +781 -781
  79. package/src/programmers/CheckerProgrammer.ts +1182 -1182
  80. package/src/programmers/FeatureProgrammer.ts +495 -495
  81. package/src/programmers/IsProgrammer.ts +239 -239
  82. package/src/programmers/IsPruneProgrammer.ts +73 -73
  83. package/src/programmers/RandomProgrammer.ts +579 -581
  84. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  85. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  86. package/src/programmers/helpers/PruneJoiner.ts +143 -143
  87. package/src/programmers/helpers/RandomJoiner.ts +173 -173
  88. package/src/programmers/helpers/RandomRanger.ts +216 -216
  89. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  90. package/src/programmers/helpers/UnionExplorer.ts +301 -301
  91. package/src/programmers/helpers/UnionPredicator.ts +81 -81
  92. package/src/programmers/internal/application_alias.ts +66 -66
  93. package/src/programmers/internal/application_array.ts +30 -30
  94. package/src/programmers/internal/application_constant.ts +26 -26
  95. package/src/programmers/internal/application_default.ts +17 -17
  96. package/src/programmers/internal/application_default_string.ts +33 -33
  97. package/src/programmers/internal/application_native.ts +39 -39
  98. package/src/programmers/internal/application_number.ts +77 -77
  99. package/src/programmers/internal/application_object.ts +165 -162
  100. package/src/programmers/internal/application_resolved.ts +55 -55
  101. package/src/programmers/internal/application_schema.ts +157 -157
  102. package/src/programmers/internal/application_string.ts +44 -44
  103. package/src/programmers/internal/application_templates.ts +25 -25
  104. package/src/programmers/internal/application_tuple.ts +57 -57
  105. package/src/programmers/internal/check_array.ts +30 -30
  106. package/src/programmers/internal/check_array_length.ts +35 -35
  107. package/src/programmers/internal/check_bigint.ts +82 -82
  108. package/src/programmers/internal/check_custom.ts +31 -31
  109. package/src/programmers/internal/check_number.ts +177 -177
  110. package/src/programmers/internal/check_string.ts +25 -25
  111. package/src/programmers/internal/check_string_tags.ts +67 -67
  112. package/src/programmers/internal/check_template.ts +56 -56
  113. package/src/programmers/internal/check_union_array_like.ts +329 -329
  114. package/src/programmers/internal/decode_union_object.ts +73 -73
  115. package/src/programmers/internal/feature_object_entries.ts +63 -63
  116. package/src/programmers/internal/get_comment_tags.ts +23 -23
  117. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  118. package/src/programmers/internal/prune_object_properties.ts +60 -60
  119. package/src/programmers/internal/random_custom.ts +29 -29
  120. package/src/programmers/internal/stringify_dynamic_properties.ts +4 -0
  121. package/src/programmers/internal/stringify_regular_properties.ts +83 -83
  122. package/src/programmers/internal/template_to_pattern.ts +15 -15
  123. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +16 -16
  124. package/src/programmers/json/JsonApplicationProgrammer.ts +47 -47
  125. package/src/programmers/json/JsonAssertParseProgrammer.ts +66 -66
  126. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +66 -66
  127. package/src/programmers/json/JsonIsParseProgrammer.ts +72 -72
  128. package/src/programmers/json/JsonIsStringifyProgrammer.ts +76 -76
  129. package/src/programmers/json/JsonStringifyProgrammer.ts +979 -979
  130. package/src/programmers/json/JsonValidateParseProgrammer.ts +70 -70
  131. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +84 -84
  132. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +71 -71
  133. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +68 -68
  134. package/src/programmers/misc/MiscCloneProgrammer.ts +587 -587
  135. package/src/programmers/misc/MiscIsCloneProgrammer.ts +78 -78
  136. package/src/programmers/misc/MiscLiteralsProgrammer.ts +63 -63
  137. package/src/programmers/misc/MiscPruneProgrammer.ts +542 -542
  138. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +85 -85
  139. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +78 -78
  140. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +69 -69
  141. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +66 -66
  142. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +38 -38
  143. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +36 -36
  144. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +75 -75
  145. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +76 -76
  146. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +125 -125
  147. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +83 -83
  148. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +86 -86
  149. package/src/protobuf.ts +210 -210
  150. package/src/schemas/json/IJsonApplication.ts +8 -8
  151. package/src/schemas/json/IJsonComponents.ts +33 -33
  152. package/src/schemas/json/IJsonSchema.ts +133 -133
  153. package/src/schemas/metadata/ICommentTag.ts +4 -4
  154. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  155. package/src/schemas/metadata/IMetadata.ts +28 -28
  156. package/src/schemas/metadata/IMetadataAlias.ts +14 -14
  157. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  158. package/src/schemas/metadata/IMetadataArray.ts +10 -10
  159. package/src/schemas/metadata/IMetadataCollection.ts +11 -11
  160. package/src/schemas/metadata/IMetadataConstant.ts +16 -16
  161. package/src/schemas/metadata/IMetadataDictionary.ts +14 -14
  162. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  163. package/src/schemas/metadata/IMetadataObject.ts +18 -18
  164. package/src/schemas/metadata/IMetadataProperty.ts +11 -11
  165. package/src/schemas/metadata/IMetadataResolved.ts +6 -6
  166. package/src/schemas/metadata/IMetadataTag.ts +113 -113
  167. package/src/schemas/metadata/IMetadataTuple.ts +10 -10
  168. package/src/schemas/metadata/Metadata.ts +610 -608
  169. package/src/schemas/metadata/MetadataAlias.ts +66 -66
  170. package/src/schemas/metadata/MetadataArray.ts +55 -55
  171. package/src/schemas/metadata/MetadataConstant.ts +3 -3
  172. package/src/schemas/metadata/MetadataObject.ts +129 -129
  173. package/src/schemas/metadata/MetadataProperty.ts +64 -64
  174. package/src/schemas/metadata/MetadataResolved.ts +51 -51
  175. package/src/schemas/metadata/MetadataTuple.ts +53 -53
  176. package/src/schemas/protobuf/IProtocolMap.ts +5 -5
  177. package/src/schemas/protobuf/IProtocolMessage.ts +6 -6
  178. package/src/schemas/protobuf/IProtocolProperty.ts +13 -13
  179. package/src/transformers/CallExpressionTransformer.ts +240 -240
  180. package/src/transformers/features/AssertTransformer.ts +11 -11
  181. package/src/transformers/features/CreateAssertTransformer.ts +13 -13
  182. package/src/transformers/features/CreateIsTransformer.ts +11 -11
  183. package/src/transformers/features/CreateRandomTransformer.ts +39 -39
  184. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  185. package/src/transformers/features/IsTransformer.ts +11 -11
  186. package/src/transformers/features/RandomTransformer.ts +42 -42
  187. package/src/transformers/features/ValidateTransformer.ts +11 -11
  188. package/src/transformers/features/json/JsonApplicationTransformer.ts +102 -102
  189. package/src/transformers/features/json/JsonAssertParseTransformer.ts +10 -10
  190. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  191. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +10 -10
  192. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  193. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  194. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +10 -10
  195. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  196. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +10 -10
  197. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  198. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  199. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +10 -10
  200. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  201. package/src/transformers/features/json/JsonValidateParseTransformer.ts +10 -10
  202. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  203. package/src/transformers/features/misc/MetadataTransformer.ts +53 -53
  204. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +10 -10
  205. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +10 -10
  206. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  207. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +10 -10
  208. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +10 -10
  209. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  210. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  211. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  212. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  213. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +10 -10
  214. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +10 -10
  215. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  216. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  217. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +28 -28
  218. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  219. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +10 -10
  220. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +10 -10
  221. package/src/transformers/features/protobuf/CreateProtobufAssertDecodeTransformer.ts +10 -10
  222. package/src/transformers/features/protobuf/CreateProtobufAssertEncodeTransformer.ts +10 -10
  223. package/src/transformers/features/protobuf/CreateProtobufDecodeTransformer.ts +10 -10
  224. package/src/transformers/features/protobuf/CreateProtobufEncodeTransformer.ts +10 -10
  225. package/src/transformers/features/protobuf/CreateProtobufIsDecodeTransformer.ts +10 -10
  226. package/src/transformers/features/protobuf/CreateProtobufIsEncodeTransformer.ts +10 -10
  227. package/src/transformers/features/protobuf/CreateProtobufValidateDecodeTransformer.ts +10 -10
  228. package/src/transformers/features/protobuf/CreateProtobufValidateEncodeTransformer.ts +10 -10
  229. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  230. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  231. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +10 -10
  232. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +10 -10
  233. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +10 -10
  234. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +10 -10
  235. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +31 -31
  236. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  237. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  238. package/src/utils/NameEncoder.ts +32 -32
  239. package/src/utils/PatternUtil.ts +4 -1
@@ -30,7 +30,9 @@ var PatternUtil;
30
30
  .replace(/[|\\/{}()[\]^$+*?.]/g, "\\$&")
31
31
  .replace(/-/g, "\\x2d");
32
32
  };
33
- PatternUtil.NUMBER = "-?\\d+\\.?\\d*";
33
+ PatternUtil.NUMBER = "[+-]?" +
34
+ "\\d+(?:\\.\\d+)?" +
35
+ "(?:[eE][+-]?\\d+)?";
34
36
  PatternUtil.BOOLEAN = "true|false";
35
37
  PatternUtil.STRING = "(.*)";
36
38
  })(PatternUtil || (exports.PatternUtil = PatternUtil = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"PatternUtil.js","sourceRoot":"","sources":["../../src/utils/PatternUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,IAAiB,WAAW,CAsB3B;AAtBD,WAAiB,WAAW;IACX,eAAG,GAAG,UAAC,GAAW;QAC3B,IAAM,KAAK,GAAW,GAAG,CAAC,OAAO,CAAC,YAAA,MAAM,CAAC,CAAC;QAC1C,IAAM,IAAI,GAAW,GAAG,CAAC,WAAW,CAAC,YAAA,MAAM,CAAC,CAAC;QAC7C,OAAO;YACH,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACzD,GAAG;YACH,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,YAAA,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrD,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,EAAE;SACX,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,CAAC;IAEW,kBAAM,GAAG,UAAC,GAAW;QAC9B,OAAO,GAAG;aACL,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC;aACvC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC;IAEW,kBAAM,GAAG,gBAAgB,CAAC;IAC1B,mBAAO,GAAG,YAAY,CAAC;IACvB,kBAAM,GAAG,MAAM,CAAC;AACjC,CAAC,EAtBgB,WAAW,2BAAX,WAAW,QAsB3B;AAED,IAAM,IAAI,GACN,UAAC,WAAmB;IACpB,OAAA,UAAC,GAAW;;;YACR,KAAiB,IAAA,QAAA,SAAA,GAAG,CAAA,wBAAA;gBAAf,IAAM,EAAE,gBAAA;gBAAS,IAAI,EAAE,KAAK,WAAW;oBAAE,OAAO,IAAI,CAAC;aAAA;;;;;;;;;QAC1D,OAAO,KAAK,CAAC;IACjB,CAAC;AAHD,CAGC,CAAC"}
1
+ {"version":3,"file":"PatternUtil.js","sourceRoot":"","sources":["../../src/utils/PatternUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,IAAiB,WAAW,CAyB3B;AAzBD,WAAiB,WAAW;IACX,eAAG,GAAG,UAAC,GAAW;QAC3B,IAAM,KAAK,GAAW,GAAG,CAAC,OAAO,CAAC,YAAA,MAAM,CAAC,CAAC;QAC1C,IAAM,IAAI,GAAW,GAAG,CAAC,WAAW,CAAC,YAAA,MAAM,CAAC,CAAC;QAC7C,OAAO;YACH,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACzD,GAAG;YACH,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,YAAA,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrD,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,EAAE;SACX,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,CAAC;IAEW,kBAAM,GAAG,UAAC,GAAW;QAC9B,OAAO,GAAG;aACL,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC;aACvC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC;IAEW,kBAAM,GACf,OAAO;QACP,kBAAkB;QAClB,oBAAoB,CAAC;IACZ,mBAAO,GAAG,YAAY,CAAC;IACvB,kBAAM,GAAG,MAAM,CAAC;AACjC,CAAC,EAzBgB,WAAW,2BAAX,WAAW,QAyB3B;AAED,IAAM,IAAI,GACN,UAAC,WAAmB;IACpB,OAAA,UAAC,GAAW;;;YACR,KAAiB,IAAA,QAAA,SAAA,GAAG,CAAA,wBAAA;gBAAf,IAAM,EAAE,gBAAA;gBAAS,IAAI,EAAE,KAAK,WAAW;oBAAE,OAAO,IAAI,CAAC;aAAA;;;;;;;;;QAC1D,OAAO,KAAK,CAAC;IACjB,CAAC;AAHD,CAGC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "5.0.0-dev.20230730",
3
+ "version": "5.0.0-dev.20230808",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -107,7 +107,7 @@
107
107
  "d3": "^5.16.0",
108
108
  "eslint-plugin-deprecation": "^1.4.1",
109
109
  "express": "^4.18.2",
110
- "fast-json-stringify": "^5.4.0",
110
+ "fast-json-stringify": "^5.8.0",
111
111
  "fastify": "^4.9.2",
112
112
  "io-ts": "^2.2.19",
113
113
  "jsdom": "^21.1.1",
@@ -128,7 +128,7 @@
128
128
  "zod": "^3.19.1"
129
129
  },
130
130
  "stackblitzs": {
131
- "startCommand": "npm run prepare && npm run build && npm run build:test && npm run test"
131
+ "startCommand": "npm run postinstall && npm run build && npm run build:test && npm run test"
132
132
  },
133
133
  "files": [
134
134
  "LICENSE",
@@ -40,23 +40,37 @@ export namespace TypiaSetupWizard {
40
40
  })(),
41
41
  });
42
42
  args.project ??= (() => {
43
- CommandExecutor.run("npx tsc --init");
43
+ const runner: string =
44
+ pack.manager === "npm" ? "npx" : pack.manager;
45
+ CommandExecutor.run(`${runner} tsc --init`);
44
46
  return (args.project = "tsconfig.json");
45
47
  })();
46
48
 
47
49
  // SETUP TRANSFORMER
48
50
  await pack.save((data) => {
51
+ // COMPOSE POSTINSTALL COMMAND
49
52
  data.scripts ??= {};
50
53
  if (
51
- typeof data.scripts.prepare === "string" &&
52
- data.scripts.prepare.length
54
+ typeof data.scripts.postinstall === "string" &&
55
+ data.scripts.postinstall.trim().length
53
56
  ) {
54
- if (data.scripts.prepare.indexOf("ts-patch install") === -1)
55
- data.scripts.prepare =
56
- "ts-patch install && " + data.scripts.prepare;
57
- } else data.scripts.prepare = "ts-patch install";
57
+ if (data.scripts.postinstall.indexOf("ts-patch install") === -1)
58
+ data.scripts.postinstall =
59
+ "ts-patch install && " + data.scripts.postinstall;
60
+ } else data.scripts.postinstall = "ts-patch install";
61
+
62
+ // FOR OLDER VERSIONS
63
+ if (typeof data.scripts.prepare === "string") {
64
+ data.scripts.prepare = data.scripts.prepare
65
+ .split("&&")
66
+ .map((str) => str.trim())
67
+ .filter((str) => str.indexOf("ts-patch install") === -1)
68
+ .join(" && ");
69
+ if (data.scripts.prepare.length === 0)
70
+ delete data.scripts.prepare;
71
+ }
58
72
  });
59
- CommandExecutor.run("npm run prepare");
73
+ CommandExecutor.run(`${pack.manager} run postinstall`);
60
74
 
61
75
  // CONFIGURE TYPIA
62
76
  await PluginConfigurator.configure(args);
@@ -79,6 +93,7 @@ export namespace TypiaSetupWizard {
79
93
  (message: string) =>
80
94
  async <Choice extends string>(
81
95
  choices: Choice[],
96
+ filter?: (choice: string) => Choice,
82
97
  ): Promise<Choice> => {
83
98
  questioned.value = true;
84
99
  return (
@@ -87,6 +102,7 @@ export namespace TypiaSetupWizard {
87
102
  name: name,
88
103
  message: message,
89
104
  choices: choices,
105
+ filter,
90
106
  })
91
107
  )[name];
92
108
  };
@@ -118,12 +134,16 @@ export namespace TypiaSetupWizard {
118
134
 
119
135
  // DO CONSTRUCT
120
136
  return action(async (options) => {
121
- options.manager ??= await select("manager")("Package Manager")([
122
- "npm" as const,
123
- "pnpm" as const,
124
- "yarn" as const,
125
- ]);
126
- pack.manager = options.manager;
137
+ pack.manager = options.manager ??= await select("manager")(
138
+ "Package Manager",
139
+ )(
140
+ [
141
+ "npm" as const,
142
+ "pnpm" as const,
143
+ "yarn (berry is not supported)" as "yarn",
144
+ ],
145
+ (value) => value.split(" ")[0] as "yarn",
146
+ );
127
147
  options.project ??= await configure();
128
148
 
129
149
  if (questioned.value) console.log("");
@@ -1,76 +1,84 @@
1
- import ts from "typescript";
2
-
3
- export namespace CommentFactory {
4
- export const description = (symbol: ts.Symbol): string | undefined => {
5
- const node = symbol.declarations?.[0];
6
- if (!node) return undefined;
7
-
8
- // FOR LEGACY TS < 5.2
9
- const [major, minor] = ts.versionMajorMinor.split(".").map(Number) as [
10
- number,
11
- number,
12
- ];
13
- if (major < 5 || (major === 5 && minor < 1)) {
14
- const content: string[] = [];
15
- const main: string = ts.displayPartsToString(
16
- symbol.getDocumentationComment(undefined),
17
- );
18
- if (main.length) {
19
- content.push(main);
20
- if (symbol.getJsDocTags().length) content.push("");
21
- }
22
- for (const tag of symbol.getJsDocTags()) {
23
- content.push(
24
- tag.text
25
- ? `@${tag.name} ${ts.displayPartsToString(tag.text)}`
26
- : `@${tag.name}`,
27
- );
28
- }
29
- return content.length
30
- ? content
31
- .map((line) => line.split("\r\n").join("\n"))
32
- .join("\n")
33
- : undefined;
34
- }
35
-
36
- // NEW FEATURE OF TS 5.2
37
- const elements: readonly (ts.JSDoc | ts.JSDocTag)[] =
38
- ts.getJSDocCommentsAndTags(node);
39
- if (elements.length === 0) return undefined;
40
-
41
- const content: string[] = [];
42
- for (const comment of elements) {
43
- if (ts.isJSDoc(comment)) {
44
- const parsed: string | undefined = ts.getTextOfJSDocComment(
45
- comment.comment,
46
- );
47
- if (parsed?.length) {
48
- content.push(parsed);
49
- if (comment.tags?.length) content.push("");
50
- }
51
- for (const tag of comment.tags ?? [])
52
- content.push(parseJSDocTag(tag));
53
- } else content.push(parseJSDocTag(comment));
54
- }
55
- const output: string = content
56
- .map((line) => line.split("\r\n").join("\n"))
57
- .join("\n");
58
- return output.length ? output : undefined;
59
- };
60
-
61
- export const merge = (comments: ts.SymbolDisplayPart[]): string =>
62
- comments
63
- .map((part) => part.text)
64
- .map((str) => str.split("\r\n").join("\n"))
65
- .join("");
66
- }
67
-
68
- const parseJSDocTag = (tag: ts.JSDocTag): string => {
69
- const name: string | undefined = (
70
- tag as ts.JSDocParameterTag
71
- ).name?.getText();
72
- const parsed: string | undefined = ts.getTextOfJSDocComment(tag.comment);
73
- return [`@${tag.tagName.text}`, name, parsed]
74
- .filter((str) => !!str?.length)
75
- .join(" ");
76
- };
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)
24
+ content.push("");
25
+ }
26
+ if (includeTags)
27
+ for (const tag of symbol.getJsDocTags()) {
28
+ content.push(
29
+ tag.text
30
+ ? `@${tag.name} ${ts.displayPartsToString(
31
+ tag.text,
32
+ )}`
33
+ : `@${tag.name}`,
34
+ );
35
+ }
36
+ return content.length
37
+ ? content
38
+ .map((line) => line.split("\r\n").join("\n"))
39
+ .join("\n")
40
+ : undefined;
41
+ }
42
+
43
+ // NEW FEATURE OF TS 5.2
44
+ const elements: readonly (ts.JSDoc | ts.JSDocTag)[] =
45
+ ts.getJSDocCommentsAndTags(node);
46
+ if (elements.length === 0) return undefined;
47
+
48
+ const content: string[] = [];
49
+ for (const comment of elements) {
50
+ if (ts.isJSDoc(comment)) {
51
+ const parsed: string | undefined = ts.getTextOfJSDocComment(
52
+ comment.comment,
53
+ );
54
+ if (parsed?.length) {
55
+ content.push(parsed);
56
+ if (includeTags && comment.tags?.length) content.push("");
57
+ }
58
+ if (includeTags)
59
+ for (const tag of comment.tags ?? [])
60
+ content.push(parseJSDocTag(tag));
61
+ } else if (includeTags) content.push(parseJSDocTag(comment));
62
+ }
63
+ const output: string = content
64
+ .map((line) => line.split("\r\n").join("\n"))
65
+ .join("\n");
66
+ return output.length ? output : undefined;
67
+ };
68
+
69
+ export const merge = (comments: ts.SymbolDisplayPart[]): string =>
70
+ comments
71
+ .map((part) => part.text)
72
+ .map((str) => str.split("\r\n").join("\n"))
73
+ .join("");
74
+ }
75
+
76
+ const parseJSDocTag = (tag: ts.JSDocTag): string => {
77
+ const name: string | undefined = (
78
+ tag as ts.JSDocParameterTag
79
+ ).name?.getText();
80
+ const parsed: string | undefined = ts.getTextOfJSDocComment(tag.comment);
81
+ return [`@${tag.tagName.text}`, name, parsed]
82
+ .filter((str) => !!str?.length)
83
+ .join(" ");
84
+ };