typia 9.2.0 → 9.3.0-dev.20250511

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 (534) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +149 -149
  3. package/lib/executable/setup/PluginConfigurator.js +3 -3
  4. package/lib/executable/setup/PluginConfigurator.mjs +3 -3
  5. package/lib/executable/typia.js +15 -15
  6. package/lib/executable/typia.mjs +15 -15
  7. package/lib/factories/ExpressionFactory.d.mts +1 -1
  8. package/lib/factories/ExpressionFactory.d.ts +1 -1
  9. package/lib/factories/ExpressionFactory.js +2 -2
  10. package/lib/factories/ExpressionFactory.js.map +1 -1
  11. package/lib/factories/ExpressionFactory.mjs +2 -2
  12. package/lib/llm.d.mts +6 -4
  13. package/lib/llm.d.ts +6 -4
  14. package/lib/llm.js +7 -0
  15. package/lib/llm.js.map +1 -1
  16. package/lib/llm.mjs +7 -1
  17. package/lib/transformers/CallExpressionTransformer.js +2 -0
  18. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  19. package/lib/transformers/CallExpressionTransformer.mjs +2 -0
  20. package/lib/transformers/features/llm/LlmApplicationTransformer.js +46 -35
  21. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  22. package/lib/transformers/features/llm/LlmApplicationTransformer.mjs +44 -34
  23. package/lib/transformers/features/llm/LlmControllerTransformer.d.mts +5 -0
  24. package/lib/transformers/features/llm/LlmControllerTransformer.d.ts +5 -0
  25. package/lib/transformers/features/llm/LlmControllerTransformer.js +67 -0
  26. package/lib/transformers/features/llm/LlmControllerTransformer.js.map +1 -0
  27. package/lib/transformers/features/llm/LlmControllerTransformer.mjs +63 -0
  28. package/lib/transformers/features/llm/LlmControllerTransformer.mjs.map +1 -0
  29. package/package.json +2 -2
  30. package/src/AssertionGuard.ts +1 -1
  31. package/src/CamelCase.ts +75 -75
  32. package/src/IRandomGenerator.ts +49 -49
  33. package/src/IReadableURLSearchParams.ts +9 -9
  34. package/src/IValidation.ts +1 -1
  35. package/src/PascalCase.ts +71 -71
  36. package/src/Primitive.ts +92 -92
  37. package/src/Resolved.ts +74 -74
  38. package/src/SnakeCase.ts +126 -126
  39. package/src/TypeGuardError.ts +37 -37
  40. package/src/executable/TypiaGenerateWizard.ts +83 -83
  41. package/src/executable/TypiaPatchWizard.ts +45 -45
  42. package/src/executable/TypiaSetupWizard.ts +171 -171
  43. package/src/executable/setup/ArgumentParser.ts +42 -42
  44. package/src/executable/setup/CommandExecutor.ts +8 -8
  45. package/src/executable/setup/FileRetriever.ts +19 -19
  46. package/src/executable/setup/PackageManager.ts +87 -87
  47. package/src/executable/setup/PluginConfigurator.ts +69 -69
  48. package/src/executable/typia.ts +55 -55
  49. package/src/factories/CommentFactory.ts +79 -79
  50. package/src/factories/ExpressionFactory.ts +219 -216
  51. package/src/factories/IdentifierFactory.ts +89 -89
  52. package/src/factories/JsonMetadataFactory.ts +83 -83
  53. package/src/factories/LiteralFactory.ts +52 -52
  54. package/src/factories/MetadataCollection.ts +278 -278
  55. package/src/factories/MetadataCommentTagFactory.ts +648 -648
  56. package/src/factories/MetadataFactory.ts +404 -404
  57. package/src/factories/MetadataTypeTagFactory.ts +413 -413
  58. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  59. package/src/factories/NumericRangeFactory.ts +72 -72
  60. package/src/factories/ProtobufFactory.ts +875 -875
  61. package/src/factories/StatementFactory.ts +90 -90
  62. package/src/factories/TemplateFactory.ts +64 -64
  63. package/src/factories/TypeFactory.ts +140 -140
  64. package/src/factories/ValueFactory.ts +12 -12
  65. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
  66. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  67. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  68. package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
  69. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  70. package/src/factories/internal/metadata/emplace_metadata_object.ts +212 -212
  71. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  72. package/src/factories/internal/metadata/explore_metadata.ts +31 -31
  73. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  74. package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
  75. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  76. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  77. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  78. package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
  79. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
  80. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  81. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  82. package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
  83. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +212 -212
  84. package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
  85. package/src/factories/internal/metadata/iterate_metadata_native.ts +264 -264
  86. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
  87. package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
  88. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
  89. package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
  90. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  91. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  92. package/src/functional.ts +740 -740
  93. package/src/http.ts +1040 -1040
  94. package/src/index.ts +4 -4
  95. package/src/internal/_IProtobufWriter.ts +18 -18
  96. package/src/internal/_ProtobufReader.ts +194 -194
  97. package/src/internal/_ProtobufSizer.ts +145 -145
  98. package/src/internal/_ProtobufWriter.ts +145 -145
  99. package/src/internal/_accessExpressionAsString.ts +46 -46
  100. package/src/internal/_assertGuard.ts +13 -13
  101. package/src/internal/_createStandardSchema.ts +134 -134
  102. package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
  103. package/src/internal/_httpFormDataReadArray.ts +4 -4
  104. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  105. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  106. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  107. package/src/internal/_httpFormDataReadFile.ts +10 -10
  108. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  109. package/src/internal/_httpFormDataReadString.ts +10 -10
  110. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  111. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  112. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  113. package/src/internal/_httpParameterReadBigint.ts +10 -10
  114. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  115. package/src/internal/_httpParameterReadNumber.ts +7 -7
  116. package/src/internal/_httpParameterReadString.ts +2 -2
  117. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  118. package/src/internal/_httpQueryReadArray.ts +4 -4
  119. package/src/internal/_httpQueryReadBigint.ts +12 -12
  120. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  121. package/src/internal/_httpQueryReadNumber.ts +9 -9
  122. package/src/internal/_httpQueryReadString.ts +4 -4
  123. package/src/internal/_isBetween.ts +2 -2
  124. package/src/internal/_isBigintString.ts +8 -8
  125. package/src/internal/_isFormatByte.ts +7 -7
  126. package/src/internal/_isFormatDate.ts +3 -3
  127. package/src/internal/_isFormatDateTime.ts +4 -4
  128. package/src/internal/_isFormatDuration.ts +4 -4
  129. package/src/internal/_isFormatEmail.ts +4 -4
  130. package/src/internal/_isFormatHostname.ts +4 -4
  131. package/src/internal/_isFormatIdnEmail.ts +4 -4
  132. package/src/internal/_isFormatIdnHostname.ts +4 -4
  133. package/src/internal/_isFormatIpv4.ts +4 -4
  134. package/src/internal/_isFormatIpv6.ts +4 -4
  135. package/src/internal/_isFormatIri.ts +3 -3
  136. package/src/internal/_isFormatIriReference.ts +4 -4
  137. package/src/internal/_isFormatJsonPointer.ts +3 -3
  138. package/src/internal/_isFormatPassword.ts +1 -1
  139. package/src/internal/_isFormatRegex.ts +8 -8
  140. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  141. package/src/internal/_isFormatTime.ts +4 -4
  142. package/src/internal/_isFormatUri.ts +6 -6
  143. package/src/internal/_isFormatUriReference.ts +5 -5
  144. package/src/internal/_isFormatUriTemplate.ts +4 -4
  145. package/src/internal/_isFormatUrl.ts +4 -4
  146. package/src/internal/_isFormatUuid.ts +3 -3
  147. package/src/internal/_isTypeFloat.ts +5 -5
  148. package/src/internal/_isTypeInt32.ts +5 -5
  149. package/src/internal/_isTypeInt64.ts +5 -5
  150. package/src/internal/_isTypeUint32.ts +5 -5
  151. package/src/internal/_isTypeUint64.ts +5 -5
  152. package/src/internal/_isUniqueItems.ts +159 -159
  153. package/src/internal/_jsonStringifyNumber.ts +12 -12
  154. package/src/internal/_jsonStringifyRest.ts +3 -3
  155. package/src/internal/_jsonStringifyString.ts +42 -42
  156. package/src/internal/_jsonStringifyTail.ts +2 -2
  157. package/src/internal/_llmApplicationFinalize.ts +20 -20
  158. package/src/internal/_miscCloneAny.ts +46 -46
  159. package/src/internal/_notationAny.ts +37 -37
  160. package/src/internal/_notationCamel.ts +13 -13
  161. package/src/internal/_notationPascal.ts +8 -8
  162. package/src/internal/_notationSnake.ts +43 -43
  163. package/src/internal/_randomArray.ts +21 -21
  164. package/src/internal/_randomBigint.ts +6 -6
  165. package/src/internal/_randomBoolean.ts +1 -1
  166. package/src/internal/_randomFormatByte.ts +3 -3
  167. package/src/internal/_randomFormatDate.ts +18 -18
  168. package/src/internal/_randomFormatDatetime.ts +16 -16
  169. package/src/internal/_randomFormatDuration.ts +27 -27
  170. package/src/internal/_randomFormatEmail.ts +11 -11
  171. package/src/internal/_randomFormatHostname.ts +6 -6
  172. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  173. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  174. package/src/internal/_randomFormatIpv4.ts +11 -11
  175. package/src/internal/_randomFormatIpv6.ts +11 -11
  176. package/src/internal/_randomFormatIri.ts +3 -3
  177. package/src/internal/_randomFormatIriReference.ts +3 -3
  178. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  179. package/src/internal/_randomFormatPassword.ts +8 -8
  180. package/src/internal/_randomFormatRegex.ts +4 -4
  181. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  182. package/src/internal/_randomFormatTime.ts +14 -14
  183. package/src/internal/_randomFormatUri.ts +3 -3
  184. package/src/internal/_randomFormatUriReference.ts +3 -3
  185. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  186. package/src/internal/_randomFormatUrl.ts +11 -11
  187. package/src/internal/_randomFormatUuid.ts +6 -6
  188. package/src/internal/_randomInteger.ts +53 -53
  189. package/src/internal/_randomNumber.ts +80 -80
  190. package/src/internal/_randomPattern.ts +10 -10
  191. package/src/internal/_randomPick.ts +9 -9
  192. package/src/internal/_randomString.ts +24 -24
  193. package/src/internal/_throwTypeGuardError.ts +5 -5
  194. package/src/internal/_validateReport.ts +13 -13
  195. package/src/internal/private/__notationCapitalize.ts +2 -2
  196. package/src/internal/private/__notationUnsnake.ts +24 -24
  197. package/src/json.ts +696 -696
  198. package/src/llm.ts +358 -335
  199. package/src/misc.ts +651 -651
  200. package/src/module.ts +936 -936
  201. package/src/notations.ts +820 -820
  202. package/src/programmers/AssertProgrammer.ts +454 -454
  203. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  204. package/src/programmers/FeatureProgrammer.ts +627 -627
  205. package/src/programmers/ImportProgrammer.ts +185 -185
  206. package/src/programmers/IsProgrammer.ts +273 -273
  207. package/src/programmers/RandomProgrammer.ts +1190 -1190
  208. package/src/programmers/TypiaProgrammer.ts +175 -175
  209. package/src/programmers/ValidateProgrammer.ts +448 -448
  210. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  211. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  212. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  213. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  214. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  215. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  216. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  217. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  218. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  219. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  220. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  221. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  222. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  223. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  224. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  225. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  226. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  227. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  228. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  229. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  230. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  231. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  232. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  233. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  234. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  235. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  236. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  237. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  238. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  239. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  240. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  241. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  242. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  243. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  244. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  245. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  246. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  247. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  248. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  249. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  250. package/src/programmers/internal/check_array_length.ts +47 -47
  251. package/src/programmers/internal/check_bigint.ts +50 -50
  252. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  253. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  254. package/src/programmers/internal/check_everything.ts +23 -23
  255. package/src/programmers/internal/check_native.ts +27 -27
  256. package/src/programmers/internal/check_number.ts +112 -112
  257. package/src/programmers/internal/check_object.ts +75 -75
  258. package/src/programmers/internal/check_string.ts +50 -50
  259. package/src/programmers/internal/check_template.ts +48 -48
  260. package/src/programmers/internal/check_union_array_like.ts +335 -335
  261. package/src/programmers/internal/decode_union_object.ts +116 -116
  262. package/src/programmers/internal/feature_object_entries.ts +61 -61
  263. package/src/programmers/internal/json_schema_alias.ts +47 -47
  264. package/src/programmers/internal/json_schema_array.ts +45 -45
  265. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  266. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  267. package/src/programmers/internal/json_schema_constant.ts +26 -26
  268. package/src/programmers/internal/json_schema_description.ts +12 -12
  269. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  270. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  271. package/src/programmers/internal/json_schema_native.ts +33 -33
  272. package/src/programmers/internal/json_schema_number.ts +15 -15
  273. package/src/programmers/internal/json_schema_object.ts +158 -158
  274. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  275. package/src/programmers/internal/json_schema_station.ts +185 -185
  276. package/src/programmers/internal/json_schema_string.ts +15 -15
  277. package/src/programmers/internal/json_schema_template.ts +55 -55
  278. package/src/programmers/internal/json_schema_title.ts +20 -20
  279. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  280. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  281. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  282. package/src/programmers/internal/prune_object_properties.ts +71 -71
  283. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  284. package/src/programmers/internal/stringify_native.ts +7 -7
  285. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  286. package/src/programmers/internal/template_to_pattern.ts +23 -23
  287. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  288. package/src/programmers/json/JsonApplicationProgrammer.ts +266 -266
  289. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  290. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  291. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  292. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  293. package/src/programmers/json/JsonSchemaProgrammer.ts +26 -26
  294. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  295. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  296. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  297. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  298. package/src/programmers/llm/LlmApplicationProgrammer.ts +401 -401
  299. package/src/programmers/llm/LlmModelPredicator.ts +127 -127
  300. package/src/programmers/llm/LlmParametersProgrammer.ts +93 -93
  301. package/src/programmers/llm/LlmSchemaProgrammer.ts +192 -192
  302. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  303. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  304. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  305. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  306. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  307. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  308. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  309. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  310. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  311. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  312. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  313. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  314. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  315. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  316. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  317. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  318. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  319. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  320. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  321. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  322. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  323. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  324. package/src/protobuf.ts +861 -861
  325. package/src/reflect.ts +50 -50
  326. package/src/schemas/json/IJsonApplication.ts +73 -73
  327. package/src/schemas/json/IJsonSchemaCollection.ts +29 -29
  328. package/src/schemas/json/IJsonSchemaUnit.ts +32 -32
  329. package/src/schemas/json/__IJsonApplication.ts +63 -63
  330. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  331. package/src/schemas/metadata/IMetadata.ts +35 -35
  332. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  333. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  334. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  335. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  336. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  337. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  338. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  339. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  340. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  341. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  342. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  343. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  344. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  345. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  346. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  347. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  348. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  349. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  350. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  351. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  352. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  353. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  354. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  355. package/src/schemas/metadata/Metadata.ts +687 -687
  356. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  357. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  358. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  359. package/src/schemas/metadata/MetadataArray.ts +49 -49
  360. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  361. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  362. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  363. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  364. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  365. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  366. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  367. package/src/schemas/metadata/MetadataMap.ts +48 -48
  368. package/src/schemas/metadata/MetadataNative.ts +44 -44
  369. package/src/schemas/metadata/MetadataObject.ts +48 -48
  370. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  371. package/src/schemas/metadata/MetadataParameter.ts +54 -54
  372. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  373. package/src/schemas/metadata/MetadataSet.ts +45 -45
  374. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  375. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  376. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  377. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  378. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  379. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  380. package/src/tags/Constant.ts +15 -15
  381. package/src/tags/ContentMediaType.ts +10 -10
  382. package/src/tags/Default.ts +22 -22
  383. package/src/tags/Example.ts +24 -24
  384. package/src/tags/Examples.ts +16 -16
  385. package/src/tags/ExclusiveMaximum.ts +23 -23
  386. package/src/tags/ExclusiveMinimum.ts +23 -23
  387. package/src/tags/Format.ts +50 -50
  388. package/src/tags/JsonSchemaPlugin.ts +8 -8
  389. package/src/tags/MaxItems.ts +12 -12
  390. package/src/tags/MaxLength.ts +12 -12
  391. package/src/tags/Maximum.ts +19 -19
  392. package/src/tags/MinItems.ts +12 -12
  393. package/src/tags/MinLength.ts +12 -12
  394. package/src/tags/Minimum.ts +19 -19
  395. package/src/tags/MultipleOf.ts +21 -21
  396. package/src/tags/Pattern.ts +31 -31
  397. package/src/tags/Sequence.ts +10 -10
  398. package/src/tags/TagBase.ts +82 -82
  399. package/src/tags/Type.ts +37 -37
  400. package/src/tags/UniqueItems.ts +14 -14
  401. package/src/tags/index.ts +21 -21
  402. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  403. package/src/transform.ts +35 -35
  404. package/src/transformers/CallExpressionTransformer.ts +554 -552
  405. package/src/transformers/FileTransformer.ts +136 -136
  406. package/src/transformers/IProgrammerProps.ts +11 -11
  407. package/src/transformers/ITransformOptions.ts +62 -62
  408. package/src/transformers/ITransformProps.ts +9 -9
  409. package/src/transformers/ITypiaContext.ts +18 -18
  410. package/src/transformers/ImportTransformer.ts +81 -81
  411. package/src/transformers/NoTransformConfigurationError.ts +18 -18
  412. package/src/transformers/NodeTransformer.ts +17 -17
  413. package/src/transformers/TransformerError.ts +60 -60
  414. package/src/transformers/features/AssertTransformer.ts +24 -24
  415. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  416. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  417. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  418. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  419. package/src/transformers/features/IsTransformer.ts +18 -18
  420. package/src/transformers/features/RandomTransformer.ts +41 -41
  421. package/src/transformers/features/ValidateTransformer.ts +18 -18
  422. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  423. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  424. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  425. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  426. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  427. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  428. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  429. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  430. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  431. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  432. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  433. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  434. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  435. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  436. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  437. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  438. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  439. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  440. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  441. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  442. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  443. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  444. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  445. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  446. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  447. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  448. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  449. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  450. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  451. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  452. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  453. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  454. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  455. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  456. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  457. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  458. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  459. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  460. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  461. package/src/transformers/features/json/JsonSchemaTransformer.ts +135 -135
  462. package/src/transformers/features/json/JsonSchemasTransformer.ts +145 -145
  463. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  464. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  465. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  466. package/src/transformers/features/llm/LlmApplicationTransformer.ts +145 -128
  467. package/src/transformers/features/llm/LlmControllerTransformer.ts +93 -0
  468. package/src/transformers/features/llm/LlmParametersTransformer.ts +102 -102
  469. package/src/transformers/features/llm/LlmSchemaTransformer.ts +170 -170
  470. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  471. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  472. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  473. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  474. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  475. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  476. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  477. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  478. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  479. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  480. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  481. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  482. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  483. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  484. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  485. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  486. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  487. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  488. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  489. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  490. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  491. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  492. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  493. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  494. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  495. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  496. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  497. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  498. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  499. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  500. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  501. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  502. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  503. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  504. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  505. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  506. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  507. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  508. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  509. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  510. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  511. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  512. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  513. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  514. package/src/transformers/internal/GenericTransformer.ts +101 -101
  515. package/src/typings/Atomic.ts +13 -13
  516. package/src/typings/ClassProperties.ts +5 -5
  517. package/src/typings/Customizable.ts +5 -5
  518. package/src/typings/Equal.ts +18 -18
  519. package/src/typings/IsTuple.ts +9 -9
  520. package/src/typings/NativeClass.ts +23 -23
  521. package/src/typings/OmitNever.ts +3 -3
  522. package/src/typings/ProtobufAtomic.ts +19 -19
  523. package/src/typings/SpecialFields.ts +3 -3
  524. package/src/typings/ValidationPipe.ts +9 -9
  525. package/src/typings/ValueOf.ts +20 -20
  526. package/src/typings/Writable.ts +11 -11
  527. package/src/utils/ArrayUtil.ts +41 -41
  528. package/src/utils/Escaper.ts +50 -50
  529. package/src/utils/MapUtil.ts +14 -14
  530. package/src/utils/NamingConvention.ts +94 -94
  531. package/src/utils/PatternUtil.ts +29 -29
  532. package/src/utils/ProtobufNameEncoder.ts +32 -32
  533. package/src/utils/Singleton.ts +16 -16
  534. package/src/utils/StringUtil.ts +16 -16
@@ -1,13 +1,13 @@
1
- import { TypeGuardError } from "../TypeGuardError";
2
-
3
- export const _assertGuard = (
4
- exceptionable: boolean,
5
- props: TypeGuardError.IProps,
6
- factory?: (props: TypeGuardError.IProps) => Error,
7
- ): false => {
8
- if (exceptionable === true) {
9
- if (factory) throw factory(props);
10
- else throw new TypeGuardError(props);
11
- }
12
- return false;
13
- };
1
+ import { TypeGuardError } from "../TypeGuardError";
2
+
3
+ export const _assertGuard = (
4
+ exceptionable: boolean,
5
+ props: TypeGuardError.IProps,
6
+ factory?: (props: TypeGuardError.IProps) => Error,
7
+ ): false => {
8
+ if (exceptionable === true) {
9
+ if (factory) throw factory(props);
10
+ else throw new TypeGuardError(props);
11
+ }
12
+ return false;
13
+ };
@@ -1,134 +1,134 @@
1
- import { StandardSchemaV1 } from "@standard-schema/spec";
2
-
3
- import { IValidation } from "../IValidation";
4
-
5
- export const _createStandardSchema = <T>(
6
- fn: (input: unknown) => IValidation<T>,
7
- ): ((input: unknown) => IValidation<T>) & StandardSchemaV1<unknown, T> =>
8
- Object.assign(fn, {
9
- "~standard": {
10
- version: 1,
11
- vendor: "typia",
12
- validate: (input: unknown): StandardSchemaV1.Result<T> => {
13
- const result = fn(input);
14
- if (result.success) {
15
- return {
16
- value: result.data,
17
- } satisfies StandardSchemaV1.SuccessResult<T>;
18
- } else {
19
- return {
20
- issues: result.errors.map((error) => ({
21
- message: `expected ${error.expected}, got ${error.value}`,
22
- path: typiaPathToStandardSchemaPath(error.path),
23
- })),
24
- } satisfies StandardSchemaV1.FailureResult;
25
- }
26
- },
27
- },
28
- } satisfies StandardSchemaV1<unknown, T>);
29
-
30
- enum PathParserState {
31
- // Start of a new segment
32
- // When the parser is in this state,
33
- // the pointer must point `.` or `[` or equal to length of the path
34
- Start,
35
- // Parsing a property key (`.hoge`)
36
- Property,
37
- // Parsing a string key (`["fuga"]`)
38
- StringKey,
39
- // Parsing a number key (`[42]`)
40
- NumberKey,
41
- }
42
-
43
- const typiaPathToStandardSchemaPath = (
44
- path: string,
45
- ): ReadonlyArray<StandardSchemaV1.PathSegment> => {
46
- if (!path.startsWith("$input")) {
47
- throw new Error(`Invalid path: ${JSON.stringify(path)}`);
48
- }
49
-
50
- const segments: StandardSchemaV1.PathSegment[] = [];
51
- let currentSegment = "";
52
- let state: PathParserState = PathParserState.Start;
53
- let index = "$input".length - 1;
54
- while (index < path.length - 1) {
55
- index++;
56
- const char = path[index];
57
-
58
- if (state === PathParserState.Property) {
59
- if (char === "." || char === "[") {
60
- // End of property
61
- segments.push({
62
- key: currentSegment,
63
- });
64
- state = PathParserState.Start;
65
- } else if (index === path.length - 1) {
66
- // End of path
67
- currentSegment += char;
68
- segments.push({
69
- key: currentSegment,
70
- });
71
- index++;
72
- state = PathParserState.Start;
73
- } else {
74
- currentSegment += char;
75
- }
76
- } else if (state === PathParserState.StringKey) {
77
- if (char === '"') {
78
- // End of string key
79
- segments.push({
80
- key: JSON.parse(currentSegment + char),
81
- });
82
- // Skip `"` and `]`
83
- index += 2;
84
- state = PathParserState.Start;
85
- } else if (char === "\\") {
86
- // Skip the next character from parsing
87
- currentSegment += path[index];
88
- index++;
89
- currentSegment += path[index];
90
- } else {
91
- currentSegment += char;
92
- }
93
- } else if (state === PathParserState.NumberKey) {
94
- if (char === "]") {
95
- // End of number key
96
- segments.push({
97
- key: Number.parseInt(currentSegment),
98
- });
99
- index++;
100
- state = PathParserState.Start;
101
- } else {
102
- currentSegment += char;
103
- }
104
- }
105
-
106
- if (state === PathParserState.Start && index < path.length - 1) {
107
- const newChar = path[index];
108
- currentSegment = "";
109
- if (newChar === "[") {
110
- if (path[index + 1] === '"') {
111
- // Start of string key
112
- // NOTE: Typia uses JSON.stringify for this kind of keys, so `'` will not used as a string delimiter
113
- state = PathParserState.StringKey;
114
- index++;
115
- currentSegment = '"';
116
- } else {
117
- // Start of number key
118
- state = PathParserState.NumberKey;
119
- }
120
- } else if (newChar === ".") {
121
- // Start of property
122
- state = PathParserState.Property;
123
- } else {
124
- throw new Error("Unreachable: pointer points invalid character");
125
- }
126
- }
127
- }
128
-
129
- if (state !== PathParserState.Start) {
130
- throw new Error(`Failed to parse path: ${JSON.stringify(path)}`);
131
- }
132
-
133
- return segments;
134
- };
1
+ import { StandardSchemaV1 } from "@standard-schema/spec";
2
+
3
+ import { IValidation } from "../IValidation";
4
+
5
+ export const _createStandardSchema = <T>(
6
+ fn: (input: unknown) => IValidation<T>,
7
+ ): ((input: unknown) => IValidation<T>) & StandardSchemaV1<unknown, T> =>
8
+ Object.assign(fn, {
9
+ "~standard": {
10
+ version: 1,
11
+ vendor: "typia",
12
+ validate: (input: unknown): StandardSchemaV1.Result<T> => {
13
+ const result = fn(input);
14
+ if (result.success) {
15
+ return {
16
+ value: result.data,
17
+ } satisfies StandardSchemaV1.SuccessResult<T>;
18
+ } else {
19
+ return {
20
+ issues: result.errors.map((error) => ({
21
+ message: `expected ${error.expected}, got ${error.value}`,
22
+ path: typiaPathToStandardSchemaPath(error.path),
23
+ })),
24
+ } satisfies StandardSchemaV1.FailureResult;
25
+ }
26
+ },
27
+ },
28
+ } satisfies StandardSchemaV1<unknown, T>);
29
+
30
+ enum PathParserState {
31
+ // Start of a new segment
32
+ // When the parser is in this state,
33
+ // the pointer must point `.` or `[` or equal to length of the path
34
+ Start,
35
+ // Parsing a property key (`.hoge`)
36
+ Property,
37
+ // Parsing a string key (`["fuga"]`)
38
+ StringKey,
39
+ // Parsing a number key (`[42]`)
40
+ NumberKey,
41
+ }
42
+
43
+ const typiaPathToStandardSchemaPath = (
44
+ path: string,
45
+ ): ReadonlyArray<StandardSchemaV1.PathSegment> => {
46
+ if (!path.startsWith("$input")) {
47
+ throw new Error(`Invalid path: ${JSON.stringify(path)}`);
48
+ }
49
+
50
+ const segments: StandardSchemaV1.PathSegment[] = [];
51
+ let currentSegment = "";
52
+ let state: PathParserState = PathParserState.Start;
53
+ let index = "$input".length - 1;
54
+ while (index < path.length - 1) {
55
+ index++;
56
+ const char = path[index];
57
+
58
+ if (state === PathParserState.Property) {
59
+ if (char === "." || char === "[") {
60
+ // End of property
61
+ segments.push({
62
+ key: currentSegment,
63
+ });
64
+ state = PathParserState.Start;
65
+ } else if (index === path.length - 1) {
66
+ // End of path
67
+ currentSegment += char;
68
+ segments.push({
69
+ key: currentSegment,
70
+ });
71
+ index++;
72
+ state = PathParserState.Start;
73
+ } else {
74
+ currentSegment += char;
75
+ }
76
+ } else if (state === PathParserState.StringKey) {
77
+ if (char === '"') {
78
+ // End of string key
79
+ segments.push({
80
+ key: JSON.parse(currentSegment + char),
81
+ });
82
+ // Skip `"` and `]`
83
+ index += 2;
84
+ state = PathParserState.Start;
85
+ } else if (char === "\\") {
86
+ // Skip the next character from parsing
87
+ currentSegment += path[index];
88
+ index++;
89
+ currentSegment += path[index];
90
+ } else {
91
+ currentSegment += char;
92
+ }
93
+ } else if (state === PathParserState.NumberKey) {
94
+ if (char === "]") {
95
+ // End of number key
96
+ segments.push({
97
+ key: Number.parseInt(currentSegment),
98
+ });
99
+ index++;
100
+ state = PathParserState.Start;
101
+ } else {
102
+ currentSegment += char;
103
+ }
104
+ }
105
+
106
+ if (state === PathParserState.Start && index < path.length - 1) {
107
+ const newChar = path[index];
108
+ currentSegment = "";
109
+ if (newChar === "[") {
110
+ if (path[index + 1] === '"') {
111
+ // Start of string key
112
+ // NOTE: Typia uses JSON.stringify for this kind of keys, so `'` will not used as a string delimiter
113
+ state = PathParserState.StringKey;
114
+ index++;
115
+ currentSegment = '"';
116
+ } else {
117
+ // Start of number key
118
+ state = PathParserState.NumberKey;
119
+ }
120
+ } else if (newChar === ".") {
121
+ // Start of property
122
+ state = PathParserState.Property;
123
+ } else {
124
+ throw new Error("Unreachable: pointer points invalid character");
125
+ }
126
+ }
127
+ }
128
+
129
+ if (state !== PathParserState.Start) {
130
+ throw new Error(`Failed to parse path: ${JSON.stringify(path)}`);
131
+ }
132
+
133
+ return segments;
134
+ };
@@ -1,4 +1,4 @@
1
- import { TypeGuardError } from "../TypeGuardError";
2
-
3
- export const _functionalTypeGuardErrorFactory = (p: TypeGuardError.IProps) =>
4
- new TypeGuardError(p);
1
+ import { TypeGuardError } from "../TypeGuardError";
2
+
3
+ export const _functionalTypeGuardErrorFactory = (p: TypeGuardError.IProps) =>
4
+ new TypeGuardError(p);
@@ -1,4 +1,4 @@
1
- export const _httpFormDataReadArray = (
2
- input: any[],
3
- alternative: null | undefined,
4
- ) => (input.length ? input : alternative);
1
+ export const _httpFormDataReadArray = (
2
+ input: any[],
3
+ alternative: null | undefined,
4
+ ) => (input.length ? input : alternative);
@@ -1,18 +1,18 @@
1
- export const _httpFormDataReadBigint = (
2
- input: string | File | null,
3
- ): bigint | null | undefined =>
4
- input instanceof File
5
- ? (input as any)
6
- : !!input?.length
7
- ? input === "null"
8
- ? null
9
- : (toBigint(input) as any)
10
- : undefined;
11
-
12
- const toBigint = (str: string): bigint | string => {
13
- try {
14
- return BigInt(str);
15
- } catch {
16
- return str;
17
- }
18
- };
1
+ export const _httpFormDataReadBigint = (
2
+ input: string | File | null,
3
+ ): bigint | null | undefined =>
4
+ input instanceof File
5
+ ? (input as any)
6
+ : !!input?.length
7
+ ? input === "null"
8
+ ? null
9
+ : (toBigint(input) as any)
10
+ : undefined;
11
+
12
+ const toBigint = (str: string): bigint | string => {
13
+ try {
14
+ return BigInt(str);
15
+ } catch {
16
+ return str;
17
+ }
18
+ };
@@ -1,10 +1,10 @@
1
- export const _httpFormDataReadBlob = (
2
- input: string | Blob | null,
3
- ): Blob | null | undefined =>
4
- input instanceof Blob
5
- ? input
6
- : input === null
7
- ? undefined
8
- : input === "null"
9
- ? null
10
- : (input as any);
1
+ export const _httpFormDataReadBlob = (
2
+ input: string | Blob | null,
3
+ ): Blob | null | undefined =>
4
+ input instanceof Blob
5
+ ? input
6
+ : input === null
7
+ ? undefined
8
+ : input === "null"
9
+ ? null
10
+ : (input as any);
@@ -1,16 +1,16 @@
1
- export const _httpFormDataReadBoolean = (
2
- input: string | File | null,
3
- ): boolean | null | undefined =>
4
- input instanceof File
5
- ? (input as any)
6
- : input === null
7
- ? undefined
8
- : input === "null"
9
- ? null
10
- : input.length === 0
11
- ? true
12
- : input === "true" || input === "1"
13
- ? true
14
- : input === "false" || input === "0"
15
- ? false
16
- : (input as any); // wrong type
1
+ export const _httpFormDataReadBoolean = (
2
+ input: string | File | null,
3
+ ): boolean | null | undefined =>
4
+ input instanceof File
5
+ ? (input as any)
6
+ : input === null
7
+ ? undefined
8
+ : input === "null"
9
+ ? null
10
+ : input.length === 0
11
+ ? true
12
+ : input === "true" || input === "1"
13
+ ? true
14
+ : input === "false" || input === "0"
15
+ ? false
16
+ : (input as any); // wrong type
@@ -1,10 +1,10 @@
1
- export const _httpFormDataReadFile = (
2
- input: string | File | null,
3
- ): File | null | undefined =>
4
- input instanceof File
5
- ? input
6
- : input === null
7
- ? undefined
8
- : input === "null"
9
- ? null
10
- : (input as any);
1
+ export const _httpFormDataReadFile = (
2
+ input: string | File | null,
3
+ ): File | null | undefined =>
4
+ input instanceof File
5
+ ? input
6
+ : input === null
7
+ ? undefined
8
+ : input === "null"
9
+ ? null
10
+ : (input as any);
@@ -1,15 +1,15 @@
1
- export const _httpFormDataReadNumber = (
2
- input: string | File | null,
3
- ): number | null | undefined =>
4
- input instanceof File
5
- ? (input as any)
6
- : !!input?.length
7
- ? input === "null"
8
- ? null
9
- : (toNumber(input) as any)
10
- : undefined;
11
-
12
- const toNumber = (str: string): number | string => {
13
- const value: number = Number(str);
14
- return isNaN(value) ? str : value;
15
- };
1
+ export const _httpFormDataReadNumber = (
2
+ input: string | File | null,
3
+ ): number | null | undefined =>
4
+ input instanceof File
5
+ ? (input as any)
6
+ : !!input?.length
7
+ ? input === "null"
8
+ ? null
9
+ : (toNumber(input) as any)
10
+ : undefined;
11
+
12
+ const toNumber = (str: string): number | string => {
13
+ const value: number = Number(str);
14
+ return isNaN(value) ? str : value;
15
+ };
@@ -1,10 +1,10 @@
1
- export const _httpFormDataReadString = (
2
- input: string | File | null,
3
- ): string | null | undefined =>
4
- input instanceof File
5
- ? (input as any)
6
- : input === null
7
- ? undefined
8
- : input === "null"
9
- ? null
10
- : input;
1
+ export const _httpFormDataReadString = (
2
+ input: string | File | null,
3
+ ): string | null | undefined =>
4
+ input instanceof File
5
+ ? (input as any)
6
+ : input === null
7
+ ? undefined
8
+ : input === "null"
9
+ ? null
10
+ : input;
@@ -1,10 +1,10 @@
1
- export const _httpHeaderReadBigint = (value: string | undefined) =>
2
- value !== undefined ? toBigint(value) : undefined;
3
-
4
- const toBigint = (str: string): bigint | string => {
5
- try {
6
- return BigInt(str);
7
- } catch {
8
- return str;
9
- }
10
- };
1
+ export const _httpHeaderReadBigint = (value: string | undefined) =>
2
+ value !== undefined ? toBigint(value) : undefined;
3
+
4
+ const toBigint = (str: string): bigint | string => {
5
+ try {
6
+ return BigInt(str);
7
+ } catch {
8
+ return str;
9
+ }
10
+ };
@@ -1,8 +1,8 @@
1
- export const _httpHeaderReadBoolean = (value: string | undefined) =>
2
- value !== undefined
3
- ? value === "true"
4
- ? true
5
- : value === "false"
6
- ? false
7
- : value
8
- : undefined;
1
+ export const _httpHeaderReadBoolean = (value: string | undefined) =>
2
+ value !== undefined
3
+ ? value === "true"
4
+ ? true
5
+ : value === "false"
6
+ ? false
7
+ : value
8
+ : undefined;
@@ -1,7 +1,7 @@
1
- export const _httpHeaderReadNumber = (value: string | undefined) =>
2
- value !== undefined ? toNumber(value) : undefined;
3
-
4
- const toNumber = (str: string): number | string => {
5
- const value: number = Number(str);
6
- return isNaN(value) ? str : value;
7
- };
1
+ export const _httpHeaderReadNumber = (value: string | undefined) =>
2
+ value !== undefined ? toNumber(value) : undefined;
3
+
4
+ const toNumber = (str: string): number | string => {
5
+ const value: number = Number(str);
6
+ return isNaN(value) ? str : value;
7
+ };
@@ -1,10 +1,10 @@
1
- export const _httpParameterReadBigint = (value: string) =>
2
- value !== "null" ? toBigint(value) : null;
3
-
4
- const toBigint = (str: string): bigint | string => {
5
- try {
6
- return BigInt(str);
7
- } catch {
8
- return str;
9
- }
10
- };
1
+ export const _httpParameterReadBigint = (value: string) =>
2
+ value !== "null" ? toBigint(value) : null;
3
+
4
+ const toBigint = (str: string): bigint | string => {
5
+ try {
6
+ return BigInt(str);
7
+ } catch {
8
+ return str;
9
+ }
10
+ };
@@ -1,8 +1,8 @@
1
- export const _httpParameterReadBoolean = (value: string) =>
2
- value !== "null"
3
- ? value === "true" || value === "1"
4
- ? true
5
- : value === "false" || value === "0"
6
- ? false
7
- : value
8
- : null;
1
+ export const _httpParameterReadBoolean = (value: string) =>
2
+ value !== "null"
3
+ ? value === "true" || value === "1"
4
+ ? true
5
+ : value === "false" || value === "0"
6
+ ? false
7
+ : value
8
+ : null;
@@ -1,7 +1,7 @@
1
- export const _httpParameterReadNumber = (value: string) =>
2
- value !== "null" ? toNumber(value) : null;
3
-
4
- const toNumber = (str: string): number | string => {
5
- const value: number = Number(str);
6
- return isNaN(value) ? str : value;
7
- };
1
+ export const _httpParameterReadNumber = (value: string) =>
2
+ value !== "null" ? toNumber(value) : null;
3
+
4
+ const toNumber = (str: string): number | string => {
5
+ const value: number = Number(str);
6
+ return isNaN(value) ? str : value;
7
+ };
@@ -1,2 +1,2 @@
1
- export const _httpParameterReadString = (value: string) =>
2
- value !== "null" ? value : null;
1
+ export const _httpParameterReadString = (value: string) =>
2
+ value !== "null" ? value : null;
@@ -1,12 +1,12 @@
1
- import { IReadableURLSearchParams } from "../IReadableURLSearchParams";
2
-
3
- export const _httpQueryParseURLSearchParams = (
4
- input: string | IReadableURLSearchParams,
5
- ): IReadableURLSearchParams => {
6
- if (typeof input === "string") {
7
- const index: number = input.indexOf("?");
8
- input = index === -1 ? "" : input.substring(index + 1);
9
- return new URLSearchParams(input);
10
- }
11
- return input;
12
- };
1
+ import { IReadableURLSearchParams } from "../IReadableURLSearchParams";
2
+
3
+ export const _httpQueryParseURLSearchParams = (
4
+ input: string | IReadableURLSearchParams,
5
+ ): IReadableURLSearchParams => {
6
+ if (typeof input === "string") {
7
+ const index: number = input.indexOf("?");
8
+ input = index === -1 ? "" : input.substring(index + 1);
9
+ return new URLSearchParams(input);
10
+ }
11
+ return input;
12
+ };
@@ -1,4 +1,4 @@
1
- export const _httpQueryReadArray = (
2
- input: any[],
3
- alternative: null | undefined,
4
- ) => (input.length ? input : alternative);
1
+ export const _httpQueryReadArray = (
2
+ input: any[],
3
+ alternative: null | undefined,
4
+ ) => (input.length ? input : alternative);
@@ -1,12 +1,12 @@
1
- export const _httpQueryReadBigint = (
2
- str: string | null,
3
- ): bigint | null | undefined =>
4
- !!str?.length ? (str === "null" ? null : (toBigint(str) as any)) : undefined;
5
-
6
- const toBigint = (str: string): bigint | string => {
7
- try {
8
- return BigInt(str);
9
- } catch {
10
- return str;
11
- }
12
- };
1
+ export const _httpQueryReadBigint = (
2
+ str: string | null,
3
+ ): bigint | null | undefined =>
4
+ !!str?.length ? (str === "null" ? null : (toBigint(str) as any)) : undefined;
5
+
6
+ const toBigint = (str: string): bigint | string => {
7
+ try {
8
+ return BigInt(str);
9
+ } catch {
10
+ return str;
11
+ }
12
+ };