typia 9.0.0 → 9.1.0-dev.20250408

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