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