typia 7.1.0 → 7.2.1-dev.20241212

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 (453) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +148 -123
  3. package/lib/IValidation.d.ts +1 -0
  4. package/lib/executable/typia.js +0 -0
  5. package/lib/programmers/ValidateProgrammer.js +6 -4
  6. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  7. package/lib/programmers/json/JsonApplicationProgrammer.d.ts +2 -0
  8. package/lib/programmers/json/JsonApplicationProgrammer.js +2 -1
  9. package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
  10. package/lib/programmers/llm/LlmApplicationProgrammer.js +1 -0
  11. package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
  12. package/package.json +1 -1
  13. package/src/IRandomGenerator.ts +49 -49
  14. package/src/IReadableURLSearchParams.ts +9 -9
  15. package/src/IValidation.ts +21 -20
  16. package/src/executable/TypiaGenerateWizard.ts +83 -83
  17. package/src/executable/TypiaPatchWizard.ts +45 -45
  18. package/src/executable/TypiaSetupWizard.ts +179 -179
  19. package/src/executable/setup/ArgumentParser.ts +42 -42
  20. package/src/executable/setup/FileRetriever.ts +19 -19
  21. package/src/executable/setup/PackageManager.ts +87 -87
  22. package/src/factories/ExpressionFactory.ts +216 -216
  23. package/src/factories/IdentifierFactory.ts +89 -89
  24. package/src/factories/JsonMetadataFactory.ts +76 -76
  25. package/src/factories/LiteralFactory.ts +52 -52
  26. package/src/factories/MetadataCollection.ts +278 -278
  27. package/src/factories/MetadataCommentTagFactory.ts +650 -650
  28. package/src/factories/MetadataFactory.ts +404 -404
  29. package/src/factories/MetadataTypeTagFactory.ts +411 -411
  30. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  31. package/src/factories/NumericRangeFactory.ts +72 -72
  32. package/src/factories/ProtobufFactory.ts +875 -875
  33. package/src/factories/StatementFactory.ts +90 -90
  34. package/src/factories/TemplateFactory.ts +64 -64
  35. package/src/factories/TypeFactory.ts +140 -140
  36. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
  37. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  38. package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
  39. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  40. package/src/factories/internal/metadata/emplace_metadata_object.ts +208 -208
  41. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  42. package/src/factories/internal/metadata/explore_metadata.ts +31 -31
  43. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  44. package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
  45. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  46. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  47. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  48. package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
  49. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
  50. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  51. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  52. package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
  53. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +213 -213
  54. package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
  55. package/src/factories/internal/metadata/iterate_metadata_native.ts +255 -255
  56. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
  57. package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
  58. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
  59. package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
  60. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  61. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  62. package/src/functional.ts +750 -750
  63. package/src/http.ts +1047 -1047
  64. package/src/internal/_IProtobufWriter.ts +18 -18
  65. package/src/internal/_ProtobufReader.ts +194 -194
  66. package/src/internal/_ProtobufSizer.ts +145 -145
  67. package/src/internal/_ProtobufWriter.ts +145 -145
  68. package/src/internal/_accessExpressionAsString.ts +46 -46
  69. package/src/internal/_assertGuard.ts +13 -13
  70. package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
  71. package/src/internal/_httpFormDataReadArray.ts +4 -4
  72. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  73. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  74. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  75. package/src/internal/_httpFormDataReadFile.ts +10 -10
  76. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  77. package/src/internal/_httpFormDataReadString.ts +10 -10
  78. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  79. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  80. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  81. package/src/internal/_httpParameterReadBigint.ts +10 -10
  82. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  83. package/src/internal/_httpParameterReadNumber.ts +7 -7
  84. package/src/internal/_httpParameterReadString.ts +2 -2
  85. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  86. package/src/internal/_httpQueryReadArray.ts +4 -4
  87. package/src/internal/_httpQueryReadBigint.ts +12 -12
  88. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  89. package/src/internal/_httpQueryReadNumber.ts +9 -9
  90. package/src/internal/_httpQueryReadString.ts +4 -4
  91. package/src/internal/_isBetween.ts +2 -2
  92. package/src/internal/_isBigintString.ts +8 -8
  93. package/src/internal/_isFormatByte.ts +7 -7
  94. package/src/internal/_isFormatDate.ts +3 -3
  95. package/src/internal/_isFormatDateTime.ts +4 -4
  96. package/src/internal/_isFormatDuration.ts +4 -4
  97. package/src/internal/_isFormatEmail.ts +4 -4
  98. package/src/internal/_isFormatHostname.ts +4 -4
  99. package/src/internal/_isFormatIdnEmail.ts +4 -4
  100. package/src/internal/_isFormatIdnHostname.ts +4 -4
  101. package/src/internal/_isFormatIpv4.ts +4 -4
  102. package/src/internal/_isFormatIpv6.ts +4 -4
  103. package/src/internal/_isFormatIri.ts +3 -3
  104. package/src/internal/_isFormatIriReference.ts +4 -4
  105. package/src/internal/_isFormatJsonPointer.ts +3 -3
  106. package/src/internal/_isFormatPassword.ts +1 -1
  107. package/src/internal/_isFormatRegex.ts +8 -8
  108. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  109. package/src/internal/_isFormatTime.ts +4 -4
  110. package/src/internal/_isFormatUri.ts +6 -6
  111. package/src/internal/_isFormatUriReference.ts +5 -5
  112. package/src/internal/_isFormatUriTemplate.ts +4 -4
  113. package/src/internal/_isFormatUrl.ts +4 -4
  114. package/src/internal/_isFormatUuid.ts +3 -3
  115. package/src/internal/_isTypeFloat.ts +5 -5
  116. package/src/internal/_isTypeInt32.ts +5 -5
  117. package/src/internal/_isTypeInt64.ts +5 -5
  118. package/src/internal/_isTypeUint32.ts +5 -5
  119. package/src/internal/_isTypeUint64.ts +5 -5
  120. package/src/internal/_isUniqueItems.ts +159 -159
  121. package/src/internal/_jsonStringifyNumber.ts +12 -12
  122. package/src/internal/_jsonStringifyRest.ts +3 -3
  123. package/src/internal/_jsonStringifyString.ts +42 -42
  124. package/src/internal/_jsonStringifyTail.ts +2 -2
  125. package/src/internal/_llmApplicationFinalize.ts +20 -20
  126. package/src/internal/_miscCloneAny.ts +46 -46
  127. package/src/internal/_notationAny.ts +37 -37
  128. package/src/internal/_notationCamel.ts +13 -13
  129. package/src/internal/_notationPascal.ts +8 -8
  130. package/src/internal/_notationSnake.ts +43 -43
  131. package/src/internal/_randomArray.ts +21 -21
  132. package/src/internal/_randomBigint.ts +6 -6
  133. package/src/internal/_randomBoolean.ts +1 -1
  134. package/src/internal/_randomFormatByte.ts +3 -3
  135. package/src/internal/_randomFormatDate.ts +18 -18
  136. package/src/internal/_randomFormatDatetime.ts +16 -16
  137. package/src/internal/_randomFormatDuration.ts +27 -27
  138. package/src/internal/_randomFormatEmail.ts +11 -11
  139. package/src/internal/_randomFormatHostname.ts +6 -6
  140. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  141. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  142. package/src/internal/_randomFormatIpv4.ts +11 -11
  143. package/src/internal/_randomFormatIpv6.ts +11 -11
  144. package/src/internal/_randomFormatIri.ts +3 -3
  145. package/src/internal/_randomFormatIriReference.ts +3 -3
  146. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  147. package/src/internal/_randomFormatPassword.ts +8 -8
  148. package/src/internal/_randomFormatRegex.ts +4 -4
  149. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  150. package/src/internal/_randomFormatTime.ts +14 -14
  151. package/src/internal/_randomFormatUri.ts +3 -3
  152. package/src/internal/_randomFormatUriReference.ts +3 -3
  153. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  154. package/src/internal/_randomFormatUrl.ts +11 -11
  155. package/src/internal/_randomFormatUuid.ts +6 -6
  156. package/src/internal/_randomInteger.ts +47 -47
  157. package/src/internal/_randomNumber.ts +74 -74
  158. package/src/internal/_randomPattern.ts +10 -10
  159. package/src/internal/_randomPick.ts +9 -9
  160. package/src/internal/_randomString.ts +24 -24
  161. package/src/internal/_throwTypeGuardError.ts +5 -5
  162. package/src/internal/_validateReport.ts +13 -13
  163. package/src/internal/private/__notationCapitalize.ts +2 -2
  164. package/src/internal/private/__notationUnsnake.ts +24 -24
  165. package/src/json.ts +752 -752
  166. package/src/llm.ts +481 -481
  167. package/src/misc.ts +658 -658
  168. package/src/module.ts +937 -937
  169. package/src/notations.ts +827 -827
  170. package/src/programmers/AssertProgrammer.ts +454 -454
  171. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  172. package/src/programmers/FeatureProgrammer.ts +622 -622
  173. package/src/programmers/ImportProgrammer.ts +185 -185
  174. package/src/programmers/IsProgrammer.ts +273 -273
  175. package/src/programmers/RandomProgrammer.ts +1190 -1190
  176. package/src/programmers/TypiaProgrammer.ts +174 -174
  177. package/src/programmers/ValidateProgrammer.ts +439 -434
  178. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  179. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  180. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  181. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  182. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  183. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  184. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  185. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  186. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  187. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  188. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  189. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  190. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  191. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  192. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  193. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  194. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  195. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  196. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  197. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  198. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  199. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  200. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  201. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  202. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  203. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  204. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  205. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  206. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  207. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  208. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  209. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  210. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  211. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  212. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  213. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  214. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  215. package/src/programmers/internal/check_array_length.ts +47 -47
  216. package/src/programmers/internal/check_bigint.ts +50 -50
  217. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  218. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  219. package/src/programmers/internal/check_everything.ts +23 -23
  220. package/src/programmers/internal/check_native.ts +27 -27
  221. package/src/programmers/internal/check_number.ts +112 -112
  222. package/src/programmers/internal/check_object.ts +75 -75
  223. package/src/programmers/internal/check_string.ts +50 -50
  224. package/src/programmers/internal/check_template.ts +48 -48
  225. package/src/programmers/internal/check_union_array_like.ts +335 -335
  226. package/src/programmers/internal/decode_union_object.ts +116 -116
  227. package/src/programmers/internal/feature_object_entries.ts +61 -61
  228. package/src/programmers/internal/json_schema_alias.ts +47 -47
  229. package/src/programmers/internal/json_schema_array.ts +45 -45
  230. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  231. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  232. package/src/programmers/internal/json_schema_constant.ts +26 -26
  233. package/src/programmers/internal/json_schema_description.ts +12 -12
  234. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  235. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  236. package/src/programmers/internal/json_schema_native.ts +33 -33
  237. package/src/programmers/internal/json_schema_number.ts +15 -15
  238. package/src/programmers/internal/json_schema_object.ts +158 -158
  239. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  240. package/src/programmers/internal/json_schema_station.ts +182 -182
  241. package/src/programmers/internal/json_schema_string.ts +15 -15
  242. package/src/programmers/internal/json_schema_template.ts +55 -55
  243. package/src/programmers/internal/json_schema_title.ts +20 -20
  244. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  245. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  246. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  247. package/src/programmers/internal/prune_object_properties.ts +71 -71
  248. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  249. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  250. package/src/programmers/internal/template_to_pattern.ts +23 -23
  251. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  252. package/src/programmers/json/JsonApplicationProgrammer.ts +279 -276
  253. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  254. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  255. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  256. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  257. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  258. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  259. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  260. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  261. package/src/programmers/llm/LlmApplicationOfValidateProgrammer.ts +81 -81
  262. package/src/programmers/llm/LlmApplicationProgrammer.ts +278 -276
  263. package/src/programmers/llm/LlmModelPredicator.ts +127 -127
  264. package/src/programmers/llm/LlmParametersProgrammer.ts +90 -90
  265. package/src/programmers/llm/LlmSchemaProgrammer.ts +143 -143
  266. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  267. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  268. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  269. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  270. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  271. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  272. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  273. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  274. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  275. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  276. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  277. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  278. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  279. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  280. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  281. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  282. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  283. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  284. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  285. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  286. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  287. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  288. package/src/protobuf.ts +868 -868
  289. package/src/reflect.ts +57 -57
  290. package/src/schemas/json/IJsonApplication.ts +73 -73
  291. package/src/schemas/json/IJsonSchemaCollection.ts +29 -29
  292. package/src/schemas/json/__IJsonApplication.ts +63 -63
  293. package/src/schemas/llm/ILlmApplicationOfValidate.ts +55 -55
  294. package/src/schemas/llm/ILlmFunctionOfValidate.ts +39 -39
  295. package/src/schemas/metadata/IMetadata.ts +35 -35
  296. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  297. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  298. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  299. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  300. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  301. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  302. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  303. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  304. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  305. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  306. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  307. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  308. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  309. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  310. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  311. package/src/schemas/metadata/Metadata.ts +669 -669
  312. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  313. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  314. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  315. package/src/schemas/metadata/MetadataArray.ts +49 -49
  316. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  317. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  318. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  319. package/src/schemas/metadata/MetadataMap.ts +48 -48
  320. package/src/schemas/metadata/MetadataNative.ts +44 -44
  321. package/src/schemas/metadata/MetadataObject.ts +48 -48
  322. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  323. package/src/schemas/metadata/MetadataParameter.ts +54 -54
  324. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  325. package/src/schemas/metadata/MetadataSet.ts +45 -45
  326. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  327. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  328. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  329. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  330. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  331. package/src/tags/Example.ts +24 -24
  332. package/src/tags/Examples.ts +16 -16
  333. package/src/tags/Format.ts +50 -50
  334. package/src/tags/JsonSchemaPlugin.ts +8 -8
  335. package/src/tags/Sequence.ts +10 -10
  336. package/src/tags/TagBase.ts +82 -82
  337. package/src/tags/Type.ts +32 -32
  338. package/src/tags/UniqueItems.ts +14 -14
  339. package/src/tags/index.ts +21 -21
  340. package/src/transform.ts +35 -35
  341. package/src/transformers/CallExpressionTransformer.ts +547 -547
  342. package/src/transformers/FileTransformer.ts +136 -136
  343. package/src/transformers/IProgrammerProps.ts +11 -11
  344. package/src/transformers/ITransformOptions.ts +62 -62
  345. package/src/transformers/ITransformProps.ts +9 -9
  346. package/src/transformers/ITypiaContext.ts +18 -18
  347. package/src/transformers/ImportTransformer.ts +81 -81
  348. package/src/transformers/NodeTransformer.ts +17 -17
  349. package/src/transformers/TransformerError.ts +60 -60
  350. package/src/transformers/features/AssertTransformer.ts +24 -24
  351. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  352. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  353. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  354. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  355. package/src/transformers/features/IsTransformer.ts +18 -18
  356. package/src/transformers/features/RandomTransformer.ts +41 -41
  357. package/src/transformers/features/ValidateTransformer.ts +18 -18
  358. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  359. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  360. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  361. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  362. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  363. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  364. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  365. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  366. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  367. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  368. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  369. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  370. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  371. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  372. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  373. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  374. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  375. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  376. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  377. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  378. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  379. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  380. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  381. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  382. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  383. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  384. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  385. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  386. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  387. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  388. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  389. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  390. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  391. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  392. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  393. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  394. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  395. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  396. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  397. package/src/transformers/features/json/JsonSchemasTransformer.ts +143 -143
  398. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  399. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  400. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  401. package/src/transformers/features/llm/LlmApplicationOfValidateTransformer.ts +115 -115
  402. package/src/transformers/features/llm/LlmApplicationTransformer.ts +113 -113
  403. package/src/transformers/features/llm/LlmParametersTransformer.ts +89 -89
  404. package/src/transformers/features/llm/LlmSchemaTransformer.ts +130 -130
  405. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  406. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  407. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  408. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  409. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  410. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  411. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  412. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  413. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  414. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  415. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  416. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  417. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  418. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  419. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  420. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  421. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  422. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  423. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  424. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  425. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  426. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  427. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  428. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  429. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  430. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  431. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  432. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  433. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  434. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  435. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  436. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  437. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  438. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  439. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  440. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  441. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  442. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  443. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  444. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  445. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  446. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  447. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  448. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  449. package/src/transformers/internal/GenericTransformer.ts +101 -101
  450. package/src/utils/MapUtil.ts +14 -14
  451. package/src/utils/NamingConvention.ts +94 -94
  452. package/src/utils/ProtobufNameEncoder.ts +32 -32
  453. package/src/utils/StringUtil.ts +16 -16
@@ -1,145 +1,145 @@
1
- import { _IProtobufWriter } from "./_IProtobufWriter";
2
-
3
- /// @reference https://github.com/piotr-oles/as-proto/blob/main/packages/as-proto/assembly/internal/FixedSizer.ts
4
- export class _ProtobufSizer implements _IProtobufWriter {
5
- /**
6
- * Total length.
7
- */
8
- public len: number;
9
-
10
- /**
11
- * Position stack.
12
- */
13
- public readonly pos: Array<number>;
14
-
15
- /**
16
- * Variable length list.
17
- */
18
- public readonly varlen: Array<number>;
19
-
20
- /**
21
- * Variable length index stack.
22
- */
23
- public readonly varlenidx: Array<number>;
24
-
25
- public constructor(length: number = 0) {
26
- this.len = length;
27
- this.pos = [];
28
- this.varlen = [];
29
- this.varlenidx = [];
30
- }
31
-
32
- public bool(): void {
33
- this.len += 1;
34
- }
35
- public int32(value: number): void {
36
- if (value < 0) {
37
- // 10 bytes to encode negative number
38
- this.len += 10;
39
- } else {
40
- this.varint32(value);
41
- }
42
- }
43
- public sint32(value: number): void {
44
- this.varint32((value << 1) ^ (value >> 31));
45
- }
46
- public uint32(value: number): void {
47
- this.varint32(value);
48
- }
49
-
50
- public int64(value: bigint | number): void {
51
- this.varint64(typeof value === "number" ? BigInt(value) : value);
52
- }
53
- public sint64(value: bigint | number): void {
54
- if (typeof value === "number") value = BigInt(value);
55
- this.varint64((value << BigInt(1)) ^ (value >> BigInt(63)));
56
- }
57
- public uint64(value: bigint | number): void {
58
- this.varint64(typeof value === "number" ? BigInt(value) : value);
59
- }
60
-
61
- // public fixed32(_value: number): void {
62
- // this.len += 4;
63
- // }
64
- // public sfixed32(_value: number): void {
65
- // this.len += 4;
66
- // }
67
- // public fixed64(_value: number | bigint): void {
68
- // this.len += 8;
69
- // }
70
- // public sfixed64(_value: number | bigint): void {
71
- // this.len += 8;
72
- // }
73
- public float(_value: number): void {
74
- this.len += 4;
75
- }
76
- public double(_value: number): void {
77
- this.len += 8;
78
- }
79
-
80
- public bytes(value: Uint8Array): void {
81
- this.uint32(value.byteLength);
82
- this.len += value.byteLength;
83
- }
84
- public string(value: string): void {
85
- const len: number = strlen(value);
86
- this.varlen.push(len);
87
- this.uint32(len);
88
- this.len += len;
89
- }
90
-
91
- public fork(): void {
92
- this.pos.push(this.len); // save current position
93
- this.varlenidx.push(this.varlen.length); // save current index in varlen array
94
- this.varlen.push(0); // add 0 length to varlen array (to be updated in ldelim())
95
- }
96
-
97
- public ldelim(): void {
98
- if (!(this.pos.length && this.varlenidx.length))
99
- throw new Error(
100
- "Error on typia.protobuf.encode(): missing fork() before ldelim() call.",
101
- );
102
-
103
- const endPos = this.len; // current position is end position
104
- const startPos = this.pos.pop()!; // get start position from stack
105
- const idx = this.varlenidx.pop()!; // get varlen index from stack
106
- const len = endPos - startPos; // calculate length
107
-
108
- this.varlen[idx] = len; // update variable length
109
- this.uint32(len); // add uint32 that should be called in fork()
110
- }
111
-
112
- public reset(): void {
113
- this.len = 0;
114
- // re-use arrays
115
- this.pos.length = 0;
116
- this.varlen.length = 0;
117
- this.varlenidx.length = 0;
118
- }
119
-
120
- private varint32(value: number): void {
121
- this.len +=
122
- value < 0
123
- ? 10 // 10 bits with leading 1's
124
- : value < 0x80
125
- ? 1
126
- : value < 0x4000
127
- ? 2
128
- : value < 0x200000
129
- ? 3
130
- : value < 0x10000000
131
- ? 4
132
- : 5;
133
- }
134
-
135
- private varint64(val: bigint): void {
136
- val = BigInt.asUintN(64, val);
137
- while (val > BigInt(0x7f)) {
138
- ++this.len;
139
- val = val >> BigInt(0x07);
140
- }
141
- ++this.len;
142
- }
143
- }
144
-
145
- const strlen = (str: string): number => new Blob([str]).size;
1
+ import { _IProtobufWriter } from "./_IProtobufWriter";
2
+
3
+ /// @reference https://github.com/piotr-oles/as-proto/blob/main/packages/as-proto/assembly/internal/FixedSizer.ts
4
+ export class _ProtobufSizer implements _IProtobufWriter {
5
+ /**
6
+ * Total length.
7
+ */
8
+ public len: number;
9
+
10
+ /**
11
+ * Position stack.
12
+ */
13
+ public readonly pos: Array<number>;
14
+
15
+ /**
16
+ * Variable length list.
17
+ */
18
+ public readonly varlen: Array<number>;
19
+
20
+ /**
21
+ * Variable length index stack.
22
+ */
23
+ public readonly varlenidx: Array<number>;
24
+
25
+ public constructor(length: number = 0) {
26
+ this.len = length;
27
+ this.pos = [];
28
+ this.varlen = [];
29
+ this.varlenidx = [];
30
+ }
31
+
32
+ public bool(): void {
33
+ this.len += 1;
34
+ }
35
+ public int32(value: number): void {
36
+ if (value < 0) {
37
+ // 10 bytes to encode negative number
38
+ this.len += 10;
39
+ } else {
40
+ this.varint32(value);
41
+ }
42
+ }
43
+ public sint32(value: number): void {
44
+ this.varint32((value << 1) ^ (value >> 31));
45
+ }
46
+ public uint32(value: number): void {
47
+ this.varint32(value);
48
+ }
49
+
50
+ public int64(value: bigint | number): void {
51
+ this.varint64(typeof value === "number" ? BigInt(value) : value);
52
+ }
53
+ public sint64(value: bigint | number): void {
54
+ if (typeof value === "number") value = BigInt(value);
55
+ this.varint64((value << BigInt(1)) ^ (value >> BigInt(63)));
56
+ }
57
+ public uint64(value: bigint | number): void {
58
+ this.varint64(typeof value === "number" ? BigInt(value) : value);
59
+ }
60
+
61
+ // public fixed32(_value: number): void {
62
+ // this.len += 4;
63
+ // }
64
+ // public sfixed32(_value: number): void {
65
+ // this.len += 4;
66
+ // }
67
+ // public fixed64(_value: number | bigint): void {
68
+ // this.len += 8;
69
+ // }
70
+ // public sfixed64(_value: number | bigint): void {
71
+ // this.len += 8;
72
+ // }
73
+ public float(_value: number): void {
74
+ this.len += 4;
75
+ }
76
+ public double(_value: number): void {
77
+ this.len += 8;
78
+ }
79
+
80
+ public bytes(value: Uint8Array): void {
81
+ this.uint32(value.byteLength);
82
+ this.len += value.byteLength;
83
+ }
84
+ public string(value: string): void {
85
+ const len: number = strlen(value);
86
+ this.varlen.push(len);
87
+ this.uint32(len);
88
+ this.len += len;
89
+ }
90
+
91
+ public fork(): void {
92
+ this.pos.push(this.len); // save current position
93
+ this.varlenidx.push(this.varlen.length); // save current index in varlen array
94
+ this.varlen.push(0); // add 0 length to varlen array (to be updated in ldelim())
95
+ }
96
+
97
+ public ldelim(): void {
98
+ if (!(this.pos.length && this.varlenidx.length))
99
+ throw new Error(
100
+ "Error on typia.protobuf.encode(): missing fork() before ldelim() call.",
101
+ );
102
+
103
+ const endPos = this.len; // current position is end position
104
+ const startPos = this.pos.pop()!; // get start position from stack
105
+ const idx = this.varlenidx.pop()!; // get varlen index from stack
106
+ const len = endPos - startPos; // calculate length
107
+
108
+ this.varlen[idx] = len; // update variable length
109
+ this.uint32(len); // add uint32 that should be called in fork()
110
+ }
111
+
112
+ public reset(): void {
113
+ this.len = 0;
114
+ // re-use arrays
115
+ this.pos.length = 0;
116
+ this.varlen.length = 0;
117
+ this.varlenidx.length = 0;
118
+ }
119
+
120
+ private varint32(value: number): void {
121
+ this.len +=
122
+ value < 0
123
+ ? 10 // 10 bits with leading 1's
124
+ : value < 0x80
125
+ ? 1
126
+ : value < 0x4000
127
+ ? 2
128
+ : value < 0x200000
129
+ ? 3
130
+ : value < 0x10000000
131
+ ? 4
132
+ : 5;
133
+ }
134
+
135
+ private varint64(val: bigint): void {
136
+ val = BigInt.asUintN(64, val);
137
+ while (val > BigInt(0x7f)) {
138
+ ++this.len;
139
+ val = val >> BigInt(0x07);
140
+ }
141
+ ++this.len;
142
+ }
143
+ }
144
+
145
+ const strlen = (str: string): number => new Blob([str]).size;
@@ -1,145 +1,145 @@
1
- import { Singleton } from "../utils/Singleton";
2
-
3
- import { _IProtobufWriter } from "./_IProtobufWriter";
4
- import { _ProtobufSizer } from "./_ProtobufSizer";
5
-
6
- /// @reference https://github.com/piotr-oles/as-proto/blob/main/packages/as-proto/assembly/internal/FixedWriter.ts
7
- export class _ProtobufWriter implements _IProtobufWriter {
8
- /**
9
- * Related sizer
10
- */
11
- private readonly sizer: _ProtobufSizer;
12
-
13
- /**
14
- * Current pointer.
15
- */
16
- private ptr: number;
17
-
18
- /**
19
- * Protobuf buffer.
20
- */
21
- private buf: Uint8Array;
22
-
23
- /**
24
- * DataView for buffer.
25
- */
26
- private view: DataView;
27
-
28
- /**
29
- * Index in varlen array from sizer.
30
- */
31
- private varlenidx: number;
32
-
33
- constructor(sizer: _ProtobufSizer) {
34
- this.sizer = sizer;
35
- this.buf = new Uint8Array(sizer.len);
36
- this.view = new DataView(this.buf.buffer);
37
- this.ptr = 0;
38
- this.varlenidx = 0;
39
- }
40
-
41
- buffer(): Uint8Array {
42
- return this.buf;
43
- }
44
-
45
- bool(value: boolean): void {
46
- this.byte(value ? 1 : 0);
47
- }
48
-
49
- byte(value: number): void {
50
- this.buf[this.ptr++] = value & 255;
51
- }
52
-
53
- int32(value: number): void {
54
- if (value < 0) this.int64(value);
55
- else this.variant32(value >>> 0);
56
- }
57
-
58
- sint32(value: number): void {
59
- this.variant32((value << 1) ^ (value >> 31));
60
- }
61
-
62
- uint32(value: number): void {
63
- this.variant32(value);
64
- }
65
-
66
- sint64(value: number | bigint): void {
67
- value = BigInt(value);
68
- this.variant64((value << BigInt(0x01)) ^ (value >> BigInt(0x3f)));
69
- }
70
-
71
- int64(value: number | bigint): void {
72
- this.variant64(BigInt(value));
73
- }
74
-
75
- uint64(value: number | bigint): void {
76
- this.variant64(BigInt(value));
77
- }
78
-
79
- float(val: number): void {
80
- this.view.setFloat32(this.ptr, val, true);
81
- this.ptr += 4;
82
- }
83
-
84
- double(val: number): void {
85
- this.view.setFloat64(this.ptr, val, true);
86
- this.ptr += 8;
87
- }
88
-
89
- bytes(value: Uint8Array): void {
90
- this.uint32(value.byteLength);
91
- for (let i = 0; i < value.byteLength; i++) this.buf[this.ptr++] = value[i]!;
92
- }
93
-
94
- string(value: string): void {
95
- const len: number = this.varlen(); // use precomputed length
96
- this.uint32(len);
97
-
98
- const binary: Uint8Array = utf8.get().encode(value);
99
- for (let i = 0; i < binary.byteLength; i++)
100
- this.buf[this.ptr++] = binary[i]!;
101
- }
102
-
103
- fork(): void {
104
- this.uint32(this.varlen()); // use precomputed length
105
- }
106
-
107
- ldelim(): void {
108
- // nothing to do - all dirty work done by sizer
109
- }
110
-
111
- finish(): Uint8Array {
112
- return this.buf;
113
- }
114
-
115
- reset(): void {
116
- this.buf = new Uint8Array(this.sizer.len);
117
- this.view = new DataView(this.buf.buffer);
118
- this.ptr = 0;
119
- this.varlenidx = 0;
120
- }
121
-
122
- private variant32(val: number): void {
123
- while (val > 0x7f) {
124
- this.buf[this.ptr++] = (val & 0x7f) | 0x80;
125
- val = val >>> 7;
126
- }
127
- this.buf[this.ptr++] = val;
128
- }
129
-
130
- private variant64(val: bigint): void {
131
- val = BigInt.asUintN(64, val);
132
- while (val > BigInt(0x7f)) {
133
- this.buf[this.ptr++] = Number((val & BigInt(0x7f)) | BigInt(0x80));
134
- val = val >> BigInt(0x07);
135
- }
136
- this.buf[this.ptr++] = Number(val);
137
- }
138
-
139
- private varlen(): number {
140
- return this.varlenidx >= this.sizer.varlen.length
141
- ? 0
142
- : this.sizer.varlen[this.varlenidx++]!;
143
- }
144
- }
145
- const utf8 = /** @__PURE__ */ new Singleton(() => new TextEncoder());
1
+ import { Singleton } from "../utils/Singleton";
2
+
3
+ import { _IProtobufWriter } from "./_IProtobufWriter";
4
+ import { _ProtobufSizer } from "./_ProtobufSizer";
5
+
6
+ /// @reference https://github.com/piotr-oles/as-proto/blob/main/packages/as-proto/assembly/internal/FixedWriter.ts
7
+ export class _ProtobufWriter implements _IProtobufWriter {
8
+ /**
9
+ * Related sizer
10
+ */
11
+ private readonly sizer: _ProtobufSizer;
12
+
13
+ /**
14
+ * Current pointer.
15
+ */
16
+ private ptr: number;
17
+
18
+ /**
19
+ * Protobuf buffer.
20
+ */
21
+ private buf: Uint8Array;
22
+
23
+ /**
24
+ * DataView for buffer.
25
+ */
26
+ private view: DataView;
27
+
28
+ /**
29
+ * Index in varlen array from sizer.
30
+ */
31
+ private varlenidx: number;
32
+
33
+ constructor(sizer: _ProtobufSizer) {
34
+ this.sizer = sizer;
35
+ this.buf = new Uint8Array(sizer.len);
36
+ this.view = new DataView(this.buf.buffer);
37
+ this.ptr = 0;
38
+ this.varlenidx = 0;
39
+ }
40
+
41
+ buffer(): Uint8Array {
42
+ return this.buf;
43
+ }
44
+
45
+ bool(value: boolean): void {
46
+ this.byte(value ? 1 : 0);
47
+ }
48
+
49
+ byte(value: number): void {
50
+ this.buf[this.ptr++] = value & 255;
51
+ }
52
+
53
+ int32(value: number): void {
54
+ if (value < 0) this.int64(value);
55
+ else this.variant32(value >>> 0);
56
+ }
57
+
58
+ sint32(value: number): void {
59
+ this.variant32((value << 1) ^ (value >> 31));
60
+ }
61
+
62
+ uint32(value: number): void {
63
+ this.variant32(value);
64
+ }
65
+
66
+ sint64(value: number | bigint): void {
67
+ value = BigInt(value);
68
+ this.variant64((value << BigInt(0x01)) ^ (value >> BigInt(0x3f)));
69
+ }
70
+
71
+ int64(value: number | bigint): void {
72
+ this.variant64(BigInt(value));
73
+ }
74
+
75
+ uint64(value: number | bigint): void {
76
+ this.variant64(BigInt(value));
77
+ }
78
+
79
+ float(val: number): void {
80
+ this.view.setFloat32(this.ptr, val, true);
81
+ this.ptr += 4;
82
+ }
83
+
84
+ double(val: number): void {
85
+ this.view.setFloat64(this.ptr, val, true);
86
+ this.ptr += 8;
87
+ }
88
+
89
+ bytes(value: Uint8Array): void {
90
+ this.uint32(value.byteLength);
91
+ for (let i = 0; i < value.byteLength; i++) this.buf[this.ptr++] = value[i]!;
92
+ }
93
+
94
+ string(value: string): void {
95
+ const len: number = this.varlen(); // use precomputed length
96
+ this.uint32(len);
97
+
98
+ const binary: Uint8Array = utf8.get().encode(value);
99
+ for (let i = 0; i < binary.byteLength; i++)
100
+ this.buf[this.ptr++] = binary[i]!;
101
+ }
102
+
103
+ fork(): void {
104
+ this.uint32(this.varlen()); // use precomputed length
105
+ }
106
+
107
+ ldelim(): void {
108
+ // nothing to do - all dirty work done by sizer
109
+ }
110
+
111
+ finish(): Uint8Array {
112
+ return this.buf;
113
+ }
114
+
115
+ reset(): void {
116
+ this.buf = new Uint8Array(this.sizer.len);
117
+ this.view = new DataView(this.buf.buffer);
118
+ this.ptr = 0;
119
+ this.varlenidx = 0;
120
+ }
121
+
122
+ private variant32(val: number): void {
123
+ while (val > 0x7f) {
124
+ this.buf[this.ptr++] = (val & 0x7f) | 0x80;
125
+ val = val >>> 7;
126
+ }
127
+ this.buf[this.ptr++] = val;
128
+ }
129
+
130
+ private variant64(val: bigint): void {
131
+ val = BigInt.asUintN(64, val);
132
+ while (val > BigInt(0x7f)) {
133
+ this.buf[this.ptr++] = Number((val & BigInt(0x7f)) | BigInt(0x80));
134
+ val = val >> BigInt(0x07);
135
+ }
136
+ this.buf[this.ptr++] = Number(val);
137
+ }
138
+
139
+ private varlen(): number {
140
+ return this.varlenidx >= this.sizer.varlen.length
141
+ ? 0
142
+ : this.sizer.varlen[this.varlenidx++]!;
143
+ }
144
+ }
145
+ const utf8 = /** @__PURE__ */ new Singleton(() => new TextEncoder());
@@ -1,46 +1,46 @@
1
- export const _accessExpressionAsString = (str: string): string =>
2
- variable(str) ? `.${str}` : `[${JSON.stringify(str)}]`;
3
-
4
- const variable = (str: string): boolean =>
5
- reserved(str) === false && /^[a-zA-Z_$][a-zA-Z_$0-9]*$/g.test(str);
6
-
7
- const reserved = (str: string): boolean => RESERVED.has(str);
8
-
9
- const RESERVED: Set<string> = new Set([
10
- "break",
11
- "case",
12
- "catch",
13
- "class",
14
- "const",
15
- "continue",
16
- "debugger",
17
- "default",
18
- "delete",
19
- "do",
20
- "else",
21
- "enum",
22
- "export",
23
- "extends",
24
- "false",
25
- "finally",
26
- "for",
27
- "function",
28
- "if",
29
- "import",
30
- "in",
31
- "instanceof",
32
- "new",
33
- "null",
34
- "return",
35
- "super",
36
- "switch",
37
- "this",
38
- "throw",
39
- "true",
40
- "try",
41
- "typeof",
42
- "var",
43
- "void",
44
- "while",
45
- "with",
46
- ]);
1
+ export const _accessExpressionAsString = (str: string): string =>
2
+ variable(str) ? `.${str}` : `[${JSON.stringify(str)}]`;
3
+
4
+ const variable = (str: string): boolean =>
5
+ reserved(str) === false && /^[a-zA-Z_$][a-zA-Z_$0-9]*$/g.test(str);
6
+
7
+ const reserved = (str: string): boolean => RESERVED.has(str);
8
+
9
+ const RESERVED: Set<string> = new Set([
10
+ "break",
11
+ "case",
12
+ "catch",
13
+ "class",
14
+ "const",
15
+ "continue",
16
+ "debugger",
17
+ "default",
18
+ "delete",
19
+ "do",
20
+ "else",
21
+ "enum",
22
+ "export",
23
+ "extends",
24
+ "false",
25
+ "finally",
26
+ "for",
27
+ "function",
28
+ "if",
29
+ "import",
30
+ "in",
31
+ "instanceof",
32
+ "new",
33
+ "null",
34
+ "return",
35
+ "super",
36
+ "switch",
37
+ "this",
38
+ "throw",
39
+ "true",
40
+ "try",
41
+ "typeof",
42
+ "var",
43
+ "void",
44
+ "while",
45
+ "with",
46
+ ]);