@ir-kit/openapi-kotlin 2.0.0 → 3.0.0

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 (297) hide show
  1. package/README.md +13 -13
  2. package/dist/ast/index.d.ts +152 -0
  3. package/dist/ast/index.d.ts.map +1 -0
  4. package/dist/ast/index.js +159 -0
  5. package/dist/ast/index.js.map +1 -0
  6. package/dist/generate.d.ts +1 -1
  7. package/dist/generate.d.ts.map +1 -1
  8. package/dist/generate.js +13 -27
  9. package/dist/generate.js.map +1 -1
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/ir/identifiers.d.ts +7 -0
  15. package/dist/ir/identifiers.d.ts.map +1 -1
  16. package/dist/ir/identifiers.js +92 -3
  17. package/dist/ir/identifiers.js.map +1 -1
  18. package/dist/ir/impl/body.d.ts +4 -3
  19. package/dist/ir/impl/body.d.ts.map +1 -1
  20. package/dist/ir/impl/body.js +36 -37
  21. package/dist/ir/impl/body.js.map +1 -1
  22. package/dist/ir/impl/decode.d.ts +3 -2
  23. package/dist/ir/impl/decode.d.ts.map +1 -1
  24. package/dist/ir/impl/decode.js +16 -16
  25. package/dist/ir/impl/decode.js.map +1 -1
  26. package/dist/ir/impl/headers.d.ts +1 -1
  27. package/dist/ir/impl/headers.d.ts.map +1 -1
  28. package/dist/ir/impl/headers.js +3 -3
  29. package/dist/ir/impl/headers.js.map +1 -1
  30. package/dist/ir/impl/index.d.ts +5 -2
  31. package/dist/ir/impl/index.d.ts.map +1 -1
  32. package/dist/ir/impl/index.js +6 -7
  33. package/dist/ir/impl/index.js.map +1 -1
  34. package/dist/ir/impl/request.d.ts +6 -6
  35. package/dist/ir/impl/request.d.ts.map +1 -1
  36. package/dist/ir/impl/request.js +18 -8
  37. package/dist/ir/impl/request.js.map +1 -1
  38. package/dist/ir/impl/serializer.d.ts +4 -2
  39. package/dist/ir/impl/serializer.d.ts.map +1 -1
  40. package/dist/ir/impl/serializer.js +41 -60
  41. package/dist/ir/impl/serializer.js.map +1 -1
  42. package/dist/ir/impl/url.d.ts +1 -1
  43. package/dist/ir/impl/url.d.ts.map +1 -1
  44. package/dist/ir/impl/url.js +4 -4
  45. package/dist/ir/impl/url.js.map +1 -1
  46. package/dist/ir/index.d.ts +1 -1
  47. package/dist/ir/index.d.ts.map +1 -1
  48. package/dist/ir/index.js +1 -1
  49. package/dist/ir/index.js.map +1 -1
  50. package/dist/ir/operation/body.d.ts +1 -1
  51. package/dist/ir/operation/body.d.ts.map +1 -1
  52. package/dist/ir/operation/body.js +3 -3
  53. package/dist/ir/operation/body.js.map +1 -1
  54. package/dist/ir/operation/params.d.ts +1 -1
  55. package/dist/ir/operation/params.d.ts.map +1 -1
  56. package/dist/ir/operation/params.js +3 -3
  57. package/dist/ir/operation/params.js.map +1 -1
  58. package/dist/ir/operation/response.d.ts +3 -1
  59. package/dist/ir/operation/response.d.ts.map +1 -1
  60. package/dist/ir/operation/response.js +3 -4
  61. package/dist/ir/operation/response.js.map +1 -1
  62. package/dist/ir/operation/signature.d.ts +4 -2
  63. package/dist/ir/operation/signature.d.ts.map +1 -1
  64. package/dist/ir/operation/signature.js +5 -4
  65. package/dist/ir/operation/signature.js.map +1 -1
  66. package/dist/ir/operations.d.ts +7 -1
  67. package/dist/ir/operations.d.ts.map +1 -1
  68. package/dist/ir/operations.js +14 -17
  69. package/dist/ir/operations.js.map +1 -1
  70. package/dist/ir/runtime/index.d.ts +1 -1
  71. package/dist/ir/runtime/index.d.ts.map +1 -1
  72. package/dist/ir/runtime/index.js +1 -1
  73. package/dist/ir/runtime/index.js.map +1 -1
  74. package/dist/ir/runtime/templates.d.ts +1 -21
  75. package/dist/ir/runtime/templates.d.ts.map +1 -1
  76. package/dist/ir/runtime/templates.js +24 -428
  77. package/dist/ir/runtime/templates.js.map +1 -1
  78. package/dist/ir/schema.d.ts +3 -5
  79. package/dist/ir/schema.d.ts.map +1 -1
  80. package/dist/ir/schema.js +25 -37
  81. package/dist/ir/schema.js.map +1 -1
  82. package/dist/ir/type/context.d.ts +1 -1
  83. package/dist/ir/type/context.d.ts.map +1 -1
  84. package/dist/ir/type/index.d.ts +5 -3
  85. package/dist/ir/type/index.d.ts.map +1 -1
  86. package/dist/ir/type/index.js +12 -8
  87. package/dist/ir/type/index.js.map +1 -1
  88. package/dist/ir/type/primitive.d.ts +1 -1
  89. package/dist/ir/type/primitive.d.ts.map +1 -1
  90. package/dist/ir/type/primitive.js +1 -1
  91. package/dist/ir/type/primitive.js.map +1 -1
  92. package/dist/ir/type-ops.d.ts +2 -2
  93. package/dist/ir/type-ops.d.ts.map +1 -1
  94. package/dist/ir/type-ops.js +13 -17
  95. package/dist/ir/type-ops.js.map +1 -1
  96. package/dist/kt-compiler/index.d.ts +3 -6
  97. package/dist/kt-compiler/index.d.ts.map +1 -1
  98. package/dist/kt-compiler/index.js +7 -22
  99. package/dist/kt-compiler/index.js.map +1 -1
  100. package/dist/project/build.d.ts +1 -1
  101. package/dist/project/build.d.ts.map +1 -1
  102. package/dist/project/build.js +6 -8
  103. package/dist/project/build.js.map +1 -1
  104. package/dist/project/imports.d.ts +12 -12
  105. package/dist/project/imports.d.ts.map +1 -1
  106. package/dist/project/imports.js +60 -138
  107. package/dist/project/imports.js.map +1 -1
  108. package/dist/project/layout.d.ts +1 -1
  109. package/dist/project/layout.d.ts.map +1 -1
  110. package/dist/project/layout.js +1 -3
  111. package/dist/project/layout.js.map +1 -1
  112. package/package.json +12 -10
  113. package/runtime/APIClient.kt +140 -0
  114. package/runtime/APIError.kt +42 -0
  115. package/runtime/APIInterceptors.kt +14 -0
  116. package/runtime/APIKeyLocation.kt +7 -0
  117. package/runtime/Auth.kt +86 -0
  118. package/runtime/MultipartFormBody.kt +41 -0
  119. package/runtime/QueryStyle.kt +12 -0
  120. package/runtime/RequestOptions.kt +29 -0
  121. package/runtime/URLEncoding.kt +45 -0
  122. package/dist/kt-compiler/decl/class.d.ts +0 -6
  123. package/dist/kt-compiler/decl/class.d.ts.map +0 -1
  124. package/dist/kt-compiler/decl/class.js +0 -38
  125. package/dist/kt-compiler/decl/class.js.map +0 -1
  126. package/dist/kt-compiler/decl/dataClass.d.ts +0 -3
  127. package/dist/kt-compiler/decl/dataClass.d.ts.map +0 -1
  128. package/dist/kt-compiler/decl/dataClass.js +0 -18
  129. package/dist/kt-compiler/decl/dataClass.js.map +0 -1
  130. package/dist/kt-compiler/decl/enum.d.ts +0 -3
  131. package/dist/kt-compiler/decl/enum.d.ts.map +0 -1
  132. package/dist/kt-compiler/decl/enum.js +0 -32
  133. package/dist/kt-compiler/decl/enum.js.map +0 -1
  134. package/dist/kt-compiler/decl/fun.d.ts +0 -11
  135. package/dist/kt-compiler/decl/fun.d.ts.map +0 -1
  136. package/dist/kt-compiler/decl/fun.js +0 -69
  137. package/dist/kt-compiler/decl/fun.js.map +0 -1
  138. package/dist/kt-compiler/decl/index.d.ts +0 -13
  139. package/dist/kt-compiler/decl/index.d.ts.map +0 -1
  140. package/dist/kt-compiler/decl/index.js +0 -39
  141. package/dist/kt-compiler/decl/index.js.map +0 -1
  142. package/dist/kt-compiler/decl/interface.d.ts +0 -3
  143. package/dist/kt-compiler/decl/interface.d.ts.map +0 -1
  144. package/dist/kt-compiler/decl/interface.js +0 -15
  145. package/dist/kt-compiler/decl/interface.js.map +0 -1
  146. package/dist/kt-compiler/decl/object.d.ts +0 -3
  147. package/dist/kt-compiler/decl/object.d.ts.map +0 -1
  148. package/dist/kt-compiler/decl/object.js +0 -19
  149. package/dist/kt-compiler/decl/object.js.map +0 -1
  150. package/dist/kt-compiler/decl/prop.d.ts +0 -20
  151. package/dist/kt-compiler/decl/prop.d.ts.map +0 -1
  152. package/dist/kt-compiler/decl/prop.js +0 -42
  153. package/dist/kt-compiler/decl/prop.js.map +0 -1
  154. package/dist/kt-compiler/decl/sealedClass.d.ts +0 -3
  155. package/dist/kt-compiler/decl/sealedClass.d.ts.map +0 -1
  156. package/dist/kt-compiler/decl/sealedClass.js +0 -32
  157. package/dist/kt-compiler/decl/sealedClass.js.map +0 -1
  158. package/dist/kt-compiler/decl/topLevel.d.ts +0 -3
  159. package/dist/kt-compiler/decl/topLevel.d.ts.map +0 -1
  160. package/dist/kt-compiler/decl/topLevel.js +0 -5
  161. package/dist/kt-compiler/decl/topLevel.js.map +0 -1
  162. package/dist/kt-compiler/decl/typeAlias.d.ts +0 -3
  163. package/dist/kt-compiler/decl/typeAlias.d.ts.map +0 -1
  164. package/dist/kt-compiler/decl/typeAlias.js +0 -6
  165. package/dist/kt-compiler/decl/typeAlias.js.map +0 -1
  166. package/dist/kt-compiler/expr.d.ts +0 -4
  167. package/dist/kt-compiler/expr.d.ts.map +0 -1
  168. package/dist/kt-compiler/expr.js +0 -123
  169. package/dist/kt-compiler/expr.js.map +0 -1
  170. package/dist/kt-compiler/format.d.ts +0 -20
  171. package/dist/kt-compiler/format.d.ts.map +0 -1
  172. package/dist/kt-compiler/format.js +0 -27
  173. package/dist/kt-compiler/format.js.map +0 -1
  174. package/dist/kt-compiler/stmt.d.ts +0 -4
  175. package/dist/kt-compiler/stmt.d.ts.map +0 -1
  176. package/dist/kt-compiler/stmt.js +0 -72
  177. package/dist/kt-compiler/stmt.js.map +0 -1
  178. package/dist/kt-compiler/type.d.ts +0 -3
  179. package/dist/kt-compiler/type.d.ts.map +0 -1
  180. package/dist/kt-compiler/type.js +0 -28
  181. package/dist/kt-compiler/type.js.map +0 -1
  182. package/dist/kt-dsl/decl/class.d.ts +0 -50
  183. package/dist/kt-dsl/decl/class.d.ts.map +0 -1
  184. package/dist/kt-dsl/decl/class.js +0 -33
  185. package/dist/kt-dsl/decl/class.js.map +0 -1
  186. package/dist/kt-dsl/decl/dataClass.d.ts +0 -36
  187. package/dist/kt-dsl/decl/dataClass.d.ts.map +0 -1
  188. package/dist/kt-dsl/decl/dataClass.js +0 -25
  189. package/dist/kt-dsl/decl/dataClass.js.map +0 -1
  190. package/dist/kt-dsl/decl/enum.d.ts +0 -60
  191. package/dist/kt-dsl/decl/enum.d.ts.map +0 -1
  192. package/dist/kt-dsl/decl/enum.js +0 -38
  193. package/dist/kt-dsl/decl/enum.js.map +0 -1
  194. package/dist/kt-dsl/decl/index.d.ts +0 -11
  195. package/dist/kt-dsl/decl/index.d.ts.map +0 -1
  196. package/dist/kt-dsl/decl/index.js +0 -11
  197. package/dist/kt-dsl/decl/index.js.map +0 -1
  198. package/dist/kt-dsl/decl/interface.d.ts +0 -33
  199. package/dist/kt-dsl/decl/interface.d.ts.map +0 -1
  200. package/dist/kt-dsl/decl/interface.js +0 -24
  201. package/dist/kt-dsl/decl/interface.js.map +0 -1
  202. package/dist/kt-dsl/decl/object.d.ts +0 -34
  203. package/dist/kt-dsl/decl/object.d.ts.map +0 -1
  204. package/dist/kt-dsl/decl/object.js +0 -24
  205. package/dist/kt-dsl/decl/object.js.map +0 -1
  206. package/dist/kt-dsl/decl/prop.d.ts +0 -47
  207. package/dist/kt-dsl/decl/prop.d.ts.map +0 -1
  208. package/dist/kt-dsl/decl/prop.js +0 -28
  209. package/dist/kt-dsl/decl/prop.js.map +0 -1
  210. package/dist/kt-dsl/decl/sealedClass.d.ts +0 -68
  211. package/dist/kt-dsl/decl/sealedClass.d.ts.map +0 -1
  212. package/dist/kt-dsl/decl/sealedClass.js +0 -52
  213. package/dist/kt-dsl/decl/sealedClass.js.map +0 -1
  214. package/dist/kt-dsl/decl/topLevel.d.ts +0 -19
  215. package/dist/kt-dsl/decl/topLevel.d.ts.map +0 -1
  216. package/dist/kt-dsl/decl/topLevel.js +0 -17
  217. package/dist/kt-dsl/decl/topLevel.js.map +0 -1
  218. package/dist/kt-dsl/decl/typeAlias.d.ts +0 -23
  219. package/dist/kt-dsl/decl/typeAlias.d.ts.map +0 -1
  220. package/dist/kt-dsl/decl/typeAlias.js +0 -18
  221. package/dist/kt-dsl/decl/typeAlias.js.map +0 -1
  222. package/dist/kt-dsl/decl/types.d.ts +0 -10
  223. package/dist/kt-dsl/decl/types.d.ts.map +0 -1
  224. package/dist/kt-dsl/decl/types.js +0 -2
  225. package/dist/kt-dsl/decl/types.js.map +0 -1
  226. package/dist/kt-dsl/expr/access.d.ts +0 -48
  227. package/dist/kt-dsl/expr/access.d.ts.map +0 -1
  228. package/dist/kt-dsl/expr/access.js +0 -59
  229. package/dist/kt-dsl/expr/access.js.map +0 -1
  230. package/dist/kt-dsl/expr/call.d.ts +0 -38
  231. package/dist/kt-dsl/expr/call.d.ts.map +0 -1
  232. package/dist/kt-dsl/expr/call.js +0 -38
  233. package/dist/kt-dsl/expr/call.js.map +0 -1
  234. package/dist/kt-dsl/expr/index.d.ts +0 -7
  235. package/dist/kt-dsl/expr/index.d.ts.map +0 -1
  236. package/dist/kt-dsl/expr/index.js +0 -7
  237. package/dist/kt-dsl/expr/index.js.map +0 -1
  238. package/dist/kt-dsl/expr/literal.d.ts +0 -100
  239. package/dist/kt-dsl/expr/literal.d.ts.map +0 -1
  240. package/dist/kt-dsl/expr/literal.js +0 -108
  241. package/dist/kt-dsl/expr/literal.js.map +0 -1
  242. package/dist/kt-dsl/expr/misc.d.ts +0 -45
  243. package/dist/kt-dsl/expr/misc.d.ts.map +0 -1
  244. package/dist/kt-dsl/expr/misc.js +0 -63
  245. package/dist/kt-dsl/expr/misc.js.map +0 -1
  246. package/dist/kt-dsl/expr/op.d.ts +0 -25
  247. package/dist/kt-dsl/expr/op.d.ts.map +0 -1
  248. package/dist/kt-dsl/expr/op.js +0 -24
  249. package/dist/kt-dsl/expr/op.js.map +0 -1
  250. package/dist/kt-dsl/expr/types.d.ts +0 -93
  251. package/dist/kt-dsl/expr/types.d.ts.map +0 -1
  252. package/dist/kt-dsl/expr/types.js +0 -2
  253. package/dist/kt-dsl/expr/types.js.map +0 -1
  254. package/dist/kt-dsl/file.d.ts +0 -14
  255. package/dist/kt-dsl/file.d.ts.map +0 -1
  256. package/dist/kt-dsl/file.js +0 -9
  257. package/dist/kt-dsl/file.js.map +0 -1
  258. package/dist/kt-dsl/fun.d.ts +0 -73
  259. package/dist/kt-dsl/fun.d.ts.map +0 -1
  260. package/dist/kt-dsl/fun.js +0 -50
  261. package/dist/kt-dsl/fun.js.map +0 -1
  262. package/dist/kt-dsl/index.d.ts +0 -8
  263. package/dist/kt-dsl/index.d.ts.map +0 -1
  264. package/dist/kt-dsl/index.js +0 -8
  265. package/dist/kt-dsl/index.js.map +0 -1
  266. package/dist/kt-dsl/stmt/binding.d.ts +0 -56
  267. package/dist/kt-dsl/stmt/binding.d.ts.map +0 -1
  268. package/dist/kt-dsl/stmt/binding.js +0 -70
  269. package/dist/kt-dsl/stmt/binding.js.map +0 -1
  270. package/dist/kt-dsl/stmt/control.d.ts +0 -80
  271. package/dist/kt-dsl/stmt/control.d.ts.map +0 -1
  272. package/dist/kt-dsl/stmt/control.js +0 -77
  273. package/dist/kt-dsl/stmt/control.js.map +0 -1
  274. package/dist/kt-dsl/stmt/index.d.ts +0 -4
  275. package/dist/kt-dsl/stmt/index.d.ts.map +0 -1
  276. package/dist/kt-dsl/stmt/index.js +0 -4
  277. package/dist/kt-dsl/stmt/index.js.map +0 -1
  278. package/dist/kt-dsl/stmt/types.d.ts +0 -62
  279. package/dist/kt-dsl/stmt/types.d.ts.map +0 -1
  280. package/dist/kt-dsl/stmt/types.js +0 -2
  281. package/dist/kt-dsl/stmt/types.js.map +0 -1
  282. package/dist/kt-dsl/type/builders.d.ts +0 -75
  283. package/dist/kt-dsl/type/builders.d.ts.map +0 -1
  284. package/dist/kt-dsl/type/builders.js +0 -83
  285. package/dist/kt-dsl/type/builders.js.map +0 -1
  286. package/dist/kt-dsl/type/index.d.ts +0 -3
  287. package/dist/kt-dsl/type/index.d.ts.map +0 -1
  288. package/dist/kt-dsl/type/index.js +0 -3
  289. package/dist/kt-dsl/type/index.js.map +0 -1
  290. package/dist/kt-dsl/type/types.d.ts +0 -25
  291. package/dist/kt-dsl/type/types.d.ts.map +0 -1
  292. package/dist/kt-dsl/type/types.js +0 -2
  293. package/dist/kt-dsl/type/types.js.map +0 -1
  294. package/dist/kt-dsl/visibility.d.ts +0 -2
  295. package/dist/kt-dsl/visibility.d.ts.map +0 -1
  296. package/dist/kt-dsl/visibility.js +0 -2
  297. package/dist/kt-dsl/visibility.js.map +0 -1
package/README.md CHANGED
@@ -4,7 +4,7 @@ Generate idiomatic Android / JVM Kotlin client SDKs from an OpenAPI 3.x spec —
4
4
 
5
5
  Built on the [`@hey-api`](https://github.com/hey-api/openapi-ts) toolchain (`@hey-api/json-schema-ref-parser` for spec loading, `@hey-api/shared` IR for normalization). 2.0 / 3.0 / 3.1 inputs all produce the same output.
6
6
 
7
- Sibling package to [`@ir-kit/openapi-swift`](../openapi-swift). Part of [ir-kit](https://github.com/ir-kit/ir-kit). Companion to the [`openapi-sdk-petstore` example](../../examples/openapi-sdk-petstore).
7
+ Sibling package to [`@ir-kit/openapi-swift`](../openapi-swift). Part of [ir-kit](https://github.com/ahmedrowaihi/ir-kit). Companion to the [`openapi-sdk-petstore` example](../../examples/openapi-sdk-petstore).
8
8
 
9
9
  ## Install
10
10
 
@@ -38,18 +38,18 @@ public data class Pet(
38
38
  public val category: Category? = null,
39
39
  public val photoUrls: List<String>,
40
40
  public val tags: List<Tag>? = null,
41
- public val status: Pet_Status? = null,
41
+ public val status: PetStatus? = null,
42
42
  )
43
43
 
44
44
  @Serializable
45
- public enum class Pet_Status(public val raw: String) {
45
+ public enum class PetStatus(public val raw: String) {
46
46
  @SerialName("available") AVAILABLE("available"),
47
47
  @SerialName("pending") PENDING("pending"),
48
48
  @SerialName("sold") SOLD("sold"),
49
49
  }
50
50
  ```
51
51
 
52
- Inline enums on a property get promoted to a top-level `Owner_Property` enum class. Renamed JSON keys (snake_case → camelCase) get a `@SerialName` so the wire format stays untouched.
52
+ Inline enums on a property get promoted to a top-level `OwnerProperty` enum class. Renamed JSON keys (snake_case → camelCase) get a `@SerialName` so the wire format stays untouched.
53
53
 
54
54
  ### Operations → interfaces + impls
55
55
 
@@ -150,10 +150,10 @@ public sealed class APIError(message: String? = null, cause: Throwable? = null)
150
150
  When an operation declares more than one 2xx response code with distinct schemas, the generator emits a sealed-class hierarchy and the impl dispatches on `response.code`:
151
151
 
152
152
  ```kotlin
153
- public sealed class SubmitJob_Response {
154
- public data class Status200(public val value: JobResult) : SubmitJob_Response()
155
- public data class Status202(public val value: Pending) : SubmitJob_Response()
156
- public object Status204 : SubmitJob_Response()
153
+ public sealed class SubmitJobResponse {
154
+ public data class Status200(public val value: JobResult) : SubmitJobResponse()
155
+ public data class Status202(public val value: Pending) : SubmitJobResponse()
156
+ public object Status204 : SubmitJobResponse()
157
157
  }
158
158
  ```
159
159
 
@@ -212,7 +212,7 @@ sdk-kotlin/
212
212
  │ │ └── RequestOptions.kt
213
213
  │ └── models/
214
214
  │ ├── Pet.kt # @Serializable data classes
215
- │ ├── Pet_Status.kt # enum classes
215
+ │ ├── PetStatus.kt # enum classes
216
216
  │ └── …
217
217
  └── (build.gradle.kts + settings.gradle.kts when `gradle:` is set)
218
218
  ```
@@ -245,15 +245,15 @@ Runtime dependencies (set up by the `gradle:` option, or by the consuming module
245
245
  | `printFile(file)` / `kt*` builders | Lower-level Kotlin AST + printer. |
246
246
 
247
247
  ```text
248
- src/kt-dsl/ Kotlin AST: type/, expr/, stmt/, decl/, fun.ts, file.ts
249
- src/kt-compiler/ AST → string, mirrors the AST tree
248
+ src/ast/ kt* builders returning @ir-kit/compiler-kotlin nodes; KtDecl
249
+ src/kt-compiler/ printFile / printDecl via @ir-kit/compiler-kotlin
250
250
  src/ir/
251
251
  ├── type/ IR.SchemaObject → KtType
252
252
  ├── operation/ IR.OperationObject → signature shared by interface + impl
253
253
  ├── impl/ OkHttp body builders (url, request, headers, body, decode)
254
- ├── runtime/ Templated Kotlin source for runtime helpers
254
+ ├── runtime/ Copies runtime/*.kt into the SDK
255
255
  ├── schema.ts schemasToDecls
256
256
  └── operations.ts paths → interfaces + impl classes (orchestrator)
257
257
  ```
258
258
 
259
- Adding a new statement / expression node: add to `kt-dsl/{expr,stmt}/types.ts`, builder, one printer case. Per-method bodies are AST-built; runtime helpers (the same Kotlin every time) ship as templated strings in `ir/runtime/templates.ts`.
259
+ Per-method bodies are built as `@ir-kit/compiler-kotlin` nodes; imports are collected from those nodes. Runtime helpers (the same Kotlin every time) are real, ktlint-checked sources in `runtime/` and are copied with the package header rewritten.
@@ -0,0 +1,152 @@
1
+ import { kt } from "@ir-kit/compiler-kotlin";
2
+ export type KtType = kt.Type;
3
+ export type KtExpr = kt.Expression;
4
+ export type KtStmt = kt.Statement;
5
+ export type KtCallArg = kt.ValueArgument;
6
+ export type KtLambdaExpr = kt.LambdaExpression;
7
+ export type KtAnnotation = kt.Annotation;
8
+ export type KtEnumEntry = kt.EnumEntry;
9
+ export type KtFun = kt.FunctionDeclaration;
10
+ export type KtProp = kt.Property;
11
+ export type KtWhenCase = kt.WhenEntry;
12
+ export type KtCatchClause = kt.CatchClause;
13
+ export type KtSealedSubclass = kt.ClassDeclaration | kt.ObjectDeclaration;
14
+ export type KtVisibility = "public" | "internal" | "private" | "protected";
15
+ export type KtClassModifier = "open" | "abstract" | "final";
16
+ export type KtFunModifier = "override" | "open" | "abstract" | "suspend";
17
+ export declare const ktString: KtType;
18
+ export declare const ktInt: KtType;
19
+ export declare const ktLong: KtType;
20
+ export declare const ktDouble: KtType;
21
+ export declare const ktFloat: KtType;
22
+ export declare const ktBoolean: KtType;
23
+ export declare const ktUnit: KtType;
24
+ export declare const ktAny: KtType;
25
+ export declare const ktJsonElement: KtType;
26
+ export declare const ktByteArray: KtType;
27
+ export declare const ktNullable: (inner: KtType) => KtType;
28
+ export declare const ktList: (element: KtType) => KtType;
29
+ export declare const ktMap: (key: KtType, value: KtType) => KtType;
30
+ export declare const ktRef: (name: string, args?: ReadonlyArray<KtType>) => KtType;
31
+ /** `Pet` for `Pet` / `Pair<Pet, Response>`; `undefined` for composites. */
32
+ export declare const typeName: (t: KtType) => string | undefined;
33
+ export declare const typeArgs: (t: KtType) => ReadonlyArray<KtType>;
34
+ export declare const isUnit: (t: KtType) => boolean;
35
+ export declare const ktIdent: (name: string) => KtExpr;
36
+ export declare const ktMember: (on: KtExpr, name: string) => KtExpr;
37
+ export declare const ktSafeMember: (on: KtExpr, name: string) => KtExpr;
38
+ export declare const ktIndex: (on: KtExpr, index: KtExpr) => KtExpr;
39
+ export declare const ktStr: (value: string) => KtExpr;
40
+ export declare const ktIntLit: (value: number) => KtExpr;
41
+ export declare const ktBoolLit: (value: boolean) => KtExpr;
42
+ export declare const ktNull: KtExpr;
43
+ export declare const ktInterp: (parts: ReadonlyArray<string | KtExpr>) => KtExpr;
44
+ export declare const ktListLit: (items: ReadonlyArray<KtExpr>) => KtExpr;
45
+ export declare const ktArg: (expression: KtExpr, name?: string) => KtCallArg;
46
+ export declare const ktCall: (callee: KtExpr, args?: ReadonlyArray<KtCallArg>, trailingLambda?: KtLambdaExpr, typeArgs?: ReadonlyArray<KtType>) => KtExpr;
47
+ export declare const ktLambda: (params: ReadonlyArray<string>, body: ReadonlyArray<KtStmt>) => KtLambdaExpr;
48
+ type BinOp = "==" | "!=" | "<" | "<=" | ">" | ">=" | "&&" | "||" | "+";
49
+ export declare const ktBinOp: (op: BinOp, left: KtExpr, right: KtExpr) => KtExpr;
50
+ export declare const ktNe: (l: KtExpr, r: KtExpr) => KtExpr;
51
+ export declare const ktElvis: (l: KtExpr, r: KtExpr) => KtExpr;
52
+ export declare const ktVal: (name: string, expr: KtExpr, type?: KtType) => KtStmt;
53
+ export declare const ktVar: (name: string, expr: KtExpr, type?: KtType) => KtStmt;
54
+ export declare const ktAssign: (target: KtExpr, value: KtExpr) => KtStmt;
55
+ export declare const ktExprStmt: (expr: KtExpr) => KtStmt;
56
+ export declare const ktReturn: (expr?: KtExpr) => KtStmt;
57
+ export declare const ktThrow: (expr: KtExpr) => KtStmt;
58
+ export declare const ktIf: (cond: KtExpr, then: ReadonlyArray<KtStmt>, else_?: ReadonlyArray<KtStmt>) => KtStmt;
59
+ export declare const ktWhenCase: (patterns: ReadonlyArray<KtExpr>, body: ReadonlyArray<KtStmt>) => KtWhenCase;
60
+ export declare const ktWhen: (on: KtExpr | undefined, cases: ReadonlyArray<KtWhenCase>, default_?: ReadonlyArray<KtStmt>) => KtStmt;
61
+ export declare const ktForIn: (name: string, source: KtExpr, body: ReadonlyArray<KtStmt>) => KtStmt;
62
+ /** A function parameter as carried on operation signatures. */
63
+ export interface KtFunParam {
64
+ name: string;
65
+ type: KtType;
66
+ default?: string;
67
+ }
68
+ export declare const ktFunParam: (opts: KtFunParam) => KtFunParam;
69
+ export declare const ktAnnotation: (name: string, arg?: KtExpr) => KtAnnotation;
70
+ export declare function ktProp(opts: {
71
+ name: string;
72
+ type: KtType;
73
+ mutable?: boolean;
74
+ default?: string;
75
+ visibility?: KtVisibility;
76
+ annotations?: ReadonlyArray<KtAnnotation>;
77
+ }): KtProp;
78
+ export declare function ktFun(opts: {
79
+ name: string;
80
+ params: ReadonlyArray<KtFunParam>;
81
+ returnType: KtType;
82
+ modifiers?: ReadonlyArray<KtFunModifier>;
83
+ body?: ReadonlyArray<KtStmt>;
84
+ doc?: string;
85
+ visibility?: KtVisibility;
86
+ receiver?: KtType;
87
+ }): KtFun;
88
+ export declare const ktEnumEntry: (name: string, arg?: KtExpr, annotations?: ReadonlyArray<KtAnnotation>) => KtEnumEntry;
89
+ export declare function ktSealedSubclass(opts: {
90
+ variant: "class" | "object";
91
+ name: string;
92
+ properties?: ReadonlyArray<KtProp>;
93
+ annotations?: ReadonlyArray<KtAnnotation>;
94
+ }): KtSealedSubclass;
95
+ /**
96
+ * A top-level declaration plus the facts the project layer needs to
97
+ * place and import it.
98
+ */
99
+ export interface KtDecl {
100
+ kind: "dataClass" | "class" | "sealedClass" | "object" | "interface" | "enum" | "typeAlias" | "topLevelFun";
101
+ name: string;
102
+ /** Target of a `typeAlias` declaration. */
103
+ aliasOf?: KtType;
104
+ /** Runtime-helper types live with the API surface. */
105
+ runtime?: boolean;
106
+ /** Receiver type name of a top-level extension fun. */
107
+ receiver?: string;
108
+ node: kt.Declaration;
109
+ }
110
+ interface DeclOpts {
111
+ name: string;
112
+ annotations?: ReadonlyArray<KtAnnotation>;
113
+ superTypes?: ReadonlyArray<string>;
114
+ visibility?: KtVisibility;
115
+ funs?: ReadonlyArray<KtFun>;
116
+ runtime?: boolean;
117
+ }
118
+ export declare function ktDataClass(opts: DeclOpts & {
119
+ properties: ReadonlyArray<KtProp>;
120
+ }): KtDecl;
121
+ export declare function ktClass(opts: DeclOpts & {
122
+ properties?: ReadonlyArray<KtProp>;
123
+ modifiers?: ReadonlyArray<KtClassModifier>;
124
+ }): KtDecl;
125
+ export declare function ktSealedClass(opts: DeclOpts & {
126
+ subclasses: ReadonlyArray<KtSealedSubclass>;
127
+ }): KtDecl;
128
+ export declare function ktInterface(opts: DeclOpts & {
129
+ funs: ReadonlyArray<KtFun>;
130
+ }): KtDecl;
131
+ export declare function ktEnum(opts: DeclOpts & {
132
+ entries: ReadonlyArray<KtEnumEntry>;
133
+ properties?: ReadonlyArray<KtProp>;
134
+ }): KtDecl;
135
+ export declare function ktTypeAlias(opts: {
136
+ name: string;
137
+ type: KtType;
138
+ visibility?: KtVisibility;
139
+ }): KtDecl;
140
+ export declare const ktTopLevelFun: (fn: KtFun) => KtDecl;
141
+ export interface KtFile {
142
+ pkg?: string;
143
+ imports: ReadonlyArray<string>;
144
+ decls: ReadonlyArray<KtDecl>;
145
+ }
146
+ export declare const ktFile: (opts: {
147
+ decls: ReadonlyArray<KtDecl>;
148
+ pkg?: string;
149
+ imports?: ReadonlyArray<string>;
150
+ }) => KtFile;
151
+ export {};
152
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ast/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ import { kt } from "@ir-kit/compiler-kotlin";
2
+ const f = kt.factory;
3
+ const K = kt.KotlinNodeKind;
4
+ const VISIBILITIES = new Set([
5
+ "public",
6
+ "internal",
7
+ "private",
8
+ "protected",
9
+ ]);
10
+ /** Verbatim source fragment (defaults, annotation args). */
11
+ const raw = (text) => f.createIdentifier(text);
12
+ // Types
13
+ const named = (name) => f.createUserType(name);
14
+ export const ktString = named("String");
15
+ export const ktInt = named("Int");
16
+ export const ktLong = named("Long");
17
+ export const ktDouble = named("Double");
18
+ export const ktFloat = named("Float");
19
+ export const ktBoolean = named("Boolean");
20
+ export const ktUnit = named("Unit");
21
+ export const ktAny = named("Any");
22
+ export const ktJsonElement = named("JsonElement");
23
+ export const ktByteArray = named("ByteArray");
24
+ export const ktNullable = (inner) => f.createNullableType(inner);
25
+ export const ktList = (element) => f.createUserType("List", [element]);
26
+ export const ktMap = (key, value) => f.createUserType("Map", [key, value]);
27
+ export const ktRef = (name, args) => f.createUserType(name, args?.length ? args : undefined);
28
+ /** `Pet` for `Pet` / `Pair<Pet, Response>`; `undefined` for composites. */
29
+ export const typeName = (t) => t.kind === K.UserType ? t.name : undefined;
30
+ export const typeArgs = (t) => t.kind === K.UserType ? (t.typeArguments ?? []) : [];
31
+ export const isUnit = (t) => typeName(t) === "Unit";
32
+ // Expressions
33
+ export const ktIdent = (name) => f.createIdentifier(name);
34
+ export const ktMember = (on, name) => f.createNavigationExpression(on, f.createIdentifier(name));
35
+ export const ktSafeMember = (on, name) => f.createNavigationExpression(on, f.createIdentifier(name), true);
36
+ export const ktIndex = (on, index) => f.createIndexingExpression(on, [index]);
37
+ export const ktStr = (value) => f.createStringLiteral([{ text: value }]);
38
+ export const ktIntLit = (value) => f.createLiteral(String(value), "int");
39
+ export const ktBoolLit = (value) => f.createLiteral(String(value), "boolean");
40
+ export const ktNull = f.createLiteral("null", "null");
41
+ export const ktInterp = (parts) => f.createStringLiteral(parts.map((p) => (typeof p === "string" ? { text: p } : { expression: p })));
42
+ export const ktListLit = (items) => ktCall(ktIdent("listOf"), items.map((i) => ktArg(i)));
43
+ export const ktArg = (expression, name) => ({
44
+ expression,
45
+ name,
46
+ });
47
+ export const ktCall = (callee, args = [], trailingLambda, typeArgs) => f.createCallExpression(callee, args, typeArgs?.length ? typeArgs : undefined, trailingLambda);
48
+ export const ktLambda = (params, body) => f.createLambdaExpression(body, params.map((name) => ({ name })));
49
+ export const ktBinOp = (op, left, right) => f.createBinaryExpression(left, op, right);
50
+ export const ktNe = (l, r) => ktBinOp("!=", l, r);
51
+ export const ktElvis = (l, r) => f.createElvisExpression(l, r);
52
+ // Statements
53
+ export const ktVal = (name, expr, type) => f.createProperty(name, "val", type, expr);
54
+ export const ktVar = (name, expr, type) => f.createProperty(name, "var", type, expr);
55
+ export const ktAssign = (target, value) => f.createAssignment(target, value);
56
+ export const ktExprStmt = (expr) => f.createExpressionStatement(expr);
57
+ export const ktReturn = (expr) => f.createReturnStatement(expr);
58
+ export const ktThrow = (expr) => f.createThrowStatement(expr);
59
+ const block = (body) => f.createBlock(body);
60
+ export const ktIf = (cond, then, else_) => f.createIfStatement(cond, block(then), else_ && block(else_));
61
+ export const ktWhenCase = (patterns, body) => ({ conditions: patterns, body: block(body) });
62
+ export const ktWhen = (on, cases, default_) => f.createWhenStatement(default_ ? [...cases, { body: block(default_) }] : cases, on);
63
+ export const ktForIn = (name, source, body) => f.createForStatement([name], source, block(body));
64
+ export const ktFunParam = (opts) => ({ ...opts });
65
+ export const ktAnnotation = (name, arg) => f.createAnnotation(name, arg === undefined ? undefined : [ktArg(arg)]);
66
+ export function ktProp(opts) {
67
+ return f.createProperty(opts.name, opts.mutable ? "var" : "val", opts.type, opts.default === undefined ? undefined : raw(opts.default), undefined, [opts.visibility ?? "public"], opts.annotations);
68
+ }
69
+ /** Properties of data/enum/impl classes live in the primary constructor. */
70
+ const primaryConstructor = (props) => f.createPrimaryConstructor(props.map((p) => f.createParameter(p.name, p.type ?? ktAny, p.initializer, p.valOrVar, p.modifiers, p.annotations)));
71
+ const superTypes = (names) => names?.map((name) => ({ type: f.createUserType(name) }));
72
+ export function ktFun(opts) {
73
+ const abstract = opts.body === undefined;
74
+ const fn = f.createFunctionDeclaration(opts.name, opts.params.map((p) => f.createParameter(p.name, p.type, abstract || p.default === undefined ? undefined : raw(p.default))), isUnit(opts.returnType) ? undefined : opts.returnType, opts.body, undefined, [opts.visibility ?? "public", ...(opts.modifiers ?? [])], undefined, opts.receiver);
75
+ return opts.doc
76
+ ? {
77
+ ...fn,
78
+ leadingComments: opts.doc.split("\n").map((l) => `/** ${l} */`),
79
+ }
80
+ : fn;
81
+ }
82
+ export const ktEnumEntry = (name, arg, annotations) => f.createEnumEntry(name, arg === undefined ? undefined : [ktArg(arg)], undefined, annotations);
83
+ export function ktSealedSubclass(opts) {
84
+ return opts.variant === "object"
85
+ ? f.createObjectDeclaration(opts.name, undefined, ["public"], opts.annotations)
86
+ : f.createClassDeclaration(opts.name, primaryConstructor(opts.properties ?? []), undefined, ["public", "data"], opts.annotations);
87
+ }
88
+ export function ktDataClass(opts) {
89
+ return {
90
+ kind: "dataClass",
91
+ name: opts.name,
92
+ runtime: opts.runtime,
93
+ // A data class needs at least one constructor property.
94
+ node: f.createClassDeclaration(opts.name, opts.properties.length ? primaryConstructor(opts.properties) : undefined, opts.funs, opts.properties.length
95
+ ? [opts.visibility ?? "public", "data"]
96
+ : [opts.visibility ?? "public"], opts.annotations, superTypes(opts.superTypes)),
97
+ };
98
+ }
99
+ export function ktClass(opts) {
100
+ return {
101
+ kind: "class",
102
+ name: opts.name,
103
+ runtime: opts.runtime,
104
+ node: f.createClassDeclaration(opts.name, opts.properties?.length ? primaryConstructor(opts.properties) : undefined, opts.funs, [opts.visibility ?? "public", ...(opts.modifiers ?? [])], opts.annotations, superTypes(opts.superTypes)),
105
+ };
106
+ }
107
+ export function ktSealedClass(opts) {
108
+ const parent = [{ type: f.createUserType(opts.name), arguments: [] }];
109
+ return {
110
+ kind: "sealedClass",
111
+ name: opts.name,
112
+ runtime: opts.runtime,
113
+ node: f.createClassDeclaration(opts.name, undefined, [
114
+ ...opts.subclasses.map((sc) => ({ ...sc, superTypes: parent })),
115
+ ...(opts.funs ?? []),
116
+ ], [opts.visibility ?? "public", "sealed"], opts.annotations, superTypes(opts.superTypes)),
117
+ };
118
+ }
119
+ export function ktInterface(opts) {
120
+ return {
121
+ kind: "interface",
122
+ name: opts.name,
123
+ runtime: opts.runtime,
124
+ node: f.createClassDeclaration(opts.name, undefined, opts.funs.map((fn) => ({
125
+ ...fn,
126
+ modifiers: fn.modifiers?.filter((m) => !VISIBILITIES.has(m)),
127
+ })), [opts.visibility ?? "public"], opts.annotations, superTypes(opts.superTypes), undefined, true),
128
+ };
129
+ }
130
+ export function ktEnum(opts) {
131
+ return {
132
+ kind: "enum",
133
+ name: opts.name,
134
+ runtime: opts.runtime,
135
+ node: f.createClassDeclaration(opts.name, opts.properties?.length ? primaryConstructor(opts.properties) : undefined, opts.funs, [opts.visibility ?? "public", "enum"], opts.annotations, superTypes(opts.superTypes), opts.entries),
136
+ };
137
+ }
138
+ export function ktTypeAlias(opts) {
139
+ return {
140
+ kind: "typeAlias",
141
+ name: opts.name,
142
+ aliasOf: opts.type,
143
+ node: f.createTypeAlias(opts.name, opts.type, [
144
+ opts.visibility ?? "public",
145
+ ]),
146
+ };
147
+ }
148
+ export const ktTopLevelFun = (fn) => ({
149
+ kind: "topLevelFun",
150
+ name: fn.name,
151
+ receiver: fn.receiverType && typeName(fn.receiverType),
152
+ node: fn,
153
+ });
154
+ export const ktFile = (opts) => ({
155
+ pkg: opts.pkg,
156
+ imports: opts.imports ?? [],
157
+ decls: opts.decls,
158
+ });
159
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ast/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type NormalizeOptions } from "@ir-kit/openapi";
1
+ import type { NormalizeOptions } from "@ir-kit/openapi";
2
2
  import { type OperationsOptions } from "./ir/index.js";
3
3
  import { type BuildOptions, type BuiltFile, type GradleOptions } from "./project/index.js";
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EAGd,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AACH,KAAK,0BAA0B,GAAG,IAAI,CACpC,iBAAiB,EACjB,qBAAqB,CACtB,CAAC;AAEF,MAAM,WAAW,eACf,SAAQ,YAAY,EAClB,0BAA0B;IAC5B;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IACjC,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAqD7E"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAIxD,OAAO,EAEL,KAAK,iBAAiB,EAGvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EAGd,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AACH,KAAK,0BAA0B,GAAG,IAAI,CACpC,iBAAiB,EACjB,qBAAqB,CACtB,CAAC;AAEF,MAAM,WAAW,eACf,SAAQ,YAAY,EAClB,0BAA0B;IAC5B;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IACjC,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA0C7E"}
package/dist/generate.js CHANGED
@@ -1,36 +1,30 @@
1
- import { mkdir, rm, writeFile } from "node:fs/promises";
2
- import { dirname, join, resolve } from "node:path";
3
- import { assertSafeOutputDir, defaultProjectName } from "@ir-kit/codegen-core";
4
- import { extractSecuritySchemeNames, } from "@ir-kit/openapi";
1
+ import { resolve } from "node:path";
2
+ import { defaultProjectName, writeOutput } from "@ir-kit/codegen-core";
5
3
  import { loadOpenAPI } from "@ir-kit/openapi-loader";
6
- import { parseSpec } from "@ir-kit/openapi-tools/parse";
7
- import { operationsToDecls, schemasToDecls, } from "./ir/index.js";
4
+ import { parseForCodegen } from "@ir-kit/openapi-tools/parse";
5
+ import { newTypeNames } from "./ir/identifiers.js";
6
+ import { aliasesOf, operationsToDecls, schemasToDecls, } from "./ir/index.js";
8
7
  import { buildRuntimeFiles } from "./ir/runtime/index.js";
9
8
  import { buildGradleFile, buildKotlinProject, settingsGradleFile, } from "./project/index.js";
10
9
  export async function generate(opts) {
11
- const bundled = await loadOpenAPI({
12
- input: opts.input,
13
- normalize: opts.normalize,
14
- });
15
- const ir = parseSpec(bundled);
16
- const schemaDecls = schemasToDecls(ir.components?.schemas ?? {});
10
+ const { ir, securitySchemeNames } = parseForCodegen(await loadOpenAPI({ input: opts.input, normalize: opts.normalize }));
11
+ const names = newTypeNames();
12
+ const schemaDecls = schemasToDecls(ir.components?.schemas ?? {}, names);
17
13
  const opsResult = operationsToDecls(ir.paths, {
18
14
  defaultTag: opts.defaultTag,
19
15
  interfaceName: opts.interfaceName,
20
16
  clientClassName: opts.clientClassName,
21
17
  interfaceOnly: opts.interfaceOnly,
22
18
  openImpl: opts.openImpl,
23
- securitySchemeNames: extractSecuritySchemeNames(bundled),
19
+ securitySchemeNames,
20
+ names,
21
+ aliases: new Map(aliasesOf(schemaDecls)),
24
22
  });
25
23
  const decls = [...schemaDecls, ...opsResult.decls];
26
24
  const sdkFiles = buildKotlinProject(decls, opts);
27
25
  const pkg = opts.packageName ?? "com.example.api";
28
26
  const apiSubDir = (opts.layout ?? "split") === "flat" ? "" : "api";
29
- const runtimeFiles = buildRuntimeFiles({
30
- hasAuth: opsResult.needsAuth,
31
- hasMultipart: opsResult.needsMultipart,
32
- hasFormUrlEncoded: false,
33
- }, runtimeSubPackage(pkg, apiSubDir)).map((rf) => ({
27
+ const runtimeFiles = buildRuntimeFiles({ hasMultipart: opsResult.needsMultipart }, runtimeSubPackage(pkg, apiSubDir)).map((rf) => ({
34
28
  path: runtimePath(pkg, apiSubDir, rf.name),
35
29
  content: rf.content,
36
30
  }));
@@ -41,15 +35,7 @@ export async function generate(opts) {
41
35
  files.push(buildGradleFile(gradleOpts));
42
36
  files.push(settingsGradleFile(defaultProjectName(out)));
43
37
  }
44
- if (opts.clean !== false) {
45
- assertSafeOutputDir(out);
46
- await rm(out, { recursive: true, force: true });
47
- }
48
- for (const file of files) {
49
- const full = join(out, file.path);
50
- await mkdir(dirname(full), { recursive: true });
51
- await writeFile(full, file.content);
52
- }
38
+ await writeOutput(out, files, { clean: opts.clean });
53
39
  return { files, output: out };
54
40
  }
55
41
  function runtimeSubPackage(rootPkg, dir) {
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EACL,0BAA0B,GAE3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAEL,iBAAiB,EACjB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAGL,eAAe,EACf,kBAAkB,EAElB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AA6C5B,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAqB;IAClD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC;QAChC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;IACH,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAE9B,MAAM,WAAW,GAAG,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC5C,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,mBAAmB,EAAE,0BAA0B,CAAC,OAAO,CAAC;KACzD,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEjD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,iBAAiB,CAAC;IAClD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACnE,MAAM,YAAY,GAAG,iBAAiB,CACpC;QACE,OAAO,EAAE,SAAS,CAAC,SAAS;QAC5B,YAAY,EAAE,SAAS,CAAC,cAAc;QACtC,iBAAiB,EAAE,KAAK;KACzB,EACD,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAClC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACb,IAAI,EAAE,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC;QAC1C,OAAO,EAAE,EAAE,CAAC,OAAO;KACpB,CAAC,CAAC,CAAC;IAEJ,MAAM,KAAK,GAAgB,CAAC,GAAG,QAAQ,EAAE,GAAG,YAAY,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEjC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,UAAU,GACd,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,EAAoB,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QACzB,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,GAAW;IACrD,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,OAAO,CAAC;IAC/B,OAAO,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,GAAW,EAAE,IAAY;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
+ export * from "./ast/index.js";
1
2
  export * from "./generate.js";
2
3
  export * from "./ir/index.js";
3
4
  export * from "./kt-compiler/index.js";
4
- export * from "./kt-dsl/index.js";
5
5
  export * from "./project/index.js";
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
+ export * from "./ast/index.js";
1
2
  export * from "./generate.js";
2
3
  export * from "./ir/index.js";
3
4
  export * from "./kt-compiler/index.js";
4
- export * from "./kt-dsl/index.js";
5
5
  export * from "./project/index.js";
6
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { Namespace } from "@ir-kit/codegen-core";
1
2
  /**
2
3
  * Kotlin-specific identifier transforms. Generic case helpers
3
4
  * (`pascal`, `camel`, `safeIdent`, `safeCaseName`, `synthName`,
@@ -20,4 +21,10 @@ export declare function paramIdent(name: string): string;
20
21
  * leading underscore if the result starts with a digit.
21
22
  */
22
23
  export declare function enumEntryIdent(s: string): string;
24
+ /** `typeIdent` joined into the PascalCase form Kotlin's class-naming convention expects. */
25
+ export declare function kotlinTypeIdent(name: string): string;
26
+ /** Operation parameter name that cannot shadow a local of the generated method body. */
27
+ export declare function operationParamIdent(name: string): string;
28
+ /** Owns every top-level Kotlin type name for one generation run. */
29
+ export declare function newTypeNames(): Namespace;
23
30
  //# sourceMappingURL=identifiers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../../src/ir/identifiers.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AAEH;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAShD"}
1
+ {"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../../src/ir/identifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EAGV,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;GAOG;AAEH;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO/C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAUhD;AAuCD,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED,wFAAwF;AACxF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,oEAAoE;AACpE,wBAAgB,YAAY,IAAI,SAAS,CAKxC"}