typia 7.3.0-dev.20241213 → 7.3.0

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