typia 5.3.5-dev.20231206 → 5.3.5

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