typia 9.3.0-dev.20250511 → 9.3.0

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