@ir-kit/openapi-kotlin 2.0.0 → 2.1.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 (296) hide show
  1. package/README.md +13 -13
  2. package/dist/ast/index.d.ts +168 -0
  3. package/dist/ast/index.d.ts.map +1 -0
  4. package/dist/ast/index.js +194 -0
  5. package/dist/ast/index.js.map +1 -0
  6. package/dist/generate.d.ts.map +1 -1
  7. package/dist/generate.js +7 -7
  8. package/dist/generate.js.map +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/ir/identifiers.d.ts +7 -0
  14. package/dist/ir/identifiers.d.ts.map +1 -1
  15. package/dist/ir/identifiers.js +92 -3
  16. package/dist/ir/identifiers.js.map +1 -1
  17. package/dist/ir/impl/body.d.ts +4 -3
  18. package/dist/ir/impl/body.d.ts.map +1 -1
  19. package/dist/ir/impl/body.js +11 -8
  20. package/dist/ir/impl/body.js.map +1 -1
  21. package/dist/ir/impl/decode.d.ts +3 -2
  22. package/dist/ir/impl/decode.d.ts.map +1 -1
  23. package/dist/ir/impl/decode.js +16 -16
  24. package/dist/ir/impl/decode.js.map +1 -1
  25. package/dist/ir/impl/headers.d.ts +1 -1
  26. package/dist/ir/impl/headers.d.ts.map +1 -1
  27. package/dist/ir/impl/headers.js +3 -3
  28. package/dist/ir/impl/headers.js.map +1 -1
  29. package/dist/ir/impl/index.d.ts +5 -2
  30. package/dist/ir/impl/index.d.ts.map +1 -1
  31. package/dist/ir/impl/index.js +6 -7
  32. package/dist/ir/impl/index.js.map +1 -1
  33. package/dist/ir/impl/request.d.ts +6 -6
  34. package/dist/ir/impl/request.d.ts.map +1 -1
  35. package/dist/ir/impl/request.js +18 -8
  36. package/dist/ir/impl/request.js.map +1 -1
  37. package/dist/ir/impl/serializer.d.ts +4 -2
  38. package/dist/ir/impl/serializer.d.ts.map +1 -1
  39. package/dist/ir/impl/serializer.js +41 -60
  40. package/dist/ir/impl/serializer.js.map +1 -1
  41. package/dist/ir/impl/url.d.ts +1 -1
  42. package/dist/ir/impl/url.d.ts.map +1 -1
  43. package/dist/ir/impl/url.js +4 -4
  44. package/dist/ir/impl/url.js.map +1 -1
  45. package/dist/ir/index.d.ts +1 -1
  46. package/dist/ir/index.d.ts.map +1 -1
  47. package/dist/ir/index.js +1 -1
  48. package/dist/ir/index.js.map +1 -1
  49. package/dist/ir/operation/body.d.ts +1 -1
  50. package/dist/ir/operation/body.d.ts.map +1 -1
  51. package/dist/ir/operation/body.js +3 -3
  52. package/dist/ir/operation/body.js.map +1 -1
  53. package/dist/ir/operation/params.d.ts +1 -1
  54. package/dist/ir/operation/params.d.ts.map +1 -1
  55. package/dist/ir/operation/params.js +3 -3
  56. package/dist/ir/operation/params.js.map +1 -1
  57. package/dist/ir/operation/response.d.ts +3 -1
  58. package/dist/ir/operation/response.d.ts.map +1 -1
  59. package/dist/ir/operation/response.js +3 -4
  60. package/dist/ir/operation/response.js.map +1 -1
  61. package/dist/ir/operation/signature.d.ts +4 -2
  62. package/dist/ir/operation/signature.d.ts.map +1 -1
  63. package/dist/ir/operation/signature.js +5 -4
  64. package/dist/ir/operation/signature.js.map +1 -1
  65. package/dist/ir/operations.d.ts +7 -1
  66. package/dist/ir/operations.d.ts.map +1 -1
  67. package/dist/ir/operations.js +13 -7
  68. package/dist/ir/operations.js.map +1 -1
  69. package/dist/ir/runtime/index.d.ts +1 -1
  70. package/dist/ir/runtime/index.d.ts.map +1 -1
  71. package/dist/ir/runtime/index.js +1 -1
  72. package/dist/ir/runtime/index.js.map +1 -1
  73. package/dist/ir/runtime/templates.d.ts +1 -21
  74. package/dist/ir/runtime/templates.d.ts.map +1 -1
  75. package/dist/ir/runtime/templates.js +24 -428
  76. package/dist/ir/runtime/templates.js.map +1 -1
  77. package/dist/ir/schema.d.ts +3 -2
  78. package/dist/ir/schema.d.ts.map +1 -1
  79. package/dist/ir/schema.js +24 -11
  80. package/dist/ir/schema.js.map +1 -1
  81. package/dist/ir/type/context.d.ts +1 -1
  82. package/dist/ir/type/context.d.ts.map +1 -1
  83. package/dist/ir/type/index.d.ts +5 -3
  84. package/dist/ir/type/index.d.ts.map +1 -1
  85. package/dist/ir/type/index.js +12 -8
  86. package/dist/ir/type/index.js.map +1 -1
  87. package/dist/ir/type/primitive.d.ts +1 -1
  88. package/dist/ir/type/primitive.d.ts.map +1 -1
  89. package/dist/ir/type/primitive.js +1 -1
  90. package/dist/ir/type/primitive.js.map +1 -1
  91. package/dist/ir/type-ops.d.ts +2 -2
  92. package/dist/ir/type-ops.d.ts.map +1 -1
  93. package/dist/ir/type-ops.js +13 -17
  94. package/dist/ir/type-ops.js.map +1 -1
  95. package/dist/kt-compiler/index.d.ts +3 -6
  96. package/dist/kt-compiler/index.d.ts.map +1 -1
  97. package/dist/kt-compiler/index.js +7 -22
  98. package/dist/kt-compiler/index.js.map +1 -1
  99. package/dist/project/build.d.ts +1 -1
  100. package/dist/project/build.d.ts.map +1 -1
  101. package/dist/project/build.js +6 -8
  102. package/dist/project/build.js.map +1 -1
  103. package/dist/project/imports.d.ts +12 -12
  104. package/dist/project/imports.d.ts.map +1 -1
  105. package/dist/project/imports.js +60 -138
  106. package/dist/project/imports.js.map +1 -1
  107. package/dist/project/layout.d.ts +1 -1
  108. package/dist/project/layout.d.ts.map +1 -1
  109. package/dist/project/layout.js +1 -3
  110. package/dist/project/layout.js.map +1 -1
  111. package/package.json +11 -9
  112. package/runtime/APIClient.kt +140 -0
  113. package/runtime/APIError.kt +42 -0
  114. package/runtime/APIInterceptors.kt +14 -0
  115. package/runtime/APIKeyLocation.kt +7 -0
  116. package/runtime/Auth.kt +86 -0
  117. package/runtime/MultipartFormBody.kt +41 -0
  118. package/runtime/QueryStyle.kt +12 -0
  119. package/runtime/RequestOptions.kt +29 -0
  120. package/runtime/URLEncoding.kt +45 -0
  121. package/dist/kt-compiler/decl/class.d.ts +0 -6
  122. package/dist/kt-compiler/decl/class.d.ts.map +0 -1
  123. package/dist/kt-compiler/decl/class.js +0 -38
  124. package/dist/kt-compiler/decl/class.js.map +0 -1
  125. package/dist/kt-compiler/decl/dataClass.d.ts +0 -3
  126. package/dist/kt-compiler/decl/dataClass.d.ts.map +0 -1
  127. package/dist/kt-compiler/decl/dataClass.js +0 -18
  128. package/dist/kt-compiler/decl/dataClass.js.map +0 -1
  129. package/dist/kt-compiler/decl/enum.d.ts +0 -3
  130. package/dist/kt-compiler/decl/enum.d.ts.map +0 -1
  131. package/dist/kt-compiler/decl/enum.js +0 -32
  132. package/dist/kt-compiler/decl/enum.js.map +0 -1
  133. package/dist/kt-compiler/decl/fun.d.ts +0 -11
  134. package/dist/kt-compiler/decl/fun.d.ts.map +0 -1
  135. package/dist/kt-compiler/decl/fun.js +0 -69
  136. package/dist/kt-compiler/decl/fun.js.map +0 -1
  137. package/dist/kt-compiler/decl/index.d.ts +0 -13
  138. package/dist/kt-compiler/decl/index.d.ts.map +0 -1
  139. package/dist/kt-compiler/decl/index.js +0 -39
  140. package/dist/kt-compiler/decl/index.js.map +0 -1
  141. package/dist/kt-compiler/decl/interface.d.ts +0 -3
  142. package/dist/kt-compiler/decl/interface.d.ts.map +0 -1
  143. package/dist/kt-compiler/decl/interface.js +0 -15
  144. package/dist/kt-compiler/decl/interface.js.map +0 -1
  145. package/dist/kt-compiler/decl/object.d.ts +0 -3
  146. package/dist/kt-compiler/decl/object.d.ts.map +0 -1
  147. package/dist/kt-compiler/decl/object.js +0 -19
  148. package/dist/kt-compiler/decl/object.js.map +0 -1
  149. package/dist/kt-compiler/decl/prop.d.ts +0 -20
  150. package/dist/kt-compiler/decl/prop.d.ts.map +0 -1
  151. package/dist/kt-compiler/decl/prop.js +0 -42
  152. package/dist/kt-compiler/decl/prop.js.map +0 -1
  153. package/dist/kt-compiler/decl/sealedClass.d.ts +0 -3
  154. package/dist/kt-compiler/decl/sealedClass.d.ts.map +0 -1
  155. package/dist/kt-compiler/decl/sealedClass.js +0 -32
  156. package/dist/kt-compiler/decl/sealedClass.js.map +0 -1
  157. package/dist/kt-compiler/decl/topLevel.d.ts +0 -3
  158. package/dist/kt-compiler/decl/topLevel.d.ts.map +0 -1
  159. package/dist/kt-compiler/decl/topLevel.js +0 -5
  160. package/dist/kt-compiler/decl/topLevel.js.map +0 -1
  161. package/dist/kt-compiler/decl/typeAlias.d.ts +0 -3
  162. package/dist/kt-compiler/decl/typeAlias.d.ts.map +0 -1
  163. package/dist/kt-compiler/decl/typeAlias.js +0 -6
  164. package/dist/kt-compiler/decl/typeAlias.js.map +0 -1
  165. package/dist/kt-compiler/expr.d.ts +0 -4
  166. package/dist/kt-compiler/expr.d.ts.map +0 -1
  167. package/dist/kt-compiler/expr.js +0 -123
  168. package/dist/kt-compiler/expr.js.map +0 -1
  169. package/dist/kt-compiler/format.d.ts +0 -20
  170. package/dist/kt-compiler/format.d.ts.map +0 -1
  171. package/dist/kt-compiler/format.js +0 -27
  172. package/dist/kt-compiler/format.js.map +0 -1
  173. package/dist/kt-compiler/stmt.d.ts +0 -4
  174. package/dist/kt-compiler/stmt.d.ts.map +0 -1
  175. package/dist/kt-compiler/stmt.js +0 -72
  176. package/dist/kt-compiler/stmt.js.map +0 -1
  177. package/dist/kt-compiler/type.d.ts +0 -3
  178. package/dist/kt-compiler/type.d.ts.map +0 -1
  179. package/dist/kt-compiler/type.js +0 -28
  180. package/dist/kt-compiler/type.js.map +0 -1
  181. package/dist/kt-dsl/decl/class.d.ts +0 -50
  182. package/dist/kt-dsl/decl/class.d.ts.map +0 -1
  183. package/dist/kt-dsl/decl/class.js +0 -33
  184. package/dist/kt-dsl/decl/class.js.map +0 -1
  185. package/dist/kt-dsl/decl/dataClass.d.ts +0 -36
  186. package/dist/kt-dsl/decl/dataClass.d.ts.map +0 -1
  187. package/dist/kt-dsl/decl/dataClass.js +0 -25
  188. package/dist/kt-dsl/decl/dataClass.js.map +0 -1
  189. package/dist/kt-dsl/decl/enum.d.ts +0 -60
  190. package/dist/kt-dsl/decl/enum.d.ts.map +0 -1
  191. package/dist/kt-dsl/decl/enum.js +0 -38
  192. package/dist/kt-dsl/decl/enum.js.map +0 -1
  193. package/dist/kt-dsl/decl/index.d.ts +0 -11
  194. package/dist/kt-dsl/decl/index.d.ts.map +0 -1
  195. package/dist/kt-dsl/decl/index.js +0 -11
  196. package/dist/kt-dsl/decl/index.js.map +0 -1
  197. package/dist/kt-dsl/decl/interface.d.ts +0 -33
  198. package/dist/kt-dsl/decl/interface.d.ts.map +0 -1
  199. package/dist/kt-dsl/decl/interface.js +0 -24
  200. package/dist/kt-dsl/decl/interface.js.map +0 -1
  201. package/dist/kt-dsl/decl/object.d.ts +0 -34
  202. package/dist/kt-dsl/decl/object.d.ts.map +0 -1
  203. package/dist/kt-dsl/decl/object.js +0 -24
  204. package/dist/kt-dsl/decl/object.js.map +0 -1
  205. package/dist/kt-dsl/decl/prop.d.ts +0 -47
  206. package/dist/kt-dsl/decl/prop.d.ts.map +0 -1
  207. package/dist/kt-dsl/decl/prop.js +0 -28
  208. package/dist/kt-dsl/decl/prop.js.map +0 -1
  209. package/dist/kt-dsl/decl/sealedClass.d.ts +0 -68
  210. package/dist/kt-dsl/decl/sealedClass.d.ts.map +0 -1
  211. package/dist/kt-dsl/decl/sealedClass.js +0 -52
  212. package/dist/kt-dsl/decl/sealedClass.js.map +0 -1
  213. package/dist/kt-dsl/decl/topLevel.d.ts +0 -19
  214. package/dist/kt-dsl/decl/topLevel.d.ts.map +0 -1
  215. package/dist/kt-dsl/decl/topLevel.js +0 -17
  216. package/dist/kt-dsl/decl/topLevel.js.map +0 -1
  217. package/dist/kt-dsl/decl/typeAlias.d.ts +0 -23
  218. package/dist/kt-dsl/decl/typeAlias.d.ts.map +0 -1
  219. package/dist/kt-dsl/decl/typeAlias.js +0 -18
  220. package/dist/kt-dsl/decl/typeAlias.js.map +0 -1
  221. package/dist/kt-dsl/decl/types.d.ts +0 -10
  222. package/dist/kt-dsl/decl/types.d.ts.map +0 -1
  223. package/dist/kt-dsl/decl/types.js +0 -2
  224. package/dist/kt-dsl/decl/types.js.map +0 -1
  225. package/dist/kt-dsl/expr/access.d.ts +0 -48
  226. package/dist/kt-dsl/expr/access.d.ts.map +0 -1
  227. package/dist/kt-dsl/expr/access.js +0 -59
  228. package/dist/kt-dsl/expr/access.js.map +0 -1
  229. package/dist/kt-dsl/expr/call.d.ts +0 -38
  230. package/dist/kt-dsl/expr/call.d.ts.map +0 -1
  231. package/dist/kt-dsl/expr/call.js +0 -38
  232. package/dist/kt-dsl/expr/call.js.map +0 -1
  233. package/dist/kt-dsl/expr/index.d.ts +0 -7
  234. package/dist/kt-dsl/expr/index.d.ts.map +0 -1
  235. package/dist/kt-dsl/expr/index.js +0 -7
  236. package/dist/kt-dsl/expr/index.js.map +0 -1
  237. package/dist/kt-dsl/expr/literal.d.ts +0 -100
  238. package/dist/kt-dsl/expr/literal.d.ts.map +0 -1
  239. package/dist/kt-dsl/expr/literal.js +0 -108
  240. package/dist/kt-dsl/expr/literal.js.map +0 -1
  241. package/dist/kt-dsl/expr/misc.d.ts +0 -45
  242. package/dist/kt-dsl/expr/misc.d.ts.map +0 -1
  243. package/dist/kt-dsl/expr/misc.js +0 -63
  244. package/dist/kt-dsl/expr/misc.js.map +0 -1
  245. package/dist/kt-dsl/expr/op.d.ts +0 -25
  246. package/dist/kt-dsl/expr/op.d.ts.map +0 -1
  247. package/dist/kt-dsl/expr/op.js +0 -24
  248. package/dist/kt-dsl/expr/op.js.map +0 -1
  249. package/dist/kt-dsl/expr/types.d.ts +0 -93
  250. package/dist/kt-dsl/expr/types.d.ts.map +0 -1
  251. package/dist/kt-dsl/expr/types.js +0 -2
  252. package/dist/kt-dsl/expr/types.js.map +0 -1
  253. package/dist/kt-dsl/file.d.ts +0 -14
  254. package/dist/kt-dsl/file.d.ts.map +0 -1
  255. package/dist/kt-dsl/file.js +0 -9
  256. package/dist/kt-dsl/file.js.map +0 -1
  257. package/dist/kt-dsl/fun.d.ts +0 -73
  258. package/dist/kt-dsl/fun.d.ts.map +0 -1
  259. package/dist/kt-dsl/fun.js +0 -50
  260. package/dist/kt-dsl/fun.js.map +0 -1
  261. package/dist/kt-dsl/index.d.ts +0 -8
  262. package/dist/kt-dsl/index.d.ts.map +0 -1
  263. package/dist/kt-dsl/index.js +0 -8
  264. package/dist/kt-dsl/index.js.map +0 -1
  265. package/dist/kt-dsl/stmt/binding.d.ts +0 -56
  266. package/dist/kt-dsl/stmt/binding.d.ts.map +0 -1
  267. package/dist/kt-dsl/stmt/binding.js +0 -70
  268. package/dist/kt-dsl/stmt/binding.js.map +0 -1
  269. package/dist/kt-dsl/stmt/control.d.ts +0 -80
  270. package/dist/kt-dsl/stmt/control.d.ts.map +0 -1
  271. package/dist/kt-dsl/stmt/control.js +0 -77
  272. package/dist/kt-dsl/stmt/control.js.map +0 -1
  273. package/dist/kt-dsl/stmt/index.d.ts +0 -4
  274. package/dist/kt-dsl/stmt/index.d.ts.map +0 -1
  275. package/dist/kt-dsl/stmt/index.js +0 -4
  276. package/dist/kt-dsl/stmt/index.js.map +0 -1
  277. package/dist/kt-dsl/stmt/types.d.ts +0 -62
  278. package/dist/kt-dsl/stmt/types.d.ts.map +0 -1
  279. package/dist/kt-dsl/stmt/types.js +0 -2
  280. package/dist/kt-dsl/stmt/types.js.map +0 -1
  281. package/dist/kt-dsl/type/builders.d.ts +0 -75
  282. package/dist/kt-dsl/type/builders.d.ts.map +0 -1
  283. package/dist/kt-dsl/type/builders.js +0 -83
  284. package/dist/kt-dsl/type/builders.js.map +0 -1
  285. package/dist/kt-dsl/type/index.d.ts +0 -3
  286. package/dist/kt-dsl/type/index.d.ts.map +0 -1
  287. package/dist/kt-dsl/type/index.js +0 -3
  288. package/dist/kt-dsl/type/index.js.map +0 -1
  289. package/dist/kt-dsl/type/types.d.ts +0 -25
  290. package/dist/kt-dsl/type/types.d.ts.map +0 -1
  291. package/dist/kt-dsl/type/types.js +0 -2
  292. package/dist/kt-dsl/type/types.js.map +0 -1
  293. package/dist/kt-dsl/visibility.d.ts +0 -2
  294. package/dist/kt-dsl/visibility.d.ts.map +0 -1
  295. package/dist/kt-dsl/visibility.js +0 -2
  296. package/dist/kt-dsl/visibility.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { avoidLeadingDigit, escapeIfReserved, softCamel, } from "@ir-kit/codegen-core";
1
+ import { avoidLeadingDigit, escapeIfReserved, Namespace, softCamel, typeIdent, } from "@ir-kit/codegen-core";
2
2
  /**
3
3
  * Kotlin-specific identifier transforms. Generic case helpers
4
4
  * (`pascal`, `camel`, `safeIdent`, `safeCaseName`, `synthName`,
@@ -15,7 +15,8 @@ import { avoidLeadingDigit, escapeIfReserved, softCamel, } from "@ir-kit/codegen
15
15
  * pass through unchanged.
16
16
  */
17
17
  export function paramIdent(name) {
18
- return escapeIfReserved(avoidLeadingDigit(softCamel(name)), KOTLIN_RESERVED_KEYWORDS, (s) => `\`${s}\``);
18
+ const ident = softCamel(name).replace(/[^A-Za-z0-9_]/g, "") || "value";
19
+ return escapeIfReserved(avoidLeadingDigit(ident), KOTLIN_RESERVED_KEYWORDS, (s) => `\`${s}\``);
19
20
  }
20
21
  /**
21
22
  * Constant-style identifier for enum entries — `SCREAMING_SNAKE_CASE`.
@@ -30,7 +31,9 @@ export function enumEntryIdent(s) {
30
31
  .split(/_+/)
31
32
  .filter(Boolean);
32
33
  const upper = parts.join("_").toUpperCase();
33
- return avoidLeadingDigit(upper) || "EMPTY";
34
+ if (!upper)
35
+ return "EMPTY";
36
+ return /^[0-9]/.test(upper) ? `VALUE_${upper}` : upper;
34
37
  }
35
38
  /**
36
39
  * Kotlin's hard keywords (the ones that can't be used as identifiers
@@ -68,4 +71,90 @@ const KOTLIN_RESERVED_KEYWORDS = new Set([
68
71
  "when",
69
72
  "while",
70
73
  ]);
74
+ /** `typeIdent` joined into the PascalCase form Kotlin's class-naming convention expects. */
75
+ export function kotlinTypeIdent(name) {
76
+ const joined = typeIdent(name)
77
+ .replace(/_+([A-Za-z0-9])/g, (_, c) => c.toUpperCase())
78
+ .replace(/_/g, "");
79
+ const pascal = joined.replace(/^./, (c) => c.toUpperCase());
80
+ return /^[0-9]/.test(pascal) ? `X${pascal}` : pascal || "Empty";
81
+ }
82
+ /** Operation parameter name that cannot shadow a local of the generated method body. */
83
+ export function operationParamIdent(name) {
84
+ const ident = paramIdent(name);
85
+ return OPERATION_LOCALS.has(ident) ? `${ident}Param` : ident;
86
+ }
87
+ /** Owns every top-level Kotlin type name for one generation run. */
88
+ export function newTypeNames() {
89
+ return new Namespace({
90
+ normalize: kotlinTypeIdent,
91
+ reserved: RESERVED_TYPE_NAMES,
92
+ });
93
+ }
94
+ /** Locals and names generated method bodies declare or capture. */
95
+ const OPERATION_LOCALS = new Set([
96
+ "auth",
97
+ "baseUrl",
98
+ "builder",
99
+ "client",
100
+ "currentUrl",
101
+ "data",
102
+ "formBuilder",
103
+ "header",
104
+ "multipart",
105
+ "options",
106
+ "payload",
107
+ "raw",
108
+ "response",
109
+ "scheme",
110
+ "url",
111
+ "urlBuilder",
112
+ "value",
113
+ ]);
114
+ /** Kotlin, library and runtime type names generated files use unqualified. */
115
+ const RESERVED_TYPE_NAMES = new Set([
116
+ "Any",
117
+ "APIClient",
118
+ "APIError",
119
+ "APIInterceptors",
120
+ "APIKeyLocation",
121
+ "Auth",
122
+ "Boolean",
123
+ "ByteArray",
124
+ "Dispatchers",
125
+ "Double",
126
+ "Exception",
127
+ "Float",
128
+ "FormBody",
129
+ "HttpUrl",
130
+ "Instant",
131
+ "Int",
132
+ "Json",
133
+ "JsonElement",
134
+ "KSerializer",
135
+ "List",
136
+ "LocalDate",
137
+ "Long",
138
+ "Map",
139
+ "MediaType",
140
+ "MultipartBody",
141
+ "MultipartFormBody",
142
+ "Nothing",
143
+ "OkHttpClient",
144
+ "Pair",
145
+ "QueryStyle",
146
+ "Request",
147
+ "RequestBody",
148
+ "RequestOptions",
149
+ "Response",
150
+ "Result",
151
+ "SerialName",
152
+ "Serializable",
153
+ "Set",
154
+ "String",
155
+ "Throwable",
156
+ "TimeUnit",
157
+ "Unit",
158
+ "URLEncoding",
159
+ ]);
71
160
  //# sourceMappingURL=identifiers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../src/ir/identifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,GACV,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;GAOG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,gBAAgB,CACrB,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAClC,wBAAwB,EACxB,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAClB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,CAAS;IACtC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IACjD,8EAA8E;IAC9E,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,wBAAwB,GAAwB,IAAI,GAAG,CAAC;IAC5D,IAAI;IACJ,OAAO;IACP,OAAO;IACP,UAAU;IACV,IAAI;IACJ,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,WAAW;IACX,IAAI;IACJ,MAAM;IACN,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,WAAW;IACX,QAAQ;IACR,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;CACR,CAAC,CAAC"}
1
+ {"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../src/ir/identifiers.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import type { IR } from "@hey-api/shared";
2
2
  import type { HttpMethod } from "@ir-kit/openapi";
3
- import type { KtType } from "../../kt-dsl/index.js";
4
- import { type KtStmt } from "../../kt-dsl/index.js";
3
+ import type { KtType } from "../../ast/index.js";
4
+ import { type KtStmt } from "../../ast/index.js";
5
+ import { type SerializerAliases } from "./serializer.js";
5
6
  export interface BodyResult {
6
7
  stmts: ReadonlyArray<KtStmt>;
7
8
  /** Set when the body builder uses `MultipartFormBody` so the
@@ -24,5 +25,5 @@ export interface BodyResult {
24
25
  *
25
26
  * Optional fields are wrapped in `if (<id> != null)`.
26
27
  */
27
- export declare function buildBodyStmts(body: IR.BodyObject, method: HttpMethod, bodyType: KtType): BodyResult;
28
+ export declare function buildBodyStmts(body: IR.BodyObject, method: HttpMethod, bodyType: KtType, aliases: SerializerAliases): BodyResult;
28
29
  //# sourceMappingURL=body.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAEL,KAAK,MAAM,EAYZ,MAAM,uBAAuB,CAAC;AAK/B,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B;kDAC8C;IAC9C,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,EAAE,CAAC,UAAU,EACnB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,GACf,UAAU,CA4BZ"}
1
+ {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAEL,KAAK,MAAM,EAYZ,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,KAAK,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAExE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B;kDAC8C;IAC9C,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,EAAE,CAAC,UAAU,EACnB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,GACzB,UAAU,CA+BZ"}
@@ -1,6 +1,6 @@
1
1
  import { classifyBody, isSchemaObject } from "@ir-kit/openapi";
2
- import { ktArg, ktCall, ktExprStmt, ktIdent, ktIf, ktInterp, ktMember, ktNe, ktNull, ktStr, ktVal, } from "../../kt-dsl/index.js";
3
- import { paramIdent } from "../identifiers.js";
2
+ import { ktArg, ktCall, ktExprStmt, ktIdent, ktIf, ktInterp, ktMember, ktNe, ktNull, ktStr, ktVal, } from "../../ast/index.js";
3
+ import { operationParamIdent } from "../identifiers.js";
4
4
  import { setMethodWithBody } from "./request.js";
5
5
  import { serializerFor } from "./serializer.js";
6
6
  /**
@@ -19,7 +19,7 @@ import { serializerFor } from "./serializer.js";
19
19
  *
20
20
  * Optional fields are wrapped in `if (<id> != null)`.
21
21
  */
22
- export function buildBodyStmts(body, method, bodyType) {
22
+ export function buildBodyStmts(body, method, bodyType, aliases) {
23
23
  const { shape, schema } = classifyBody(body);
24
24
  switch (shape.kind) {
25
25
  case "json-opaque":
@@ -28,7 +28,10 @@ export function buildBodyStmts(body, method, bodyType) {
28
28
  needsMultipart: false,
29
29
  };
30
30
  case "json-typed":
31
- return { stmts: emitJsonBody(method, bodyType), needsMultipart: false };
31
+ return {
32
+ stmts: emitJsonBody(method, bodyType, aliases),
33
+ needsMultipart: false,
34
+ };
32
35
  case "multipart-object":
33
36
  return { stmts: emitMultipartBody(schema, method), needsMultipart: true };
34
37
  case "form-urlencoded-object":
@@ -49,10 +52,10 @@ const TO_REQUEST_BODY = "toRequestBody";
49
52
  function toMediaTypeCall(mt) {
50
53
  return ktCall(ktMember(ktStr(mt), "toMediaType"), []);
51
54
  }
52
- function emitJsonBody(method, bodyType) {
55
+ function emitJsonBody(method, bodyType, aliases) {
53
56
  return [
54
57
  ktVal("payload", ktCall(ktMember(ktMember(ktIdent("client"), "json"), "encodeToString"), [
55
- ktArg(serializerFor(bodyType)),
58
+ ktArg(serializerFor(bodyType, aliases)),
56
59
  ktArg(ktIdent("body")),
57
60
  ])),
58
61
  setMethodWithBody(method, ktCall(ktMember(ktIdent("payload"), TO_REQUEST_BODY), [
@@ -73,7 +76,7 @@ function emitMultipartBody(schema, method) {
73
76
  for (const [propName, propSchema] of Object.entries(schema.properties ?? {})) {
74
77
  if (!isSchemaObject(propSchema))
75
78
  continue;
76
- const id = paramIdent(propName);
79
+ const id = operationParamIdent(propName);
77
80
  const isBinary = propSchema.type === "string" && propSchema.format === "binary";
78
81
  const append = isBinary
79
82
  ? ktExprStmt(ktCall(ktMember(ktIdent("multipart"), "appendFile"), [
@@ -98,7 +101,7 @@ function emitFormUrlEncodedBody(schema, method) {
98
101
  ktVal("formBuilder", ktCall(ktIdent("FormBody.Builder"), [])),
99
102
  ];
100
103
  for (const propName of Object.keys(schema.properties ?? {})) {
101
- const id = paramIdent(propName);
104
+ const id = operationParamIdent(propName);
102
105
  const append = ktExprStmt(ktCall(ktMember(ktIdent("formBuilder"), "add"), [
103
106
  ktArg(ktStr(propName)),
104
107
  ktArg(ktInterp([ktIdent(id)])),
@@ -1 +1 @@
1
- {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../src/ir/impl/body.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../src/ir/impl/body.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { type KtStmt } from "../../kt-dsl/index.js";
1
+ import { type KtStmt } from "../../ast/index.js";
2
2
  import type { OperationSignature } from "../operation/signature.js";
3
+ import { type SerializerAliases } from "./serializer.js";
3
4
  /**
4
5
  * Tail of an impl method body — delegate to the runtime client. Five
5
6
  * shapes, picked from the sig:
@@ -10,5 +11,5 @@ import type { OperationSignature } from "../operation/signature.js";
10
11
  * - Single 2xx, `Pair<T, Response>` → `return client.executeWithResponse(builder.build(), <ser>, …)`
11
12
  * - Multi 2xx (sealed-class) → `client.executeRaw(...)` + `when (response.code)` switch, decode each case
12
13
  */
13
- export declare function buildSendAndDecodeStmts(sig: OperationSignature): ReadonlyArray<KtStmt>;
14
+ export declare function buildSendAndDecodeStmts(sig: OperationSignature, aliases: SerializerAliases): ReadonlyArray<KtStmt>;
14
15
  //# sourceMappingURL=decode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,MAAM,EAaZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,2BAA2B,CAAC;AAGnC;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,kBAAkB,GACtB,aAAa,CAAC,MAAM,CAAC,CAGvB"}
1
+ {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,MAAM,EAeZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAExE;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,kBAAkB,EACvB,OAAO,EAAE,iBAAiB,GACzB,aAAa,CAAC,MAAM,CAAC,CAIvB"}
@@ -1,4 +1,4 @@
1
- import { ktArg, ktCall, ktExprStmt, ktIdent, ktIntLit, ktMember, ktReturn, ktThrow, ktVal, ktWhen, ktWhenCase, } from "../../kt-dsl/index.js";
1
+ import { isUnit, ktArg, ktCall, ktExprStmt, ktIdent, ktIntLit, ktMember, ktReturn, ktThrow, ktVal, ktWhen, ktWhenCase, typeArgs, typeName, } from "../../ast/index.js";
2
2
  import { serializerFor } from "./serializer.js";
3
3
  /**
4
4
  * Tail of an impl method body — delegate to the runtime client. Five
@@ -10,20 +10,20 @@ import { serializerFor } from "./serializer.js";
10
10
  * - Single 2xx, `Pair<T, Response>` → `return client.executeWithResponse(builder.build(), <ser>, …)`
11
11
  * - Multi 2xx (sealed-class) → `client.executeRaw(...)` + `when (response.code)` switch, decode each case
12
12
  */
13
- export function buildSendAndDecodeStmts(sig) {
13
+ export function buildSendAndDecodeStmts(sig, aliases) {
14
14
  if (sig.responseCases.length > 0)
15
- return buildMultiResponseStmts(sig);
16
- return buildSingleResponseStmts(sig.returnType);
15
+ return buildMultiResponseStmts(aliases, sig);
16
+ return buildSingleResponseStmts(sig.returnType, aliases);
17
17
  }
18
18
  // MARK: single-2xx
19
- function buildSingleResponseStmts(returnType) {
19
+ function buildSingleResponseStmts(returnType, aliases) {
20
20
  const dispatch = classifyReturn(returnType);
21
21
  const callee = ktMember(ktIdent("client"), dispatch.method);
22
22
  const args = [
23
23
  ktArg(ktCall(ktMember(ktIdent("builder"), "build"), [])),
24
24
  ];
25
25
  if (dispatch.deserializerType) {
26
- args.push(ktArg(serializerFor(dispatch.deserializerType)));
26
+ args.push(ktArg(serializerFor(dispatch.deserializerType, aliases)));
27
27
  }
28
28
  args.push(ktArg(ktMember(ktIdent("options"), "timeout"), "timeout"), ktArg(ktMember(ktIdent("options"), "requestInterceptors"), "extraInterceptors"), ktArg(ktMember(ktIdent("options"), "responseValidator"), "responseValidator"));
29
29
  if (dispatch.includeTransformer) {
@@ -33,24 +33,24 @@ function buildSingleResponseStmts(returnType) {
33
33
  return dispatch.discardResult ? [ktExprStmt(call)] : [ktReturn(call)];
34
34
  }
35
35
  function classifyReturn(t) {
36
- if (t.kind === "primitive" && t.name === "Unit") {
36
+ if (isUnit(t)) {
37
37
  return {
38
38
  method: "executeUnit",
39
39
  includeTransformer: false,
40
40
  discardResult: true,
41
41
  };
42
42
  }
43
- if (t.kind === "ref" && t.name === "Response") {
43
+ if (typeName(t) === "Response") {
44
44
  return {
45
45
  method: "executeUnitWithResponse",
46
46
  includeTransformer: false,
47
47
  discardResult: false,
48
48
  };
49
49
  }
50
- if (t.kind === "ref" && t.name === "Pair" && t.args && t.args.length > 0) {
50
+ if (typeName(t) === "Pair" && typeArgs(t).length > 0) {
51
51
  return {
52
52
  method: "executeWithResponse",
53
- deserializerType: t.args[0],
53
+ deserializerType: typeArgs(t)[0],
54
54
  includeTransformer: true,
55
55
  discardResult: false,
56
56
  };
@@ -63,9 +63,9 @@ function classifyReturn(t) {
63
63
  };
64
64
  }
65
65
  // MARK: multi-2xx
66
- function buildMultiResponseStmts(sig) {
67
- const wrapWithResponse = sig.returnType.kind === "ref" && sig.returnType.name === "Pair";
68
- const sealedName = `${sig.ownerName}_Response`;
66
+ function buildMultiResponseStmts(aliases, sig) {
67
+ const wrapWithResponse = typeName(sig.returnType) === "Pair";
68
+ const sealedName = sig.sealedName ?? sig.ownerName;
69
69
  const args = [
70
70
  ktArg(ktCall(ktMember(ktIdent("builder"), "build"), [])),
71
71
  ktArg(ktMember(ktIdent("options"), "timeout"), "timeout"),
@@ -77,7 +77,7 @@ function buildMultiResponseStmts(sig) {
77
77
  ktVal("raw", ktCall(ktMember(ktIdent("client"), "executeRaw"), args)),
78
78
  ktVal("data", ktMember(ktIdent("raw"), "first")),
79
79
  ktVal("response", ktMember(ktIdent("raw"), "second")),
80
- ktWhen(ktMember(ktIdent("response"), "code"), sig.responseCases.map((c) => ktWhenCase([ktIntLit(Number(c.statusCode))], caseBody(c, sealedName, wrapWithResponse))), [
80
+ ktWhen(ktMember(ktIdent("response"), "code"), sig.responseCases.map((c) => ktWhenCase([ktIntLit(Number(c.statusCode))], caseBody(aliases, c, sealedName, wrapWithResponse))), [
81
81
  ktThrow(ktCall(ktIdent("APIError.UnexpectedStatus"), [
82
82
  ktArg(ktMember(ktIdent("response"), "code")),
83
83
  ktArg(ktIdent("data")),
@@ -85,14 +85,14 @@ function buildMultiResponseStmts(sig) {
85
85
  ]),
86
86
  ];
87
87
  }
88
- function caseBody(c, sealedName, wrapWithResponse) {
88
+ function caseBody(aliases, c, sealedName, wrapWithResponse) {
89
89
  if (!c.payloadType) {
90
90
  return [
91
91
  ktReturn(wrapResult(ktIdent(`${sealedName}.${c.caseName}`), wrapWithResponse)),
92
92
  ];
93
93
  }
94
94
  const decoded = ktCall(ktMember(ktMember(ktIdent("client"), "json"), "decodeFromString"), [
95
- ktArg(serializerFor(c.payloadType)),
95
+ ktArg(serializerFor(c.payloadType, aliases)),
96
96
  ktArg(ktCall(ktMember(ktIdent("data"), "decodeToString"), [])),
97
97
  ]);
98
98
  return [
@@ -1 +1 @@
1
- {"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/ir/impl/decode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/ir/impl/decode.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type LocatedParam } from "@ir-kit/openapi";
2
- import { type KtStmt } from "../../kt-dsl/index.js";
2
+ import { type KtStmt } from "../../ast/index.js";
3
3
  /**
4
4
  * `builder.header("<name>", "$<value>")` for each header param. Optional
5
5
  * headers are wrapped in `if (<name> != null)`.
@@ -1 +1 @@
1
- {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/headers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,KAAK,MAAM,EAWZ,MAAM,uBAAuB,CAAC;AAG/B;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,GACnC,aAAa,CAAC,MAAM,CAAC,CAGvB"}
1
+ {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/headers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,KAAK,MAAM,EAWZ,MAAM,oBAAoB,CAAC;AAG5B;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,GACnC,aAAa,CAAC,MAAM,CAAC,CAGvB"}
@@ -1,6 +1,6 @@
1
1
  import { paramsAt } from "@ir-kit/openapi";
2
- import { ktArg, ktCall, ktExprStmt, ktIdent, ktIf, ktInterp, ktMember, ktNe, ktNull, ktStr, } from "../../kt-dsl/index.js";
3
- import { paramIdent } from "../identifiers.js";
2
+ import { ktArg, ktCall, ktExprStmt, ktIdent, ktIf, ktInterp, ktMember, ktNe, ktNull, ktStr, } from "../../ast/index.js";
3
+ import { operationParamIdent } from "../identifiers.js";
4
4
  /**
5
5
  * `builder.header("<name>", "$<value>")` for each header param. Optional
6
6
  * headers are wrapped in `if (<name> != null)`.
@@ -10,7 +10,7 @@ export function buildHeaderStmts(located) {
10
10
  return headers.flatMap(buildHeaderStmt);
11
11
  }
12
12
  function buildHeaderStmt(p) {
13
- const id = paramIdent(p.name);
13
+ const id = operationParamIdent(p.name);
14
14
  const setStmt = ktExprStmt(ktCall(ktMember(ktIdent("builder"), "header"), [
15
15
  ktArg(ktStr(p.name)),
16
16
  ktArg(ktInterp([ktIdent(id)])),
@@ -1 +1 @@
1
- {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../../src/ir/impl/headers.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAEL,KAAK,EACL,MAAM,EACN,UAAU,EACV,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,KAAK,GACN,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAoC;IAEpC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,eAAe,CAAC,CAAqB;IAC5C,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,UAAU,CACxB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE;QAC7C,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC/B,CAAC,CACH,CAAC;IACF,IAAI,CAAC,CAAC,QAAQ;QAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../../src/ir/impl/headers.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAEL,KAAK,EACL,MAAM,EACN,UAAU,EACV,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,KAAK,GACN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAoC;IAEpC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,eAAe,CAAC,CAAqB;IAC5C,MAAM,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,UAAU,CACxB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE;QAC7C,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC/B,CAAC,CACH,CAAC;IACF,IAAI,CAAC,CAAC,QAAQ;QAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC"}
@@ -1,8 +1,9 @@
1
- import { type KtClass } from "../../kt-dsl/index.js";
1
+ import { type KtDecl } from "../../ast/index.js";
2
2
  import type { OperationSignature } from "../operation/signature.js";
3
+ import type { SerializerAliases } from "./serializer.js";
3
4
  export interface ClientClassResult {
4
5
  /** The impl class itself. */
5
- class: KtClass;
6
+ class: KtDecl;
6
7
  /** True when at least one method uses the `MultipartFormBody` helper,
7
8
  * so the orchestrator should ship it. */
8
9
  needsMultipart: boolean;
@@ -11,6 +12,8 @@ export interface ClientClassOptions {
11
12
  /** When true, the class is `open` (subclassable) instead of final.
12
13
  * Default: `false`. */
13
14
  open?: boolean;
15
+ /** Type aliases visible to serializer resolution. */
16
+ aliases?: SerializerAliases;
14
17
  }
15
18
  /**
16
19
  * Convert a list of `OperationSignature`s for a tag into a class that
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAuBb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAiKpE,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf;8CAC0C;IAC1C,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC;4BACwB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC7C,IAAI,GAAE,kBAAuB,GAC5B,iBAAiB,CAmBnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,MAAM,EAsBZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAKpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAgKzD,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd;8CAC0C;IAC1C,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC;4BACwB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qDAAqD;IACrD,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC7C,IAAI,GAAE,kBAAuB,GAC5B,iBAAiB,CAoBnB"}
@@ -1,4 +1,4 @@
1
- import { ktArg, ktAssign, ktCall, ktClass, ktElvis, ktExprStmt, ktForIn, ktFun, ktIdent, ktIndex, ktLambda, ktListLit, ktMember, ktProp, ktRef, ktSafeMember, ktStr, ktVal, ktVar, } from "../../kt-dsl/index.js";
1
+ import { ktArg, ktAssign, ktCall, ktClass, ktElvis, ktExprStmt, ktForIn, ktFun, ktIdent, ktIndex, ktLambda, ktListLit, ktMember, ktProp, ktRef, ktSafeMember, ktStr, ktVal, ktVar, } from "../../ast/index.js";
2
2
  import { buildBodyStmts } from "./body.js";
3
3
  import { buildSendAndDecodeStmts } from "./decode.js";
4
4
  import { buildHeaderStmts } from "./headers.js";
@@ -21,17 +21,17 @@ import { buildUrlStmts } from "./url.js";
21
21
  * 8. Delegate to `client.execute(...)` with timeout + interceptors +
22
22
  * validator + transformer.
23
23
  */
24
- function buildImplFun(sig) {
24
+ function buildImplFun(sig, aliases) {
25
25
  const stmts = [];
26
26
  stmts.push(...resolveOverrideStmts());
27
27
  stmts.push(...buildUrlStmts(sig.pathStr, sig.locatedParams));
28
- stmts.push(...buildRequestStmts(sig.method));
28
+ stmts.push(...buildRequestStmts(sig.method, Boolean(sig.op.body)));
29
29
  stmts.push(...buildHeaderStmts(sig.locatedParams));
30
30
  let needsMultipart = false;
31
31
  if (sig.op.body) {
32
32
  const bodyParam = sig.params.find((p) => p.name === "body");
33
33
  const bodyType = bodyParam?.type ?? ktRef("ByteArray");
34
- const result = buildBodyStmts(sig.op.body, sig.method, bodyType);
34
+ const result = buildBodyStmts(sig.op.body, sig.method, bodyType, aliases);
35
35
  stmts.push(...result.stmts);
36
36
  needsMultipart = result.needsMultipart;
37
37
  }
@@ -39,7 +39,7 @@ function buildImplFun(sig) {
39
39
  stmts.push(...applyAuthStmts(sig.securitySchemeNames));
40
40
  }
41
41
  stmts.push(applyOptionsHeadersStmt());
42
- stmts.push(...buildSendAndDecodeStmts(sig));
42
+ stmts.push(...buildSendAndDecodeStmts(sig, aliases));
43
43
  // Kotlin forbids defaults on `override` methods (the interface
44
44
  // signature carries them via the convenience extension fun).
45
45
  const overrideParams = sig.params.map((p) => p.default === undefined ? p : { ...p, default: undefined });
@@ -119,7 +119,7 @@ function applyAuthStmts(schemeNames) {
119
119
  * send/dispatch/decode to it.
120
120
  */
121
121
  export function buildClientClass(className, interfaceName, signatures, opts = {}) {
122
- const built = signatures.map(buildImplFun);
122
+ const built = signatures.map((sig) => buildImplFun(sig, opts.aliases ?? new Map()));
123
123
  const modifiers = opts.open ? ["open"] : [];
124
124
  return {
125
125
  class: ktClass({
@@ -130,7 +130,6 @@ export function buildClientClass(className, interfaceName, signatures, opts = {}
130
130
  ktProp({
131
131
  name: "client",
132
132
  type: ktRef("APIClient"),
133
- inPrimary: true,
134
133
  }),
135
134
  ],
136
135
  funs: built.map((b) => b.fun),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/impl/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/impl/index.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { type HttpMethod } from "@ir-kit/openapi";
2
- import { type KtStmt } from "../../kt-dsl/index.js";
2
+ import { type KtStmt } from "../../ast/index.js";
3
3
  /**
4
- * Initial request builder + HTTP method. Body-bearing methods can re-call
5
- * `.method(verb, body)` later from the body builder; bodyless methods
6
- * (`GET` / `HEAD` / `DELETE` without body) keep the `null` body set here.
4
+ * Request builder for the URL. When the operation has a body, the body
5
+ * builder sets the method together with it; otherwise the method is set
6
+ * here, with an empty body for verbs OkHttp requires one for.
7
7
  *
8
8
  * val builder = Request.Builder().url(url).method("GET", null)
9
9
  */
10
- export declare function buildRequestStmts(method: HttpMethod): ReadonlyArray<KtStmt>;
10
+ export declare function buildRequestStmts(method: HttpMethod, hasBody: boolean): ReadonlyArray<KtStmt>;
11
11
  /** Convenience for the body builder to re-set the method when a
12
12
  * RequestBody is produced. */
13
- export declare function setMethodWithBody(method: HttpMethod, bodyExpr: import("../../kt-dsl/index.js").KtExpr): KtStmt;
13
+ export declare function setMethodWithBody(method: HttpMethod, bodyExpr: import("../../ast/index.js").KtExpr): KtStmt;
14
14
  //# sourceMappingURL=request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EACL,KAAK,MAAM,EASZ,MAAM,uBAAuB,CAAC;AAE/B;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAe3E;AAED;+BAC+B;AAC/B,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,OAAO,uBAAuB,EAAE,MAAM,GAC/C,MAAM,CAOR"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EACL,KAAK,MAAM,EAUZ,MAAM,oBAAoB,CAAC;AAK5B;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,GACf,aAAa,CAAC,MAAM,CAAC,CAyBvB;AAED;+BAC+B;AAC/B,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,OAAO,oBAAoB,EAAE,MAAM,GAC5C,MAAM,CAOR"}
@@ -1,17 +1,27 @@
1
1
  import { HTTP_METHOD_LITERAL } from "@ir-kit/openapi";
2
- import { ktArg, ktCall, ktExprStmt, ktIdent, ktMember, ktNull, ktStr, ktVal, } from "../../kt-dsl/index.js";
2
+ import { ktArg, ktCall, ktExprStmt, ktIdent, ktIntLit, ktMember, ktNull, ktStr, ktVal, } from "../../ast/index.js";
3
+ /** Methods OkHttp rejects without a request body. */
4
+ const REQUIRES_BODY = new Set(["POST", "PUT", "PATCH"]);
3
5
  /**
4
- * Initial request builder + HTTP method. Body-bearing methods can re-call
5
- * `.method(verb, body)` later from the body builder; bodyless methods
6
- * (`GET` / `HEAD` / `DELETE` without body) keep the `null` body set here.
6
+ * Request builder for the URL. When the operation has a body, the body
7
+ * builder sets the method together with it; otherwise the method is set
8
+ * here, with an empty body for verbs OkHttp requires one for.
7
9
  *
8
10
  * val builder = Request.Builder().url(url).method("GET", null)
9
11
  */
10
- export function buildRequestStmts(method) {
12
+ export function buildRequestStmts(method, hasBody) {
13
+ const verb = HTTP_METHOD_LITERAL[method];
14
+ const withUrl = ktCall(ktMember(ktCall(ktIdent("Request.Builder"), []), "url"), [ktArg(ktIdent("url"))]);
15
+ if (hasBody)
16
+ return [ktVal("builder", withUrl)];
17
+ const emptyBody = REQUIRES_BODY.has(verb)
18
+ ? ktCall(ktMember(ktCall(ktIdent("ByteArray"), [ktArg(ktIntLit(0))]), "toRequestBody"), [])
19
+ : ktNull;
11
20
  return [
12
- ktVal("builder", ktCall(ktMember(ktCall(ktMember(ktCall(ktIdent("Request.Builder"), []), "url"), [
13
- ktArg(ktIdent("url")),
14
- ]), "method"), [ktArg(ktStr(HTTP_METHOD_LITERAL[method])), ktArg(ktNull)])),
21
+ ktVal("builder", ktCall(ktMember(withUrl, "method"), [
22
+ ktArg(ktStr(verb)),
23
+ ktArg(emptyBody),
24
+ ])),
15
25
  ];
16
26
  }
17
27
  /** Convenience for the body builder to re-set the method when a
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/ir/impl/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAEL,KAAK,EACL,MAAM,EACN,UAAU,EACV,OAAO,EACP,QAAQ,EACR,MAAM,EACN,KAAK,EACL,KAAK,GACN,MAAM,uBAAuB,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAkB;IAClD,OAAO;QACL,KAAK,CACH,SAAS,EACT,MAAM,CACJ,QAAQ,CACN,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;YAC9D,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACtB,CAAC,EACF,QAAQ,CACT,EACD,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAC3D,CACF;KACF,CAAC;AACJ,CAAC;AAED;+BAC+B;AAC/B,MAAM,UAAU,iBAAiB,CAC/B,MAAkB,EAClB,QAAgD;IAEhD,OAAO,UAAU,CACf,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE;QAC7C,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,KAAK,CAAC,QAAQ,CAAC;KAChB,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/ir/impl/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAEL,KAAK,EACL,MAAM,EACN,UAAU,EACV,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,EACL,KAAK,GACN,MAAM,oBAAoB,CAAC;AAE5B,qDAAqD;AACrD,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAE7E;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAkB,EAClB,OAAgB;IAEhB,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CACpB,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,EACvD,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CACxB,CAAC;IACF,IAAI,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QACvC,CAAC,CAAC,MAAM,CACJ,QAAQ,CACN,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAClD,eAAe,CAChB,EACD,EAAE,CACH;QACH,CAAC,CAAC,MAAM,CAAC;IACX,OAAO;QACL,KAAK,CACH,SAAS,EACT,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;YAClC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,KAAK,CAAC,SAAS,CAAC;SACjB,CAAC,CACH;KACF,CAAC;AACJ,CAAC;AAED;+BAC+B;AAC/B,MAAM,UAAU,iBAAiB,CAC/B,MAAkB,EAClB,QAA6C;IAE7C,OAAO,UAAU,CACf,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE;QAC7C,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,KAAK,CAAC,QAAQ,CAAC;KAChB,CAAC,CACH,CAAC;AACJ,CAAC"}