typia 7.0.0 → 7.0.2-dev.20241204

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