@goast/kotlin 0.4.6 → 0.4.7-beta1

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 (509) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +45 -45
  3. package/assets/client/okhttp3/ApiClient.kt +250 -250
  4. package/esm/src/generators/services/okhttp3-clients/okhttp3-client-generator.js +26 -26
  5. package/esm/src/generators/services/spring-controllers/models.d.ts +1 -0
  6. package/esm/src/generators/services/spring-controllers/models.d.ts.map +1 -1
  7. package/esm/src/generators/services/spring-controllers/models.js +1 -0
  8. package/esm/src/generators/services/spring-controllers/spring-controller-generator.d.ts +1 -1
  9. package/esm/src/generators/services/spring-controllers/spring-controller-generator.d.ts.map +1 -1
  10. package/esm/src/generators/services/spring-controllers/spring-controller-generator.js +11 -4
  11. package/package.json +1 -1
  12. package/script/src/generators/services/okhttp3-clients/okhttp3-client-generator.js +26 -26
  13. package/script/src/generators/services/spring-controllers/models.d.ts +1 -0
  14. package/script/src/generators/services/spring-controllers/models.d.ts.map +1 -1
  15. package/script/src/generators/services/spring-controllers/models.js +1 -0
  16. package/script/src/generators/services/spring-controllers/spring-controller-generator.d.ts +1 -1
  17. package/script/src/generators/services/spring-controllers/spring-controller-generator.d.ts.map +1 -1
  18. package/script/src/generators/services/spring-controllers/spring-controller-generator.js +12 -5
  19. package/esm/_dnt.test_polyfills.d.ts +0 -29
  20. package/esm/_dnt.test_polyfills.d.ts.map +0 -1
  21. package/esm/_dnt.test_polyfills.js +0 -31
  22. package/esm/_dnt.test_shims.d.ts +0 -6
  23. package/esm/_dnt.test_shims.d.ts.map +0 -1
  24. package/esm/_dnt.test_shims.js +0 -61
  25. package/esm/deps/jsr.io/@std/assert/1.0.8/assertion_error.d.ts +0 -26
  26. package/esm/deps/jsr.io/@std/assert/1.0.8/assertion_error.d.ts.map +0 -1
  27. package/esm/deps/jsr.io/@std/assert/1.0.8/assertion_error.js +0 -30
  28. package/esm/deps/jsr.io/@std/assert/1.0.8/equal.d.ts +0 -17
  29. package/esm/deps/jsr.io/@std/assert/1.0.8/equal.d.ts.map +0 -1
  30. package/esm/deps/jsr.io/@std/assert/1.0.8/equal.js +0 -183
  31. package/esm/deps/jsr.io/@std/assert/1.0.8/equals.d.ts +0 -22
  32. package/esm/deps/jsr.io/@std/assert/1.0.8/equals.d.ts.map +0 -1
  33. package/esm/deps/jsr.io/@std/assert/1.0.8/equals.js +0 -45
  34. package/esm/deps/jsr.io/@std/assert/1.0.8/false.d.ts +0 -18
  35. package/esm/deps/jsr.io/@std/assert/1.0.8/false.d.ts.map +0 -1
  36. package/esm/deps/jsr.io/@std/assert/1.0.8/false.js +0 -22
  37. package/esm/deps/jsr.io/@std/assert/1.0.8/instance_of.d.ts +0 -23
  38. package/esm/deps/jsr.io/@std/assert/1.0.8/instance_of.d.ts.map +0 -1
  39. package/esm/deps/jsr.io/@std/assert/1.0.8/instance_of.js +0 -53
  40. package/esm/deps/jsr.io/@std/assert/1.0.8/is_error.d.ts +0 -25
  41. package/esm/deps/jsr.io/@std/assert/1.0.8/is_error.d.ts.map +0 -1
  42. package/esm/deps/jsr.io/@std/assert/1.0.8/is_error.js +0 -54
  43. package/esm/deps/jsr.io/@std/assert/1.0.8/match.d.ts +0 -18
  44. package/esm/deps/jsr.io/@std/assert/1.0.8/match.d.ts.map +0 -1
  45. package/esm/deps/jsr.io/@std/assert/1.0.8/match.js +0 -26
  46. package/esm/deps/jsr.io/@std/assert/1.0.8/not_instance_of.d.ts +0 -20
  47. package/esm/deps/jsr.io/@std/assert/1.0.8/not_instance_of.d.ts.map +0 -1
  48. package/esm/deps/jsr.io/@std/assert/1.0.8/not_instance_of.js +0 -29
  49. package/esm/deps/jsr.io/@std/assert/1.0.8/not_match.d.ts +0 -18
  50. package/esm/deps/jsr.io/@std/assert/1.0.8/not_match.d.ts.map +0 -1
  51. package/esm/deps/jsr.io/@std/assert/1.0.8/not_match.js +0 -26
  52. package/esm/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.d.ts +0 -23
  53. package/esm/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.d.ts.map +0 -1
  54. package/esm/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.js +0 -32
  55. package/esm/deps/jsr.io/@std/assert/1.0.8/rejects.d.ts +0 -42
  56. package/esm/deps/jsr.io/@std/assert/1.0.8/rejects.d.ts.map +0 -1
  57. package/esm/deps/jsr.io/@std/assert/1.0.8/rejects.js +0 -53
  58. package/esm/deps/jsr.io/@std/assert/1.0.8/strict_equals.d.ts +0 -24
  59. package/esm/deps/jsr.io/@std/assert/1.0.8/strict_equals.d.ts.map +0 -1
  60. package/esm/deps/jsr.io/@std/assert/1.0.8/strict_equals.js +0 -57
  61. package/esm/deps/jsr.io/@std/expect/1.0.8/_assert_equals.d.ts +0 -20
  62. package/esm/deps/jsr.io/@std/expect/1.0.8/_assert_equals.d.ts.map +0 -1
  63. package/esm/deps/jsr.io/@std/expect/1.0.8/_assert_equals.js +0 -29
  64. package/esm/deps/jsr.io/@std/expect/1.0.8/_assert_not_equals.d.ts +0 -17
  65. package/esm/deps/jsr.io/@std/expect/1.0.8/_assert_not_equals.d.ts.map +0 -1
  66. package/esm/deps/jsr.io/@std/expect/1.0.8/_assert_not_equals.js +0 -26
  67. package/esm/deps/jsr.io/@std/expect/1.0.8/_assertions.d.ts +0 -4
  68. package/esm/deps/jsr.io/@std/expect/1.0.8/_assertions.d.ts.map +0 -1
  69. package/esm/deps/jsr.io/@std/expect/1.0.8/_assertions.js +0 -13
  70. package/esm/deps/jsr.io/@std/expect/1.0.8/_asymmetric_matchers.d.ts +0 -46
  71. package/esm/deps/jsr.io/@std/expect/1.0.8/_asymmetric_matchers.d.ts.map +0 -1
  72. package/esm/deps/jsr.io/@std/expect/1.0.8/_asymmetric_matchers.js +0 -160
  73. package/esm/deps/jsr.io/@std/expect/1.0.8/_build_message.d.ts +0 -6
  74. package/esm/deps/jsr.io/@std/expect/1.0.8/_build_message.d.ts.map +0 -1
  75. package/esm/deps/jsr.io/@std/expect/1.0.8/_build_message.js +0 -29
  76. package/esm/deps/jsr.io/@std/expect/1.0.8/_custom_equality_tester.d.ts +0 -4
  77. package/esm/deps/jsr.io/@std/expect/1.0.8/_custom_equality_tester.d.ts.map +0 -1
  78. package/esm/deps/jsr.io/@std/expect/1.0.8/_custom_equality_tester.js +0 -11
  79. package/esm/deps/jsr.io/@std/expect/1.0.8/_equal.d.ts +0 -9
  80. package/esm/deps/jsr.io/@std/expect/1.0.8/_equal.d.ts.map +0 -1
  81. package/esm/deps/jsr.io/@std/expect/1.0.8/_equal.js +0 -191
  82. package/esm/deps/jsr.io/@std/expect/1.0.8/_extend.d.ts +0 -4
  83. package/esm/deps/jsr.io/@std/expect/1.0.8/_extend.d.ts.map +0 -1
  84. package/esm/deps/jsr.io/@std/expect/1.0.8/_extend.js +0 -11
  85. package/esm/deps/jsr.io/@std/expect/1.0.8/_inspect_args.d.ts +0 -3
  86. package/esm/deps/jsr.io/@std/expect/1.0.8/_inspect_args.d.ts.map +0 -1
  87. package/esm/deps/jsr.io/@std/expect/1.0.8/_inspect_args.js +0 -12
  88. package/esm/deps/jsr.io/@std/expect/1.0.8/_matchers.d.ts +0 -34
  89. package/esm/deps/jsr.io/@std/expect/1.0.8/_matchers.d.ts.map +0 -1
  90. package/esm/deps/jsr.io/@std/expect/1.0.8/_matchers.js +0 -563
  91. package/esm/deps/jsr.io/@std/expect/1.0.8/_mock_util.d.ts +0 -11
  92. package/esm/deps/jsr.io/@std/expect/1.0.8/_mock_util.d.ts.map +0 -1
  93. package/esm/deps/jsr.io/@std/expect/1.0.8/_mock_util.js +0 -10
  94. package/esm/deps/jsr.io/@std/expect/1.0.8/_serializer.d.ts +0 -4
  95. package/esm/deps/jsr.io/@std/expect/1.0.8/_serializer.d.ts.map +0 -1
  96. package/esm/deps/jsr.io/@std/expect/1.0.8/_serializer.js +0 -10
  97. package/esm/deps/jsr.io/@std/expect/1.0.8/_types.d.ts +0 -839
  98. package/esm/deps/jsr.io/@std/expect/1.0.8/_types.d.ts.map +0 -1
  99. package/esm/deps/jsr.io/@std/expect/1.0.8/_types.js +0 -3
  100. package/esm/deps/jsr.io/@std/expect/1.0.8/_utils.d.ts +0 -9
  101. package/esm/deps/jsr.io/@std/expect/1.0.8/_utils.d.ts.map +0 -1
  102. package/esm/deps/jsr.io/@std/expect/1.0.8/_utils.js +0 -218
  103. package/esm/deps/jsr.io/@std/expect/1.0.8/expect.d.ts +0 -60
  104. package/esm/deps/jsr.io/@std/expect/1.0.8/expect.d.ts.map +0 -1
  105. package/esm/deps/jsr.io/@std/expect/1.0.8/expect.js +0 -523
  106. package/esm/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts +0 -160
  107. package/esm/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts.map +0 -1
  108. package/esm/deps/jsr.io/@std/internal/1.0.5/assertion_state.js +0 -199
  109. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts +0 -82
  110. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +0 -1
  111. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.js +0 -111
  112. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.d.ts +0 -140
  113. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +0 -1
  114. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.js +0 -277
  115. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts +0 -99
  116. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +0 -1
  117. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.js +0 -180
  118. package/esm/deps/jsr.io/@std/internal/1.0.5/format.d.ts +0 -2
  119. package/esm/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +0 -1
  120. package/esm/deps/jsr.io/@std/internal/1.0.5/format.js +0 -37
  121. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.d.ts +0 -159
  122. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +0 -1
  123. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.js +0 -207
  124. package/esm/deps/jsr.io/@std/internal/1.0.5/types.d.ts +0 -16
  125. package/esm/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +0 -1
  126. package/esm/deps/jsr.io/@std/internal/1.0.5/types.js +0 -2
  127. package/esm/deps/jsr.io/@std/testing/1.0.5/_mock_utils.d.ts +0 -15
  128. package/esm/deps/jsr.io/@std/testing/1.0.5/_mock_utils.d.ts.map +0 -1
  129. package/esm/deps/jsr.io/@std/testing/1.0.5/_mock_utils.js +0 -35
  130. package/esm/deps/jsr.io/@std/testing/1.0.5/_test_suite.d.ts +0 -74
  131. package/esm/deps/jsr.io/@std/testing/1.0.5/_test_suite.d.ts.map +0 -1
  132. package/esm/deps/jsr.io/@std/testing/1.0.5/_test_suite.js +0 -350
  133. package/esm/deps/jsr.io/@std/testing/1.0.5/bdd.d.ts +0 -731
  134. package/esm/deps/jsr.io/@std/testing/1.0.5/bdd.d.ts.map +0 -1
  135. package/esm/deps/jsr.io/@std/testing/1.0.5/bdd.js +0 -581
  136. package/esm/deps/jsr.io/@std/testing/1.0.5/mock.d.ts +0 -674
  137. package/esm/deps/jsr.io/@std/testing/1.0.5/mock.d.ts.map +0 -1
  138. package/esm/deps/jsr.io/@std/testing/1.0.5/mock.js +0 -1083
  139. package/esm/src/ast/nodes/annotation.test.d.ts +0 -2
  140. package/esm/src/ast/nodes/annotation.test.d.ts.map +0 -1
  141. package/esm/src/ast/nodes/annotation.test.js +0 -56
  142. package/esm/src/ast/nodes/argument.test.d.ts +0 -2
  143. package/esm/src/ast/nodes/argument.test.d.ts.map +0 -1
  144. package/esm/src/ast/nodes/argument.test.js +0 -33
  145. package/esm/src/ast/nodes/call.test.d.ts +0 -2
  146. package/esm/src/ast/nodes/call.test.d.ts.map +0 -1
  147. package/esm/src/ast/nodes/call.test.js +0 -35
  148. package/esm/src/ast/nodes/class.test.d.ts +0 -2
  149. package/esm/src/ast/nodes/class.test.d.ts.map +0 -1
  150. package/esm/src/ast/nodes/class.test.js +0 -219
  151. package/esm/src/ast/nodes/constructor.test.d.ts +0 -2
  152. package/esm/src/ast/nodes/constructor.test.d.ts.map +0 -1
  153. package/esm/src/ast/nodes/constructor.test.js +0 -139
  154. package/esm/src/ast/nodes/doc-tag.test.d.ts +0 -2
  155. package/esm/src/ast/nodes/doc-tag.test.d.ts.map +0 -1
  156. package/esm/src/ast/nodes/doc-tag.test.js +0 -67
  157. package/esm/src/ast/nodes/doc.test.d.ts +0 -2
  158. package/esm/src/ast/nodes/doc.test.d.ts.map +0 -1
  159. package/esm/src/ast/nodes/doc.test.js +0 -33
  160. package/esm/src/ast/nodes/enum-value.test.d.ts +0 -2
  161. package/esm/src/ast/nodes/enum-value.test.d.ts.map +0 -1
  162. package/esm/src/ast/nodes/enum-value.test.js +0 -115
  163. package/esm/src/ast/nodes/enum.test.d.ts +0 -2
  164. package/esm/src/ast/nodes/enum.test.d.ts.map +0 -1
  165. package/esm/src/ast/nodes/enum.test.js +0 -129
  166. package/esm/src/ast/nodes/function.test.d.ts +0 -2
  167. package/esm/src/ast/nodes/function.test.d.ts.map +0 -1
  168. package/esm/src/ast/nodes/function.test.js +0 -160
  169. package/esm/src/ast/nodes/generic-parameter.test.d.ts +0 -2
  170. package/esm/src/ast/nodes/generic-parameter.test.d.ts.map +0 -1
  171. package/esm/src/ast/nodes/generic-parameter.test.js +0 -49
  172. package/esm/src/ast/nodes/init-block.test.d.ts +0 -2
  173. package/esm/src/ast/nodes/init-block.test.d.ts.map +0 -1
  174. package/esm/src/ast/nodes/init-block.test.js +0 -28
  175. package/esm/src/ast/nodes/interface.test.d.ts +0 -2
  176. package/esm/src/ast/nodes/interface.test.d.ts.map +0 -1
  177. package/esm/src/ast/nodes/interface.test.js +0 -121
  178. package/esm/src/ast/nodes/object.test.d.ts +0 -2
  179. package/esm/src/ast/nodes/object.test.d.ts.map +0 -1
  180. package/esm/src/ast/nodes/object.test.js +0 -78
  181. package/esm/src/ast/nodes/parameter.test.d.ts +0 -2
  182. package/esm/src/ast/nodes/parameter.test.d.ts.map +0 -1
  183. package/esm/src/ast/nodes/parameter.test.js +0 -152
  184. package/esm/src/ast/nodes/property.test.d.ts +0 -2
  185. package/esm/src/ast/nodes/property.test.d.ts.map +0 -1
  186. package/esm/src/ast/nodes/property.test.js +0 -206
  187. package/esm/src/ast/nodes/reference.test.d.ts +0 -2
  188. package/esm/src/ast/nodes/reference.test.d.ts.map +0 -1
  189. package/esm/src/ast/nodes/reference.test.js +0 -36
  190. package/esm/src/ast/nodes/string.test.d.ts +0 -2
  191. package/esm/src/ast/nodes/string.test.d.ts.map +0 -1
  192. package/esm/src/ast/nodes/string.test.js +0 -48
  193. package/esm/src/import-collection.test.d.ts +0 -2
  194. package/esm/src/import-collection.test.d.ts.map +0 -1
  195. package/esm/src/import-collection.test.js +0 -99
  196. package/esm/tests/openapi-models.test.d.ts +0 -2
  197. package/esm/tests/openapi-models.test.d.ts.map +0 -1
  198. package/esm/tests/openapi-models.test.js +0 -45
  199. package/script/_dnt.test_polyfills.d.ts +0 -29
  200. package/script/_dnt.test_polyfills.d.ts.map +0 -1
  201. package/script/_dnt.test_polyfills.js +0 -32
  202. package/script/_dnt.test_shims.d.ts +0 -6
  203. package/script/_dnt.test_shims.d.ts.map +0 -1
  204. package/script/_dnt.test_shims.js +0 -65
  205. package/script/deps/jsr.io/@std/assert/1.0.8/assertion_error.d.ts +0 -26
  206. package/script/deps/jsr.io/@std/assert/1.0.8/assertion_error.d.ts.map +0 -1
  207. package/script/deps/jsr.io/@std/assert/1.0.8/assertion_error.js +0 -34
  208. package/script/deps/jsr.io/@std/assert/1.0.8/equal.d.ts +0 -17
  209. package/script/deps/jsr.io/@std/assert/1.0.8/equal.d.ts.map +0 -1
  210. package/script/deps/jsr.io/@std/assert/1.0.8/equal.js +0 -187
  211. package/script/deps/jsr.io/@std/assert/1.0.8/equals.d.ts +0 -22
  212. package/script/deps/jsr.io/@std/assert/1.0.8/equals.d.ts.map +0 -1
  213. package/script/deps/jsr.io/@std/assert/1.0.8/equals.js +0 -48
  214. package/script/deps/jsr.io/@std/assert/1.0.8/false.d.ts +0 -18
  215. package/script/deps/jsr.io/@std/assert/1.0.8/false.d.ts.map +0 -1
  216. package/script/deps/jsr.io/@std/assert/1.0.8/false.js +0 -25
  217. package/script/deps/jsr.io/@std/assert/1.0.8/instance_of.d.ts +0 -23
  218. package/script/deps/jsr.io/@std/assert/1.0.8/instance_of.d.ts.map +0 -1
  219. package/script/deps/jsr.io/@std/assert/1.0.8/instance_of.js +0 -56
  220. package/script/deps/jsr.io/@std/assert/1.0.8/is_error.d.ts +0 -25
  221. package/script/deps/jsr.io/@std/assert/1.0.8/is_error.d.ts.map +0 -1
  222. package/script/deps/jsr.io/@std/assert/1.0.8/is_error.js +0 -57
  223. package/script/deps/jsr.io/@std/assert/1.0.8/match.d.ts +0 -18
  224. package/script/deps/jsr.io/@std/assert/1.0.8/match.d.ts.map +0 -1
  225. package/script/deps/jsr.io/@std/assert/1.0.8/match.js +0 -29
  226. package/script/deps/jsr.io/@std/assert/1.0.8/not_instance_of.d.ts +0 -20
  227. package/script/deps/jsr.io/@std/assert/1.0.8/not_instance_of.d.ts.map +0 -1
  228. package/script/deps/jsr.io/@std/assert/1.0.8/not_instance_of.js +0 -32
  229. package/script/deps/jsr.io/@std/assert/1.0.8/not_match.d.ts +0 -18
  230. package/script/deps/jsr.io/@std/assert/1.0.8/not_match.d.ts.map +0 -1
  231. package/script/deps/jsr.io/@std/assert/1.0.8/not_match.js +0 -29
  232. package/script/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.d.ts +0 -23
  233. package/script/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.d.ts.map +0 -1
  234. package/script/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.js +0 -35
  235. package/script/deps/jsr.io/@std/assert/1.0.8/rejects.d.ts +0 -42
  236. package/script/deps/jsr.io/@std/assert/1.0.8/rejects.d.ts.map +0 -1
  237. package/script/deps/jsr.io/@std/assert/1.0.8/rejects.js +0 -56
  238. package/script/deps/jsr.io/@std/assert/1.0.8/strict_equals.d.ts +0 -24
  239. package/script/deps/jsr.io/@std/assert/1.0.8/strict_equals.d.ts.map +0 -1
  240. package/script/deps/jsr.io/@std/assert/1.0.8/strict_equals.js +0 -60
  241. package/script/deps/jsr.io/@std/expect/1.0.8/_assert_equals.d.ts +0 -20
  242. package/script/deps/jsr.io/@std/expect/1.0.8/_assert_equals.d.ts.map +0 -1
  243. package/script/deps/jsr.io/@std/expect/1.0.8/_assert_equals.js +0 -32
  244. package/script/deps/jsr.io/@std/expect/1.0.8/_assert_not_equals.d.ts +0 -17
  245. package/script/deps/jsr.io/@std/expect/1.0.8/_assert_not_equals.d.ts.map +0 -1
  246. package/script/deps/jsr.io/@std/expect/1.0.8/_assert_not_equals.js +0 -29
  247. package/script/deps/jsr.io/@std/expect/1.0.8/_assertions.d.ts +0 -4
  248. package/script/deps/jsr.io/@std/expect/1.0.8/_assertions.d.ts.map +0 -1
  249. package/script/deps/jsr.io/@std/expect/1.0.8/_assertions.js +0 -18
  250. package/script/deps/jsr.io/@std/expect/1.0.8/_asymmetric_matchers.d.ts +0 -46
  251. package/script/deps/jsr.io/@std/expect/1.0.8/_asymmetric_matchers.d.ts.map +0 -1
  252. package/script/deps/jsr.io/@std/expect/1.0.8/_asymmetric_matchers.js +0 -182
  253. package/script/deps/jsr.io/@std/expect/1.0.8/_build_message.d.ts +0 -6
  254. package/script/deps/jsr.io/@std/expect/1.0.8/_build_message.d.ts.map +0 -1
  255. package/script/deps/jsr.io/@std/expect/1.0.8/_build_message.js +0 -33
  256. package/script/deps/jsr.io/@std/expect/1.0.8/_custom_equality_tester.d.ts +0 -4
  257. package/script/deps/jsr.io/@std/expect/1.0.8/_custom_equality_tester.d.ts.map +0 -1
  258. package/script/deps/jsr.io/@std/expect/1.0.8/_custom_equality_tester.js +0 -15
  259. package/script/deps/jsr.io/@std/expect/1.0.8/_equal.d.ts +0 -9
  260. package/script/deps/jsr.io/@std/expect/1.0.8/_equal.d.ts.map +0 -1
  261. package/script/deps/jsr.io/@std/expect/1.0.8/_equal.js +0 -194
  262. package/script/deps/jsr.io/@std/expect/1.0.8/_extend.d.ts +0 -4
  263. package/script/deps/jsr.io/@std/expect/1.0.8/_extend.d.ts.map +0 -1
  264. package/script/deps/jsr.io/@std/expect/1.0.8/_extend.js +0 -15
  265. package/script/deps/jsr.io/@std/expect/1.0.8/_inspect_args.d.ts +0 -3
  266. package/script/deps/jsr.io/@std/expect/1.0.8/_inspect_args.d.ts.map +0 -1
  267. package/script/deps/jsr.io/@std/expect/1.0.8/_inspect_args.js +0 -17
  268. package/script/deps/jsr.io/@std/expect/1.0.8/_matchers.d.ts +0 -34
  269. package/script/deps/jsr.io/@std/expect/1.0.8/_matchers.d.ts.map +0 -1
  270. package/script/deps/jsr.io/@std/expect/1.0.8/_matchers.js +0 -597
  271. package/script/deps/jsr.io/@std/expect/1.0.8/_mock_util.d.ts +0 -11
  272. package/script/deps/jsr.io/@std/expect/1.0.8/_mock_util.d.ts.map +0 -1
  273. package/script/deps/jsr.io/@std/expect/1.0.8/_mock_util.js +0 -14
  274. package/script/deps/jsr.io/@std/expect/1.0.8/_serializer.d.ts +0 -4
  275. package/script/deps/jsr.io/@std/expect/1.0.8/_serializer.d.ts.map +0 -1
  276. package/script/deps/jsr.io/@std/expect/1.0.8/_serializer.js +0 -14
  277. package/script/deps/jsr.io/@std/expect/1.0.8/_types.d.ts +0 -839
  278. package/script/deps/jsr.io/@std/expect/1.0.8/_types.d.ts.map +0 -1
  279. package/script/deps/jsr.io/@std/expect/1.0.8/_types.js +0 -4
  280. package/script/deps/jsr.io/@std/expect/1.0.8/_utils.d.ts +0 -9
  281. package/script/deps/jsr.io/@std/expect/1.0.8/_utils.d.ts.map +0 -1
  282. package/script/deps/jsr.io/@std/expect/1.0.8/_utils.js +0 -226
  283. package/script/deps/jsr.io/@std/expect/1.0.8/expect.d.ts +0 -60
  284. package/script/deps/jsr.io/@std/expect/1.0.8/expect.d.ts.map +0 -1
  285. package/script/deps/jsr.io/@std/expect/1.0.8/expect.js +0 -527
  286. package/script/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts +0 -160
  287. package/script/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts.map +0 -1
  288. package/script/deps/jsr.io/@std/internal/1.0.5/assertion_state.js +0 -204
  289. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts +0 -82
  290. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +0 -1
  291. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.js +0 -116
  292. package/script/deps/jsr.io/@std/internal/1.0.5/diff.d.ts +0 -140
  293. package/script/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +0 -1
  294. package/script/deps/jsr.io/@std/internal/1.0.5/diff.js +0 -284
  295. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts +0 -99
  296. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +0 -1
  297. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.js +0 -186
  298. package/script/deps/jsr.io/@std/internal/1.0.5/format.d.ts +0 -2
  299. package/script/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +0 -1
  300. package/script/deps/jsr.io/@std/internal/1.0.5/format.js +0 -41
  301. package/script/deps/jsr.io/@std/internal/1.0.5/styles.d.ts +0 -159
  302. package/script/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +0 -1
  303. package/script/deps/jsr.io/@std/internal/1.0.5/styles.js +0 -220
  304. package/script/deps/jsr.io/@std/internal/1.0.5/types.d.ts +0 -16
  305. package/script/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +0 -1
  306. package/script/deps/jsr.io/@std/internal/1.0.5/types.js +0 -3
  307. package/script/deps/jsr.io/@std/testing/1.0.5/_mock_utils.d.ts +0 -15
  308. package/script/deps/jsr.io/@std/testing/1.0.5/_mock_utils.d.ts.map +0 -1
  309. package/script/deps/jsr.io/@std/testing/1.0.5/_mock_utils.js +0 -41
  310. package/script/deps/jsr.io/@std/testing/1.0.5/_test_suite.d.ts +0 -74
  311. package/script/deps/jsr.io/@std/testing/1.0.5/_test_suite.d.ts.map +0 -1
  312. package/script/deps/jsr.io/@std/testing/1.0.5/_test_suite.js +0 -355
  313. package/script/deps/jsr.io/@std/testing/1.0.5/bdd.d.ts +0 -731
  314. package/script/deps/jsr.io/@std/testing/1.0.5/bdd.d.ts.map +0 -1
  315. package/script/deps/jsr.io/@std/testing/1.0.5/bdd.js +0 -592
  316. package/script/deps/jsr.io/@std/testing/1.0.5/mock.d.ts +0 -674
  317. package/script/deps/jsr.io/@std/testing/1.0.5/mock.d.ts.map +0 -1
  318. package/script/deps/jsr.io/@std/testing/1.0.5/mock.js +0 -1102
  319. package/script/src/ast/nodes/annotation.test.d.ts +0 -2
  320. package/script/src/ast/nodes/annotation.test.d.ts.map +0 -1
  321. package/script/src/ast/nodes/annotation.test.js +0 -58
  322. package/script/src/ast/nodes/argument.test.d.ts +0 -2
  323. package/script/src/ast/nodes/argument.test.d.ts.map +0 -1
  324. package/script/src/ast/nodes/argument.test.js +0 -35
  325. package/script/src/ast/nodes/call.test.d.ts +0 -2
  326. package/script/src/ast/nodes/call.test.d.ts.map +0 -1
  327. package/script/src/ast/nodes/call.test.js +0 -37
  328. package/script/src/ast/nodes/class.test.d.ts +0 -2
  329. package/script/src/ast/nodes/class.test.d.ts.map +0 -1
  330. package/script/src/ast/nodes/class.test.js +0 -221
  331. package/script/src/ast/nodes/constructor.test.d.ts +0 -2
  332. package/script/src/ast/nodes/constructor.test.d.ts.map +0 -1
  333. package/script/src/ast/nodes/constructor.test.js +0 -141
  334. package/script/src/ast/nodes/doc-tag.test.d.ts +0 -2
  335. package/script/src/ast/nodes/doc-tag.test.d.ts.map +0 -1
  336. package/script/src/ast/nodes/doc-tag.test.js +0 -69
  337. package/script/src/ast/nodes/doc.test.d.ts +0 -2
  338. package/script/src/ast/nodes/doc.test.d.ts.map +0 -1
  339. package/script/src/ast/nodes/doc.test.js +0 -35
  340. package/script/src/ast/nodes/enum-value.test.d.ts +0 -2
  341. package/script/src/ast/nodes/enum-value.test.d.ts.map +0 -1
  342. package/script/src/ast/nodes/enum-value.test.js +0 -117
  343. package/script/src/ast/nodes/enum.test.d.ts +0 -2
  344. package/script/src/ast/nodes/enum.test.d.ts.map +0 -1
  345. package/script/src/ast/nodes/enum.test.js +0 -131
  346. package/script/src/ast/nodes/function.test.d.ts +0 -2
  347. package/script/src/ast/nodes/function.test.d.ts.map +0 -1
  348. package/script/src/ast/nodes/function.test.js +0 -162
  349. package/script/src/ast/nodes/generic-parameter.test.d.ts +0 -2
  350. package/script/src/ast/nodes/generic-parameter.test.d.ts.map +0 -1
  351. package/script/src/ast/nodes/generic-parameter.test.js +0 -51
  352. package/script/src/ast/nodes/init-block.test.d.ts +0 -2
  353. package/script/src/ast/nodes/init-block.test.d.ts.map +0 -1
  354. package/script/src/ast/nodes/init-block.test.js +0 -30
  355. package/script/src/ast/nodes/interface.test.d.ts +0 -2
  356. package/script/src/ast/nodes/interface.test.d.ts.map +0 -1
  357. package/script/src/ast/nodes/interface.test.js +0 -123
  358. package/script/src/ast/nodes/object.test.d.ts +0 -2
  359. package/script/src/ast/nodes/object.test.d.ts.map +0 -1
  360. package/script/src/ast/nodes/object.test.js +0 -80
  361. package/script/src/ast/nodes/parameter.test.d.ts +0 -2
  362. package/script/src/ast/nodes/parameter.test.d.ts.map +0 -1
  363. package/script/src/ast/nodes/parameter.test.js +0 -154
  364. package/script/src/ast/nodes/property.test.d.ts +0 -2
  365. package/script/src/ast/nodes/property.test.d.ts.map +0 -1
  366. package/script/src/ast/nodes/property.test.js +0 -208
  367. package/script/src/ast/nodes/reference.test.d.ts +0 -2
  368. package/script/src/ast/nodes/reference.test.d.ts.map +0 -1
  369. package/script/src/ast/nodes/reference.test.js +0 -38
  370. package/script/src/ast/nodes/string.test.d.ts +0 -2
  371. package/script/src/ast/nodes/string.test.d.ts.map +0 -1
  372. package/script/src/ast/nodes/string.test.js +0 -50
  373. package/script/src/import-collection.test.d.ts +0 -2
  374. package/script/src/import-collection.test.d.ts.map +0 -1
  375. package/script/src/import-collection.test.js +0 -101
  376. package/script/tests/openapi-models.test.d.ts +0 -2
  377. package/script/tests/openapi-models.test.d.ts.map +0 -1
  378. package/script/tests/openapi-models.test.js +0 -48
  379. package/src/_dnt.test_polyfills.ts +0 -70
  380. package/src/_dnt.test_shims.ts +0 -64
  381. package/src/deps/jsr.io/@std/assert/1.0.8/assertion_error.ts +0 -31
  382. package/src/deps/jsr.io/@std/assert/1.0.8/equal.ts +0 -210
  383. package/src/deps/jsr.io/@std/assert/1.0.8/equals.ts +0 -52
  384. package/src/deps/jsr.io/@std/assert/1.0.8/false.ts +0 -26
  385. package/src/deps/jsr.io/@std/assert/1.0.8/instance_of.ts +0 -64
  386. package/src/deps/jsr.io/@std/assert/1.0.8/is_error.ts +0 -65
  387. package/src/deps/jsr.io/@std/assert/1.0.8/match.ts +0 -30
  388. package/src/deps/jsr.io/@std/assert/1.0.8/not_instance_of.ts +0 -33
  389. package/src/deps/jsr.io/@std/assert/1.0.8/not_match.ts +0 -30
  390. package/src/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.ts +0 -42
  391. package/src/deps/jsr.io/@std/assert/1.0.8/rejects.ts +0 -123
  392. package/src/deps/jsr.io/@std/assert/1.0.8/strict_equals.ts +0 -67
  393. package/src/deps/jsr.io/@std/expect/1.0.8/_assert_equals.ts +0 -38
  394. package/src/deps/jsr.io/@std/expect/1.0.8/_assert_not_equals.ts +0 -35
  395. package/src/deps/jsr.io/@std/expect/1.0.8/_assertions.ts +0 -18
  396. package/src/deps/jsr.io/@std/expect/1.0.8/_asymmetric_matchers.ts +0 -193
  397. package/src/deps/jsr.io/@std/expect/1.0.8/_build_message.ts +0 -51
  398. package/src/deps/jsr.io/@std/expect/1.0.8/_custom_equality_tester.ts +0 -19
  399. package/src/deps/jsr.io/@std/expect/1.0.8/_equal.ts +0 -230
  400. package/src/deps/jsr.io/@std/expect/1.0.8/_extend.ts +0 -16
  401. package/src/deps/jsr.io/@std/expect/1.0.8/_inspect_args.ts +0 -15
  402. package/src/deps/jsr.io/@std/expect/1.0.8/_matchers.ts +0 -832
  403. package/src/deps/jsr.io/@std/expect/1.0.8/_mock_util.ts +0 -22
  404. package/src/deps/jsr.io/@std/expect/1.0.8/_serializer.ts +0 -15
  405. package/src/deps/jsr.io/@std/expect/1.0.8/_types.ts +0 -919
  406. package/src/deps/jsr.io/@std/expect/1.0.8/_utils.ts +0 -283
  407. package/src/deps/jsr.io/@std/expect/1.0.8/expect.ts +0 -620
  408. package/src/deps/jsr.io/@std/internal/1.0.5/assertion_state.ts +0 -214
  409. package/src/deps/jsr.io/@std/internal/1.0.5/build_message.ts +0 -134
  410. package/src/deps/jsr.io/@std/internal/1.0.5/diff.ts +0 -317
  411. package/src/deps/jsr.io/@std/internal/1.0.5/diff_str.ts +0 -204
  412. package/src/deps/jsr.io/@std/internal/1.0.5/format.ts +0 -39
  413. package/src/deps/jsr.io/@std/internal/1.0.5/styles.ts +0 -233
  414. package/src/deps/jsr.io/@std/internal/1.0.5/types.ts +0 -18
  415. package/src/deps/jsr.io/@std/testing/1.0.5/_mock_utils.ts +0 -43
  416. package/src/deps/jsr.io/@std/testing/1.0.5/_test_suite.ts +0 -410
  417. package/src/deps/jsr.io/@std/testing/1.0.5/bdd.ts +0 -1211
  418. package/src/deps/jsr.io/@std/testing/1.0.5/mock.ts +0 -1807
  419. package/src/mod.ts +0 -8
  420. package/src/src/assets.ts +0 -9
  421. package/src/src/ast/_index.ts +0 -66
  422. package/src/src/ast/common.ts +0 -1
  423. package/src/src/ast/index.ts +0 -1
  424. package/src/src/ast/node.ts +0 -10
  425. package/src/src/ast/nodes/annotation.test.ts +0 -69
  426. package/src/src/ast/nodes/annotation.ts +0 -79
  427. package/src/src/ast/nodes/argument.test.ts +0 -41
  428. package/src/src/ast/nodes/argument.ts +0 -62
  429. package/src/src/ast/nodes/call.test.ts +0 -44
  430. package/src/src/ast/nodes/call.ts +0 -66
  431. package/src/src/ast/nodes/class.test.ts +0 -274
  432. package/src/src/ast/nodes/class.ts +0 -178
  433. package/src/src/ast/nodes/collection-literal.ts +0 -49
  434. package/src/src/ast/nodes/constructor.test.ts +0 -178
  435. package/src/src/ast/nodes/constructor.ts +0 -126
  436. package/src/src/ast/nodes/doc-tag.test.ts +0 -84
  437. package/src/src/ast/nodes/doc-tag.ts +0 -138
  438. package/src/src/ast/nodes/doc.test.ts +0 -42
  439. package/src/src/ast/nodes/doc.ts +0 -111
  440. package/src/src/ast/nodes/enum-value.test.ts +0 -146
  441. package/src/src/ast/nodes/enum-value.ts +0 -100
  442. package/src/src/ast/nodes/enum.test.ts +0 -167
  443. package/src/src/ast/nodes/enum.ts +0 -163
  444. package/src/src/ast/nodes/function.test.ts +0 -194
  445. package/src/src/ast/nodes/function.ts +0 -176
  446. package/src/src/ast/nodes/generic-parameter.test.ts +0 -60
  447. package/src/src/ast/nodes/generic-parameter.ts +0 -54
  448. package/src/src/ast/nodes/init-block.test.ts +0 -36
  449. package/src/src/ast/nodes/init-block.ts +0 -38
  450. package/src/src/ast/nodes/interface.test.ts +0 -151
  451. package/src/src/ast/nodes/interface.ts +0 -133
  452. package/src/src/ast/nodes/lambda-type.ts +0 -68
  453. package/src/src/ast/nodes/lambda.ts +0 -68
  454. package/src/src/ast/nodes/object.test.ts +0 -101
  455. package/src/src/ast/nodes/object.ts +0 -102
  456. package/src/src/ast/nodes/parameter.test.ts +0 -191
  457. package/src/src/ast/nodes/parameter.ts +0 -118
  458. package/src/src/ast/nodes/property.test.ts +0 -253
  459. package/src/src/ast/nodes/property.ts +0 -225
  460. package/src/src/ast/nodes/reference.test.ts +0 -47
  461. package/src/src/ast/nodes/reference.ts +0 -178
  462. package/src/src/ast/nodes/string.test.ts +0 -61
  463. package/src/src/ast/nodes/string.ts +0 -114
  464. package/src/src/ast/nodes/types.ts +0 -23
  465. package/src/src/ast/references/index.ts +0 -8
  466. package/src/src/ast/references/jackson.ts +0 -16
  467. package/src/src/ast/references/jakarta.ts +0 -10
  468. package/src/src/ast/references/java.ts +0 -19
  469. package/src/src/ast/references/kotlin.ts +0 -40
  470. package/src/src/ast/references/okhttp3.ts +0 -5
  471. package/src/src/ast/references/reactor.ts +0 -5
  472. package/src/src/ast/references/spring.ts +0 -58
  473. package/src/src/ast/references/swagger.ts +0 -23
  474. package/src/src/ast/utils/get-kotlin-builder-options.ts +0 -19
  475. package/src/src/ast/utils/to-kt-node.ts +0 -31
  476. package/src/src/ast/utils/write-kt-annotations.ts +0 -15
  477. package/src/src/ast/utils/write-kt-arguments.ts +0 -45
  478. package/src/src/ast/utils/write-kt-enum-values.ts +0 -27
  479. package/src/src/ast/utils/write-kt-generic-parameters.ts +0 -12
  480. package/src/src/ast/utils/write-kt-members.ts +0 -25
  481. package/src/src/ast/utils/write-kt-node.ts +0 -37
  482. package/src/src/ast/utils/write-kt-parameters.ts +0 -25
  483. package/src/src/common-results.ts +0 -4
  484. package/src/src/config.ts +0 -41
  485. package/src/src/file-builder.ts +0 -108
  486. package/src/src/generators/file-generator.ts +0 -29
  487. package/src/src/generators/index.ts +0 -4
  488. package/src/src/generators/models/args.ts +0 -128
  489. package/src/src/generators/models/index.ts +0 -4
  490. package/src/src/generators/models/model-generator.ts +0 -602
  491. package/src/src/generators/models/models-generator.ts +0 -65
  492. package/src/src/generators/models/models.ts +0 -95
  493. package/src/src/generators/services/okhttp3-clients/args.ts +0 -78
  494. package/src/src/generators/services/okhttp3-clients/index.ts +0 -4
  495. package/src/src/generators/services/okhttp3-clients/models.ts +0 -62
  496. package/src/src/generators/services/okhttp3-clients/okhttp3-client-generator.ts +0 -557
  497. package/src/src/generators/services/okhttp3-clients/okhttp3-clients-generator.ts +0 -130
  498. package/src/src/generators/services/okhttp3-clients/refs.ts +0 -55
  499. package/src/src/generators/services/spring-controllers/args.ts +0 -73
  500. package/src/src/generators/services/spring-controllers/index.ts +0 -4
  501. package/src/src/generators/services/spring-controllers/models.ts +0 -58
  502. package/src/src/generators/services/spring-controllers/spring-controller-generator.ts +0 -653
  503. package/src/src/generators/services/spring-controllers/spring-controllers-generator.ts +0 -70
  504. package/src/src/import-collection.test.ts +0 -116
  505. package/src/src/import-collection.ts +0 -98
  506. package/src/src/types.ts +0 -3
  507. package/src/src/utils.ts +0 -39
  508. package/src/tests/openapi-models.test.ts +0 -63
  509. package/test_runner.js +0 -227
@@ -1,653 +0,0 @@
1
-
2
- import fs from 'fs-extra';
3
-
4
- import {
5
- type ApiEndpoint,
6
- type ApiParameter,
7
- type AppendValueGroup,
8
- appendValueGroup,
9
- builderTemplate as s,
10
- createOverwriteProxy,
11
- type MaybePromise,
12
- notNullish,
13
- resolveAnyOfAndAllOf,
14
- SourceBuilder,
15
- toCasing,
16
- } from '@goast/core';
17
-
18
- import { kt } from '../../../ast/index.js';
19
- import type { KotlinImport } from '../../../common-results.js';
20
- import { KotlinFileBuilder } from '../../../file-builder.js';
21
- import type { ApiParameterWithMultipartInfo } from '../../../types.js';
22
- import { modifyString } from '../../../utils.js';
23
- import { KotlinFileGenerator } from '../../file-generator.js';
24
- import type { DefaultKotlinSpringControllerGeneratorArgs as Args } from './index.js';
25
- import type { KotlinServiceGeneratorContext, KotlinServiceGeneratorOutput } from './models.js';
26
-
27
- type Context = KotlinServiceGeneratorContext;
28
- type Output = KotlinServiceGeneratorOutput;
29
- type Builder = KotlinFileBuilder;
30
-
31
- export interface KotlinSpringControllerGenerator<TOutput extends Output = Output> {
32
- generate(ctx: Context): MaybePromise<TOutput>;
33
- }
34
-
35
- export class DefaultKotlinSpringControllerGenerator extends KotlinFileGenerator<Context, Output>
36
- implements KotlinSpringControllerGenerator {
37
- generate(ctx: KotlinServiceGeneratorContext): MaybePromise<KotlinServiceGeneratorOutput> {
38
- const packageName = this.getPackageName(ctx, {});
39
- const dirPath = this.getDirectoryPath(ctx, { packageName });
40
- fs.ensureDirSync(dirPath);
41
-
42
- console.log(`Generating service ${ctx.service.id} to ${dirPath}...`);
43
- return {
44
- apiInterface: this.generateApiInterfaceFile(ctx, { dirPath, packageName }),
45
- apiController: this.generateApiControllerFile(ctx, { dirPath, packageName }),
46
- apiDelegate: this.generateApiDelegateInterfaceFile(ctx, { dirPath, packageName }),
47
- };
48
- }
49
-
50
- // #region API Interface
51
- protected generateApiInterfaceFile(ctx: Context, args: Args.GenerateApiInterfaceFile): KotlinImport {
52
- const { dirPath, packageName } = args;
53
- const typeName = this.getApiInterfaceName(ctx, {});
54
- const fileName = `${typeName}.kt`;
55
- const filePath = `${dirPath}/${fileName}`;
56
- console.log(` Generating API interface ${typeName} to ${fileName}...`);
57
-
58
- const builder = new KotlinFileBuilder(packageName, ctx.config);
59
- builder.append(this.getApiInterfaceFileContent(ctx, { interfaceName: typeName }));
60
- fs.writeFileSync(filePath, builder.toString());
61
-
62
- return { typeName, packageName };
63
- }
64
-
65
- protected getApiInterfaceFileContent(ctx: Context, args: Args.GetApiinterfaceFileContent): AppendValueGroup<Builder> {
66
- const { interfaceName } = args;
67
-
68
- return appendValueGroup([this.getApiInterface(ctx, { interfaceName })], '\n');
69
- }
70
-
71
- protected getApiInterface(ctx: Context, args: Args.GetApiInterface): kt.Interface<Builder> {
72
- const { interfaceName } = args;
73
-
74
- return kt.interface(interfaceName, {
75
- annotations: this.getApiInterfaceAnnotations(ctx),
76
- members: this.getApiInterfaceMembers(ctx),
77
- companionObject: kt.object({
78
- members: ctx.service.endpoints.map((endpoint) =>
79
- kt.property(this.getPathConstantName(ctx, { endpoint }), {
80
- const: true,
81
- default: kt.string(this.getEndpointPath(ctx, { endpoint })),
82
- })
83
- ),
84
- }),
85
- });
86
- }
87
-
88
- private getApiInterfaceAnnotations(ctx: Context): kt.Annotation<Builder>[] {
89
- const validated = kt.annotation(kt.refs.spring.validated());
90
- const requestMapping = kt.annotation(kt.refs.spring.requestMapping(), [
91
- kt.argument(this.getControllerRequestMapping(ctx, { prefix: 'api' })),
92
- ]);
93
- return [validated, requestMapping];
94
- }
95
-
96
- private getApiInterfaceMembers(ctx: Context): kt.InterfaceMember<Builder>[] {
97
- const members: kt.InterfaceMember<Builder>[] = [];
98
- const delegateInterfaceName = this.getApiDelegateInterfaceName(ctx, {});
99
-
100
- members.push(
101
- kt.function('getDelegate', {
102
- returnType: delegateInterfaceName,
103
- singleExpression: true,
104
- body: kt.object({
105
- implements: [delegateInterfaceName],
106
- }),
107
- }),
108
- );
109
-
110
- ctx.service.endpoints.forEach((endpoint) => {
111
- members.push(this.getApiInterfaceEndpointMethod(ctx, { endpoint }));
112
- });
113
-
114
- return members;
115
- }
116
-
117
- protected getApiInterfaceEndpointMethod(
118
- ctx: Context,
119
- args: Args.GetApiInterfaceEndpointMethod,
120
- ): kt.Function<Builder> {
121
- const { endpoint } = args;
122
- const parameters = this.getAllParameters(ctx, { endpoint });
123
-
124
- return kt.function(toCasing(endpoint.name, ctx.config.functionNameCasing), {
125
- suspend: true,
126
- annotations: this.getApiInterfaceEndpointMethodAnnnotations(ctx, endpoint),
127
- parameters: parameters.map((parameter) => this.getApiInterfaceEndpointMethodParameter(ctx, endpoint, parameter)),
128
- returnType: kt.refs.spring.responseEntity([this.getResponseType(ctx, { endpoint })]),
129
- body: this.getApiInterfaceEndpointMethodBody(ctx, endpoint, parameters),
130
- });
131
- }
132
-
133
- private getApiInterfaceEndpointMethodAnnnotations(ctx: Context, endpoint: ApiEndpoint): kt.Annotation<Builder>[] {
134
- const annotations: kt.Annotation<Builder>[] = [];
135
-
136
- if (ctx.config.addSwaggerAnnotations) {
137
- annotations.push(
138
- kt.annotation(kt.refs.swagger.operation(), [
139
- endpoint.summary ? kt.argument.named('summary', kt.string(endpoint.summary?.trim())) : null,
140
- kt.argument.named('operationId', kt.string(endpoint.name)),
141
- endpoint.description ? kt.argument.named('description', kt.string(endpoint.description?.trim())) : null,
142
- endpoint.deprecated !== undefined ? kt.argument.named('deprecated', kt.toNode(endpoint.deprecated)) : null,
143
- ]),
144
- );
145
-
146
- if (endpoint.responses.length > 0) {
147
- annotations.push(
148
- kt.annotation(kt.refs.swagger.apiResponses(), [
149
- kt.argument.named(
150
- 'value',
151
- kt.collectionLiteral(
152
- endpoint.responses.map((response) =>
153
- kt.call(kt.refs.swagger.apiResponse(), [
154
- kt.argument.named('responseCode', kt.string(response.statusCode?.toString())),
155
- response.description
156
- ? kt.argument.named('description', kt.string(response.description?.trim()))
157
- : null,
158
- kt.argument.named(
159
- 'content',
160
- kt.collectionLiteral(
161
- (response.contentOptions.length === 0
162
- ? [{ schema: undefined, type: undefined }]
163
- : response.contentOptions).map((content) => {
164
- let schemaType: kt.Type<Builder> = this.getSchemaType(ctx, { schema: content.schema }) ??
165
- kt.refs.any();
166
- let isArray = false;
167
-
168
- if (kt.refs.list.matches(schemaType)) {
169
- isArray = true;
170
- schemaType = schemaType.generics[0];
171
- }
172
-
173
- let ktSchema = kt.call(kt.refs.swagger.schema(), [
174
- kt.argument.named('implementation', s<Builder>`${schemaType}::class`),
175
- ]);
176
- if (isArray) {
177
- ktSchema = kt.call(kt.refs.swagger.arraySchema(), [
178
- kt.argument.named('schema', ktSchema),
179
- ]);
180
- }
181
-
182
- return kt.call(kt.refs.swagger.content(), [
183
- content.type ? kt.argument.named('mediaType', kt.string(content.type)) : null,
184
- content.schema ? kt.argument.named(isArray ? 'array' : 'schema', ktSchema) : null,
185
- ]);
186
- }),
187
- ),
188
- ),
189
- ])
190
- ),
191
- ),
192
- ),
193
- ]),
194
- );
195
- }
196
- }
197
-
198
- const requestMapping = kt.annotation(kt.refs.spring.requestMapping(), [
199
- kt.argument.named(
200
- 'method',
201
- kt.collectionLiteral([kt.call([kt.refs.spring.requestMethod(), endpoint.method.toUpperCase()])]),
202
- ),
203
- kt.argument.named('value', kt.collectionLiteral([this.getPathConstantName(ctx, { endpoint })])),
204
- ]);
205
- if (endpoint.requestBody && endpoint.requestBody.content.length > 0) {
206
- requestMapping.arguments.push(
207
- kt.argument.named(
208
- 'consumes',
209
- kt.collectionLiteral(endpoint.requestBody?.content.map((x) => kt.string(x.type))),
210
- ),
211
- );
212
- }
213
- annotations.push(requestMapping);
214
-
215
- return annotations;
216
- }
217
-
218
- private getApiInterfaceEndpointMethodParameter(
219
- ctx: Context,
220
- endpoint: ApiEndpoint,
221
- parameter: ApiParameterWithMultipartInfo,
222
- ): kt.Parameter<Builder> {
223
- const schemaType = this.getSchemaType(ctx, { schema: parameter.schema });
224
- const result = kt.parameter(
225
- toCasing(parameter.name, ctx.config.parameterNameCasing),
226
- this.getParameterType(ctx, { endpoint, parameter }),
227
- {
228
- default: parameter.multipart && parameter.schema?.default !== undefined
229
- ? kt.toNode(parameter.schema?.default)
230
- : null,
231
- },
232
- );
233
-
234
- if (ctx.config.addSwaggerAnnotations) {
235
- const annotation = kt.annotation(kt.refs.swagger.parameter(), [
236
- parameter.multipart ? kt.argument.named('name', kt.string(parameter.multipart.name)) : null,
237
- parameter.description ? kt.argument.named('description', kt.string(parameter.description?.trim())) : null,
238
- kt.argument.named('required', parameter.required),
239
- ]);
240
- if (parameter.schema?.default !== undefined) {
241
- annotation.arguments.push(
242
- kt.argument.named(
243
- 'schema',
244
- kt.call(
245
- [kt.refs.swagger.schema()],
246
- [kt.argument.named('defaultValue', kt.string(String(parameter.schema?.default)))],
247
- ),
248
- ),
249
- );
250
- }
251
- result.annotations.push(annotation);
252
- }
253
-
254
- const isCorePackage = !schemaType?.packageName || /^(kotlin|java)(\..*|$)/.test(schemaType.packageName);
255
- if (!isCorePackage && ctx.config.addJakartaValidationAnnotations) {
256
- result.annotations.push(kt.annotation(kt.refs.jakarta.valid()));
257
- }
258
-
259
- if (parameter.target === 'body' && !parameter.multipart) {
260
- result.annotations.push(kt.annotation(kt.refs.spring.requestBody()));
261
- }
262
-
263
- if (parameter.target === 'query') {
264
- const annotation = kt.annotation(kt.refs.spring.requestParam(), [
265
- kt.argument.named('value', kt.string(parameter.name)),
266
- kt.argument.named('required', parameter.required),
267
- ]);
268
- if (parameter.schema?.default !== undefined) {
269
- annotation.arguments.push(kt.argument.named('defaultValue', kt.string(String(parameter.schema?.default))));
270
- }
271
- result.annotations.push(annotation);
272
- }
273
-
274
- if (parameter.target === 'path') {
275
- result.annotations.push(kt.annotation(kt.refs.spring.pathVariable(), [kt.string(parameter.name)]));
276
- }
277
-
278
- if (parameter.multipart) {
279
- result.annotations.push(
280
- kt.annotation(kt.refs.spring.requestPart(), [
281
- kt.argument.named('value', kt.string(parameter.multipart.name)),
282
- kt.argument.named('required', parameter.required),
283
- ]),
284
- );
285
- }
286
-
287
- return result;
288
- }
289
-
290
- private getApiInterfaceEndpointMethodBody(
291
- ctx: Context,
292
- endpoint: ApiEndpoint,
293
- parameters: ApiParameter[],
294
- ): AppendValueGroup<Builder> {
295
- return appendValueGroup(
296
- [
297
- s`return ${
298
- kt.call(
299
- [kt.call(kt.reference('getDelegate'), []), toCasing(endpoint.name, ctx.config.functionNameCasing)],
300
- parameters.map((x) => toCasing(x.name, ctx.config.parameterNameCasing)),
301
- )
302
- }`,
303
- ],
304
- '\n',
305
- );
306
- }
307
- // #endregion
308
-
309
- // #region API Controller
310
- protected generateApiControllerFile(ctx: Context, args: Args.GenerateApiControllerFile): KotlinImport {
311
- const { dirPath, packageName } = args;
312
- const typeName = this.getApiControllerName(ctx, {});
313
- const fileName = `${typeName}.kt`;
314
- const filePath = `${dirPath}/${fileName}`;
315
- console.log(` Generating API controller ${typeName} to ${fileName}...`);
316
-
317
- const builder = new KotlinFileBuilder(packageName, ctx.config);
318
- builder.append(this.getApiControllerFileContent(ctx, { controllerName: typeName }));
319
- fs.writeFileSync(filePath, builder.toString());
320
-
321
- return { typeName, packageName };
322
- }
323
-
324
- protected getApiControllerFileContent(
325
- ctx: Context,
326
- args: Args.GetApiControllerFileContent,
327
- ): AppendValueGroup<Builder> {
328
- const { controllerName } = args;
329
-
330
- return appendValueGroup([this.getApiController(ctx, { controllerName })], '\n');
331
- }
332
-
333
- protected getApiController(ctx: Context, args: Args.GetApiController): kt.Class<Builder> {
334
- const { controllerName } = args;
335
-
336
- return kt.class(controllerName, {
337
- annotations: this.getApiControllerAnnotations(ctx),
338
- primaryConstructor: kt.constructor([
339
- kt.parameter.class(
340
- 'delegate',
341
- kt.reference(this.getApiDelegateInterfaceName(ctx, {}), null, { nullable: true }),
342
- {
343
- annotations: [kt.annotation(kt.refs.spring.autowired(), [kt.argument.named('required', 'false')])],
344
- },
345
- ),
346
- ]),
347
- implements: [this.getApiInterfaceName(ctx, {})],
348
- members: this.getApiControllerMembers(ctx),
349
- });
350
- }
351
-
352
- private getApiControllerAnnotations(ctx: Context): kt.Annotation<Builder>[] {
353
- const annotations: kt.Annotation<Builder>[] = [];
354
- if (ctx.config.addJakartaValidationAnnotations) {
355
- annotations.push(
356
- kt.annotation(kt.refs.jakarta.generated(), [
357
- kt.argument.named('value', kt.collectionLiteral([kt.string('com.goast.kotlin.spring-service-generator')])),
358
- ]),
359
- );
360
- }
361
- annotations.push(kt.annotation(kt.refs.spring.controller()));
362
- annotations.push(kt.annotation(kt.refs.spring.requestMapping(), [this.getControllerRequestMapping(ctx, {})]));
363
- return annotations;
364
- }
365
-
366
- private getApiControllerMembers(ctx: Context): kt.ClassMember<Builder>[] {
367
- const delegateInterfaceName = this.getApiDelegateInterfaceName(ctx, {});
368
-
369
- const delegateProp = kt.property<Builder>('delegate', {
370
- accessModifier: 'private',
371
- type: kt.reference(delegateInterfaceName),
372
- });
373
-
374
- const initBlock = kt.initBlock<Builder>(
375
- appendValueGroup(
376
- [
377
- s`this.delegate = ${kt.refs.java.optional.infer()}.ofNullable(delegate).orElse(object : ${delegateInterfaceName} {})`,
378
- ],
379
- '\n',
380
- ),
381
- );
382
-
383
- const getDelegateFun = kt.function<Builder>('getDelegate', {
384
- override: true,
385
- returnType: delegateInterfaceName,
386
- singleExpression: true,
387
- body: kt.reference('delegate'),
388
- });
389
-
390
- return [delegateProp, initBlock, getDelegateFun];
391
- }
392
- // #endregion
393
-
394
- // #region API Delegate Interface
395
- protected generateApiDelegateInterfaceFile(ctx: Context, args: Args.GenerateApiDelegateInterfaceFile): KotlinImport {
396
- const { dirPath, packageName } = args;
397
- const typeName = this.getApiDelegateInterfaceName(ctx, {});
398
- const fileName = `${typeName}.kt`;
399
- const filePath = `${dirPath}/${fileName}`;
400
- console.log(` Generating API delegate ${typeName} to ${fileName}...`);
401
-
402
- const builder = new KotlinFileBuilder(packageName, ctx.config);
403
- builder.append(this.getApiDelegateInterfaceFileContent(ctx, { delegateInterfaceName: typeName }));
404
- fs.writeFileSync(filePath, builder.toString());
405
-
406
- return { typeName, packageName };
407
- }
408
-
409
- protected getApiDelegateInterfaceFileContent(
410
- ctx: Context,
411
- args: Args.GetApiDelegateInterfaceFileContent,
412
- ): AppendValueGroup<Builder> {
413
- const { delegateInterfaceName } = args;
414
-
415
- return appendValueGroup([this.getApiDelegateInterface(ctx, { delegateInterfaceName })], '\n');
416
- }
417
-
418
- protected getApiDelegateInterface(ctx: Context, args: Args.GetApiDelegateInterface): kt.Interface<Builder> {
419
- const { delegateInterfaceName } = args;
420
-
421
- return kt.interface(delegateInterfaceName, {
422
- annotations: this.getApiDelegateInterfaceAnnotations(ctx),
423
- members: this.getApiDelegateInterfaceMembers(ctx),
424
- });
425
- }
426
-
427
- private getApiDelegateInterfaceAnnotations(ctx: Context): kt.Annotation<Builder>[] {
428
- const annotations: kt.Annotation<Builder>[] = [];
429
- if (ctx.config.addJakartaValidationAnnotations) {
430
- annotations.push(
431
- kt.annotation(kt.refs.jakarta.generated(), [
432
- kt.argument.named('value', kt.collectionLiteral([kt.string('com.goast.kotlin.spring-service-generator')])),
433
- ]),
434
- );
435
- }
436
- return annotations;
437
- }
438
-
439
- private getApiDelegateInterfaceMembers(ctx: Context): kt.InterfaceMember<Builder>[] {
440
- const members: kt.InterfaceMember<Builder>[] = [];
441
-
442
- members.push(
443
- kt.function('getRequest', {
444
- returnType: kt.refs.java.optional([kt.refs.spring.nativeWebRequest()]),
445
- singleExpression: true,
446
- body: kt.call([kt.refs.java.optional.infer(), 'empty'], []),
447
- }),
448
- );
449
-
450
- ctx.service.endpoints.forEach((endpoint) => {
451
- members.push(this.getApiDelegateInterfaceEndpointMethod(ctx, { endpoint }));
452
- });
453
-
454
- return members;
455
- }
456
-
457
- protected getApiDelegateInterfaceEndpointMethod(
458
- ctx: Context,
459
- args: Args.GetApiDelegateInterfaceEndpointMethod,
460
- ): kt.Function<Builder> {
461
- const { endpoint } = args;
462
- const parameters = this.getAllParameters(ctx, { endpoint });
463
-
464
- return kt.function(toCasing(endpoint.name, ctx.config.functionNameCasing), {
465
- suspend: true,
466
- parameters: parameters.map((parameter) => {
467
- return kt.parameter(
468
- toCasing(parameter.name, ctx.config.parameterNameCasing),
469
- this.getParameterType(ctx, { endpoint, parameter }),
470
- );
471
- }),
472
- returnType: kt.refs.spring.responseEntity([this.getResponseType(ctx, { endpoint })]),
473
- body: appendValueGroup(
474
- [s`return ${kt.refs.spring.responseEntity.infer()}(${kt.refs.spring.httpStatus()}.NOT_IMPLEMENTED)`],
475
- '\n',
476
- ),
477
- });
478
- }
479
- // #endregion
480
-
481
- protected getParameterType(ctx: Context, args: Args.GetParameterType): kt.Type<Builder> {
482
- const { parameter } = args;
483
- if (parameter.multipart?.isFile) {
484
- return kt.refs.spring.filePart();
485
- }
486
- const type = this.getTypeUsage(ctx, {
487
- schema: parameter.schema,
488
- nullable: (!parameter.required && parameter.schema?.default === undefined) || undefined,
489
- });
490
- return parameter.target === 'body' ? listToFlux(type) : type;
491
- }
492
-
493
- protected getResponseType(ctx: Context, args: Args.GetResponseType): kt.Type<Builder> {
494
- const { endpoint } = args;
495
- const responseSchemas = endpoint.responses
496
- .flatMap((x) => x.contentOptions.flatMap((x) => x.schema))
497
- .filter(notNullish)
498
- .filter(
499
- (x, i, a) =>
500
- a.findIndex((y) => {
501
- const xType = this.getSchemaType(ctx, { schema: x });
502
- const yType = this.getSchemaType(ctx, { schema: y });
503
- return xType?.name === yType?.name && xType?.packageName === yType?.packageName;
504
- }) === i,
505
- );
506
-
507
- if (responseSchemas.length === 1) {
508
- return listToFlux(this.getTypeUsage(ctx, { schema: responseSchemas[0], fallback: kt.refs.unit() }));
509
- } else if (responseSchemas.length === 0) {
510
- return kt.refs.unit();
511
- } else {
512
- return kt.refs.any({ nullable: true });
513
- }
514
- }
515
-
516
- protected getTypeUsage(ctx: Context, args: Args.GetTypeUsage<Builder>): kt.Type<Builder> {
517
- const { schema, nullable, fallback } = args;
518
- const type = this.getSchemaType(ctx, { schema });
519
- return type
520
- ? createOverwriteProxy(type, { nullable: nullable ?? type.nullable })
521
- : (fallback ?? kt.refs.any({ nullable }));
522
- }
523
-
524
- protected getSchemaType(ctx: Context, args: Args.GetSchemaType): kt.Reference<SourceBuilder> | undefined {
525
- const { schema } = args;
526
- return schema && ctx.input.kotlin.models[schema.id].type;
527
- }
528
-
529
- protected getControllerRequestMapping(ctx: Context, args: Args.GetControllerRequestMapping): kt.String<Builder> {
530
- let { prefix } = args;
531
- const basePath = this.getBasePath(ctx, {});
532
- prefix ??= `openapi.${toCasing(ctx.service.name, ctx.config.propertyNameCasing)}`;
533
- return kt.string(`\${${prefix}.base-path:${basePath}}`);
534
- }
535
-
536
- protected getBasePath(ctx: Context, _args: Args.GetBasePath): string {
537
- return modifyString(
538
- (ctx.service.$src ?? ctx.service.endpoints[0]?.$src)?.document.servers?.[0]?.url ?? '/',
539
- ctx.config.basePath,
540
- ctx.service,
541
- );
542
- }
543
-
544
- protected getEndpointPath(ctx: Context, args: Args.GetEndpointPath): string {
545
- const { endpoint } = args;
546
- return modifyString(endpoint.path, ctx.config.pathModifier, endpoint);
547
- }
548
-
549
- protected getDirectoryPath(ctx: Context, args: Args.GetDirectoryPath): string {
550
- const { packageName } = args;
551
- return `${ctx.config.outputDir}/${packageName.replace(/\./g, '/')}`;
552
- }
553
-
554
- protected getPathConstantName(ctx: Context, args: Args.GetPathConstantName): string {
555
- const { endpoint } = args;
556
- return toCasing(`${endpoint.name}_path`, ctx.config.constantNameCasing);
557
- }
558
-
559
- protected getPackageName(ctx: Context, _args: Args.GetPackageName): string {
560
- const packageSuffix = typeof ctx.config.packageSuffix === 'string'
561
- ? ctx.config.packageSuffix
562
- : ctx.config.packageSuffix(ctx.service);
563
- return ctx.config.packageName + packageSuffix;
564
- }
565
-
566
- protected getApiInterfaceName(ctx: Context, _args: Args.GetApiInterfaceName): string {
567
- return toCasing(ctx.service.name + '_Api', ctx.config.typeNameCasing);
568
- }
569
-
570
- protected getApiControllerName(ctx: Context, _args: Args.GetApiControllerName): string {
571
- return toCasing(ctx.service.name + '_ApiController', ctx.config.typeNameCasing);
572
- }
573
-
574
- protected getApiDelegateInterfaceName(ctx: Context, _args: Args.GetApiDelegateInterfaceName): string {
575
- return toCasing(ctx.service.name + '_ApiDelegate', ctx.config.typeNameCasing);
576
- }
577
-
578
- protected getAllParameters(ctx: Context, args: Args.GetAllParameters): ApiParameterWithMultipartInfo[] {
579
- const { endpoint } = args;
580
- const parameters = endpoint.parameters.filter(
581
- (parameter) => parameter.target === 'query' || parameter.target === 'path',
582
- );
583
- if (endpoint.requestBody) {
584
- const content = endpoint.requestBody.content[0];
585
- let schema = content.schema;
586
-
587
- if (content.type === 'multipart/form-data') {
588
- if (schema && schema.kind === 'object') {
589
- schema = resolveAnyOfAndAllOf(schema, true) ?? schema;
590
- const properties = schema.properties ?? {};
591
- for (const [name, property] of properties.entries()) {
592
- parameters.push(
593
- Object.assign(
594
- this.createApiParameter({
595
- id: `multipart-${name}`,
596
- name,
597
- target: 'body',
598
- schema: property.schema,
599
- required: schema.required.has(name),
600
- description: property.schema.description,
601
- }),
602
- {
603
- multipart: {
604
- name,
605
- isFile: property.schema.kind === 'string' && property.schema.format === 'binary',
606
- },
607
- },
608
- ),
609
- );
610
- }
611
- }
612
- } else {
613
- const schemaType = this.getSchemaType(ctx, { schema });
614
- const name = !schemaType || /^Any\??$/.test(schemaType.name)
615
- ? 'body'
616
- : SourceBuilder.build((b) => kt.reference.write(b, schemaType));
617
- parameters.push(
618
- this.createApiParameter({
619
- id: 'body',
620
- name,
621
- target: 'body',
622
- schema,
623
- required: endpoint.requestBody.required,
624
- description: endpoint.requestBody.description,
625
- }),
626
- );
627
- }
628
- }
629
-
630
- return parameters;
631
- }
632
-
633
- private createApiParameter(data: Partial<ApiParameter> & Pick<ApiParameter, 'id' | 'name' | 'target'>): ApiParameter {
634
- return {
635
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
636
- $src: undefined!,
637
- $ref: undefined,
638
- schema: undefined,
639
- required: false,
640
- description: undefined,
641
- allowEmptyValue: undefined,
642
- allowReserved: undefined,
643
- deprecated: false,
644
- explode: undefined,
645
- style: undefined,
646
- ...data,
647
- };
648
- }
649
- }
650
-
651
- export function listToFlux<T>(type: T): T {
652
- return kt.refs.list.matches(type) ? (kt.refs.reactor.flux([type.generics[0]]) as T) : type;
653
- }