typia 6.0.0-dev.20240122 → 6.0.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 (853) hide show
  1. package/README.md +2 -1
  2. package/lib/CamelCase.d.ts +2 -2
  3. package/lib/IRandomGenerator.d.ts +19 -5
  4. package/lib/PascalCase.d.ts +2 -2
  5. package/lib/Resolved.d.ts +1 -1
  6. package/lib/SnakeCase.d.ts +1 -1
  7. package/lib/TypeGuardError.js +4 -1
  8. package/lib/TypeGuardError.js.map +1 -1
  9. package/lib/executable/TypiaGenerateWizard.js +24 -23
  10. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  11. package/lib/executable/TypiaPatchWizard.js +9 -9
  12. package/lib/executable/TypiaPatchWizard.js.map +1 -1
  13. package/lib/executable/TypiaSetupWizard.js +31 -22
  14. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  15. package/lib/executable/setup/ArgumentParser.js +5 -5
  16. package/lib/executable/setup/ArgumentParser.js.map +1 -1
  17. package/lib/executable/setup/PackageManager.js +8 -8
  18. package/lib/executable/setup/PackageManager.js.map +1 -1
  19. package/lib/executable/setup/PluginConfigurator.js +5 -4
  20. package/lib/executable/setup/PluginConfigurator.js.map +1 -1
  21. package/lib/executable/typia.js +21 -21
  22. package/lib/executable/typia.js.map +1 -1
  23. package/lib/factories/CommentFactory.js +2 -0
  24. package/lib/factories/CommentFactory.js.map +1 -1
  25. package/lib/factories/IdentifierFactory.d.ts +1 -1
  26. package/lib/factories/IdentifierFactory.js +2 -0
  27. package/lib/factories/IdentifierFactory.js.map +1 -1
  28. package/lib/factories/LiteralFactory.js +1 -0
  29. package/lib/factories/LiteralFactory.js.map +1 -1
  30. package/lib/factories/MetadataCollection.js +19 -1
  31. package/lib/factories/MetadataCollection.js.map +1 -1
  32. package/lib/factories/MetadataCommentTagFactory.js +79 -39
  33. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  34. package/lib/factories/MetadataFactory.js +9 -1
  35. package/lib/factories/MetadataFactory.js.map +1 -1
  36. package/lib/factories/MetadataTypeTagFactory.js +61 -17
  37. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  38. package/lib/factories/MetadataTypeTagSchemaFactory.d.ts +4 -0
  39. package/lib/factories/MetadataTypeTagSchemaFactory.js +84 -0
  40. package/lib/factories/MetadataTypeTagSchemaFactory.js.map +1 -0
  41. package/lib/factories/ProtobufFactory.js +46 -1
  42. package/lib/factories/ProtobufFactory.js.map +1 -1
  43. package/lib/factories/TypeFactory.js +9 -0
  44. package/lib/factories/TypeFactory.js.map +1 -1
  45. package/lib/factories/internal/metadata/MetadataHelper.js +7 -1
  46. package/lib/factories/internal/metadata/MetadataHelper.js.map +1 -1
  47. package/lib/factories/internal/metadata/emend_metadata_atomics.js +15 -5
  48. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  49. package/lib/factories/internal/metadata/emplace_metadata_alias.js +2 -0
  50. package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -1
  51. package/lib/factories/internal/metadata/emplace_metadata_array_type.js +2 -0
  52. package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -1
  53. package/lib/factories/internal/metadata/emplace_metadata_object.js +18 -2
  54. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  55. package/lib/factories/internal/metadata/emplace_metadata_tuple.js +4 -0
  56. package/lib/factories/internal/metadata/emplace_metadata_tuple.js.map +1 -1
  57. package/lib/factories/internal/metadata/explore_metadata.js +2 -0
  58. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
  59. package/lib/factories/internal/metadata/iterate_metadata.js +4 -2
  60. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  61. package/lib/factories/internal/metadata/iterate_metadata_alias.js +1 -0
  62. package/lib/factories/internal/metadata/iterate_metadata_alias.js.map +1 -1
  63. package/lib/factories/internal/metadata/iterate_metadata_array.js +54 -1
  64. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
  65. package/lib/factories/internal/metadata/iterate_metadata_atomic.js +2 -0
  66. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  67. package/lib/factories/internal/metadata/iterate_metadata_constant.js +9 -2
  68. package/lib/factories/internal/metadata/iterate_metadata_constant.js.map +1 -1
  69. package/lib/factories/internal/metadata/{iterate_metadata_resolve.d.ts → iterate_metadata_escape.d.ts} +1 -1
  70. package/lib/factories/internal/metadata/{iterate_metadata_resolve.js → iterate_metadata_escape.js} +4 -4
  71. package/lib/factories/internal/metadata/iterate_metadata_escape.js.map +1 -0
  72. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +49 -138
  73. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  74. package/lib/factories/internal/metadata/iterate_metadata_native.js +20 -21
  75. package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
  76. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  77. package/lib/factories/internal/metadata/iterate_metadata_sort.js +49 -23
  78. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  79. package/lib/factories/internal/metadata/iterate_metadata_template.js +2 -0
  80. package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -1
  81. package/lib/functional/$FormDataReader/$FormDataReader.d.ts +7 -0
  82. package/lib/functional/$FormDataReader/$FormDataReader.js +86 -0
  83. package/lib/functional/$FormDataReader/$FormDataReader.js.map +1 -0
  84. package/lib/functional/$FormDataReader/index.d.ts +1 -0
  85. package/lib/functional/$FormDataReader/index.js +28 -0
  86. package/lib/functional/$FormDataReader/index.js.map +1 -0
  87. package/lib/functional/$HeadersReader/$HeadersReader.d.ts +4 -0
  88. package/lib/functional/$HeadersReader/$HeadersReader.js +36 -0
  89. package/lib/functional/$HeadersReader/$HeadersReader.js.map +1 -0
  90. package/lib/functional/$HeadersReader/index.d.ts +1 -0
  91. package/lib/functional/$HeadersReader/index.js +28 -0
  92. package/lib/functional/$HeadersReader/index.js.map +1 -0
  93. package/lib/functional/$ParameterReader/$ParameterReader.d.ts +4 -0
  94. package/lib/functional/$ParameterReader/$ParameterReader.js +36 -0
  95. package/lib/functional/$ParameterReader/$ParameterReader.js.map +1 -0
  96. package/lib/functional/$ParameterReader/index.d.ts +1 -0
  97. package/lib/functional/$ParameterReader/index.js +28 -0
  98. package/lib/functional/$ParameterReader/index.js.map +1 -0
  99. package/lib/functional/$ProtobufReader.d.ts +35 -1
  100. package/lib/functional/$ProtobufReader.js +13 -11
  101. package/lib/functional/$ProtobufReader.js.map +1 -1
  102. package/lib/functional/$ProtobufSizer.d.ts +36 -1
  103. package/lib/functional/$ProtobufSizer.js +28 -13
  104. package/lib/functional/$ProtobufSizer.js.map +1 -1
  105. package/lib/functional/$ProtobufWriter.d.ts +45 -1
  106. package/lib/functional/$ProtobufWriter.js +11 -9
  107. package/lib/functional/$ProtobufWriter.js.map +1 -1
  108. package/lib/functional/$QueryReader/$QueryReader.d.ts +6 -0
  109. package/lib/functional/$QueryReader/$QueryReader.js +55 -0
  110. package/lib/functional/$QueryReader/$QueryReader.js.map +1 -0
  111. package/lib/functional/$QueryReader/index.d.ts +1 -0
  112. package/lib/functional/$QueryReader/index.js +28 -0
  113. package/lib/functional/$QueryReader/index.js.map +1 -0
  114. package/lib/functional/$any.d.ts +1 -0
  115. package/lib/functional/$any.js +9 -0
  116. package/lib/functional/$any.js.map +1 -0
  117. package/lib/functional/$clone.d.ts +2 -1
  118. package/lib/functional/$clone.js +1 -1
  119. package/lib/functional/$clone.js.map +1 -1
  120. package/lib/functional/$convention.d.ts +1 -1
  121. package/lib/functional/$convention.js.map +1 -1
  122. package/lib/functional/$dictionary.d.ts +2 -0
  123. package/lib/functional/$dictionary.js +18 -0
  124. package/lib/functional/$dictionary.js.map +1 -0
  125. package/lib/functional/$every.d.ts +2 -0
  126. package/lib/functional/$every.js +12 -0
  127. package/lib/functional/$every.js.map +1 -0
  128. package/lib/functional/$guard.js +5 -2
  129. package/lib/functional/$guard.js.map +1 -1
  130. package/lib/functional/$is_between.d.ts +1 -1
  131. package/lib/functional/$is_between.js.map +1 -1
  132. package/lib/functional/$join.d.ts +1 -1
  133. package/lib/functional/$join.js.map +1 -1
  134. package/lib/functional/$number.d.ts +1 -1
  135. package/lib/functional/$number.js.map +1 -1
  136. package/lib/functional/$report.d.ts +2 -1
  137. package/lib/functional/$report.js.map +1 -1
  138. package/lib/functional/$rest.d.ts +1 -1
  139. package/lib/functional/$rest.js.map +1 -1
  140. package/lib/functional/$stoll.d.ts +1 -1
  141. package/lib/functional/$stoll.js.map +1 -1
  142. package/lib/functional/$string.js +20 -9
  143. package/lib/functional/$string.js.map +1 -1
  144. package/lib/functional/$strlen.d.ts +1 -1
  145. package/lib/functional/$strlen.js.map +1 -1
  146. package/lib/functional/$tail.js +3 -0
  147. package/lib/functional/$tail.js.map +1 -1
  148. package/lib/functional/$throws.d.ts +2 -1
  149. package/lib/functional/$throws.js.map +1 -1
  150. package/lib/functional/$varint.d.ts +6 -0
  151. package/lib/functional/$varint.js +100 -0
  152. package/lib/functional/$varint.js.map +1 -0
  153. package/lib/functional/$zigzag.d.ts +4 -0
  154. package/lib/functional/$zigzag.js +36 -0
  155. package/lib/functional/$zigzag.js.map +1 -0
  156. package/lib/functional/IProtobufWriter.d.ts +15 -1
  157. package/lib/functional/Namespace/functional.d.ts +4 -0
  158. package/lib/functional/Namespace/functional.js +9 -0
  159. package/lib/functional/Namespace/functional.js.map +1 -0
  160. package/lib/functional/Namespace/http.d.ts +8 -0
  161. package/lib/functional/Namespace/http.js +16 -0
  162. package/lib/functional/Namespace/http.js.map +1 -0
  163. package/lib/functional/Namespace/index.d.ts +30 -0
  164. package/lib/functional/Namespace/index.js +85 -0
  165. package/lib/functional/Namespace/index.js.map +1 -0
  166. package/lib/functional/Namespace/json.d.ts +9 -0
  167. package/lib/functional/Namespace/json.js +23 -0
  168. package/lib/functional/Namespace/json.js.map +1 -0
  169. package/lib/functional/Namespace/misc.d.ts +11 -0
  170. package/lib/functional/Namespace/misc.js +22 -0
  171. package/lib/functional/Namespace/misc.js.map +1 -0
  172. package/lib/functional/Namespace/notations.d.ts +18 -0
  173. package/lib/functional/Namespace/notations.js +26 -0
  174. package/lib/functional/Namespace/notations.js.map +1 -0
  175. package/lib/functional/Namespace/protobuf.d.ts +17 -0
  176. package/lib/functional/Namespace/protobuf.js +25 -0
  177. package/lib/functional/Namespace/protobuf.js.map +1 -0
  178. package/lib/functional/is.js +14 -0
  179. package/lib/functional/is.js.map +1 -0
  180. package/lib/functional.d.ts +526 -0
  181. package/lib/functional.js +195 -0
  182. package/lib/functional.js.map +1 -0
  183. package/lib/http.d.ts +265 -369
  184. package/lib/http.js +226 -19
  185. package/lib/http.js.map +1 -1
  186. package/lib/json.d.ts +81 -58
  187. package/lib/json.js +109 -14
  188. package/lib/json.js.map +1 -1
  189. package/lib/misc.d.ts +81 -38
  190. package/lib/misc.js +133 -16
  191. package/lib/misc.js.map +1 -1
  192. package/lib/module.d.ts +91 -38
  193. package/lib/module.js +102 -21
  194. package/lib/module.js.map +1 -1
  195. package/lib/notations.d.ts +106 -45
  196. package/lib/notations.js +188 -24
  197. package/lib/notations.js.map +1 -1
  198. package/lib/programmers/AssertProgrammer.d.ts +6 -1
  199. package/lib/programmers/AssertProgrammer.js +48 -5
  200. package/lib/programmers/AssertProgrammer.js.map +1 -1
  201. package/lib/programmers/CheckerProgrammer.js +57 -2
  202. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  203. package/lib/programmers/FeatureProgrammer.js +11 -0
  204. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  205. package/lib/programmers/IsProgrammer.js +10 -1
  206. package/lib/programmers/IsProgrammer.js.map +1 -1
  207. package/lib/programmers/RandomProgrammer.js +49 -4
  208. package/lib/programmers/RandomProgrammer.js.map +1 -1
  209. package/lib/programmers/TypiaProgrammer.js +41 -44
  210. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  211. package/lib/programmers/ValidateProgrammer.js +5 -5
  212. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  213. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.d.ts +14 -0
  214. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js +81 -0
  215. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js.map +1 -0
  216. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.d.ts +7 -0
  217. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +75 -0
  218. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -0
  219. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.d.ts +10 -0
  220. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +46 -0
  221. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -0
  222. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.d.ts +7 -0
  223. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.js +68 -0
  224. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.js.map +1 -0
  225. package/lib/programmers/functional/FunctionalIsParametersProgrammer.d.ts +7 -0
  226. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js +72 -0
  227. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js.map +1 -0
  228. package/lib/programmers/functional/FunctionalIsReturnProgrammer.d.ts +10 -0
  229. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js +46 -0
  230. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js.map +1 -0
  231. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.d.ts +11 -0
  232. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js +74 -0
  233. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js.map +1 -0
  234. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.d.ts +7 -0
  235. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +98 -0
  236. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -0
  237. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.d.ts +10 -0
  238. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +53 -0
  239. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -0
  240. package/lib/programmers/functional/internal/FunctionalGeneralProgrammer.d.ts +9 -0
  241. package/lib/programmers/functional/internal/FunctionalGeneralProgrammer.js +25 -0
  242. package/lib/programmers/functional/internal/FunctionalGeneralProgrammer.js.map +1 -0
  243. package/lib/programmers/helpers/AtomicPredicator.js +2 -3
  244. package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
  245. package/lib/programmers/helpers/FunctionImporeter.d.ts +1 -0
  246. package/lib/programmers/helpers/FunctionImporeter.js +18 -0
  247. package/lib/programmers/helpers/FunctionImporeter.js.map +1 -0
  248. package/lib/programmers/helpers/FunctionImporter.d.ts +2 -2
  249. package/lib/programmers/helpers/FunctionImporter.js +8 -24
  250. package/lib/programmers/helpers/FunctionImporter.js.map +1 -1
  251. package/lib/programmers/helpers/ProtobufUtil.js +2 -2
  252. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  253. package/lib/programmers/helpers/PruneJoiner.js +9 -5
  254. package/lib/programmers/helpers/PruneJoiner.js.map +1 -1
  255. package/lib/programmers/helpers/RandomJoiner.js +2 -0
  256. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  257. package/lib/programmers/helpers/RandomRanger.js +8 -0
  258. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  259. package/lib/programmers/helpers/StringifyJoinder.js +5 -1
  260. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
  261. package/lib/programmers/helpers/UnionExplorer.js +10 -0
  262. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  263. package/lib/programmers/helpers/UnionPredicator.js +5 -0
  264. package/lib/programmers/helpers/UnionPredicator.js.map +1 -1
  265. package/lib/programmers/helpers/disable_function_importer_declare.js +2 -4
  266. package/lib/programmers/helpers/disable_function_importer_declare.js.map +1 -1
  267. package/lib/programmers/http/HttpAssertFormDataProgrammer.d.ts +6 -0
  268. package/lib/programmers/http/HttpAssertFormDataProgrammer.js +47 -0
  269. package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -0
  270. package/lib/programmers/http/HttpAssertHeadersProgrammer.d.ts +1 -1
  271. package/lib/programmers/http/HttpAssertHeadersProgrammer.js +9 -3
  272. package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
  273. package/lib/programmers/http/HttpAssertQueryProgrammer.d.ts +1 -1
  274. package/lib/programmers/http/HttpAssertQueryProgrammer.js +9 -3
  275. package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
  276. package/lib/programmers/http/HttpFormDataProgrammer.d.ts +9 -0
  277. package/lib/programmers/http/HttpFormDataProgrammer.js +193 -0
  278. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -0
  279. package/lib/programmers/http/HttpHeadersProgrammer.js +27 -9
  280. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  281. package/lib/programmers/http/HttpIsFormDataProgrammer.d.ts +6 -0
  282. package/lib/programmers/http/HttpIsFormDataProgrammer.js +47 -0
  283. package/lib/programmers/http/HttpIsFormDataProgrammer.js.map +1 -0
  284. package/lib/programmers/http/HttpIsHeadersProgrammer.js +5 -3
  285. package/lib/programmers/http/HttpIsHeadersProgrammer.js.map +1 -1
  286. package/lib/programmers/http/HttpIsQueryProgrammer.js +5 -3
  287. package/lib/programmers/http/HttpIsQueryProgrammer.js.map +1 -1
  288. package/lib/programmers/http/HttpParameterProgrammer.js +4 -2
  289. package/lib/programmers/http/HttpParameterProgrammer.js.map +1 -1
  290. package/lib/programmers/http/HttpQueryProgrammer.js +20 -5
  291. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  292. package/lib/programmers/http/HttpValidateFormDataProgrammer.d.ts +6 -0
  293. package/lib/programmers/http/HttpValidateFormDataProgrammer.js +41 -0
  294. package/lib/programmers/http/HttpValidateFormDataProgrammer.js.map +1 -0
  295. package/lib/programmers/http/HttpValidateHeadersProgrammer.js +2 -2
  296. package/lib/programmers/http/HttpValidateHeadersProgrammer.js.map +1 -1
  297. package/lib/programmers/http/HttpValidateQueryProgrammer.js +2 -2
  298. package/lib/programmers/http/HttpValidateQueryProgrammer.js.map +1 -1
  299. package/lib/programmers/internal/application_array.js +10 -99
  300. package/lib/programmers/internal/application_array.js.map +1 -1
  301. package/lib/programmers/internal/application_boolean.js +8 -32
  302. package/lib/programmers/internal/application_boolean.js.map +1 -1
  303. package/lib/programmers/internal/application_escaped.d.ts +1 -4
  304. package/lib/programmers/internal/application_escaped.js +29 -22
  305. package/lib/programmers/internal/application_escaped.js.map +1 -1
  306. package/lib/programmers/internal/application_number.js +8 -137
  307. package/lib/programmers/internal/application_number.js.map +1 -1
  308. package/lib/programmers/internal/application_plugin.js +55 -0
  309. package/lib/programmers/internal/application_plugin.js.map +1 -0
  310. package/lib/programmers/internal/application_string.js +8 -107
  311. package/lib/programmers/internal/application_string.js.map +1 -1
  312. package/lib/programmers/internal/application_templates.js +7 -8
  313. package/lib/programmers/internal/application_templates.js.map +1 -1
  314. package/lib/programmers/internal/application_v30_alias.js +44 -0
  315. package/lib/programmers/internal/application_v30_alias.js.map +1 -0
  316. package/lib/programmers/internal/application_v30_constant.js +13 -0
  317. package/lib/programmers/internal/application_v30_constant.js.map +1 -0
  318. package/lib/programmers/internal/application_v30_native.js +34 -0
  319. package/lib/programmers/internal/application_v30_native.js.map +1 -0
  320. package/lib/programmers/internal/application_v30_object.js +154 -0
  321. package/lib/programmers/internal/application_v30_object.js.map +1 -0
  322. package/lib/programmers/internal/application_v30_schema.js +228 -0
  323. package/lib/programmers/internal/application_v30_schema.js.map +1 -0
  324. package/lib/programmers/internal/application_v30_tuple.js +33 -0
  325. package/lib/programmers/internal/application_v30_tuple.js.map +1 -0
  326. package/lib/programmers/internal/application_v31_alias.js +38 -0
  327. package/lib/programmers/internal/application_v31_alias.js.map +1 -0
  328. package/lib/programmers/internal/application_v31_constant.js +19 -0
  329. package/lib/programmers/internal/application_v31_constant.js.map +1 -0
  330. package/lib/programmers/internal/application_v31_native.js +29 -0
  331. package/lib/programmers/internal/application_v31_native.js.map +1 -0
  332. package/lib/programmers/internal/application_v31_object.js +146 -0
  333. package/lib/programmers/internal/application_v31_object.js.map +1 -0
  334. package/lib/programmers/internal/application_v31_schema.js +224 -0
  335. package/lib/programmers/internal/application_v31_schema.js.map +1 -0
  336. package/lib/programmers/internal/application_v31_tuple.js +22 -0
  337. package/lib/programmers/internal/application_v31_tuple.js.map +1 -0
  338. package/lib/programmers/internal/check_array_length.js +3 -0
  339. package/lib/programmers/internal/check_array_length.js.map +1 -1
  340. package/lib/programmers/internal/check_bigint.js +6 -0
  341. package/lib/programmers/internal/check_bigint.js.map +1 -1
  342. package/lib/programmers/internal/check_dynamic_key.js +7 -1
  343. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  344. package/lib/programmers/internal/check_dynamic_properties.js +29 -4
  345. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  346. package/lib/programmers/internal/check_everything.js +3 -0
  347. package/lib/programmers/internal/check_everything.js.map +1 -1
  348. package/lib/programmers/internal/check_native.js +3 -0
  349. package/lib/programmers/internal/check_native.js.map +1 -1
  350. package/lib/programmers/internal/check_number.js +8 -1
  351. package/lib/programmers/internal/check_number.js.map +1 -1
  352. package/lib/programmers/internal/check_object.js +9 -0
  353. package/lib/programmers/internal/check_object.js.map +1 -1
  354. package/lib/programmers/internal/check_string.js +6 -0
  355. package/lib/programmers/internal/check_string.js.map +1 -1
  356. package/lib/programmers/internal/check_template.js +7 -1
  357. package/lib/programmers/internal/check_template.js.map +1 -1
  358. package/lib/programmers/internal/check_union_array_like.js +4 -0
  359. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  360. package/lib/programmers/internal/decode_union_object.js +52 -10
  361. package/lib/programmers/internal/decode_union_object.js.map +1 -1
  362. package/lib/programmers/internal/feature_object_entries.js +3 -0
  363. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  364. package/lib/programmers/internal/metadata_to_pattern.js +10 -4
  365. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  366. package/lib/programmers/internal/prune_object_properties.js +3 -0
  367. package/lib/programmers/internal/prune_object_properties.js.map +1 -1
  368. package/lib/programmers/internal/random_custom.js +3 -0
  369. package/lib/programmers/internal/random_custom.js.map +1 -1
  370. package/lib/programmers/internal/stringify_dynamic_properties.js +11 -0
  371. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  372. package/lib/programmers/internal/stringify_native.js +3 -0
  373. package/lib/programmers/internal/stringify_native.js.map +1 -1
  374. package/lib/programmers/internal/stringify_regular_properties.js +7 -0
  375. package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
  376. package/lib/programmers/internal/template_to_pattern.js +3 -0
  377. package/lib/programmers/internal/template_to_pattern.js.map +1 -1
  378. package/lib/programmers/json/JsonApplicationProgrammer.d.ts +2 -5
  379. package/lib/programmers/json/JsonApplicationProgrammer.js +85 -34
  380. package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
  381. package/lib/programmers/json/JsonAssertParseProgrammer.d.ts +1 -1
  382. package/lib/programmers/json/JsonAssertParseProgrammer.js +11 -3
  383. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  384. package/lib/programmers/json/JsonAssertStringifyProgrammer.d.ts +1 -1
  385. package/lib/programmers/json/JsonAssertStringifyProgrammer.js +9 -3
  386. package/lib/programmers/json/JsonAssertStringifyProgrammer.js.map +1 -1
  387. package/lib/programmers/json/JsonIsParseProgrammer.js +3 -1
  388. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  389. package/lib/programmers/json/JsonStringifyProgrammer.js +43 -4
  390. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  391. package/lib/programmers/misc/MiscAssertCloneProgrammer.d.ts +1 -1
  392. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +11 -3
  393. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  394. package/lib/programmers/misc/MiscAssertPruneProgrammer.d.ts +1 -1
  395. package/lib/programmers/misc/MiscAssertPruneProgrammer.js +9 -3
  396. package/lib/programmers/misc/MiscAssertPruneProgrammer.js.map +1 -1
  397. package/lib/programmers/misc/MiscCloneProgrammer.js +30 -4
  398. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  399. package/lib/programmers/misc/MiscIsCloneProgrammer.js +3 -1
  400. package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
  401. package/lib/programmers/misc/MiscLiteralsProgrammer.js +1 -2
  402. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  403. package/lib/programmers/misc/MiscPruneProgrammer.js +21 -1
  404. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  405. package/lib/programmers/notations/NotationAssertGeneralProgrammer.d.ts +1 -1
  406. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js +9 -3
  407. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js.map +1 -1
  408. package/lib/programmers/notations/NotationGeneralProgrammer.js +189 -175
  409. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  410. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.d.ts +1 -1
  411. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +9 -3
  412. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  413. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.d.ts +1 -1
  414. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js +9 -3
  415. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js.map +1 -1
  416. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +16 -4
  417. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  418. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +39 -19
  419. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  420. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +3 -1
  421. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
  422. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +7 -1
  423. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  424. package/lib/protobuf.d.ts +72 -31
  425. package/lib/protobuf.js +136 -16
  426. package/lib/protobuf.js.map +1 -1
  427. package/lib/reflect.d.ts +4 -2
  428. package/lib/reflect.js +8 -1
  429. package/lib/reflect.js.map +1 -1
  430. package/lib/schemas/json/IJsonApplication.d.ts +13 -7
  431. package/lib/schemas/metadata/IMetadataConstant.d.ts +2 -1
  432. package/lib/schemas/metadata/IMetadataConstantValue.d.ts +6 -0
  433. package/lib/schemas/metadata/IMetadataConstantValue.js +3 -0
  434. package/lib/schemas/metadata/IMetadataConstantValue.js.map +1 -0
  435. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +1 -0
  436. package/lib/schemas/metadata/Metadata.d.ts +1 -1
  437. package/lib/schemas/metadata/Metadata.js +84 -8
  438. package/lib/schemas/metadata/Metadata.js.map +1 -1
  439. package/lib/schemas/metadata/MetadataAlias.js +13 -1
  440. package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
  441. package/lib/schemas/metadata/MetadataApplication.js +7 -1
  442. package/lib/schemas/metadata/MetadataApplication.js.map +1 -1
  443. package/lib/schemas/metadata/MetadataArray.js +4 -1
  444. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  445. package/lib/schemas/metadata/MetadataArrayType.js +10 -1
  446. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -1
  447. package/lib/schemas/metadata/MetadataAtomic.js +20 -17
  448. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
  449. package/lib/schemas/metadata/MetadataComponents.js +4 -1
  450. package/lib/schemas/metadata/MetadataComponents.js.map +1 -1
  451. package/lib/schemas/metadata/MetadataConstant.d.ts +2 -1
  452. package/lib/schemas/metadata/MetadataConstant.js +5 -9
  453. package/lib/schemas/metadata/MetadataConstant.js.map +1 -1
  454. package/lib/schemas/metadata/MetadataConstantValue.d.ts +13 -0
  455. package/lib/schemas/metadata/MetadataConstantValue.js +44 -0
  456. package/lib/schemas/metadata/MetadataConstantValue.js.map +1 -0
  457. package/lib/schemas/metadata/MetadataEscaped.js +10 -1
  458. package/lib/schemas/metadata/MetadataEscaped.js.map +1 -1
  459. package/lib/schemas/metadata/MetadataObject.js +28 -1
  460. package/lib/schemas/metadata/MetadataObject.js.map +1 -1
  461. package/lib/schemas/metadata/MetadataProperty.js +13 -1
  462. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  463. package/lib/schemas/metadata/MetadataTuple.js +7 -1
  464. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  465. package/lib/schemas/metadata/MetadataTupleType.js +7 -1
  466. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -1
  467. package/lib/tags/Constant.d.ts +10 -0
  468. package/lib/{schemas/json/IJsonSchema.js → tags/Constant.js} +1 -1
  469. package/lib/tags/Constant.js.map +1 -0
  470. package/lib/tags/ContentMediaType.d.ts +9 -0
  471. package/lib/{schemas/json/IJsonComponents.js → tags/ContentMediaType.js} +1 -1
  472. package/lib/tags/ContentMediaType.js.map +1 -0
  473. package/lib/tags/Default.d.ts +3 -0
  474. package/lib/tags/ExclusiveMaximum.d.ts +4 -0
  475. package/lib/tags/ExclusiveMinimum.d.ts +4 -0
  476. package/lib/tags/Format.d.ts +10 -3
  477. package/lib/tags/JsonSchemaPlugin.d.ts +7 -0
  478. package/lib/tags/JsonSchemaPlugin.js +3 -0
  479. package/lib/tags/JsonSchemaPlugin.js.map +1 -0
  480. package/lib/tags/MaxItems.d.ts +3 -0
  481. package/lib/tags/MaxLength.d.ts +3 -0
  482. package/lib/tags/Maximum.d.ts +3 -0
  483. package/lib/tags/MinItems.d.ts +3 -0
  484. package/lib/tags/MinLength.d.ts +3 -0
  485. package/lib/tags/Minimum.d.ts +3 -0
  486. package/lib/tags/MultipleOf.d.ts +3 -0
  487. package/lib/tags/Pattern.d.ts +3 -0
  488. package/lib/tags/TagBase.d.ts +6 -2
  489. package/lib/tags/Type.d.ts +3 -0
  490. package/lib/tags/index.d.ts +3 -0
  491. package/lib/tags/index.js +3 -0
  492. package/lib/tags/index.js.map +1 -1
  493. package/lib/tags/internal/FormatCheatSheet.d.ts +27 -0
  494. package/lib/tags/internal/FormatCheatSheet.js +38 -0
  495. package/lib/tags/internal/FormatCheatSheet.js.map +1 -0
  496. package/lib/transformers/CallExpressionTransformer.js +195 -1
  497. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  498. package/lib/transformers/FileTransformer.js +2 -0
  499. package/lib/transformers/FileTransformer.js.map +1 -1
  500. package/lib/transformers/TransformerError.js +2 -1
  501. package/lib/transformers/TransformerError.js.map +1 -1
  502. package/lib/transformers/features/AssertTransformer.js.map +1 -1
  503. package/lib/transformers/features/CreateAssertTransformer.js.map +1 -1
  504. package/lib/transformers/features/CreateRandomTransformer.js +3 -0
  505. package/lib/transformers/features/CreateRandomTransformer.js.map +1 -1
  506. package/lib/transformers/features/RandomTransformer.js +3 -0
  507. package/lib/transformers/features/RandomTransformer.js.map +1 -1
  508. package/lib/transformers/features/functional/FunctionalGenericTransformer.d.ts +10 -0
  509. package/lib/transformers/features/functional/FunctionalGenericTransformer.js +39 -0
  510. package/lib/transformers/features/functional/FunctionalGenericTransformer.js.map +1 -0
  511. package/lib/transformers/features/http/CreateHttpAssertFormDataTransformer.d.ts +4 -0
  512. package/lib/transformers/features/http/CreateHttpAssertFormDataTransformer.js +12 -0
  513. package/lib/transformers/features/http/CreateHttpAssertFormDataTransformer.js.map +1 -0
  514. package/lib/transformers/features/http/CreateHttpFormDataTransformer.d.ts +4 -0
  515. package/lib/transformers/features/http/CreateHttpFormDataTransformer.js +10 -0
  516. package/lib/transformers/features/http/CreateHttpFormDataTransformer.js.map +1 -0
  517. package/lib/transformers/features/http/CreateHttpIsFormDataTransformer.d.ts +4 -0
  518. package/lib/transformers/features/http/CreateHttpIsFormDataTransformer.js +10 -0
  519. package/lib/transformers/features/http/CreateHttpIsFormDataTransformer.js.map +1 -0
  520. package/lib/transformers/features/http/CreateHttpValidateFormDataTransformer.d.ts +4 -0
  521. package/lib/transformers/features/http/CreateHttpValidateFormDataTransformer.js +12 -0
  522. package/lib/transformers/features/http/CreateHttpValidateFormDataTransformer.js.map +1 -0
  523. package/lib/transformers/features/http/HttpAssertFormDataTransformer.d.ts +4 -0
  524. package/lib/transformers/features/http/HttpAssertFormDataTransformer.js +12 -0
  525. package/lib/transformers/features/http/HttpAssertFormDataTransformer.js.map +1 -0
  526. package/lib/transformers/features/http/HttpFormDataTransformer.d.ts +4 -0
  527. package/lib/transformers/features/http/HttpFormDataTransformer.js +10 -0
  528. package/lib/transformers/features/http/HttpFormDataTransformer.js.map +1 -0
  529. package/lib/transformers/features/http/HttpIsFormDataTransformer.d.ts +4 -0
  530. package/lib/transformers/features/http/HttpIsFormDataTransformer.js +10 -0
  531. package/lib/transformers/features/http/HttpIsFormDataTransformer.js.map +1 -0
  532. package/lib/transformers/features/http/HttpValidateFormDataTransformer.d.ts +4 -0
  533. package/lib/transformers/features/http/HttpValidateFormDataTransformer.js +12 -0
  534. package/lib/transformers/features/http/HttpValidateFormDataTransformer.js.map +1 -0
  535. package/lib/transformers/features/json/JsonApplicationTransformer.js +20 -17
  536. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  537. package/lib/transformers/features/misc/MiscLiteralsTransformer.js +3 -0
  538. package/lib/transformers/features/misc/MiscLiteralsTransformer.js.map +1 -1
  539. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js +3 -0
  540. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js.map +1 -1
  541. package/lib/transformers/features/reflect/ReflectMetadataTransformer.js +4 -0
  542. package/lib/transformers/features/reflect/ReflectMetadataTransformer.js.map +1 -1
  543. package/lib/transformers/internal/GenericTransformer.d.ts +1 -1
  544. package/lib/transformers/internal/GenericTransformer.js +9 -3
  545. package/lib/transformers/internal/GenericTransformer.js.map +1 -1
  546. package/lib/utils/ArrayUtil.d.ts +0 -1
  547. package/lib/utils/ArrayUtil.js +0 -29
  548. package/lib/utils/ArrayUtil.js.map +1 -1
  549. package/lib/utils/NamingConvention/NamingConvention.d.ts +3 -0
  550. package/lib/utils/{NamingConvention.js → NamingConvention/NamingConvention.js} +55 -51
  551. package/lib/utils/NamingConvention/NamingConvention.js.map +1 -0
  552. package/lib/utils/NamingConvention/index.d.ts +1 -0
  553. package/lib/utils/NamingConvention/index.js +28 -0
  554. package/lib/utils/NamingConvention/index.js.map +1 -0
  555. package/lib/utils/PatternUtil.js +3 -3
  556. package/lib/utils/PatternUtil.js.map +1 -1
  557. package/lib/utils/RandomGenerator/RandomGenerator.d.ts +31 -0
  558. package/lib/utils/RandomGenerator/RandomGenerator.js +167 -0
  559. package/lib/utils/RandomGenerator/RandomGenerator.js.map +1 -0
  560. package/lib/utils/RandomGenerator/index.d.ts +1 -0
  561. package/lib/utils/RandomGenerator/index.js +28 -0
  562. package/lib/utils/RandomGenerator/index.js.map +1 -0
  563. package/lib/utils/Singleton.js +1 -1
  564. package/lib/utils/StringUtil/StringUtil.d.ts +2 -0
  565. package/lib/utils/StringUtil/StringUtil.js +14 -0
  566. package/lib/utils/StringUtil/StringUtil.js.map +1 -0
  567. package/lib/utils/StringUtil/index.d.ts +1 -0
  568. package/lib/utils/StringUtil/index.js +28 -0
  569. package/lib/utils/StringUtil/index.js.map +1 -0
  570. package/package.json +14 -10
  571. package/src/CamelCase.ts +68 -61
  572. package/src/IRandomGenerator.ts +30 -5
  573. package/src/PascalCase.ts +68 -61
  574. package/src/Primitive.ts +48 -47
  575. package/src/Resolved.ts +61 -58
  576. package/src/SnakeCase.ts +67 -62
  577. package/src/executable/TypiaSetupWizard.ts +5 -5
  578. package/src/factories/IdentifierFactory.ts +1 -1
  579. package/src/factories/MetadataCommentTagFactory.ts +72 -157
  580. package/src/factories/MetadataFactory.ts +6 -1
  581. package/src/factories/MetadataTypeTagFactory.ts +38 -15
  582. package/src/factories/MetadataTypeTagSchemaFactory.ts +59 -0
  583. package/src/factories/ProtobufFactory.ts +9 -1
  584. package/src/factories/TypeFactory.ts +14 -14
  585. package/src/factories/internal/metadata/MetadataHelper.ts +7 -1
  586. package/src/factories/internal/metadata/emend_metadata_atomics.ts +15 -7
  587. package/src/factories/internal/metadata/emplace_metadata_object.ts +2 -1
  588. package/src/factories/internal/metadata/iterate_metadata.ts +2 -2
  589. package/src/factories/internal/metadata/iterate_metadata_array.ts +34 -1
  590. package/src/factories/internal/metadata/iterate_metadata_constant.ts +17 -2
  591. package/src/factories/internal/metadata/{iterate_metadata_resolve.ts → iterate_metadata_escape.ts} +1 -1
  592. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +51 -97
  593. package/src/factories/internal/metadata/iterate_metadata_native.ts +21 -20
  594. package/src/factories/internal/metadata/iterate_metadata_object.ts +0 -10
  595. package/src/factories/internal/metadata/iterate_metadata_sort.ts +15 -2
  596. package/src/functional/$FormDataReader/$FormDataReader.ts +83 -0
  597. package/src/functional/$FormDataReader/index.ts +1 -0
  598. package/src/functional/$HeadersReader/$HeadersReader.ts +26 -0
  599. package/src/functional/$HeadersReader/index.ts +1 -0
  600. package/src/functional/$ParameterReader/$ParameterReader.ts +29 -0
  601. package/src/functional/$ParameterReader/index.ts +1 -0
  602. package/src/functional/$ProtobufReader.ts +5 -19
  603. package/src/functional/$ProtobufSizer.ts +11 -21
  604. package/src/functional/$ProtobufWriter.ts +8 -33
  605. package/src/functional/$QueryReader/$QueryReader.ts +46 -0
  606. package/src/functional/$QueryReader/index.ts +1 -0
  607. package/src/functional/$any.ts +4 -0
  608. package/src/functional/$clone.ts +1 -4
  609. package/src/functional/$convention.ts +0 -3
  610. package/src/functional/$dictionary.ts +22 -0
  611. package/src/functional/$every.ts +11 -0
  612. package/src/functional/$guard.ts +6 -20
  613. package/src/functional/$is_between.ts +0 -3
  614. package/src/functional/$join.ts +0 -12
  615. package/src/functional/$number.ts +0 -3
  616. package/src/functional/$report.ts +0 -3
  617. package/src/functional/$rest.ts +0 -3
  618. package/src/functional/$stoll.ts +0 -3
  619. package/src/functional/$string.ts +3 -10
  620. package/src/functional/$strlen.ts +0 -3
  621. package/src/functional/$throws.ts +0 -3
  622. package/src/functional/$varint.ts +130 -0
  623. package/src/functional/$zigzag.ts +39 -0
  624. package/src/functional/IProtobufWriter.ts +0 -3
  625. package/src/functional/Namespace/functional.ts +5 -0
  626. package/src/functional/Namespace/http.ts +9 -0
  627. package/src/functional/Namespace/index.ts +76 -0
  628. package/src/functional/Namespace/json.ts +15 -0
  629. package/src/functional/Namespace/misc.ts +14 -0
  630. package/src/functional/Namespace/notations.ts +23 -0
  631. package/src/functional/Namespace/protobuf.ts +20 -0
  632. package/src/functional/is.ts +10 -0
  633. package/src/functional.ts +872 -0
  634. package/src/http.ts +566 -412
  635. package/src/json.ts +181 -80
  636. package/src/misc.ts +190 -60
  637. package/src/module.ts +205 -60
  638. package/src/notations.ts +312 -76
  639. package/src/programmers/AssertProgrammer.ts +90 -46
  640. package/src/programmers/CheckerProgrammer.ts +57 -3
  641. package/src/programmers/FeatureProgrammer.ts +27 -27
  642. package/src/programmers/IsProgrammer.ts +1 -1
  643. package/src/programmers/RandomProgrammer.ts +85 -22
  644. package/src/programmers/TypiaProgrammer.ts +10 -18
  645. package/src/programmers/ValidateProgrammer.ts +47 -48
  646. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +130 -0
  647. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +81 -0
  648. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +77 -0
  649. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +61 -0
  650. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +73 -0
  651. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +84 -0
  652. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +113 -0
  653. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +203 -0
  654. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +107 -0
  655. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +32 -0
  656. package/src/programmers/helpers/AtomicPredicator.ts +1 -2
  657. package/src/programmers/helpers/FunctionImporeter.ts +1 -0
  658. package/src/programmers/helpers/FunctionImporter.ts +17 -58
  659. package/src/programmers/helpers/ProtobufUtil.ts +2 -2
  660. package/src/programmers/helpers/PruneJoiner.ts +8 -10
  661. package/src/programmers/helpers/StringifyJoinder.ts +3 -2
  662. package/src/programmers/helpers/disable_function_importer_declare.ts +4 -5
  663. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +87 -0
  664. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +18 -6
  665. package/src/programmers/http/HttpAssertQueryProgrammer.ts +18 -6
  666. package/src/programmers/http/HttpFormDataProgrammer.ts +256 -0
  667. package/src/programmers/http/HttpHeadersProgrammer.ts +36 -25
  668. package/src/programmers/http/HttpIsFormDataProgrammer.ts +90 -0
  669. package/src/programmers/http/HttpIsHeadersProgrammer.ts +14 -6
  670. package/src/programmers/http/HttpIsQueryProgrammer.ts +14 -6
  671. package/src/programmers/http/HttpParameterProgrammer.ts +4 -6
  672. package/src/programmers/http/HttpQueryProgrammer.ts +38 -30
  673. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +75 -0
  674. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +2 -2
  675. package/src/programmers/http/HttpValidateQueryProgrammer.ts +2 -2
  676. package/src/programmers/internal/application_array.ts +27 -50
  677. package/src/programmers/internal/application_boolean.ts +18 -28
  678. package/src/programmers/internal/application_escaped.ts +40 -18
  679. package/src/programmers/internal/application_number.ts +17 -89
  680. package/src/programmers/internal/application_plugin.ts +19 -0
  681. package/src/programmers/internal/application_string.ts +17 -53
  682. package/src/programmers/internal/application_templates.ts +17 -16
  683. package/src/programmers/internal/application_v30_alias.ts +51 -0
  684. package/src/programmers/internal/application_v30_constant.ts +18 -0
  685. package/src/programmers/internal/application_v30_native.ts +28 -0
  686. package/src/programmers/internal/application_v30_object.ts +148 -0
  687. package/src/programmers/internal/application_v30_schema.ts +155 -0
  688. package/src/programmers/internal/application_v30_tuple.ts +33 -0
  689. package/src/programmers/internal/application_v31_alias.ts +43 -0
  690. package/src/programmers/internal/application_v31_constant.ts +22 -0
  691. package/src/programmers/internal/application_v31_native.ts +24 -0
  692. package/src/programmers/internal/application_v31_object.ts +141 -0
  693. package/src/programmers/internal/application_v31_schema.ts +150 -0
  694. package/src/programmers/internal/application_v31_tuple.ts +22 -0
  695. package/src/programmers/internal/check_dynamic_key.ts +5 -6
  696. package/src/programmers/internal/check_dynamic_properties.ts +20 -7
  697. package/src/programmers/internal/check_number.ts +35 -34
  698. package/src/programmers/internal/check_object.ts +5 -4
  699. package/src/programmers/internal/check_template.ts +1 -1
  700. package/src/programmers/internal/decode_union_object.ts +37 -16
  701. package/src/programmers/internal/feature_object_entries.ts +8 -8
  702. package/src/programmers/internal/metadata_to_pattern.ts +7 -6
  703. package/src/programmers/json/JsonApplicationProgrammer.ts +70 -37
  704. package/src/programmers/json/JsonAssertParseProgrammer.ts +21 -7
  705. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +9 -3
  706. package/src/programmers/json/JsonIsParseProgrammer.ts +12 -4
  707. package/src/programmers/json/JsonStringifyProgrammer.ts +33 -26
  708. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +21 -7
  709. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +9 -3
  710. package/src/programmers/misc/MiscCloneProgrammer.ts +25 -19
  711. package/src/programmers/misc/MiscIsCloneProgrammer.ts +12 -4
  712. package/src/programmers/misc/MiscLiteralsProgrammer.ts +9 -11
  713. package/src/programmers/misc/MiscPruneProgrammer.ts +1 -1
  714. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +9 -3
  715. package/src/programmers/notations/NotationGeneralProgrammer.ts +12 -23
  716. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +18 -6
  717. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +9 -3
  718. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +52 -41
  719. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +55 -58
  720. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -4
  721. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +3 -3
  722. package/src/protobuf.ts +211 -51
  723. package/src/reflect.ts +9 -3
  724. package/src/schemas/json/IJsonApplication.ts +14 -7
  725. package/src/schemas/metadata/IMetadataConstant.ts +3 -1
  726. package/src/schemas/metadata/IMetadataConstantValue.ts +8 -0
  727. package/src/schemas/metadata/IMetadataTypeTag.ts +1 -0
  728. package/src/schemas/metadata/Metadata.ts +30 -13
  729. package/src/schemas/metadata/MetadataAtomic.ts +17 -15
  730. package/src/schemas/metadata/MetadataConstant.ts +5 -17
  731. package/src/schemas/metadata/MetadataConstantValue.ts +53 -0
  732. package/src/tags/Constant.ts +15 -0
  733. package/src/tags/ContentMediaType.ts +10 -0
  734. package/src/tags/Default.ts +7 -4
  735. package/src/tags/ExclusiveMaximum.ts +6 -0
  736. package/src/tags/ExclusiveMinimum.ts +6 -0
  737. package/src/tags/Format.ts +10 -24
  738. package/src/tags/JsonSchemaPlugin.ts +8 -0
  739. package/src/tags/MaxItems.ts +3 -0
  740. package/src/tags/MaxLength.ts +3 -0
  741. package/src/tags/Maximum.ts +5 -0
  742. package/src/tags/MinItems.ts +3 -0
  743. package/src/tags/MinLength.ts +3 -0
  744. package/src/tags/Minimum.ts +5 -0
  745. package/src/tags/MultipleOf.ts +5 -0
  746. package/src/tags/Pattern.ts +3 -0
  747. package/src/tags/TagBase.ts +9 -1
  748. package/src/tags/Type.ts +19 -14
  749. package/src/tags/index.ts +3 -0
  750. package/src/tags/internal/FormatCheatSheet.ts +71 -0
  751. package/src/transformers/CallExpressionTransformer.ts +146 -1
  752. package/src/transformers/features/AssertTransformer.ts +2 -2
  753. package/src/transformers/features/CreateAssertTransformer.ts +2 -2
  754. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -0
  755. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +12 -0
  756. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +9 -0
  757. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +9 -0
  758. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +12 -0
  759. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +10 -0
  760. package/src/transformers/features/http/HttpFormDataTransformer.ts +9 -0
  761. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +9 -0
  762. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +10 -0
  763. package/src/transformers/features/json/JsonApplicationTransformer.ts +8 -18
  764. package/src/transformers/internal/GenericTransformer.ts +12 -4
  765. package/src/utils/ArrayUtil.ts +0 -2
  766. package/src/utils/NamingConvention/NamingConvention.ts +86 -0
  767. package/src/utils/NamingConvention/index.ts +1 -0
  768. package/src/utils/RandomGenerator/RandomGenerator.ts +105 -0
  769. package/src/utils/RandomGenerator/index.ts +1 -0
  770. package/src/utils/StringUtil/StringUtil.ts +7 -0
  771. package/src/utils/StringUtil/index.ts +1 -0
  772. package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +0 -1
  773. package/lib/functional/$HeadersReader.js +0 -35
  774. package/lib/functional/$HeadersReader.js.map +0 -1
  775. package/lib/functional/$ParameterReader.js +0 -35
  776. package/lib/functional/$ParameterReader.js.map +0 -1
  777. package/lib/functional/$QueryReader.js +0 -60
  778. package/lib/functional/$QueryReader.js.map +0 -1
  779. package/lib/functional/$camel.js +0 -7
  780. package/lib/functional/$camel.js.map +0 -1
  781. package/lib/functional/$generator.js +0 -6
  782. package/lib/functional/$generator.js.map +0 -1
  783. package/lib/functional/$pascal.js +0 -7
  784. package/lib/functional/$pascal.js.map +0 -1
  785. package/lib/functional/$snake.js +0 -7
  786. package/lib/functional/$snake.js.map +0 -1
  787. package/lib/programmers/internal/JSON_SCHEMA_PREFIX.d.ts +0 -1
  788. package/lib/programmers/internal/JSON_SCHEMA_PREFIX.js +0 -5
  789. package/lib/programmers/internal/JSON_SCHEMA_PREFIX.js.map +0 -1
  790. package/lib/programmers/internal/application_alias.d.ts +0 -5
  791. package/lib/programmers/internal/application_alias.js +0 -67
  792. package/lib/programmers/internal/application_alias.js.map +0 -1
  793. package/lib/programmers/internal/application_constant.js +0 -21
  794. package/lib/programmers/internal/application_constant.js.map +0 -1
  795. package/lib/programmers/internal/application_default.js +0 -40
  796. package/lib/programmers/internal/application_default.js.map +0 -1
  797. package/lib/programmers/internal/application_default_string.js +0 -63
  798. package/lib/programmers/internal/application_default_string.js.map +0 -1
  799. package/lib/programmers/internal/application_native.js +0 -33
  800. package/lib/programmers/internal/application_native.js.map +0 -1
  801. package/lib/programmers/internal/application_object.js +0 -202
  802. package/lib/programmers/internal/application_object.js.map +0 -1
  803. package/lib/programmers/internal/application_schema.js +0 -236
  804. package/lib/programmers/internal/application_schema.js.map +0 -1
  805. package/lib/programmers/internal/application_tuple.js +0 -46
  806. package/lib/programmers/internal/application_tuple.js.map +0 -1
  807. package/lib/schemas/json/IJsonComponents.d.ts +0 -18
  808. package/lib/schemas/json/IJsonComponents.js.map +0 -1
  809. package/lib/schemas/json/IJsonSchema.d.ts +0 -88
  810. package/lib/schemas/json/IJsonSchema.js.map +0 -1
  811. package/lib/utils/NamingConvention.d.ts +0 -5
  812. package/lib/utils/NamingConvention.js.map +0 -1
  813. package/lib/utils/RandomGenerator.d.ts +0 -1
  814. package/lib/utils/RandomGenerator.js +0 -66
  815. package/lib/utils/RandomGenerator.js.map +0 -1
  816. package/lib/utils/StringUtil.d.ts +0 -3
  817. package/lib/utils/StringUtil.js +0 -10
  818. package/lib/utils/StringUtil.js.map +0 -1
  819. package/src/functional/$HeadersReader.ts +0 -37
  820. package/src/functional/$ParameterReader.ts +0 -40
  821. package/src/functional/$QueryReader.ts +0 -65
  822. package/src/functional/$camel.ts +0 -8
  823. package/src/functional/$generator.ts +0 -6
  824. package/src/functional/$pascal.ts +0 -8
  825. package/src/functional/$snake.ts +0 -8
  826. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +0 -1
  827. package/src/programmers/internal/application_alias.ts +0 -74
  828. package/src/programmers/internal/application_constant.ts +0 -25
  829. package/src/programmers/internal/application_default.ts +0 -17
  830. package/src/programmers/internal/application_default_string.ts +0 -33
  831. package/src/programmers/internal/application_native.ts +0 -34
  832. package/src/programmers/internal/application_object.ts +0 -183
  833. package/src/programmers/internal/application_schema.ts +0 -165
  834. package/src/programmers/internal/application_tuple.ts +0 -54
  835. package/src/schemas/json/IJsonComponents.ts +0 -19
  836. package/src/schemas/json/IJsonSchema.ts +0 -122
  837. package/src/utils/NamingConvention.ts +0 -87
  838. package/src/utils/RandomGenerator.ts +0 -83
  839. package/src/utils/StringUtil.ts +0 -4
  840. /package/lib/functional/{$HeadersReader.d.ts → is.d.ts} +0 -0
  841. /package/lib/{functional/$ParameterReader.d.ts → programmers/internal/application_plugin.d.ts} +0 -0
  842. /package/lib/{functional/$QueryReader.d.ts → programmers/internal/application_v30_alias.d.ts} +0 -0
  843. /package/lib/{functional/$camel.d.ts → programmers/internal/application_v30_constant.d.ts} +0 -0
  844. /package/lib/{functional/$generator.d.ts → programmers/internal/application_v30_native.d.ts} +0 -0
  845. /package/lib/{functional/$pascal.d.ts → programmers/internal/application_v30_object.d.ts} +0 -0
  846. /package/lib/{functional/$snake.d.ts → programmers/internal/application_v30_schema.d.ts} +0 -0
  847. /package/lib/programmers/internal/{application_constant.d.ts → application_v30_tuple.d.ts} +0 -0
  848. /package/lib/programmers/internal/{application_default.d.ts → application_v31_alias.d.ts} +0 -0
  849. /package/lib/programmers/internal/{application_default_string.d.ts → application_v31_constant.d.ts} +0 -0
  850. /package/lib/programmers/internal/{application_native.d.ts → application_v31_native.d.ts} +0 -0
  851. /package/lib/programmers/internal/{application_object.d.ts → application_v31_object.d.ts} +0 -0
  852. /package/lib/programmers/internal/{application_schema.d.ts → application_v31_schema.d.ts} +0 -0
  853. /package/lib/programmers/internal/{application_tuple.d.ts → application_v31_tuple.d.ts} +0 -0
package/lib/json.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { IJsonApplication } from "./schemas/json/IJsonApplication";
2
2
  import { IValidation } from "./IValidation";
3
3
  import { Primitive } from "./Primitive";
4
+ import { TypeGuardError } from "./TypeGuardError";
4
5
  /**
5
6
  * > You must configure the generic argument `Types`.
6
7
  *
@@ -10,16 +11,9 @@ import { Primitive } from "./Primitive";
10
11
  * components. Note that, all of the named types are stored in the
11
12
  * {@link IJsonApplication.components} property for the `$ref` referencing.
12
13
  *
13
- * Also, `typia.json.application()` has two additional generic arguments.
14
- *
15
- * The 1st *Purpose* means the purpose determines the JSON schema definition spec.
16
- * For an example, `ajv` has an extra property "$recursiveRef" that are not
17
- * exists in the standard JSON schema definition spec. Otherwise, `swagger`
18
- * can't identify the tuple definition.
19
- *
20
- * The next *Surplus* means whether to allow surplus properties starting with
21
- * `x-typia-` or not. If `true`, the surplus properties like `x-typia-jsDocTags`
22
- * would be registered into the JSON schema, otherwise, not.
14
+ * Also, you can specify the OpenAPI version by configuring the second generic
15
+ * argument `Version`. For reference, the default version is `"3.1"`, and key
16
+ * different of `"3.0"` and `"3.1"` is whether supporting the tuple type or not.
23
17
  *
24
18
  * @template Types Tuple of target types
25
19
  * @template Purpose Purpose of the JSON schema
@@ -36,25 +30,17 @@ export declare function application(): never;
36
30
  * components. Note that, all of the named types are stored in the
37
31
  * {@link IJsonApplication.components} property for the `$ref` referencing.
38
32
  *
39
- * Also, `typia.json.application()` has two additional generic arguments.
40
- *
41
- * The 1st *Purpose* means the purpose determines the JSON schema definition spec.
42
- * For an example, `ajv` has an extra property "$recursiveRef" that are not
43
- * exists in the standard JSON schema definition spec. Otherwise, `swagger`
44
- * can't identify the tuple definition.
45
- *
46
- * The next *Surplus* means whether to allow surplus properties starting with
47
- * `x-typia-` or not. If `true`, the surplus properties like `x-typia-jsDocTags`
48
- * would be registered into the JSON schema, otherwise, not.
33
+ * Also, you can specify the OpenAPI version by configuring the second generic
34
+ * argument `Version`. For reference, the default version is `"3.1"`, and key
35
+ * different of `"3.0"` and `"3.1"` is whether supporting the tuple type or not.
49
36
  *
50
37
  * @template Types Tuple of target types
51
- * @template Purpose Purpose of the JSON schema
52
- * @template Surplus Allow surplus properties starting with `x-typia-` or not
38
+ * @template Version Version of OpenAPI specification. Default is 3.1
53
39
  * @return JSON schema application
54
40
  *
55
41
  * @author Jeongho Nam - https://github.com/samchon
56
42
  */
57
- export declare function application<Types extends unknown[], Purpose extends "ajv" | "swagger" = "swagger", Surplus extends boolean = false>(): IJsonApplication;
43
+ export declare function application<Types extends unknown[], Version extends "3.0" | "3.1" = "3.1">(): IJsonApplication<Version>;
58
44
  /**
59
45
  * > You must configure the generic argument `T`.
60
46
  *
@@ -65,16 +51,17 @@ export declare function application<Types extends unknown[], Purpose extends "aj
65
51
  * to a `T` typed instance with type assertion.
66
52
  *
67
53
  * In such reason, when parsed JSON string value is not matched with the type `T`, it
68
- * throws {@link TypeGuardError}. Otherwise, there's no problem on the parsed value,
69
- * the parsed value would be returned.
54
+ * throws {@link TypeGuardError} or custom error generated by *errorFactory*. Otherwise,
55
+ * there's no problem on the parsed value, the parsed value would be returned.
70
56
  *
71
57
  * @template T Expected type of parsed value
72
58
  * @param input JSON string
59
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
73
60
  * @returns Parsed value
74
61
  *
75
62
  * @author Jeongho Nam - https://github.com/samchon
76
63
  */
77
- export declare function assertParse(input: string): never;
64
+ declare function assertParse(input: string, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): never;
78
65
  /**
79
66
  * Safe `JSON.parse()` function with type assertion.
80
67
  *
@@ -83,16 +70,20 @@ export declare function assertParse(input: string): never;
83
70
  * to a `T` typed instance with type assertion.
84
71
  *
85
72
  * In such reason, when parsed JSON string value is not matched with the type `T`,
86
- * it throws {@link TypeGuardError}. Otherwise, there's no problem on the parsed
87
- * value, the parsed value would be returned.
73
+ * it throws {@link TypeGuardError} or custom error generated by *errorFactory*.
74
+ * Otherwise, there's no problem on the parsed value, the parsed value would be
75
+ * returned.
88
76
  *
89
77
  * @template T Expected type of parsed value
90
78
  * @param input JSON string
79
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
91
80
  * @returns Parsed value
92
81
  *
93
82
  * @author Jeongho Nam - https://github.com/samchon
94
83
  */
95
- export declare function assertParse<T>(input: string): Primitive<T>;
84
+ declare function assertParse<T>(input: string, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): Primitive<T>;
85
+ declare const assertParsePure: typeof assertParse;
86
+ export { assertParsePure as assertParse };
96
87
  /**
97
88
  * > You must configure the generic argument `T`.
98
89
  *
@@ -112,7 +103,7 @@ export declare function assertParse<T>(input: string): Primitive<T>;
112
103
  *
113
104
  * @author Jeongho Nam - https://github.com/samchon
114
105
  */
115
- export declare function isParse(input: string): never;
106
+ declare function isParse(input: string): never;
116
107
  /**
117
108
  * Safe `JSON.parse()` function with type checking.
118
109
  *
@@ -130,7 +121,9 @@ export declare function isParse(input: string): never;
130
121
  *
131
122
  * @author Jeongho Nam - https://github.com/samchon
132
123
  */
133
- export declare function isParse<T>(input: string): Primitive<T> | null;
124
+ declare function isParse<T>(input: string): Primitive<T> | null;
125
+ declare const isParsePure: typeof isParse;
126
+ export { isParsePure as isParse };
134
127
  /**
135
128
  * > You must configure the generic argument `T`.
136
129
  *
@@ -151,7 +144,7 @@ export declare function isParse<T>(input: string): Primitive<T> | null;
151
144
  *
152
145
  * @author Jeongho Nam - https://github.com/samchon
153
146
  */
154
- export declare function validateParse(input: string): never;
147
+ declare function validateParse(input: string): never;
155
148
  /**
156
149
  * Safe `JSON.parse()` function with detailed type validation.
157
150
  *
@@ -170,7 +163,9 @@ export declare function validateParse(input: string): never;
170
163
  *
171
164
  * @author Jeongho Nam - https://github.com/samchon
172
165
  */
173
- export declare function validateParse<T>(input: string): IValidation<Primitive<T>>;
166
+ declare function validateParse<T>(input: string): IValidation<Primitive<T>>;
167
+ declare const validateParsePure: typeof validateParse;
168
+ export { validateParsePure as validateParse };
174
169
  /**
175
170
  * 8x faster `JSON.stringify()` function.
176
171
  *
@@ -193,7 +188,9 @@ export declare function validateParse<T>(input: string): IValidation<Primitive<T
193
188
  *
194
189
  * @author Jeongho Nam - https://github.com/samchon
195
190
  */
196
- export declare function stringify<T>(input: T): string;
191
+ declare function stringify<T>(input: T): string;
192
+ declare const stringifyPure: typeof stringify;
193
+ export { stringifyPure as stringify };
197
194
  /**
198
195
  * 5x faster `JSON.stringify()` function with type assertion.
199
196
  *
@@ -202,8 +199,8 @@ export declare function stringify<T>(input: T): string;
202
199
  * JSON (JavaScript Object Notation) string, with type assertion.
203
200
  *
204
201
  * In such reason, when `input` value is not matched with the type `T`, it throws an
205
- * {@link TypeGuardError}. Otherwise, there's no problem on the `input` value, JSON
206
- * string would be returned.
202
+ * {@link TypeGuardError} or custom error generated by *errorFactory*. Otherwise,
203
+ * there's no problem on the `input` value, JSON string would be returned.
207
204
  *
208
205
  * For reference, with type assertion, it is even 5x times faster than the native
209
206
  * `JSON.stringify()` function. So, just enjoy the safe and fast JSON conversion
@@ -211,11 +208,12 @@ export declare function stringify<T>(input: T): string;
211
208
  *
212
209
  * @template T Type of the input value
213
210
  * @param input A value to be asserted and converted
211
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
214
212
  * @return JSON string value
215
213
  *
216
214
  * @author Jeongho Nam - https://github.com/samchon
217
215
  */
218
- export declare function assertStringify<T>(input: T): string;
216
+ declare function assertStringify<T>(input: T, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): string;
219
217
  /**
220
218
  * 5x faster `JSON.stringify()` function with type assertion.
221
219
  *
@@ -224,8 +222,8 @@ export declare function assertStringify<T>(input: T): string;
224
222
  * JSON (JavaScript Object Notation) string, with type assertion.
225
223
  *
226
224
  * In such reason, when `input` value is not matched with the type `T`, it throws an
227
- * {@link TypeGuardError}. Otherwise, there's no problem on the `input` value, JSON
228
- * string would be returned.
225
+ * {@link TypeGuardError} or custom error generated by *errorFactory*. Otherwise,
226
+ * there's no problem on the `input` value, JSON string would be returned.
229
227
  *
230
228
  * For reference, with type assertion, it is even 5x times faster than the native
231
229
  * `JSON.stringify()` function. So, just enjoy the safe and fast JSON conversion
@@ -233,11 +231,14 @@ export declare function assertStringify<T>(input: T): string;
233
231
  *
234
232
  * @template T Type of the input value
235
233
  * @param input A value to be asserted and converted
234
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
236
235
  * @return JSON string value
237
236
  *
238
237
  * @author Jeongho Nam - https://github.com/samchon
239
238
  */
240
- export declare function assertStringify<T>(input: T): unknown;
239
+ declare function assertStringify<T>(input: T, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): unknown;
240
+ declare const assertStringifyPure: typeof assertStringify;
241
+ export { assertStringifyPure as assertStringify };
241
242
  /**
242
243
  * 7x faster `JSON.stringify()` function with type checking.
243
244
  *
@@ -259,7 +260,7 @@ export declare function assertStringify<T>(input: T): unknown;
259
260
  *
260
261
  * @author Jeongho Nam - https://github.com/samchon
261
262
  */
262
- export declare function isStringify<T>(input: T): string | null;
263
+ declare function isStringify<T>(input: T): string | null;
263
264
  /**
264
265
  * 7x faster `JSON.stringify()` function with type checking.
265
266
  *
@@ -281,7 +282,9 @@ export declare function isStringify<T>(input: T): string | null;
281
282
  *
282
283
  * @author Jeongho Nam - https://github.com/samchon
283
284
  */
284
- export declare function isStringify<T>(input: unknown): string | null;
285
+ declare function isStringify<T>(input: unknown): string | null;
286
+ declare const isStringifyPure: typeof isStringify;
287
+ export { isStringifyPure as isStringify };
285
288
  /**
286
289
  * 5x faster `JSON.stringify()` function with detailed type validation.
287
290
  *
@@ -304,7 +307,7 @@ export declare function isStringify<T>(input: unknown): string | null;
304
307
  *
305
308
  * @author Jeongho Nam - https://github.com/samchon
306
309
  */
307
- export declare function validateStringify<T>(input: T): IValidation<string>;
310
+ declare function validateStringify<T>(input: T): IValidation<string>;
308
311
  /**
309
312
  * 5x faster `JSON.stringify()` function with detailed type validation.
310
313
  *
@@ -327,7 +330,9 @@ export declare function validateStringify<T>(input: T): IValidation<string>;
327
330
  *
328
331
  * @author Jeongho Nam - https://github.com/samchon
329
332
  */
330
- export declare function validateStringify<T>(input: unknown): IValidation<string>;
333
+ declare function validateStringify<T>(input: unknown): IValidation<string>;
334
+ declare const validateStringifyPure: typeof validateStringify;
335
+ export { validateStringifyPure as validateStringify };
331
336
  /**
332
337
  * Creates a reusable {@link isParse} function.
333
338
  *
@@ -337,7 +342,7 @@ export declare function validateStringify<T>(input: unknown): IValidation<string
337
342
  *
338
343
  * @author Jeongho Nam - https://github.com/samchon
339
344
  */
340
- export declare function createIsParse(): never;
345
+ declare function createIsParse(): never;
341
346
  /**
342
347
  * Creates a reusable {@link isParse} function.
343
348
  *
@@ -346,26 +351,32 @@ export declare function createIsParse(): never;
346
351
  *
347
352
  * @author Jeongho Nam - https://github.com/samchon
348
353
  */
349
- export declare function createIsParse<T>(): (input: string) => Primitive<T> | null;
354
+ declare function createIsParse<T>(): (input: string) => Primitive<T> | null;
355
+ declare const createIsParsePure: typeof createIsParse;
356
+ export { createIsParsePure as createIsParse };
350
357
  /**
351
358
  * Creates a reusable {@link assertParse} function.
352
359
  *
353
360
  * @danger You must configure the generic argument `T`
354
361
  * @returns Nothing until you configure the generic argument `T`
362
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
355
363
  * @throws compile error
356
364
  *
357
365
  * @author Jeongho Nam - https://github.com/samchon
358
366
  */
359
- export declare function createAssertParse(): never;
367
+ declare function createAssertParse(errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): never;
360
368
  /**
361
369
  * Creates a reusable {@link assertParse} function.
362
370
  *
363
371
  * @template T Expected type of parsed value
372
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
364
373
  * @returns A reusable `assertParse` function
365
374
  *
366
375
  * @author Jeongho Nam - https://github.com/samchon
367
376
  */
368
- export declare function createAssertParse<T>(): (input: string) => Primitive<T>;
377
+ declare function createAssertParse<T>(errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): (input: string) => Primitive<T>;
378
+ declare const createAssertParsePure: typeof createAssertParse;
379
+ export { createAssertParsePure as createAssertParse };
369
380
  /**
370
381
  * Creates a reusable {@link validateParse} function.
371
382
  *
@@ -375,7 +386,7 @@ export declare function createAssertParse<T>(): (input: string) => Primitive<T>;
375
386
  *
376
387
  * @author Jeongho Nam - https://github.com/samchon
377
388
  */
378
- export declare function createValidateParse(): never;
389
+ declare function createValidateParse(): never;
379
390
  /**
380
391
  * Creates a reusable {@link validateParse} function.
381
392
  *
@@ -384,7 +395,9 @@ export declare function createValidateParse(): never;
384
395
  *
385
396
  * @author Jeongho Nam - https://github.com/samchon
386
397
  */
387
- export declare function createValidateParse<T>(): (input: string) => IValidation<Primitive<T>>;
398
+ declare function createValidateParse<T>(): (input: string) => IValidation<Primitive<T>>;
399
+ declare const createValidateParsePure: typeof createValidateParse;
400
+ export { createValidateParsePure as createValidateParse };
388
401
  /**
389
402
  * Creates a reusable {@link stringify} function.
390
403
  *
@@ -394,7 +407,7 @@ export declare function createValidateParse<T>(): (input: string) => IValidation
394
407
  *
395
408
  * @author Jeongho Nam - https://github.com/samchon
396
409
  */
397
- export declare function createStringify(): never;
410
+ declare function createStringify(): never;
398
411
  /**
399
412
  * Creates a reusable {@link stringify} function.
400
413
  *
@@ -403,26 +416,32 @@ export declare function createStringify(): never;
403
416
  *
404
417
  * @author Jeongho Nam - https://github.com/samchon
405
418
  */
406
- export declare function createStringify<T>(): (input: T) => string;
419
+ declare function createStringify<T>(): (input: T) => string;
420
+ declare const createStringifyPure: typeof createStringify;
421
+ export { createStringifyPure as createStringify };
407
422
  /**
408
423
  * Creates a reusable {@link assertStringify} function.
409
424
  *
410
425
  * @danger You must configure the generic argument `T`
426
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
411
427
  * @returns Nothing until you configure the generic argument `T`
412
428
  * @throws compile error
413
429
  *
414
430
  * @author Jeongho Nam - https://github.com/samchon
415
431
  */
416
- export declare function createAssertStringify(): never;
432
+ declare function createAssertStringify(errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): never;
417
433
  /**
418
434
  * Creates a reusable {@link assertStringify} function.
419
435
  *
420
436
  * @template T Type of the input value
437
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
421
438
  * @returns A reusable `assertStringify` function
422
439
  *
423
440
  * @author Jeongho Nam - https://github.com/samchon
424
441
  */
425
- export declare function createAssertStringify<T>(): (input: unknown) => string;
442
+ declare function createAssertStringify<T>(errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): (input: unknown) => string;
443
+ declare const createAssertStringifyPure: typeof createAssertStringify;
444
+ export { createAssertStringifyPure as createAssertStringify };
426
445
  /**
427
446
  * Creates a reusable {@link isStringify} function.
428
447
  *
@@ -432,7 +451,7 @@ export declare function createAssertStringify<T>(): (input: unknown) => string;
432
451
  *
433
452
  * @author Jeongho Nam - https://github.com/samchon
434
453
  */
435
- export declare function createIsStringify(): never;
454
+ declare function createIsStringify(): never;
436
455
  /**
437
456
  * Creates a reusable {@link isStringify} function.
438
457
  *
@@ -441,7 +460,9 @@ export declare function createIsStringify(): never;
441
460
  *
442
461
  * @author Jeongho Nam - https://github.com/samchon
443
462
  */
444
- export declare function createIsStringify<T>(): (input: unknown) => string | null;
463
+ declare function createIsStringify<T>(): (input: unknown) => string | null;
464
+ declare const createIsStringifyPure: typeof createIsStringify;
465
+ export { createIsStringifyPure as createIsStringify };
445
466
  /**
446
467
  * Creates a reusable {@link validateStringify} function.
447
468
  *
@@ -451,7 +472,7 @@ export declare function createIsStringify<T>(): (input: unknown) => string | nul
451
472
  *
452
473
  * @author Jeongho Nam - https://github.com/samchon
453
474
  */
454
- export declare function createValidateStringify(): never;
475
+ declare function createValidateStringify(): never;
455
476
  /**
456
477
  * Creates a reusable {@link validateStringify} function.
457
478
  *
@@ -460,4 +481,6 @@ export declare function createValidateStringify(): never;
460
481
 
461
482
  * @author Jeongho Nam - https://github.com/samchon
462
483
  */
463
- export declare function createValidateStringify<T>(): (input: unknown) => IValidation<string>;
484
+ declare function createValidateStringify<T>(): (input: unknown) => IValidation<string>;
485
+ declare const createValidateStringifyPure: typeof createValidateStringify;
486
+ export { createValidateStringifyPure as createValidateStringify };
package/lib/json.js CHANGED
@@ -1,66 +1,161 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.createValidateStringify = exports.createIsStringify = exports.createAssertStringify = exports.createStringify = exports.createValidateParse = exports.createAssertParse = exports.createIsParse = exports.validateStringify = exports.isStringify = exports.assertStringify = exports.stringify = exports.validateParse = exports.isParse = exports.assertParse = exports.application = void 0;
27
+ var Namespace = __importStar(require("./functional/Namespace"));
28
+ /**
29
+ * @internal
30
+ */
4
31
  function application() {
5
32
  halt("application");
6
33
  }
7
34
  exports.application = application;
35
+ /**
36
+ * @internal
37
+ */
8
38
  function assertParse() {
9
39
  halt("assertParse");
10
40
  }
11
- exports.assertParse = assertParse;
41
+ var assertParsePure = /** @__PURE__ */ Object.assign(assertParse,
42
+ /** @__PURE__ */ Namespace.assert("json.assertParse"));
43
+ exports.assertParse = assertParsePure;
44
+ /**
45
+ * @internal
46
+ */
12
47
  function isParse() {
13
48
  halt("isParse");
14
49
  }
15
- exports.isParse = isParse;
50
+ var isParsePure = /** @__PURE__ */ Object.assign(isParse,
51
+ /** @__PURE__ */ Namespace.is());
52
+ exports.isParse = isParsePure;
53
+ /**
54
+ * @internal
55
+ */
16
56
  function validateParse() {
17
57
  halt("validateParse");
18
58
  }
19
- exports.validateParse = validateParse;
59
+ var validateParsePure = /** @__PURE__ */ Object.assign(validateParse, /** @__PURE__ */ Namespace.validate());
60
+ exports.validateParse = validateParsePure;
61
+ /**
62
+ * @internal
63
+ */
20
64
  function stringify() {
21
65
  halt("stringify");
22
66
  }
23
- exports.stringify = stringify;
67
+ var stringifyPure = /** @__PURE__ */ Object.assign(stringify,
68
+ /** @__PURE__ */ Namespace.json.stringify("stringify"));
69
+ exports.stringify = stringifyPure;
70
+ /**
71
+ * @internal
72
+ */
24
73
  function assertStringify() {
25
74
  halt("assertStringify");
26
75
  }
27
- exports.assertStringify = assertStringify;
76
+ var assertStringifyPure = /** @__PURE__ */ Object.assign(assertStringify,
77
+ /** @__PURE__ */ Namespace.assert("json.assertStringify"),
78
+ /** @__PURE__ */ Namespace.json.stringify("assertStringify"));
79
+ exports.assertStringify = assertStringifyPure;
80
+ /**
81
+ * @internal
82
+ */
28
83
  function isStringify() {
29
84
  halt("isStringify");
30
85
  }
31
- exports.isStringify = isStringify;
86
+ var isStringifyPure = /** @__PURE__ */ Object.assign(isStringify,
87
+ /** @__PURE__ */ Namespace.is(),
88
+ /** @__PURE__ */ Namespace.json.stringify("isStringify"));
89
+ exports.isStringify = isStringifyPure;
90
+ /**
91
+ * @internal
92
+ */
32
93
  function validateStringify() {
33
94
  halt("validateStringify");
34
95
  }
35
- exports.validateStringify = validateStringify;
96
+ var validateStringifyPure = /** @__PURE__ */ Object.assign(validateStringify,
97
+ /** @__PURE__ */ Namespace.validate(),
98
+ /** @__PURE__ */ Namespace.json.stringify("validateStringify"));
99
+ exports.validateStringify = validateStringifyPure;
100
+ /**
101
+ * @internal
102
+ */
36
103
  function createIsParse() {
37
104
  halt("createIsParse");
38
105
  }
39
- exports.createIsParse = createIsParse;
106
+ var createIsParsePure = /** @__PURE__ */ Object.assign(createIsParse, isParsePure);
107
+ exports.createIsParse = createIsParsePure;
108
+ /**
109
+ * @internal
110
+ */
40
111
  function createAssertParse() {
41
112
  halt("createAssertParse");
42
113
  }
43
- exports.createAssertParse = createAssertParse;
114
+ var createAssertParsePure = /** @__PURE__ */ Object.assign(createAssertParse, assertParsePure);
115
+ exports.createAssertParse = createAssertParsePure;
116
+ /**
117
+ * @internal
118
+ */
44
119
  function createValidateParse() {
45
120
  halt("createValidateParse");
46
121
  }
47
- exports.createValidateParse = createValidateParse;
122
+ var createValidateParsePure = /** @__PURE__ */ Object.assign(createValidateParse, validateParsePure);
123
+ exports.createValidateParse = createValidateParsePure;
124
+ /**
125
+ * @internal
126
+ */
48
127
  function createStringify() {
49
128
  halt("createStringify");
50
129
  }
51
- exports.createStringify = createStringify;
130
+ var createStringifyPure = /** @__PURE__ */ Object.assign(createStringify, stringifyPure);
131
+ exports.createStringify = createStringifyPure;
132
+ /**
133
+ * @internal
134
+ */
52
135
  function createAssertStringify() {
53
136
  halt("createAssertStringify");
54
137
  }
55
- exports.createAssertStringify = createAssertStringify;
138
+ var createAssertStringifyPure = /** @__PURE__ */ Object.assign(createAssertStringify, assertStringifyPure);
139
+ exports.createAssertStringify = createAssertStringifyPure;
140
+ /**
141
+ * @internal
142
+ */
56
143
  function createIsStringify() {
57
144
  halt("createIsStringify");
58
145
  }
59
- exports.createIsStringify = createIsStringify;
146
+ var createIsStringifyPure = /** @__PURE__ */ Object.assign(createIsStringify, isStringifyPure);
147
+ exports.createIsStringify = createIsStringifyPure;
148
+ /**
149
+ * @internal
150
+ */
60
151
  function createValidateStringify() {
61
152
  halt("createValidateStringify");
62
153
  }
63
- exports.createValidateStringify = createValidateStringify;
154
+ var createValidateStringifyPure = /** @__PURE__ */ Object.assign(createValidateStringify, validateStringifyPure);
155
+ exports.createValidateStringify = createValidateStringifyPure;
156
+ /**
157
+ * @internal
158
+ */
64
159
  function halt(name) {
65
160
  throw new Error("Error on typia.json.".concat(name, "(): no transform has been configured. Read and follow https://typia.io/docs/setup please."));
66
161
  }
package/lib/json.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":";;;AA6EA,SAAgB,WAAW;IACzB,IAAI,CAAC,aAAa,CAAC,CAAC;AACtB,CAAC;AAFD,kCAEC;AAgDD,SAAgB,WAAW;IACzB,IAAI,CAAC,aAAa,CAAC,CAAC;AACtB,CAAC;AAFD,kCAEC;AA6CD,SAAgB,OAAO;IACrB,IAAI,CAAC,SAAS,CAAC,CAAC;AAClB,CAAC;AAFD,0BAEC;AA+CD,SAAgB,aAAa;IAC3B,IAAI,CAAC,eAAe,CAAC,CAAC;AACxB,CAAC;AAFD,sCAEC;AAgCD,SAAgB,SAAS;IACvB,IAAI,CAAC,WAAW,CAAC,CAAC;AACpB,CAAC;AAFD,8BAEC;AAmDD,SAAgB,eAAe;IAC7B,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC1B,CAAC;AAFD,0CAEC;AAmDD,SAAgB,WAAW;IACzB,IAAI,CAAC,aAAa,CAAC,CAAC;AACtB,CAAC;AAFD,kCAEC;AAqDD,SAAgB,iBAAiB;IAC/B,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC5B,CAAC;AAFD,8CAEC;AA6BD,SAAgB,aAAa;IAC3B,IAAI,CAAC,eAAe,CAAC,CAAC;AACxB,CAAC;AAFD,sCAEC;AA0BD,SAAgB,iBAAiB;IAC/B,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC5B,CAAC;AAFD,8CAEC;AA4BD,SAAgB,mBAAmB;IAGjC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC9B,CAAC;AAJD,kDAIC;AA0BD,SAAgB,eAAe;IAC7B,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC1B,CAAC;AAFD,0CAEC;AA0BD,SAAgB,qBAAqB;IACnC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAChC,CAAC;AAFD,sDAEC;AA0BD,SAAgB,iBAAiB;IAC/B,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC5B,CAAC;AAFD,8CAEC;AA4BD,SAAgB,uBAAuB;IAGrC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AAClC,CAAC;AAJD,0DAIC;AAKD,SAAS,IAAI,CAAC,IAAY;IACxB,MAAM,IAAI,KAAK,CACb,8BAAuB,IAAI,8FAA2F,CACvH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAoD;AA6DpD;;GAEG;AACH,SAAgB,WAAW;IACzB,IAAI,CAAC,aAAa,CAAC,CAAC;AACtB,CAAC;AAFD,kCAEC;AAsDD;;GAEG;AACH,SAAS,WAAW;IAClB,IAAI,CAAC,aAAa,CAAC,CAAC;AACtB,CAAC;AACD,IAAM,eAAe,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CACpD,WAAW;AACX,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CACtD,CAAC;AAC0B,sCAAW;AA0CvC;;GAEG;AACH,SAAS,OAAO;IACd,IAAI,CAAC,SAAS,CAAC,CAAC;AAClB,CAAC;AACD,IAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAChD,OAAO;AACP,gBAAgB,CAAC,SAAS,CAAC,EAAE,EAAE,CAChC,CAAC;AACsB,8BAAO;AA4C/B;;GAEG;AACH,SAAS,aAAa;IACpB,IAAI,CAAC,eAAe,CAAC,CAAC;AACxB,CAAC;AACD,IAAM,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAGtD,aAAa,EAAE,gBAAgB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,0CAAa;AA6B3C;;GAEG;AACH,SAAS,SAAS;IAChB,IAAI,CAAC,WAAW,CAAC,CAAC;AACpB,CAAC;AACD,IAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAClD,SAAS;AACT,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CACvD,CAAC;AACwB,kCAAS;AAwDnC;;GAEG;AACH,SAAS,eAAe;IACtB,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC1B,CAAC;AACD,IAAM,mBAAmB,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAKxD,eAAe;AACf,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC;AACzD,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAC7D,CAAC;AAC8B,8CAAe;AAgD/C;;GAEG;AACH,SAAS,WAAW;IAClB,IAAI,CAAC,aAAa,CAAC,CAAC;AACtB,CAAC;AAED,IAAM,eAAe,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAKpD,WAAW;AACX,gBAAgB,CAAC,SAAS,CAAC,EAAE,EAAE;AAC/B,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CACzD,CAAC;AAC0B,sCAAW;AAkDvC;;GAEG;AACH,SAAS,iBAAiB;IACxB,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC5B,CAAC;AACD,IAAM,qBAAqB,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAK1D,iBAAiB;AACjB,gBAAgB,CAAC,SAAS,CAAC,QAAQ,EAAE;AACrC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAC/D,CAAC;AACgC,kDAAiB;AA0BnD;;GAEG;AACH,SAAS,aAAa;IACpB,IAAI,CAAC,eAAe,CAAC,CAAC;AACxB,CAAC;AACD,IAAM,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAGtD,aAAa,EAAE,WAAW,CAAC,CAAC;AACA,0CAAa;AA6B3C;;GAEG;AACH,SAAS,iBAAiB;IACxB,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC5B,CAAC;AACD,IAAM,qBAAqB,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAG1D,iBAAiB,EAAE,eAAe,CAAC,CAAC;AACJ,kDAAiB;AAuBnD;;GAEG;AACH,SAAS,mBAAmB;IAG1B,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC9B,CAAC;AAED,IAAM,uBAAuB,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAG5D,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AACN,sDAAmB;AAuBvD;;GAEG;AACH,SAAS,eAAe;IACtB,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC1B,CAAC;AAED,IAAM,mBAAmB,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAGxD,eAAe,EAAE,aAAa,CAAC,CAAC;AACF,8CAAe;AA6B/C;;GAEG;AACH,SAAS,qBAAqB;IAC5B,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAChC,CAAC;AAED,IAAM,yBAAyB,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAG9D,qBAAqB,EAAE,mBAAmB,CAAC,CAAC;AACR,0DAAqB;AAuB3D;;GAEG;AACH,SAAS,iBAAiB;IACxB,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC5B,CAAC;AAED,IAAM,qBAAqB,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAG1D,iBAAiB,EAAE,eAAe,CAAC,CAAC;AACJ,kDAAiB;AAuBnD;;GAEG;AACH,SAAS,uBAAuB;IAC9B,IAAI,CAAC,yBAAyB,CAAC,CAAC;AAClC,CAAC;AAED,IAAM,2BAA2B,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAGhE,uBAAuB,EAAE,qBAAqB,CAAC,CAAC;AACV,8DAAuB;AAE/D;;GAEG;AACH,SAAS,IAAI,CAAC,IAAY;IACxB,MAAM,IAAI,KAAK,CACb,8BAAuB,IAAI,8FAA2F,CACvH,CAAC;AACJ,CAAC"}