typia 13.1.1 → 13.1.19

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 (515) hide show
  1. package/README.md +3 -0
  2. package/lib/_virtual/_rolldown/runtime.mjs +1 -5
  3. package/lib/executable/FileSystemIdentity.d.ts +21 -0
  4. package/lib/executable/FileSystemIdentity.js +183 -0
  5. package/lib/executable/FileSystemIdentity.js.map +1 -0
  6. package/lib/executable/FileSystemIdentity.mjs +129 -0
  7. package/lib/executable/FileSystemIdentity.mjs.map +1 -0
  8. package/lib/executable/TypiaGenerateWizard.js +264 -104
  9. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  10. package/lib/executable/TypiaGenerateWizard.mjs +233 -93
  11. package/lib/executable/TypiaGenerateWizard.mjs.map +1 -1
  12. package/lib/functional.d.ts +15 -12
  13. package/lib/functional.js.map +1 -1
  14. package/lib/functional.mjs.map +1 -1
  15. package/lib/internal/_ProtobufReader.d.ts +17 -0
  16. package/lib/internal/_ProtobufReader.js +117 -45
  17. package/lib/internal/_ProtobufReader.js.map +1 -1
  18. package/lib/internal/_ProtobufReader.mjs +108 -39
  19. package/lib/internal/_ProtobufReader.mjs.map +1 -1
  20. package/lib/internal/_createStandardSchema.js +18 -1
  21. package/lib/internal/_createStandardSchema.js.map +1 -1
  22. package/lib/internal/_createStandardSchema.mjs +12 -1
  23. package/lib/internal/_createStandardSchema.mjs.map +1 -1
  24. package/lib/internal/_decimal.d.ts +14 -0
  25. package/lib/internal/_decimal.js +61 -0
  26. package/lib/internal/_decimal.js.map +1 -0
  27. package/lib/internal/_decimal.mjs +49 -0
  28. package/lib/internal/_decimal.mjs.map +1 -0
  29. package/lib/internal/_httpQueryParseURLSearchParams.js +23 -2
  30. package/lib/internal/_httpQueryParseURLSearchParams.js.map +1 -1
  31. package/lib/internal/_httpQueryParseURLSearchParams.mjs +20 -2
  32. package/lib/internal/_httpQueryParseURLSearchParams.mjs.map +1 -1
  33. package/lib/internal/_isFormatByte.js +2 -5
  34. package/lib/internal/_isFormatByte.js.map +1 -1
  35. package/lib/internal/_isFormatByte.mjs +2 -5
  36. package/lib/internal/_isFormatByte.mjs.map +1 -1
  37. package/lib/internal/_isFormatDate.js +15 -2
  38. package/lib/internal/_isFormatDate.js.map +1 -1
  39. package/lib/internal/_isFormatDate.mjs +22 -2
  40. package/lib/internal/_isFormatDate.mjs.map +1 -1
  41. package/lib/internal/_isFormatDateTime.js +21 -2
  42. package/lib/internal/_isFormatDateTime.js.map +1 -1
  43. package/lib/internal/_isFormatDateTime.mjs +13 -2
  44. package/lib/internal/_isFormatDateTime.mjs.map +1 -1
  45. package/lib/internal/_isFormatIri.js +3 -2
  46. package/lib/internal/_isFormatIri.js.map +1 -1
  47. package/lib/internal/_isFormatIri.mjs +3 -2
  48. package/lib/internal/_isFormatIri.mjs.map +1 -1
  49. package/lib/internal/_isFormatIriReference.js +10 -2
  50. package/lib/internal/_isFormatIriReference.js.map +1 -1
  51. package/lib/internal/_isFormatIriReference.mjs +9 -2
  52. package/lib/internal/_isFormatIriReference.mjs.map +1 -1
  53. package/lib/internal/_isFormatUriReference.js +1 -1
  54. package/lib/internal/_isFormatUriReference.js.map +1 -1
  55. package/lib/internal/_isFormatUriReference.mjs +1 -1
  56. package/lib/internal/_isFormatUriReference.mjs.map +1 -1
  57. package/lib/internal/_isMultipleOf.d.ts +1 -0
  58. package/lib/internal/_isMultipleOf.js +13 -0
  59. package/lib/internal/_isMultipleOf.js.map +1 -0
  60. package/lib/internal/_isMultipleOf.mjs +12 -0
  61. package/lib/internal/_isMultipleOf.mjs.map +1 -0
  62. package/lib/internal/_isTypeFloat.js +1 -1
  63. package/lib/internal/_isTypeFloat.js.map +1 -1
  64. package/lib/internal/_isTypeFloat.mjs +1 -1
  65. package/lib/internal/_isTypeFloat.mjs.map +1 -1
  66. package/lib/internal/_isTypeInt64.js +1 -0
  67. package/lib/internal/_isTypeInt64.js.map +1 -1
  68. package/lib/internal/_isTypeInt64.mjs.map +1 -1
  69. package/lib/internal/_isTypeInt64Bigint.d.ts +1 -0
  70. package/lib/internal/_isTypeInt64Bigint.js +15 -0
  71. package/lib/internal/_isTypeInt64Bigint.js.map +1 -0
  72. package/lib/internal/_isTypeInt64Bigint.mjs +8 -0
  73. package/lib/internal/_isTypeInt64Bigint.mjs.map +1 -0
  74. package/lib/internal/_isTypeUint64.js +1 -0
  75. package/lib/internal/_isTypeUint64.js.map +1 -1
  76. package/lib/internal/_isTypeUint64.mjs.map +1 -1
  77. package/lib/internal/_isTypeUint64Bigint.d.ts +1 -0
  78. package/lib/internal/_isTypeUint64Bigint.js +10 -0
  79. package/lib/internal/_isTypeUint64Bigint.js.map +1 -0
  80. package/lib/internal/_isTypeUint64Bigint.mjs +8 -0
  81. package/lib/internal/_isTypeUint64Bigint.mjs.map +1 -0
  82. package/lib/internal/_isUniqueItems.js +96 -109
  83. package/lib/internal/_isUniqueItems.js.map +1 -1
  84. package/lib/internal/_isUniqueItems.mjs +62 -50
  85. package/lib/internal/_isUniqueItems.mjs.map +1 -1
  86. package/lib/internal/_notationAny.js +8 -1
  87. package/lib/internal/_notationAny.js.map +1 -1
  88. package/lib/internal/_notationAny.mjs +7 -1
  89. package/lib/internal/_notationAny.mjs.map +1 -1
  90. package/lib/internal/_notationAssign.d.ts +1 -0
  91. package/lib/internal/_notationAssign.js +18 -0
  92. package/lib/internal/_notationAssign.js.map +1 -0
  93. package/lib/internal/_notationAssign.mjs +17 -0
  94. package/lib/internal/_notationAssign.mjs.map +1 -0
  95. package/lib/internal/_notationCamel.js +30 -9
  96. package/lib/internal/_notationCamel.js.map +1 -1
  97. package/lib/internal/_notationCamel.mjs +13 -5
  98. package/lib/internal/_notationCamel.mjs.map +1 -1
  99. package/lib/internal/_notationKebab.d.ts +1 -0
  100. package/lib/internal/_notationKebab.js +15 -0
  101. package/lib/internal/_notationKebab.js.map +1 -0
  102. package/lib/internal/_notationKebab.mjs +15 -0
  103. package/lib/internal/_notationKebab.mjs.map +1 -0
  104. package/lib/internal/_notationKeyCollision.d.ts +1 -0
  105. package/lib/internal/_notationKeyCollision.js +8 -0
  106. package/lib/internal/_notationKeyCollision.js.map +1 -0
  107. package/lib/internal/_notationKeyCollision.mjs +8 -0
  108. package/lib/internal/_notationKeyCollision.mjs.map +1 -0
  109. package/lib/internal/_notationPascal.js +20 -5
  110. package/lib/internal/_notationPascal.js.map +1 -1
  111. package/lib/internal/_notationPascal.mjs +10 -5
  112. package/lib/internal/_notationPascal.mjs.map +1 -1
  113. package/lib/internal/_notationSnake.js +25 -22
  114. package/lib/internal/_notationSnake.js.map +1 -1
  115. package/lib/internal/_notationSnake.mjs +11 -11
  116. package/lib/internal/_notationSnake.mjs.map +1 -1
  117. package/lib/internal/_plainCloneAny.js +174 -38
  118. package/lib/internal/_plainCloneAny.js.map +1 -1
  119. package/lib/internal/_plainCloneAny.mjs +126 -22
  120. package/lib/internal/_plainCloneAny.mjs.map +1 -1
  121. package/lib/internal/_randomArray.d.ts +1 -1
  122. package/lib/internal/_randomArray.js +11 -4
  123. package/lib/internal/_randomArray.js.map +1 -1
  124. package/lib/internal/_randomArray.mjs +9 -3
  125. package/lib/internal/_randomArray.mjs.map +1 -1
  126. package/lib/internal/_randomFormatByte.d.ts +2 -1
  127. package/lib/internal/_randomFormatByte.js +2 -1
  128. package/lib/internal/_randomFormatByte.js.map +1 -1
  129. package/lib/internal/_randomFormatByte.mjs +2 -1
  130. package/lib/internal/_randomFormatByte.mjs.map +1 -1
  131. package/lib/internal/_randomFormatDate.d.ts +2 -0
  132. package/lib/internal/_randomFormatDate.js +3 -2
  133. package/lib/internal/_randomFormatDate.js.map +1 -1
  134. package/lib/internal/_randomFormatDate.mjs +3 -2
  135. package/lib/internal/_randomFormatDate.mjs.map +1 -1
  136. package/lib/internal/_randomFormatDatetime.d.ts +2 -0
  137. package/lib/internal/_randomFormatDatetime.js +3 -2
  138. package/lib/internal/_randomFormatDatetime.js.map +1 -1
  139. package/lib/internal/_randomFormatDatetime.mjs +3 -2
  140. package/lib/internal/_randomFormatDatetime.mjs.map +1 -1
  141. package/lib/internal/_randomFormatDuration.d.ts +2 -1
  142. package/lib/internal/_randomFormatDuration.js +3 -2
  143. package/lib/internal/_randomFormatDuration.js.map +1 -1
  144. package/lib/internal/_randomFormatDuration.mjs +3 -2
  145. package/lib/internal/_randomFormatDuration.mjs.map +1 -1
  146. package/lib/internal/_randomFormatEmail.d.ts +2 -1
  147. package/lib/internal/_randomFormatEmail.js +8 -1
  148. package/lib/internal/_randomFormatEmail.js.map +1 -1
  149. package/lib/internal/_randomFormatEmail.mjs +5 -1
  150. package/lib/internal/_randomFormatEmail.mjs.map +1 -1
  151. package/lib/internal/_randomFormatHostname.d.ts +8 -1
  152. package/lib/internal/_randomFormatHostname.js +45 -2
  153. package/lib/internal/_randomFormatHostname.js.map +1 -1
  154. package/lib/internal/_randomFormatHostname.mjs +38 -2
  155. package/lib/internal/_randomFormatHostname.mjs.map +1 -1
  156. package/lib/internal/_randomFormatIdnEmail.d.ts +2 -1
  157. package/lib/internal/_randomFormatIdnEmail.js +16 -2
  158. package/lib/internal/_randomFormatIdnEmail.js.map +1 -1
  159. package/lib/internal/_randomFormatIdnEmail.mjs +11 -2
  160. package/lib/internal/_randomFormatIdnEmail.mjs.map +1 -1
  161. package/lib/internal/_randomFormatIdnHostname.d.ts +2 -1
  162. package/lib/internal/_randomFormatIdnHostname.js +26 -1
  163. package/lib/internal/_randomFormatIdnHostname.js.map +1 -1
  164. package/lib/internal/_randomFormatIdnHostname.mjs +25 -2
  165. package/lib/internal/_randomFormatIdnHostname.mjs.map +1 -1
  166. package/lib/internal/_randomFormatIpv4.d.ts +2 -1
  167. package/lib/internal/_randomFormatIpv4.js +2 -1
  168. package/lib/internal/_randomFormatIpv4.js.map +1 -1
  169. package/lib/internal/_randomFormatIpv4.mjs +2 -1
  170. package/lib/internal/_randomFormatIpv4.mjs.map +1 -1
  171. package/lib/internal/_randomFormatIpv6.d.ts +2 -1
  172. package/lib/internal/_randomFormatIpv6.js +2 -1
  173. package/lib/internal/_randomFormatIpv6.js.map +1 -1
  174. package/lib/internal/_randomFormatIpv6.mjs +2 -1
  175. package/lib/internal/_randomFormatIpv6.mjs.map +1 -1
  176. package/lib/internal/_randomFormatIri.d.ts +2 -1
  177. package/lib/internal/_randomFormatIri.js +1 -1
  178. package/lib/internal/_randomFormatIri.js.map +1 -1
  179. package/lib/internal/_randomFormatIri.mjs +1 -1
  180. package/lib/internal/_randomFormatIri.mjs.map +1 -1
  181. package/lib/internal/_randomFormatIriReference.d.ts +2 -1
  182. package/lib/internal/_randomFormatIriReference.js +1 -1
  183. package/lib/internal/_randomFormatIriReference.js.map +1 -1
  184. package/lib/internal/_randomFormatIriReference.mjs +1 -1
  185. package/lib/internal/_randomFormatIriReference.mjs.map +1 -1
  186. package/lib/internal/_randomFormatJsonPointer.d.ts +2 -1
  187. package/lib/internal/_randomFormatJsonPointer.js +8 -1
  188. package/lib/internal/_randomFormatJsonPointer.js.map +1 -1
  189. package/lib/internal/_randomFormatJsonPointer.mjs +5 -1
  190. package/lib/internal/_randomFormatJsonPointer.mjs.map +1 -1
  191. package/lib/internal/_randomFormatPassword.d.ts +2 -1
  192. package/lib/internal/_randomFormatPassword.js +7 -5
  193. package/lib/internal/_randomFormatPassword.js.map +1 -1
  194. package/lib/internal/_randomFormatPassword.mjs +5 -1
  195. package/lib/internal/_randomFormatPassword.mjs.map +1 -1
  196. package/lib/internal/_randomFormatRegex.d.ts +2 -1
  197. package/lib/internal/_randomFormatRegex.js +2 -1
  198. package/lib/internal/_randomFormatRegex.js.map +1 -1
  199. package/lib/internal/_randomFormatRegex.mjs +2 -1
  200. package/lib/internal/_randomFormatRegex.mjs.map +1 -1
  201. package/lib/internal/_randomFormatRelativeJsonPointer.d.ts +2 -1
  202. package/lib/internal/_randomFormatRelativeJsonPointer.js +3 -2
  203. package/lib/internal/_randomFormatRelativeJsonPointer.js.map +1 -1
  204. package/lib/internal/_randomFormatRelativeJsonPointer.mjs +3 -2
  205. package/lib/internal/_randomFormatRelativeJsonPointer.mjs.map +1 -1
  206. package/lib/internal/_randomFormatTime.d.ts +2 -1
  207. package/lib/internal/_randomFormatTime.js +3 -2
  208. package/lib/internal/_randomFormatTime.js.map +1 -1
  209. package/lib/internal/_randomFormatTime.mjs +3 -2
  210. package/lib/internal/_randomFormatTime.mjs.map +1 -1
  211. package/lib/internal/_randomFormatUri.d.ts +2 -1
  212. package/lib/internal/_randomFormatUri.js +1 -1
  213. package/lib/internal/_randomFormatUri.js.map +1 -1
  214. package/lib/internal/_randomFormatUri.mjs +1 -1
  215. package/lib/internal/_randomFormatUri.mjs.map +1 -1
  216. package/lib/internal/_randomFormatUriReference.d.ts +2 -1
  217. package/lib/internal/_randomFormatUriReference.js +1 -1
  218. package/lib/internal/_randomFormatUriReference.js.map +1 -1
  219. package/lib/internal/_randomFormatUriReference.mjs +1 -1
  220. package/lib/internal/_randomFormatUriReference.mjs.map +1 -1
  221. package/lib/internal/_randomFormatUriTemplate.d.ts +2 -1
  222. package/lib/internal/_randomFormatUriTemplate.js +1 -1
  223. package/lib/internal/_randomFormatUriTemplate.js.map +1 -1
  224. package/lib/internal/_randomFormatUriTemplate.mjs +1 -1
  225. package/lib/internal/_randomFormatUriTemplate.mjs.map +1 -1
  226. package/lib/internal/_randomFormatUrl.d.ts +2 -1
  227. package/lib/internal/_randomFormatUrl.js +21 -1
  228. package/lib/internal/_randomFormatUrl.js.map +1 -1
  229. package/lib/internal/_randomFormatUrl.mjs +18 -1
  230. package/lib/internal/_randomFormatUrl.mjs.map +1 -1
  231. package/lib/internal/_randomFormatUuid.d.ts +2 -1
  232. package/lib/internal/_randomFormatUuid.js +3 -2
  233. package/lib/internal/_randomFormatUuid.js.map +1 -1
  234. package/lib/internal/_randomFormatUuid.mjs +3 -2
  235. package/lib/internal/_randomFormatUuid.mjs.map +1 -1
  236. package/lib/internal/_randomInteger.js +59 -28
  237. package/lib/internal/_randomInteger.js.map +1 -1
  238. package/lib/internal/_randomInteger.mjs +56 -16
  239. package/lib/internal/_randomInteger.mjs.map +1 -1
  240. package/lib/internal/_randomMultiple.d.ts +8 -0
  241. package/lib/internal/_randomMultiple.js +168 -0
  242. package/lib/internal/_randomMultiple.js.map +1 -0
  243. package/lib/internal/_randomMultiple.mjs +158 -0
  244. package/lib/internal/_randomMultiple.mjs.map +1 -0
  245. package/lib/internal/_randomNumber.js +42 -42
  246. package/lib/internal/_randomNumber.js.map +1 -1
  247. package/lib/internal/_randomNumber.mjs +41 -27
  248. package/lib/internal/_randomNumber.mjs.map +1 -1
  249. package/lib/internal/_randomPattern.d.ts +2 -1
  250. package/lib/internal/_randomPattern.js +19 -4
  251. package/lib/internal/_randomPattern.js.map +1 -1
  252. package/lib/internal/_randomPattern.mjs +10 -4
  253. package/lib/internal/_randomPattern.mjs.map +1 -1
  254. package/lib/internal/_randomStringLength.d.ts +33 -0
  255. package/lib/internal/_randomStringLength.js +48 -0
  256. package/lib/internal/_randomStringLength.js.map +1 -0
  257. package/lib/internal/_randomStringLength.mjs +44 -0
  258. package/lib/internal/_randomStringLength.mjs.map +1 -0
  259. package/lib/internal/_stringLength.d.ts +1 -0
  260. package/lib/internal/_stringLength.js +11 -0
  261. package/lib/internal/_stringLength.js.map +1 -0
  262. package/lib/internal/_stringLength.mjs +10 -0
  263. package/lib/internal/_stringLength.mjs.map +1 -0
  264. package/lib/internal/_validateReport.js +4 -1
  265. package/lib/internal/_validateReport.js.map +1 -1
  266. package/lib/internal/_validateReport.mjs +2 -1
  267. package/lib/internal/_validateReport.mjs.map +1 -1
  268. package/lib/internal/private/__notationRename.d.ts +14 -0
  269. package/lib/internal/private/__notationRename.js +25 -0
  270. package/lib/internal/private/__notationRename.js.map +1 -0
  271. package/lib/internal/private/__notationRename.mjs +24 -0
  272. package/lib/internal/private/__notationRename.mjs.map +1 -0
  273. package/lib/json.d.ts +2 -2
  274. package/lib/json.mjs.map +1 -1
  275. package/lib/module.d.ts +2 -2
  276. package/lib/module.js.map +1 -1
  277. package/lib/module.mjs.map +1 -1
  278. package/lib/notations.d.ts +20 -4
  279. package/lib/notations.js.map +1 -1
  280. package/lib/notations.mjs.map +1 -1
  281. package/native/adapter/plugin_options.go +117 -0
  282. package/native/adapter/plugin_options_payload_matrix_test.go +181 -0
  283. package/native/cmd/ttsc-typia/any_array_type_tags_transform_test.go +63 -9
  284. package/native/cmd/ttsc-typia/assert_guard_factory_contract_test.go +152 -0
  285. package/native/cmd/ttsc-typia/build.go +81 -64
  286. package/native/cmd/ttsc-typia/build_no_emit_preserves_analysis_options_test.go +67 -0
  287. package/native/cmd/ttsc-typia/build_no_emit_transform_diagnostics_test.go +138 -0
  288. package/native/cmd/ttsc-typia/build_plugin_options_come_from_payload_test.go +48 -0
  289. package/native/cmd/ttsc-typia/build_transactional_emit_success_test.go +81 -0
  290. package/native/cmd/ttsc-typia/build_transform_failure_atomicity_test.go +138 -0
  291. package/native/cmd/ttsc-typia/command_routes_and_diagnostics_coverage_test.go +3 -1
  292. package/native/cmd/ttsc-typia/compare_less_nan_transform_test.go +98 -0
  293. package/native/cmd/ttsc-typia/compare_native_object_overmatch_transform_test.go +161 -0
  294. package/native/cmd/ttsc-typia/compare_nondiscriminable_union_transform_test.go +343 -0
  295. package/native/cmd/ttsc-typia/compare_union_discrimination_transform_test.go +289 -0
  296. package/native/cmd/ttsc-typia/escaped_property_key_path_transform_test.go +193 -0
  297. package/native/cmd/ttsc-typia/finite_option_number_leaf_transform_test.go +240 -0
  298. package/native/cmd/ttsc-typia/functional_promised_type_transform_test.go +220 -0
  299. package/native/cmd/ttsc-typia/functional_receiver_transform_test.go +232 -0
  300. package/native/cmd/ttsc-typia/is_object_function_member_transform_test.go +205 -0
  301. package/native/cmd/ttsc-typia/json_application_alias_function_validation_transform_test.go +151 -0
  302. package/native/cmd/ttsc-typia/json_is_stringify_finite_number_transform_test.go +198 -0
  303. package/native/cmd/ttsc-typia/json_stringify_special_key_transform_test.go +238 -0
  304. package/native/cmd/ttsc-typia/main_wasm.go +21 -2
  305. package/native/cmd/ttsc-typia/native_collection_identity_is_transform_test.go +234 -0
  306. package/native/cmd/ttsc-typia/native_generic_name_guard_is_transform_test.go +194 -0
  307. package/native/cmd/ttsc-typia/native_name_collision_is_transform_test.go +204 -0
  308. package/native/cmd/ttsc-typia/non_trailing_rest_tuple_transform_test.go +23 -11
  309. package/native/cmd/ttsc-typia/notation_dynamic_keys_transform_test.go +286 -0
  310. package/native/cmd/ttsc-typia/notation_kebab_case_transform_test.go +1 -1
  311. package/native/cmd/ttsc-typia/notation_literal_collision_transform_test.go +164 -0
  312. package/native/cmd/ttsc-typia/notation_pascal_case_transform_test.go +230 -0
  313. package/native/cmd/ttsc-typia/notation_unicode_key_transform_test.go +309 -0
  314. package/native/cmd/ttsc-typia/pattern_line_terminator_escape_transform_test.go +224 -0
  315. package/native/cmd/ttsc-typia/plain_prune_union_object_overmatch_transform_test.go +219 -0
  316. package/native/cmd/ttsc-typia/plugin_options_payload_helpers_test.go +181 -0
  317. package/native/cmd/ttsc-typia/private_field_filter_is_transform_test.go +278 -0
  318. package/native/cmd/ttsc-typia/project_catalog_transform_coverage_test.go +73 -27
  319. package/native/cmd/ttsc-typia/project_dependencies_barrel_reexport_transform_test.go +120 -0
  320. package/native/cmd/ttsc-typia/project_dependencies_collapsed_alias_transform_test.go +134 -0
  321. package/native/cmd/ttsc-typia/project_dependencies_custom_lib_name_transform_test.go +135 -0
  322. package/native/cmd/ttsc-typia/project_dependencies_default_barrel_transform_test.go +114 -0
  323. package/native/cmd/ttsc-typia/project_dependencies_empty_heritage_transform_test.go +100 -0
  324. package/native/cmd/ttsc-typia/project_dependencies_envelope_transform_test.go +148 -0
  325. package/native/cmd/ttsc-typia/project_dependencies_index_signature_alias_transform_test.go +139 -0
  326. package/native/cmd/ttsc-typia/project_dependencies_local_reexport_transform_test.go +122 -0
  327. package/native/cmd/ttsc-typia/project_dependencies_signature_alias_transform_test.go +125 -0
  328. package/native/cmd/ttsc-typia/project_dependencies_star_barrel_transform_test.go +112 -0
  329. package/native/cmd/ttsc-typia/project_reference_graph_envelope_transform_test.go +190 -0
  330. package/native/cmd/ttsc-typia/protobuf_is_encode_finite_number_transform_test.go +98 -0
  331. package/native/cmd/ttsc-typia/protobuf_sequence_field_numbers_transform_test.go +52 -22
  332. package/native/cmd/ttsc-typia/symbol_key_member_filter_transform_test.go +279 -0
  333. package/native/cmd/ttsc-typia/template_interpolation_type_tags_transform_test.go +86 -23
  334. package/native/cmd/ttsc-typia/template_literal_type_tags_transform_test.go +3 -1
  335. package/native/cmd/ttsc-typia/transform.go +228 -39
  336. package/native/cmd/ttsc-typia/{transform_declaration_source_produces_no_js_test.go → transform_declaration_source_produces_no_javascript_test.go} +10 -2
  337. package/native/cmd/ttsc-typia/transform_fixtures_emit_coverage_test.go +21 -4
  338. package/native/cmd/ttsc-typia/transform_helpers_test.go +159 -1
  339. package/native/cmd/ttsc-typia/transform_plugin_options_come_from_payload_test.go +43 -0
  340. package/native/cmd/ttsc-typia/transform_single_file_failure_atomicity_test.go +114 -0
  341. package/native/cmd/ttsc-typia/transform_single_file_failure_writes_no_stdout_test.go +43 -0
  342. package/native/cmd/ttsc-typia/transform_single_file_js_distinguishes_same_basename_sources_test.go +81 -0
  343. package/native/cmd/ttsc-typia/transform_single_file_js_empty_emit_reports_no_output_test.go +100 -0
  344. package/native/cmd/ttsc-typia/transform_single_file_js_locates_output_across_layouts_test.go +160 -0
  345. package/native/cmd/ttsc-typia/transform_single_file_success_publishes_artifact_test.go +54 -0
  346. package/native/cmd/ttsc-typia/transform_wasm_host_argv_reports_diagnostics_test.go +39 -0
  347. package/native/cmd/ttsc-typia/tuple_optional_compare_clone_transform_test.go +227 -0
  348. package/native/core/factories/FormatCheatSheet.go +40 -7
  349. package/native/core/factories/IdentifierFactory.go +131 -4
  350. package/native/core/factories/MetadataCommentTagFactory.go +83 -40
  351. package/native/core/factories/MetadataTypeTagFactory.go +13 -1
  352. package/native/core/factories/NumericRangeFactory.go +60 -17
  353. package/native/core/factories/ProtobufFactory.go +7 -4
  354. package/native/core/factories/factory_utility_coverage_test.go +8 -2
  355. package/native/core/factories/format_alias_resolves_to_cheat_sheet_test.go +57 -0
  356. package/native/core/factories/format_alias_table_targets_the_cheat_sheet_test.go +44 -0
  357. package/native/core/factories/identifier_factory_postfix_escapes_every_key_test.go +147 -0
  358. package/native/core/factories/identifier_factory_postfix_survives_every_code_point_test.go +86 -0
  359. package/native/core/factories/internal/metadata/MetadataHelper.go +60 -6
  360. package/native/core/factories/internal/metadata/emplace_metadata_object.go +116 -8
  361. package/native/core/factories/internal/metadata/iterate_metadata.go +6 -0
  362. package/native/core/factories/internal/metadata/iterate_metadata_function.go +4 -11
  363. package/native/core/factories/internal/metadata/iterate_metadata_intersection.go +8 -6
  364. package/native/core/factories/internal/metadata/iterate_metadata_map.go +9 -0
  365. package/native/core/factories/internal/metadata/iterate_metadata_native.go +27 -2
  366. package/native/core/factories/internal/metadata/iterate_metadata_set.go +9 -0
  367. package/native/core/factories/internal/metadata/type_arguments_precondition_test.go +70 -0
  368. package/native/core/factories/metadata_comment_tag_factory_coverage_test.go +39 -0
  369. package/native/core/factories/metadata_comment_tag_factory_exclusivity_matches_interface_test.go +84 -0
  370. package/native/core/factories/metadata_type_tag_factory_accepts_legal_tag_combinations_test.go +60 -0
  371. package/native/core/factories/metadata_type_tag_factory_declarations_test.go +86 -0
  372. package/native/core/factories/metadata_type_tag_factory_keeps_bool_form_exclusivity_test.go +38 -0
  373. package/native/core/factories/metadata_type_tag_factory_rejects_cross_kind_exclusive_tags_test.go +65 -0
  374. package/native/core/factories/metadata_type_tag_factory_rejects_duplicated_array_form_tags_test.go +41 -0
  375. package/native/core/factories/numeric_range_factory_enforces_64bit_bounds_test.go +69 -0
  376. package/native/core/factories/protobuf_recovery_ownership_test.go +64 -0
  377. package/native/core/programmers/IsProgrammer.go +15 -1
  378. package/native/core/programmers/RandomProgrammer.go +51 -14
  379. package/native/core/programmers/compare/CompareEqualProgrammer.go +393 -5
  380. package/native/core/programmers/compare/CompareLessProgrammer.go +4 -2
  381. package/native/core/programmers/functional/FunctionalAssertFunctionProgrammer.go +4 -6
  382. package/native/core/programmers/functional/FunctionalAssertParametersProgrammer.go +5 -13
  383. package/native/core/programmers/functional/FunctionalAssertReturnProgrammer.go +6 -14
  384. package/native/core/programmers/functional/FunctionalIsFunctionProgrammer.go +4 -6
  385. package/native/core/programmers/functional/FunctionalIsParametersProgrammer.go +49 -14
  386. package/native/core/programmers/functional/FunctionalIsReturnProgrammer.go +5 -13
  387. package/native/core/programmers/functional/FunctionalValidateFunctionProgrammer.go +4 -6
  388. package/native/core/programmers/functional/FunctionalValidateParametersProgrammer.go +5 -13
  389. package/native/core/programmers/functional/FunctionalValidateReturnProgrammer.go +5 -13
  390. package/native/core/programmers/functional/internal/FunctionalGeneralProgrammer.go +4 -17
  391. package/native/core/programmers/helpers/CloneJoiner.go +32 -0
  392. package/native/core/programmers/helpers/NotationJoiner.go +86 -28
  393. package/native/core/programmers/helpers/StringifyJoinder.go +32 -1
  394. package/native/core/programmers/helpers/UnionExplorer.go +203 -61
  395. package/native/core/programmers/helpers/joiner_branch_coverage_test.go +5 -3
  396. package/native/core/programmers/helpers/union_explorer_coverage_test.go +1 -1
  397. package/native/core/programmers/internal/CheckerProgrammer.go +100 -48
  398. package/native/core/programmers/iterate/check_template.go +344 -32
  399. package/native/core/programmers/iterate/json_schema_discriminator.go +36 -10
  400. package/native/core/programmers/iterate/json_schema_discriminator_declaration_syntax_test.go +205 -0
  401. package/native/core/programmers/iterate/openapi_v3_downgrader.go +641 -0
  402. package/native/core/programmers/iterate/openapi_v3_downgrader_boolean_default_test.go +95 -0
  403. package/native/core/programmers/iterate/openapi_v3_downgrader_test.go +123 -0
  404. package/native/core/programmers/iterate/template_interpolation_tags_test.go +40 -8
  405. package/native/core/programmers/iterate/template_runtime_pattern.go +52 -7
  406. package/native/core/programmers/json/JsonApplicationProgrammer.go +45 -11
  407. package/native/core/programmers/json/JsonSchemasProgrammer.go +12 -2
  408. package/native/core/programmers/llm/LlmApplicationProgrammer.go +12 -10
  409. package/native/core/programmers/llm/LlmSchemaProgrammer.go +23 -6
  410. package/native/core/programmers/llm/llm_reference_codec_test.go +24 -0
  411. package/native/core/programmers/notations/NotationGeneralProgrammer.go +183 -67
  412. package/native/core/programmers/notations/notation_general_helpers_test.go +1 -3
  413. package/native/core/programmers/notations/notation_general_programmer_pascal_multiword_test.go +72 -0
  414. package/native/core/programmers/notations/notation_general_programmer_underscore_boundary_test.go +68 -0
  415. package/native/core/programmers/plain/PlainClassifyProgrammer.go +23 -15
  416. package/native/core/programmers/plain/PlainCloneProgrammer.go +20 -7
  417. package/native/core/programmers/plain/PlainPruneProgrammer.go +19 -5
  418. package/native/core/programmers/plain/plain_tuple_seed_recovery_ownership_test.go +25 -0
  419. package/native/core/programmers/protobuf/ProtobufDecodeProgrammer.go +37 -28
  420. package/native/core/programmers/protobuf/ProtobufMessageProgrammer.go +40 -21
  421. package/native/core/programmers/protobuf/protobuf_programmer_helper_coverage_test.go +26 -0
  422. package/native/core/programmers/random_programmer_length_argument_test.go +53 -0
  423. package/native/core/schemas/metadata/MetadataCollection.go +270 -20
  424. package/native/core/schemas/metadata/MetadataDependency.go +388 -0
  425. package/native/core/schemas/metadata/MetadataObjectType.go +17 -4
  426. package/native/core/schemas/metadata/metadata_collection_generic_argument_dot_test.go +122 -0
  427. package/native/core/schemas/metadata/metadata_collection_name_allocation_test.go +147 -0
  428. package/native/core/schemas/metadata/metadata_collection_openapi_name_cascade_test.go +55 -0
  429. package/native/core/schemas/metadata/metadata_collection_openapi_name_test.go +68 -0
  430. package/native/core/utils/PatternUtil.go +13 -0
  431. package/native/core/utils/PromiseTypeFactory.go +59 -0
  432. package/native/core/utils/ProtobufNameEncoder.go +8 -0
  433. package/native/core/utils/promise_type_factory_semantics_test.go +118 -0
  434. package/native/go.mod +9 -1
  435. package/native/transform/CallExpressionTransformer.go +12 -0
  436. package/native/transform/features/json/JsonApplicationTransformer.go +1 -1
  437. package/native/transform/features/json/JsonSchemaTransformer.go +1 -1
  438. package/native/transform/features/json/JsonSchemasTransformer.go +5 -4
  439. package/package.json +16 -4
  440. package/src/executable/FileSystemIdentity.ts +189 -0
  441. package/src/executable/TypiaGenerateWizard.ts +377 -110
  442. package/src/functional.ts +30 -60
  443. package/src/internal/_ProtobufReader.ts +129 -43
  444. package/src/internal/_createStandardSchema.ts +15 -1
  445. package/src/internal/_decimal.ts +69 -0
  446. package/src/internal/_httpQueryParseURLSearchParams.ts +24 -2
  447. package/src/internal/_isFormatByte.ts +2 -5
  448. package/src/internal/_isFormatDate.ts +15 -2
  449. package/src/internal/_isFormatDateTime.ts +28 -2
  450. package/src/internal/_isFormatIri.ts +5 -2
  451. package/src/internal/_isFormatIriReference.ts +11 -3
  452. package/src/internal/_isFormatUriReference.ts +1 -1
  453. package/src/internal/_isMultipleOf.ts +8 -0
  454. package/src/internal/_isTypeFloat.ts +1 -1
  455. package/src/internal/_isTypeInt64.ts +1 -0
  456. package/src/internal/_isTypeInt64Bigint.ts +12 -0
  457. package/src/internal/_isTypeUint64.ts +1 -0
  458. package/src/internal/_isTypeUint64Bigint.ts +7 -0
  459. package/src/internal/_isUniqueItems.ts +134 -132
  460. package/src/internal/_notationAny.ts +9 -4
  461. package/src/internal/_notationAssign.ts +20 -0
  462. package/src/internal/_notationCamel.ts +31 -10
  463. package/src/internal/_notationKebab.ts +11 -0
  464. package/src/internal/_notationKeyCollision.ts +9 -0
  465. package/src/internal/_notationPascal.ts +19 -6
  466. package/src/internal/_notationSnake.ts +24 -21
  467. package/src/internal/_plainCloneAny.ts +208 -33
  468. package/src/internal/_randomArray.ts +13 -4
  469. package/src/internal/_randomFormatByte.ts +4 -1
  470. package/src/internal/_randomFormatDate.ts +17 -12
  471. package/src/internal/_randomFormatDatetime.ts +15 -10
  472. package/src/internal/_randomFormatDuration.ts +16 -14
  473. package/src/internal/_randomFormatEmail.ts +8 -2
  474. package/src/internal/_randomFormatHostname.ts +48 -1
  475. package/src/internal/_randomFormatIdnEmail.ts +18 -2
  476. package/src/internal/_randomFormatIdnHostname.ts +34 -2
  477. package/src/internal/_randomFormatIpv4.ts +3 -2
  478. package/src/internal/_randomFormatIpv6.ts +3 -2
  479. package/src/internal/_randomFormatIri.ts +3 -1
  480. package/src/internal/_randomFormatIriReference.ts +3 -1
  481. package/src/internal/_randomFormatJsonPointer.ts +8 -2
  482. package/src/internal/_randomFormatPassword.ts +11 -6
  483. package/src/internal/_randomFormatRegex.ts +4 -1
  484. package/src/internal/_randomFormatRelativeJsonPointer.ts +13 -6
  485. package/src/internal/_randomFormatTime.ts +13 -10
  486. package/src/internal/_randomFormatUri.ts +3 -1
  487. package/src/internal/_randomFormatUriReference.ts +3 -1
  488. package/src/internal/_randomFormatUriTemplate.ts +3 -1
  489. package/src/internal/_randomFormatUrl.ts +25 -2
  490. package/src/internal/_randomFormatUuid.ts +10 -6
  491. package/src/internal/_randomInteger.ts +87 -40
  492. package/src/internal/_randomMultiple.ts +245 -0
  493. package/src/internal/_randomNumber.ts +72 -55
  494. package/src/internal/_randomPattern.ts +26 -4
  495. package/src/internal/_randomStringLength.ts +72 -0
  496. package/src/internal/_stringLength.ts +5 -0
  497. package/src/internal/_validateReport.ts +5 -1
  498. package/src/internal/private/__notationRename.ts +24 -0
  499. package/src/json.ts +2 -2
  500. package/src/module.ts +4 -6
  501. package/src/notations.ts +20 -4
  502. package/lib/internal/private/__notationCapitalize.d.ts +0 -1
  503. package/lib/internal/private/__notationCapitalize.js +0 -6
  504. package/lib/internal/private/__notationCapitalize.js.map +0 -1
  505. package/lib/internal/private/__notationCapitalize.mjs +0 -6
  506. package/lib/internal/private/__notationCapitalize.mjs.map +0 -1
  507. package/lib/internal/private/__notationUnsnake.d.ts +0 -4
  508. package/lib/internal/private/__notationUnsnake.js +0 -26
  509. package/lib/internal/private/__notationUnsnake.js.map +0 -1
  510. package/lib/internal/private/__notationUnsnake.mjs +0 -15
  511. package/lib/internal/private/__notationUnsnake.mjs.map +0 -1
  512. package/native/cmd/ttsc-typia/plugin_options_missing_config_test.go +0 -26
  513. package/native/cmd/ttsc-typia/plugin_options_undefined_false_test.go +0 -36
  514. package/src/internal/private/__notationCapitalize.ts +0 -2
  515. package/src/internal/private/__notationUnsnake.ts +0 -24
@@ -9,12 +9,13 @@ class _ProtobufReader {
9
9
  this.buf = buf;
10
10
  this.ptr = 0;
11
11
  this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
12
+ this.end = buf.length;
12
13
  }
13
14
  index() {
14
15
  return this.ptr;
15
16
  }
16
17
  size() {
17
- return this.buf.length;
18
+ return this.end;
18
19
  }
19
20
  uint32() {
20
21
  return this.varint32() >>> 0;
@@ -30,7 +31,7 @@ class _ProtobufReader {
30
31
  return this.varint64();
31
32
  }
32
33
  int64() {
33
- return this.varint64();
34
+ return BigInt.asIntN(64, this.varint64());
34
35
  }
35
36
  sint64() {
36
37
  const value = this.varint64();
@@ -40,55 +41,85 @@ class _ProtobufReader {
40
41
  return this.varint32() !== 0;
41
42
  }
42
43
  float() {
43
- const value = this.view.getFloat32(this.ptr, true);
44
- this.ptr += 4;
45
- return value;
44
+ return this.view.getFloat32(this.take(4), true);
46
45
  }
47
46
  double() {
48
- const value = this.view.getFloat64(this.ptr, true);
49
- this.ptr += 8;
50
- return value;
47
+ return this.view.getFloat64(this.take(8), true);
51
48
  }
52
49
  bytes() {
53
- const length = this.uint32();
54
- const from = this.ptr;
55
- this.ptr += length;
56
- return this.buf.subarray(from, from + length);
50
+ return this.atomic(() => {
51
+ const length = this.uint32();
52
+ const from = this.take(length);
53
+ return this.buf.subarray(from, from + length);
54
+ });
57
55
  }
58
56
  string() {
59
- return utf8.get().decode(this.bytes());
57
+ const bytes = this.bytes();
58
+ const decoder = utf8.get();
59
+ try {
60
+ return decoder.decode(bytes);
61
+ }
62
+ catch (_a) {
63
+ throw error("invalid UTF-8 string.");
64
+ }
60
65
  }
66
+ fork() {
67
+ return this.atomic(() => {
68
+ const previous = this.end;
69
+ const length = this.uint32();
70
+ this.validate(length);
71
+ this.end = this.ptr + length;
72
+ return previous;
73
+ });
74
+ }
75
+ close(previous) {
76
+ if (this.ptr !== this.end)
77
+ throw error("buffer overflow.");
78
+ this.end = previous;
79
+ }
80
+ /** Advance by exactly `length` bytes, for every length including zero. */
61
81
  skip(length) {
62
- if (length === 0)
63
- while (this.u8() & 0x80)
64
- ;
65
- else {
66
- if (this.index() + length > this.size())
67
- throw new Error("Error on typia.protobuf.decode(): buffer overflow.");
68
- this.ptr += length;
69
- }
82
+ this.take(length);
83
+ }
84
+ /**
85
+ * Advance by exactly one varint, which carries no length prefix.
86
+ *
87
+ * A varint terminates at its first byte without the continuation bit, and may
88
+ * occupy no more than {@link VARINT_MAX_BYTES}. Reading past that limit would
89
+ * accept a varint that `varint32` and `varint64` could not, making the limit
90
+ * depend on which method happens to consume the value.
91
+ */
92
+ skipVarint() {
93
+ this.atomic(() => {
94
+ for (let i = 0; i < VARINT_MAX_BYTES; ++i)
95
+ if ((this.u8() & 0x80) === 0)
96
+ return;
97
+ throw error(`varint exceeds ${VARINT_MAX_BYTES} bytes.`);
98
+ });
70
99
  }
71
100
  skipType(wireType) {
72
- switch (wireType) {
73
- case interface_1.ProtobufWire.VARIANT:
74
- this.skip(0);
75
- break;
76
- case interface_1.ProtobufWire.I64:
77
- this.skip(8);
78
- break;
79
- case interface_1.ProtobufWire.LEN:
80
- this.skip(this.uint32());
81
- break;
82
- case interface_1.ProtobufWire.START_GROUP:
83
- while ((wireType = this.uint32() & 0x07) !== interface_1.ProtobufWire.END_GROUP)
84
- this.skipType(wireType);
85
- break;
86
- case interface_1.ProtobufWire.I32:
87
- this.skip(4);
88
- break;
89
- default:
90
- throw new Error(`Invalid wire type ${wireType} at offset ${this.ptr}.`);
91
- }
101
+ this.atomic(() => {
102
+ switch (wireType) {
103
+ case interface_1.ProtobufWire.VARIANT:
104
+ this.skipVarint();
105
+ break;
106
+ case interface_1.ProtobufWire.I64:
107
+ this.skip(8);
108
+ break;
109
+ case interface_1.ProtobufWire.LEN:
110
+ this.skip(this.uint32());
111
+ break;
112
+ case interface_1.ProtobufWire.START_GROUP:
113
+ while ((wireType = this.uint32() & 0x07) !== interface_1.ProtobufWire.END_GROUP)
114
+ this.skipType(wireType);
115
+ break;
116
+ case interface_1.ProtobufWire.I32:
117
+ this.skip(4);
118
+ break;
119
+ default:
120
+ throw error(`invalid wire type ${wireType} at offset ${this.ptr}.`);
121
+ }
122
+ });
92
123
  }
93
124
  varint32() {
94
125
  let loaded;
@@ -108,7 +139,8 @@ class _ProtobufReader {
108
139
  value |= ((loaded = this.u8()) & 0xf) << 28;
109
140
  if (loaded < 0x80)
110
141
  return value;
111
- // increment position until there is no continuation bit or until we read 10 bytes
142
+ // increment position until there is no continuation bit, or until this read
143
+ // reaches VARINT_MAX_BYTES and the value can hold no further bits
112
144
  if (this.u8() < 0x80)
113
145
  return value;
114
146
  if (this.u8() < 0x80)
@@ -152,15 +184,55 @@ class _ProtobufReader {
152
184
  if (loaded < BigInt(0x80))
153
185
  return value;
154
186
  value |= (this.u8n() & BigInt(0x01)) << BigInt(63);
155
- return BigInt.asIntN(64, value);
187
+ return BigInt.asUintN(64, value);
156
188
  }
157
189
  u8() {
158
- return this.view.getUint8(this.ptr++);
190
+ return this.view.getUint8(this.take(1));
159
191
  }
160
192
  u8n() {
161
193
  return BigInt(this.u8());
162
194
  }
195
+ take(length) {
196
+ this.validate(length);
197
+ const from = this.ptr;
198
+ this.ptr += length;
199
+ return from;
200
+ }
201
+ atomic(closure) {
202
+ const index = this.ptr;
203
+ const end = this.end;
204
+ try {
205
+ return closure();
206
+ }
207
+ catch (thrown) {
208
+ this.ptr = index;
209
+ this.end = end;
210
+ throw thrown;
211
+ }
212
+ }
213
+ validate(length) {
214
+ if (Number.isSafeInteger(length) === false ||
215
+ length < 0 ||
216
+ length > this.size() - this.ptr)
217
+ throw error("buffer overflow.");
218
+ }
163
219
  }
164
220
  exports._ProtobufReader = _ProtobufReader;
165
- const utf8 = new utils_1.Singleton(() => new TextDecoder("utf-8"));
221
+ /**
222
+ * Builds every fault this reader raises, so each one names typia as its source.
223
+ *
224
+ * Every decode error a caller can see must be attributable, and the prefix is
225
+ * what attributes it. Composing it here rather than at each throw keeps a new
226
+ * fault from silently shipping without it.
227
+ */
228
+ const error = (message) => new Error(`Error on typia.protobuf.decode(): ${message}`);
229
+ /**
230
+ * The most bytes a varint may occupy: a 64-bit value in seven-bit groups.
231
+ *
232
+ * `varint32` and `varint64` hold this same limit structurally, by reading no
233
+ * further than their tenth byte. This constant is what a loop-driven consumer
234
+ * holds it by.
235
+ */
236
+ const VARINT_MAX_BYTES = 10;
237
+ const utf8 = new utils_1.Singleton(() => new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }));
166
238
  //# sourceMappingURL=_ProtobufReader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_ProtobufReader.js","sourceRoot":"","sources":["../../src/internal/_ProtobufReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_ProtobufReader.js","sourceRoot":"","sources":["../../src/internal/_ProtobufReader.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,13 @@ var _ProtobufReader = class {
6
6
  this.buf = buf;
7
7
  this.ptr = 0;
8
8
  this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
9
+ this.end = buf.length;
9
10
  }
10
11
  index() {
11
12
  return this.ptr;
12
13
  }
13
14
  size() {
14
- return this.buf.length;
15
+ return this.end;
15
16
  }
16
17
  uint32() {
17
18
  return this.varint32() >>> 0;
@@ -27,7 +28,7 @@ var _ProtobufReader = class {
27
28
  return this.varint64();
28
29
  }
29
30
  int64() {
30
- return this.varint64();
31
+ return BigInt.asIntN(64, this.varint64());
31
32
  }
32
33
  sint64() {
33
34
  const value = this.varint64();
@@ -37,50 +38,79 @@ var _ProtobufReader = class {
37
38
  return this.varint32() !== 0;
38
39
  }
39
40
  float() {
40
- const value = this.view.getFloat32(this.ptr, true);
41
- this.ptr += 4;
42
- return value;
41
+ return this.view.getFloat32(this.take(4), true);
43
42
  }
44
43
  double() {
45
- const value = this.view.getFloat64(this.ptr, true);
46
- this.ptr += 8;
47
- return value;
44
+ return this.view.getFloat64(this.take(8), true);
48
45
  }
49
46
  bytes() {
50
- const length = this.uint32();
51
- const from = this.ptr;
52
- this.ptr += length;
53
- return this.buf.subarray(from, from + length);
47
+ return this.atomic(() => {
48
+ const length = this.uint32();
49
+ const from = this.take(length);
50
+ return this.buf.subarray(from, from + length);
51
+ });
54
52
  }
55
53
  string() {
56
- return utf8.get().decode(this.bytes());
54
+ const bytes = this.bytes();
55
+ const decoder = utf8.get();
56
+ try {
57
+ return decoder.decode(bytes);
58
+ } catch {
59
+ throw error("invalid UTF-8 string.");
60
+ }
61
+ }
62
+ fork() {
63
+ return this.atomic(() => {
64
+ const previous = this.end;
65
+ const length = this.uint32();
66
+ this.validate(length);
67
+ this.end = this.ptr + length;
68
+ return previous;
69
+ });
70
+ }
71
+ close(previous) {
72
+ if (this.ptr !== this.end) throw error("buffer overflow.");
73
+ this.end = previous;
57
74
  }
75
+ /** Advance by exactly `length` bytes, for every length including zero. */
58
76
  skip(length) {
59
- if (length === 0) while (this.u8() & 128);
60
- else {
61
- if (this.index() + length > this.size()) throw new Error("Error on typia.protobuf.decode(): buffer overflow.");
62
- this.ptr += length;
63
- }
77
+ this.take(length);
78
+ }
79
+ /**
80
+ * Advance by exactly one varint, which carries no length prefix.
81
+ *
82
+ * A varint terminates at its first byte without the continuation bit, and may
83
+ * occupy no more than {@link VARINT_MAX_BYTES}. Reading past that limit would
84
+ * accept a varint that `varint32` and `varint64` could not, making the limit
85
+ * depend on which method happens to consume the value.
86
+ */
87
+ skipVarint() {
88
+ this.atomic(() => {
89
+ for (let i = 0; i < VARINT_MAX_BYTES; ++i) if ((this.u8() & 128) === 0) return;
90
+ throw error(`varint exceeds ${VARINT_MAX_BYTES} bytes.`);
91
+ });
64
92
  }
65
93
  skipType(wireType) {
66
- switch (wireType) {
67
- case ProtobufWire.VARIANT:
68
- this.skip(0);
69
- break;
70
- case ProtobufWire.I64:
71
- this.skip(8);
72
- break;
73
- case ProtobufWire.LEN:
74
- this.skip(this.uint32());
75
- break;
76
- case ProtobufWire.START_GROUP:
77
- while ((wireType = this.uint32() & 7) !== ProtobufWire.END_GROUP) this.skipType(wireType);
78
- break;
79
- case ProtobufWire.I32:
80
- this.skip(4);
81
- break;
82
- default: throw new Error(`Invalid wire type ${wireType} at offset ${this.ptr}.`);
83
- }
94
+ this.atomic(() => {
95
+ switch (wireType) {
96
+ case ProtobufWire.VARIANT:
97
+ this.skipVarint();
98
+ break;
99
+ case ProtobufWire.I64:
100
+ this.skip(8);
101
+ break;
102
+ case ProtobufWire.LEN:
103
+ this.skip(this.uint32());
104
+ break;
105
+ case ProtobufWire.START_GROUP:
106
+ while ((wireType = this.uint32() & 7) !== ProtobufWire.END_GROUP) this.skipType(wireType);
107
+ break;
108
+ case ProtobufWire.I32:
109
+ this.skip(4);
110
+ break;
111
+ default: throw error(`invalid wire type ${wireType} at offset ${this.ptr}.`);
112
+ }
113
+ });
84
114
  }
85
115
  varint32() {
86
116
  let loaded;
@@ -124,16 +154,55 @@ var _ProtobufReader = class {
124
154
  value |= ((loaded = this.u8n()) & BigInt(127)) << BigInt(56);
125
155
  if (loaded < BigInt(128)) return value;
126
156
  value |= (this.u8n() & BigInt(1)) << BigInt(63);
127
- return BigInt.asIntN(64, value);
157
+ return BigInt.asUintN(64, value);
128
158
  }
129
159
  u8() {
130
- return this.view.getUint8(this.ptr++);
160
+ return this.view.getUint8(this.take(1));
131
161
  }
132
162
  u8n() {
133
163
  return BigInt(this.u8());
134
164
  }
165
+ take(length) {
166
+ this.validate(length);
167
+ const from = this.ptr;
168
+ this.ptr += length;
169
+ return from;
170
+ }
171
+ atomic(closure) {
172
+ const index = this.ptr;
173
+ const end = this.end;
174
+ try {
175
+ return closure();
176
+ } catch (thrown) {
177
+ this.ptr = index;
178
+ this.end = end;
179
+ throw thrown;
180
+ }
181
+ }
182
+ validate(length) {
183
+ if (Number.isSafeInteger(length) === false || length < 0 || length > this.size() - this.ptr) throw error("buffer overflow.");
184
+ }
135
185
  };
136
- const utf8 = new Singleton(() => new TextDecoder("utf-8"));
186
+ /**
187
+ * Builds every fault this reader raises, so each one names typia as its source.
188
+ *
189
+ * Every decode error a caller can see must be attributable, and the prefix is
190
+ * what attributes it. Composing it here rather than at each throw keeps a new
191
+ * fault from silently shipping without it.
192
+ */
193
+ const error = (message) => /* @__PURE__ */ new Error(`Error on typia.protobuf.decode(): ${message}`);
194
+ /**
195
+ * The most bytes a varint may occupy: a 64-bit value in seven-bit groups.
196
+ *
197
+ * `varint32` and `varint64` hold this same limit structurally, by reading no
198
+ * further than their tenth byte. This constant is what a loop-driven consumer
199
+ * holds it by.
200
+ */
201
+ const VARINT_MAX_BYTES = 10;
202
+ const utf8 = new Singleton(() => new TextDecoder("utf-8", {
203
+ fatal: true,
204
+ ignoreBOM: true
205
+ }));
137
206
  //#endregion
138
207
  export { _ProtobufReader };
139
208
 
@@ -1 +1 @@
1
- {"version":3,"file":"_ProtobufReader.mjs","names":[],"sources":["../../src/internal/_ProtobufReader.ts"],"sourcesContent":["import { ProtobufWire } from \"@typia/interface\";\nimport { Singleton } from \"@typia/utils\";\n\n/// @reference https://github.com/piotr-oles/as-proto/blob/main/packages/as-proto/assembly/internal/FixedReader.ts\nexport class _ProtobufReader {\n /** Read buffer */\n private buf: Uint8Array;\n\n /** Read buffer pointer. */\n private ptr: number;\n\n /** DataView for buffer. */\n private view: DataView;\n\n public constructor(buf: Uint8Array) {\n this.buf = buf;\n this.ptr = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n\n public index(): number {\n return this.ptr;\n }\n\n public size(): number {\n return this.buf.length;\n }\n\n public uint32(): number {\n return this.varint32() >>> 0;\n }\n\n public int32(): number {\n return this.varint32();\n }\n\n public sint32(): number {\n const value: number = this.varint32();\n return (value >>> 1) ^ -(value & 1);\n }\n\n public uint64(): bigint {\n return this.varint64();\n }\n\n public int64(): bigint {\n return this.varint64();\n }\n\n public sint64(): bigint {\n const value = this.varint64();\n return (value >> BigInt(0x01)) ^ -(value & BigInt(0x01));\n }\n\n public bool(): boolean {\n return this.varint32() !== 0;\n }\n\n public float(): number {\n const value: number = this.view.getFloat32(this.ptr, true);\n this.ptr += 4;\n return value;\n }\n\n public double(): number {\n const value: number = this.view.getFloat64(this.ptr, true);\n this.ptr += 8;\n return value;\n }\n\n public bytes(): Uint8Array {\n const length: number = this.uint32();\n const from: number = this.ptr;\n this.ptr += length;\n return this.buf.subarray(from, from + length);\n }\n\n public string(): string {\n return utf8.get().decode(this.bytes());\n }\n\n public skip(length: number): void {\n if (length === 0) while (this.u8() & 0x80);\n else {\n if (this.index() + length > this.size())\n throw new Error(\"Error on typia.protobuf.decode(): buffer overflow.\");\n this.ptr += length;\n }\n }\n\n public skipType(wireType: ProtobufWire): void {\n switch (wireType) {\n case ProtobufWire.VARIANT:\n this.skip(0);\n break;\n case ProtobufWire.I64:\n this.skip(8);\n break;\n case ProtobufWire.LEN:\n this.skip(this.uint32());\n break;\n case ProtobufWire.START_GROUP:\n while ((wireType = this.uint32() & 0x07) !== ProtobufWire.END_GROUP)\n this.skipType(wireType);\n break;\n case ProtobufWire.I32:\n this.skip(4);\n break;\n default:\n throw new Error(`Invalid wire type ${wireType} at offset ${this.ptr}.`);\n }\n }\n\n private varint32(): number {\n let loaded: number;\n let value: number;\n\n value = (loaded = this.u8()) & 0x7f;\n if (loaded < 0x80) return value;\n\n value |= ((loaded = this.u8()) & 0x7f) << 7;\n if (loaded < 0x80) return value;\n\n value |= ((loaded = this.u8()) & 0x7f) << 14;\n if (loaded < 0x80) return value;\n\n value |= ((loaded = this.u8()) & 0x7f) << 21;\n if (loaded < 0x80) return value;\n\n value |= ((loaded = this.u8()) & 0xf) << 28;\n if (loaded < 0x80) return value;\n\n // increment position until there is no continuation bit or until we read 10 bytes\n if (this.u8() < 0x80) return value;\n if (this.u8() < 0x80) return value;\n if (this.u8() < 0x80) return value;\n if (this.u8() < 0x80) return value;\n if (this.u8() < 0x80) return value;\n\n return value;\n }\n\n private varint64(): bigint {\n let loaded: bigint;\n let value: bigint;\n\n value = (loaded = this.u8n()) & BigInt(0x7f);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(7);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(14);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(21);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(28);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(35);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(42);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(49);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(56);\n if (loaded < BigInt(0x80)) return value;\n\n value |= (this.u8n() & BigInt(0x01)) << BigInt(63);\n return BigInt.asIntN(64, value);\n }\n\n private u8(): number {\n return this.view.getUint8(this.ptr++);\n }\n\n private u8n(): bigint {\n return BigInt(this.u8());\n }\n}\n\nconst utf8 = new Singleton(() => new TextDecoder(\"utf-8\"));\n"],"mappings":"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"}
1
+ {"version":3,"file":"_ProtobufReader.mjs","names":[],"sources":["../../src/internal/_ProtobufReader.ts"],"sourcesContent":["import { ProtobufWire } from \"@typia/interface\";\nimport { Singleton } from \"@typia/utils\";\n\n/// @reference https://github.com/piotr-oles/as-proto/blob/main/packages/as-proto/assembly/internal/FixedReader.ts\nexport class _ProtobufReader {\n /** Read buffer */\n private buf: Uint8Array;\n\n /** Read buffer pointer. */\n private ptr: number;\n\n /** DataView for buffer. */\n private view: DataView;\n\n /** Current length-delimited boundary. */\n private end: number;\n\n public constructor(buf: Uint8Array) {\n this.buf = buf;\n this.ptr = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n this.end = buf.length;\n }\n\n public index(): number {\n return this.ptr;\n }\n\n public size(): number {\n return this.end;\n }\n\n public uint32(): number {\n return this.varint32() >>> 0;\n }\n\n public int32(): number {\n return this.varint32();\n }\n\n public sint32(): number {\n const value: number = this.varint32();\n return (value >>> 1) ^ -(value & 1);\n }\n\n public uint64(): bigint {\n return this.varint64();\n }\n\n public int64(): bigint {\n return BigInt.asIntN(64, this.varint64());\n }\n\n public sint64(): bigint {\n const value = this.varint64();\n return (value >> BigInt(0x01)) ^ -(value & BigInt(0x01));\n }\n\n public bool(): boolean {\n return this.varint32() !== 0;\n }\n\n public float(): number {\n return this.view.getFloat32(this.take(4), true);\n }\n\n public double(): number {\n return this.view.getFloat64(this.take(8), true);\n }\n\n public bytes(): Uint8Array {\n return this.atomic(() => {\n const length: number = this.uint32();\n const from: number = this.take(length);\n return this.buf.subarray(from, from + length);\n });\n }\n\n public string(): string {\n const bytes: Uint8Array = this.bytes();\n const decoder: TextDecoder = utf8.get();\n try {\n return decoder.decode(bytes);\n } catch {\n throw error(\"invalid UTF-8 string.\");\n }\n }\n\n public fork(): number {\n return this.atomic(() => {\n const previous: number = this.end;\n const length: number = this.uint32();\n this.validate(length);\n this.end = this.ptr + length;\n return previous;\n });\n }\n\n public close(previous: number): void {\n if (this.ptr !== this.end) throw error(\"buffer overflow.\");\n this.end = previous;\n }\n\n /** Advance by exactly `length` bytes, for every length including zero. */\n public skip(length: number): void {\n this.take(length);\n }\n\n /**\n * Advance by exactly one varint, which carries no length prefix.\n *\n * A varint terminates at its first byte without the continuation bit, and may\n * occupy no more than {@link VARINT_MAX_BYTES}. Reading past that limit would\n * accept a varint that `varint32` and `varint64` could not, making the limit\n * depend on which method happens to consume the value.\n */\n public skipVarint(): void {\n this.atomic(() => {\n for (let i: number = 0; i < VARINT_MAX_BYTES; ++i)\n if ((this.u8() & 0x80) === 0) return;\n throw error(`varint exceeds ${VARINT_MAX_BYTES} bytes.`);\n });\n }\n\n public skipType(wireType: ProtobufWire): void {\n this.atomic(() => {\n switch (wireType) {\n case ProtobufWire.VARIANT:\n this.skipVarint();\n break;\n case ProtobufWire.I64:\n this.skip(8);\n break;\n case ProtobufWire.LEN:\n this.skip(this.uint32());\n break;\n case ProtobufWire.START_GROUP:\n while ((wireType = this.uint32() & 0x07) !== ProtobufWire.END_GROUP)\n this.skipType(wireType);\n break;\n case ProtobufWire.I32:\n this.skip(4);\n break;\n default:\n throw error(`invalid wire type ${wireType} at offset ${this.ptr}.`);\n }\n });\n }\n\n private varint32(): number {\n let loaded: number;\n let value: number;\n\n value = (loaded = this.u8()) & 0x7f;\n if (loaded < 0x80) return value;\n\n value |= ((loaded = this.u8()) & 0x7f) << 7;\n if (loaded < 0x80) return value;\n\n value |= ((loaded = this.u8()) & 0x7f) << 14;\n if (loaded < 0x80) return value;\n\n value |= ((loaded = this.u8()) & 0x7f) << 21;\n if (loaded < 0x80) return value;\n\n value |= ((loaded = this.u8()) & 0xf) << 28;\n if (loaded < 0x80) return value;\n\n // increment position until there is no continuation bit, or until this read\n // reaches VARINT_MAX_BYTES and the value can hold no further bits\n if (this.u8() < 0x80) return value;\n if (this.u8() < 0x80) return value;\n if (this.u8() < 0x80) return value;\n if (this.u8() < 0x80) return value;\n if (this.u8() < 0x80) return value;\n\n return value;\n }\n\n private varint64(): bigint {\n let loaded: bigint;\n let value: bigint;\n\n value = (loaded = this.u8n()) & BigInt(0x7f);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(7);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(14);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(21);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(28);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(35);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(42);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(49);\n if (loaded < BigInt(0x80)) return value;\n\n value |= ((loaded = this.u8n()) & BigInt(0x7f)) << BigInt(56);\n if (loaded < BigInt(0x80)) return value;\n\n value |= (this.u8n() & BigInt(0x01)) << BigInt(63);\n return BigInt.asUintN(64, value);\n }\n\n private u8(): number {\n return this.view.getUint8(this.take(1));\n }\n\n private u8n(): bigint {\n return BigInt(this.u8());\n }\n\n private take(length: number): number {\n this.validate(length);\n const from: number = this.ptr;\n this.ptr += length;\n return from;\n }\n\n private atomic<T>(closure: () => T): T {\n const index: number = this.ptr;\n const end: number = this.end;\n try {\n return closure();\n } catch (thrown) {\n this.ptr = index;\n this.end = end;\n throw thrown;\n }\n }\n\n private validate(length: number): void {\n if (\n Number.isSafeInteger(length) === false ||\n length < 0 ||\n length > this.size() - this.ptr\n )\n throw error(\"buffer overflow.\");\n }\n}\n\n/**\n * Builds every fault this reader raises, so each one names typia as its source.\n *\n * Every decode error a caller can see must be attributable, and the prefix is\n * what attributes it. Composing it here rather than at each throw keeps a new\n * fault from silently shipping without it.\n */\nconst error = (message: string): Error =>\n new Error(`Error on typia.protobuf.decode(): ${message}`);\n\n/**\n * The most bytes a varint may occupy: a 64-bit value in seven-bit groups.\n *\n * `varint32` and `varint64` hold this same limit structurally, by reading no\n * further than their tenth byte. This constant is what a loop-driven consumer\n * holds it by.\n */\nconst VARINT_MAX_BYTES = 10;\n\nconst utf8 = new Singleton(\n () => new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: true }),\n);\n"],"mappings":"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"}
@@ -15,7 +15,7 @@ const _createStandardSchema = (fn) => Object.assign(fn, {
15
15
  else {
16
16
  return {
17
17
  issues: result.errors.map((error) => ({
18
- message: `expected ${error.expected}, got ${error.value}`,
18
+ message: `expected ${error.expected}, got ${formatValue(error.value)}`,
19
19
  path: typiaPathToStandardSchemaPath(error.path),
20
20
  })),
21
21
  };
@@ -24,6 +24,23 @@ const _createStandardSchema = (fn) => Object.assign(fn, {
24
24
  },
25
25
  });
26
26
  exports._createStandardSchema = _createStandardSchema;
27
+ const formatValue = (value) => {
28
+ if (typeof value === "object") {
29
+ if (value === null)
30
+ return "null";
31
+ try {
32
+ if (Array.isArray(value))
33
+ return "[object Array]";
34
+ }
35
+ catch (_a) {
36
+ // A revoked proxy can throw even for Array.isArray().
37
+ }
38
+ return "[object Object]";
39
+ }
40
+ if (typeof value === "function")
41
+ return "[function]";
42
+ return String(value);
43
+ };
27
44
  var PathParserState;
28
45
  (function (PathParserState) {
29
46
  // Start of a new segment
@@ -1 +1 @@
1
- {"version":3,"file":"_createStandardSchema.js","sourceRoot":"","sources":["../../src/internal/_createStandardSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_createStandardSchema.js","sourceRoot":"","sources":["../../src/internal/_createStandardSchema.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,22 @@ const _createStandardSchema = (fn) => Object.assign(fn, { "~standard": {
6
6
  const result = fn(input);
7
7
  if (result.success) return { value: result.data };
8
8
  else return { issues: result.errors.map((error) => ({
9
- message: `expected ${error.expected}, got ${error.value}`,
9
+ message: `expected ${error.expected}, got ${formatValue(error.value)}`,
10
10
  path: typiaPathToStandardSchemaPath(error.path)
11
11
  })) };
12
12
  }
13
13
  } });
14
+ const formatValue = (value) => {
15
+ if (typeof value === "object") {
16
+ if (value === null) return "null";
17
+ try {
18
+ if (Array.isArray(value)) return "[object Array]";
19
+ } catch {}
20
+ return "[object Object]";
21
+ }
22
+ if (typeof value === "function") return "[function]";
23
+ return String(value);
24
+ };
14
25
  const typiaPathToStandardSchemaPath = (path) => {
15
26
  if (!path.startsWith("$input")) throw new Error(`Invalid path: ${JSON.stringify(path)}`);
16
27
  const segments = [];
@@ -1 +1 @@
1
- {"version":3,"file":"_createStandardSchema.mjs","names":[],"sources":["../../src/internal/_createStandardSchema.ts"],"sourcesContent":["import { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport { IValidation } from \"@typia/interface\";\n\nexport const _createStandardSchema = <T>(\n fn: (input: unknown) => IValidation<T>,\n): ((input: unknown) => IValidation<T>) & StandardSchemaV1<T, T> =>\n Object.assign(fn, {\n \"~standard\": {\n version: 1,\n vendor: \"typia\",\n validate: (input: unknown): StandardSchemaV1.Result<T> => {\n const result = fn(input);\n if (result.success) {\n return {\n value: result.data,\n } satisfies StandardSchemaV1.SuccessResult<T>;\n } else {\n return {\n issues: result.errors.map((error) => ({\n message: `expected ${error.expected}, got ${error.value}`,\n path: typiaPathToStandardSchemaPath(error.path),\n })),\n } satisfies StandardSchemaV1.FailureResult;\n }\n },\n },\n } satisfies StandardSchemaV1<T, T>);\n\nenum PathParserState {\n // Start of a new segment\n // When the parser is in this state,\n // the pointer must point `.` or `[` or equal to length of the path\n Start,\n // Parsing a property key (`.hoge`)\n Property,\n // Parsing a string key (`[\"fuga\"]`)\n StringKey,\n // Parsing a number key (`[42]`)\n NumberKey,\n}\n\nconst typiaPathToStandardSchemaPath = (\n path: string,\n): ReadonlyArray<StandardSchemaV1.PathSegment> => {\n if (!path.startsWith(\"$input\")) {\n throw new Error(`Invalid path: ${JSON.stringify(path)}`);\n }\n\n const segments: StandardSchemaV1.PathSegment[] = [];\n let currentSegment = \"\";\n let state: PathParserState = PathParserState.Start;\n let index = \"$input\".length - 1;\n while (index < path.length - 1) {\n index++;\n const char = path[index];\n\n if (state === PathParserState.Property) {\n if (char === \".\" || char === \"[\") {\n // End of property\n segments.push({\n key: currentSegment,\n });\n state = PathParserState.Start;\n } else if (index === path.length - 1) {\n // End of path\n currentSegment += char;\n segments.push({\n key: currentSegment,\n });\n index++;\n state = PathParserState.Start;\n } else {\n currentSegment += char;\n }\n } else if (state === PathParserState.StringKey) {\n if (char === '\"') {\n // End of string key\n segments.push({\n key: JSON.parse(currentSegment + char),\n });\n // Skip `\"` and `]`\n index += 2;\n state = PathParserState.Start;\n } else if (char === \"\\\\\") {\n // Skip the next character from parsing\n currentSegment += path[index];\n index++;\n currentSegment += path[index];\n } else {\n currentSegment += char;\n }\n } else if (state === PathParserState.NumberKey) {\n if (char === \"]\") {\n // End of number key\n segments.push({\n key: Number.parseInt(currentSegment),\n });\n index++;\n state = PathParserState.Start;\n } else {\n currentSegment += char;\n }\n }\n\n if (state === PathParserState.Start && index < path.length - 1) {\n const newChar = path[index];\n currentSegment = \"\";\n if (newChar === \"[\") {\n if (path[index + 1] === '\"') {\n // Start of string key\n // NOTE: Typia uses JSON.stringify for this kind of keys, so `'` will not used as a string delimiter\n state = PathParserState.StringKey;\n index++;\n currentSegment = '\"';\n } else {\n // Start of number key\n state = PathParserState.NumberKey;\n }\n } else if (newChar === \".\") {\n // Start of property\n state = PathParserState.Property;\n } else {\n throw new Error(\"Unreachable: pointer points invalid character\");\n }\n }\n }\n\n if (state !== PathParserState.Start) {\n throw new Error(`Failed to parse path: ${JSON.stringify(path)}`);\n }\n\n return segments;\n};\n"],"mappings":";AAGA,MAAa,yBACX,OAEA,OAAO,OAAO,IAAI,EAChB,aAAa;CACX,SAAS;CACT,QAAQ;CACR,WAAW,UAA+C;EACxD,MAAM,SAAS,GAAG,KAAK;EACvB,IAAI,OAAO,SACT,OAAO,EACL,OAAO,OAAO,KAChB;OAEA,OAAO,EACL,QAAQ,OAAO,OAAO,KAAK,WAAW;GACpC,SAAS,YAAY,MAAM,SAAS,QAAQ,MAAM;GAClD,MAAM,8BAA8B,MAAM,IAAI;EAChD,EAAE,EACJ;CAEJ;AACF,EACF,CAAkC;AAepC,MAAM,iCACJ,SACgD;CAChD,IAAI,CAAC,KAAK,WAAW,QAAQ,GAC3B,MAAM,IAAI,MAAM,iBAAiB,KAAK,UAAU,IAAI,GAAG;CAGzD,MAAM,WAA2C,CAAC;CAClD,IAAI,iBAAiB;CACrB,IAAI,QAAA;CACJ,IAAI,QAAQ;CACZ,OAAO,QAAQ,KAAK,SAAS,GAAG;EAC9B;EACA,MAAM,OAAO,KAAK;EAElB,IAAI,UAAA,GACF,IAAI,SAAS,OAAO,SAAS,KAAK;GAEhC,SAAS,KAAK,EACZ,KAAK,eACP,CAAC;GACD,QAAA;EACF,OAAO,IAAI,UAAU,KAAK,SAAS,GAAG;GAEpC,kBAAkB;GAClB,SAAS,KAAK,EACZ,KAAK,eACP,CAAC;GACD;GACA,QAAA;EACF,OACE,kBAAkB;OAEf,IAAI,UAAA,GACT,IAAI,SAAS,MAAK;GAEhB,SAAS,KAAK,EACZ,KAAK,KAAK,MAAM,iBAAiB,IAAI,EACvC,CAAC;GAED,SAAS;GACT,QAAA;EACF,OAAO,IAAI,SAAS,MAAM;GAExB,kBAAkB,KAAK;GACvB;GACA,kBAAkB,KAAK;EACzB,OACE,kBAAkB;OAEf,IAAI,UAAA,GACT,IAAI,SAAS,KAAK;GAEhB,SAAS,KAAK,EACZ,KAAK,OAAO,SAAS,cAAc,EACrC,CAAC;GACD;GACA,QAAA;EACF,OACE,kBAAkB;EAItB,IAAI,UAAA,KAAmC,QAAQ,KAAK,SAAS,GAAG;GAC9D,MAAM,UAAU,KAAK;GACrB,iBAAiB;GACjB,IAAI,YAAY,KACd,IAAI,KAAK,QAAQ,OAAO,MAAK;IAG3B,QAAA;IACA;IACA,iBAAiB;GACnB,OAEE,QAAA;QAEG,IAAI,YAAY,KAErB,QAAA;QAEA,MAAM,IAAI,MAAM,+CAA+C;EAEnE;CACF;CAEA,IAAI,UAAA,GACF,MAAM,IAAI,MAAM,yBAAyB,KAAK,UAAU,IAAI,GAAG;CAGjE,OAAO;AACT"}
1
+ {"version":3,"file":"_createStandardSchema.mjs","names":[],"sources":["../../src/internal/_createStandardSchema.ts"],"sourcesContent":["import { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport { IValidation } from \"@typia/interface\";\n\nexport const _createStandardSchema = <T>(\n fn: (input: unknown) => IValidation<T>,\n): ((input: unknown) => IValidation<T>) & StandardSchemaV1<T, T> =>\n Object.assign(fn, {\n \"~standard\": {\n version: 1,\n vendor: \"typia\",\n validate: (input: unknown): StandardSchemaV1.Result<T> => {\n const result = fn(input);\n if (result.success) {\n return {\n value: result.data,\n } satisfies StandardSchemaV1.SuccessResult<T>;\n } else {\n return {\n issues: result.errors.map((error) => ({\n message: `expected ${error.expected}, got ${formatValue(error.value)}`,\n path: typiaPathToStandardSchemaPath(error.path),\n })),\n } satisfies StandardSchemaV1.FailureResult;\n }\n },\n },\n } satisfies StandardSchemaV1<T, T>);\n\nconst formatValue = (value: unknown): string => {\n if (typeof value === \"object\") {\n if (value === null) return \"null\";\n try {\n if (Array.isArray(value)) return \"[object Array]\";\n } catch {\n // A revoked proxy can throw even for Array.isArray().\n }\n return \"[object Object]\";\n }\n if (typeof value === \"function\") return \"[function]\";\n return String(value);\n};\n\nenum PathParserState {\n // Start of a new segment\n // When the parser is in this state,\n // the pointer must point `.` or `[` or equal to length of the path\n Start,\n // Parsing a property key (`.hoge`)\n Property,\n // Parsing a string key (`[\"fuga\"]`)\n StringKey,\n // Parsing a number key (`[42]`)\n NumberKey,\n}\n\nconst typiaPathToStandardSchemaPath = (\n path: string,\n): ReadonlyArray<StandardSchemaV1.PathSegment> => {\n if (!path.startsWith(\"$input\")) {\n throw new Error(`Invalid path: ${JSON.stringify(path)}`);\n }\n\n const segments: StandardSchemaV1.PathSegment[] = [];\n let currentSegment = \"\";\n let state: PathParserState = PathParserState.Start;\n let index = \"$input\".length - 1;\n while (index < path.length - 1) {\n index++;\n const char = path[index];\n\n if (state === PathParserState.Property) {\n if (char === \".\" || char === \"[\") {\n // End of property\n segments.push({\n key: currentSegment,\n });\n state = PathParserState.Start;\n } else if (index === path.length - 1) {\n // End of path\n currentSegment += char;\n segments.push({\n key: currentSegment,\n });\n index++;\n state = PathParserState.Start;\n } else {\n currentSegment += char;\n }\n } else if (state === PathParserState.StringKey) {\n if (char === '\"') {\n // End of string key\n segments.push({\n key: JSON.parse(currentSegment + char),\n });\n // Skip `\"` and `]`\n index += 2;\n state = PathParserState.Start;\n } else if (char === \"\\\\\") {\n // Skip the next character from parsing\n currentSegment += path[index];\n index++;\n currentSegment += path[index];\n } else {\n currentSegment += char;\n }\n } else if (state === PathParserState.NumberKey) {\n if (char === \"]\") {\n // End of number key\n segments.push({\n key: Number.parseInt(currentSegment),\n });\n index++;\n state = PathParserState.Start;\n } else {\n currentSegment += char;\n }\n }\n\n if (state === PathParserState.Start && index < path.length - 1) {\n const newChar = path[index];\n currentSegment = \"\";\n if (newChar === \"[\") {\n if (path[index + 1] === '\"') {\n // Start of string key\n // NOTE: Typia uses JSON.stringify for this kind of keys, so `'` will not used as a string delimiter\n state = PathParserState.StringKey;\n index++;\n currentSegment = '\"';\n } else {\n // Start of number key\n state = PathParserState.NumberKey;\n }\n } else if (newChar === \".\") {\n // Start of property\n state = PathParserState.Property;\n } else {\n throw new Error(\"Unreachable: pointer points invalid character\");\n }\n }\n }\n\n if (state !== PathParserState.Start) {\n throw new Error(`Failed to parse path: ${JSON.stringify(path)}`);\n }\n\n return segments;\n};\n"],"mappings":";AAGA,MAAa,yBACX,OAEA,OAAO,OAAO,IAAI,EAChB,aAAa;CACX,SAAS;CACT,QAAQ;CACR,WAAW,UAA+C;EACxD,MAAM,SAAS,GAAG,KAAK;EACvB,IAAI,OAAO,SACT,OAAO,EACL,OAAO,OAAO,KAChB;OAEA,OAAO,EACL,QAAQ,OAAO,OAAO,KAAK,WAAW;GACpC,SAAS,YAAY,MAAM,SAAS,QAAQ,YAAY,MAAM,KAAK;GACnE,MAAM,8BAA8B,MAAM,IAAI;EAChD,EAAE,EACJ;CAEJ;AACF,EACF,CAAkC;AAEpC,MAAM,eAAe,UAA2B;CAC9C,IAAI,OAAO,UAAU,UAAU;EAC7B,IAAI,UAAU,MAAM,OAAO;EAC3B,IAAI;GACF,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO;EACnC,QAAQ,CAER;EACA,OAAO;CACT;CACA,IAAI,OAAO,UAAU,YAAY,OAAO;CACxC,OAAO,OAAO,KAAK;AACrB;AAeA,MAAM,iCACJ,SACgD;CAChD,IAAI,CAAC,KAAK,WAAW,QAAQ,GAC3B,MAAM,IAAI,MAAM,iBAAiB,KAAK,UAAU,IAAI,GAAG;CAGzD,MAAM,WAA2C,CAAC;CAClD,IAAI,iBAAiB;CACrB,IAAI,QAAA;CACJ,IAAI,QAAQ;CACZ,OAAO,QAAQ,KAAK,SAAS,GAAG;EAC9B;EACA,MAAM,OAAO,KAAK;EAElB,IAAI,UAAA,GACF,IAAI,SAAS,OAAO,SAAS,KAAK;GAEhC,SAAS,KAAK,EACZ,KAAK,eACP,CAAC;GACD,QAAA;EACF,OAAO,IAAI,UAAU,KAAK,SAAS,GAAG;GAEpC,kBAAkB;GAClB,SAAS,KAAK,EACZ,KAAK,eACP,CAAC;GACD;GACA,QAAA;EACF,OACE,kBAAkB;OAEf,IAAI,UAAA,GACT,IAAI,SAAS,MAAK;GAEhB,SAAS,KAAK,EACZ,KAAK,KAAK,MAAM,iBAAiB,IAAI,EACvC,CAAC;GAED,SAAS;GACT,QAAA;EACF,OAAO,IAAI,SAAS,MAAM;GAExB,kBAAkB,KAAK;GACvB;GACA,kBAAkB,KAAK;EACzB,OACE,kBAAkB;OAEf,IAAI,UAAA,GACT,IAAI,SAAS,KAAK;GAEhB,SAAS,KAAK,EACZ,KAAK,OAAO,SAAS,cAAc,EACrC,CAAC;GACD;GACA,QAAA;EACF,OACE,kBAAkB;EAItB,IAAI,UAAA,KAAmC,QAAQ,KAAK,SAAS,GAAG;GAC9D,MAAM,UAAU,KAAK;GACrB,iBAAiB;GACjB,IAAI,YAAY,KACd,IAAI,KAAK,QAAQ,OAAO,MAAK;IAG3B,QAAA;IACA;IACA,iBAAiB;GACnB,OAEE,QAAA;QAEG,IAAI,YAAY,KAErB,QAAA;QAEA,MAAM,IAAI,MAAM,+CAA+C;EAEnE;CACF;CAEA,IAAI,UAAA,GACF,MAAM,IAAI,MAAM,yBAAyB,KAAK,UAAU,IAAI,GAAG;CAGjE,OAAO;AACT"}
@@ -0,0 +1,14 @@
1
+ export interface _IDecimal {
2
+ coefficient: bigint;
3
+ exponent: number;
4
+ }
5
+ export interface _IDecimalRatio {
6
+ numerator: bigint;
7
+ denominator: bigint;
8
+ }
9
+ export declare const _decimalDecompose: (value: number) => _IDecimal | null;
10
+ export declare const _decimalDivide: (value: number, divisor: _IDecimal) => _IDecimalRatio | null;
11
+ export declare const _decimalIntegerStep: (value: number) => _IDecimal | null;
12
+ export declare const _decimalToNumber: (value: _IDecimal) => number;
13
+ export declare const _decimalPower: (exponent: number) => bigint;
14
+ export declare const _decimalGcd: (x: bigint, y: bigint) => bigint;