typia 7.0.0-dev.20240918 → 7.0.0-dev.20240920

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 (375) 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/RandomRanger.js +1 -1
  40. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  41. package/lib/programmers/helpers/StringifyJoinder.d.ts +11 -3
  42. package/lib/programmers/helpers/StringifyJoinder.js +22 -19
  43. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
  44. package/lib/programmers/internal/application_array.js +23 -24
  45. package/lib/programmers/internal/application_array.js.map +1 -1
  46. package/lib/programmers/internal/application_bigint.js +5 -2
  47. package/lib/programmers/internal/application_bigint.js.map +1 -1
  48. package/lib/programmers/internal/application_boolean.js +5 -2
  49. package/lib/programmers/internal/application_boolean.js.map +1 -1
  50. package/lib/programmers/internal/application_escaped.js +44 -28
  51. package/lib/programmers/internal/application_escaped.js.map +1 -1
  52. package/lib/programmers/internal/application_number.js +5 -2
  53. package/lib/programmers/internal/application_number.js.map +1 -1
  54. package/lib/programmers/internal/application_plugin.js +4 -4
  55. package/lib/programmers/internal/application_plugin.js.map +1 -1
  56. package/lib/programmers/internal/application_string.js +5 -2
  57. package/lib/programmers/internal/application_string.js.map +1 -1
  58. package/lib/programmers/internal/application_templates.js +6 -3
  59. package/lib/programmers/internal/application_templates.js.map +1 -1
  60. package/lib/programmers/internal/application_v30_alias.js +37 -32
  61. package/lib/programmers/internal/application_v30_alias.js.map +1 -1
  62. package/lib/programmers/internal/application_v30_native.js +19 -23
  63. package/lib/programmers/internal/application_v30_native.js.map +1 -1
  64. package/lib/programmers/internal/application_v30_object.js +121 -117
  65. package/lib/programmers/internal/application_v30_object.js.map +1 -1
  66. package/lib/programmers/internal/application_v30_schema.js +227 -183
  67. package/lib/programmers/internal/application_v30_schema.js.map +1 -1
  68. package/lib/programmers/internal/application_v30_tuple.js +12 -11
  69. package/lib/programmers/internal/application_v30_tuple.js.map +1 -1
  70. package/lib/programmers/internal/application_v31_alias.js +29 -23
  71. package/lib/programmers/internal/application_v31_alias.js.map +1 -1
  72. package/lib/programmers/internal/application_v31_constant.js +9 -6
  73. package/lib/programmers/internal/application_v31_constant.js.map +1 -1
  74. package/lib/programmers/internal/application_v31_native.js +15 -17
  75. package/lib/programmers/internal/application_v31_native.js.map +1 -1
  76. package/lib/programmers/internal/application_v31_object.js +97 -89
  77. package/lib/programmers/internal/application_v31_object.js.map +1 -1
  78. package/lib/programmers/internal/application_v31_schema.js +223 -178
  79. package/lib/programmers/internal/application_v31_schema.js.map +1 -1
  80. package/lib/programmers/internal/application_v31_tuple.js +10 -12
  81. package/lib/programmers/internal/application_v31_tuple.js.map +1 -1
  82. package/lib/programmers/internal/check_object.js +8 -8
  83. package/lib/programmers/internal/check_object.js.map +1 -1
  84. package/lib/programmers/internal/llm_schema_array.js +10 -7
  85. package/lib/programmers/internal/llm_schema_array.js.map +1 -1
  86. package/lib/programmers/internal/llm_schema_station.js +4 -1
  87. package/lib/programmers/internal/llm_schema_station.js.map +1 -1
  88. package/lib/programmers/json/JsonApplicationProgrammer.js +12 -2
  89. package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
  90. package/lib/programmers/json/JsonStringifyProgrammer.js +46 -37
  91. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  92. package/lib/programmers/misc/MiscCloneProgrammer.js +5 -2
  93. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  94. package/lib/programmers/misc/MiscPruneProgrammer.js +5 -2
  95. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  96. package/lib/programmers/notations/NotationGeneralProgrammer.js +5 -2
  97. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  98. package/lib/transformers/features/llm/LlmApplicationTransformer.js +5 -2
  99. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  100. package/package.json +2 -2
  101. package/src/executable/TypiaSetupWizard.ts +17 -6
  102. package/src/executable/setup/PackageManager.ts +16 -16
  103. package/src/factories/JsonMetadataFactory.ts +60 -60
  104. package/src/factories/internal/metadata/emplace_metadata_alias.ts +32 -32
  105. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +56 -56
  106. package/src/factories/internal/metadata/iterate_metadata_alias.ts +28 -28
  107. package/src/factories/internal/metadata/iterate_metadata_collection.ts +145 -145
  108. package/src/factories/internal/metadata/iterate_metadata_escape.ts +47 -47
  109. package/src/factories/internal/metadata/iterate_metadata_function.ts +4 -2
  110. package/src/factories/internal/metadata/iterate_metadata_sort.ts +83 -83
  111. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  112. package/src/programmers/AssertProgrammer.ts +3 -3
  113. package/src/programmers/CheckerProgrammer.ts +112 -71
  114. package/src/programmers/FeatureProgrammer.ts +31 -30
  115. package/src/programmers/IsProgrammer.ts +7 -7
  116. package/src/programmers/ValidateProgrammer.ts +3 -3
  117. package/src/programmers/helpers/AtomicPredicator.ts +21 -10
  118. package/src/programmers/helpers/CloneJoiner.ts +21 -18
  119. package/src/programmers/helpers/HttpMetadataUtil.ts +11 -11
  120. package/src/programmers/helpers/NotationJoiner.ts +21 -18
  121. package/src/programmers/helpers/PruneJoiner.ts +87 -82
  122. package/src/programmers/helpers/RandomRanger.ts +171 -171
  123. package/src/programmers/helpers/StringifyJoinder.ts +32 -28
  124. package/src/programmers/http/HttpParameterProgrammer.ts +110 -110
  125. package/src/programmers/internal/application_array.ts +30 -35
  126. package/src/programmers/internal/application_bigint.ts +4 -4
  127. package/src/programmers/internal/application_boolean.ts +4 -4
  128. package/src/programmers/internal/application_escaped.ts +56 -34
  129. package/src/programmers/internal/application_number.ts +4 -4
  130. package/src/programmers/internal/application_plugin.ts +7 -7
  131. package/src/programmers/internal/application_string.ts +4 -4
  132. package/src/programmers/internal/application_templates.ts +4 -4
  133. package/src/programmers/internal/application_v30_alias.ts +34 -27
  134. package/src/programmers/internal/application_v30_native.ts +21 -20
  135. package/src/programmers/internal/application_v30_object.ts +106 -93
  136. package/src/programmers/internal/application_v30_schema.ts +187 -128
  137. package/src/programmers/internal/application_v30_tuple.ts +22 -22
  138. package/src/programmers/internal/application_v31_alias.ts +32 -26
  139. package/src/programmers/internal/application_v31_constant.ts +4 -4
  140. package/src/programmers/internal/application_v31_native.ts +17 -16
  141. package/src/programmers/internal/application_v31_object.ts +103 -89
  142. package/src/programmers/internal/application_v31_schema.ts +180 -124
  143. package/src/programmers/internal/application_v31_tuple.ts +13 -12
  144. package/src/programmers/internal/check_array_length.ts +45 -45
  145. package/src/programmers/internal/check_bigint.ts +49 -49
  146. package/src/programmers/internal/check_dynamic_key.ts +174 -174
  147. package/src/programmers/internal/check_dynamic_properties.ts +211 -211
  148. package/src/programmers/internal/check_number.ts +107 -107
  149. package/src/programmers/internal/check_object.ts +64 -61
  150. package/src/programmers/internal/check_string.ts +48 -48
  151. package/src/programmers/internal/llm_schema_array.ts +4 -4
  152. package/src/programmers/internal/llm_schema_station.ts +6 -1
  153. package/src/programmers/json/JsonApplicationProgrammer.ts +12 -2
  154. package/src/programmers/json/JsonStringifyProgrammer.ts +56 -38
  155. package/src/programmers/misc/MiscCloneProgrammer.ts +5 -2
  156. package/src/programmers/misc/MiscLiteralsProgrammer.ts +77 -77
  157. package/src/programmers/misc/MiscPruneProgrammer.ts +5 -2
  158. package/src/programmers/notations/NotationGeneralProgrammer.ts +5 -2
  159. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +168 -168
  160. package/src/transform.ts +35 -35
  161. package/src/transformers/ITypiaContext.ts +15 -15
  162. package/src/transformers/NodeTransformer.ts +13 -13
  163. package/src/transformers/features/AssertTransformer.ts +24 -24
  164. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  165. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  166. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  167. package/src/transformers/features/IsTransformer.ts +18 -18
  168. package/src/transformers/features/ValidateTransformer.ts +18 -18
  169. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  170. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  171. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  172. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  173. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  174. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  175. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  176. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  177. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  178. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  179. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  180. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  181. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  182. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  183. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  184. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  185. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  186. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  187. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  188. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  189. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  190. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  191. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  192. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  193. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  194. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  195. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  196. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  197. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  198. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  199. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  200. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  201. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  202. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  203. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  204. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  205. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  206. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  207. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  208. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  209. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  210. package/src/transformers/features/llm/LlmApplicationTransformer.ts +6 -2
  211. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  212. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  213. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  214. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  215. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  216. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  217. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  218. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  219. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  220. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  221. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  222. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  223. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  224. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  225. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  226. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  227. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  228. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  229. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  230. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  231. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  232. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  233. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  234. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  235. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  236. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  237. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  238. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  239. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  240. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  241. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  242. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  243. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  244. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  245. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  246. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  247. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  248. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  249. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  250. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  251. package/src/transformers/features/reflect/ReflectNameTransformer.ts +79 -79
  252. package/lib/TypeGuardError.mjs +0 -26
  253. package/lib/TypeGuardError.mjs.map +0 -1
  254. package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmSchemaSeparator.mjs +0 -57
  255. package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmSchemaSeparator.mjs.map +0 -1
  256. package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmTypeChecker.mjs +0 -23
  257. package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmTypeChecker.mjs.map +0 -1
  258. package/lib/_external/node_modules_drange_lib/index.mjs +0 -180
  259. package/lib/_external/node_modules_drange_lib/index.mjs.map +0 -1
  260. package/lib/_external/node_modules_randexp_lib/randexp.mjs +0 -270
  261. package/lib/_external/node_modules_randexp_lib/randexp.mjs.map +0 -1
  262. package/lib/_external/node_modules_ret_lib/index.mjs +0 -296
  263. package/lib/_external/node_modules_ret_lib/index.mjs.map +0 -1
  264. package/lib/_external/node_modules_ret_lib/positions.mjs +0 -11
  265. package/lib/_external/node_modules_ret_lib/positions.mjs.map +0 -1
  266. package/lib/_external/node_modules_ret_lib/sets.mjs +0 -55
  267. package/lib/_external/node_modules_ret_lib/sets.mjs.map +0 -1
  268. package/lib/_external/node_modules_ret_lib/types.mjs +0 -13
  269. package/lib/_external/node_modules_ret_lib/types.mjs.map +0 -1
  270. package/lib/_external/node_modules_ret_lib/util.mjs +0 -116
  271. package/lib/_external/node_modules_ret_lib/util.mjs.map +0 -1
  272. package/lib/_virtual/_commonjsHelpers.mjs +0 -6
  273. package/lib/_virtual/_commonjsHelpers.mjs.map +0 -1
  274. package/lib/_virtual/index.mjs +0 -4
  275. package/lib/_virtual/index.mjs.map +0 -1
  276. package/lib/_virtual/positions.mjs +0 -4
  277. package/lib/_virtual/positions.mjs.map +0 -1
  278. package/lib/_virtual/sets.mjs +0 -4
  279. package/lib/_virtual/sets.mjs.map +0 -1
  280. package/lib/_virtual/util.mjs +0 -4
  281. package/lib/_virtual/util.mjs.map +0 -1
  282. package/lib/functional/Namespace/functional.mjs +0 -8
  283. package/lib/functional/Namespace/functional.mjs.map +0 -1
  284. package/lib/functional/Namespace/http.mjs +0 -12
  285. package/lib/functional/Namespace/http.mjs.map +0 -1
  286. package/lib/functional/Namespace/index.mjs +0 -54
  287. package/lib/functional/Namespace/index.mjs.map +0 -1
  288. package/lib/functional/Namespace/json.mjs +0 -18
  289. package/lib/functional/Namespace/json.mjs.map +0 -1
  290. package/lib/functional/Namespace/llm.mjs +0 -19
  291. package/lib/functional/Namespace/llm.mjs.map +0 -1
  292. package/lib/functional/Namespace/misc.mjs +0 -16
  293. package/lib/functional/Namespace/misc.mjs.map +0 -1
  294. package/lib/functional/Namespace/notations.mjs +0 -24
  295. package/lib/functional/Namespace/notations.mjs.map +0 -1
  296. package/lib/functional/Namespace/protobuf.mjs +0 -22
  297. package/lib/functional/Namespace/protobuf.mjs.map +0 -1
  298. package/lib/functional/_FormDataReader/_FormDataReader.mjs +0 -64
  299. package/lib/functional/_FormDataReader/_FormDataReader.mjs.map +0 -1
  300. package/lib/functional/_HeadersReader/_HeadersReader.mjs +0 -25
  301. package/lib/functional/_HeadersReader/_HeadersReader.mjs.map +0 -1
  302. package/lib/functional/_ParameterReader/_ParameterReader.mjs +0 -25
  303. package/lib/functional/_ParameterReader/_ParameterReader.mjs.map +0 -1
  304. package/lib/functional/_ProtobufReader.mjs +0 -176
  305. package/lib/functional/_ProtobufReader.mjs.map +0 -1
  306. package/lib/functional/_ProtobufSizer.mjs +0 -131
  307. package/lib/functional/_ProtobufSizer.mjs.map +0 -1
  308. package/lib/functional/_ProtobufWriter.mjs +0 -122
  309. package/lib/functional/_ProtobufWriter.mjs.map +0 -1
  310. package/lib/functional/_QueryReader/_QueryReader.mjs +0 -38
  311. package/lib/functional/_QueryReader/_QueryReader.mjs.map +0 -1
  312. package/lib/functional/_any.mjs +0 -6
  313. package/lib/functional/_any.mjs.map +0 -1
  314. package/lib/functional/_clone.mjs +0 -62
  315. package/lib/functional/_clone.mjs.map +0 -1
  316. package/lib/functional/_convention.mjs +0 -37
  317. package/lib/functional/_convention.mjs.map +0 -1
  318. package/lib/functional/_every.mjs +0 -10
  319. package/lib/functional/_every.mjs.map +0 -1
  320. package/lib/functional/_guard.mjs +0 -18
  321. package/lib/functional/_guard.mjs.map +0 -1
  322. package/lib/functional/_is_between.mjs +0 -4
  323. package/lib/functional/_is_between.mjs.map +0 -1
  324. package/lib/functional/_join.mjs +0 -44
  325. package/lib/functional/_join.mjs.map +0 -1
  326. package/lib/functional/_number.mjs +0 -15
  327. package/lib/functional/_number.mjs.map +0 -1
  328. package/lib/functional/_report.mjs +0 -16
  329. package/lib/functional/_report.mjs.map +0 -1
  330. package/lib/functional/_rest.mjs +0 -6
  331. package/lib/functional/_rest.mjs.map +0 -1
  332. package/lib/functional/_stoll.mjs +0 -12
  333. package/lib/functional/_stoll.mjs.map +0 -1
  334. package/lib/functional/_string.mjs +0 -41
  335. package/lib/functional/_string.mjs.map +0 -1
  336. package/lib/functional/_strlen.mjs +0 -11
  337. package/lib/functional/_strlen.mjs.map +0 -1
  338. package/lib/functional/_tail.mjs +0 -7
  339. package/lib/functional/_tail.mjs.map +0 -1
  340. package/lib/functional/_throws.mjs +0 -11
  341. package/lib/functional/_throws.mjs.map +0 -1
  342. package/lib/functional/is.mjs +0 -13
  343. package/lib/functional/is.mjs.map +0 -1
  344. package/lib/functional.mjs +0 -150
  345. package/lib/functional.mjs.map +0 -1
  346. package/lib/http.mjs +0 -239
  347. package/lib/http.mjs.map +0 -1
  348. package/lib/json.mjs +0 -126
  349. package/lib/json.mjs.map +0 -1
  350. package/lib/llm.mjs +0 -26
  351. package/lib/llm.mjs.map +0 -1
  352. package/lib/misc.mjs +0 -154
  353. package/lib/misc.mjs.map +0 -1
  354. package/lib/module.mjs +0 -163
  355. package/lib/module.mjs.map +0 -1
  356. package/lib/notations.mjs +0 -222
  357. package/lib/notations.mjs.map +0 -1
  358. package/lib/programmers/helpers/FunctionImporeter.d.ts +0 -1
  359. package/lib/programmers/helpers/FunctionImporeter.js +0 -18
  360. package/lib/programmers/helpers/FunctionImporeter.js.map +0 -1
  361. package/lib/protobuf.mjs +0 -157
  362. package/lib/protobuf.mjs.map +0 -1
  363. package/lib/reflect.mjs +0 -19
  364. package/lib/reflect.mjs.map +0 -1
  365. package/lib/tags/index.mjs +0 -2
  366. package/lib/tags/index.mjs.map +0 -1
  367. package/lib/utils/NamingConvention/NamingConvention.mjs +0 -84
  368. package/lib/utils/NamingConvention/NamingConvention.mjs.map +0 -1
  369. package/lib/utils/RandomGenerator/RandomGenerator.mjs +0 -104
  370. package/lib/utils/RandomGenerator/RandomGenerator.mjs.map +0 -1
  371. package/lib/utils/Singleton.mjs +0 -17
  372. package/lib/utils/Singleton.mjs.map +0 -1
  373. package/lib/utils/StringUtil/StringUtil.mjs +0 -4
  374. package/lib/utils/StringUtil/StringUtil.mjs.map +0 -1
  375. package/src/programmers/helpers/FunctionImporeter.ts +0 -1
@@ -11,18 +11,16 @@ import { IExpressionEntry } from "./IExpressionEntry";
11
11
  export namespace StringifyJoiner {
12
12
  export const object =
13
13
  (importer: FunctionImporter) =>
14
- (
15
- _input: ts.Expression,
16
- entries: IExpressionEntry<ts.Expression>[],
17
- ): ts.Expression => {
14
+ (props: { entries: IExpressionEntry<ts.Expression>[] }): ts.Expression => {
18
15
  // CHECK AND SORT ENTRIES
19
- if (entries.length === 0) return ts.factory.createStringLiteral("{}");
16
+ if (props.entries.length === 0)
17
+ return ts.factory.createStringLiteral("{}");
20
18
 
21
19
  // PROPERTIES
22
- const regular: IExpressionEntry<ts.Expression>[] = entries.filter(
20
+ const regular: IExpressionEntry<ts.Expression>[] = props.entries.filter(
23
21
  (entry) => entry.key.isSoleLiteral(),
24
22
  );
25
- const dynamic: IExpressionEntry<ts.Expression>[] = entries.filter(
23
+ const dynamic: IExpressionEntry<ts.Expression>[] = props.entries.filter(
26
24
  (entry) => !entry.key.isSoleLiteral(),
27
25
  );
28
26
  const expressions: ts.Expression[] = [
@@ -58,18 +56,18 @@ export namespace StringifyJoiner {
58
56
  ]);
59
57
  };
60
58
 
61
- export const array = (
62
- input: ts.Expression,
63
- arrow: ts.ArrowFunction,
64
- ): ts.Expression =>
59
+ export const array = (props: {
60
+ input: ts.Expression;
61
+ arrow: ts.ArrowFunction;
62
+ }): ts.Expression =>
65
63
  TemplateFactory.generate([
66
64
  ts.factory.createStringLiteral(`[`),
67
65
  ts.factory.createCallExpression(
68
66
  ts.factory.createPropertyAccessExpression(
69
67
  ts.factory.createCallExpression(
70
- IdentifierFactory.access(input)("map"),
68
+ IdentifierFactory.access(props.input)("map"),
71
69
  undefined,
72
- [arrow],
70
+ [props.arrow],
73
71
  ),
74
72
  ts.factory.createIdentifier("join"),
75
73
  ),
@@ -79,27 +77,33 @@ export namespace StringifyJoiner {
79
77
  ts.factory.createStringLiteral(`]`),
80
78
  ]);
81
79
 
82
- export const tuple = (
83
- children: ts.Expression[],
84
- rest: ts.Expression | null,
85
- ): ts.Expression => {
86
- if (children.length === 0) return ts.factory.createStringLiteral("[]");
87
- if (rest === null && children.every((child) => ts.isStringLiteral(child)))
80
+ export const tuple = (props: {
81
+ elements: ts.Expression[];
82
+ rest: ts.Expression | null;
83
+ }): ts.Expression => {
84
+ if (props.elements.length === 0)
85
+ return ts.factory.createStringLiteral("[]");
86
+ if (
87
+ props.rest === null &&
88
+ props.elements.every((child) => ts.isStringLiteral(child))
89
+ )
88
90
  return ts.factory.createStringLiteral(
89
91
  "[" +
90
- children.map((child) => (child as ts.StringLiteral).text).join(",") +
92
+ props.elements
93
+ .map((child) => (child as ts.StringLiteral).text)
94
+ .join(",") +
91
95
  "]",
92
96
  );
93
97
 
94
- const elements: ts.Expression[] = [ts.factory.createStringLiteral(`[`)];
95
- children.forEach((child, i) => {
96
- elements.push(child);
97
- if (i !== children.length - 1)
98
- elements.push(ts.factory.createStringLiteral(`,`));
98
+ const expressions: ts.Expression[] = [ts.factory.createStringLiteral(`[`)];
99
+ props.elements.forEach((child, i) => {
100
+ expressions.push(child);
101
+ if (i !== props.elements.length - 1)
102
+ expressions.push(ts.factory.createStringLiteral(`,`));
99
103
  });
100
- if (rest !== null) elements.push(rest);
104
+ if (props.rest !== null) expressions.push(props.rest);
101
105
 
102
- elements.push(ts.factory.createStringLiteral(`]`));
103
- return TemplateFactory.generate(elements);
106
+ expressions.push(ts.factory.createStringLiteral(`]`));
107
+ return TemplateFactory.generate(expressions);
104
108
  };
105
109
  }
@@ -1,110 +1,110 @@
1
- import ts from "typescript";
2
-
3
- import { IdentifierFactory } from "../../factories/IdentifierFactory";
4
- import { MetadataCollection } from "../../factories/MetadataCollection";
5
- import { MetadataFactory } from "../../factories/MetadataFactory";
6
- import { StatementFactory } from "../../factories/StatementFactory";
7
- import { TypeFactory } from "../../factories/TypeFactory";
8
-
9
- import { Metadata } from "../../schemas/metadata/Metadata";
10
-
11
- import { IProgrammerProps } from "../../transformers/IProgrammerProps";
12
- import { TransformerError } from "../../transformers/TransformerError";
13
-
14
- import { AssertProgrammer } from "../AssertProgrammer";
15
- import { FunctionImporter } from "../helpers/FunctionImporter";
16
- import { HttpMetadataUtil } from "../helpers/HttpMetadataUtil";
17
-
18
- export namespace HttpParameterProgrammer {
19
- export const write = (props: IProgrammerProps): ts.ArrowFunction => {
20
- const result = MetadataFactory.analyze({
21
- checker: props.context.checker,
22
- transformer: props.context.transformer,
23
- options: {
24
- escape: false,
25
- constant: true,
26
- absorb: true,
27
- validate,
28
- },
29
- collection: new MetadataCollection(),
30
- type: props.type,
31
- });
32
- if (result.success === false)
33
- throw TransformerError.from(props.modulo.getText())(result.errors);
34
-
35
- const atomic = [...HttpMetadataUtil.atomics(result.data)][0]!;
36
- const importer: FunctionImporter = new FunctionImporter(
37
- props.modulo.getText(),
38
- );
39
- const block: ts.Statement[] = [
40
- StatementFactory.constant(
41
- "assert",
42
- AssertProgrammer.write({
43
- ...props,
44
- context: {
45
- ...props.context,
46
- options: {
47
- numeric: true,
48
- },
49
- },
50
- config: {
51
- equals: false,
52
- guard: false,
53
- },
54
- }),
55
- ),
56
- StatementFactory.constant(
57
- "value",
58
- ts.factory.createCallExpression(importer.use(atomic), undefined, [
59
- ts.factory.createIdentifier("input"),
60
- ]),
61
- ),
62
- ts.factory.createReturnStatement(
63
- ts.factory.createCallExpression(
64
- ts.factory.createIdentifier("assert"),
65
- undefined,
66
- [ts.factory.createIdentifier("value")],
67
- ),
68
- ),
69
- ];
70
-
71
- return ts.factory.createArrowFunction(
72
- undefined,
73
- undefined,
74
- [
75
- IdentifierFactory.parameter(
76
- "input",
77
- ts.factory.createTypeReferenceNode("string"),
78
- ),
79
- ],
80
- ts.factory.createTypeReferenceNode(
81
- props.name ??
82
- TypeFactory.getFullName(props.context.checker)(props.type),
83
- ),
84
- undefined,
85
- ts.factory.createBlock(
86
- [...importer.declare(props.modulo), ...block],
87
- true,
88
- ),
89
- );
90
- };
91
-
92
- export const validate = (meta: Metadata): string[] => {
93
- const errors: string[] = [];
94
- const insert = (msg: string) => errors.push(msg);
95
-
96
- if (meta.any) insert("do not allow any type");
97
- if (meta.isRequired() === false) insert("do not allow undefindable type");
98
-
99
- const atomics = HttpMetadataUtil.atomics(meta);
100
- const expected: number =
101
- meta.atomics.length +
102
- meta.templates.length +
103
- meta.constants.map((c) => c.values.length).reduce((a, b) => a + b, 0);
104
- if (meta.size() !== expected || atomics.size === 0)
105
- insert("only atomic or constant types are allowed");
106
- if (atomics.size > 1) insert("do not allow union type");
107
-
108
- return errors;
109
- };
110
- }
1
+ import ts from "typescript";
2
+
3
+ import { IdentifierFactory } from "../../factories/IdentifierFactory";
4
+ import { MetadataCollection } from "../../factories/MetadataCollection";
5
+ import { MetadataFactory } from "../../factories/MetadataFactory";
6
+ import { StatementFactory } from "../../factories/StatementFactory";
7
+ import { TypeFactory } from "../../factories/TypeFactory";
8
+
9
+ import { Metadata } from "../../schemas/metadata/Metadata";
10
+
11
+ import { IProgrammerProps } from "../../transformers/IProgrammerProps";
12
+ import { TransformerError } from "../../transformers/TransformerError";
13
+
14
+ import { AssertProgrammer } from "../AssertProgrammer";
15
+ import { FunctionImporter } from "../helpers/FunctionImporter";
16
+ import { HttpMetadataUtil } from "../helpers/HttpMetadataUtil";
17
+
18
+ export namespace HttpParameterProgrammer {
19
+ export const write = (props: IProgrammerProps): ts.ArrowFunction => {
20
+ const result = MetadataFactory.analyze({
21
+ checker: props.context.checker,
22
+ transformer: props.context.transformer,
23
+ options: {
24
+ escape: false,
25
+ constant: true,
26
+ absorb: true,
27
+ validate,
28
+ },
29
+ collection: new MetadataCollection(),
30
+ type: props.type,
31
+ });
32
+ if (result.success === false)
33
+ throw TransformerError.from(props.modulo.getText())(result.errors);
34
+
35
+ const atomic = [...HttpMetadataUtil.atomics(result.data)][0]!;
36
+ const importer: FunctionImporter = new FunctionImporter(
37
+ props.modulo.getText(),
38
+ );
39
+ const block: ts.Statement[] = [
40
+ StatementFactory.constant(
41
+ "assert",
42
+ AssertProgrammer.write({
43
+ ...props,
44
+ context: {
45
+ ...props.context,
46
+ options: {
47
+ numeric: true,
48
+ },
49
+ },
50
+ config: {
51
+ equals: false,
52
+ guard: false,
53
+ },
54
+ }),
55
+ ),
56
+ StatementFactory.constant(
57
+ "value",
58
+ ts.factory.createCallExpression(importer.use(atomic), undefined, [
59
+ ts.factory.createIdentifier("input"),
60
+ ]),
61
+ ),
62
+ ts.factory.createReturnStatement(
63
+ ts.factory.createCallExpression(
64
+ ts.factory.createIdentifier("assert"),
65
+ undefined,
66
+ [ts.factory.createIdentifier("value")],
67
+ ),
68
+ ),
69
+ ];
70
+
71
+ return ts.factory.createArrowFunction(
72
+ undefined,
73
+ undefined,
74
+ [
75
+ IdentifierFactory.parameter(
76
+ "input",
77
+ ts.factory.createTypeReferenceNode("string"),
78
+ ),
79
+ ],
80
+ ts.factory.createTypeReferenceNode(
81
+ props.name ??
82
+ TypeFactory.getFullName(props.context.checker)(props.type),
83
+ ),
84
+ undefined,
85
+ ts.factory.createBlock(
86
+ [...importer.declare(props.modulo), ...block],
87
+ true,
88
+ ),
89
+ );
90
+ };
91
+
92
+ export const validate = (meta: Metadata): string[] => {
93
+ const errors: string[] = [];
94
+ const insert = (msg: string) => errors.push(msg);
95
+
96
+ if (meta.any) insert("do not allow any type");
97
+ if (meta.isRequired() === false) insert("do not allow undefindable type");
98
+
99
+ const atomics = HttpMetadataUtil.atomics(meta);
100
+ const expected: number =
101
+ meta.atomics.length +
102
+ meta.templates.length +
103
+ meta.constants.map((c) => c.values.length).reduce((a, b) => a + b, 0);
104
+ if (meta.size() !== expected || atomics.size === 0)
105
+ insert("only atomic or constant types are allowed");
106
+ if (atomics.size > 1) insert("do not allow union type");
107
+
108
+ return errors;
109
+ };
110
+ }
@@ -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
  };