typia 7.0.0-dev.20240918 → 7.0.0-dev.20240919

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 (372) hide show
  1. package/lib/executable/TypiaSetupWizard.d.ts +1 -1
  2. package/lib/executable/TypiaSetupWizard.js +86 -69
  3. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  4. package/lib/executable/setup/PackageManager.d.ts +1 -2
  5. package/lib/executable/setup/PackageManager.js +13 -10
  6. package/lib/executable/setup/PackageManager.js.map +1 -1
  7. package/lib/factories/internal/metadata/iterate_metadata_function.js +1 -1
  8. package/lib/factories/internal/metadata/iterate_metadata_function.js.map +1 -1
  9. package/lib/index.mjs +3610 -25
  10. package/lib/index.mjs.map +1 -1
  11. package/lib/programmers/AssertProgrammer.js +2 -2
  12. package/lib/programmers/AssertProgrammer.js.map +1 -1
  13. package/lib/programmers/CheckerProgrammer.d.ts +8 -2
  14. package/lib/programmers/CheckerProgrammer.js +62 -52
  15. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  16. package/lib/programmers/FeatureProgrammer.d.ts +9 -2
  17. package/lib/programmers/FeatureProgrammer.js +10 -5
  18. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  19. package/lib/programmers/IsProgrammer.d.ts +5 -2
  20. package/lib/programmers/IsProgrammer.js +2 -2
  21. package/lib/programmers/IsProgrammer.js.map +1 -1
  22. package/lib/programmers/ValidateProgrammer.js +2 -2
  23. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  24. package/lib/programmers/helpers/AtomicPredicator.d.ts +9 -3
  25. package/lib/programmers/helpers/AtomicPredicator.js +6 -10
  26. package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
  27. package/lib/programmers/helpers/CloneJoiner.d.ts +12 -3
  28. package/lib/programmers/helpers/CloneJoiner.js +11 -11
  29. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  30. package/lib/programmers/helpers/HttpMetadataUtil.d.ts +2 -2
  31. package/lib/programmers/helpers/HttpMetadataUtil.js +9 -9
  32. package/lib/programmers/helpers/HttpMetadataUtil.js.map +1 -1
  33. package/lib/programmers/helpers/NotationJoiner.d.ts +12 -3
  34. package/lib/programmers/helpers/NotationJoiner.js +11 -11
  35. package/lib/programmers/helpers/NotationJoiner.js.map +1 -1
  36. package/lib/programmers/helpers/PruneJoiner.d.ts +13 -3
  37. package/lib/programmers/helpers/PruneJoiner.js +33 -31
  38. package/lib/programmers/helpers/PruneJoiner.js.map +1 -1
  39. package/lib/programmers/helpers/StringifyJoinder.d.ts +11 -3
  40. package/lib/programmers/helpers/StringifyJoinder.js +22 -19
  41. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
  42. package/lib/programmers/internal/application_array.js +23 -24
  43. package/lib/programmers/internal/application_array.js.map +1 -1
  44. package/lib/programmers/internal/application_bigint.js +5 -2
  45. package/lib/programmers/internal/application_bigint.js.map +1 -1
  46. package/lib/programmers/internal/application_boolean.js +5 -2
  47. package/lib/programmers/internal/application_boolean.js.map +1 -1
  48. package/lib/programmers/internal/application_escaped.js +44 -28
  49. package/lib/programmers/internal/application_escaped.js.map +1 -1
  50. package/lib/programmers/internal/application_number.js +5 -2
  51. package/lib/programmers/internal/application_number.js.map +1 -1
  52. package/lib/programmers/internal/application_plugin.js +4 -4
  53. package/lib/programmers/internal/application_plugin.js.map +1 -1
  54. package/lib/programmers/internal/application_string.js +5 -2
  55. package/lib/programmers/internal/application_string.js.map +1 -1
  56. package/lib/programmers/internal/application_templates.js +6 -3
  57. package/lib/programmers/internal/application_templates.js.map +1 -1
  58. package/lib/programmers/internal/application_v30_alias.js +37 -32
  59. package/lib/programmers/internal/application_v30_alias.js.map +1 -1
  60. package/lib/programmers/internal/application_v30_native.js +19 -23
  61. package/lib/programmers/internal/application_v30_native.js.map +1 -1
  62. package/lib/programmers/internal/application_v30_object.js +121 -117
  63. package/lib/programmers/internal/application_v30_object.js.map +1 -1
  64. package/lib/programmers/internal/application_v30_schema.js +227 -183
  65. package/lib/programmers/internal/application_v30_schema.js.map +1 -1
  66. package/lib/programmers/internal/application_v30_tuple.js +12 -11
  67. package/lib/programmers/internal/application_v30_tuple.js.map +1 -1
  68. package/lib/programmers/internal/application_v31_alias.js +29 -23
  69. package/lib/programmers/internal/application_v31_alias.js.map +1 -1
  70. package/lib/programmers/internal/application_v31_constant.js +9 -6
  71. package/lib/programmers/internal/application_v31_constant.js.map +1 -1
  72. package/lib/programmers/internal/application_v31_native.js +15 -17
  73. package/lib/programmers/internal/application_v31_native.js.map +1 -1
  74. package/lib/programmers/internal/application_v31_object.js +97 -89
  75. package/lib/programmers/internal/application_v31_object.js.map +1 -1
  76. package/lib/programmers/internal/application_v31_schema.js +223 -178
  77. package/lib/programmers/internal/application_v31_schema.js.map +1 -1
  78. package/lib/programmers/internal/application_v31_tuple.js +10 -12
  79. package/lib/programmers/internal/application_v31_tuple.js.map +1 -1
  80. package/lib/programmers/internal/check_object.js +8 -8
  81. package/lib/programmers/internal/check_object.js.map +1 -1
  82. package/lib/programmers/internal/llm_schema_array.js +10 -7
  83. package/lib/programmers/internal/llm_schema_array.js.map +1 -1
  84. package/lib/programmers/internal/llm_schema_station.js +4 -1
  85. package/lib/programmers/internal/llm_schema_station.js.map +1 -1
  86. package/lib/programmers/json/JsonApplicationProgrammer.js +12 -2
  87. package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
  88. package/lib/programmers/json/JsonStringifyProgrammer.js +46 -37
  89. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  90. package/lib/programmers/misc/MiscCloneProgrammer.js +5 -2
  91. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  92. package/lib/programmers/misc/MiscPruneProgrammer.js +5 -2
  93. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  94. package/lib/programmers/notations/NotationGeneralProgrammer.js +5 -2
  95. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  96. package/lib/transformers/features/llm/LlmApplicationTransformer.js +5 -2
  97. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  98. package/package.json +2 -2
  99. package/src/executable/TypiaSetupWizard.ts +17 -6
  100. package/src/executable/setup/PackageManager.ts +16 -16
  101. package/src/factories/JsonMetadataFactory.ts +60 -60
  102. package/src/factories/internal/metadata/emplace_metadata_alias.ts +32 -32
  103. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +56 -56
  104. package/src/factories/internal/metadata/iterate_metadata_alias.ts +28 -28
  105. package/src/factories/internal/metadata/iterate_metadata_collection.ts +145 -145
  106. package/src/factories/internal/metadata/iterate_metadata_escape.ts +47 -47
  107. package/src/factories/internal/metadata/iterate_metadata_function.ts +4 -2
  108. package/src/factories/internal/metadata/iterate_metadata_sort.ts +83 -83
  109. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  110. package/src/programmers/AssertProgrammer.ts +3 -3
  111. package/src/programmers/CheckerProgrammer.ts +112 -71
  112. package/src/programmers/FeatureProgrammer.ts +31 -30
  113. package/src/programmers/IsProgrammer.ts +7 -7
  114. package/src/programmers/ValidateProgrammer.ts +3 -3
  115. package/src/programmers/helpers/AtomicPredicator.ts +21 -10
  116. package/src/programmers/helpers/CloneJoiner.ts +21 -18
  117. package/src/programmers/helpers/HttpMetadataUtil.ts +11 -11
  118. package/src/programmers/helpers/NotationJoiner.ts +21 -18
  119. package/src/programmers/helpers/PruneJoiner.ts +87 -82
  120. package/src/programmers/helpers/StringifyJoinder.ts +32 -28
  121. package/src/programmers/http/HttpParameterProgrammer.ts +110 -110
  122. package/src/programmers/internal/application_array.ts +30 -35
  123. package/src/programmers/internal/application_bigint.ts +4 -4
  124. package/src/programmers/internal/application_boolean.ts +4 -4
  125. package/src/programmers/internal/application_escaped.ts +56 -34
  126. package/src/programmers/internal/application_number.ts +4 -4
  127. package/src/programmers/internal/application_plugin.ts +7 -7
  128. package/src/programmers/internal/application_string.ts +4 -4
  129. package/src/programmers/internal/application_templates.ts +4 -4
  130. package/src/programmers/internal/application_v30_alias.ts +34 -27
  131. package/src/programmers/internal/application_v30_native.ts +21 -20
  132. package/src/programmers/internal/application_v30_object.ts +106 -93
  133. package/src/programmers/internal/application_v30_schema.ts +187 -128
  134. package/src/programmers/internal/application_v30_tuple.ts +22 -22
  135. package/src/programmers/internal/application_v31_alias.ts +32 -26
  136. package/src/programmers/internal/application_v31_constant.ts +4 -4
  137. package/src/programmers/internal/application_v31_native.ts +17 -16
  138. package/src/programmers/internal/application_v31_object.ts +103 -89
  139. package/src/programmers/internal/application_v31_schema.ts +180 -124
  140. package/src/programmers/internal/application_v31_tuple.ts +13 -12
  141. package/src/programmers/internal/check_array_length.ts +45 -45
  142. package/src/programmers/internal/check_bigint.ts +49 -49
  143. package/src/programmers/internal/check_dynamic_key.ts +174 -174
  144. package/src/programmers/internal/check_dynamic_properties.ts +211 -211
  145. package/src/programmers/internal/check_number.ts +107 -107
  146. package/src/programmers/internal/check_object.ts +64 -61
  147. package/src/programmers/internal/check_string.ts +48 -48
  148. package/src/programmers/internal/llm_schema_array.ts +4 -4
  149. package/src/programmers/internal/llm_schema_station.ts +6 -1
  150. package/src/programmers/json/JsonApplicationProgrammer.ts +12 -2
  151. package/src/programmers/json/JsonStringifyProgrammer.ts +56 -38
  152. package/src/programmers/misc/MiscCloneProgrammer.ts +5 -2
  153. package/src/programmers/misc/MiscLiteralsProgrammer.ts +77 -77
  154. package/src/programmers/misc/MiscPruneProgrammer.ts +5 -2
  155. package/src/programmers/notations/NotationGeneralProgrammer.ts +5 -2
  156. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +168 -168
  157. package/src/transform.ts +35 -35
  158. package/src/transformers/ITypiaContext.ts +15 -15
  159. package/src/transformers/NodeTransformer.ts +13 -13
  160. package/src/transformers/features/AssertTransformer.ts +24 -24
  161. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  162. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  163. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  164. package/src/transformers/features/IsTransformer.ts +18 -18
  165. package/src/transformers/features/ValidateTransformer.ts +18 -18
  166. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  167. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  168. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  169. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  170. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  171. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  172. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  173. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  174. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  175. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  176. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  177. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  178. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  179. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  180. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  181. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  182. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  183. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  184. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  185. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  186. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  187. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  188. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  189. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  190. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  191. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  192. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  193. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  194. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  195. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  196. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  197. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  198. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  199. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  200. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  201. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  202. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  203. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  204. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  205. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  206. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  207. package/src/transformers/features/llm/LlmApplicationTransformer.ts +6 -2
  208. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  209. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  210. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  211. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  212. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  213. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  214. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  215. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  216. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  217. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  218. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  219. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  220. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  221. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  222. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  223. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  224. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  225. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  226. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  227. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  228. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  229. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  230. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  231. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  232. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  233. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  234. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  235. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  236. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  237. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  238. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  239. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  240. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  241. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  242. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  243. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  244. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  245. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  246. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  247. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  248. package/src/transformers/features/reflect/ReflectNameTransformer.ts +79 -79
  249. package/lib/TypeGuardError.mjs +0 -26
  250. package/lib/TypeGuardError.mjs.map +0 -1
  251. package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmSchemaSeparator.mjs +0 -57
  252. package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmSchemaSeparator.mjs.map +0 -1
  253. package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmTypeChecker.mjs +0 -23
  254. package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmTypeChecker.mjs.map +0 -1
  255. package/lib/_external/node_modules_drange_lib/index.mjs +0 -180
  256. package/lib/_external/node_modules_drange_lib/index.mjs.map +0 -1
  257. package/lib/_external/node_modules_randexp_lib/randexp.mjs +0 -270
  258. package/lib/_external/node_modules_randexp_lib/randexp.mjs.map +0 -1
  259. package/lib/_external/node_modules_ret_lib/index.mjs +0 -296
  260. package/lib/_external/node_modules_ret_lib/index.mjs.map +0 -1
  261. package/lib/_external/node_modules_ret_lib/positions.mjs +0 -11
  262. package/lib/_external/node_modules_ret_lib/positions.mjs.map +0 -1
  263. package/lib/_external/node_modules_ret_lib/sets.mjs +0 -55
  264. package/lib/_external/node_modules_ret_lib/sets.mjs.map +0 -1
  265. package/lib/_external/node_modules_ret_lib/types.mjs +0 -13
  266. package/lib/_external/node_modules_ret_lib/types.mjs.map +0 -1
  267. package/lib/_external/node_modules_ret_lib/util.mjs +0 -116
  268. package/lib/_external/node_modules_ret_lib/util.mjs.map +0 -1
  269. package/lib/_virtual/_commonjsHelpers.mjs +0 -6
  270. package/lib/_virtual/_commonjsHelpers.mjs.map +0 -1
  271. package/lib/_virtual/index.mjs +0 -4
  272. package/lib/_virtual/index.mjs.map +0 -1
  273. package/lib/_virtual/positions.mjs +0 -4
  274. package/lib/_virtual/positions.mjs.map +0 -1
  275. package/lib/_virtual/sets.mjs +0 -4
  276. package/lib/_virtual/sets.mjs.map +0 -1
  277. package/lib/_virtual/util.mjs +0 -4
  278. package/lib/_virtual/util.mjs.map +0 -1
  279. package/lib/functional/Namespace/functional.mjs +0 -8
  280. package/lib/functional/Namespace/functional.mjs.map +0 -1
  281. package/lib/functional/Namespace/http.mjs +0 -12
  282. package/lib/functional/Namespace/http.mjs.map +0 -1
  283. package/lib/functional/Namespace/index.mjs +0 -54
  284. package/lib/functional/Namespace/index.mjs.map +0 -1
  285. package/lib/functional/Namespace/json.mjs +0 -18
  286. package/lib/functional/Namespace/json.mjs.map +0 -1
  287. package/lib/functional/Namespace/llm.mjs +0 -19
  288. package/lib/functional/Namespace/llm.mjs.map +0 -1
  289. package/lib/functional/Namespace/misc.mjs +0 -16
  290. package/lib/functional/Namespace/misc.mjs.map +0 -1
  291. package/lib/functional/Namespace/notations.mjs +0 -24
  292. package/lib/functional/Namespace/notations.mjs.map +0 -1
  293. package/lib/functional/Namespace/protobuf.mjs +0 -22
  294. package/lib/functional/Namespace/protobuf.mjs.map +0 -1
  295. package/lib/functional/_FormDataReader/_FormDataReader.mjs +0 -64
  296. package/lib/functional/_FormDataReader/_FormDataReader.mjs.map +0 -1
  297. package/lib/functional/_HeadersReader/_HeadersReader.mjs +0 -25
  298. package/lib/functional/_HeadersReader/_HeadersReader.mjs.map +0 -1
  299. package/lib/functional/_ParameterReader/_ParameterReader.mjs +0 -25
  300. package/lib/functional/_ParameterReader/_ParameterReader.mjs.map +0 -1
  301. package/lib/functional/_ProtobufReader.mjs +0 -176
  302. package/lib/functional/_ProtobufReader.mjs.map +0 -1
  303. package/lib/functional/_ProtobufSizer.mjs +0 -131
  304. package/lib/functional/_ProtobufSizer.mjs.map +0 -1
  305. package/lib/functional/_ProtobufWriter.mjs +0 -122
  306. package/lib/functional/_ProtobufWriter.mjs.map +0 -1
  307. package/lib/functional/_QueryReader/_QueryReader.mjs +0 -38
  308. package/lib/functional/_QueryReader/_QueryReader.mjs.map +0 -1
  309. package/lib/functional/_any.mjs +0 -6
  310. package/lib/functional/_any.mjs.map +0 -1
  311. package/lib/functional/_clone.mjs +0 -62
  312. package/lib/functional/_clone.mjs.map +0 -1
  313. package/lib/functional/_convention.mjs +0 -37
  314. package/lib/functional/_convention.mjs.map +0 -1
  315. package/lib/functional/_every.mjs +0 -10
  316. package/lib/functional/_every.mjs.map +0 -1
  317. package/lib/functional/_guard.mjs +0 -18
  318. package/lib/functional/_guard.mjs.map +0 -1
  319. package/lib/functional/_is_between.mjs +0 -4
  320. package/lib/functional/_is_between.mjs.map +0 -1
  321. package/lib/functional/_join.mjs +0 -44
  322. package/lib/functional/_join.mjs.map +0 -1
  323. package/lib/functional/_number.mjs +0 -15
  324. package/lib/functional/_number.mjs.map +0 -1
  325. package/lib/functional/_report.mjs +0 -16
  326. package/lib/functional/_report.mjs.map +0 -1
  327. package/lib/functional/_rest.mjs +0 -6
  328. package/lib/functional/_rest.mjs.map +0 -1
  329. package/lib/functional/_stoll.mjs +0 -12
  330. package/lib/functional/_stoll.mjs.map +0 -1
  331. package/lib/functional/_string.mjs +0 -41
  332. package/lib/functional/_string.mjs.map +0 -1
  333. package/lib/functional/_strlen.mjs +0 -11
  334. package/lib/functional/_strlen.mjs.map +0 -1
  335. package/lib/functional/_tail.mjs +0 -7
  336. package/lib/functional/_tail.mjs.map +0 -1
  337. package/lib/functional/_throws.mjs +0 -11
  338. package/lib/functional/_throws.mjs.map +0 -1
  339. package/lib/functional/is.mjs +0 -13
  340. package/lib/functional/is.mjs.map +0 -1
  341. package/lib/functional.mjs +0 -150
  342. package/lib/functional.mjs.map +0 -1
  343. package/lib/http.mjs +0 -239
  344. package/lib/http.mjs.map +0 -1
  345. package/lib/json.mjs +0 -126
  346. package/lib/json.mjs.map +0 -1
  347. package/lib/llm.mjs +0 -26
  348. package/lib/llm.mjs.map +0 -1
  349. package/lib/misc.mjs +0 -154
  350. package/lib/misc.mjs.map +0 -1
  351. package/lib/module.mjs +0 -163
  352. package/lib/module.mjs.map +0 -1
  353. package/lib/notations.mjs +0 -222
  354. package/lib/notations.mjs.map +0 -1
  355. package/lib/programmers/helpers/FunctionImporeter.d.ts +0 -1
  356. package/lib/programmers/helpers/FunctionImporeter.js +0 -18
  357. package/lib/programmers/helpers/FunctionImporeter.js.map +0 -1
  358. package/lib/protobuf.mjs +0 -157
  359. package/lib/protobuf.mjs.map +0 -1
  360. package/lib/reflect.mjs +0 -19
  361. package/lib/reflect.mjs.map +0 -1
  362. package/lib/tags/index.mjs +0 -2
  363. package/lib/tags/index.mjs.map +0 -1
  364. package/lib/utils/NamingConvention/NamingConvention.mjs +0 -84
  365. package/lib/utils/NamingConvention/NamingConvention.mjs.map +0 -1
  366. package/lib/utils/RandomGenerator/RandomGenerator.mjs +0 -104
  367. package/lib/utils/RandomGenerator/RandomGenerator.mjs.map +0 -1
  368. package/lib/utils/Singleton.mjs +0 -17
  369. package/lib/utils/Singleton.mjs.map +0 -1
  370. package/lib/utils/StringUtil/StringUtil.mjs +0 -4
  371. package/lib/utils/StringUtil/StringUtil.mjs.map +0 -1
  372. package/src/programmers/helpers/FunctionImporeter.ts +0 -1
@@ -8,43 +8,38 @@ import { application_plugin } from "./application_plugin";
8
8
  /**
9
9
  * @internal
10
10
  */
11
- export const application_array =
12
- <Version extends "3.0" | "3.1">(
13
- generator: (value: Metadata) => Schema<Version>,
14
- ) =>
15
- (
16
- components: Version extends "3.0"
17
- ? OpenApiV3.IComponents
18
- : OpenApi.IComponents,
19
- ) =>
20
- (
21
- array: MetadataArray,
22
- ): Array<ArraySchema<Version> | OpenApiV3.IJsonSchema.IReference> => {
23
- const factory = (): ArraySchema<Version>[] =>
24
- application_plugin<ArraySchema<Version>>(
25
- {
26
- type: "array",
27
- items: generator(array.type.value),
28
- } as ArraySchema<Version>,
29
- array.tags,
30
- );
31
- if (array.type.recursive === true) {
32
- const out = () => [{ $ref }];
33
- const $ref: string = `#/components/schemas/${array.type.name}`;
34
- if (components.schemas?.[$ref] !== undefined) return out();
11
+ export const application_array = <Version extends "3.0" | "3.1">(props: {
12
+ generator: (value: Metadata) => Schema<Version>;
13
+ components: Version extends "3.0"
14
+ ? OpenApiV3.IComponents
15
+ : OpenApi.IComponents;
16
+ array: MetadataArray;
17
+ }): Array<ArraySchema<Version> | OpenApiV3.IJsonSchema.IReference> => {
18
+ const factory = (): ArraySchema<Version>[] =>
19
+ application_plugin<ArraySchema<Version>>({
20
+ schema: {
21
+ type: "array",
22
+ items: props.generator(props.array.type.value),
23
+ } as ArraySchema<Version>,
24
+ tags: props.array.tags,
25
+ });
26
+ if (props.array.type.recursive === true) {
27
+ const out = () => [{ $ref }];
28
+ const $ref: string = `#/components/schemas/${props.array.type.name}`;
29
+ if (props.components.schemas?.[$ref] !== undefined) return out();
35
30
 
36
- components.schemas ??= {};
37
- components.schemas[$ref] ??= {};
31
+ props.components.schemas ??= {};
32
+ props.components.schemas[$ref] ??= {};
38
33
 
39
- const oneOf: ArraySchema<Version>[] = factory();
40
- Object.assign(
41
- components.schemas[$ref]!,
42
- oneOf.length === 1 ? oneOf[0] : { oneOf },
43
- );
44
- return out();
45
- }
46
- return factory();
47
- };
34
+ const oneOf: ArraySchema<Version>[] = factory();
35
+ Object.assign(
36
+ props.components.schemas[$ref]!,
37
+ oneOf.length === 1 ? oneOf[0] : { oneOf },
38
+ );
39
+ return out();
40
+ }
41
+ return factory();
42
+ };
48
43
 
49
44
  /**
50
45
  * @internal
@@ -10,12 +10,12 @@ import { application_plugin } from "./application_plugin";
10
10
  export const application_bigint = <Version extends "3.0" | "3.1">(
11
11
  atomic: MetadataAtomic,
12
12
  ): Schema<Version>[] =>
13
- application_plugin(
14
- {
13
+ application_plugin({
14
+ schema: {
15
15
  type: "integer",
16
16
  } satisfies Schema<Version>,
17
- atomic.tags,
18
- );
17
+ tags: atomic.tags,
18
+ });
19
19
 
20
20
  /**
21
21
  * @internal
@@ -10,12 +10,12 @@ import { application_plugin } from "./application_plugin";
10
10
  export const application_boolean = <Version extends "3.0" | "3.1">(
11
11
  atomic: MetadataAtomic,
12
12
  ): Schema<Version>[] =>
13
- application_plugin(
14
- {
13
+ application_plugin({
14
+ schema: {
15
15
  type: "boolean",
16
16
  } satisfies Schema<Version>,
17
- atomic.tags,
18
- );
17
+ tags: atomic.tags,
18
+ });
19
19
 
20
20
  /**
21
21
  * @internal
@@ -6,29 +6,33 @@ import { MetadataEscaped } from "../../schemas/metadata/MetadataEscaped";
6
6
  /**
7
7
  * @internal
8
8
  */
9
- export const application_escaped =
10
- <Version extends "3.0" | "3.1">(
11
- generator: (meta: Metadata) => Schema<Version>,
12
- ) =>
13
- (escaped: MetadataEscaped): Schema<Version>[] => {
14
- const output: Schema<Version> | null = generator(escaped.returns);
15
- if (output === null) return [];
9
+ export const application_escaped = <Version extends "3.0" | "3.1">(props: {
10
+ generator: (meta: Metadata) => Schema<Version>;
11
+ escaped: MetadataEscaped;
12
+ }): Schema<Version>[] => {
13
+ const output: Schema<Version> | null = props.generator(props.escaped.returns);
14
+ if (output === null) return [];
16
15
 
17
- if (is_date(new Set())(escaped.original)) {
18
- const string: StringSchema<Version> | undefined = is_string(output)
19
- ? output
20
- : is_one_of(output)
21
- ? (output.oneOf.find(is_string) as StringSchema<Version>)
22
- : undefined;
23
- if (
24
- string !== undefined &&
25
- string.format !== "date" &&
26
- string.format !== "date-time"
27
- )
28
- string.format = "date-time";
29
- }
30
- return is_one_of(output) ? (output.oneOf as Schema<Version>[]) : [output];
31
- };
16
+ if (
17
+ is_date({
18
+ visited: new Set(),
19
+ metadata: props.escaped.original,
20
+ })
21
+ ) {
22
+ const string: StringSchema<Version> | undefined = is_string(output)
23
+ ? output
24
+ : is_one_of(output)
25
+ ? (output.oneOf.find(is_string) as StringSchema<Version>)
26
+ : undefined;
27
+ if (
28
+ string !== undefined &&
29
+ string.format !== "date" &&
30
+ string.format !== "date-time"
31
+ )
32
+ string.format = "date-time";
33
+ }
34
+ return is_one_of(output) ? (output.oneOf as Schema<Version>[]) : [output];
35
+ };
32
36
 
33
37
  /**
34
38
  * @internal
@@ -49,19 +53,37 @@ const is_one_of = <Version extends "3.0" | "3.1">(
49
53
  /**
50
54
  * @internal
51
55
  */
52
- const is_date =
53
- (visited: Set<Metadata>) =>
54
- (meta: Metadata): boolean => {
55
- if (visited.has(meta)) return false;
56
- visited.add(meta);
56
+ const is_date = (props: {
57
+ visited: Set<Metadata>;
58
+ metadata: Metadata;
59
+ }): boolean => {
60
+ if (props.visited.has(props.metadata)) return false;
61
+ props.visited.add(props.metadata);
57
62
 
58
- return (
59
- meta.natives.some((name) => name === "Date") ||
60
- meta.arrays.some((array) => is_date(visited)(array.type.value)) ||
61
- meta.tuples.some((tuple) => tuple.type.elements.some(is_date(visited))) ||
62
- meta.aliases.some((alias) => is_date(visited)(alias.value))
63
- );
64
- };
63
+ return (
64
+ props.metadata.natives.some((name) => name === "Date") ||
65
+ props.metadata.arrays.some((array) =>
66
+ is_date({
67
+ visited: props.visited,
68
+ metadata: array.type.value,
69
+ }),
70
+ ) ||
71
+ props.metadata.tuples.some((tuple) =>
72
+ tuple.type.elements.some((e) =>
73
+ is_date({
74
+ visited: props.visited,
75
+ metadata: e,
76
+ }),
77
+ ),
78
+ ) ||
79
+ props.metadata.aliases.some((alias) =>
80
+ is_date({
81
+ visited: props.visited,
82
+ metadata: alias.value,
83
+ }),
84
+ )
85
+ );
86
+ };
65
87
 
66
88
  type Schema<Version extends "3.0" | "3.1"> = Version extends "3.0"
67
89
  ? OpenApiV3.IJsonSchema
@@ -10,12 +10,12 @@ import { application_plugin } from "./application_plugin";
10
10
  export const application_number = <Version extends "3.0" | "3.1">(
11
11
  atomic: MetadataAtomic,
12
12
  ): Schema<Version>[] =>
13
- application_plugin(
14
- {
13
+ application_plugin({
14
+ schema: {
15
15
  type: "number",
16
16
  } satisfies Schema<Version>,
17
- atomic.tags,
18
- );
17
+ tags: atomic.tags,
18
+ });
19
19
 
20
20
  /**
21
21
  * @internal
@@ -3,16 +3,16 @@ import { IMetadataTypeTag } from "../../schemas/metadata/IMetadataTypeTag";
3
3
  /**
4
4
  * @internal
5
5
  */
6
- export const application_plugin = <Schema extends object>(
7
- schema: Schema,
8
- tags: IMetadataTypeTag[][],
9
- ): Schema[] => {
10
- const plugins: IMetadataTypeTag[][] = tags
6
+ export const application_plugin = <Schema extends object>(props: {
7
+ schema: Schema;
8
+ tags: IMetadataTypeTag[][];
9
+ }): Schema[] => {
10
+ const plugins: IMetadataTypeTag[][] = props.tags
11
11
  .map((row) => row.filter((t) => t.schema !== undefined))
12
12
  .filter((row) => row.length !== 0);
13
- if (plugins.length === 0) return [schema];
13
+ if (plugins.length === 0) return [props.schema];
14
14
  return plugins.map((row) => {
15
- const base: Schema = { ...schema };
15
+ const base: Schema = { ...props.schema };
16
16
  for (const tag of row) Object.assign(base, tag.schema);
17
17
  return base;
18
18
  });
@@ -10,12 +10,12 @@ import { application_plugin } from "./application_plugin";
10
10
  export const application_string = <Version extends "3.0" | "3.1">(
11
11
  atomic: MetadataAtomic,
12
12
  ): Schema<Version>[] =>
13
- application_plugin(
14
- {
13
+ application_plugin({
14
+ schema: {
15
15
  type: "string",
16
16
  } satisfies Schema<Version>,
17
- atomic.tags,
18
- );
17
+ tags: atomic.tags,
18
+ });
19
19
 
20
20
  /**
21
21
  * @internal
@@ -33,8 +33,8 @@ export const application_templates = <Version extends "3.0" | "3.1">(
33
33
  });
34
34
  for (const tpl of taggedTemplates)
35
35
  output.push(
36
- application_plugin(
37
- {
36
+ application_plugin({
37
+ schema: {
38
38
  type: "string",
39
39
  pattern: metadata_to_pattern(false)(
40
40
  Metadata.create({
@@ -43,8 +43,8 @@ export const application_templates = <Version extends "3.0" | "3.1">(
43
43
  }),
44
44
  ),
45
45
  },
46
- tpl.tags ?? [],
47
- ) as any,
46
+ tags: tpl.tags ?? [],
47
+ }) as any,
48
48
  );
49
49
  return output;
50
50
  };
@@ -12,41 +12,48 @@ import { application_v30_schema } from "./application_v30_schema";
12
12
  /**
13
13
  * @internal
14
14
  */
15
- export const application_v30_alias =
16
- <BlockNever extends boolean>(blockNever: BlockNever) =>
17
- (components: OpenApiV3.IComponents) =>
18
- (alias: MetadataAlias) =>
19
- (nullable: boolean): OpenApiV3.IJsonSchema.IReference => {
20
- if (alias.value.size() === 1 && alias.value.objects.length === 1)
21
- return application_v30_object(components)(alias.value.objects[0]!)(
22
- nullable,
23
- ) as OpenApiV3.IJsonSchema.IReference;
15
+ export const application_v30_alias = <BlockNever extends boolean>(props: {
16
+ blockNever: BlockNever;
17
+ components: OpenApiV3.IComponents;
18
+ alias: MetadataAlias;
19
+ nullable: boolean;
20
+ }): OpenApiV3.IJsonSchema.IReference => {
21
+ if (props.alias.value.size() === 1 && props.alias.value.objects.length === 1)
22
+ return application_v30_object({
23
+ object: props.alias.value.objects[0]!,
24
+ components: props.components,
25
+ nullable: props.nullable,
26
+ }) as OpenApiV3.IJsonSchema.IReference;
24
27
 
25
- const key: string = `${alias.name}${nullable ? ".Nullable" : ""}`;
26
- const $ref: string = `#/components/schemas/${key}`;
28
+ const key: string = `${props.alias.name}${props.nullable ? ".Nullable" : ""}`;
29
+ const $ref: string = `#/components/schemas/${key}`;
27
30
 
28
- if (components.schemas?.[key] === undefined) {
29
- // TEMPORARY ASSIGNMENT
30
- components.schemas ??= {};
31
- components.schemas[key] = {};
31
+ if (props.components.schemas?.[key] === undefined) {
32
+ // TEMPORARY ASSIGNMENT
33
+ props.components.schemas ??= {};
34
+ props.components.schemas[key] = {};
32
35
 
33
- // GENERATE SCHEMA
34
- const schema: OpenApiV3.IJsonSchema | null = application_v30_schema(
35
- blockNever,
36
- )(components)({
36
+ // GENERATE SCHEMA
37
+ const schema: OpenApiV3.IJsonSchema | null = application_v30_schema({
38
+ blockNever: props.blockNever,
39
+ components: props.components,
40
+ attribute: {
37
41
  deprecated:
38
- alias.jsDocTags.some((tag) => tag.name === "deprecated") || undefined,
42
+ props.alias.jsDocTags.some((tag) => tag.name === "deprecated") ||
43
+ undefined,
39
44
  title: (() => {
40
- const info: IJsDocTagInfo | undefined = alias.jsDocTags.find(
45
+ const info: IJsDocTagInfo | undefined = props.alias.jsDocTags.find(
41
46
  (tag) => tag.name === "title",
42
47
  );
43
48
  return info?.text?.length
44
49
  ? CommentFactory.merge(info.text)
45
50
  : undefined;
46
51
  })(),
47
- description: application_description(alias),
48
- })(alias.value);
49
- if (schema !== null) Object.assign(components.schemas[key]!, schema);
50
- }
51
- return { $ref };
52
- };
52
+ description: application_description(props.alias),
53
+ },
54
+ metadata: props.alias.value,
55
+ });
56
+ if (schema !== null) Object.assign(props.components.schemas[key]!, schema);
57
+ }
58
+ return { $ref };
59
+ };
@@ -3,26 +3,27 @@ import { OpenApiV3 } from "@samchon/openapi";
3
3
  /**
4
4
  * @internal
5
5
  */
6
- export const application_v30_native =
7
- (components: OpenApiV3.IComponents) =>
8
- (name: string) =>
9
- (nullable: boolean): OpenApiV3.IJsonSchema => {
10
- if (name === "Blob" || name === "File")
11
- return {
12
- type: "string",
13
- format: "binary",
14
- nullable,
15
- };
16
- const key: string = `${name}${nullable ? ".Nullable" : ""}`;
17
- if (components.schemas?.[key] === undefined) {
18
- components.schemas ??= {};
19
- components.schemas[key] ??= {
20
- type: "object",
21
- properties: {},
22
- nullable,
23
- };
24
- }
6
+ export const application_v30_native = (props: {
7
+ components: OpenApiV3.IComponents;
8
+ name: string;
9
+ nullable: boolean;
10
+ }): OpenApiV3.IJsonSchema => {
11
+ if (props.name === "Blob" || props.name === "File")
25
12
  return {
26
- $ref: `#/components/schemas/${key}`,
13
+ type: "string",
14
+ format: "binary",
15
+ nullable: props.nullable,
27
16
  };
17
+ const key: string = `${props.name}${props.nullable ? ".Nullable" : ""}`;
18
+ if (props.components.schemas?.[key] === undefined) {
19
+ props.components.schemas ??= {};
20
+ props.components.schemas[key] ??= {
21
+ type: "object",
22
+ properties: {},
23
+ nullable: props.nullable,
24
+ };
25
+ }
26
+ return {
27
+ $ref: `#/components/schemas/${key}`,
28
28
  };
29
+ };
@@ -15,57 +15,56 @@ import { metadata_to_pattern } from "./metadata_to_pattern";
15
15
  /**
16
16
  * @internal
17
17
  */
18
- export const application_v30_object =
19
- (components: OpenApiV3.IComponents) =>
20
- (obj: MetadataObject) =>
21
- (
22
- nullable: boolean,
23
- ): OpenApiV3.IJsonSchema.IReference | OpenApiV3.IJsonSchema.IObject => {
24
- if (obj.isLiteral() === true)
25
- return create_object_schema(components)(obj)(nullable);
26
-
27
- const key: string = `${obj.name}${nullable ? ".Nullable" : ""}`;
28
- const $ref: string = `#/components/schemas/${key}`;
29
- if (components.schemas?.[key] !== undefined) return { $ref };
30
-
31
- const object: OpenApiV3.IJsonSchema = {};
32
- components.schemas ??= {};
33
- components.schemas[key] = object;
34
- Object.assign(object, create_object_schema(components)(obj)(nullable));
35
- return { $ref };
36
- };
18
+ export const application_v30_object = (props: {
19
+ components: OpenApiV3.IComponents;
20
+ object: MetadataObject;
21
+ nullable: boolean;
22
+ }): OpenApiV3.IJsonSchema.IReference | OpenApiV3.IJsonSchema.IObject => {
23
+ if (props.object.isLiteral() === true) return create_object_schema(props);
24
+
25
+ const key: string = `${props.object.name}${props.nullable ? ".Nullable" : ""}`;
26
+ const $ref: string = `#/components/schemas/${key}`;
27
+ if (props.components.schemas?.[key] !== undefined) return { $ref };
28
+
29
+ const object: OpenApiV3.IJsonSchema = {};
30
+ props.components.schemas ??= {};
31
+ props.components.schemas[key] = object;
32
+ Object.assign(object, create_object_schema(props));
33
+ return { $ref };
34
+ };
37
35
 
38
36
  /**
39
37
  * @internal
40
38
  */
41
- const create_object_schema =
42
- (components: OpenApiV3.IComponents) =>
43
- (obj: MetadataObject) =>
44
- (nullable: boolean): OpenApiV3.IJsonSchema.IObject => {
45
- // ITERATE PROPERTIES
46
- const properties: Record<string, any> = {};
47
- const extraMeta: ISuperfluous = {
48
- patternProperties: {},
49
- additionalProperties: undefined,
50
- };
51
- const required: string[] = [];
52
-
53
- for (const property of obj.properties) {
54
- if (
55
- // FUNCTIONAL TYPE
56
- property.value.functions.length &&
57
- property.value.nullable === false &&
58
- property.value.isRequired() === true &&
59
- property.value.size() === 0
60
- )
61
- continue;
62
- else if (property.jsDocTags.find((tag) => tag.name === "hidden"))
63
- continue; // THE HIDDEN TAG
64
-
65
- const key: string | null = property.key.getSoleLiteral();
66
- const schema: OpenApiV3.IJsonSchema | null = application_v30_schema(true)(
67
- components,
68
- )({
39
+ const create_object_schema = (props: {
40
+ components: OpenApiV3.IComponents;
41
+ object: MetadataObject;
42
+ nullable: boolean;
43
+ }): OpenApiV3.IJsonSchema.IObject => {
44
+ // ITERATE PROPERTIES
45
+ const properties: Record<string, any> = {};
46
+ const extraMeta: ISuperfluous = {
47
+ patternProperties: {},
48
+ additionalProperties: undefined,
49
+ };
50
+ const required: string[] = [];
51
+
52
+ for (const property of props.object.properties) {
53
+ if (
54
+ // FUNCTIONAL TYPE
55
+ property.value.functions.length &&
56
+ property.value.nullable === false &&
57
+ property.value.isRequired() === true &&
58
+ property.value.size() === 0
59
+ )
60
+ continue;
61
+ else if (property.jsDocTags.find((tag) => tag.name === "hidden")) continue; // THE HIDDEN TAG
62
+
63
+ const key: string | null = property.key.getSoleLiteral();
64
+ const schema: OpenApiV3.IJsonSchema | null = application_v30_schema({
65
+ blockNever: true,
66
+ components: props.components,
67
+ attribute: {
69
68
  deprecated:
70
69
  property.jsDocTags.some((tag) => tag.name === "deprecated") ||
71
70
  undefined,
@@ -87,58 +86,72 @@ const create_object_schema =
87
86
  : undefined;
88
87
  })(),
89
88
  description: application_description(property),
90
- })(property.value);
91
-
92
- if (schema === null) continue;
93
- if (key !== null) {
94
- properties[key] = schema;
95
- if (property.value.isRequired() === true) required.push(key);
96
- } else {
97
- const pattern: string = metadata_to_pattern(true)(property.key);
98
- if (pattern === PatternUtil.STRING)
99
- extraMeta.additionalProperties = [property.value, schema];
100
- else extraMeta.patternProperties[pattern] = [property.value, schema];
101
- }
89
+ },
90
+ metadata: property.value,
91
+ });
92
+
93
+ if (schema === null) continue;
94
+ if (key !== null) {
95
+ properties[key] = schema;
96
+ if (property.value.isRequired() === true) required.push(key);
97
+ } else {
98
+ const pattern: string = metadata_to_pattern(true)(property.key);
99
+ if (pattern === PatternUtil.STRING)
100
+ extraMeta.additionalProperties = [property.value, schema];
101
+ else extraMeta.patternProperties[pattern] = [property.value, schema];
102
102
  }
103
-
104
- return {
105
- type: "object",
106
- properties,
107
- nullable,
108
- required: required.length ? required : undefined,
109
- title: (() => {
110
- const info: IJsDocTagInfo | undefined = obj.jsDocTags.find(
111
- (tag) => tag.name === "title",
112
- );
113
- return info?.text?.length ? CommentFactory.merge(info.text) : undefined;
114
- })(),
115
- description: application_description(obj),
116
- additionalProperties: join(components)(extraMeta),
117
- };
103
+ }
104
+
105
+ return {
106
+ type: "object",
107
+ properties,
108
+ nullable: props.nullable,
109
+ required: required.length ? required : undefined,
110
+ title: (() => {
111
+ const info: IJsDocTagInfo | undefined = props.object.jsDocTags.find(
112
+ (tag) => tag.name === "title",
113
+ );
114
+ return info?.text?.length ? CommentFactory.merge(info.text) : undefined;
115
+ })(),
116
+ description: application_description(props.object),
117
+ additionalProperties: join({
118
+ components: props.components,
119
+ extra: extraMeta,
120
+ }),
118
121
  };
122
+ };
119
123
 
120
124
  /**
121
125
  * @internal
122
126
  */
123
- const join =
124
- (components: OpenApiV3.IComponents) =>
125
- (extra: ISuperfluous): OpenApiV3.IJsonSchema | undefined => {
126
- // LIST UP METADATA
127
- const elements: [Metadata, OpenApiV3.IJsonSchema][] = Object.values(
128
- extra.patternProperties || {},
129
- );
130
- if (extra.additionalProperties) elements.push(extra.additionalProperties);
131
-
132
- // SHORT RETURN
133
- if (elements.length === 0) return undefined;
134
- else if (elements.length === 1) return elements[0]![1]!;
135
-
136
- // MERGE METADATA AND GENERATE VULNERABLE SCHEMA
137
- const meta: Metadata = elements
138
- .map((tuple) => tuple[0])
139
- .reduce((x, y) => Metadata.merge(x, y));
140
- return application_v30_schema(true)(components)({})(meta) ?? undefined;
141
- };
127
+ const join = (props: {
128
+ components: OpenApiV3.IComponents;
129
+ extra: ISuperfluous;
130
+ }): OpenApiV3.IJsonSchema | undefined => {
131
+ // LIST UP METADATA
132
+ const elements: [Metadata, OpenApiV3.IJsonSchema][] = Object.values(
133
+ props.extra.patternProperties || {},
134
+ );
135
+ if (props.extra.additionalProperties)
136
+ elements.push(props.extra.additionalProperties);
137
+
138
+ // SHORT RETURN
139
+ if (elements.length === 0) return undefined;
140
+ else if (elements.length === 1) return elements[0]![1]!;
141
+
142
+ // MERGE METADATA AND GENERATE VULNERABLE SCHEMA
143
+ const meta: Metadata = elements
144
+ .map((tuple) => tuple[0])
145
+ .reduce((x, y) => Metadata.merge(x, y));
146
+ return (
147
+ application_v30_schema({
148
+ blockNever: true,
149
+ components: props.components,
150
+ attribute: {},
151
+ metadata: meta,
152
+ }) ?? undefined
153
+ );
154
+ };
142
155
 
143
156
  /**
144
157
  * @internal