typia 5.3.0-dev.20231122 → 5.3.0-dev.20231126

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 (517) hide show
  1. package/lib/TypeGuardError.js.map +1 -1
  2. package/lib/executable/TypiaPatchWizard.d.ts +4 -0
  3. package/lib/executable/TypiaPatchWizard.js +89 -0
  4. package/lib/executable/TypiaPatchWizard.js.map +1 -0
  5. package/lib/executable/TypiaSetupWizard.js +13 -3
  6. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  7. package/lib/executable/typia.js +24 -15
  8. package/lib/executable/typia.js.map +1 -1
  9. package/lib/factories/CommentFactory.d.ts +1 -0
  10. package/lib/factories/CommentFactory.js.map +1 -1
  11. package/lib/factories/ExpressionFactory.d.ts +1 -0
  12. package/lib/factories/IdentifierFactory.d.ts +1 -0
  13. package/lib/factories/JsonMetadataFactory.d.ts +1 -0
  14. package/lib/factories/LiteralFactory.d.ts +1 -0
  15. package/lib/factories/MetadataCollection.d.ts +1 -0
  16. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  17. package/lib/factories/MetadataFactory.d.ts +1 -0
  18. package/lib/factories/MetadataFactory.js.map +1 -1
  19. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  20. package/lib/factories/NumericRangeFactory.d.ts +1 -0
  21. package/lib/factories/ProtobufFactory.d.ts +1 -0
  22. package/lib/factories/ProtobufFactory.js.map +1 -1
  23. package/lib/factories/StatementFactory.d.ts +1 -0
  24. package/lib/factories/TemplateFactory.d.ts +1 -0
  25. package/lib/factories/TemplateFactory.js.map +1 -1
  26. package/lib/factories/TypeFactory.d.ts +1 -0
  27. package/lib/factories/TypeFactory.js.map +1 -1
  28. package/lib/factories/ValueFactory.d.ts +1 -0
  29. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  30. package/lib/factories/internal/metadata/emplace_metadata_alias.d.ts +1 -0
  31. package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +1 -0
  32. package/lib/factories/internal/metadata/emplace_metadata_object.d.ts +1 -0
  33. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  34. package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +1 -0
  35. package/lib/factories/internal/metadata/explore_metadata.d.ts +1 -0
  36. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
  37. package/lib/factories/internal/metadata/iterate_metadata.d.ts +1 -0
  38. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  39. package/lib/factories/internal/metadata/iterate_metadata_alias.d.ts +1 -0
  40. package/lib/factories/internal/metadata/iterate_metadata_array.d.ts +1 -0
  41. package/lib/factories/internal/metadata/iterate_metadata_atomic.d.ts +1 -0
  42. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  43. package/lib/factories/internal/metadata/iterate_metadata_coalesce.d.ts +1 -0
  44. package/lib/factories/internal/metadata/iterate_metadata_coalesce.js.map +1 -1
  45. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  46. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -1
  47. package/lib/factories/internal/metadata/iterate_metadata_constant.d.ts +1 -0
  48. package/lib/factories/internal/metadata/iterate_metadata_constant.js.map +1 -1
  49. package/lib/factories/internal/metadata/iterate_metadata_intersection.d.ts +1 -0
  50. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  51. package/lib/factories/internal/metadata/iterate_metadata_map.d.ts +1 -0
  52. package/lib/factories/internal/metadata/iterate_metadata_native.d.ts +1 -0
  53. package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
  54. package/lib/factories/internal/metadata/iterate_metadata_object.d.ts +1 -0
  55. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  56. package/lib/factories/internal/metadata/iterate_metadata_resolve.d.ts +1 -0
  57. package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -1
  58. package/lib/factories/internal/metadata/iterate_metadata_set.d.ts +1 -0
  59. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  60. package/lib/factories/internal/metadata/iterate_metadata_template.d.ts +1 -0
  61. package/lib/factories/internal/metadata/iterate_metadata_tuple.d.ts +1 -0
  62. package/lib/factories/internal/metadata/iterate_metadata_union.d.ts +1 -0
  63. package/lib/functional/$HeadersReader.js.map +1 -1
  64. package/lib/functional/$ParameterReader.js.map +1 -1
  65. package/lib/functional/$ProtobufReader.js.map +1 -1
  66. package/lib/functional/$ProtobufSizer.js.map +1 -1
  67. package/lib/functional/$ProtobufWriter.js.map +1 -1
  68. package/lib/functional/$QueryReader.js.map +1 -1
  69. package/lib/functional/$stoll.js.map +1 -1
  70. package/lib/functional/$string.js.map +1 -1
  71. package/lib/functional/$varint.js.map +1 -1
  72. package/lib/functional/$zigzag.js.map +1 -1
  73. package/lib/functional/Namespace.js.map +1 -1
  74. package/lib/programmers/AssertProgrammer.d.ts +1 -0
  75. package/lib/programmers/CheckerProgrammer.d.ts +1 -0
  76. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  77. package/lib/programmers/FeatureProgrammer.d.ts +1 -0
  78. package/lib/programmers/IsProgrammer.d.ts +1 -0
  79. package/lib/programmers/IsProgrammer.js.map +1 -1
  80. package/lib/programmers/RandomProgrammer.d.ts +1 -0
  81. package/lib/programmers/ValidateProgrammer.d.ts +1 -0
  82. package/lib/programmers/helpers/CloneJoiner.d.ts +1 -0
  83. package/lib/programmers/helpers/FunctionImporeter.d.ts +1 -0
  84. package/lib/programmers/helpers/ICheckEntry.d.ts +1 -0
  85. package/lib/programmers/helpers/IExpressionEntry.d.ts +1 -0
  86. package/lib/programmers/helpers/NotationJoiner.d.ts +1 -0
  87. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  88. package/lib/programmers/helpers/PruneJoiner.d.ts +1 -0
  89. package/lib/programmers/helpers/RandomJoiner.d.ts +1 -0
  90. package/lib/programmers/helpers/RandomRanger.d.ts +1 -0
  91. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  92. package/lib/programmers/helpers/StringifyJoinder.d.ts +1 -0
  93. package/lib/programmers/helpers/UnionExplorer.d.ts +1 -0
  94. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  95. package/lib/programmers/helpers/UnionPredicator.js.map +1 -1
  96. package/lib/programmers/http/HttpAssertHeadersProgrammer.d.ts +1 -0
  97. package/lib/programmers/http/HttpAssertQueryProgrammer.d.ts +1 -0
  98. package/lib/programmers/http/HttpHeadersProgrammer.d.ts +1 -0
  99. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  100. package/lib/programmers/http/HttpIsHeadersProgrammer.d.ts +1 -0
  101. package/lib/programmers/http/HttpIsQueryProgrammer.d.ts +1 -0
  102. package/lib/programmers/http/HttpParameterProgrammer.d.ts +1 -0
  103. package/lib/programmers/http/HttpQueryProgrammer.d.ts +1 -0
  104. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  105. package/lib/programmers/http/HttpValidateHeadersProgrammer.d.ts +1 -0
  106. package/lib/programmers/http/HttpValidateQueryProgrammer.d.ts +1 -0
  107. package/lib/programmers/internal/application_alias.js.map +1 -1
  108. package/lib/programmers/internal/application_escaped.js.map +1 -1
  109. package/lib/programmers/internal/application_native.js.map +1 -1
  110. package/lib/programmers/internal/application_number.js.map +1 -1
  111. package/lib/programmers/internal/application_object.js.map +1 -1
  112. package/lib/programmers/internal/application_schema.js.map +1 -1
  113. package/lib/programmers/internal/check_dynamic_key.d.ts +1 -0
  114. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  115. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  116. package/lib/programmers/json/JsonAssertParseProgrammer.d.ts +1 -0
  117. package/lib/programmers/json/JsonAssertStringifyProgrammer.d.ts +1 -0
  118. package/lib/programmers/json/JsonIsParseProgrammer.d.ts +1 -0
  119. package/lib/programmers/json/JsonIsStringifyProgrammer.d.ts +1 -0
  120. package/lib/programmers/json/JsonStringifyProgrammer.d.ts +1 -0
  121. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  122. package/lib/programmers/json/JsonValidateParseProgrammer.d.ts +1 -0
  123. package/lib/programmers/json/JsonValidateStringifyProgrammer.d.ts +1 -0
  124. package/lib/programmers/misc/MiscAssertCloneProgrammer.d.ts +1 -0
  125. package/lib/programmers/misc/MiscAssertPruneProgrammer.d.ts +1 -0
  126. package/lib/programmers/misc/MiscCloneProgrammer.d.ts +1 -0
  127. package/lib/programmers/misc/MiscIsCloneProgrammer.d.ts +1 -0
  128. package/lib/programmers/misc/MiscIsPruneProgrammer.d.ts +1 -0
  129. package/lib/programmers/misc/MiscLiteralsProgrammer.d.ts +1 -0
  130. package/lib/programmers/misc/MiscPruneProgrammer.d.ts +1 -0
  131. package/lib/programmers/misc/MiscValidateCloneProgrammer.d.ts +1 -0
  132. package/lib/programmers/misc/MiscValidatePruneProgrammer.d.ts +1 -0
  133. package/lib/programmers/notations/NotationAssertGeneralProgrammer.d.ts +1 -0
  134. package/lib/programmers/notations/NotationGeneralProgrammer.d.ts +1 -0
  135. package/lib/programmers/notations/NotationIsGeneralProgrammer.d.ts +1 -0
  136. package/lib/programmers/notations/NotationValidateGeneralProgrammer.d.ts +1 -0
  137. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.d.ts +1 -0
  138. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.d.ts +1 -0
  139. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.d.ts +1 -0
  140. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  141. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.d.ts +1 -0
  142. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  143. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.d.ts +1 -0
  144. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.d.ts +1 -0
  145. package/lib/programmers/protobuf/ProtobufMessageProgrammer.d.ts +1 -0
  146. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  147. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.d.ts +1 -0
  148. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.d.ts +1 -0
  149. package/lib/schemas/metadata/Metadata.js.map +1 -1
  150. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  151. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
  152. package/lib/transform.d.ts +1 -0
  153. package/lib/transformers/CallExpressionTransformer.d.ts +1 -0
  154. package/lib/transformers/FileTransformer.d.ts +1 -0
  155. package/lib/transformers/FileTransformer.js +2 -2
  156. package/lib/transformers/FileTransformer.js.map +1 -1
  157. package/lib/transformers/IProject.d.ts +1 -0
  158. package/lib/transformers/ImportTransformer.d.ts +1 -0
  159. package/lib/transformers/NodeTransformer.d.ts +1 -0
  160. package/lib/transformers/TransformerError.js.map +1 -1
  161. package/lib/transformers/features/CreateRandomTransformer.d.ts +1 -0
  162. package/lib/transformers/features/RandomTransformer.d.ts +1 -0
  163. package/lib/transformers/features/json/JsonApplicationTransformer.d.ts +1 -0
  164. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  165. package/lib/transformers/features/misc/MiscLiteralsTransformer.d.ts +1 -0
  166. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.d.ts +1 -0
  167. package/lib/transformers/features/reflect/ReflectMetadataTransformer.d.ts +1 -0
  168. package/lib/transformers/internal/GenericTransformer.d.ts +1 -0
  169. package/lib/utils/NamingConvention.js.map +1 -1
  170. package/package.json +13 -67
  171. package/src/AssertionGuard.ts +1 -1
  172. package/src/CamelCase.ts +114 -114
  173. package/src/IRandomGenerator.ts +35 -35
  174. package/src/IValidation.ts +21 -21
  175. package/src/PascalCase.ts +114 -114
  176. package/src/Primitive.ts +135 -135
  177. package/src/Resolved.ts +116 -116
  178. package/src/SnakeCase.ts +156 -156
  179. package/src/TypeGuardError.ts +36 -36
  180. package/src/executable/TypiaGenerateWizard.ts +83 -83
  181. package/src/executable/TypiaPatchWizard.ts +31 -0
  182. package/src/executable/TypiaSetupWizard.ts +15 -2
  183. package/src/executable/setup/ArgumentParser.ts +43 -43
  184. package/src/executable/setup/CommandExecutor.ts +8 -8
  185. package/src/executable/setup/FileRetriever.ts +22 -22
  186. package/src/executable/setup/PackageManager.ts +71 -71
  187. package/src/executable/setup/PluginConfigurator.ts +69 -69
  188. package/src/executable/typia.ts +55 -52
  189. package/src/factories/CommentFactory.ts +79 -79
  190. package/src/factories/ExpressionFactory.ts +150 -150
  191. package/src/factories/IdentifierFactory.ts +70 -70
  192. package/src/factories/JsonMetadataFactory.ts +53 -53
  193. package/src/factories/LiteralFactory.ts +47 -47
  194. package/src/factories/MetadataCollection.ts +269 -269
  195. package/src/factories/MetadataCommentTagFactory.ts +601 -601
  196. package/src/factories/MetadataFactory.ts +267 -267
  197. package/src/factories/MetadataTypeTagFactory.ts +313 -313
  198. package/src/factories/NumericRangeFactory.ts +72 -72
  199. package/src/factories/ProtobufFactory.ts +259 -259
  200. package/src/factories/StatementFactory.ts +72 -72
  201. package/src/factories/TemplateFactory.ts +56 -56
  202. package/src/factories/TypeFactory.ts +118 -118
  203. package/src/factories/ValueFactory.ts +12 -12
  204. package/src/factories/internal/metadata/MetadataHelper.ts +15 -15
  205. package/src/factories/internal/metadata/emend_metadata_atomics.ts +37 -37
  206. package/src/factories/internal/metadata/emplace_metadata_alias.ts +41 -41
  207. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +38 -38
  208. package/src/factories/internal/metadata/emplace_metadata_object.ts +175 -175
  209. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  210. package/src/factories/internal/metadata/explore_metadata.ts +28 -28
  211. package/src/factories/internal/metadata/iterate_metadata.ts +94 -94
  212. package/src/factories/internal/metadata/iterate_metadata_alias.ts +34 -34
  213. package/src/factories/internal/metadata/iterate_metadata_array.ts +37 -37
  214. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  215. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  216. package/src/factories/internal/metadata/iterate_metadata_collection.ts +131 -131
  217. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +26 -26
  218. package/src/factories/internal/metadata/iterate_metadata_constant.ts +48 -48
  219. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +233 -233
  220. package/src/factories/internal/metadata/iterate_metadata_map.ts +50 -50
  221. package/src/factories/internal/metadata/iterate_metadata_native.ts +208 -208
  222. package/src/factories/internal/metadata/iterate_metadata_object.ts +43 -43
  223. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +52 -52
  224. package/src/factories/internal/metadata/iterate_metadata_set.ts +41 -41
  225. package/src/factories/internal/metadata/iterate_metadata_sort.ts +61 -61
  226. package/src/factories/internal/metadata/iterate_metadata_template.ts +44 -44
  227. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +37 -37
  228. package/src/factories/internal/metadata/iterate_metadata_union.ts +27 -27
  229. package/src/functional/$HeadersReader.ts +28 -28
  230. package/src/functional/$ParameterReader.ts +31 -31
  231. package/src/functional/$ProtobufReader.ts +195 -195
  232. package/src/functional/$ProtobufSizer.ts +147 -147
  233. package/src/functional/$ProtobufWriter.ts +150 -150
  234. package/src/functional/$QueryReader.ts +56 -56
  235. package/src/functional/$any.ts +4 -4
  236. package/src/functional/$clone.ts +4 -4
  237. package/src/functional/$convention.ts +37 -37
  238. package/src/functional/$dictionary.ts +22 -22
  239. package/src/functional/$every.ts +11 -11
  240. package/src/functional/$from.ts +5 -5
  241. package/src/functional/$guard.ts +35 -35
  242. package/src/functional/$is_between.ts +2 -2
  243. package/src/functional/$join.ts +46 -46
  244. package/src/functional/$number.ts +12 -12
  245. package/src/functional/$report.ts +13 -13
  246. package/src/functional/$rest.ts +3 -3
  247. package/src/functional/$stoll.ts +8 -8
  248. package/src/functional/$string.ts +50 -50
  249. package/src/functional/$strlen.ts +7 -7
  250. package/src/functional/$tail.ts +5 -5
  251. package/src/functional/$varint.ts +130 -130
  252. package/src/functional/$zigzag.ts +39 -39
  253. package/src/functional/IProtobufWriter.ts +18 -18
  254. package/src/functional/Namespace.ts +174 -174
  255. package/src/index.ts +4 -4
  256. package/src/json.ts +648 -648
  257. package/src/module.ts +896 -896
  258. package/src/notations.ts +855 -855
  259. package/src/programmers/AssertProgrammer.ts +293 -293
  260. package/src/programmers/CheckerProgrammer.ts +1025 -1025
  261. package/src/programmers/FeatureProgrammer.ts +460 -460
  262. package/src/programmers/IsProgrammer.ts +232 -232
  263. package/src/programmers/RandomProgrammer.ts +825 -825
  264. package/src/programmers/TypiaProgrammer.ts +167 -167
  265. package/src/programmers/ValidateProgrammer.ts +307 -307
  266. package/src/programmers/helpers/AtomicPredicator.ts +25 -25
  267. package/src/programmers/helpers/CloneJoiner.ts +130 -130
  268. package/src/programmers/helpers/FunctionImporeter.ts +87 -87
  269. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  270. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  271. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  272. package/src/programmers/helpers/NotationJoiner.ts +132 -132
  273. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  274. package/src/programmers/helpers/ProtobufUtil.ts +125 -125
  275. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  276. package/src/programmers/helpers/PruneJoiner.ts +141 -141
  277. package/src/programmers/helpers/RandomJoiner.ts +140 -140
  278. package/src/programmers/helpers/RandomRanger.ts +164 -164
  279. package/src/programmers/helpers/StringifyJoinder.ts +105 -105
  280. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  281. package/src/programmers/helpers/UnionExplorer.ts +269 -269
  282. package/src/programmers/helpers/UnionPredicator.ts +77 -77
  283. package/src/programmers/helpers/disable_function_importer_declare.ts +32 -32
  284. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +77 -77
  285. package/src/programmers/http/HttpAssertQueryProgrammer.ts +75 -75
  286. package/src/programmers/http/HttpHeadersProgrammer.ts +314 -314
  287. package/src/programmers/http/HttpIsHeadersProgrammer.ts +84 -84
  288. package/src/programmers/http/HttpIsQueryProgrammer.ts +82 -82
  289. package/src/programmers/http/HttpParameterProgrammer.ts +97 -97
  290. package/src/programmers/http/HttpQueryProgrammer.ts +252 -252
  291. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +77 -77
  292. package/src/programmers/http/HttpValidateQueryProgrammer.ts +75 -75
  293. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
  294. package/src/programmers/internal/application_alias.ts +65 -65
  295. package/src/programmers/internal/application_array.ts +59 -59
  296. package/src/programmers/internal/application_boolean.ts +30 -30
  297. package/src/programmers/internal/application_constant.ts +26 -26
  298. package/src/programmers/internal/application_default.ts +17 -17
  299. package/src/programmers/internal/application_default_string.ts +33 -33
  300. package/src/programmers/internal/application_escaped.ts +53 -53
  301. package/src/programmers/internal/application_native.ts +38 -38
  302. package/src/programmers/internal/application_number.ts +94 -94
  303. package/src/programmers/internal/application_object.ts +153 -153
  304. package/src/programmers/internal/application_schema.ts +180 -180
  305. package/src/programmers/internal/application_string.ts +58 -58
  306. package/src/programmers/internal/application_templates.ts +25 -25
  307. package/src/programmers/internal/application_tuple.ts +55 -55
  308. package/src/programmers/internal/check_array_length.ts +45 -45
  309. package/src/programmers/internal/check_bigint.ts +49 -49
  310. package/src/programmers/internal/check_dynamic_key.ts +175 -175
  311. package/src/programmers/internal/check_dynamic_properties.ts +198 -198
  312. package/src/programmers/internal/check_everything.ts +23 -23
  313. package/src/programmers/internal/check_native.ts +21 -21
  314. package/src/programmers/internal/check_number.ts +106 -106
  315. package/src/programmers/internal/check_object.ts +60 -60
  316. package/src/programmers/internal/check_string.ts +48 -48
  317. package/src/programmers/internal/check_template.ts +61 -61
  318. package/src/programmers/internal/check_union_array_like.ts +307 -307
  319. package/src/programmers/internal/decode_union_object.ts +78 -78
  320. package/src/programmers/internal/feature_object_entries.ts +58 -58
  321. package/src/programmers/internal/metadata_to_pattern.ts +33 -33
  322. package/src/programmers/internal/prune_object_properties.ts +60 -60
  323. package/src/programmers/internal/random_custom.ts +37 -37
  324. package/src/programmers/internal/stringify_dynamic_properties.ts +157 -157
  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 +15 -15
  328. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +20 -20
  329. package/src/programmers/json/JsonApplicationProgrammer.ts +50 -50
  330. package/src/programmers/json/JsonAssertParseProgrammer.ts +67 -67
  331. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +61 -61
  332. package/src/programmers/json/JsonIsParseProgrammer.ts +73 -73
  333. package/src/programmers/json/JsonIsStringifyProgrammer.ts +75 -75
  334. package/src/programmers/json/JsonStringifyProgrammer.ts +893 -893
  335. package/src/programmers/json/JsonValidateParseProgrammer.ts +64 -64
  336. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +83 -83
  337. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +63 -63
  338. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +60 -60
  339. package/src/programmers/misc/MiscCloneProgrammer.ts +713 -713
  340. package/src/programmers/misc/MiscIsCloneProgrammer.ts +70 -70
  341. package/src/programmers/misc/MiscIsPruneProgrammer.ts +66 -66
  342. package/src/programmers/misc/MiscLiteralsProgrammer.ts +72 -72
  343. package/src/programmers/misc/MiscPruneProgrammer.ts +523 -523
  344. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +80 -80
  345. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +73 -73
  346. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +64 -64
  347. package/src/programmers/notations/NotationGeneralProgrammer.ts +647 -647
  348. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +71 -71
  349. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +81 -81
  350. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +75 -75
  351. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +61 -61
  352. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +819 -819
  353. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +82 -82
  354. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +75 -75
  355. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +160 -160
  356. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +75 -75
  357. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +83 -83
  358. package/src/protobuf.ts +887 -887
  359. package/src/reflect.ts +24 -24
  360. package/src/schemas/json/IJsonApplication.ts +8 -8
  361. package/src/schemas/json/IJsonComponents.ts +36 -36
  362. package/src/schemas/json/IJsonSchema.ts +113 -113
  363. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  364. package/src/schemas/metadata/IMetadata.ts +34 -34
  365. package/src/schemas/metadata/IMetadataAlias.ts +12 -12
  366. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  367. package/src/schemas/metadata/IMetadataArray.ts +7 -7
  368. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  369. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  370. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  371. package/src/schemas/metadata/IMetadataConstant.ts +23 -23
  372. package/src/schemas/metadata/IMetadataDictionary.ts +14 -14
  373. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  374. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  375. package/src/schemas/metadata/IMetadataObject.ts +18 -18
  376. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  377. package/src/schemas/metadata/IMetadataTuple.ts +7 -7
  378. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  379. package/src/schemas/metadata/IMetadataTypeTag.ts +15 -15
  380. package/src/schemas/metadata/Metadata.ts +596 -596
  381. package/src/schemas/metadata/MetadataAlias.ts +61 -61
  382. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  383. package/src/schemas/metadata/MetadataArray.ts +49 -49
  384. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  385. package/src/schemas/metadata/MetadataAtomic.ts +84 -84
  386. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  387. package/src/schemas/metadata/MetadataConstant.ts +46 -46
  388. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  389. package/src/schemas/metadata/MetadataObject.ts +135 -135
  390. package/src/schemas/metadata/MetadataProperty.ts +56 -56
  391. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  392. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  393. package/src/tags/Default.ts +15 -15
  394. package/src/tags/ExclusiveMaximum.ts +13 -13
  395. package/src/tags/ExclusiveMinimum.ts +13 -13
  396. package/src/tags/Format.ts +30 -30
  397. package/src/tags/MaxItems.ts +9 -9
  398. package/src/tags/MaxLength.ts +9 -9
  399. package/src/tags/Maximum.ts +13 -13
  400. package/src/tags/MinItems.ts +9 -9
  401. package/src/tags/MinLength.ts +9 -9
  402. package/src/tags/Minimum.ts +13 -13
  403. package/src/tags/MultipleOf.ts +15 -15
  404. package/src/tags/Pattern.ts +9 -9
  405. package/src/tags/TagBase.ts +68 -68
  406. package/src/tags/Type.ts +27 -27
  407. package/src/tags/index.ts +14 -14
  408. package/src/transform.ts +35 -35
  409. package/src/transformers/CallExpressionTransformer.ts +359 -359
  410. package/src/transformers/FileTransformer.ts +91 -91
  411. package/src/transformers/IProject.ts +15 -15
  412. package/src/transformers/ITransformOptions.ts +62 -62
  413. package/src/transformers/ImportTransformer.ts +66 -66
  414. package/src/transformers/NodeTransformer.ts +13 -13
  415. package/src/transformers/TransformerError.ts +55 -55
  416. package/src/transformers/features/AssertTransformer.ts +16 -16
  417. package/src/transformers/features/CreateAssertTransformer.ts +16 -16
  418. package/src/transformers/features/CreateIsTransformer.ts +10 -10
  419. package/src/transformers/features/CreateRandomTransformer.ts +40 -40
  420. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  421. package/src/transformers/features/IsTransformer.ts +10 -10
  422. package/src/transformers/features/RandomTransformer.ts +44 -44
  423. package/src/transformers/features/ValidateTransformer.ts +11 -11
  424. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +11 -11
  425. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +9 -9
  426. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +9 -9
  427. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +9 -9
  428. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +9 -9
  429. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +9 -9
  430. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +9 -9
  431. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +12 -12
  432. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +11 -11
  433. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +9 -9
  434. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +9 -9
  435. package/src/transformers/features/http/HttpHeadersTransformer.ts +9 -9
  436. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +9 -9
  437. package/src/transformers/features/http/HttpIsQueryTransformer.ts +9 -9
  438. package/src/transformers/features/http/HttpParameterTransformer.ts +9 -9
  439. package/src/transformers/features/http/HttpQueryTransformer.ts +9 -9
  440. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +10 -10
  441. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +9 -9
  442. package/src/transformers/features/json/JsonApplicationTransformer.ts +121 -121
  443. package/src/transformers/features/json/JsonAssertParseTransformer.ts +9 -9
  444. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  445. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +9 -9
  446. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  447. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  448. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +9 -9
  449. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  450. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +11 -11
  451. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  452. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  453. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +9 -9
  454. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  455. package/src/transformers/features/json/JsonValidateParseTransformer.ts +9 -9
  456. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  457. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +9 -9
  458. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +9 -9
  459. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  460. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +9 -9
  461. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +9 -9
  462. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  463. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  464. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  465. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  466. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +11 -11
  467. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +11 -11
  468. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  469. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  470. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +32 -32
  471. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  472. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +9 -9
  473. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +9 -9
  474. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +15 -15
  475. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +15 -15
  476. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +15 -15
  477. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +15 -15
  478. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +15 -15
  479. package/src/transformers/features/notations/NotationGeneralTransformer.ts +11 -11
  480. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +15 -15
  481. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +15 -15
  482. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  483. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  484. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +12 -12
  485. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +12 -12
  486. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +9 -9
  487. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +9 -9
  488. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +9 -9
  489. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +9 -9
  490. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +12 -12
  491. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +12 -12
  492. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +9 -9
  493. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +9 -9
  494. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +9 -9
  495. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +9 -9
  496. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +33 -33
  497. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  498. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  499. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +73 -73
  500. package/src/transformers/internal/GenericTransformer.ts +96 -96
  501. package/src/typings/Atomic.ts +13 -13
  502. package/src/typings/ClassProperties.ts +5 -5
  503. package/src/typings/Customizable.ts +5 -5
  504. package/src/typings/OmitNever.ts +3 -3
  505. package/src/typings/ProtobufAtomic.ts +19 -19
  506. package/src/typings/SpecialFields.ts +3 -3
  507. package/src/typings/ValidationPipe.ts +9 -9
  508. package/src/typings/Writable.ts +11 -11
  509. package/src/utils/ArrayUtil.ts +43 -43
  510. package/src/utils/Escaper.ts +46 -46
  511. package/src/utils/MapUtil.ts +12 -12
  512. package/src/utils/NameEncoder.ts +32 -32
  513. package/src/utils/NamingConvention.ts +87 -87
  514. package/src/utils/PatternUtil.ts +29 -29
  515. package/src/utils/RandomGenerator.ts +83 -83
  516. package/src/utils/Singleton.ts +16 -16
  517. package/src/utils/StringUtil.ts +4 -4
@@ -1,195 +1,195 @@
1
- import { ProtobufWire } from "../programmers/helpers/ProtobufWire";
2
-
3
- /// @reference https://github.com/piotr-oles/as-proto/blob/main/packages/as-proto/assembly/internal/FixedReader.ts
4
- export class $ProtobufReader {
5
- /**
6
- * Read buffer
7
- */
8
- private buf: Uint8Array;
9
-
10
- /**
11
- * Read buffer pointer.
12
- */
13
- private ptr: number;
14
-
15
- /**
16
- * DataView for buffer.
17
- */
18
- private view: DataView;
19
-
20
- public constructor(buf: Uint8Array) {
21
- this.buf = buf;
22
- this.ptr = 0;
23
- this.view = new DataView(buf.buffer);
24
- }
25
-
26
- public index(): number {
27
- return this.ptr;
28
- }
29
-
30
- public size(): number {
31
- return this.buf.length;
32
- }
33
-
34
- public uint32(): number {
35
- return this.varint32();
36
- }
37
-
38
- public int32(): number {
39
- return this.varint32();
40
- }
41
-
42
- public sint32(): number {
43
- const value: number = this.varint32();
44
- return (value >>> 1) ^ -(value & 1);
45
- }
46
-
47
- public uint64(): bigint {
48
- return this.varint64();
49
- }
50
-
51
- public int64(): bigint {
52
- return this.varint64();
53
- }
54
-
55
- public sint64(): bigint {
56
- const value = this.varint64();
57
- return (value >> N01) ^ -(value & N01);
58
- }
59
-
60
- public bool(): boolean {
61
- return this.varint32() !== 0;
62
- }
63
-
64
- public float(): number {
65
- const value: number = this.view.getFloat32(this.ptr, true);
66
- this.ptr += 4;
67
- return value;
68
- }
69
-
70
- public double(): number {
71
- const value: number = this.view.getFloat64(this.ptr, true);
72
- this.ptr += 8;
73
- return value;
74
- }
75
-
76
- public bytes(): Uint8Array {
77
- const length: number = this.uint32();
78
- const from: number = this.ptr;
79
- this.ptr += length;
80
- return this.buf.subarray(from, from + length);
81
- }
82
-
83
- public string(): string {
84
- return utf8.decode(this.bytes());
85
- }
86
-
87
- public skip(length: number): void {
88
- if (length === 0) while (this.u8() & 0x80);
89
- else {
90
- if (this.index() + length > this.size())
91
- throw new Error("Error on typia.protobuf.decode(): buffer overflow.");
92
- this.ptr += length;
93
- }
94
- }
95
-
96
- public skipType(wireType: ProtobufWire): void {
97
- switch (wireType) {
98
- case ProtobufWire.VARIANT:
99
- this.skip(0);
100
- break;
101
- case ProtobufWire.I64:
102
- this.skip(8);
103
- break;
104
- case ProtobufWire.LEN:
105
- this.skip(this.uint32());
106
- break;
107
- case ProtobufWire.START_GROUP:
108
- while ((wireType = this.uint32() & 0x07) !== ProtobufWire.END_GROUP)
109
- this.skipType(wireType);
110
- break;
111
- case ProtobufWire.I32:
112
- this.skip(4);
113
- break;
114
- default:
115
- throw new Error(`Invalid wire type ${wireType} at offset ${this.ptr}.`);
116
- }
117
- }
118
-
119
- private varint32(): number {
120
- let loaded: number;
121
- let value: number;
122
-
123
- value = (loaded = this.u8()) & 0x7f;
124
- if (loaded < 0x80) return value;
125
-
126
- value |= ((loaded = this.u8()) & 0x7f) << 7;
127
- if (loaded < 0x80) return value;
128
-
129
- value |= ((loaded = this.u8()) & 0x7f) << 14;
130
- if (loaded < 0x80) return value;
131
-
132
- value |= ((loaded = this.u8()) & 0x7f) << 21;
133
- if (loaded < 0x80) return value;
134
-
135
- value |= ((loaded = this.u8()) & 0xf) << 28;
136
- if (loaded < 0x80) return value;
137
-
138
- // increment position until there is no continuation bit or until we read 10 bytes
139
- if (this.u8() < 0x80) return value;
140
- if (this.u8() < 0x80) return value;
141
- if (this.u8() < 0x80) return value;
142
- if (this.u8() < 0x80) return value;
143
- if (this.u8() < 0x80) return value;
144
-
145
- return value;
146
- }
147
-
148
- private varint64(): bigint {
149
- let loaded: bigint;
150
- let value: bigint;
151
-
152
- value = (loaded = this.u8n()) & N7F;
153
- if (loaded < N80) return value;
154
-
155
- value |= ((loaded = this.u8n()) & N7F) << BigInt(7);
156
- if (loaded < N80) return value;
157
-
158
- value |= ((loaded = this.u8n()) & N7F) << BigInt(14);
159
- if (loaded < N80) return value;
160
-
161
- value |= ((loaded = this.u8n()) & N7F) << BigInt(21);
162
- if (loaded < N80) return value;
163
-
164
- value |= ((loaded = this.u8n()) & N7F) << BigInt(28);
165
- if (loaded < N80) return value;
166
-
167
- value |= ((loaded = this.u8n()) & N7F) << BigInt(35);
168
- if (loaded < N80) return value;
169
-
170
- value |= ((loaded = this.u8n()) & N7F) << BigInt(42);
171
- if (loaded < N80) return value;
172
-
173
- value |= ((loaded = this.u8n()) & N7F) << BigInt(49);
174
- if (loaded < N80) return value;
175
-
176
- value |= ((loaded = this.u8n()) & N7F) << BigInt(56);
177
- if (loaded < N80) return value;
178
-
179
- value |= (this.u8n() & N01) << BigInt(63);
180
- return BigInt.asIntN(64, value);
181
- }
182
-
183
- private u8(): number {
184
- return this.view.getUint8(this.ptr++);
185
- }
186
-
187
- private u8n(): bigint {
188
- return BigInt(this.u8());
189
- }
190
- }
191
-
192
- const utf8 = new TextDecoder();
193
- const N01 = BigInt(0x01);
194
- const N7F = BigInt(0x7f);
195
- const N80 = BigInt(0x80);
1
+ import { ProtobufWire } from "../programmers/helpers/ProtobufWire";
2
+
3
+ /// @reference https://github.com/piotr-oles/as-proto/blob/main/packages/as-proto/assembly/internal/FixedReader.ts
4
+ export class $ProtobufReader {
5
+ /**
6
+ * Read buffer
7
+ */
8
+ private buf: Uint8Array;
9
+
10
+ /**
11
+ * Read buffer pointer.
12
+ */
13
+ private ptr: number;
14
+
15
+ /**
16
+ * DataView for buffer.
17
+ */
18
+ private view: DataView;
19
+
20
+ public constructor(buf: Uint8Array) {
21
+ this.buf = buf;
22
+ this.ptr = 0;
23
+ this.view = new DataView(buf.buffer);
24
+ }
25
+
26
+ public index(): number {
27
+ return this.ptr;
28
+ }
29
+
30
+ public size(): number {
31
+ return this.buf.length;
32
+ }
33
+
34
+ public uint32(): number {
35
+ return this.varint32();
36
+ }
37
+
38
+ public int32(): number {
39
+ return this.varint32();
40
+ }
41
+
42
+ public sint32(): number {
43
+ const value: number = this.varint32();
44
+ return (value >>> 1) ^ -(value & 1);
45
+ }
46
+
47
+ public uint64(): bigint {
48
+ return this.varint64();
49
+ }
50
+
51
+ public int64(): bigint {
52
+ return this.varint64();
53
+ }
54
+
55
+ public sint64(): bigint {
56
+ const value = this.varint64();
57
+ return (value >> N01) ^ -(value & N01);
58
+ }
59
+
60
+ public bool(): boolean {
61
+ return this.varint32() !== 0;
62
+ }
63
+
64
+ public float(): number {
65
+ const value: number = this.view.getFloat32(this.ptr, true);
66
+ this.ptr += 4;
67
+ return value;
68
+ }
69
+
70
+ public double(): number {
71
+ const value: number = this.view.getFloat64(this.ptr, true);
72
+ this.ptr += 8;
73
+ return value;
74
+ }
75
+
76
+ public bytes(): Uint8Array {
77
+ const length: number = this.uint32();
78
+ const from: number = this.ptr;
79
+ this.ptr += length;
80
+ return this.buf.subarray(from, from + length);
81
+ }
82
+
83
+ public string(): string {
84
+ return utf8.decode(this.bytes());
85
+ }
86
+
87
+ public skip(length: number): void {
88
+ if (length === 0) while (this.u8() & 0x80);
89
+ else {
90
+ if (this.index() + length > this.size())
91
+ throw new Error("Error on typia.protobuf.decode(): buffer overflow.");
92
+ this.ptr += length;
93
+ }
94
+ }
95
+
96
+ public skipType(wireType: ProtobufWire): void {
97
+ switch (wireType) {
98
+ case ProtobufWire.VARIANT:
99
+ this.skip(0);
100
+ break;
101
+ case ProtobufWire.I64:
102
+ this.skip(8);
103
+ break;
104
+ case ProtobufWire.LEN:
105
+ this.skip(this.uint32());
106
+ break;
107
+ case ProtobufWire.START_GROUP:
108
+ while ((wireType = this.uint32() & 0x07) !== ProtobufWire.END_GROUP)
109
+ this.skipType(wireType);
110
+ break;
111
+ case ProtobufWire.I32:
112
+ this.skip(4);
113
+ break;
114
+ default:
115
+ throw new Error(`Invalid wire type ${wireType} at offset ${this.ptr}.`);
116
+ }
117
+ }
118
+
119
+ private varint32(): number {
120
+ let loaded: number;
121
+ let value: number;
122
+
123
+ value = (loaded = this.u8()) & 0x7f;
124
+ if (loaded < 0x80) return value;
125
+
126
+ value |= ((loaded = this.u8()) & 0x7f) << 7;
127
+ if (loaded < 0x80) return value;
128
+
129
+ value |= ((loaded = this.u8()) & 0x7f) << 14;
130
+ if (loaded < 0x80) return value;
131
+
132
+ value |= ((loaded = this.u8()) & 0x7f) << 21;
133
+ if (loaded < 0x80) return value;
134
+
135
+ value |= ((loaded = this.u8()) & 0xf) << 28;
136
+ if (loaded < 0x80) return value;
137
+
138
+ // increment position until there is no continuation bit or until we read 10 bytes
139
+ if (this.u8() < 0x80) return value;
140
+ if (this.u8() < 0x80) return value;
141
+ if (this.u8() < 0x80) return value;
142
+ if (this.u8() < 0x80) return value;
143
+ if (this.u8() < 0x80) return value;
144
+
145
+ return value;
146
+ }
147
+
148
+ private varint64(): bigint {
149
+ let loaded: bigint;
150
+ let value: bigint;
151
+
152
+ value = (loaded = this.u8n()) & N7F;
153
+ if (loaded < N80) return value;
154
+
155
+ value |= ((loaded = this.u8n()) & N7F) << BigInt(7);
156
+ if (loaded < N80) return value;
157
+
158
+ value |= ((loaded = this.u8n()) & N7F) << BigInt(14);
159
+ if (loaded < N80) return value;
160
+
161
+ value |= ((loaded = this.u8n()) & N7F) << BigInt(21);
162
+ if (loaded < N80) return value;
163
+
164
+ value |= ((loaded = this.u8n()) & N7F) << BigInt(28);
165
+ if (loaded < N80) return value;
166
+
167
+ value |= ((loaded = this.u8n()) & N7F) << BigInt(35);
168
+ if (loaded < N80) return value;
169
+
170
+ value |= ((loaded = this.u8n()) & N7F) << BigInt(42);
171
+ if (loaded < N80) return value;
172
+
173
+ value |= ((loaded = this.u8n()) & N7F) << BigInt(49);
174
+ if (loaded < N80) return value;
175
+
176
+ value |= ((loaded = this.u8n()) & N7F) << BigInt(56);
177
+ if (loaded < N80) return value;
178
+
179
+ value |= (this.u8n() & N01) << BigInt(63);
180
+ return BigInt.asIntN(64, value);
181
+ }
182
+
183
+ private u8(): number {
184
+ return this.view.getUint8(this.ptr++);
185
+ }
186
+
187
+ private u8n(): bigint {
188
+ return BigInt(this.u8());
189
+ }
190
+ }
191
+
192
+ const utf8 = new TextDecoder();
193
+ const N01 = BigInt(0x01);
194
+ const N7F = BigInt(0x7f);
195
+ const N80 = BigInt(0x80);
@@ -1,147 +1,147 @@
1
- import { $strlen } from "./$strlen";
2
- import { IProtobufWriter } from "./IProtobufWriter";
3
-
4
- /// @reference https://github.com/piotr-oles/as-proto/blob/main/packages/as-proto/assembly/internal/FixedSizer.ts
5
- export class $ProtobufSizer implements IProtobufWriter {
6
- /**
7
- * Total length.
8
- */
9
- public len: number;
10
-
11
- /**
12
- * Position stack.
13
- */
14
- public readonly pos: Array<number>;
15
-
16
- /**
17
- * Variable length list.
18
- */
19
- public readonly varlen: Array<number>;
20
-
21
- /**
22
- * Variable length index stack.
23
- */
24
- public readonly varlenidx: Array<number>;
25
-
26
- public constructor(length: number = 0) {
27
- this.len = length;
28
- this.pos = [];
29
- this.varlen = [];
30
- this.varlenidx = [];
31
- }
32
-
33
- public bool(): void {
34
- this.len += 1;
35
- }
36
- public int32(value: number): void {
37
- if (value < 0) {
38
- // 10 bytes to encode negative number
39
- this.len += 10;
40
- } else {
41
- this.varint32(value);
42
- }
43
- }
44
- public sint32(value: number): void {
45
- this.varint32((value << 1) ^ (value >> 31));
46
- }
47
- public uint32(value: number): void {
48
- this.varint32(value);
49
- }
50
-
51
- public int64(value: bigint | number): void {
52
- this.varint64(typeof value === "number" ? BigInt(value) : value);
53
- }
54
- public sint64(value: bigint | number): void {
55
- if (typeof value === "number") value = BigInt(value);
56
- this.varint64((value << BigInt(1)) ^ (value >> BigInt(63)));
57
- }
58
- public uint64(value: bigint | number): void {
59
- this.varint64(typeof value === "number" ? BigInt(value) : value);
60
- }
61
-
62
- // public fixed32(_value: number): void {
63
- // this.len += 4;
64
- // }
65
- // public sfixed32(_value: number): void {
66
- // this.len += 4;
67
- // }
68
- // public fixed64(_value: number | bigint): void {
69
- // this.len += 8;
70
- // }
71
- // public sfixed64(_value: number | bigint): void {
72
- // this.len += 8;
73
- // }
74
- public float(_value: number): void {
75
- this.len += 4;
76
- }
77
- public double(_value: number): void {
78
- this.len += 8;
79
- }
80
-
81
- public bytes(value: Uint8Array): void {
82
- this.uint32(value.byteLength);
83
- this.len += value.byteLength;
84
- }
85
- public string(value: string): void {
86
- const len: number = $strlen(value);
87
- this.varlen.push(len);
88
- this.uint32(len);
89
- this.len += len;
90
- }
91
-
92
- public fork(): void {
93
- this.pos.push(this.len); // save current position
94
- this.varlenidx.push(this.varlen.length); // save current index in varlen array
95
- this.varlen.push(0); // add 0 length to varlen array (to be updated in ldelim())
96
- }
97
-
98
- public ldelim(): void {
99
- if (!(this.pos.length && this.varlenidx.length))
100
- throw new Error(
101
- "Error on typia.protobuf.encode(): missing fork() before ldelim() call.",
102
- );
103
-
104
- const endPos = this.len; // current position is end position
105
- const startPos = this.pos.pop()!; // get start position from stack
106
- const idx = this.varlenidx.pop()!; // get varlen index from stack
107
- const len = endPos - startPos; // calculate length
108
-
109
- this.varlen[idx] = len; // update variable length
110
- this.uint32(len); // add uint32 that should be called in fork()
111
- }
112
-
113
- public reset(): void {
114
- this.len = 0;
115
- // re-use arrays
116
- this.pos.length = 0;
117
- this.varlen.length = 0;
118
- this.varlenidx.length = 0;
119
- }
120
-
121
- private varint32(value: number): void {
122
- this.len +=
123
- value < 0
124
- ? 10 // 10 bits with leading 1's
125
- : value < 0x80
126
- ? 1
127
- : value < 0x4000
128
- ? 2
129
- : value < 0x200000
130
- ? 3
131
- : value < 0x10000000
132
- ? 4
133
- : 5;
134
- }
135
-
136
- private varint64(val: bigint): void {
137
- val = BigInt.asUintN(64, val);
138
- while (val > NX7F) {
139
- ++this.len;
140
- val = val >> ND07;
141
- }
142
- ++this.len;
143
- }
144
- }
145
-
146
- const ND07 = BigInt(7);
147
- const NX7F = BigInt(0x7f);
1
+ import { $strlen } from "./$strlen";
2
+ import { IProtobufWriter } from "./IProtobufWriter";
3
+
4
+ /// @reference https://github.com/piotr-oles/as-proto/blob/main/packages/as-proto/assembly/internal/FixedSizer.ts
5
+ export class $ProtobufSizer implements IProtobufWriter {
6
+ /**
7
+ * Total length.
8
+ */
9
+ public len: number;
10
+
11
+ /**
12
+ * Position stack.
13
+ */
14
+ public readonly pos: Array<number>;
15
+
16
+ /**
17
+ * Variable length list.
18
+ */
19
+ public readonly varlen: Array<number>;
20
+
21
+ /**
22
+ * Variable length index stack.
23
+ */
24
+ public readonly varlenidx: Array<number>;
25
+
26
+ public constructor(length: number = 0) {
27
+ this.len = length;
28
+ this.pos = [];
29
+ this.varlen = [];
30
+ this.varlenidx = [];
31
+ }
32
+
33
+ public bool(): void {
34
+ this.len += 1;
35
+ }
36
+ public int32(value: number): void {
37
+ if (value < 0) {
38
+ // 10 bytes to encode negative number
39
+ this.len += 10;
40
+ } else {
41
+ this.varint32(value);
42
+ }
43
+ }
44
+ public sint32(value: number): void {
45
+ this.varint32((value << 1) ^ (value >> 31));
46
+ }
47
+ public uint32(value: number): void {
48
+ this.varint32(value);
49
+ }
50
+
51
+ public int64(value: bigint | number): void {
52
+ this.varint64(typeof value === "number" ? BigInt(value) : value);
53
+ }
54
+ public sint64(value: bigint | number): void {
55
+ if (typeof value === "number") value = BigInt(value);
56
+ this.varint64((value << BigInt(1)) ^ (value >> BigInt(63)));
57
+ }
58
+ public uint64(value: bigint | number): void {
59
+ this.varint64(typeof value === "number" ? BigInt(value) : value);
60
+ }
61
+
62
+ // public fixed32(_value: number): void {
63
+ // this.len += 4;
64
+ // }
65
+ // public sfixed32(_value: number): void {
66
+ // this.len += 4;
67
+ // }
68
+ // public fixed64(_value: number | bigint): void {
69
+ // this.len += 8;
70
+ // }
71
+ // public sfixed64(_value: number | bigint): void {
72
+ // this.len += 8;
73
+ // }
74
+ public float(_value: number): void {
75
+ this.len += 4;
76
+ }
77
+ public double(_value: number): void {
78
+ this.len += 8;
79
+ }
80
+
81
+ public bytes(value: Uint8Array): void {
82
+ this.uint32(value.byteLength);
83
+ this.len += value.byteLength;
84
+ }
85
+ public string(value: string): void {
86
+ const len: number = $strlen(value);
87
+ this.varlen.push(len);
88
+ this.uint32(len);
89
+ this.len += len;
90
+ }
91
+
92
+ public fork(): void {
93
+ this.pos.push(this.len); // save current position
94
+ this.varlenidx.push(this.varlen.length); // save current index in varlen array
95
+ this.varlen.push(0); // add 0 length to varlen array (to be updated in ldelim())
96
+ }
97
+
98
+ public ldelim(): void {
99
+ if (!(this.pos.length && this.varlenidx.length))
100
+ throw new Error(
101
+ "Error on typia.protobuf.encode(): missing fork() before ldelim() call.",
102
+ );
103
+
104
+ const endPos = this.len; // current position is end position
105
+ const startPos = this.pos.pop()!; // get start position from stack
106
+ const idx = this.varlenidx.pop()!; // get varlen index from stack
107
+ const len = endPos - startPos; // calculate length
108
+
109
+ this.varlen[idx] = len; // update variable length
110
+ this.uint32(len); // add uint32 that should be called in fork()
111
+ }
112
+
113
+ public reset(): void {
114
+ this.len = 0;
115
+ // re-use arrays
116
+ this.pos.length = 0;
117
+ this.varlen.length = 0;
118
+ this.varlenidx.length = 0;
119
+ }
120
+
121
+ private varint32(value: number): void {
122
+ this.len +=
123
+ value < 0
124
+ ? 10 // 10 bits with leading 1's
125
+ : value < 0x80
126
+ ? 1
127
+ : value < 0x4000
128
+ ? 2
129
+ : value < 0x200000
130
+ ? 3
131
+ : value < 0x10000000
132
+ ? 4
133
+ : 5;
134
+ }
135
+
136
+ private varint64(val: bigint): void {
137
+ val = BigInt.asUintN(64, val);
138
+ while (val > NX7F) {
139
+ ++this.len;
140
+ val = val >> ND07;
141
+ }
142
+ ++this.len;
143
+ }
144
+ }
145
+
146
+ const ND07 = BigInt(7);
147
+ const NX7F = BigInt(0x7f);