@goast/core 0.4.1 → 0.5.0-beta.1

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 (446) hide show
  1. package/LICENSE +21 -21
  2. package/esm/mod.d.ts +1 -0
  3. package/esm/mod.d.ts.map +1 -1
  4. package/esm/mod.js +1 -0
  5. package/esm/src/codegen/config.d.ts +11 -0
  6. package/esm/src/codegen/config.d.ts.map +1 -1
  7. package/esm/src/codegen/config.js +1 -0
  8. package/esm/src/transform/helpers.d.ts.map +1 -1
  9. package/esm/src/transform/helpers.js +5 -1
  10. package/esm/src/utils/file-system.utils.d.ts +2 -0
  11. package/esm/src/utils/file-system.utils.d.ts.map +1 -1
  12. package/esm/src/utils/file-system.utils.js +11 -1
  13. package/esm/src/utils/schema.utils.d.ts +1 -0
  14. package/esm/src/utils/schema.utils.d.ts.map +1 -1
  15. package/esm/src/utils/schema.utils.js +5 -0
  16. package/esm/src/utils/source-builder.d.ts +2 -0
  17. package/esm/src/utils/source-builder.d.ts.map +1 -1
  18. package/esm/src/utils/source-builder.js +7 -1
  19. package/package.json +2 -5
  20. package/script/mod.d.ts +1 -0
  21. package/script/mod.d.ts.map +1 -1
  22. package/script/mod.js +1 -0
  23. package/script/src/codegen/config.d.ts +11 -0
  24. package/script/src/codegen/config.d.ts.map +1 -1
  25. package/script/src/codegen/config.js +1 -0
  26. package/script/src/transform/helpers.d.ts.map +1 -1
  27. package/script/src/transform/helpers.js +5 -1
  28. package/script/src/utils/file-system.utils.d.ts +2 -0
  29. package/script/src/utils/file-system.utils.d.ts.map +1 -1
  30. package/script/src/utils/file-system.utils.js +11 -0
  31. package/script/src/utils/schema.utils.d.ts +1 -0
  32. package/script/src/utils/schema.utils.d.ts.map +1 -1
  33. package/script/src/utils/schema.utils.js +6 -0
  34. package/script/src/utils/source-builder.d.ts +2 -0
  35. package/script/src/utils/source-builder.d.ts.map +1 -1
  36. package/script/src/utils/source-builder.js +8 -1
  37. package/esm/_dnt.test_polyfills.d.ts +0 -29
  38. package/esm/_dnt.test_polyfills.d.ts.map +0 -1
  39. package/esm/_dnt.test_polyfills.js +0 -31
  40. package/esm/_dnt.test_shims.d.ts +0 -14
  41. package/esm/_dnt.test_shims.d.ts.map +0 -1
  42. package/esm/_dnt.test_shims.js +0 -69
  43. package/esm/deps/jsr.io/@std/assert/1.0.11/assertion_error.d.ts +0 -26
  44. package/esm/deps/jsr.io/@std/assert/1.0.11/assertion_error.d.ts.map +0 -1
  45. package/esm/deps/jsr.io/@std/assert/1.0.11/assertion_error.js +0 -30
  46. package/esm/deps/jsr.io/@std/assert/1.0.11/false.d.ts +0 -18
  47. package/esm/deps/jsr.io/@std/assert/1.0.11/false.d.ts.map +0 -1
  48. package/esm/deps/jsr.io/@std/assert/1.0.11/false.js +0 -22
  49. package/esm/deps/jsr.io/@std/assert/1.0.11/instance_of.d.ts +0 -23
  50. package/esm/deps/jsr.io/@std/assert/1.0.11/instance_of.d.ts.map +0 -1
  51. package/esm/deps/jsr.io/@std/assert/1.0.11/instance_of.js +0 -53
  52. package/esm/deps/jsr.io/@std/assert/1.0.11/match.d.ts +0 -18
  53. package/esm/deps/jsr.io/@std/assert/1.0.11/match.d.ts.map +0 -1
  54. package/esm/deps/jsr.io/@std/assert/1.0.11/match.js +0 -26
  55. package/esm/deps/jsr.io/@std/assert/1.0.11/not_instance_of.d.ts +0 -20
  56. package/esm/deps/jsr.io/@std/assert/1.0.11/not_instance_of.d.ts.map +0 -1
  57. package/esm/deps/jsr.io/@std/assert/1.0.11/not_instance_of.js +0 -29
  58. package/esm/deps/jsr.io/@std/assert/1.0.11/not_match.d.ts +0 -18
  59. package/esm/deps/jsr.io/@std/assert/1.0.11/not_match.d.ts.map +0 -1
  60. package/esm/deps/jsr.io/@std/assert/1.0.11/not_match.js +0 -26
  61. package/esm/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.d.ts +0 -23
  62. package/esm/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.d.ts.map +0 -1
  63. package/esm/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.js +0 -32
  64. package/esm/deps/jsr.io/@std/assert/1.0.11/strict_equals.d.ts +0 -24
  65. package/esm/deps/jsr.io/@std/assert/1.0.11/strict_equals.d.ts.map +0 -1
  66. package/esm/deps/jsr.io/@std/assert/1.0.11/strict_equals.js +0 -57
  67. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_equals.d.ts +0 -20
  68. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_equals.d.ts.map +0 -1
  69. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_equals.js +0 -29
  70. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_is_error.d.ts +0 -14
  71. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_is_error.d.ts.map +0 -1
  72. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_is_error.js +0 -43
  73. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_not_equals.d.ts +0 -17
  74. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_not_equals.d.ts.map +0 -1
  75. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_not_equals.js +0 -26
  76. package/esm/deps/jsr.io/@std/expect/1.0.12/_assertions.d.ts +0 -4
  77. package/esm/deps/jsr.io/@std/expect/1.0.12/_assertions.d.ts.map +0 -1
  78. package/esm/deps/jsr.io/@std/expect/1.0.12/_assertions.js +0 -13
  79. package/esm/deps/jsr.io/@std/expect/1.0.12/_asymmetric_matchers.d.ts +0 -46
  80. package/esm/deps/jsr.io/@std/expect/1.0.12/_asymmetric_matchers.d.ts.map +0 -1
  81. package/esm/deps/jsr.io/@std/expect/1.0.12/_asymmetric_matchers.js +0 -161
  82. package/esm/deps/jsr.io/@std/expect/1.0.12/_build_message.d.ts +0 -6
  83. package/esm/deps/jsr.io/@std/expect/1.0.12/_build_message.d.ts.map +0 -1
  84. package/esm/deps/jsr.io/@std/expect/1.0.12/_build_message.js +0 -29
  85. package/esm/deps/jsr.io/@std/expect/1.0.12/_custom_equality_tester.d.ts +0 -4
  86. package/esm/deps/jsr.io/@std/expect/1.0.12/_custom_equality_tester.d.ts.map +0 -1
  87. package/esm/deps/jsr.io/@std/expect/1.0.12/_custom_equality_tester.js +0 -11
  88. package/esm/deps/jsr.io/@std/expect/1.0.12/_equal.d.ts +0 -9
  89. package/esm/deps/jsr.io/@std/expect/1.0.12/_equal.d.ts.map +0 -1
  90. package/esm/deps/jsr.io/@std/expect/1.0.12/_equal.js +0 -191
  91. package/esm/deps/jsr.io/@std/expect/1.0.12/_extend.d.ts +0 -4
  92. package/esm/deps/jsr.io/@std/expect/1.0.12/_extend.d.ts.map +0 -1
  93. package/esm/deps/jsr.io/@std/expect/1.0.12/_extend.js +0 -11
  94. package/esm/deps/jsr.io/@std/expect/1.0.12/_inspect_args.d.ts +0 -3
  95. package/esm/deps/jsr.io/@std/expect/1.0.12/_inspect_args.d.ts.map +0 -1
  96. package/esm/deps/jsr.io/@std/expect/1.0.12/_inspect_args.js +0 -12
  97. package/esm/deps/jsr.io/@std/expect/1.0.12/_matchers.d.ts +0 -34
  98. package/esm/deps/jsr.io/@std/expect/1.0.12/_matchers.d.ts.map +0 -1
  99. package/esm/deps/jsr.io/@std/expect/1.0.12/_matchers.js +0 -714
  100. package/esm/deps/jsr.io/@std/expect/1.0.12/_mock_util.d.ts +0 -11
  101. package/esm/deps/jsr.io/@std/expect/1.0.12/_mock_util.d.ts.map +0 -1
  102. package/esm/deps/jsr.io/@std/expect/1.0.12/_mock_util.js +0 -10
  103. package/esm/deps/jsr.io/@std/expect/1.0.12/_serializer.d.ts +0 -4
  104. package/esm/deps/jsr.io/@std/expect/1.0.12/_serializer.d.ts.map +0 -1
  105. package/esm/deps/jsr.io/@std/expect/1.0.12/_serializer.js +0 -10
  106. package/esm/deps/jsr.io/@std/expect/1.0.12/_types.d.ts +0 -843
  107. package/esm/deps/jsr.io/@std/expect/1.0.12/_types.d.ts.map +0 -1
  108. package/esm/deps/jsr.io/@std/expect/1.0.12/_types.js +0 -3
  109. package/esm/deps/jsr.io/@std/expect/1.0.12/_utils.d.ts +0 -9
  110. package/esm/deps/jsr.io/@std/expect/1.0.12/_utils.d.ts.map +0 -1
  111. package/esm/deps/jsr.io/@std/expect/1.0.12/_utils.js +0 -218
  112. package/esm/deps/jsr.io/@std/expect/1.0.12/expect.d.ts +0 -60
  113. package/esm/deps/jsr.io/@std/expect/1.0.12/expect.d.ts.map +0 -1
  114. package/esm/deps/jsr.io/@std/expect/1.0.12/expect.js +0 -523
  115. package/esm/deps/jsr.io/@std/expect/1.0.12/fn.d.ts +0 -29
  116. package/esm/deps/jsr.io/@std/expect/1.0.12/fn.d.ts.map +0 -1
  117. package/esm/deps/jsr.io/@std/expect/1.0.12/fn.js +0 -85
  118. package/esm/deps/jsr.io/@std/expect/1.0.12/mod.d.ts +0 -86
  119. package/esm/deps/jsr.io/@std/expect/1.0.12/mod.d.ts.map +0 -1
  120. package/esm/deps/jsr.io/@std/expect/1.0.12/mod.js +0 -88
  121. package/esm/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts +0 -160
  122. package/esm/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts.map +0 -1
  123. package/esm/deps/jsr.io/@std/internal/1.0.5/assertion_state.js +0 -199
  124. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts +0 -82
  125. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +0 -1
  126. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.js +0 -111
  127. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.d.ts +0 -140
  128. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +0 -1
  129. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.js +0 -277
  130. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts +0 -99
  131. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +0 -1
  132. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.js +0 -180
  133. package/esm/deps/jsr.io/@std/internal/1.0.5/format.d.ts +0 -2
  134. package/esm/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +0 -1
  135. package/esm/deps/jsr.io/@std/internal/1.0.5/format.js +0 -37
  136. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.d.ts +0 -159
  137. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +0 -1
  138. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.js +0 -207
  139. package/esm/deps/jsr.io/@std/internal/1.0.5/types.d.ts +0 -16
  140. package/esm/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +0 -1
  141. package/esm/deps/jsr.io/@std/internal/1.0.5/types.js +0 -2
  142. package/esm/deps/jsr.io/@std/testing/1.0.9/_test_suite.d.ts +0 -79
  143. package/esm/deps/jsr.io/@std/testing/1.0.9/_test_suite.d.ts.map +0 -1
  144. package/esm/deps/jsr.io/@std/testing/1.0.9/_test_suite.js +0 -380
  145. package/esm/deps/jsr.io/@std/testing/1.0.9/bdd.d.ts +0 -738
  146. package/esm/deps/jsr.io/@std/testing/1.0.9/bdd.d.ts.map +0 -1
  147. package/esm/deps/jsr.io/@std/testing/1.0.9/bdd.js +0 -654
  148. package/esm/src/collect/helpers.test.d.ts +0 -2
  149. package/esm/src/collect/helpers.test.d.ts.map +0 -1
  150. package/esm/src/collect/helpers.test.js +0 -77
  151. package/esm/src/transform/helpers.test.d.ts +0 -2
  152. package/esm/src/transform/helpers.test.d.ts.map +0 -1
  153. package/esm/src/transform/helpers.test.js +0 -265
  154. package/esm/src/utils/action-provider.test.d.ts +0 -2
  155. package/esm/src/utils/action-provider.test.d.ts.map +0 -1
  156. package/esm/src/utils/action-provider.test.js +0 -28
  157. package/esm/src/utils/common.utils.test.d.ts +0 -2
  158. package/esm/src/utils/common.utils.test.d.ts.map +0 -1
  159. package/esm/src/utils/common.utils.test.js +0 -18
  160. package/esm/src/utils/condition.test.d.ts +0 -2
  161. package/esm/src/utils/condition.test.d.ts.map +0 -1
  162. package/esm/src/utils/condition.test.js +0 -31
  163. package/esm/src/utils/endpoint.utils.test.d.ts +0 -2
  164. package/esm/src/utils/endpoint.utils.test.d.ts.map +0 -1
  165. package/esm/src/utils/endpoint.utils.test.js +0 -31
  166. package/esm/src/utils/factory.test.d.ts +0 -2
  167. package/esm/src/utils/factory.test.d.ts.map +0 -1
  168. package/esm/src/utils/factory.test.js +0 -34
  169. package/esm/src/utils/generator.utils.test.d.ts +0 -2
  170. package/esm/src/utils/generator.utils.test.d.ts.map +0 -1
  171. package/esm/src/utils/generator.utils.test.js +0 -13
  172. package/esm/src/utils/object.utils.test.d.ts +0 -2
  173. package/esm/src/utils/object.utils.test.d.ts.map +0 -1
  174. package/esm/src/utils/object.utils.test.js +0 -29
  175. package/esm/src/utils/schema.utils.test.d.ts +0 -2
  176. package/esm/src/utils/schema.utils.test.d.ts.map +0 -1
  177. package/esm/src/utils/schema.utils.test.js +0 -70
  178. package/esm/src/utils/source-builder.test.d.ts +0 -2
  179. package/esm/src/utils/source-builder.test.d.ts.map +0 -1
  180. package/esm/src/utils/source-builder.test.js +0 -505
  181. package/esm/src/utils/string-builder/string-builder.test.d.ts +0 -2
  182. package/esm/src/utils/string-builder/string-builder.test.d.ts.map +0 -1
  183. package/esm/src/utils/string-builder/string-builder.test.js +0 -163
  184. package/esm/src/utils/string.utils.test.d.ts +0 -2
  185. package/esm/src/utils/string.utils.test.d.ts.map +0 -1
  186. package/esm/src/utils/string.utils.test.js +0 -528
  187. package/esm/tests/openapi.test.d.ts +0 -2
  188. package/esm/tests/openapi.test.d.ts.map +0 -1
  189. package/esm/tests/openapi.test.js +0 -33
  190. package/esm/tests/schema-factory.d.ts +0 -42
  191. package/esm/tests/schema-factory.d.ts.map +0 -1
  192. package/esm/tests/schema-factory.js +0 -138
  193. package/script/_dnt.test_polyfills.d.ts +0 -29
  194. package/script/_dnt.test_polyfills.d.ts.map +0 -1
  195. package/script/_dnt.test_polyfills.js +0 -32
  196. package/script/_dnt.test_shims.d.ts +0 -14
  197. package/script/_dnt.test_shims.d.ts.map +0 -1
  198. package/script/_dnt.test_shims.js +0 -79
  199. package/script/deps/jsr.io/@std/assert/1.0.11/assertion_error.d.ts +0 -26
  200. package/script/deps/jsr.io/@std/assert/1.0.11/assertion_error.d.ts.map +0 -1
  201. package/script/deps/jsr.io/@std/assert/1.0.11/assertion_error.js +0 -34
  202. package/script/deps/jsr.io/@std/assert/1.0.11/false.d.ts +0 -18
  203. package/script/deps/jsr.io/@std/assert/1.0.11/false.d.ts.map +0 -1
  204. package/script/deps/jsr.io/@std/assert/1.0.11/false.js +0 -25
  205. package/script/deps/jsr.io/@std/assert/1.0.11/instance_of.d.ts +0 -23
  206. package/script/deps/jsr.io/@std/assert/1.0.11/instance_of.d.ts.map +0 -1
  207. package/script/deps/jsr.io/@std/assert/1.0.11/instance_of.js +0 -56
  208. package/script/deps/jsr.io/@std/assert/1.0.11/match.d.ts +0 -18
  209. package/script/deps/jsr.io/@std/assert/1.0.11/match.d.ts.map +0 -1
  210. package/script/deps/jsr.io/@std/assert/1.0.11/match.js +0 -29
  211. package/script/deps/jsr.io/@std/assert/1.0.11/not_instance_of.d.ts +0 -20
  212. package/script/deps/jsr.io/@std/assert/1.0.11/not_instance_of.d.ts.map +0 -1
  213. package/script/deps/jsr.io/@std/assert/1.0.11/not_instance_of.js +0 -32
  214. package/script/deps/jsr.io/@std/assert/1.0.11/not_match.d.ts +0 -18
  215. package/script/deps/jsr.io/@std/assert/1.0.11/not_match.d.ts.map +0 -1
  216. package/script/deps/jsr.io/@std/assert/1.0.11/not_match.js +0 -29
  217. package/script/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.d.ts +0 -23
  218. package/script/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.d.ts.map +0 -1
  219. package/script/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.js +0 -35
  220. package/script/deps/jsr.io/@std/assert/1.0.11/strict_equals.d.ts +0 -24
  221. package/script/deps/jsr.io/@std/assert/1.0.11/strict_equals.d.ts.map +0 -1
  222. package/script/deps/jsr.io/@std/assert/1.0.11/strict_equals.js +0 -60
  223. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_equals.d.ts +0 -20
  224. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_equals.d.ts.map +0 -1
  225. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_equals.js +0 -32
  226. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_is_error.d.ts +0 -14
  227. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_is_error.d.ts.map +0 -1
  228. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_is_error.js +0 -46
  229. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_not_equals.d.ts +0 -17
  230. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_not_equals.d.ts.map +0 -1
  231. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_not_equals.js +0 -29
  232. package/script/deps/jsr.io/@std/expect/1.0.12/_assertions.d.ts +0 -4
  233. package/script/deps/jsr.io/@std/expect/1.0.12/_assertions.d.ts.map +0 -1
  234. package/script/deps/jsr.io/@std/expect/1.0.12/_assertions.js +0 -18
  235. package/script/deps/jsr.io/@std/expect/1.0.12/_asymmetric_matchers.d.ts +0 -46
  236. package/script/deps/jsr.io/@std/expect/1.0.12/_asymmetric_matchers.d.ts.map +0 -1
  237. package/script/deps/jsr.io/@std/expect/1.0.12/_asymmetric_matchers.js +0 -183
  238. package/script/deps/jsr.io/@std/expect/1.0.12/_build_message.d.ts +0 -6
  239. package/script/deps/jsr.io/@std/expect/1.0.12/_build_message.d.ts.map +0 -1
  240. package/script/deps/jsr.io/@std/expect/1.0.12/_build_message.js +0 -33
  241. package/script/deps/jsr.io/@std/expect/1.0.12/_custom_equality_tester.d.ts +0 -4
  242. package/script/deps/jsr.io/@std/expect/1.0.12/_custom_equality_tester.d.ts.map +0 -1
  243. package/script/deps/jsr.io/@std/expect/1.0.12/_custom_equality_tester.js +0 -15
  244. package/script/deps/jsr.io/@std/expect/1.0.12/_equal.d.ts +0 -9
  245. package/script/deps/jsr.io/@std/expect/1.0.12/_equal.d.ts.map +0 -1
  246. package/script/deps/jsr.io/@std/expect/1.0.12/_equal.js +0 -194
  247. package/script/deps/jsr.io/@std/expect/1.0.12/_extend.d.ts +0 -4
  248. package/script/deps/jsr.io/@std/expect/1.0.12/_extend.d.ts.map +0 -1
  249. package/script/deps/jsr.io/@std/expect/1.0.12/_extend.js +0 -15
  250. package/script/deps/jsr.io/@std/expect/1.0.12/_inspect_args.d.ts +0 -3
  251. package/script/deps/jsr.io/@std/expect/1.0.12/_inspect_args.d.ts.map +0 -1
  252. package/script/deps/jsr.io/@std/expect/1.0.12/_inspect_args.js +0 -17
  253. package/script/deps/jsr.io/@std/expect/1.0.12/_matchers.d.ts +0 -34
  254. package/script/deps/jsr.io/@std/expect/1.0.12/_matchers.d.ts.map +0 -1
  255. package/script/deps/jsr.io/@std/expect/1.0.12/_matchers.js +0 -748
  256. package/script/deps/jsr.io/@std/expect/1.0.12/_mock_util.d.ts +0 -11
  257. package/script/deps/jsr.io/@std/expect/1.0.12/_mock_util.d.ts.map +0 -1
  258. package/script/deps/jsr.io/@std/expect/1.0.12/_mock_util.js +0 -14
  259. package/script/deps/jsr.io/@std/expect/1.0.12/_serializer.d.ts +0 -4
  260. package/script/deps/jsr.io/@std/expect/1.0.12/_serializer.d.ts.map +0 -1
  261. package/script/deps/jsr.io/@std/expect/1.0.12/_serializer.js +0 -14
  262. package/script/deps/jsr.io/@std/expect/1.0.12/_types.d.ts +0 -843
  263. package/script/deps/jsr.io/@std/expect/1.0.12/_types.d.ts.map +0 -1
  264. package/script/deps/jsr.io/@std/expect/1.0.12/_types.js +0 -4
  265. package/script/deps/jsr.io/@std/expect/1.0.12/_utils.d.ts +0 -9
  266. package/script/deps/jsr.io/@std/expect/1.0.12/_utils.d.ts.map +0 -1
  267. package/script/deps/jsr.io/@std/expect/1.0.12/_utils.js +0 -226
  268. package/script/deps/jsr.io/@std/expect/1.0.12/expect.d.ts +0 -60
  269. package/script/deps/jsr.io/@std/expect/1.0.12/expect.d.ts.map +0 -1
  270. package/script/deps/jsr.io/@std/expect/1.0.12/expect.js +0 -527
  271. package/script/deps/jsr.io/@std/expect/1.0.12/fn.d.ts +0 -29
  272. package/script/deps/jsr.io/@std/expect/1.0.12/fn.d.ts.map +0 -1
  273. package/script/deps/jsr.io/@std/expect/1.0.12/fn.js +0 -88
  274. package/script/deps/jsr.io/@std/expect/1.0.12/mod.d.ts +0 -86
  275. package/script/deps/jsr.io/@std/expect/1.0.12/mod.d.ts.map +0 -1
  276. package/script/deps/jsr.io/@std/expect/1.0.12/mod.js +0 -91
  277. package/script/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts +0 -160
  278. package/script/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts.map +0 -1
  279. package/script/deps/jsr.io/@std/internal/1.0.5/assertion_state.js +0 -204
  280. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts +0 -82
  281. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +0 -1
  282. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.js +0 -116
  283. package/script/deps/jsr.io/@std/internal/1.0.5/diff.d.ts +0 -140
  284. package/script/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +0 -1
  285. package/script/deps/jsr.io/@std/internal/1.0.5/diff.js +0 -284
  286. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts +0 -99
  287. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +0 -1
  288. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.js +0 -186
  289. package/script/deps/jsr.io/@std/internal/1.0.5/format.d.ts +0 -2
  290. package/script/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +0 -1
  291. package/script/deps/jsr.io/@std/internal/1.0.5/format.js +0 -41
  292. package/script/deps/jsr.io/@std/internal/1.0.5/styles.d.ts +0 -159
  293. package/script/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +0 -1
  294. package/script/deps/jsr.io/@std/internal/1.0.5/styles.js +0 -220
  295. package/script/deps/jsr.io/@std/internal/1.0.5/types.d.ts +0 -16
  296. package/script/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +0 -1
  297. package/script/deps/jsr.io/@std/internal/1.0.5/types.js +0 -3
  298. package/script/deps/jsr.io/@std/testing/1.0.9/_test_suite.d.ts +0 -79
  299. package/script/deps/jsr.io/@std/testing/1.0.9/_test_suite.d.ts.map +0 -1
  300. package/script/deps/jsr.io/@std/testing/1.0.9/_test_suite.js +0 -385
  301. package/script/deps/jsr.io/@std/testing/1.0.9/bdd.d.ts +0 -738
  302. package/script/deps/jsr.io/@std/testing/1.0.9/bdd.d.ts.map +0 -1
  303. package/script/deps/jsr.io/@std/testing/1.0.9/bdd.js +0 -665
  304. package/script/src/collect/helpers.test.d.ts +0 -2
  305. package/script/src/collect/helpers.test.d.ts.map +0 -1
  306. package/script/src/collect/helpers.test.js +0 -79
  307. package/script/src/transform/helpers.test.d.ts +0 -2
  308. package/script/src/transform/helpers.test.d.ts.map +0 -1
  309. package/script/src/transform/helpers.test.js +0 -267
  310. package/script/src/utils/action-provider.test.d.ts +0 -2
  311. package/script/src/utils/action-provider.test.d.ts.map +0 -1
  312. package/script/src/utils/action-provider.test.js +0 -30
  313. package/script/src/utils/common.utils.test.d.ts +0 -2
  314. package/script/src/utils/common.utils.test.d.ts.map +0 -1
  315. package/script/src/utils/common.utils.test.js +0 -20
  316. package/script/src/utils/condition.test.d.ts +0 -2
  317. package/script/src/utils/condition.test.d.ts.map +0 -1
  318. package/script/src/utils/condition.test.js +0 -33
  319. package/script/src/utils/endpoint.utils.test.d.ts +0 -2
  320. package/script/src/utils/endpoint.utils.test.d.ts.map +0 -1
  321. package/script/src/utils/endpoint.utils.test.js +0 -33
  322. package/script/src/utils/factory.test.d.ts +0 -2
  323. package/script/src/utils/factory.test.d.ts.map +0 -1
  324. package/script/src/utils/factory.test.js +0 -36
  325. package/script/src/utils/generator.utils.test.d.ts +0 -2
  326. package/script/src/utils/generator.utils.test.d.ts.map +0 -1
  327. package/script/src/utils/generator.utils.test.js +0 -15
  328. package/script/src/utils/object.utils.test.d.ts +0 -2
  329. package/script/src/utils/object.utils.test.d.ts.map +0 -1
  330. package/script/src/utils/object.utils.test.js +0 -31
  331. package/script/src/utils/schema.utils.test.d.ts +0 -2
  332. package/script/src/utils/schema.utils.test.d.ts.map +0 -1
  333. package/script/src/utils/schema.utils.test.js +0 -72
  334. package/script/src/utils/source-builder.test.d.ts +0 -2
  335. package/script/src/utils/source-builder.test.d.ts.map +0 -1
  336. package/script/src/utils/source-builder.test.js +0 -507
  337. package/script/src/utils/string-builder/string-builder.test.d.ts +0 -2
  338. package/script/src/utils/string-builder/string-builder.test.d.ts.map +0 -1
  339. package/script/src/utils/string-builder/string-builder.test.js +0 -165
  340. package/script/src/utils/string.utils.test.d.ts +0 -2
  341. package/script/src/utils/string.utils.test.d.ts.map +0 -1
  342. package/script/src/utils/string.utils.test.js +0 -530
  343. package/script/tests/openapi.test.d.ts +0 -2
  344. package/script/tests/openapi.test.d.ts.map +0 -1
  345. package/script/tests/openapi.test.js +0 -35
  346. package/script/tests/schema-factory.d.ts +0 -42
  347. package/script/tests/schema-factory.d.ts.map +0 -1
  348. package/script/tests/schema-factory.js +0 -162
  349. package/src/_dnt.shims.ts +0 -69
  350. package/src/_dnt.test_polyfills.ts +0 -70
  351. package/src/_dnt.test_shims.ts +0 -72
  352. package/src/deps/jsr.io/@std/assert/1.0.11/assertion_error.ts +0 -31
  353. package/src/deps/jsr.io/@std/assert/1.0.11/false.ts +0 -26
  354. package/src/deps/jsr.io/@std/assert/1.0.11/instance_of.ts +0 -64
  355. package/src/deps/jsr.io/@std/assert/1.0.11/match.ts +0 -30
  356. package/src/deps/jsr.io/@std/assert/1.0.11/not_instance_of.ts +0 -33
  357. package/src/deps/jsr.io/@std/assert/1.0.11/not_match.ts +0 -30
  358. package/src/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.ts +0 -42
  359. package/src/deps/jsr.io/@std/assert/1.0.11/strict_equals.ts +0 -67
  360. package/src/deps/jsr.io/@std/expect/1.0.12/_assert_equals.ts +0 -38
  361. package/src/deps/jsr.io/@std/expect/1.0.12/_assert_is_error.ts +0 -54
  362. package/src/deps/jsr.io/@std/expect/1.0.12/_assert_not_equals.ts +0 -35
  363. package/src/deps/jsr.io/@std/expect/1.0.12/_assertions.ts +0 -18
  364. package/src/deps/jsr.io/@std/expect/1.0.12/_asymmetric_matchers.ts +0 -198
  365. package/src/deps/jsr.io/@std/expect/1.0.12/_build_message.ts +0 -51
  366. package/src/deps/jsr.io/@std/expect/1.0.12/_custom_equality_tester.ts +0 -19
  367. package/src/deps/jsr.io/@std/expect/1.0.12/_equal.ts +0 -230
  368. package/src/deps/jsr.io/@std/expect/1.0.12/_extend.ts +0 -16
  369. package/src/deps/jsr.io/@std/expect/1.0.12/_inspect_args.ts +0 -15
  370. package/src/deps/jsr.io/@std/expect/1.0.12/_matchers.ts +0 -1028
  371. package/src/deps/jsr.io/@std/expect/1.0.12/_mock_util.ts +0 -22
  372. package/src/deps/jsr.io/@std/expect/1.0.12/_serializer.ts +0 -15
  373. package/src/deps/jsr.io/@std/expect/1.0.12/_types.ts +0 -923
  374. package/src/deps/jsr.io/@std/expect/1.0.12/_utils.ts +0 -283
  375. package/src/deps/jsr.io/@std/expect/1.0.12/expect.ts +0 -620
  376. package/src/deps/jsr.io/@std/expect/1.0.12/fn.ts +0 -91
  377. package/src/deps/jsr.io/@std/expect/1.0.12/mod.ts +0 -89
  378. package/src/deps/jsr.io/@std/internal/1.0.5/assertion_state.ts +0 -214
  379. package/src/deps/jsr.io/@std/internal/1.0.5/build_message.ts +0 -134
  380. package/src/deps/jsr.io/@std/internal/1.0.5/diff.ts +0 -317
  381. package/src/deps/jsr.io/@std/internal/1.0.5/diff_str.ts +0 -204
  382. package/src/deps/jsr.io/@std/internal/1.0.5/format.ts +0 -39
  383. package/src/deps/jsr.io/@std/internal/1.0.5/styles.ts +0 -233
  384. package/src/deps/jsr.io/@std/internal/1.0.5/types.ts +0 -18
  385. package/src/deps/jsr.io/@std/testing/1.0.9/_test_suite.ts +0 -448
  386. package/src/deps/jsr.io/@std/testing/1.0.9/bdd.ts +0 -1288
  387. package/src/mod.ts +0 -33
  388. package/src/src/ast/node.ts +0 -46
  389. package/src/src/codegen/config.ts +0 -28
  390. package/src/src/codegen/endpoints-generator.ts +0 -72
  391. package/src/src/codegen/generator.ts +0 -181
  392. package/src/src/codegen/internal-utils.ts +0 -6
  393. package/src/src/codegen/schemas-generator.ts +0 -87
  394. package/src/src/codegen/services-generator.ts +0 -77
  395. package/src/src/codegen/types.ts +0 -37
  396. package/src/src/collect/collector.ts +0 -142
  397. package/src/src/collect/helpers.test.ts +0 -91
  398. package/src/src/collect/helpers.ts +0 -36
  399. package/src/src/collect/types.ts +0 -21
  400. package/src/src/internal-utils.ts +0 -5
  401. package/src/src/parse/deref-proxy.ts +0 -64
  402. package/src/src/parse/openapi-types.ts +0 -949
  403. package/src/src/parse/parser.ts +0 -220
  404. package/src/src/parse/types.ts +0 -27
  405. package/src/src/transform/api-types.ts +0 -243
  406. package/src/src/transform/helpers.test.ts +0 -316
  407. package/src/src/transform/helpers.ts +0 -211
  408. package/src/src/transform/transform-document.ts +0 -35
  409. package/src/src/transform/transform-endpoint.ts +0 -331
  410. package/src/src/transform/transform-schema.ts +0 -217
  411. package/src/src/transform/transformer.ts +0 -52
  412. package/src/src/transform/types.ts +0 -52
  413. package/src/src/utils/action-provider.test.ts +0 -32
  414. package/src/src/utils/action-provider.ts +0 -58
  415. package/src/src/utils/array.utils.ts +0 -7
  416. package/src/src/utils/asset-manager.ts +0 -51
  417. package/src/src/utils/class.utils.ts +0 -40
  418. package/src/src/utils/common.utils.test.ts +0 -22
  419. package/src/src/utils/common.utils.ts +0 -86
  420. package/src/src/utils/condition.test.ts +0 -36
  421. package/src/src/utils/condition.ts +0 -7
  422. package/src/src/utils/endpoint.utils.test.ts +0 -36
  423. package/src/src/utils/endpoint.utils.ts +0 -10
  424. package/src/src/utils/error.utils.ts +0 -3
  425. package/src/src/utils/factory.test.ts +0 -31
  426. package/src/src/utils/factory.ts +0 -42
  427. package/src/src/utils/file-system.utils.ts +0 -48
  428. package/src/src/utils/generator.utils.test.ts +0 -16
  429. package/src/src/utils/generator.utils.ts +0 -6
  430. package/src/src/utils/object.utils.test.ts +0 -33
  431. package/src/src/utils/object.utils.ts +0 -32
  432. package/src/src/utils/schema.utils.test.ts +0 -88
  433. package/src/src/utils/schema.utils.ts +0 -142
  434. package/src/src/utils/source-builder.test.ts +0 -657
  435. package/src/src/utils/source-builder.ts +0 -589
  436. package/src/src/utils/string-builder/options.ts +0 -19
  437. package/src/src/utils/string-builder/string-builder.test.ts +0 -188
  438. package/src/src/utils/string-builder/string-builder.ts +0 -165
  439. package/src/src/utils/string-builder/utils.ts +0 -69
  440. package/src/src/utils/string.utils.test.ts +0 -691
  441. package/src/src/utils/string.utils.ts +0 -369
  442. package/src/src/utils/string.utils.types.ts +0 -179
  443. package/src/src/utils/type.utils.ts +0 -93
  444. package/src/tests/openapi.test.ts +0 -50
  445. package/src/tests/schema-factory.ts +0 -185
  446. package/test_runner.js +0 -221
@@ -1,331 +0,0 @@
1
- import type { OpenApiCollectorEndpointInfo } from '../collect/types.js';
2
- import { isOpenApiObjectProperty } from '../internal-utils.js';
3
- import type {
4
- OpenApiHeader,
5
- OpenApiMediaType,
6
- OpenApiParameter,
7
- OpenApiPathItem,
8
- OpenApiRequestBody,
9
- OpenApiResponse,
10
- OpenApiSchema,
11
- } from '../parse/openapi-types.js';
12
- import type { Deref } from '../parse/types.js';
13
- import type {
14
- ApiContent,
15
- ApiEndpoint,
16
- ApiHeader,
17
- ApiParameter,
18
- ApiParameterTarget,
19
- ApiPath,
20
- ApiRequestBody,
21
- ApiResponse,
22
- } from './api-types.js';
23
- import { determineEndpointName, getCustomFields, getOpenApiObjectIdentifier } from './helpers.js';
24
- import { transformSchema } from './transform-schema.js';
25
- import type { OpenApiTransformerContext } from './types.js';
26
-
27
- export function transformEndpoint(context: OpenApiTransformerContext, endpointInfo: OpenApiCollectorEndpointInfo) {
28
- const apiPath = transformApiPath(context, endpointInfo.path, endpointInfo.pathItem);
29
- const endpoint: ApiEndpoint = {
30
- $src: {
31
- ...endpointInfo.operation.$src,
32
- component: endpointInfo.operation,
33
- },
34
- $ref: undefined,
35
- id: context.idGenerator.generateId('endpoint'),
36
- name: determineEndpointName(endpointInfo),
37
- path: endpointInfo.path,
38
- pathInfo: apiPath,
39
- method: endpointInfo.method,
40
- summary: endpointInfo.operation.summary,
41
- description: endpointInfo.operation.description,
42
- parameters: combineParameters(
43
- apiPath.parameters,
44
- endpointInfo.operation.parameters?.map((p) => transformParameter(context, p)) ?? [],
45
- ),
46
- deprecated: endpointInfo.operation.deprecated ?? false,
47
- requestBody: endpointInfo.operation.requestBody
48
- ? transformRequestBody(context, endpointInfo.operation.requestBody)
49
- : undefined,
50
- responses: transformResponses(context, endpointInfo.operation.responses),
51
- tags: endpointInfo.operation.tags ?? [],
52
- custom: getCustomFields(endpointInfo.operation),
53
- };
54
-
55
- const tags = endpoint.tags.length === 0 ? [''] : endpoint.tags;
56
- for (const tag of tags) {
57
- let service = context.services.get(tag);
58
- if (!service) {
59
- const id = context.idGenerator.generateId('service');
60
- service = {
61
- $ref: undefined,
62
- id,
63
- name: tag || id,
64
- description: undefined,
65
- endpoints: [],
66
- };
67
- context.services.set(tag, service);
68
- }
69
-
70
- service.endpoints.push(endpoint);
71
- }
72
-
73
- apiPath[endpointInfo.method] = endpoint;
74
- context.endpoints.set(`${endpointInfo.method}:${endpointInfo.path}`, endpoint);
75
- return endpoint;
76
- }
77
-
78
- function transformApiPath(
79
- context: OpenApiTransformerContext,
80
- path: string,
81
- pathItem: Deref<OpenApiPathItem>,
82
- isReference = false,
83
- ): ApiPath {
84
- const existingPath = context.paths.get(path);
85
- if (existingPath) return existingPath;
86
-
87
- const openApiObjectId = getOpenApiObjectIdentifier(pathItem);
88
- const existing = context.transformed.paths.get(openApiObjectId);
89
- if (existing) return existing;
90
-
91
- const ref = pathItem.$ref ? transformApiPath(context, path, pathItem.$ref, true) : undefined;
92
- const apiPath: ApiPath = {
93
- $src: {
94
- ...pathItem.$src,
95
- component: pathItem,
96
- },
97
- $ref: ref,
98
- id: context.idGenerator.generateId('path'),
99
- summary: pathItem.summary,
100
- description: pathItem.description,
101
- path: path,
102
- parameters: pathItem.parameters?.map((p) => transformParameter(context, p)) ?? [],
103
-
104
- // HTTP methods are added later (see transformEndpoint)
105
- get: undefined,
106
- put: undefined,
107
- post: undefined,
108
- delete: undefined,
109
- options: undefined,
110
- head: undefined,
111
- patch: undefined,
112
- trace: undefined,
113
- };
114
-
115
- context.transformed.paths.set(openApiObjectId, apiPath);
116
- if (!isReference) context.paths.set(path, apiPath);
117
- return apiPath;
118
- }
119
-
120
- function transformParameter(context: OpenApiTransformerContext, parameter: Deref<OpenApiParameter>): ApiParameter {
121
- const openApiObjectId = getOpenApiObjectIdentifier(parameter);
122
- const existing = context.transformed.parameters.get(openApiObjectId);
123
- if (existing) return existing;
124
-
125
- const ref = parameter.$ref ? transformParameter(context, parameter.$ref) : undefined;
126
- const id = context.idGenerator.generateId('parameter');
127
- const p: ApiParameter = {
128
- $src: {
129
- ...parameter.$src,
130
- component: parameter,
131
- },
132
- $ref: ref,
133
- id: id,
134
- name: parameter.name ?? id,
135
- target: parameter.in as ApiParameterTarget,
136
- description: parameter.description,
137
- required: parameter.required ?? false,
138
- deprecated: parameter.deprecated ?? false,
139
- allowEmptyValue: parameter.allowEmptyValue,
140
- style: parameter.style,
141
- explode: parameter.explode,
142
- allowReserved: parameter.allowReserved,
143
- schema: parameter.schema ? transformSchema(context, parameter.schema) : undefined,
144
- };
145
-
146
- context.transformed.parameters.set(openApiObjectId, p);
147
- return p;
148
- }
149
-
150
- function transformRequestBody(
151
- context: OpenApiTransformerContext,
152
- requestBody: Deref<OpenApiRequestBody>,
153
- ): ApiRequestBody {
154
- const openApiObjectId = getOpenApiObjectIdentifier(requestBody);
155
- const existing = context.transformed.requestBodies.get(openApiObjectId);
156
- if (existing) return existing;
157
-
158
- const ref = requestBody.$ref ? transformRequestBody(context, requestBody.$ref) : undefined;
159
- const rb: ApiRequestBody = {
160
- $src: {
161
- ...requestBody.$src,
162
- component: requestBody,
163
- },
164
- $ref: ref,
165
- id: context.idGenerator.generateId('requestBody'),
166
- description: requestBody.description,
167
- required: requestBody.required ?? false,
168
- content: transformContent(context, requestBody.content),
169
- };
170
-
171
- context.transformed.requestBodies.set(openApiObjectId, rb);
172
- return rb;
173
- }
174
-
175
- function transformResponses(
176
- context: OpenApiTransformerContext,
177
- responses?: Record<string, Deref<OpenApiResponse>>,
178
- ): ApiResponse[] {
179
- if (!responses) return [];
180
- const result: ApiResponse[] = [];
181
- for (const status of Object.keys(responses)) {
182
- if (!isOpenApiObjectProperty(status)) continue;
183
- result.push(transformResponse(context, responses[status], status));
184
- }
185
- return result;
186
- }
187
-
188
- function transformResponse(
189
- context: OpenApiTransformerContext,
190
- response: Deref<OpenApiResponse>,
191
- status: string,
192
- ): ApiResponse {
193
- const openApiObjectId = getOpenApiObjectIdentifier(response);
194
- const existing = context.transformed.responses.get(openApiObjectId);
195
- if (existing) return existing;
196
-
197
- const ref = response.$ref ? transformResponse(context, response.$ref, status) : undefined;
198
- const r: ApiResponse = {
199
- $src: {
200
- ...response.$src,
201
- component: response,
202
- },
203
- $ref: ref,
204
- id: context.idGenerator.generateId('response'),
205
- statusCode: Number(status) || undefined,
206
- description: response.description,
207
- headers: transformHeaders(context, response.headers),
208
- contentOptions: transformContent(context, response.content),
209
- };
210
-
211
- context.transformed.responses.set(openApiObjectId, r);
212
- return r;
213
- }
214
-
215
- function transformContent(
216
- context: OpenApiTransformerContext,
217
- content?: Record<string, Deref<OpenApiMediaType>>,
218
- ): ApiContent[] {
219
- if (!content) return [];
220
- const result: ApiContent[] = [];
221
- for (const media of Object.keys(content)) {
222
- if (!isOpenApiObjectProperty(media)) continue;
223
- result.push(transformMediaType(context, content[media], media));
224
- }
225
- return result;
226
- }
227
-
228
- function transformMediaType(
229
- context: OpenApiTransformerContext,
230
- mediaType: Deref<OpenApiMediaType>,
231
- media: string,
232
- ): ApiContent {
233
- const openApiObjectId = getOpenApiObjectIdentifier(mediaType);
234
- const existing = context.transformed.content.get(openApiObjectId);
235
- if (existing) return existing;
236
-
237
- const ref = mediaType.$ref ? transformMediaType(context, mediaType.$ref, media) : undefined;
238
- const mt: ApiContent = {
239
- $src: {
240
- ...mediaType.$src,
241
- component: mediaType,
242
- },
243
- $ref: ref,
244
- id: context.idGenerator.generateId('content'),
245
- type: media,
246
- schema: mediaType.schema ? transformSchema(context, mediaType.schema) : undefined,
247
- };
248
-
249
- context.transformed.content.set(openApiObjectId, mt);
250
- return mt;
251
- }
252
-
253
- function combineParameters(pathParams: ApiParameter[], operationParams: ApiParameter[]): ApiParameter[] {
254
- const result = [...pathParams];
255
- for (const opParam of operationParams) {
256
- const existingParam = result.findIndex((p) => p.name === opParam.name);
257
- if (existingParam >= 0) {
258
- result[existingParam] = opParam;
259
- } else {
260
- result.push(opParam);
261
- }
262
- }
263
- return result;
264
- }
265
-
266
- function isSchema(obj: Record<string, unknown>): obj is Deref<OpenApiSchema> {
267
- return obj && typeof obj === 'object' && obj['type'] !== undefined;
268
- }
269
-
270
- function transformHeaders(
271
- context: OpenApiTransformerContext,
272
- headers?: Record<string, Deref<OpenApiHeader> | Deref<OpenApiSchema>>,
273
- ): ApiHeader[] {
274
- if (!headers) return [];
275
- const result: ApiHeader[] = [];
276
- for (const name of Object.keys(headers)) {
277
- if (!isOpenApiObjectProperty(name)) continue;
278
- result.push(transformHeader(context, headers[name], name));
279
- }
280
- return result;
281
- }
282
-
283
- function transformHeader(
284
- context: OpenApiTransformerContext,
285
- header: Deref<OpenApiHeader> | Deref<OpenApiSchema>,
286
- name: string,
287
- ): ApiHeader {
288
- const openApiObjectId = getOpenApiObjectIdentifier(header);
289
- const existing = context.transformed.headers.get(openApiObjectId);
290
- if (existing) return existing;
291
-
292
- let h: ApiHeader;
293
- const ref = header.$ref ? transformHeader(context, header.$ref, name) : undefined;
294
- const id = context.idGenerator.generateId('header');
295
- if (isSchema(header)) {
296
- h = {
297
- // deno-lint-ignore no-explicit-any
298
- $src: Object.assign({}, header.$src, { component: header }) as any,
299
- $ref: ref as ApiHeader['$ref'],
300
- id,
301
- name,
302
- description: header.description,
303
- required: false,
304
- deprecated: false,
305
- allowEmptyValue: undefined,
306
- style: undefined,
307
- explode: undefined,
308
- allowReserved: undefined,
309
- schema: transformSchema(context, header),
310
- };
311
- } else {
312
- h = {
313
- // deno-lint-ignore no-explicit-any
314
- $src: Object.assign({}, header.$src, { component: header }) as any,
315
- $ref: ref as ApiHeader['$ref'],
316
- id,
317
- name,
318
- description: header.description,
319
- required: header.required ?? false,
320
- deprecated: header.deprecated ?? false,
321
- allowEmptyValue: header.allowEmptyValue,
322
- style: header.style,
323
- explode: header.explode,
324
- allowReserved: header.allowReserved,
325
- schema: header.schema ? transformSchema(context, header.schema) : undefined,
326
- };
327
- }
328
-
329
- context.transformed.headers.set(openApiObjectId, h);
330
- return h;
331
- }
@@ -1,217 +0,0 @@
1
- import type { OpenApiSchema } from '../parse/openapi-types.js';
2
- import type { Deref } from '../parse/types.js';
3
- import { createOverwriteProxy } from '../utils/object.utils.js';
4
- import type { ApiSchema, ApiSchemaExtensions, ApiSchemaKind } from './api-types.js';
5
- import {
6
- determineSchemaAccessibility,
7
- determineSchemaKind,
8
- determineSchemaName,
9
- getCustomFields,
10
- getOpenApiObjectIdentifier,
11
- transformAdditionalProperties,
12
- transformSchemaProperties,
13
- } from './helpers.js';
14
- import type { IncompleteApiSchema, OpenApiTransformerContext } from './types.js';
15
-
16
- export function transformSchema<T extends Deref<OpenApiSchema>>(ctx: OpenApiTransformerContext, schema: T): ApiSchema {
17
- if (!schema) {
18
- throw new Error('Schema is required.');
19
- }
20
- const schemaSource = `${schema.$src.file}:${schema.$src.path}`;
21
- const existingSchema = ctx.schemas.get(schemaSource) ?? ctx.incompleteSchemas.get(schemaSource);
22
- if (existingSchema) return existingSchema as ApiSchema;
23
-
24
- const openApiObjectId = getOpenApiObjectIdentifier(schema);
25
- const existing = ctx.transformed.schemas.get(openApiObjectId);
26
- if (existing) return existing;
27
-
28
- let kind = determineSchemaKind(ctx, schema);
29
- let nullable = kind === 'null';
30
- if (kind === 'multi-type') {
31
- const types = schema.type as string[];
32
- let isSingleType = types.length === 1;
33
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
34
- if (types.includes('null') || types.includes(null!)) {
35
- nullable = true;
36
- isSingleType = types.length === 2;
37
- }
38
-
39
- if (isSingleType) {
40
- const newType = types.filter((t) => t !== 'null' && t !== null)[0];
41
- schema = createOverwriteProxy(schema);
42
- schema.type = newType;
43
- kind = determineSchemaKind(ctx, schema);
44
- } else {
45
- schema.type = types.filter((t) => t !== 'null' && t !== null);
46
- }
47
- }
48
-
49
- const id = ctx.idGenerator.generateId('schema');
50
- const nameInfo = determineSchemaName(schema, id);
51
- const incompleteSchema: IncompleteApiSchema = {
52
- $src: {
53
- ...schema.$src,
54
- component: schema,
55
- },
56
- $ref: undefined,
57
- id,
58
- name: nameInfo.name,
59
- isNameGenerated: nameInfo.isGenerated,
60
- description: schema.description,
61
- deprecated: schema.deprecated ?? false,
62
- accessibility: determineSchemaAccessibility(schema),
63
- kind,
64
- enum: schema.enum,
65
- default: schema.default,
66
- example: schema.example,
67
- nullable: nullable || schema.nullable === true,
68
- required: new Set(schema.required),
69
- custom: getCustomFields(schema),
70
- not: schema.not ? transformSchema(ctx, schema.not) : undefined,
71
- const: schema.const,
72
- discriminator: schema.discriminator
73
- ? {
74
- propertyName: typeof schema.discriminator === 'string'
75
- ? schema.discriminator
76
- : schema.discriminator.propertyName,
77
- mapping: {},
78
- }
79
- : undefined,
80
- inheritedSchemas: [],
81
- };
82
- ctx.incompleteSchemas.set(schemaSource, incompleteSchema);
83
-
84
- if (schema.$ref) {
85
- incompleteSchema.$ref = transformSchema(ctx, schema.$ref);
86
- }
87
- const extensions = schemaTransformers[kind](schema, ctx);
88
- const completeSchema = Object.assign(incompleteSchema, extensions) as
89
- & IncompleteApiSchema
90
- & ApiSchemaExtensions<ApiSchemaKind>;
91
- resolveDescriminatorMapping(ctx, completeSchema);
92
-
93
- ctx.incompleteSchemas.delete(schemaSource);
94
- ctx.transformed.schemas.set(openApiObjectId, completeSchema);
95
- ctx.schemas.set(schemaSource, completeSchema);
96
- return completeSchema;
97
- }
98
-
99
- function allExtensionsTransformer(schema: Deref<OpenApiSchema>, context: OpenApiTransformerContext) {
100
- return {
101
- oneOf: schema.oneOf?.map((s) => transformSchema(context, s)) ?? [],
102
- format: schema.format,
103
- pattern: schema.pattern,
104
- minLength: schema.minLength,
105
- maxLength: schema.maxLength,
106
- minimum: schema.minimum,
107
- maximum: schema.maximum,
108
- properties: transformSchemaProperties<Deref<OpenApiSchema>>(context, schema, transformSchema),
109
- additionalProperties: transformAdditionalProperties(context, schema, transformSchema),
110
- allOf: schema.allOf?.map((s) => transformSchema(context, s)) ?? [],
111
- anyOf: schema.anyOf?.map((s) => transformSchema(context, s)) ?? [],
112
- items: schema.items ? transformSchema(context, schema.items) : undefined,
113
- minItems: schema.minItems,
114
- maxItems: schema.maxItems,
115
- };
116
- }
117
-
118
- const schemaTransformers: {
119
- [K in ApiSchemaKind]: (
120
- schema: Deref<OpenApiSchema>,
121
- context: OpenApiTransformerContext,
122
- ) => Omit<ApiSchemaExtensions<K>, 'kind'>;
123
- } = {
124
- oneOf: (schema, context) => ({
125
- ...allExtensionsTransformer(schema, context),
126
- }),
127
- string: (schema, context) => ({
128
- type: 'string',
129
- ...allExtensionsTransformer(schema, context),
130
- }),
131
- number: (schema, context) => ({
132
- type: 'number',
133
- ...allExtensionsTransformer(schema, context),
134
- }),
135
- boolean: (schema, context) => ({ type: 'boolean', ...allExtensionsTransformer(schema, context) }),
136
- object: (schema, context) => ({
137
- type: 'object',
138
- ...allExtensionsTransformer(schema, context),
139
- }),
140
- integer: (schema, context) => ({
141
- type: 'integer',
142
- ...allExtensionsTransformer(schema, context),
143
- }),
144
- array: (schema, context) => ({
145
- type: 'array',
146
- ...allExtensionsTransformer(schema, context),
147
- }),
148
- combined: (schema, context) => ({
149
- ...allExtensionsTransformer(schema, context),
150
- }),
151
- 'multi-type': (schema, context) => ({
152
- type: schema.type as string[],
153
- ...allExtensionsTransformer(schema, context),
154
- }),
155
- null: () => ({ type: 'null' }),
156
- unknown: () => ({}),
157
- };
158
-
159
- function resolveDescriminatorMapping(context: OpenApiTransformerContext, schema: ApiSchema) {
160
- const discriminator = schema.$src.component.discriminator;
161
- if (discriminator && typeof discriminator === 'object' && discriminator.mapping) {
162
- for (const key of Object.keys(discriminator.mapping)) {
163
- const mappedSchemaRef = discriminator.mapping[key];
164
- const mappedSchema = transformSchema(context, mappedSchemaRef);
165
- if (schema.discriminator) {
166
- schema.discriminator.mapping[key] = mappedSchema;
167
- const hasInheritedSchema = mappedSchema.inheritedSchemas.some((x) => x.id === schema.id);
168
- if (!hasInheritedSchema) {
169
- mappedSchema.inheritedSchemas.push(
170
- schema as ApiSchema & { discriminator: NonNullable<ApiSchema['discriminator']> },
171
- );
172
- }
173
- }
174
- }
175
- }
176
-
177
- if (schema.kind === 'combined' && schema.allOf) {
178
- for (const s of schema.allOf) {
179
- const base = findDiscriminatedSchema(s);
180
- if (!base) continue;
181
- if (base.discriminator && base.discriminator.propertyName) {
182
- const origDiscriminator = base.$src.component.discriminator;
183
- if (
184
- origDiscriminator &&
185
- typeof origDiscriminator === 'object' &&
186
- origDiscriminator.mapping &&
187
- Object.values(origDiscriminator.mapping).some(
188
- (x) => x.$src.file === schema.$src.file && x.$src.path === schema.$src.path,
189
- )
190
- ) {
191
- continue;
192
- }
193
-
194
- const mappingKey = schema.isNameGenerated ? null : schema.name;
195
- if (!mappingKey) {
196
- continue;
197
- }
198
-
199
- base.discriminator.mapping[mappingKey] = schema;
200
- const hasInheritedSchema = schema.inheritedSchemas.some((x) => x.id === base.id);
201
- if (!hasInheritedSchema) {
202
- schema.inheritedSchemas.push(base as ApiSchema & { discriminator: NonNullable<ApiSchema['discriminator']> });
203
- }
204
- }
205
- }
206
- }
207
- }
208
-
209
- function findDiscriminatedSchema(
210
- schema: ApiSchema,
211
- ): (ApiSchema & { discriminator: NonNullable<ApiSchema['discriminator']> }) | null {
212
- const origDiscriminator = schema.$src.originalComponent.discriminator;
213
- if (origDiscriminator && (typeof origDiscriminator === 'string' || origDiscriminator.propertyName)) {
214
- return schema as ApiSchema & { discriminator: NonNullable<ApiSchema['discriminator']> };
215
- }
216
- return schema.$ref ? findDiscriminatedSchema(schema.$ref) : null;
217
- }
@@ -1,52 +0,0 @@
1
- import type { OpenApiCollectorData } from '../collect/types.js';
2
- import type { ApiData } from './api-types.js';
3
- import { IdGenerator } from './helpers.js';
4
- import { transformDocument } from './transform-document.js';
5
- import { transformEndpoint } from './transform-endpoint.js';
6
- import { transformSchema } from './transform-schema.js';
7
- import {
8
- defaultOpenApiTransformerOptions,
9
- type OpenApiTransformerContext,
10
- type OpenApiTransformerOptions,
11
- } from './types.js';
12
-
13
- export function transformOpenApi(data: OpenApiCollectorData, options?: Partial<OpenApiTransformerOptions>): ApiData {
14
- const context: OpenApiTransformerContext = {
15
- config: { ...defaultOpenApiTransformerOptions, ...options },
16
-
17
- idGenerator: new IdGenerator(),
18
- input: data,
19
- incompleteSchemas: new Map(),
20
- paths: new Map(),
21
- services: new Map(),
22
- endpoints: new Map(),
23
- schemas: new Map(),
24
-
25
- transformed: {
26
- services: new Map(),
27
- paths: new Map(),
28
- parameters: new Map(),
29
- requestBodies: new Map(),
30
- responses: new Map(),
31
- content: new Map(),
32
- headers: new Map(),
33
- schemas: new Map(),
34
- },
35
- };
36
-
37
- for (const document of data.documents) {
38
- transformDocument(context, document);
39
- }
40
- for (const schema of context.input.schemas.values()) {
41
- transformSchema(context, schema);
42
- }
43
- for (const endpoint of context.input.endpoints.values()) {
44
- transformEndpoint(context, endpoint);
45
- }
46
-
47
- return {
48
- services: Array.from(context.services.values()),
49
- endpoints: Array.from(context.endpoints.values()),
50
- schemas: Array.from(context.schemas.values()),
51
- };
52
- }
@@ -1,52 +0,0 @@
1
- import type {
2
- ApiContent,
3
- ApiData,
4
- ApiHeader,
5
- ApiParameter,
6
- ApiPath,
7
- ApiRequestBody,
8
- ApiResponse,
9
- ApiSchema,
10
- ApiSchemaExtensions,
11
- ApiSchemaKind,
12
- ApiService,
13
- } from './api-types.js';
14
- import type { IdGenerator } from './helpers.js';
15
- import type { OpenApiCollectorData } from '../collect/types.js';
16
- import type { ArrayItem } from '../utils/type.utils.js';
17
-
18
- export type OpenApiTransformerOptions = {
19
- /**
20
- * Determines how schemas without a `type` property should be treated.
21
- * - `keep-unknown`: Keep the schema as-is.
22
- * - `object-if-properties`: Treat the schema as an object schema only if it has properties.
23
- * - `always-object`: Treat the schema as an object schema.
24
- * @default 'object-if-properties'
25
- */
26
- unknownTypeBehavior: 'keep-unknown' | 'object-if-properties' | 'always-object';
27
- };
28
-
29
- export const defaultOpenApiTransformerOptions: OpenApiTransformerOptions = {
30
- unknownTypeBehavior: 'object-if-properties',
31
- };
32
-
33
- export type IncompleteApiSchema = Omit<ApiSchema, Exclude<keyof ApiSchemaExtensions<ApiSchemaKind>, 'kind'>>;
34
- export type OpenApiTransformerContext = {
35
- config: OpenApiTransformerOptions;
36
-
37
- idGenerator: IdGenerator;
38
- input: OpenApiCollectorData;
39
- incompleteSchemas: Map<string, IncompleteApiSchema>;
40
- paths: Map<string, ApiPath>;
41
-
42
- transformed: {
43
- services: Map<string, ApiService>;
44
- paths: Map<string, ApiPath>;
45
- parameters: Map<string, ApiParameter>;
46
- requestBodies: Map<string, ApiRequestBody>;
47
- responses: Map<string, ApiResponse>;
48
- content: Map<string, ApiContent>;
49
- headers: Map<string, ApiHeader>;
50
- schemas: Map<string, ApiSchema>;
51
- };
52
- } & { [K in keyof ApiData]: Map<string, ArrayItem<ApiData[K]>> };
@@ -1,32 +0,0 @@
1
- import "../../_dnt.test_polyfills.js";
2
- import { expect } from '../../deps/jsr.io/@std/expect/1.0.12/mod.js';
3
- import { describe, it } from '../../deps/jsr.io/@std/testing/1.0.9/bdd.js';
4
-
5
- import { ActionProvider } from './action-provider.js';
6
-
7
- describe('ActionProvider', () => {
8
- describe('run', () => {
9
- it('should create an instance using a constructor and call the specified function', () => {
10
- class Foo {
11
- public bar(value: string): string {
12
- return `Hello, ${value}!`;
13
- }
14
- }
15
- const provider = ActionProvider.fromType(Foo, 'bar');
16
- const result = provider.run('world');
17
- expect(result).toBe('Hello, world!');
18
- });
19
-
20
- it('should call a function and return the result', () => {
21
- const provider = ActionProvider.fromFn((value: string) => `Hello, ${value}!`);
22
- const result = provider.run('world');
23
- expect(result).toBe('Hello, world!');
24
- });
25
-
26
- it('should call a function on a value and return the result', () => {
27
- const provider = ActionProvider.fromValue({ bar: (value: string) => `Hello, ${value}!` }, 'bar');
28
- const result = provider.run('world');
29
- expect(result).toBe('Hello, world!');
30
- });
31
- });
32
- });