@redocly/client-generator 0.0.0-snapshot.1786626470 → 0.0.0-snapshot.1786811652

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 (291) hide show
  1. package/README.md +30 -19
  2. package/lib/emitters/client-assembly.d.ts.map +1 -1
  3. package/lib/emitters/client-assembly.js +161 -45
  4. package/lib/emitters/client-assembly.js.map +1 -1
  5. package/lib/emitters/descriptor.d.ts +12 -3
  6. package/lib/emitters/descriptor.d.ts.map +1 -1
  7. package/lib/emitters/descriptor.js +120 -32
  8. package/lib/emitters/descriptor.js.map +1 -1
  9. package/lib/emitters/emit-options.d.ts +1 -14
  10. package/lib/emitters/emit-options.d.ts.map +1 -1
  11. package/lib/emitters/emit-options.js +1 -1
  12. package/lib/emitters/emit-options.js.map +1 -1
  13. package/lib/emitters/faker.d.ts +3 -3
  14. package/lib/emitters/faker.d.ts.map +1 -1
  15. package/lib/emitters/faker.js +107 -66
  16. package/lib/emitters/faker.js.map +1 -1
  17. package/lib/emitters/identifier.d.ts.map +1 -1
  18. package/lib/emitters/identifier.js +0 -10
  19. package/lib/emitters/identifier.js.map +1 -1
  20. package/lib/emitters/inline-runtime.d.ts +0 -2
  21. package/lib/emitters/inline-runtime.d.ts.map +1 -1
  22. package/lib/emitters/inline-runtime.js +45 -14
  23. package/lib/emitters/inline-runtime.js.map +1 -1
  24. package/lib/emitters/jsdoc.d.ts +0 -2
  25. package/lib/emitters/jsdoc.d.ts.map +1 -1
  26. package/lib/emitters/jsdoc.js +1 -4
  27. package/lib/emitters/jsdoc.js.map +1 -1
  28. package/lib/emitters/mock.d.ts.map +1 -1
  29. package/lib/emitters/mock.js +123 -88
  30. package/lib/emitters/mock.js.map +1 -1
  31. package/lib/emitters/operation-aliases.d.ts +27 -0
  32. package/lib/emitters/operation-aliases.d.ts.map +1 -0
  33. package/lib/emitters/operation-aliases.js +150 -0
  34. package/lib/emitters/operation-aliases.js.map +1 -0
  35. package/lib/emitters/operation-types.d.ts +24 -1
  36. package/lib/emitters/operation-types.d.ts.map +1 -1
  37. package/lib/emitters/operation-types.js +107 -1
  38. package/lib/emitters/operation-types.js.map +1 -1
  39. package/lib/emitters/operations.d.ts +10 -2
  40. package/lib/emitters/operations.d.ts.map +1 -1
  41. package/lib/emitters/operations.js +34 -1
  42. package/lib/emitters/operations.js.map +1 -1
  43. package/lib/emitters/pagination.d.ts +13 -6
  44. package/lib/emitters/pagination.d.ts.map +1 -1
  45. package/lib/emitters/pagination.js +49 -11
  46. package/lib/emitters/pagination.js.map +1 -1
  47. package/lib/emitters/reserved-names.d.ts +1 -4
  48. package/lib/emitters/reserved-names.d.ts.map +1 -1
  49. package/lib/emitters/reserved-names.js +27 -16
  50. package/lib/emitters/reserved-names.js.map +1 -1
  51. package/lib/emitters/response-headers.d.ts +6 -5
  52. package/lib/emitters/response-headers.d.ts.map +1 -1
  53. package/lib/emitters/response-headers.js +63 -13
  54. package/lib/emitters/response-headers.js.map +1 -1
  55. package/lib/emitters/runtime-sources.d.ts +0 -20
  56. package/lib/emitters/runtime-sources.d.ts.map +1 -1
  57. package/lib/emitters/runtime-sources.js +0 -130
  58. package/lib/emitters/runtime-sources.js.map +1 -1
  59. package/lib/emitters/setup-bake.d.ts.map +1 -1
  60. package/lib/emitters/setup-bake.js +1 -10
  61. package/lib/emitters/setup-bake.js.map +1 -1
  62. package/lib/emitters/sse.d.ts +5 -3
  63. package/lib/emitters/sse.d.ts.map +1 -1
  64. package/lib/emitters/sse.js +11 -1
  65. package/lib/emitters/sse.js.map +1 -1
  66. package/lib/emitters/swr.d.ts.map +1 -1
  67. package/lib/emitters/swr.js +65 -34
  68. package/lib/emitters/swr.js.map +1 -1
  69. package/lib/emitters/tanstack-query.d.ts.map +1 -1
  70. package/lib/emitters/tanstack-query.js +5 -3
  71. package/lib/emitters/tanstack-query.js.map +1 -1
  72. package/lib/emitters/transformers.d.ts.map +1 -1
  73. package/lib/emitters/transformers.js +162 -123
  74. package/lib/emitters/transformers.js.map +1 -1
  75. package/lib/emitters/ts.d.ts +42 -0
  76. package/lib/emitters/ts.d.ts.map +1 -0
  77. package/lib/emitters/ts.js +116 -0
  78. package/lib/emitters/ts.js.map +1 -0
  79. package/lib/emitters/type-guards.d.ts +19 -2
  80. package/lib/emitters/type-guards.d.ts.map +1 -1
  81. package/lib/emitters/type-guards.js +52 -18
  82. package/lib/emitters/type-guards.js.map +1 -1
  83. package/lib/emitters/types.d.ts +14 -1
  84. package/lib/emitters/types.d.ts.map +1 -1
  85. package/lib/emitters/types.js +124 -4
  86. package/lib/emitters/types.js.map +1 -1
  87. package/lib/emitters/wrapper-support.d.ts +23 -10
  88. package/lib/emitters/wrapper-support.d.ts.map +1 -1
  89. package/lib/emitters/wrapper-support.js +53 -23
  90. package/lib/emitters/wrapper-support.js.map +1 -1
  91. package/lib/emitters/zod.d.ts +3 -2
  92. package/lib/emitters/zod.d.ts.map +1 -1
  93. package/lib/emitters/zod.js +148 -115
  94. package/lib/emitters/zod.js.map +1 -1
  95. package/lib/generate.d.ts +4 -5
  96. package/lib/generate.d.ts.map +1 -1
  97. package/lib/generate.js +103 -22
  98. package/lib/generate.js.map +1 -1
  99. package/lib/generators/index.d.ts +2 -2
  100. package/lib/generators/index.d.ts.map +1 -1
  101. package/lib/generators/index.js +53 -33
  102. package/lib/generators/index.js.map +1 -1
  103. package/lib/generators/{mock/index.d.ts → mock.d.ts} +2 -2
  104. package/lib/generators/mock.d.ts.map +1 -0
  105. package/lib/generators/{mock/index.js → mock.js} +4 -4
  106. package/lib/generators/mock.js.map +1 -0
  107. package/lib/generators/resolve.d.ts.map +1 -1
  108. package/lib/generators/resolve.js +11 -73
  109. package/lib/generators/resolve.js.map +1 -1
  110. package/lib/generators/{typescript/index.d.ts → sdk.d.ts} +3 -6
  111. package/lib/generators/sdk.d.ts.map +1 -0
  112. package/lib/generators/sdk.js +26 -0
  113. package/lib/generators/sdk.js.map +1 -0
  114. package/lib/generators/{swr/index.d.ts → swr.d.ts} +3 -3
  115. package/lib/generators/swr.d.ts.map +1 -0
  116. package/lib/generators/{swr/index.js → swr.js} +5 -5
  117. package/lib/generators/swr.js.map +1 -0
  118. package/lib/generators/{tanstack-query/index.d.ts → tanstack-query.d.ts} +3 -3
  119. package/lib/generators/tanstack-query.d.ts.map +1 -0
  120. package/lib/generators/{tanstack-query/index.js → tanstack-query.js} +5 -5
  121. package/lib/generators/{tanstack-query/index.js.map → tanstack-query.js.map} +1 -1
  122. package/lib/generators/{transformers/index.d.ts → transformers.d.ts} +2 -2
  123. package/lib/generators/transformers.d.ts.map +1 -0
  124. package/lib/generators/{transformers/index.js → transformers.js} +4 -4
  125. package/lib/generators/transformers.js.map +1 -0
  126. package/lib/generators/types.d.ts +4 -68
  127. package/lib/generators/types.d.ts.map +1 -1
  128. package/lib/generators/{zod/index.d.ts → zod.d.ts} +2 -2
  129. package/lib/generators/zod.d.ts.map +1 -0
  130. package/lib/generators/{zod/index.js → zod.js} +4 -4
  131. package/lib/generators/zod.js.map +1 -0
  132. package/lib/index.d.ts +0 -3
  133. package/lib/index.d.ts.map +1 -1
  134. package/lib/index.js +2 -7
  135. package/lib/index.js.map +1 -1
  136. package/lib/intermediate-representation/build.d.ts.map +1 -1
  137. package/lib/intermediate-representation/build.js +2 -31
  138. package/lib/intermediate-representation/build.js.map +1 -1
  139. package/lib/intermediate-representation/model.d.ts +1 -13
  140. package/lib/intermediate-representation/model.d.ts.map +1 -1
  141. package/lib/intermediate-representation/model.js.map +1 -1
  142. package/lib/intermediate-representation/sanitize-identifiers.d.ts.map +1 -1
  143. package/lib/intermediate-representation/sanitize-identifiers.js +6 -33
  144. package/lib/intermediate-representation/sanitize-identifiers.js.map +1 -1
  145. package/lib/plugin.d.ts +0 -1
  146. package/lib/plugin.d.ts.map +1 -1
  147. package/lib/plugin.js +7 -8
  148. package/lib/plugin.js.map +1 -1
  149. package/lib/types.d.ts +3 -25
  150. package/lib/types.d.ts.map +1 -1
  151. package/package.json +4 -10
  152. package/eject-assets/AGENTS.md +0 -123
  153. package/eject-assets/generators/cli-docs.mjs +0 -594
  154. package/eject-assets/generators/cli.mjs +0 -488
  155. package/eject-assets/generators/go.mjs +0 -831
  156. package/eject-assets/generators/mock.mjs +0 -689
  157. package/eject-assets/generators/php.mjs +0 -805
  158. package/eject-assets/generators/python.mjs +0 -670
  159. package/eject-assets/generators/swr.mjs +0 -267
  160. package/eject-assets/generators/tanstack-query.mjs +0 -632
  161. package/eject-assets/generators/transformers.mjs +0 -403
  162. package/eject-assets/generators/typescript.mjs +0 -1615
  163. package/eject-assets/generators/zod.mjs +0 -520
  164. package/eject-assets/skills/cli-docs-generator/SKILL.md +0 -58
  165. package/eject-assets/skills/cli-generator/SKILL.md +0 -99
  166. package/eject-assets/skills/client-generators/SKILL.md +0 -128
  167. package/eject-assets/skills/go-generator/SKILL.md +0 -81
  168. package/eject-assets/skills/mock-generator/SKILL.md +0 -45
  169. package/eject-assets/skills/php-generator/SKILL.md +0 -97
  170. package/eject-assets/skills/python-generator/SKILL.md +0 -70
  171. package/eject-assets/skills/swr-generator/SKILL.md +0 -44
  172. package/eject-assets/skills/tanstack-query-generator/SKILL.md +0 -48
  173. package/eject-assets/skills/transformers-generator/SKILL.md +0 -43
  174. package/eject-assets/skills/typescript-generator/SKILL.md +0 -65
  175. package/eject-assets/skills/zod-generator/SKILL.md +0 -49
  176. package/lib/authoring/index.d.ts +0 -9
  177. package/lib/authoring/index.d.ts.map +0 -1
  178. package/lib/authoring/index.js +0 -29
  179. package/lib/authoring/index.js.map +0 -1
  180. package/lib/authoring/naming.d.ts +0 -19
  181. package/lib/authoring/naming.d.ts.map +0 -1
  182. package/lib/authoring/naming.js +0 -80
  183. package/lib/authoring/naming.js.map +0 -1
  184. package/lib/authoring/options.d.ts +0 -9
  185. package/lib/authoring/options.d.ts.map +0 -1
  186. package/lib/authoring/options.js +0 -5
  187. package/lib/authoring/options.js.map +0 -1
  188. package/lib/authoring/pagination.d.ts +0 -18
  189. package/lib/authoring/pagination.d.ts.map +0 -1
  190. package/lib/authoring/pagination.js +0 -39
  191. package/lib/authoring/pagination.js.map +0 -1
  192. package/lib/authoring/printer.d.ts +0 -16
  193. package/lib/authoring/printer.d.ts.map +0 -1
  194. package/lib/authoring/printer.js +0 -36
  195. package/lib/authoring/printer.js.map +0 -1
  196. package/lib/authoring/schema.d.ts +0 -49
  197. package/lib/authoring/schema.d.ts.map +0 -1
  198. package/lib/authoring/schema.js +0 -185
  199. package/lib/authoring/schema.js.map +0 -1
  200. package/lib/emitters/cli-docs.d.ts +0 -17
  201. package/lib/emitters/cli-docs.d.ts.map +0 -1
  202. package/lib/emitters/cli-docs.js +0 -186
  203. package/lib/emitters/cli-docs.js.map +0 -1
  204. package/lib/emitters/cli.d.ts +0 -38
  205. package/lib/emitters/cli.d.ts.map +0 -1
  206. package/lib/emitters/cli.js +0 -230
  207. package/lib/emitters/cli.js.map +0 -1
  208. package/lib/emitters/go-runtime-sources.d.ts +0 -2
  209. package/lib/emitters/go-runtime-sources.d.ts.map +0 -1
  210. package/lib/emitters/go-runtime-sources.js +0 -3
  211. package/lib/emitters/go-runtime-sources.js.map +0 -1
  212. package/lib/emitters/mock-value.d.ts +0 -33
  213. package/lib/emitters/mock-value.d.ts.map +0 -1
  214. package/lib/emitters/mock-value.js +0 -47
  215. package/lib/emitters/mock-value.js.map +0 -1
  216. package/lib/emitters/php-runtime-sources.d.ts +0 -2
  217. package/lib/emitters/php-runtime-sources.d.ts.map +0 -1
  218. package/lib/emitters/php-runtime-sources.js +0 -3
  219. package/lib/emitters/php-runtime-sources.js.map +0 -1
  220. package/lib/emitters/python-runtime-sources.d.ts +0 -12
  221. package/lib/emitters/python-runtime-sources.d.ts.map +0 -1
  222. package/lib/emitters/python-runtime-sources.js +0 -12
  223. package/lib/emitters/python-runtime-sources.js.map +0 -1
  224. package/lib/emitters/render-client.d.ts +0 -31
  225. package/lib/emitters/render-client.d.ts.map +0 -1
  226. package/lib/emitters/render-client.js +0 -338
  227. package/lib/emitters/render-client.js.map +0 -1
  228. package/lib/emitters/ts-literal.d.ts +0 -5
  229. package/lib/emitters/ts-literal.d.ts.map +0 -1
  230. package/lib/emitters/ts-literal.js +0 -35
  231. package/lib/emitters/ts-literal.js.map +0 -1
  232. package/lib/emitters/ts-type.d.ts +0 -9
  233. package/lib/emitters/ts-type.d.ts.map +0 -1
  234. package/lib/emitters/ts-type.js +0 -133
  235. package/lib/emitters/ts-type.js.map +0 -1
  236. package/lib/generators/cli/index.d.ts +0 -6
  237. package/lib/generators/cli/index.d.ts.map +0 -1
  238. package/lib/generators/cli/index.js +0 -50
  239. package/lib/generators/cli/index.js.map +0 -1
  240. package/lib/generators/cli-docs/index.d.ts +0 -10
  241. package/lib/generators/cli-docs/index.d.ts.map +0 -1
  242. package/lib/generators/cli-docs/index.js +0 -43
  243. package/lib/generators/cli-docs/index.js.map +0 -1
  244. package/lib/generators/compatibility.d.ts +0 -10
  245. package/lib/generators/compatibility.d.ts.map +0 -1
  246. package/lib/generators/compatibility.js +0 -45
  247. package/lib/generators/compatibility.js.map +0 -1
  248. package/lib/generators/go/index.d.ts +0 -12
  249. package/lib/generators/go/index.d.ts.map +0 -1
  250. package/lib/generators/go/index.js +0 -814
  251. package/lib/generators/go/index.js.map +0 -1
  252. package/lib/generators/meta.d.ts +0 -14
  253. package/lib/generators/meta.d.ts.map +0 -1
  254. package/lib/generators/meta.js +0 -165
  255. package/lib/generators/meta.js.map +0 -1
  256. package/lib/generators/mock/index.d.ts.map +0 -1
  257. package/lib/generators/mock/index.js.map +0 -1
  258. package/lib/generators/options.d.ts +0 -7
  259. package/lib/generators/options.d.ts.map +0 -1
  260. package/lib/generators/options.js +0 -74
  261. package/lib/generators/options.js.map +0 -1
  262. package/lib/generators/php/index.d.ts +0 -12
  263. package/lib/generators/php/index.d.ts.map +0 -1
  264. package/lib/generators/php/index.js +0 -788
  265. package/lib/generators/php/index.js.map +0 -1
  266. package/lib/generators/python/index.d.ts +0 -12
  267. package/lib/generators/python/index.d.ts.map +0 -1
  268. package/lib/generators/python/index.js +0 -654
  269. package/lib/generators/python/index.js.map +0 -1
  270. package/lib/generators/swr/index.d.ts.map +0 -1
  271. package/lib/generators/swr/index.js.map +0 -1
  272. package/lib/generators/tanstack-query/index.d.ts.map +0 -1
  273. package/lib/generators/transformers/index.d.ts.map +0 -1
  274. package/lib/generators/transformers/index.js.map +0 -1
  275. package/lib/generators/typescript/index.d.ts.map +0 -1
  276. package/lib/generators/typescript/index.js +0 -53
  277. package/lib/generators/typescript/index.js.map +0 -1
  278. package/lib/generators/zod/index.d.ts.map +0 -1
  279. package/lib/generators/zod/index.js.map +0 -1
  280. package/lib/pipeline.d.ts +0 -20
  281. package/lib/pipeline.d.ts.map +0 -1
  282. package/lib/pipeline.js +0 -182
  283. package/lib/pipeline.js.map +0 -1
  284. package/lib/runtime/cli.d.ts +0 -135
  285. package/lib/runtime/cli.d.ts.map +0 -1
  286. package/lib/runtime/cli.js +0 -558
  287. package/lib/runtime/cli.js.map +0 -1
  288. package/lib/runtime-sources.d.ts +0 -4
  289. package/lib/runtime-sources.d.ts.map +0 -1
  290. package/lib/runtime-sources.js +0 -9
  291. package/lib/runtime-sources.js.map +0 -1
package/README.md CHANGED
@@ -27,7 +27,7 @@ import { generateClient } from '@redocly/client-generator';
27
27
  const result = await generateClient({
28
28
  api: './openapi.yaml', // file path or URL; OpenAPI 3.0/3.1/3.2 or Swagger 2.0
29
29
  output: './src/api/client.ts',
30
- generators: ['typescript', 'zod'],
30
+ generators: ['sdk', 'zod'],
31
31
  });
32
32
 
33
33
  console.log(`Wrote ${result.files.length} file(s), ${result.bytes} bytes.`);
@@ -55,32 +55,43 @@ With `runtime: 'package'` the generated client also imports its whole engine fro
55
55
  ### Write a custom generator
56
56
 
57
57
  A custom generator reads the same API model the built-ins consume, runs in the same pass, and returns files.
58
- Emitters print text: `Printer` handles indentation, and `tsType` is the same schema→type renderer the built-in sdk uses, so the mapping (refs, arrays, unions, formats, parenthesization) matches the generated client exactly:
58
+ Build real TypeScript with the emit toolkit from `@redocly/client-generator/generate` — the same `ts.factory` + printer the built-in generators use, so the schema→type mapping matches the sdk's exactly:
59
59
 
60
60
  ```ts
61
61
  // response-map-generator.ts
62
- import { defineGenerator, Printer } from '@redocly/client-generator';
63
- import { tsType } from '@redocly/client-generator/generate';
62
+ import { defineGenerator } from '@redocly/client-generator';
63
+ import { printStatements, schemaToTypeNode, ts } from '@redocly/client-generator/generate';
64
+
65
+ const { factory } = ts;
64
66
 
65
67
  export default defineGenerator({
66
68
  name: 'response-map',
67
- requires: ['typescript'],
69
+ requires: ['sdk'],
68
70
  run({ model, outputPath }) {
69
- const printer = new Printer();
70
71
  // One `ResponseShapes` entry per operation with a JSON success body.
71
- printer.block(
72
- 'export type ResponseShapes = {',
73
- () => {
74
- for (const service of model.services) {
75
- for (const op of service.operations) {
76
- const success = op.successResponses.find((r) => r.contentType.includes('json'));
77
- if (success) printer.line(`${op.name}: ${tsType(success.schema)};`);
78
- }
79
- }
80
- },
81
- '};'
72
+ const members = model.services
73
+ .flatMap((service) => service.operations)
74
+ .flatMap((op) => {
75
+ const success = op.successResponses.find((r) => r.contentType.includes('json'));
76
+ if (!success) return [];
77
+ return [
78
+ factory.createPropertySignature(
79
+ undefined,
80
+ op.name,
81
+ undefined,
82
+ schemaToTypeNode(success.schema)
83
+ ),
84
+ ];
85
+ });
86
+ const alias = factory.createTypeAliasDeclaration(
87
+ [factory.createModifier(ts.SyntaxKind.ExportKeyword)],
88
+ 'ResponseShapes',
89
+ undefined,
90
+ factory.createTypeLiteralNode(members)
82
91
  );
83
- return [{ path: outputPath.replace(/\.ts$/, '.responses.ts'), content: printer.toString() }];
92
+ return [
93
+ { path: outputPath.replace(/\.ts$/, '.responses.ts'), content: printStatements([alias]) },
94
+ ];
84
95
  },
85
96
  });
86
97
  ```
@@ -139,7 +150,7 @@ Authors a custom generator (`{ name, run }` plus optional `requires`/`errorModes
139
150
  function defineGenerator(generator: CustomGenerator): CustomGenerator;
140
151
  ```
141
152
 
142
- The `@redocly/client-generator/generate` entry also exports the TypeScript renderers the built-ins use (`tsType`, `tsJsdoc`, `codeLiteral`, `operationSignature`, `pascalCase`, `safeIdent`), and the package root exports the IR types plus the language-neutral toolkit, so a custom generator emits TypeScript exactly as the first-party ones do — see the [`typescript-types-generator` example](https://github.com/Redocly/redocly-cli/tree/main/tests/e2e/generate-client/examples/typescript-types-generator).
153
+ The `@redocly/client-generator/generate` entry also exports the emit toolkit the built-ins use (`ts`, `printStatements`, `parseStatements`, `operationSignature`, `schemaToTypeNode`, `pascalCase`, …), and the package root exports the IR types, so a custom generator emits TypeScript exactly as the first-party ones do — see the [`ast-toolkit-generator` example](https://github.com/Redocly/redocly-cli/tree/main/tests/e2e/generate-client/examples/ast-toolkit-generator).
143
154
 
144
155
  ### `defineClientSetup`
145
156
 
@@ -1 +1 @@
1
- {"version":3,"file":"client-assembly.d.ts","sourceRoot":"","sources":["../../src/emitters/client-assembly.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,KAAK,QAAQ,EAGd,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAU,KAAK,WAAW,EAA8B,MAAM,mBAAmB,CAAC;AAkBzF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAE,WAAgB,GAAG,MAAM,CAEvF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAErC"}
1
+ {"version":3,"file":"client-assembly.d.ts","sourceRoot":"","sources":["../../src/emitters/client-assembly.ts"],"names":[],"mappings":"AAWA,OAAO,EAEL,KAAK,QAAQ,EAGd,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAU,KAAK,WAAW,EAA8B,MAAM,mBAAmB,CAAC;AA2BzF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAE,WAAgB,GAAG,MAAM,CAEvF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAErC"}
@@ -1,6 +1,6 @@
1
1
  // Client assembly, shared by both runtime distributions and both output modes. The
2
- // wiring (descriptor map + `Ops` interface) is identical; only the runtime block
3
- // differs — `runtime: 'package'` imports `createClient` from
2
+ // wiring (descriptor map + `Ops` interface, emitters/descriptor.ts) is identical; only
3
+ // the runtime block differs — `runtime: 'package'` imports `createClient` from
4
4
  // `@redocly/client-generator`, everything else (inline, the default) embeds the
5
5
  // assembled runtime sources in its place (emitters/inline-runtime.ts). Single-file
6
6
  // layout: runtime (import line | embedded block) → schema types → type guards →
@@ -8,19 +8,24 @@
8
8
  // (package mode only) type re-exports — the embedded types are already exported in
9
9
  // place, so the embed arm needs none. Split mode moves the schema types + guards into
10
10
  // a sibling `<stem>.schemas.ts` the entry re-exports (`emitClientSplit`).
11
- // Text templates throughout — no `typescript` at generate time.
12
11
  import { allOperations, } from '../intermediate-representation/model.js';
13
12
  import { apiKeySetterName } from './auth.js';
14
- import { packageIdents, renderDescriptors } from './descriptor.js';
13
+ import { descriptorStatements, opsInterfaceStatements, packageIdents } from './descriptor.js';
15
14
  import { banner, HEADER, renderTitleComment } from './emit-options.js';
16
- import { codeString } from './identifier.js';
15
+ import { codeString, isIdentifier } from './identifier.js';
17
16
  import { assembleInlineRuntime } from './inline-runtime.js';
18
- import { isTypedMultipart } from './operation-types.js';
17
+ import { renderOperationAliases, sseAliases } from './operation-aliases.js';
18
+ import { operationSignature } from './operation-signature.js';
19
+ import { computeResponse, errorTypeNodes, isTypedMultipart } from './operation-types.js';
20
+ import { renderArgList } from './operations.js';
19
21
  import { resolveModelPagination } from './pagination.js';
20
- import { collectEntrySchemaRefs, renderAliases, renderFlatSugar, renderOpsType, } from './render-client.js';
22
+ import { responseHeadersTypeLiteral } from './response-headers.js';
21
23
  import { isSseOp } from './sse.js';
22
- import { renderTypeAliases } from './ts-type.js';
23
- import { renderTypeGuards } from './type-guards.js';
24
+ import { pascalCase } from './support.js';
25
+ import { arrow, exportConstStatement, parseStatements, printNodes, printStatements, ts, typedArrow, } from './ts.js';
26
+ import { typeGuardStatements } from './type-guards.js';
27
+ import { typesStatements } from './types.js';
28
+ const { factory } = ts;
24
29
  const PACKAGE_SPECIFIER = '@redocly/client-generator';
25
30
  export function emitClientSingleFile(model, options = {}) {
26
31
  return emitClient(model, options).entry;
@@ -57,14 +62,12 @@ function emitClient(model, options, splitStem) {
57
62
  const apiKeySchemes = model.securitySchemes.filter((s) => s.kind === 'apiKeyHeader' || s.kind === 'apiKeyQuery' || s.kind === 'apiKeyCookie');
58
63
  const wiring = ops.length > 0
59
64
  ? [
60
- renderOpsType(model, idents, ctx),
61
- renderDescriptors(model, idents, ctx.dateType, pagination),
65
+ ...opsInterfaceStatements(model, idents, ctx),
66
+ ...descriptorStatements(model, idents, ctx.dateType, pagination),
62
67
  ]
63
68
  : // A spec with no operations still gets the uniform wiring shape.
64
- [
65
- 'export type Ops = Record<string, never>;',
66
- 'export const OPERATIONS = {} as const satisfies Record<string, OperationDescriptor>;',
67
- ];
69
+ parseStatements('export type Ops = Record<string, never>;\n' +
70
+ 'export const OPERATIONS = {} as const satisfies Record<string, OperationDescriptor>;');
68
71
  const runtimeSection = embed
69
72
  ? assembleInlineRuntime({
70
73
  multipart: ops.some((op) => op.requestBody && isTypedMultipart(op.requestBody)),
@@ -81,16 +84,12 @@ function emitClient(model, options, splitStem) {
81
84
  hasRegular,
82
85
  hasApiKey: apiKeySchemes.length > 0,
83
86
  });
84
- const schemaSection = [
85
- renderTypeAliases(model.schemas, ctx.dateType),
86
- renderTypeGuards(model.schemas),
87
- ]
88
- .filter((section) => section.length > 0)
89
- .join('\n\n');
90
- const bodySection = [...ops.map((op) => renderAliases(op, ctx, 'wire')), ...wiring]
91
- .filter((section) => section.length > 0)
92
- .join('\n\n');
93
- const sugar = sugarSection(ops, idents, ctx, model.securitySchemes, apiKeySchemes);
87
+ const schemaStatements = [
88
+ ...typesStatements(model.schemas, ctx.dateType),
89
+ ...typeGuardStatements(model.schemas),
90
+ ];
91
+ const bodyStatements = [...ops.flatMap((op) => aliasStatements(op, ctx)), ...wiring];
92
+ const sugar = printNodes(sugarStatements(ops, idents, ctx, model.securitySchemes, apiKeySchemes));
94
93
  // Embed mode exports its whole public surface in place; only the package arm re-exports.
95
94
  const reexports = embed ? '' : reexportLines(ctx, hasSse);
96
95
  // Layout puts the reader's OWN API first (types → aliases → Ops → OPERATIONS) and the
@@ -104,7 +103,7 @@ function emitClient(model, options, splitStem) {
104
103
  HEADER,
105
104
  renderTitleComment(model),
106
105
  ...(embed ? [] : [runtimeSection]),
107
- [schemaSection, bodySection].filter((section) => section.length > 0).join('\n\n'),
106
+ printStatements([...schemaStatements, ...bodyStatements]),
108
107
  ...(embed ? [runtimeSection] : []),
109
108
  clientSection(options, ctx, model),
110
109
  sugar,
@@ -112,31 +111,50 @@ function emitClient(model, options, splitStem) {
112
111
  ]),
113
112
  };
114
113
  }
115
- const hasSchemas = schemaSection.length > 0;
114
+ const body = printStatements(bodyStatements);
115
+ const hasSchemas = schemaStatements.length > 0;
116
116
  return {
117
117
  entry: banner([
118
118
  HEADER,
119
119
  renderTitleComment(model),
120
120
  hasSchemas
121
- ? schemaLinks(model, ctx, `./${splitStem}.schemas.${options.importExt ?? 'js'}`)
121
+ ? schemaLinks(body + '\n' + sugar, ctx.schemaNames, `./${splitStem}.schemas.${options.importExt ?? 'js'}`)
122
122
  : '',
123
123
  ...(embed ? [] : [runtimeSection]),
124
- bodySection,
124
+ body,
125
125
  ...(embed ? [runtimeSection] : []),
126
126
  clientSection(options, ctx, model),
127
127
  sugar,
128
128
  reexports,
129
129
  ]),
130
- schemas: hasSchemas ? banner([HEADER, renderTitleComment(model), schemaSection]) : undefined,
130
+ schemas: hasSchemas
131
+ ? banner([HEADER, renderTitleComment(model), printStatements(schemaStatements)])
132
+ : undefined,
131
133
  };
132
134
  }
133
135
  /**
134
136
  * The entry ⇄ schemas linkage of the split layout: a type-only import of exactly the
135
- * schema names the entry's own code references (derived from the IR — the same
136
- * sources the alias/Ops renderers type), plus the public `export *` re-export.
137
+ * schema names the entry's own code references, plus the public `export *` re-export.
138
+ * Referenced names are found by walking the printed entry code's identifiers (an AST
139
+ * pass over the emitted text, not a substring search — operation JSDoc may mention a
140
+ * schema name, and importing an unreferenced type would trip `noUnusedLocals`).
137
141
  */
138
- function schemaLinks(model, ctx, specifier) {
139
- const names = collectEntrySchemaRefs(model, ctx);
142
+ function schemaLinks(entryCode, schemaNames, specifier) {
143
+ const referenced = new Set();
144
+ // Only TYPE references count as uses of the type-only import: a value-position
145
+ // identifier that happens to share a schema's name (every descriptor's `id:` key,
146
+ // for a schema named `id`) must not drag the name in — strict consumer lint
147
+ // configs flag the resulting unused import.
148
+ const visit = (node) => {
149
+ if (ts.isTypeReferenceNode(node) && ts.isIdentifier(node.typeName)) {
150
+ if (schemaNames.has(node.typeName.text))
151
+ referenced.add(node.typeName.text);
152
+ }
153
+ node.forEachChild(visit);
154
+ };
155
+ for (const statement of parseStatements(entryCode))
156
+ visit(statement);
157
+ const names = [...referenced].sort();
140
158
  const importLine = names.length > 0 ? `import type { ${names.join(', ')} } from '${specifier}';\n` : '';
141
159
  return `${importLine}export * from '${specifier}';`;
142
160
  }
@@ -160,6 +178,18 @@ function importLine(options, ctx, refs) {
160
178
  const names = [...values, ...types.map((t) => `type ${t}`)].join(', ');
161
179
  return `import { ${names} } from '${PACKAGE_SPECIFIER}';`;
162
180
  }
181
+ /** One operation's `<Op>*` aliases — the same emitters and suppression rules as inline mode. */
182
+ function aliasStatements(op, ctx) {
183
+ const { pathParams } = operationSignature(op);
184
+ const ordered = pathParams.map((p) => p.param);
185
+ const identMap = new Map(pathParams.map((p) => [p.param.name, p.ident]));
186
+ if (isSseOp(op))
187
+ return sseAliases(op, ordered, identMap, ctx, 'wire');
188
+ const { responseType } = computeResponse(op.successResponses, ctx.dateType);
189
+ const errorMembers = ctx.errorMode === 'result' ? errorTypeNodes(op.errorResponses, ctx.dateType) : [];
190
+ const errorAlias = errorMembers.length > 0 ? `${pascalCase(op.name)}Error` : '';
191
+ return renderOperationAliases(op, responseType, ordered, identMap, errorAlias, errorMembers, ctx, true, 'wire');
192
+ }
163
193
  /** The (optional) baked setup + the default `client` instance. */
164
194
  function clientSection(options, ctx, model) {
165
195
  const serverUrl = options.serverUrl ?? model.serverUrl;
@@ -180,7 +210,7 @@ function clientSection(options, ctx, model) {
180
210
  ? `mergeSetup({ config: ${config} }, mergeSetup(__redoclySetup, {}))`
181
211
  : config;
182
212
  // The trailing type args narrow `ctx.operation` to the spec's literal unions.
183
- // `OperationTag` mirrors the descriptor block's gate: derived only when some
213
+ // `OperationTag` mirrors descriptorStatements' gate: derived only when some
184
214
  // operation is tagged (it would otherwise be `never`); zero-ops specs have no
185
215
  // derived unions at all, so they keep the string defaults.
186
216
  const ops = allOperations(model.services);
@@ -196,32 +226,118 @@ function clientSection(options, ctx, model) {
196
226
  client);
197
227
  }
198
228
  /** Core destructure + per-scheme auth setters + per-operation call sugar. */
199
- function sugarSection(ops, idents, ctx, schemes, apiKeySchemes) {
200
- const lines = ['export const { configure, use } = client;'];
229
+ function sugarStatements(ops, idents, ctx, schemes, apiKeySchemes) {
230
+ const statements = [...parseStatements('export const { configure, use } = client;')];
201
231
  // Auth sugar in `authSetterNames` order: bearer, basic, then each apiKey scheme.
202
232
  // The runtime's auth members close over the instance config (no `this`), so
203
233
  // direct bindings are safe.
204
234
  if (schemes.some((s) => s.kind === 'bearer')) {
205
- lines.push('export const setBearer = client.auth.bearer;');
235
+ statements.push(...parseStatements('export const setBearer = client.auth.bearer;'));
206
236
  }
207
237
  if (schemes.some((s) => s.kind === 'basic')) {
208
- lines.push('export const setBasicAuth = client.auth.basic;');
238
+ statements.push(...parseStatements('export const setBasicAuth = client.auth.basic;'));
209
239
  }
210
240
  for (const scheme of apiKeySchemes) {
211
241
  const name = apiKeySetterName(scheme.key, apiKeySchemes.length === 1);
212
- lines.push(`export const ${name} = (value: TokenProvider) => client.auth.apiKey(${codeString(scheme.key)}, value);`);
242
+ statements.push(...parseStatements(`export const ${name} = (value: TokenProvider) => client.auth.apiKey(${codeString(scheme.key)}, value);`));
213
243
  }
214
244
  if (ops.length === 0)
215
- return lines.join('\n');
245
+ return statements;
216
246
  if (ctx.argsStyle === 'grouped') {
217
247
  // Grouped style: the client methods already take the grouped args shape.
218
248
  const names = ops.map((op) => idents.get(op.name)).join(', ');
219
- lines.push(`export const { ${names} } = client;`);
220
- return lines.join('\n');
249
+ statements.push(...parseStatements(`export const { ${names} } = client;`));
250
+ return statements;
221
251
  }
222
252
  for (const op of ops)
223
- lines.push(renderFlatSugar(op, idents.get(op.name), ctx));
224
- return lines.join('\n');
253
+ statements.push(flatSugarStatement(op, idents.get(op.name), ctx));
254
+ return statements;
255
+ }
256
+ /**
257
+ * One flat one-liner: today's positional signature forwarding to the grouped client
258
+ * method. Path values are keyed by the WIRE name (the runtime routes
259
+ * `args[param.name]`); a path param literally named `params`/`body`/`headers` would
260
+ * collide with the slot keys — a spec-acknowledged runtime-contract limitation.
261
+ * A paginated operation's arrow is wrapped in `Object.assign(…, { pages, items })`
262
+ * so the flat sugar preserves the method-attached iterators.
263
+ * Throw-mode (non-SSE) arrows are generic over `init` so `{ envelope: true }` narrows
264
+ * the return type to `Envelope<…>` (plain `RequestOptions` would collapse the overload).
265
+ */
266
+ function flatSugarStatement(op, ident, ctx) {
267
+ const { pathParams } = operationSignature(op);
268
+ const params = renderArgList(op, pathParams.map((p) => p.param), new Map(pathParams.map((p) => [p.param.name, p.ident])), ctx);
269
+ const props = pathParams.map(({ param, ident: paramIdent }) => param.name === paramIdent
270
+ ? factory.createShorthandPropertyAssignment(paramIdent)
271
+ : factory.createPropertyAssignment(isIdentifier(param.name) ? param.name : factory.createStringLiteral(param.name), factory.createIdentifier(paramIdent)));
272
+ if (op.queryParams.length > 0)
273
+ props.push(factory.createShorthandPropertyAssignment('params'));
274
+ if (op.requestBody)
275
+ props.push(factory.createShorthandPropertyAssignment('body'));
276
+ if (op.headerParams.length > 0) {
277
+ props.push(factory.createShorthandPropertyAssignment('headers'));
278
+ }
279
+ if (op.cookieParams.length > 0) {
280
+ props.push(factory.createShorthandPropertyAssignment('cookies'));
281
+ }
282
+ const call = factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('client'), ident), undefined, [factory.createObjectLiteralExpression(props, false), factory.createIdentifier('init')]);
283
+ const fn = ctx.errorMode !== 'result' && !isSseOp(op)
284
+ ? envelopeAwareFlatArrow(op, params, call, ctx)
285
+ : arrow(params, call);
286
+ if (!ctx.pagination?.has(op.name))
287
+ return exportConstStatement(ident, fn);
288
+ const methodMember = (name) => factory.createPropertyAssignment(name, factory.createPropertyAccessExpression(factory.createPropertyAccessExpression(factory.createIdentifier('client'), ident), name));
289
+ return exportConstStatement(ident, factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('Object'), 'assign'), undefined, [
290
+ fn,
291
+ factory.createObjectLiteralExpression([methodMember('pages'), methodMember('items')], false),
292
+ ]));
293
+ }
294
+ /**
295
+ * `<I extends RequestOptions | undefined = undefined>(…, init?: I) =>
296
+ * Promise<EnvelopeResult<Result, Headers, I>>`
297
+ */
298
+ function envelopeAwareFlatArrow(op, params, call, ctx) {
299
+ // `renderArgList` always appends `init` last — retype it as optional generic `I`
300
+ // (no default: `init?: I = {}` is invalid, and `init: I = {}` fails under strict
301
+ // generic checks). Cast the call's Promise so the conditional return type sticks.
302
+ const initTyped = [
303
+ ...params.slice(0, -1),
304
+ factory.createParameterDeclaration(undefined, undefined, 'init', factory.createToken(ts.SyntaxKind.QuestionToken), factory.createTypeReferenceNode('I')),
305
+ ];
306
+ const resultType = flatResultType(op, ctx);
307
+ const headersType = flatHeadersType(op, ctx);
308
+ const returnType = factory.createTypeReferenceNode('Promise', [
309
+ factory.createTypeReferenceNode('EnvelopeResult', [
310
+ resultType,
311
+ headersType,
312
+ factory.createTypeReferenceNode('I'),
313
+ ]),
314
+ ]);
315
+ const typeParam = factory.createTypeParameterDeclaration(undefined, 'I', factory.createUnionTypeNode([
316
+ factory.createTypeReferenceNode('RequestOptions'),
317
+ factory.createKeywordTypeNode(ts.SyntaxKind.UndefinedKeyword),
318
+ ]), factory.createKeywordTypeNode(ts.SyntaxKind.UndefinedKeyword));
319
+ const castCall = factory.createAsExpression(call, returnType);
320
+ return typedArrow([typeParam], initTyped, returnType, castCall);
321
+ }
322
+ function flatResultType(op, ctx) {
323
+ const { responseType } = computeResponse(op.successResponses, ctx.dateType);
324
+ const resultName = `${pascalCase(op.name)}Result`;
325
+ return ctx.schemaNames.has(resultName)
326
+ ? responseType
327
+ : factory.createTypeReferenceNode(resultName);
328
+ }
329
+ function flatHeadersType(op, ctx) {
330
+ const headers = op.successResponseHeaders;
331
+ if (!headers || headers.length === 0) {
332
+ return factory.createTypeReferenceNode('Record', [
333
+ factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
334
+ factory.createKeywordTypeNode(ts.SyntaxKind.NeverKeyword),
335
+ ]);
336
+ }
337
+ const alias = `${pascalCase(op.name)}ResponseHeaders`;
338
+ return ctx.schemaNames.has(alias)
339
+ ? responseHeadersTypeLiteral(headers, ctx.schemas)
340
+ : factory.createTypeReferenceNode(alias);
225
341
  }
226
342
  /** Public type surface re-exported for single-import DX (plus the `ApiError` class). */
227
343
  function reexportLines(ctx, hasSse) {
@@ -1 +1 @@
1
- {"version":3,"file":"client-assembly.js","sourceRoot":"","sources":["../../src/emitters/client-assembly.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-assembly.js","sourceRoot":"","sources":["../../src/emitters/client-assembly.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { type ApiModel } from '../intermediate-representation/model.js';
2
+ import type { EmitContext } from './operations.js';
2
3
  import type { ModelPagination } from './pagination.js';
3
- import type { DateType } from './types.js';
4
+ import { ts } from './ts.js';
5
+ import { type DateType } from './types.js';
4
6
  /**
5
7
  * Operation-name → emitted-identifier plan. The full reserved set (wiring + imported
6
8
  * bindings + auth sugar, computed from the model FIRST) is seeded before any operation
@@ -8,6 +10,13 @@ import type { DateType } from './types.js';
8
10
  * deterministically regardless of document order.
9
11
  */
10
12
  export declare function packageIdents(model: ApiModel): Map<string, string>;
11
- /** `export const OPERATIONS = {…} as const satisfies …` + the derived unions. */
12
- export declare function renderDescriptors(model: ApiModel, idents: Map<string, string>, dateType: DateType, pagination?: ModelPagination): string;
13
+ /** `export const OPERATIONS = {…} as const satisfies Record<string, OperationDescriptor>;` + unions. */
14
+ export declare function descriptorStatements(model: ApiModel, idents: Map<string, string>, dateType: DateType, pagination?: ModelPagination): ts.Statement[];
15
+ /**
16
+ * `export type Ops = { <ident>: { args: …; result: …; kind?: "sse" } }` — the type map
17
+ * `createClient<Ops>` consumes. A type alias (not an interface) on purpose: aliases get
18
+ * an implicit index signature, so `Ops` satisfies the runtime's `OpsShape` constraint;
19
+ * an interface would need an explicit `[key: string]` member.
20
+ */
21
+ export declare function opsInterfaceStatements(model: ApiModel, idents: Map<string, string>, ctx: EmitContext): ts.Statement[];
13
22
  //# sourceMappingURL=descriptor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/emitters/descriptor.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,QAAQ,EAId,MAAM,yCAAyC,CAAC;AAKjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAOvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAKlE;AAgED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,QAAQ,EAAE,QAAQ,EAClB,UAAU,CAAC,EAAE,eAAe,GAC3B,MAAM,CAiCR"}
1
+ {"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/emitters/descriptor.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,QAAQ,EAId,MAAM,yCAAyC,CAAC;AAOjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKvD,OAAO,EAA6C,EAAE,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,KAAK,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAI7D;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAKlE;AAgED,wGAAwG;AACxG,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,QAAQ,EAAE,QAAQ,EAClB,UAAU,CAAC,EAAE,eAAe,GAC3B,EAAE,CAAC,SAAS,EAAE,CAqDhB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,GAAG,EAAE,WAAW,GACf,EAAE,CAAC,SAAS,EAAE,CAehB"}