@goast/kotlin 0.6.0-beta.1 → 0.6.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 (147) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +45 -45
  3. package/assets/client/okhttp3/ApiAbstractions.kt +30 -30
  4. package/assets/client/okhttp3/ApiClient.kt +252 -252
  5. package/assets/client/okhttp3/ApiResponse.kt +43 -43
  6. package/assets/client/okhttp3/Errors.kt +21 -21
  7. package/assets/client/okhttp3/PartConfig.kt +11 -11
  8. package/assets/client/okhttp3/RequestConfig.kt +18 -18
  9. package/assets/client/okhttp3/RequestMethod.kt +8 -8
  10. package/assets/client/okhttp3/ResponseExtensions.kt +24 -24
  11. package/assets/client/spring-reactive-web-clients/ApiRequestFile.kt +33 -33
  12. package/esm/src/ast/references/jackson.d.ts +8 -0
  13. package/esm/src/ast/references/jackson.d.ts.map +1 -1
  14. package/esm/src/ast/references/jackson.js +8 -0
  15. package/esm/src/generators/file-generator.d.ts +21 -1
  16. package/esm/src/generators/file-generator.d.ts.map +1 -1
  17. package/esm/src/generators/file-generator.js +41 -2
  18. package/esm/src/generators/models/args.d.ts +5 -0
  19. package/esm/src/generators/models/args.d.ts.map +1 -1
  20. package/esm/src/generators/models/model-generator.d.ts +23 -0
  21. package/esm/src/generators/models/model-generator.d.ts.map +1 -1
  22. package/esm/src/generators/models/model-generator.js +130 -13
  23. package/esm/src/generators/services/okhttp3-clients/okhttp3-client-generator.d.ts +9 -0
  24. package/esm/src/generators/services/okhttp3-clients/okhttp3-client-generator.d.ts.map +1 -1
  25. package/esm/src/generators/services/okhttp3-clients/okhttp3-client-generator.js +59 -41
  26. package/esm/src/generators/services/okhttp3-clients/okhttp3-clients-generator.d.ts.map +1 -1
  27. package/esm/src/generators/services/okhttp3-clients/okhttp3-clients-generator.js +11 -9
  28. package/esm/src/generators/services/spring-controllers/spring-controller-generator.d.ts.map +1 -1
  29. package/esm/src/generators/services/spring-controllers/spring-controller-generator.js +53 -35
  30. package/esm/src/generators/services/spring-reactive-web-clients/args.d.ts +3 -0
  31. package/esm/src/generators/services/spring-reactive-web-clients/args.d.ts.map +1 -1
  32. package/esm/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.d.ts +7 -0
  33. package/esm/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.d.ts.map +1 -1
  34. package/esm/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.js +41 -20
  35. package/esm/src/import-collection.d.ts.map +1 -1
  36. package/esm/src/import-collection.js +2 -2
  37. package/esm/src/utils.d.ts +3 -1
  38. package/esm/src/utils.d.ts.map +1 -1
  39. package/esm/src/utils.js +7 -0
  40. package/package.json +2 -2
  41. package/script/src/ast/references/jackson.d.ts +8 -0
  42. package/script/src/ast/references/jackson.d.ts.map +1 -1
  43. package/script/src/ast/references/jackson.js +9 -1
  44. package/script/src/generators/file-generator.d.ts +21 -1
  45. package/script/src/generators/file-generator.d.ts.map +1 -1
  46. package/script/src/generators/file-generator.js +41 -2
  47. package/script/src/generators/models/args.d.ts +5 -0
  48. package/script/src/generators/models/args.d.ts.map +1 -1
  49. package/script/src/generators/models/model-generator.d.ts +23 -0
  50. package/script/src/generators/models/model-generator.d.ts.map +1 -1
  51. package/script/src/generators/models/model-generator.js +129 -12
  52. package/script/src/generators/services/okhttp3-clients/okhttp3-client-generator.d.ts +9 -0
  53. package/script/src/generators/services/okhttp3-clients/okhttp3-client-generator.d.ts.map +1 -1
  54. package/script/src/generators/services/okhttp3-clients/okhttp3-client-generator.js +58 -40
  55. package/script/src/generators/services/okhttp3-clients/okhttp3-clients-generator.d.ts.map +1 -1
  56. package/script/src/generators/services/okhttp3-clients/okhttp3-clients-generator.js +11 -9
  57. package/script/src/generators/services/spring-controllers/spring-controller-generator.d.ts.map +1 -1
  58. package/script/src/generators/services/spring-controllers/spring-controller-generator.js +52 -34
  59. package/script/src/generators/services/spring-reactive-web-clients/args.d.ts +3 -0
  60. package/script/src/generators/services/spring-reactive-web-clients/args.d.ts.map +1 -1
  61. package/script/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.d.ts +7 -0
  62. package/script/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.d.ts.map +1 -1
  63. package/script/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.js +40 -19
  64. package/script/src/import-collection.d.ts.map +1 -1
  65. package/script/src/import-collection.js +1 -1
  66. package/script/src/utils.d.ts +3 -1
  67. package/script/src/utils.d.ts.map +1 -1
  68. package/script/src/utils.js +9 -0
  69. package/src/mod.ts +8 -0
  70. package/src/src/assets.ts +9 -0
  71. package/src/src/ast/_index.ts +66 -0
  72. package/src/src/ast/common.ts +1 -0
  73. package/src/src/ast/index.ts +1 -0
  74. package/src/src/ast/node.ts +10 -0
  75. package/src/src/ast/nodes/annotation.ts +79 -0
  76. package/src/src/ast/nodes/argument.ts +62 -0
  77. package/src/src/ast/nodes/call.ts +75 -0
  78. package/src/src/ast/nodes/class.ts +178 -0
  79. package/src/src/ast/nodes/collection-literal.ts +49 -0
  80. package/src/src/ast/nodes/constructor.ts +126 -0
  81. package/src/src/ast/nodes/doc-tag.ts +138 -0
  82. package/src/src/ast/nodes/doc.ts +111 -0
  83. package/src/src/ast/nodes/enum-value.ts +100 -0
  84. package/src/src/ast/nodes/enum.ts +163 -0
  85. package/src/src/ast/nodes/function.ts +178 -0
  86. package/src/src/ast/nodes/generic-parameter.ts +54 -0
  87. package/src/src/ast/nodes/init-block.ts +38 -0
  88. package/src/src/ast/nodes/interface.ts +133 -0
  89. package/src/src/ast/nodes/lambda-type.ts +73 -0
  90. package/src/src/ast/nodes/lambda.ts +74 -0
  91. package/src/src/ast/nodes/object.ts +102 -0
  92. package/src/src/ast/nodes/parameter.ts +118 -0
  93. package/src/src/ast/nodes/property.ts +225 -0
  94. package/src/src/ast/nodes/reference.ts +178 -0
  95. package/src/src/ast/nodes/string.ts +114 -0
  96. package/src/src/ast/nodes/types.ts +23 -0
  97. package/src/src/ast/references/index.ts +10 -0
  98. package/src/src/ast/references/jackson.ts +70 -0
  99. package/src/src/ast/references/jakarta.ts +14 -0
  100. package/src/src/ast/references/java.ts +27 -0
  101. package/src/src/ast/references/kotlin.ts +41 -0
  102. package/src/src/ast/references/kotlinx.ts +14 -0
  103. package/src/src/ast/references/okhttp3.ts +5 -0
  104. package/src/src/ast/references/reactor.ts +5 -0
  105. package/src/src/ast/references/spring-reactive.ts +37 -0
  106. package/src/src/ast/references/spring.ts +86 -0
  107. package/src/src/ast/references/swagger.ts +23 -0
  108. package/src/src/ast/utils/get-kotlin-builder-options.ts +19 -0
  109. package/src/src/ast/utils/to-kt-node.ts +31 -0
  110. package/src/src/ast/utils/write-kt-annotations.ts +15 -0
  111. package/src/src/ast/utils/write-kt-arguments.ts +45 -0
  112. package/src/src/ast/utils/write-kt-enum-values.ts +27 -0
  113. package/src/src/ast/utils/write-kt-generic-parameters.ts +12 -0
  114. package/src/src/ast/utils/write-kt-members.ts +25 -0
  115. package/src/src/ast/utils/write-kt-node.ts +37 -0
  116. package/src/src/ast/utils/write-kt-parameters.ts +25 -0
  117. package/src/src/common-results.ts +4 -0
  118. package/src/src/config.ts +61 -0
  119. package/src/src/file-builder.ts +112 -0
  120. package/src/src/generators/file-generator.ts +71 -0
  121. package/src/src/generators/index.ts +5 -0
  122. package/src/src/generators/models/args.ts +142 -0
  123. package/src/src/generators/models/index.ts +4 -0
  124. package/src/src/generators/models/model-generator.ts +850 -0
  125. package/src/src/generators/models/models-generator.ts +65 -0
  126. package/src/src/generators/models/models.ts +95 -0
  127. package/src/src/generators/services/okhttp3-clients/args.ts +90 -0
  128. package/src/src/generators/services/okhttp3-clients/index.ts +4 -0
  129. package/src/src/generators/services/okhttp3-clients/models.ts +73 -0
  130. package/src/src/generators/services/okhttp3-clients/okhttp3-client-generator.ts +639 -0
  131. package/src/src/generators/services/okhttp3-clients/okhttp3-clients-generator.ts +190 -0
  132. package/src/src/generators/services/okhttp3-clients/refs.ts +59 -0
  133. package/src/src/generators/services/spring-controllers/args.ts +95 -0
  134. package/src/src/generators/services/spring-controllers/index.ts +4 -0
  135. package/src/src/generators/services/spring-controllers/models.ts +76 -0
  136. package/src/src/generators/services/spring-controllers/refs.ts +17 -0
  137. package/src/src/generators/services/spring-controllers/spring-controller-generator.ts +1129 -0
  138. package/src/src/generators/services/spring-controllers/spring-controllers-generator.ts +140 -0
  139. package/src/src/generators/services/spring-reactive-web-clients/args.ts +114 -0
  140. package/src/src/generators/services/spring-reactive-web-clients/index.ts +4 -0
  141. package/src/src/generators/services/spring-reactive-web-clients/models.ts +78 -0
  142. package/src/src/generators/services/spring-reactive-web-clients/refs.ts +11 -0
  143. package/src/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.ts +657 -0
  144. package/src/src/generators/services/spring-reactive-web-clients/spring-reactive-web-clients-generator.ts +125 -0
  145. package/src/src/import-collection.ts +98 -0
  146. package/src/src/types.ts +3 -0
  147. package/src/src/utils.ts +55 -0
@@ -1,7 +1,7 @@
1
1
  import { appendValueGroup, builderTemplate as s, createOverwriteProxy, getSourceDisplayName, notNullish, resolveAnyOfAndAllOf, SourceBuilder, toCasing, } from '@goast/core';
2
2
  import { kt } from '../../../ast/index.js';
3
3
  import { KotlinFileBuilder } from '../../../file-builder.js';
4
- import { getSourceDocLine, modifyString } from '../../../utils.js';
4
+ import { getArrayItemStringEnumSchema, getSourceDocLine, getStringEnumSchema, modifyString } from '../../../utils.js';
5
5
  import { KotlinFileGenerator } from '../../file-generator.js';
6
6
  export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
7
7
  generate(ctx) {
@@ -20,6 +20,17 @@ export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
20
20
  getClientFileContent(ctx, _args) {
21
21
  return appendValueGroup([this.getClientClass(ctx, {})]);
22
22
  }
23
+ /**
24
+ * The `super(…)` arguments, in the base class's own parameter order.
25
+ *
26
+ * The base's order is chosen by `serializer`, at the `@API_CLIENT_PARAMETERS@` placeholder substitution in
27
+ * `okhttp3-clients-generator.ts`, and this list is positional, so the two must be derived from the same
28
+ * flag. Defect 27 was this list being a constant that matched only the `'parameter'` shape while every
29
+ * corpus profile uses the default `'static'`.
30
+ */
31
+ getClientDelegateArguments(serializerAsParameter) {
32
+ return serializerAsParameter ? ['basePath', 'objectMapper', 'client'] : ['basePath', 'client', 'objectMapper'];
33
+ }
23
34
  getClientClass(ctx, _args) {
24
35
  const serializerAsParameter = ctx.config.serializer === 'parameter';
25
36
  return kt.class(this.getApiClientName(ctx, {}), {
@@ -44,7 +55,7 @@ export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
44
55
  }),
45
56
  ], null, {
46
57
  delegateTarget: 'super',
47
- delegateArguments: ['basePath', 'objectMapper', 'client'],
58
+ delegateArguments: this.getClientDelegateArguments(serializerAsParameter),
48
59
  }),
49
60
  companionObject: this.getClientCompanionObject(ctx, {}),
50
61
  members: [
@@ -109,31 +120,31 @@ export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
109
120
  return appendValueGroup([
110
121
  s `val localVarResponse = ${kt.call([toCasing(endpoint.name + '_WithHttpInfo', ctx.config.functionNameCasing)], parameters.map((x) => toCasing(x.name, ctx.config.parameterNameCasing)))}`,
111
122
  '',
112
- s `return when (localVarResponse.responseType) {${s.indent `
123
+ s `return when (localVarResponse.responseType) {${s.indent `
113
124
  ${ctx.refs.responseType()}.Success -> ${responseSchema === undefined
114
125
  ? kt.refs.unit()
115
126
  : s `(localVarResponse as ${ctx.refs.success(['*'])}).data as ${this.getTypeUsage(ctx, {
116
127
  schema: responseSchema,
117
- })}`}
118
- ${ctx.refs.responseType()}.Informational -> throw ${kt.refs.java.unsupportedOperationException()}("Client does not support Informational responses.")
119
- ${ctx.refs.responseType()}.Redirection -> throw ${kt.refs.java.unsupportedOperationException()}("Client does not support Redirection responses.")
120
- ${ctx.refs.responseType()}.ClientError -> {${s.indent `
121
- val localVarError = localVarResponse as ${ctx.refs.clientError(['*'])}
122
- throw ${ctx.refs.clientException()}(${s.indent `
123
- "Client error : \${localVarError.statusCode} \${localVarError.message.orEmpty()}",
124
- localVarError.statusCode,
125
- localVarResponse`}
126
- )`}
127
- }
128
-
129
- ${ctx.refs.responseType()}.ServerError -> {${s.indent `
130
- val localVarError = localVarResponse as ${ctx.refs.serverError(['*'])}
131
- throw ${ctx.refs.serverException()}(${s.indent `
132
- "Server error : \${localVarError.statusCode} \${localVarError.message.orEmpty()}",
133
- localVarError.statusCode,
134
- localVarResponse`}
135
- )`}
136
- }`}
128
+ })}`}
129
+ ${ctx.refs.responseType()}.Informational -> throw ${kt.refs.java.unsupportedOperationException()}("Client does not support Informational responses.")
130
+ ${ctx.refs.responseType()}.Redirection -> throw ${kt.refs.java.unsupportedOperationException()}("Client does not support Redirection responses.")
131
+ ${ctx.refs.responseType()}.ClientError -> {${s.indent `
132
+ val localVarError = localVarResponse as ${ctx.refs.clientError(['*'])}
133
+ throw ${ctx.refs.clientException()}(${s.indent `
134
+ "Client error : \${localVarError.statusCode} \${localVarError.message.orEmpty()}",
135
+ localVarError.statusCode,
136
+ localVarResponse`}
137
+ )`}
138
+ }
139
+
140
+ ${ctx.refs.responseType()}.ServerError -> {${s.indent `
141
+ val localVarError = localVarResponse as ${ctx.refs.serverError(['*'])}
142
+ throw ${ctx.refs.serverException()}(${s.indent `
143
+ "Server error : \${localVarError.statusCode} \${localVarError.message.orEmpty()}",
144
+ localVarError.statusCode,
145
+ localVarResponse`}
146
+ )`}
147
+ }`}
137
148
  }`,
138
149
  ], '\n');
139
150
  }
@@ -212,16 +223,16 @@ export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
212
223
  result.values.push(`val localVariableBody = ${bodyParamName}`);
213
224
  }
214
225
  }
215
- result.values.push(s `val localVariableQuery: ${ctx.refs.multiValueMap()} = ${kt.call([kt.refs.mutableMapOf([kt.refs.string(), kt.refs.list([kt.refs.string()])])], [])}${queryParameters.length === 0 ? '' : s.indent `
216
- .apply {${s.indent `
226
+ result.values.push(s `val localVariableQuery: ${ctx.refs.multiValueMap()} = ${kt.call([kt.refs.mutableMapOf([kt.refs.string(), kt.refs.list([kt.refs.string()])])], [])}${queryParameters.length === 0 ? '' : s.indent `
227
+ .apply {${s.indent `
217
228
  ${appendValueGroup(queryParameters.map((param) => {
218
229
  const paramName = toCasing(param.name, ctx.config.parameterNameCasing);
219
230
  const toString = this.getParameterToString(ctx, { endpoint, parameter: param });
220
231
  const put = s `put(${kt.string(param.name)}, listOf(${paramName}${toString}))`;
221
- return param.required ? put : s `if (${paramName} != null) {${s.indent `
222
- ${put}`}
232
+ return param.required ? put : s `if (${paramName} != null) {${s.indent `
233
+ ${put}`}
223
234
  }`;
224
- }), '\n')}`}
235
+ }), '\n')}`}
225
236
  }`}`);
226
237
  result.values.push('val localVariableHeaders: MutableMap<String, String> = mutableMapOf()');
227
238
  if (((_b = endpoint.requestBody) === null || _b === void 0 ? void 0 : _b.content[0]) !== undefined) {
@@ -230,8 +241,8 @@ export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
230
241
  for (const header of headerParameters) {
231
242
  const paramName = toCasing(header.name, ctx.config.parameterNameCasing);
232
243
  const toString = this.getParameterToString(ctx, { endpoint, parameter: header });
233
- result.values.push(s `if (${paramName} != null) {${s.indent `
234
- localVariableHeaders["${header.name}"] = ${paramName}${toString}`}
244
+ result.values.push(s `if (${paramName} != null) {${s.indent `
245
+ localVariableHeaders["${header.name}"] = ${paramName}${toString}`}
235
246
  }`);
236
247
  }
237
248
  result.values.push(s `return ${kt.call([ctx.refs.requestConfig.infer()], [
@@ -245,13 +256,14 @@ export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
245
256
  return result;
246
257
  }
247
258
  getParameterToString(ctx, args) {
248
- var _a, _b, _c;
259
+ var _a;
249
260
  const { parameter } = args;
250
261
  if (((_a = parameter.schema) === null || _a === void 0 ? void 0 : _a.kind) === 'array') {
251
- return '.joinToString()';
262
+ const itemEnumSchema = getArrayItemStringEnumSchema(parameter.schema);
263
+ const itemEnumType = itemEnumSchema && this.getSchemaType(ctx, { schema: itemEnumSchema });
264
+ return itemEnumType ? s `.joinToString(",", transform = ${itemEnumType}::value)` : '.joinToString(",")';
252
265
  }
253
- else if (((_b = parameter.schema) === null || _b === void 0 ? void 0 : _b.kind) === 'string' && ((_c = parameter.schema.enum) === null || _c === void 0 ? void 0 : _c.length) &&
254
- this.getSchemaType(ctx, { schema: parameter.schema })) {
266
+ else if (getStringEnumSchema(parameter.schema) && this.getSchemaType(ctx, { schema: parameter.schema })) {
255
267
  return '.value';
256
268
  }
257
269
  else {
@@ -289,13 +301,19 @@ export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
289
301
  : this.getTypeUsage(ctx, { schema: content === null || content === void 0 ? void 0 : content.schema, fallback: kt.refs.unit() });
290
302
  }
291
303
  getParameterDefaultValue(ctx, args) {
292
- var _a, _b;
293
- const { parameter } = args;
294
- return !parameter.required
295
- ? ((_a = parameter.schema) === null || _a === void 0 ? void 0 : _a.kind) === 'string' && parameter.schema.enum && parameter.schema.default
296
- ? s `${this.getTypeUsage(ctx, { schema: parameter.schema, nullable: false })}.${toCasing(String(parameter.schema.default), ctx.config.enumValueNameCasing)}`
297
- : kt.toNode((_b = parameter.schema) === null || _b === void 0 ? void 0 : _b.default)
298
- : null;
304
+ const { schema } = args.parameter;
305
+ if (args.parameter.required) {
306
+ return null;
307
+ }
308
+ if (getStringEnumSchema(schema) && (schema === null || schema === void 0 ? void 0 : schema.default)) {
309
+ return s `${this.getTypeUsage(ctx, { schema, nullable: false })}.${this.toEnumValueName(ctx, schema.enum, schema.default)}`;
310
+ }
311
+ const itemEnumSchema = getArrayItemStringEnumSchema(schema);
312
+ if (itemEnumSchema && Array.isArray(schema === null || schema === void 0 ? void 0 : schema.default)) {
313
+ const itemType = this.getTypeUsage(ctx, { schema: itemEnumSchema, nullable: false });
314
+ return kt.call(kt.refs.listOf.infer(), schema.default.map((x) => s `${itemType}.${this.toEnumValueName(ctx, itemEnumSchema.enum, x)}`));
315
+ }
316
+ return kt.toNode(schema === null || schema === void 0 ? void 0 : schema.default);
299
317
  }
300
318
  getTypeUsage(ctx, args) {
301
319
  const { schema, nullable, fallback } = args;
@@ -1 +1 @@
1
- {"version":3,"file":"okhttp3-clients-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/okhttp3-clients/okhttp3-clients-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,UAAU,EAGf,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,qCAAqC,EAGtC,MAAM,aAAa,CAAC;AAKrB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAEL,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACxC,KAAK,oCAAoC,EACzC,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACzC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAiC,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG3G,KAAK,KAAK,GAAG,kCAAkC,CAAC;AAChD,KAAK,MAAM,GAAG,mCAAmC,CAAC;AAClD,KAAK,MAAM,GAAG,mCAAmC,CAAC;AAClD,KAAK,aAAa,GAAG,kCAAkC,CAAC;AACxD,KAAK,OAAO,GAAG,oCAAoC,CAAC;AAEpD,qBAAa,6BAA8B,SAAQ,qCAAqC,CACtF,KAAK,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,OAAO,CACR;IACC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAsC;gBAEnE,uBAAuB,CAAC,EAAE,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;cAKhD,uBAAuB,CAAC,GAAG,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1G,SAAS,CAAC,UAAU,IAAI,MAAM;IAQ9B,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC;IAQzF,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAI1F,SAAS,CAAC,YAAY,CACpB,OAAO,EAAE,uBAAuB,CAAC,4BAA4B,CAAC,EAC9D,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,GACnC,OAAO;IAUV,SAAS,CAAC,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAc9D,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;YAKlC,uBAAuB;CAkFtC"}
1
+ {"version":3,"file":"okhttp3-clients-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/okhttp3-clients/okhttp3-clients-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,UAAU,EAGf,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,qCAAqC,EAGtC,MAAM,aAAa,CAAC;AAKrB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAEL,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACxC,KAAK,oCAAoC,EACzC,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACzC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAiC,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG3G,KAAK,KAAK,GAAG,kCAAkC,CAAC;AAChD,KAAK,MAAM,GAAG,mCAAmC,CAAC;AAClD,KAAK,MAAM,GAAG,mCAAmC,CAAC;AAClD,KAAK,aAAa,GAAG,kCAAkC,CAAC;AACxD,KAAK,OAAO,GAAG,oCAAoC,CAAC;AAEpD,qBAAa,6BAA8B,SAAQ,qCAAqC,CACtF,KAAK,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,OAAO,CACR;IACC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAsC;gBAEnE,uBAAuB,CAAC,EAAE,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;cAKhD,uBAAuB,CAAC,GAAG,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1G,SAAS,CAAC,UAAU,IAAI,MAAM;IAQ9B,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC;IAQzF,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAI1F,SAAS,CAAC,YAAY,CACpB,OAAO,EAAE,uBAAuB,CAAC,4BAA4B,CAAC,EAC9D,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,GACnC,OAAO;IAUV,SAAS,CAAC,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAc9D,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;YAKlC,uBAAuB;CAoFtC"}
@@ -81,6 +81,8 @@ export class KotlinOkHttp3ClientsGenerator extends OpenApiServicesGenerationProv
81
81
  let fileContent = (await getAssetFileContent(sourcePath))
82
82
  .replace(/@PACKAGE_NAME@/g, ctx.infrastructurePackageName);
83
83
  if (file === 'ApiClient.kt') {
84
+ // This order is positional and must agree with the delegate call's own argument order —
85
+ // `getClientDelegateArguments` in okhttp3-client-generator.ts is the other side of that agreement.
84
86
  fileContent = fileContent.replace(/@API_CLIENT_PARAMETERS@/, ctx.config.serializer === 'parameter'
85
87
  ? 'val baseUrl: String, val objectMapper: ObjectMapper, val client: Factory = defaultClient'
86
88
  : 'val baseUrl: String, val client: Factory = defaultClient, val objectMapper: ObjectMapper = Serializer.jacksonObjectMapper');
@@ -100,16 +102,16 @@ export class KotlinOkHttp3ClientsGenerator extends OpenApiServicesGenerationProv
100
102
  const jsonIncludeMember = toCasing(ctx.config.serializerJsonInclude, 'snake');
101
103
  const defaultFactory = springBootVersion === 4
102
104
  // Jackson 3's ObjectMapper is immutable; configuration moved to the (Kotlin) mapper builder.
103
- ? s `${kt.refs.jackson.jacksonMapperBuilder(springBootVersion)}()${s.indent `
104
- .findAndAddModules()
105
- .changeDefaultPropertyInclusion { it.withValueInclusion(${kt.refs.jackson.jsonInclude()}.Include.${jsonIncludeMember}).withContentInclusion(${kt.refs.jackson.jsonInclude()}.Include.${jsonIncludeMember}) }
106
- .configure(${kt.refs.jackson.serializationFeature(springBootVersion)}.WRITE_DATES_AS_TIMESTAMPS, false)
107
- .configure(${kt.refs.jackson.deserializationFeature(springBootVersion)}.FAIL_ON_UNKNOWN_PROPERTIES, false)
105
+ ? s `${kt.refs.jackson.jacksonMapperBuilder(springBootVersion)}()${s.indent `
106
+ .findAndAddModules()
107
+ .changeDefaultPropertyInclusion { it.withValueInclusion(${kt.refs.jackson.jsonInclude()}.Include.${jsonIncludeMember}).withContentInclusion(${kt.refs.jackson.jsonInclude()}.Include.${jsonIncludeMember}) }
108
+ .configure(${kt.refs.jackson.dateTimeFeature()}.WRITE_DATES_AS_TIMESTAMPS, false)
109
+ .configure(${kt.refs.jackson.deserializationFeature(springBootVersion)}.FAIL_ON_UNKNOWN_PROPERTIES, false)
108
110
  .build()`}`
109
- : s `${kt.refs.jackson.jacksonObjectMapper(springBootVersion)}()${s.indent `
110
- .findAndRegisterModules()
111
- .setSerializationInclusion(${kt.refs.jackson.jsonInclude()}.Include.${jsonIncludeMember})
112
- .configure(${kt.refs.jackson.serializationFeature(springBootVersion)}.WRITE_DATES_AS_TIMESTAMPS, false)
111
+ : s `${kt.refs.jackson.jacksonObjectMapper(springBootVersion)}()${s.indent `
112
+ .findAndRegisterModules()
113
+ .setSerializationInclusion(${kt.refs.jackson.jsonInclude()}.Include.${jsonIncludeMember})
114
+ .configure(${kt.refs.jackson.serializationFeature(springBootVersion)}.WRITE_DATES_AS_TIMESTAMPS, false)
113
115
  .configure(${kt.refs.jackson.deserializationFeature(springBootVersion)}.FAIL_ON_UNKNOWN_PROPERTIES, false)`}`;
114
116
  const factory = typeof ctx.config.serializer === 'object'
115
117
  ? ctx.config.serializer.factory
@@ -1 +1 @@
1
- {"version":3,"file":"spring-controller-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/spring-controllers/spring-controller-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EAIrB,KAAK,YAAY,EAGjB,aAAa,EAEd,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,0CAA0C,IAAI,IAAI,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,KAAK,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAE/F,KAAK,OAAO,GAAG,6BAA6B,CAAC;AAC7C,KAAK,MAAM,GAAG,4BAA4B,CAAC;AAC3C,KAAK,OAAO,GAAG,iBAAiB,CAAC;AAIjC,MAAM,WAAW,+BAA+B,CAC9C,OAAO,SAAS,MAAM,GAAG,MAAM;IAE/B,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED,qBAAa,sCAAuC,SAAQ,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAC7F,YAAW,+BAA+B;IACnC,QAAQ,CACb,GAAG,EAAE,6BAA6B,GACjC,YAAY,CAAC,4BAA4B,CAAC;IA4B7C,SAAS,CAAC,wBAAwB,CAChC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,wBAAwB,GAClC,YAAY;IAgBf,SAAS,CAAC,0BAA0B,CAClC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,0BAA0B,GACpC,gBAAgB,CAAC,OAAO,CAAC;IAQ5B,SAAS,CAAC,eAAe,CACvB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,eAAe,GACzB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;IAiBxB,SAAS,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IAQ5E,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;IAgC7E,SAAS,CAAC,6BAA6B,CACrC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,6BAA6B,GACvC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;IAiBvB,SAAS,CAAC,yCAAyC,CACjD,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,WAAW,GACpB,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IA0H3B,SAAS,CAAC,sCAAsC,CAC9C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,6BAA6B,GACvC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;IAsHxB,SAAS,CAAC,iCAAiC,CACzC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,6BAA6B,EAAE,GAC1C,gBAAgB,CAAC,OAAO,CAAC;IA4C5B,SAAS,CAAC,yBAAyB,CACjC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,yBAAyB,GACnC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IA2GpB,SAAS,CAAC,yBAAyB,CACjC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,yBAAyB,GACnC,YAAY;IAgBf,SAAS,CAAC,2BAA2B,CACnC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,2BAA2B,GACrC,gBAAgB,CAAC,OAAO,CAAC;IAS5B,SAAS,CAAC,gBAAgB,CACxB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,gBAAgB,GAC1B,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAsCpB,SAAS,CAAC,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IAuB7E,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;IA2B1E,SAAS,CAAC,gCAAgC,CACxC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,gCAAgC,GAC1C,YAAY;IAkBf,SAAS,CAAC,kCAAkC,CAC1C,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,kCAAkC,GAC5C,gBAAgB,CAAC,OAAO,CAAC;IAS5B,SAAS,CAAC,uBAAuB,CAC/B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,uBAAuB,GACjC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;IASxB,SAAS,CAAC,kCAAkC,CAC1C,GAAG,EAAE,OAAO,GACX,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IAiB3B,SAAS,CAAC,8BAA8B,CACtC,GAAG,EAAE,OAAO,GACX,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;IAoBhC,SAAS,CAAC,qCAAqC,CAC7C,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,qCAAqC,GAC/C,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;IAsDvB,SAAS,CAAC,gBAAgB,CACxB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,gBAAgB,GAC1B,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;IAcnB,SAAS,CAAC,eAAe,CACvB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,eAAe,GACzB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;IAkCnB,SAAS,CAAC,YAAY,CACpB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAC/B,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;IAQnB,SAAS,CAAC,aAAa,CACrB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,aAAa,GACvB,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,SAAS;IAK1C,SAAS,CAAC,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,yBAAyB,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAUlH,SAAS,CAAC,2BAA2B,CACnC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,2BAA2B,GACrC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;IAOrB,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,MAAM;IASpE,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,GAAG,MAAM;IAK3E,SAAS,CAAC,gBAAgB,CACxB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,gBAAgB,GAC1B,MAAM;IAKT,SAAS,CAAC,mBAAmB,CAC3B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,mBAAmB,GAC7B,MAAM;IAKT,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,GAAG,MAAM;IAO1E,SAAS,CAAC,wBAAwB,CAChC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,wBAAwB,GAClC,MAAM;IAQT,SAAS,CAAC,mBAAmB,CAC3B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,IAAI,CAAC,mBAAmB,GAC9B,MAAM;IAIT,SAAS,CAAC,oBAAoB,CAC5B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,IAAI,CAAC,oBAAoB,GAC/B,MAAM;IAOT,SAAS,CAAC,2BAA2B,CACnC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,IAAI,CAAC,2BAA2B,GACtC,MAAM;IAOT,SAAS,CAAC,gBAAgB,CACxB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,gBAAgB,GAC1B,6BAA6B,EAAE;IA2DlC,OAAO,CAAC,kBAAkB;CAkB3B;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAQ1D"}
1
+ {"version":3,"file":"spring-controller-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/spring-controllers/spring-controller-generator.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { appendValueGroup, builderTemplate as s, createOverwriteProxy, getSource
2
2
  import { getReasonPhrase } from 'http-status-codes';
3
3
  import { kt } from '../../../ast/index.js';
4
4
  import { KotlinFileBuilder } from '../../../file-builder.js';
5
- import { getSourceDocLine, modifyString } from '../../../utils.js';
5
+ import { getArrayItemStringEnumSchema, getSourceDocLine, getStringEnumSchema, modifyString } from '../../../utils.js';
6
6
  import { KotlinFileGenerator } from '../../file-generator.js';
7
7
  const strictResponseCustomProperty = 'strict-response';
8
8
  export class DefaultKotlinSpringControllerGenerator extends KotlinFileGenerator {
@@ -114,11 +114,15 @@ export class DefaultKotlinSpringControllerGenerator extends KotlinFileGenerator
114
114
  if (endpoint.responses.length > 0) {
115
115
  annotations.push(kt.annotation(kt.refs.swagger.apiResponses(), [
116
116
  kt.argument.named('value', kt.collectionLiteral(endpoint.responses.map((response) => {
117
- var _a, _b;
117
+ var _a;
118
118
  return kt.call(kt.refs.swagger.apiResponse(), [
119
- kt.argument.named('responseCode', kt.string((_a = response.statusCode) === null || _a === void 0 ? void 0 : _a.toString())),
119
+ kt.argument.named('responseCode',
120
+ // The spec's own response key, not `statusCode`: that field is `undefined` for
121
+ // `default` and every range code, and `kt.string(undefined)` renders the bare token
122
+ // `null`, which is not assignable to this non-nullable annotation element.
123
+ kt.string(response.statusKey)),
120
124
  response.description
121
- ? kt.argument.named('description', kt.string((_b = response.description) === null || _b === void 0 ? void 0 : _b.trim()))
125
+ ? kt.argument.named('description', kt.string((_a = response.description) === null || _a === void 0 ? void 0 : _a.trim()))
122
126
  : null,
123
127
  kt.argument.named('content', kt.collectionLiteral((response.contentOptions.length === 0
124
128
  ? [{ schema: undefined, type: undefined }]
@@ -170,37 +174,46 @@ export class DefaultKotlinSpringControllerGenerator extends KotlinFileGenerator
170
174
  return annotations;
171
175
  }
172
176
  getApiInterfaceEndpointMethodParameter(ctx, endpoint, parameter) {
173
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
174
- const isEnumSchema = ((_a = parameter.schema) === null || _a === void 0 ? void 0 : _a.kind) === 'string' &&
175
- ((_b = parameter.schema.enum) === null || _b === void 0 ? void 0 : _b.length) &&
176
- this.getSchemaType(ctx, { schema: parameter.schema }) &&
177
- !parameter.multipart;
177
+ var _a, _b, _c, _d, _e, _f, _g, _h;
178
+ const enumItemSchema = parameter.multipart ? undefined : getArrayItemStringEnumSchema(parameter.schema);
179
+ const enumSchema = parameter.multipart ? undefined : getStringEnumSchema(parameter.schema);
180
+ const enumValueSchema = enumSchema !== null && enumSchema !== void 0 ? enumSchema : enumItemSchema;
178
181
  const actualType = this.getSchemaType(ctx, { schema: parameter.schema });
179
- const schemaType = isEnumSchema ? kt.refs.string({ nullable: actualType === null || actualType === void 0 ? void 0 : actualType.nullable }) : actualType;
182
+ const isEnumSchema = !!enumValueSchema && !!actualType &&
183
+ !!this.getSchemaType(ctx, { schema: enumValueSchema });
184
+ const schemaType = !isEnumSchema
185
+ ? actualType
186
+ : enumItemSchema
187
+ ? kt.refs.list([kt.refs.string()], { nullable: actualType === null || actualType === void 0 ? void 0 : actualType.nullable })
188
+ : kt.refs.string({ nullable: actualType === null || actualType === void 0 ? void 0 : actualType.nullable });
180
189
  const result = kt.parameter(toCasing(parameter.name, ctx.config.parameterNameCasing), this.getParameterType(ctx, {
181
190
  endpoint,
182
191
  parameter,
183
192
  type: isEnumSchema ? schemaType : undefined,
184
193
  }), {
185
- default: parameter.multipart && ((_c = parameter.schema) === null || _c === void 0 ? void 0 : _c.default) !== undefined
186
- ? kt.toNode((_d = parameter.schema) === null || _d === void 0 ? void 0 : _d.default)
194
+ default: parameter.multipart && ((_a = parameter.schema) === null || _a === void 0 ? void 0 : _a.default) !== undefined
195
+ ? kt.toNode((_b = parameter.schema) === null || _b === void 0 ? void 0 : _b.default)
187
196
  : null,
188
197
  });
189
198
  if (ctx.config.addSwaggerAnnotations) {
190
199
  const annotation = kt.annotation(kt.refs.swagger.parameter(), [
191
200
  parameter.multipart ? kt.argument.named('name', kt.string(parameter.multipart.name)) : null,
192
201
  parameter.description
193
- ? kt.argument.named('description', kt.string((_e = parameter.description) === null || _e === void 0 ? void 0 : _e.trim()))
202
+ ? kt.argument.named('description', kt.string((_c = parameter.description) === null || _c === void 0 ? void 0 : _c.trim()))
194
203
  : null,
195
204
  kt.argument.named('required', parameter.required),
205
+ // Only emitted when set, matching how the model generator marks a deprecated property on `@Schema`.
206
+ // `@Operation` always states `deprecated`, but doing that for every parameter of every endpoint
207
+ // would add `deprecated = false` noise far beyond what the annotation is documenting.
208
+ parameter.deprecated ? kt.argument.named('deprecated', kt.toNode(true)) : null,
196
209
  parameter.target === 'header' ? kt.argument.named('hidden', kt.toNode(true)) : null,
197
210
  ]);
198
211
  const schemaArgs = [];
199
- if (((_f = parameter.schema) === null || _f === void 0 ? void 0 : _f.default) !== undefined) {
200
- schemaArgs.push(kt.argument.named('defaultValue', kt.string(String((_g = parameter.schema) === null || _g === void 0 ? void 0 : _g.default))));
212
+ if (((_d = parameter.schema) === null || _d === void 0 ? void 0 : _d.default) !== undefined) {
213
+ schemaArgs.push(kt.argument.named('defaultValue', kt.string(String((_e = parameter.schema) === null || _e === void 0 ? void 0 : _e.default))));
201
214
  }
202
215
  if (isEnumSchema) {
203
- schemaArgs.push(kt.argument.named('allowableValues', kt.collectionLiteral((_j = (_h = parameter.schema) === null || _h === void 0 ? void 0 : _h.enum) === null || _j === void 0 ? void 0 : _j.map((x) => kt.string(x === null || x === void 0 ? void 0 : x.toString())))));
216
+ schemaArgs.push(kt.argument.named('allowableValues', kt.collectionLiteral((_f = enumValueSchema === null || enumValueSchema === void 0 ? void 0 : enumValueSchema.enum) === null || _f === void 0 ? void 0 : _f.map((x) => kt.string(x === null || x === void 0 ? void 0 : x.toString())))));
204
217
  }
205
218
  if (schemaArgs.length) {
206
219
  annotation.arguments.push(kt.argument.named('schema', kt.call([kt.refs.swagger.schema()], schemaArgs)));
@@ -213,15 +226,17 @@ export class DefaultKotlinSpringControllerGenerator extends KotlinFileGenerator
213
226
  result.annotations.push(kt.annotation(kt.refs.jakarta.valid()));
214
227
  }
215
228
  if (parameter.target === 'body' && !parameter.multipart) {
216
- result.annotations.push(kt.annotation(kt.refs.spring.requestBody()));
229
+ // A bare @RequestBody is required as far as Spring is concerned, so an optional body has to say so in the
230
+ // annotation too - the nullable parameter type alone still answers 400 when the body is missing.
231
+ result.annotations.push(kt.annotation(kt.refs.spring.requestBody(), parameter.required ? [] : [kt.argument.named('required', parameter.required)]));
217
232
  }
218
233
  if (parameter.target === 'query') {
219
234
  const annotation = kt.annotation(kt.refs.spring.requestParam(), [
220
235
  kt.argument.named('value', kt.string(parameter.name)),
221
236
  kt.argument.named('required', parameter.required),
222
237
  ]);
223
- if (((_k = parameter.schema) === null || _k === void 0 ? void 0 : _k.default) !== undefined) {
224
- annotation.arguments.push(kt.argument.named('defaultValue', kt.string(String((_l = parameter.schema) === null || _l === void 0 ? void 0 : _l.default))));
238
+ if (((_g = parameter.schema) === null || _g === void 0 ? void 0 : _g.default) !== undefined) {
239
+ annotation.arguments.push(kt.argument.named('defaultValue', kt.string(String((_h = parameter.schema) === null || _h === void 0 ? void 0 : _h.default))));
225
240
  }
226
241
  result.annotations.push(annotation);
227
242
  }
@@ -248,22 +263,25 @@ export class DefaultKotlinSpringControllerGenerator extends KotlinFileGenerator
248
263
  parameters.forEach((x) => {
249
264
  var _a, _b;
250
265
  const paramName = toCasing(x.name, ctx.config.parameterNameCasing);
251
- if (((_a = x.schema) === null || _a === void 0 ? void 0 : _a.kind) === 'string' &&
252
- ((_b = x.schema.enum) === null || _b === void 0 ? void 0 : _b.length) &&
253
- !x.multipart) {
254
- const type = this.getSchemaType(ctx, { schema: x.schema });
255
- if (type) {
256
- body.values.push(s `val ${paramName} = ${paramName}${type.nullable || (!x.required && !x.schema.default) ? '?' : ''}.let { ${type}.fromValue(it) ?: return ${kt.refs.spring.responseEntity.infer()}.status(${kt.refs.spring.httpStatus()}.BAD_REQUEST).body(${kt.string(`Invalid value for parameter ${x.name}`)}) }`);
257
- }
266
+ if (x.multipart)
267
+ return;
268
+ const enumItemSchema = getArrayItemStringEnumSchema(x.schema);
269
+ const enumValueSchema = (_a = getStringEnumSchema(x.schema)) !== null && _a !== void 0 ? _a : enumItemSchema;
270
+ if (!enumValueSchema)
271
+ return;
272
+ const schemaType = this.getSchemaType(ctx, { schema: x.schema });
273
+ const enumType = this.getSchemaType(ctx, { schema: enumValueSchema });
274
+ if (schemaType && enumType) {
275
+ body.values.push(s `val ${paramName} = ${paramName}${schemaType.nullable || (!x.required && !((_b = x.schema) === null || _b === void 0 ? void 0 : _b.default)) ? '?' : ''}.${enumItemSchema ? 'map' : 'let'} { ${enumType}.fromValue(it) ?: return ${kt.refs.spring.responseEntity.infer()}.status(${kt.refs.spring.httpStatus()}.BAD_REQUEST).body(${kt.string(`Invalid value for parameter ${x.name}`)}) }`);
258
276
  }
259
277
  });
260
- body.values.push(s `try {${s.indent `
278
+ body.values.push(s `try {${s.indent `
261
279
  return ${kt.call([
262
280
  kt.call(kt.reference('getDelegate'), []),
263
281
  toCasing(endpoint.name, ctx.config.functionNameCasing),
264
- ], parameters.map((x) => toCasing(x.name, ctx.config.parameterNameCasing)))}`}
265
- } catch (e: ${kt.refs.throwable()}) {${s.indent `
266
- return getExceptionHandler()?.handleApiException(e) ?: throw e`}
282
+ ], parameters.map((x) => toCasing(x.name, ctx.config.parameterNameCasing)))}`}
283
+ } catch (e: ${kt.refs.throwable()}) {${s.indent `
284
+ return getExceptionHandler()?.handleApiException(e) ?: throw e`}
267
285
  }`);
268
286
  return body;
269
287
  }
@@ -325,11 +343,11 @@ export class DefaultKotlinSpringControllerGenerator extends KotlinFileGenerator
325
343
  hasResponseBody ? kt.argument('body') : kt.toNode(null),
326
344
  kt.toNode(code),
327
345
  contentType
328
- ? s `${kt.refs.spring.linkedMultiValueMap([kt.refs.string(), kt.refs.string()])}().also {
329
- if (headers != null) {
330
- it.putAll(headers)
331
- }
332
- it.addIfAbsent("Content-Type", ${kt.string(contentType)})
346
+ ? s `${kt.refs.spring.linkedMultiValueMap([kt.refs.string(), kt.refs.string()])}().also {
347
+ if (headers != null) {
348
+ it.putAll(headers)
349
+ }
350
+ it.addIfAbsent("Content-Type", ${kt.string(contentType)})
333
351
  }`
334
352
  : kt.argument('headers'),
335
353
  ]),
@@ -10,6 +10,9 @@ export type GetEndpointMembers = {
10
10
  export type GetEndpointFunctionName = {
11
11
  endpoint: ApiEndpoint;
12
12
  };
13
+ export type GetEndpointDeprecatedAnnotations = {
14
+ endpoint: ApiEndpoint;
15
+ };
13
16
  export type GetEndpointFunction = {
14
17
  endpoint: ApiEndpoint;
15
18
  parameters: ApiParameterWithMultipartInfo[];
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/spring-reactive-web-clients/args.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAE1C,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC,MAAM,MAAM,kBAAkB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,6BAA6B,EAAE,CAAA;CAAE,CAAC;AAExG,MAAM,MAAM,uBAAuB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAEhE,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAEvE,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,yBAAyB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,0BAA0B,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,6BAA6B,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAEhD,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,6BAA6B,CAAA;CAAE,CAAC;AAEnG,MAAM,MAAM,kBAAkB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAE3D,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,QAAQ,SAAS,aAAa,IAAI;IACzD,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,uBAAuB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAEhE,MAAM,MAAM,yBAAyB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAElD,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/spring-reactive-web-clients/args.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,13 @@ export declare class DefaultKotlinSpringReactiveWebClientGenerator extends Kotli
17
17
  protected getRequestsObject(ctx: Context, args: Args.GetRequestsObject): kt.Object<Builder>;
18
18
  protected getEndpointMembers(ctx: Context, args: Args.GetEndpointMembers): kt.ObjectMember<Builder>[];
19
19
  protected getEndpointFunctionName(ctx: Context, args: Args.GetEndpointFunctionName): string;
20
+ /**
21
+ * The Kotlin `@Deprecated` annotation for a deprecated operation, or nothing for a supported one. Every
22
+ * function generated for the operation carries it, matching what the OkHttp3 client generator does for
23
+ * the same input — including the empty message, which is what `kotlin.Deprecated` requires as its first
24
+ * positional argument.
25
+ */
26
+ protected getEndpointDeprecatedAnnotations(_ctx: Context, args: Args.GetEndpointDeprecatedAnnotations): kt.Annotation<Builder>[];
20
27
  protected getEndpointFunction(ctx: Context, args: Args.GetEndpointFunction): kt.Function<Builder>;
21
28
  protected getEndpointFunctionBody(ctx: Context, args: Args.GetEndpointFunctionBody): AppendValueGroup<Builder>;
22
29
  protected getEndpointFunctionWithHandler(ctx: Context, args: Args.GetEndpointFunctionWithHandler): kt.Function<Builder>;
@@ -1 +1 @@
1
- {"version":3,"file":"spring-reactive-web-client-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EAIrB,KAAK,YAAY,EAGjB,aAAa,EAEd,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,iDAAiD,IAAI,IAAI,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,KAAK,EACV,6CAA6C,EAC7C,4CAA4C,EAC7C,MAAM,aAAa,CAAC;AAErB,KAAK,OAAO,GAAG,6CAA6C,CAAC;AAC7D,KAAK,MAAM,GAAG,4CAA4C,CAAC;AAC3D,KAAK,OAAO,GAAG,iBAAiB,CAAC;AAEjC,MAAM,WAAW,sCAAsC,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACrF,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED,qBAAa,6CAA8C,SAAQ,mBAAmB,CAAC,OAAO,EAAE,MAAM,CACpG,YAAW,sCAAsC;IAC1C,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC;IAoBnD,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAKxG,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;IAS3F,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;IAYrG,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,uBAAuB,GAAG,MAAM;IAK3F,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;IAoBjG,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,uBAAuB,GAAG,gBAAgB,CAAC,OAAO,CAAC;IA6B9G,SAAS,CAAC,8BAA8B,CACtC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,8BAA8B,GACxC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;IA8BvB,SAAS,CAAC,kCAAkC,CAC1C,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,kCAAkC,GAC5C,gBAAgB,CAAC,OAAO,CAAC;IAiB5B,SAAS,CAAC,8BAA8B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,8BAA8B,GAAG,MAAM;IAKzG,SAAS,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;IAmB/G,SAAS,CAAC,8BAA8B,CACtC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,8BAA8B,GACxC,gBAAgB,CAAC,OAAO,CAAC;IA8G5B;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAoC5F,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI;IAe/G,SAAS,CAAC,yBAAyB,CACjC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,yBAAyB,GACnC,gBAAgB,CAAC,OAAO,CAAC,GAAG,IAAI;IAmBnC,SAAS,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,0BAA0B,GAAG,MAAM;IAKjG,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;IAiBvG,SAAS,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,0BAA0B,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAsBpH,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAchG,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;IAWvF,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI;IAY/G,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;IASxF,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,GAAG,MAAM;IAOzE,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,GAAG,SAAS,GAAG,SAAS;IAM/F,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,SAAS;IAKxG,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,GAAG,6BAA6B,EAAE;IAmDtG,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,uBAAuB,GAAG,MAAM;IAU3F,SAAS,CAAC,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,yBAAyB,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAUlH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,MAAM;IAQpE,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,GAAG,MAAM;IAK3E,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,MAAM;IAMnE,SAAS,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,qBAAqB,GAAG,MAAM;IAIvF,OAAO,CAAC,kBAAkB;CAgB3B"}
1
+ {"version":3,"file":"spring-reactive-web-client-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EAIrB,KAAK,YAAY,EAGjB,aAAa,EAEd,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,iDAAiD,IAAI,IAAI,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,KAAK,EACV,6CAA6C,EAC7C,4CAA4C,EAC7C,MAAM,aAAa,CAAC;AAErB,KAAK,OAAO,GAAG,6CAA6C,CAAC;AAC7D,KAAK,MAAM,GAAG,4CAA4C,CAAC;AAC3D,KAAK,OAAO,GAAG,iBAAiB,CAAC;AAEjC,MAAM,WAAW,sCAAsC,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACrF,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED,qBAAa,6CAA8C,SAAQ,mBAAmB,CAAC,OAAO,EAAE,MAAM,CACpG,YAAW,sCAAsC;IAC1C,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC;IAoBnD,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAKxG,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;IAS3F,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;IAYrG,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,uBAAuB,GAAG,MAAM;IAK3F;;;;;OAKG;IACH,SAAS,CAAC,gCAAgC,CACxC,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,IAAI,CAAC,gCAAgC,GAC1C,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IAI3B,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;IAqBjG,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,uBAAuB,GAAG,gBAAgB,CAAC,OAAO,CAAC;IA6B9G,SAAS,CAAC,8BAA8B,CACtC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,8BAA8B,GACxC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;IA8BvB,SAAS,CAAC,kCAAkC,CAC1C,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,kCAAkC,GAC5C,gBAAgB,CAAC,OAAO,CAAC;IAiB5B,SAAS,CAAC,8BAA8B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,8BAA8B,GAAG,MAAM;IAKzG,SAAS,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;IAoB/G,SAAS,CAAC,8BAA8B,CACtC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,8BAA8B,GACxC,gBAAgB,CAAC,OAAO,CAAC;IA8G5B;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAoC5F,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI;IAe/G,SAAS,CAAC,yBAAyB,CACjC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,yBAAyB,GACnC,gBAAgB,CAAC,OAAO,CAAC,GAAG,IAAI;IAqBnC,SAAS,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,0BAA0B,GAAG,MAAM;IAKjG,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;IAkBvG,SAAS,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,0BAA0B,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAsBpH,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAehG,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;IAWvF,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI;IAyB/G,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;IASxF,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,GAAG,MAAM;IAOzE,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,GAAG,SAAS,GAAG,SAAS;IAM/F,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,SAAS;IAKxG,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,GAAG,6BAA6B,EAAE;IAmDtG,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,uBAAuB,GAAG,MAAM;IAU3F,SAAS,CAAC,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,yBAAyB,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAUlH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,MAAM;IAQpE,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,GAAG,MAAM;IAK3E,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,MAAM;IAMnE,SAAS,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,qBAAqB,GAAG,MAAM;IAIvF,OAAO,CAAC,kBAAkB;CAgB3B"}
@@ -1,7 +1,7 @@
1
1
  import { appendValueGroup, builderTemplate as s, createOverwriteProxy, getSourceDisplayName, notNullish, resolveAnyOfAndAllOf, SourceBuilder, toCasing, } from '@goast/core';
2
2
  import { kt } from '../../../ast/index.js';
3
3
  import { KotlinFileBuilder } from '../../../file-builder.js';
4
- import { getSourceDocLine, modifyString } from '../../../utils.js';
4
+ import { getArrayItemStringEnumSchema, getSourceDocLine, getStringEnumSchema, modifyString } from '../../../utils.js';
5
5
  import { KotlinFileGenerator } from '../../file-generator.js';
6
6
  export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGenerator {
7
7
  generate(ctx) {
@@ -42,11 +42,21 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
42
42
  const { endpoint } = args;
43
43
  return toCasing(endpoint.name, ctx.config.functionNameCasing);
44
44
  }
45
+ /**
46
+ * The Kotlin `@Deprecated` annotation for a deprecated operation, or nothing for a supported one. Every
47
+ * function generated for the operation carries it, matching what the OkHttp3 client generator does for
48
+ * the same input — including the empty message, which is what `kotlin.Deprecated` requires as its first
49
+ * positional argument.
50
+ */
51
+ getEndpointDeprecatedAnnotations(_ctx, args) {
52
+ return args.endpoint.deprecated ? [kt.annotation(kt.refs.deprecated(), [kt.argument(kt.string(''))])] : [];
53
+ }
45
54
  getEndpointFunction(ctx, args) {
46
55
  const { endpoint, parameters, responseSchema } = args;
47
56
  const functionName = this.getEndpointFunctionName(ctx, { endpoint });
48
57
  return kt.function(functionName, {
49
58
  doc: kt.doc(this.getEndpointDocDescription(ctx, { endpoint })),
59
+ annotations: this.getEndpointDeprecatedAnnotations(ctx, { endpoint }),
50
60
  suspend: true,
51
61
  receiverType: kt.refs.springReactive.webClient(),
52
62
  parameters: parameters.map((parameter) => kt.parameter(toCasing(parameter.name, ctx.config.parameterNameCasing), this.getParameterType(ctx, { endpoint, parameter }), { default: this.getParameterDefaultValue(ctx, { endpoint, parameter }) })),
@@ -82,11 +92,11 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
82
92
  const functionName = this.getEndpointFunctionName(ctx, { endpoint });
83
93
  return kt.function(functionName, {
84
94
  doc: kt.doc(this.getEndpointDocDescription(ctx, { endpoint })),
95
+ annotations: this.getEndpointDeprecatedAnnotations(ctx, { endpoint }),
85
96
  suspend: true,
86
- // Spring 7's `WebClient.awaitExchange` is `<V : Any>`, so the `<T>` overloads need an `Any` bound to infer.
87
- generics: [
88
- kt.genericParameter('T', ctx.config.springBootVersion === 4 ? { constraint: kt.refs.any() } : undefined),
89
- ],
97
+ // `WebClient.awaitExchange` is `<V : Any>` on both Spring lines, so the `<T>` overload needs the bound
98
+ // unconditionally. Defect 28 scoped it to Spring Boot 4, leaving every Boot 3 unit uncompilable.
99
+ generics: [kt.genericParameter('T', { constraint: kt.refs.any() })],
90
100
  receiverType: kt.refs.springReactive.webClient(),
91
101
  parameters: [
92
102
  ...parameters.map((parameter) => kt.parameter(toCasing(parameter.name, ctx.config.parameterNameCasing), this.getParameterType(ctx, { endpoint, parameter }), { default: this.getParameterDefaultValue(ctx, { endpoint, parameter }) })),
@@ -116,6 +126,7 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
116
126
  const functionName = this.getEndpointRequestFunctionName(ctx, { endpoint });
117
127
  return kt.function(functionName, {
118
128
  doc: kt.doc(this.getEndpointDocDescription(ctx, { endpoint })),
129
+ annotations: this.getEndpointDeprecatedAnnotations(ctx, { endpoint }),
119
130
  receiverType: kt.refs.springReactive.webClient(),
120
131
  parameters: parameters.map((parameter) => kt.parameter(toCasing(parameter.name, ctx.config.parameterNameCasing), this.getParameterType(ctx, { endpoint, parameter }), { default: this.getParameterDefaultValue(ctx, { endpoint, parameter }) })),
121
132
  returnType: kt.refs.springReactive.requestHeadersSpec(['*']),
@@ -189,9 +200,9 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
189
200
  const parameterName = toCasing(p.name, ctx.config.parameterNameCasing);
190
201
  const toString = this.getParameterToString(ctx, { endpoint, parameter: p });
191
202
  return p.required && !((_a = p.schema) === null || _a === void 0 ? void 0 : _a.nullable)
192
- ? kt.call(['headers', 'add'], [kt.string(p.name), parameterName + toString])
203
+ ? kt.call(['headers', 'add'], [kt.string(p.name), s `${parameterName}${toString}`])
193
204
  : kt.call([`${parameterName}?`, 'also'], [
194
- kt.lambda([], kt.call(['headers', 'add'], [kt.string(p.name), 'it' + toString]), {
205
+ kt.lambda([], kt.call(['headers', 'add'], [kt.string(p.name), s `it${toString}`]), {
195
206
  singleline: true,
196
207
  }),
197
208
  ]);
@@ -246,9 +257,11 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
246
257
  const parameterName = toCasing(p.name, ctx.config.parameterNameCasing);
247
258
  const toString = this.getParameterToString(ctx, { endpoint, parameter: p });
248
259
  return p.required && !((_a = p.schema) === null || _a === void 0 ? void 0 : _a.nullable)
249
- ? kt.call('queryParam', [kt.string(p.name), parameterName + toString])
260
+ ? kt.call('queryParam', [kt.string(p.name), s `${parameterName}${toString}`])
250
261
  : kt.call([`${parameterName}?`, 'also'], [
251
- kt.lambda([], kt.call('queryParam', [kt.string(p.name), 'it' + toString]), { singleline: true }),
262
+ kt.lambda([], kt.call('queryParam', [kt.string(p.name), s `it${toString}`]), {
263
+ singleline: true,
264
+ }),
252
265
  ]);
253
266
  }), '\n');
254
267
  }
@@ -260,6 +273,7 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
260
273
  const { endpoint, parameters } = args;
261
274
  const functionName = this.getEndpointUriFunctionName(ctx, { endpoint });
262
275
  return kt.function(functionName, {
276
+ annotations: this.getEndpointDeprecatedAnnotations(ctx, { endpoint }),
263
277
  parameters: parameters.filter((p) => p.target === 'path' || p.target === 'query').map((parameter) => kt.parameter(toCasing(parameter.name, ctx.config.parameterNameCasing), this.getParameterType(ctx, { endpoint, parameter }), { default: this.getParameterDefaultValue(ctx, { endpoint, parameter }) })),
264
278
  returnType: kt.refs.string(),
265
279
  body: this.getEndpointUriFunctionBody(ctx, { endpoint, parameters }),
@@ -281,13 +295,14 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
281
295
  return result;
282
296
  }
283
297
  getParameterToString(ctx, args) {
284
- var _a, _b, _c;
298
+ var _a;
285
299
  const { parameter } = args;
286
300
  if (((_a = parameter.schema) === null || _a === void 0 ? void 0 : _a.kind) === 'array') {
287
- return '.joinToString()';
301
+ const itemEnumSchema = getArrayItemStringEnumSchema(parameter.schema);
302
+ const itemEnumType = itemEnumSchema && this.getSchemaType(ctx, { schema: itemEnumSchema });
303
+ return itemEnumType ? s `.joinToString(",", transform = ${itemEnumType}::value)` : '.joinToString(",")';
288
304
  }
289
- else if (((_b = parameter.schema) === null || _b === void 0 ? void 0 : _b.kind) === 'string' && ((_c = parameter.schema.enum) === null || _c === void 0 ? void 0 : _c.length) &&
290
- this.getSchemaType(ctx, { schema: parameter.schema })) {
305
+ else if (getStringEnumSchema(parameter.schema) && this.getSchemaType(ctx, { schema: parameter.schema })) {
291
306
  return '.value';
292
307
  }
293
308
  else {
@@ -306,13 +321,19 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
306
321
  });
307
322
  }
308
323
  getParameterDefaultValue(ctx, args) {
309
- var _a, _b;
310
- const { parameter } = args;
311
- return !parameter.required
312
- ? ((_a = parameter.schema) === null || _a === void 0 ? void 0 : _a.kind) === 'string' && parameter.schema.enum && parameter.schema.default
313
- ? s `${this.getTypeUsage(ctx, { schema: parameter.schema, nullable: false })}.${toCasing(String(parameter.schema.default), ctx.config.enumValueNameCasing)}`
314
- : kt.toNode((_b = parameter.schema) === null || _b === void 0 ? void 0 : _b.default)
315
- : null;
324
+ const { schema } = args.parameter;
325
+ if (args.parameter.required) {
326
+ return null;
327
+ }
328
+ if (getStringEnumSchema(schema) && (schema === null || schema === void 0 ? void 0 : schema.default)) {
329
+ return s `${this.getTypeUsage(ctx, { schema, nullable: false })}.${this.toEnumValueName(ctx, schema.enum, schema.default)}`;
330
+ }
331
+ const itemEnumSchema = getArrayItemStringEnumSchema(schema);
332
+ if (itemEnumSchema && Array.isArray(schema === null || schema === void 0 ? void 0 : schema.default)) {
333
+ const itemType = this.getTypeUsage(ctx, { schema: itemEnumSchema, nullable: false });
334
+ return kt.call(kt.refs.listOf.infer(), schema.default.map((x) => s `${itemType}.${this.toEnumValueName(ctx, itemEnumSchema.enum, x)}`));
335
+ }
336
+ return kt.toNode(schema === null || schema === void 0 ? void 0 : schema.default);
316
337
  }
317
338
  getTypeUsage(ctx, args) {
318
339
  const { schema, nullable, fallback } = args;