@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,316 +0,0 @@
1
- import "../../_dnt.test_polyfills.js";
2
- import { expect, fn } from '../../deps/jsr.io/@std/expect/1.0.12/mod.js';
3
- import { describe, test } from '../../deps/jsr.io/@std/testing/1.0.9/bdd.js';
4
- import type { OpenApiDocument } from '../parse/openapi-types.js';
5
- import type { Deref } from '../parse/types.js';
6
- import type { ApiSchema } from './api-types.js';
7
- import {
8
- determineEndpointName,
9
- determineSchemaAccessibility,
10
- determineSchemaKind,
11
- determineSchemaName,
12
- getCustomFields,
13
- IdGenerator,
14
- transformAdditionalProperties,
15
- transformSchemaProperties,
16
- } from './helpers.js';
17
- import type { OpenApiTransformerContext } from './types.js';
18
-
19
- describe('determineSchemaKind', () => {
20
- const ctx = { config: { unknownTypeBehavior: 'keep-unknown' } } as OpenApiTransformerContext;
21
-
22
- test('returns "oneOf" if schema has "oneOf" property', () => {
23
- const schema = { oneOf: [{}] };
24
- expect(determineSchemaKind(ctx, schema)).toBe('oneOf');
25
- });
26
-
27
- test('returns "combined" if schema has "allOf" or "anyOf" property', () => {
28
- const schema = { allOf: [{}], anyOf: [{}] };
29
- expect(determineSchemaKind(ctx, schema)).toBe('combined');
30
- });
31
-
32
- test('returns "multi-type" if schema has "type" property as an array', () => {
33
- const schema = { type: ['string', 'number'] };
34
- expect(determineSchemaKind(ctx, schema)).toBe('multi-type');
35
- });
36
-
37
- test('returns the value of "type" property if it is a string', () => {
38
- const schema = { type: 'string' };
39
- expect(determineSchemaKind(ctx, schema)).toBe('string');
40
- });
41
-
42
- test('returns "unknown" if schema has no recognizable properties', () => {
43
- const schema = {};
44
- expect(determineSchemaKind(ctx, schema)).toBe('unknown');
45
- });
46
- });
47
-
48
- describe('determineSchemaName', () => {
49
- test('returns the schema title if it exists', () => {
50
- const schema = {
51
- title: 'TestSchema',
52
- $src: { file: 'my-api.yml', path: '/test/schema', document: {} as Deref<OpenApiDocument>, originalComponent: {} },
53
- };
54
- expect(determineSchemaName(schema, 'TestId')).toEqual({
55
- name: 'TestSchema',
56
- isGenerated: false,
57
- });
58
- });
59
-
60
- test("returns the json schema file name if the schema title doesn't exist", () => {
61
- const schema = {
62
- $src: { path: '/', file: 'test.json', document: {} as Deref<OpenApiDocument>, originalComponent: {} },
63
- };
64
- expect(determineSchemaName(schema, 'TestId')).toEqual({
65
- name: 'test',
66
- isGenerated: true,
67
- });
68
- });
69
-
70
- test('returns the schema name extracted from $src.path if it starts with "/components/schemas/"', () => {
71
- const schema = {
72
- $src: {
73
- file: 'my-api.yml',
74
- path: '/components/schemas/TestSchema',
75
- document: {} as Deref<OpenApiDocument>,
76
- originalComponent: {},
77
- },
78
- };
79
- expect(determineSchemaName(schema, 'TestId')).toEqual({
80
- name: 'TestSchema',
81
- isGenerated: false,
82
- });
83
- });
84
-
85
- test('returns the schema name extracted from $src.path if it starts with "/definitions/"', () => {
86
- const schema = {
87
- $src: {
88
- file: 'my-api.yml',
89
- path: '/definitions/TestSchema',
90
- document: {} as Deref<OpenApiDocument>,
91
- originalComponent: {},
92
- },
93
- };
94
- expect(determineSchemaName(schema, 'TestId')).toEqual({
95
- name: 'TestSchema',
96
- isGenerated: false,
97
- });
98
- });
99
-
100
- test('returns a generated name based on the $src.path for response schemas', () => {
101
- const schema = {
102
- $src: {
103
- file: 'my-api.yml',
104
- path: '/paths/users/{userId}/email-verification/{token}/get/responses/200/',
105
- document: {} as Deref<OpenApiDocument>,
106
- originalComponent: {},
107
- },
108
- };
109
- expect(determineSchemaName(schema, 'TestId')).toEqual({
110
- name: 'get_users_:userId_email-verification_:token_200_Response',
111
- isGenerated: true,
112
- });
113
- });
114
-
115
- test('returns the provided id if no other name can be determined', () => {
116
- const schema = {
117
- $src: { file: 'my-api.yml', path: '/test/schema', document: {} as Deref<OpenApiDocument>, originalComponent: {} },
118
- };
119
- expect(determineSchemaName(schema, 'TestId')).toEqual({ name: 'TestId', isGenerated: true });
120
- });
121
- });
122
-
123
- describe('determineSchemaAccessibility', () => {
124
- test('returns "readOnly" if "readOnly" property is true and "writeOnly" property is false or undefined', () => {
125
- const schema = { readOnly: true };
126
- expect(determineSchemaAccessibility(schema)).toBe('readOnly');
127
- });
128
-
129
- test('returns "writeOnly" if "writeOnly" property is true and "readOnly" property is false or undefined', () => {
130
- const schema = { writeOnly: true };
131
- expect(determineSchemaAccessibility(schema)).toBe('writeOnly');
132
- });
133
-
134
- test('returns "none" if both "readOnly" and "writeOnly" properties are true', () => {
135
- const schema = { readOnly: true, writeOnly: true };
136
- expect(determineSchemaAccessibility(schema)).toBe('none');
137
- });
138
-
139
- test('returns "all" if neither "readOnly" nor "writeOnly" properties are true', () => {
140
- const schema = {};
141
- expect(determineSchemaAccessibility(schema)).toBe('all');
142
- });
143
- });
144
-
145
- describe('getCustomFields', () => {
146
- test('returns an empty object if no custom fields are present', () => {
147
- const schema = { type: 'string' };
148
- expect(getCustomFields(schema)).toEqual({});
149
- });
150
-
151
- test('returns an object containing all custom fields starting with "x-"', () => {
152
- const schema = {
153
- type: 'string',
154
- 'x-custom-field-1': 'value1',
155
- 'x-custom-field-2': 'value2',
156
- };
157
- expect(getCustomFields(schema)).toEqual({
158
- 'custom-field-1': 'value1',
159
- 'custom-field-2': 'value2',
160
- });
161
- });
162
-
163
- test('returns an object containing only custom fields starting with "x-"', () => {
164
- const schema = {
165
- type: 'string',
166
- 'x-custom-field-1': 'value1',
167
- 'not-a-custom-field': 'value2',
168
- };
169
- expect(getCustomFields(schema)).toEqual({ 'custom-field-1': 'value1' });
170
- });
171
-
172
- test('returns an object with the same values as the original custom fields', () => {
173
- const schema = {
174
- type: 'string',
175
- 'x-custom-field-1': { key1: 'value1' },
176
- 'x-custom-field-2': ['value2'],
177
- };
178
- expect(getCustomFields(schema)).toEqual({
179
- 'custom-field-1': { key1: 'value1' },
180
- 'custom-field-2': ['value2'],
181
- });
182
- });
183
- });
184
-
185
- describe('determineEndpointName', () => {
186
- test('returns the operationId if it exists', () => {
187
- const endpointInfo = {
188
- method: 'get',
189
- path: '/users',
190
- operation: { operationId: 'getUserList' },
191
- };
192
- expect(determineEndpointName(endpointInfo)).toBe('getUserList');
193
- });
194
-
195
- test('returns a generated name based on the method and path if operationId is not present', () => {
196
- const endpointInfo = { method: 'post', path: '/users/{userId}/comments', operation: {} };
197
- expect(determineEndpointName(endpointInfo)).toBe('post_users_:userId_comments');
198
- });
199
-
200
- test('replaces path parameters with their names in the generated name', () => {
201
- const endpointInfo = {
202
- method: 'get',
203
- path: '/users/{userId}/comments/{commentId}',
204
- operation: {},
205
- };
206
- expect(determineEndpointName(endpointInfo)).toBe('get_users_:userId_comments_:commentId');
207
- });
208
-
209
- test('replaces slashes in the path with underscores in the generated name', () => {
210
- const endpointInfo = { method: 'put', path: '/users/{userId}/profile-picture', operation: {} };
211
- expect(determineEndpointName(endpointInfo)).toBe('put_users_:userId_profile-picture');
212
- });
213
- });
214
-
215
- describe('transformAdditionalProperties', () => {
216
- const context = {} as OpenApiTransformerContext;
217
-
218
- test('returns undefined if additionalProperties is undefined or null', () => {
219
- const schema1 = { additionalProperties: undefined };
220
- const schema2 = { additionalProperties: null };
221
- expect(transformAdditionalProperties(context, schema1, () => ({}) as ApiSchema)).toBeUndefined();
222
- expect(transformAdditionalProperties(context, schema2, () => ({}) as ApiSchema)).toBeUndefined();
223
- });
224
-
225
- test('returns a boolean value if additionalProperties is a boolean value', () => {
226
- const schema1 = { additionalProperties: true };
227
- const schema2 = { additionalProperties: false };
228
- expect(transformAdditionalProperties(context, schema1, () => ({}) as ApiSchema)).toBe(true);
229
- expect(transformAdditionalProperties(context, schema2, () => ({}) as ApiSchema)).toBe(false);
230
- });
231
-
232
- test('calls transformSchema with the additionalProperties schema if it exists', () => {
233
- const schema = { additionalProperties: { type: 'string' } };
234
- const transformSchema = fn(() => ({})) as () => ApiSchema;
235
- transformAdditionalProperties(context, schema, transformSchema);
236
- expect(transformSchema).toHaveBeenCalledWith(context, schema.additionalProperties);
237
- });
238
-
239
- test('returns the result of calling transformSchema with the additionalProperties schema if it exists', () => {
240
- const schema = { additionalProperties: { type: 'string' } };
241
- const transformedSchema = { type: 'string' } as ApiSchema;
242
- const transformSchema = fn(() => transformedSchema) as () => ApiSchema;
243
- expect(transformAdditionalProperties(context, schema, transformSchema)).toBe(transformedSchema);
244
- });
245
- });
246
-
247
- describe('transformSchemaProperties', () => {
248
- const context = {} as OpenApiTransformerContext;
249
-
250
- test('returns an empty array if properties is undefined', () => {
251
- const schema = {};
252
- const transformSchema = fn(() => ({})) as () => ApiSchema;
253
- expect(transformSchemaProperties(context, schema, transformSchema).size).toEqual(0);
254
- });
255
-
256
- test('calls transformSchema with each property schema and builds an array of ApiSchemaProperties', () => {
257
- const schema = {
258
- properties: {
259
- prop1: { type: 'string' } as ApiSchema,
260
- prop2: { type: 'integer' } as ApiSchema,
261
- },
262
- required: ['prop1'],
263
- };
264
- const transformedSchema1 = { type: 'string' } as ApiSchema;
265
- const transformedSchema2 = { type: 'integer' } as ApiSchema;
266
- // deno-lint-ignore no-explicit-any
267
- const transformSchema = fn((_: unknown, subSchema: any) =>
268
- subSchema.type === 'string' ? transformedSchema1 : transformedSchema2
269
- ) as (ctx: OpenApiTransformerContext, schema: ApiSchema) => ApiSchema;
270
- const result = transformSchemaProperties(context, schema, transformSchema);
271
- expect(Array.from(result.entries())).toEqual([
272
- ['prop1', { name: 'prop1', schema: transformedSchema1 }],
273
- ['prop2', { name: 'prop2', schema: transformedSchema2 }],
274
- ]);
275
- expect(transformSchema).toHaveBeenCalledTimes(2);
276
- expect(transformSchema).toHaveBeenCalledWith(context, schema.properties.prop1);
277
- expect(transformSchema).toHaveBeenCalledWith(context, schema.properties.prop2);
278
- });
279
-
280
- test('ignores properties with the name "$src"', () => {
281
- const schema = { properties: { prop1: { type: 'string' }, $src: { path: '/test/schema' } } };
282
- const transformedSchema1 = { type: 'string' } as ApiSchema;
283
- const transformSchema = fn(() => transformedSchema1) as () => ApiSchema;
284
- const result = transformSchemaProperties(context, schema, transformSchema);
285
- expect(Array.from(result.entries())).toEqual([['prop1', { name: 'prop1', schema: transformedSchema1 }]]);
286
- expect(transformSchema).toHaveBeenCalledTimes(1);
287
- expect(transformSchema).toHaveBeenCalledWith(context, schema.properties.prop1);
288
- });
289
- });
290
-
291
- describe('IdGenerator', () => {
292
- test('generates unique ids based on the provided name', () => {
293
- const idGenerator = new IdGenerator();
294
- const id1 = idGenerator.generateId('test');
295
- const id2 = idGenerator.generateId('test');
296
- expect(id1).not.toBe(id2);
297
- });
298
-
299
- test('generates ids with the format "{name}-{n}"', () => {
300
- const idGenerator = new IdGenerator();
301
- const id1 = idGenerator.generateId('test');
302
- expect(id1).toMatch(/^test-\d+$/);
303
- });
304
-
305
- test('increments the id number for each new id generated with the same name', () => {
306
- const idGenerator = new IdGenerator();
307
- const id1 = idGenerator.generateId('test');
308
- const id2 = idGenerator.generateId('test');
309
- const id3 = idGenerator.generateId('test2');
310
- const id4 = idGenerator.generateId('test');
311
- expect(id1).toBe('test-1');
312
- expect(id2).toBe('test-2');
313
- expect(id3).toBe('test2-1');
314
- expect(id4).toBe('test-3');
315
- });
316
- });
@@ -1,211 +0,0 @@
1
- import { parse as parsePath } from 'node:path';
2
- import { isOpenApiObjectProperty } from '../internal-utils.js';
3
- import type { OpenApiHttpMethod, OpenApiObject } from '../parse/openapi-types.js';
4
- import type { Deref, DerefSource } from '../parse/types.js';
5
- import { isNullish } from '../utils/common.utils.js';
6
- import { getDeepProperty } from '../utils/object.utils.js';
7
- import type { ApiSchema, ApiSchemaAccessibility, ApiSchemaKind, ApiSchemaProperty } from './api-types.js';
8
- import type { OpenApiTransformerContext } from './types.js';
9
-
10
- export function determineSchemaKind<
11
- T extends {
12
- oneOf?: unknown;
13
- allOf?: unknown;
14
- anyOf?: unknown;
15
- type?: string | string[];
16
- properties?: Record<string, unknown>;
17
- additionalProperties?: unknown;
18
- },
19
- >(ctx: OpenApiTransformerContext, schema: T): ApiSchemaKind {
20
- if (schema.oneOf) {
21
- return 'oneOf';
22
- } else if (schema.type !== 'object' && (schema.allOf || schema.anyOf)) {
23
- const hasProperties = (schema.properties && Object.keys(schema.properties).length > 0) ||
24
- schema.additionalProperties;
25
- return hasProperties ? 'object' : 'combined';
26
- } else if (Array.isArray(schema.type)) {
27
- return 'multi-type';
28
- } else if (
29
- schema.type === 'object' ||
30
- schema.type === 'string' ||
31
- schema.type === 'boolean' ||
32
- schema.type === 'null' ||
33
- schema.type === 'number' ||
34
- schema.type === 'integer' ||
35
- schema.type === 'array'
36
- ) {
37
- return schema.type;
38
- }
39
-
40
- const treadAsObject = ctx.config.unknownTypeBehavior === 'always-object' ||
41
- (ctx.config.unknownTypeBehavior === 'object-if-properties' &&
42
- schema.properties &&
43
- Object.keys(schema.properties).length > 0);
44
-
45
- return treadAsObject ? 'object' : 'unknown';
46
- }
47
-
48
- export function determineSchemaName(
49
- schema: {
50
- title?: string;
51
- $src: DerefSource<unknown>;
52
- },
53
- id: string,
54
- ): { name: string; isGenerated: boolean } {
55
- if (schema.title) return { name: schema.title, isGenerated: false };
56
- if (!schema.$src) {
57
- console.log('woot?');
58
- }
59
-
60
- if (schema.$src.path === '/') return { name: parsePath(schema.$src.file).name, isGenerated: true };
61
-
62
- const schemaNameMatch = schema.$src.path.match(/(?<=\/components\/schemas\/|\/definitions\/)[^/]+$/i);
63
- if (schemaNameMatch) {
64
- return { name: schemaNameMatch[0], isGenerated: false };
65
- }
66
-
67
- const responseMatch = schema.$src.path.match(/\/paths\/(?<path>.+)\/(?<method>.+)\/responses\/(?<status>\d+)\//);
68
- if (responseMatch && responseMatch.groups) {
69
- const { path, method, status } = responseMatch.groups;
70
- const operation = schema.$src.document.paths?.[path]?.[method as OpenApiHttpMethod] ?? {};
71
- return {
72
- name: `${determineEndpointName({ method, path: `/${path}`, operation })}_${status}_Response`,
73
- isGenerated: true,
74
- };
75
- }
76
-
77
- const responseCompMatch = schema.$src.path.match(/\/components\/responses\/([^/]+)\/content\/.+\/schema/);
78
- if (responseCompMatch) {
79
- return {
80
- name: responseCompMatch[1].toLowerCase().endsWith('response')
81
- ? responseCompMatch[1]
82
- : responseCompMatch[1] + 'Response',
83
- isGenerated: true,
84
- };
85
- }
86
-
87
- const requestBodyMatch = schema.$src.path.match(/\/paths\/(?<path>.+)\/(?<method>.+)\/requestBody\//);
88
- if (requestBodyMatch && requestBodyMatch.groups) {
89
- const { path, method } = requestBodyMatch.groups;
90
- const operation = schema.$src.document.paths?.[path]?.[method as OpenApiHttpMethod] ?? {};
91
- return { name: `${determineEndpointName({ method, path: `/${path}`, operation })}_Request`, isGenerated: true };
92
- }
93
-
94
- const parentSchemaMatch = schema.$src.path.match(/(.*)\/properties\/([^/]*)$/);
95
- if (parentSchemaMatch) {
96
- const parentSchema = getDeepProperty(schema.$src.document, parentSchemaMatch[1].split('/').filter(Boolean));
97
- const parentSchemaName = determineSchemaName(
98
- {
99
- title: typeof parentSchema === 'object' && parentSchema !== null && 'title' in parentSchema
100
- ? String(parentSchema.title)
101
- : undefined,
102
- $src: {
103
- file: schema.$src.file,
104
- path: parentSchemaMatch[1],
105
- document: schema.$src.document,
106
- originalComponent: parentSchema,
107
- },
108
- },
109
- id,
110
- );
111
- if (!parentSchemaName.isGenerated) {
112
- return { name: `${parentSchemaName.name}_${parentSchemaMatch[2]}`, isGenerated: true };
113
- }
114
- }
115
-
116
- return { name: id, isGenerated: true };
117
- }
118
-
119
- export function determineSchemaAccessibility(schema: {
120
- readOnly?: boolean;
121
- writeOnly?: boolean;
122
- }): ApiSchemaAccessibility {
123
- if (schema.readOnly === true) {
124
- return schema.writeOnly === true ? 'none' : 'readOnly';
125
- } else {
126
- return schema.writeOnly === true ? 'writeOnly' : 'all';
127
- }
128
- }
129
-
130
- export function updateSchemaAccessibility(
131
- accessibility: ApiSchemaAccessibility,
132
- schema: {
133
- readOnly?: boolean;
134
- writeOnly?: boolean;
135
- },
136
- ): ApiSchemaAccessibility {
137
- if (accessibility === 'none') return 'none';
138
- if (accessibility === 'readOnly') return schema.writeOnly === true ? 'none' : 'readOnly';
139
- if (accessibility === 'writeOnly') return schema.readOnly === true ? 'none' : 'writeOnly';
140
- return determineSchemaAccessibility(schema);
141
- }
142
-
143
- type CustomFields<T extends Record<string, unknown>> = {
144
- [K in keyof T as K extends `x-${string}` ? K : never]: T[K];
145
- };
146
-
147
- export function getCustomFields<T extends Record<string, unknown>>(schema: T): CustomFields<T> {
148
- const result = {} as CustomFields<T>;
149
- for (const key in schema) {
150
- if (key.startsWith('x-')) {
151
- const name = key.substring(2);
152
- (result as Record<string, unknown>)[name] = schema[key];
153
- }
154
- }
155
- return result;
156
- }
157
-
158
- export function determineEndpointName(endpointInfo: {
159
- method: string;
160
- path: string;
161
- operation: { operationId?: string };
162
- }): string {
163
- if (endpointInfo.operation.operationId) return endpointInfo.operation.operationId;
164
- return endpointInfo.method + endpointInfo.path.replace(/\{([^}]+)\}/g, ':$1').replace(/\//g, '_');
165
- }
166
-
167
- export function transformAdditionalProperties<TAdditionalProperties>(
168
- context: OpenApiTransformerContext,
169
- schema: {
170
- additionalProperties?: TAdditionalProperties;
171
- },
172
- transformSchema: (
173
- context: OpenApiTransformerContext,
174
- schema: Exclude<TAdditionalProperties, undefined | boolean>,
175
- ) => ApiSchema,
176
- ): boolean | ApiSchema | undefined {
177
- if (isNullish(schema.additionalProperties)) return undefined;
178
- if (typeof schema.additionalProperties === 'boolean') return schema.additionalProperties;
179
- return transformSchema(context, schema.additionalProperties as Exclude<TAdditionalProperties, undefined | boolean>);
180
- }
181
-
182
- export function transformSchemaProperties<TProperties>(
183
- context: OpenApiTransformerContext,
184
- schema: { properties?: Record<string, TProperties>; required?: string[] },
185
- transformSchema: (context: OpenApiTransformerContext, schema: TProperties) => ApiSchema,
186
- ): Map<string, ApiSchemaProperty> {
187
- const result = new Map<string, ApiSchemaProperty>();
188
- if (!schema.properties) return result;
189
- for (const name of Object.keys(schema.properties)) {
190
- if (!isOpenApiObjectProperty(name)) continue;
191
- result.set(name, {
192
- name,
193
- schema: transformSchema(context, schema.properties[name]),
194
- });
195
- }
196
- return result;
197
- }
198
-
199
- export class IdGenerator {
200
- private readonly _idMap = new Map<string, number>();
201
-
202
- public generateId(name: string): string {
203
- const id = this._idMap.get(name) ?? 1;
204
- this._idMap.set(name, id + 1);
205
- return `${name}-${id}`;
206
- }
207
- }
208
-
209
- export function getOpenApiObjectIdentifier(obj: Deref<OpenApiObject<string>>) {
210
- return obj.$src.file + '#' + obj.$src.path;
211
- }
@@ -1,35 +0,0 @@
1
- import type { OpenApiDocument, OpenApiTag } from '../parse/openapi-types.js';
2
- import type { Deref } from '../parse/types.js';
3
- import type { ApiService } from './api-types.js';
4
- import { getOpenApiObjectIdentifier } from './helpers.js';
5
- import type { OpenApiTransformerContext } from './types.js';
6
-
7
- export function transformDocument(context: OpenApiTransformerContext, document: Deref<OpenApiDocument>) {
8
- for (const tag of document.tags ?? []) {
9
- transformTag(context, tag);
10
- }
11
- }
12
-
13
- function transformTag(context: OpenApiTransformerContext, tag: Deref<OpenApiTag>, isReference = false) {
14
- const openApiObjectId = getOpenApiObjectIdentifier(tag);
15
- const existing = context.transformed.services.get(openApiObjectId);
16
- if (existing) return existing;
17
-
18
- const ref = tag.$ref ? transformTag(context, tag.$ref, true) : undefined;
19
- const id = context.idGenerator.generateId('service');
20
- const service: ApiService = {
21
- $src: {
22
- ...tag.$src,
23
- component: tag,
24
- },
25
- $ref: ref,
26
- id,
27
- name: tag.name ?? id,
28
- description: tag.description,
29
- endpoints: [],
30
- };
31
-
32
- context.transformed.services.set(openApiObjectId, service);
33
- if (!isReference) context.services.set(service.name, service);
34
- return service;
35
- }