@apollo-deploy/tesseract 0.4.4 → 0.5.1

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 (66) hide show
  1. package/README.md +330 -11
  2. package/dist/adapters/types.d.ts +2 -1
  3. package/dist/adapters/types.d.ts.map +1 -1
  4. package/dist/adapters/typescript/index.d.ts +2 -1
  5. package/dist/adapters/typescript/index.d.ts.map +1 -1
  6. package/dist/adapters/typescript/index.js +27 -10
  7. package/dist/adapters/typescript/index.js.map +1 -1
  8. package/dist/cli.js +19 -1
  9. package/dist/cli.js.map +1 -1
  10. package/dist/collector.d.ts +135 -0
  11. package/dist/collector.d.ts.map +1 -0
  12. package/dist/collector.js +159 -0
  13. package/dist/collector.js.map +1 -0
  14. package/dist/elysia.d.ts +65 -0
  15. package/dist/elysia.d.ts.map +1 -0
  16. package/dist/elysia.js +70 -0
  17. package/dist/elysia.js.map +1 -0
  18. package/dist/express.d.ts +74 -0
  19. package/dist/express.d.ts.map +1 -0
  20. package/dist/express.js +73 -0
  21. package/dist/express.js.map +1 -0
  22. package/dist/fastify.d.ts +135 -0
  23. package/dist/fastify.d.ts.map +1 -0
  24. package/dist/fastify.js +188 -0
  25. package/dist/fastify.js.map +1 -0
  26. package/dist/hono.d.ts +65 -0
  27. package/dist/hono.d.ts.map +1 -0
  28. package/dist/hono.js +64 -0
  29. package/dist/hono.js.map +1 -0
  30. package/dist/index.d.ts +5 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +4 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/koa.d.ts +69 -0
  35. package/dist/koa.d.ts.map +1 -0
  36. package/dist/koa.js +68 -0
  37. package/dist/koa.js.map +1 -0
  38. package/dist/nestjs.d.ts +107 -0
  39. package/dist/nestjs.d.ts.map +1 -0
  40. package/dist/nestjs.js +143 -0
  41. package/dist/nestjs.js.map +1 -0
  42. package/dist/pipeline/intake.d.ts.map +1 -1
  43. package/dist/pipeline/intake.js +35 -21
  44. package/dist/pipeline/intake.js.map +1 -1
  45. package/dist/pipeline/write.d.ts +1 -0
  46. package/dist/pipeline/write.d.ts.map +1 -1
  47. package/dist/pipeline/write.js +21 -3
  48. package/dist/pipeline/write.js.map +1 -1
  49. package/dist/types/config.d.ts +13 -3
  50. package/dist/types/config.d.ts.map +1 -1
  51. package/dist/types/config.js +5 -2
  52. package/dist/types/config.js.map +1 -1
  53. package/dist/types/ir.d.ts +8 -0
  54. package/dist/types/ir.d.ts.map +1 -1
  55. package/dist/types/manifest.d.ts +5 -30
  56. package/dist/types/manifest.d.ts.map +1 -1
  57. package/dist/types/manifest.js.map +1 -1
  58. package/dist/types/sdk-module.d.ts +128 -0
  59. package/dist/types/sdk-module.d.ts.map +1 -0
  60. package/dist/types/sdk-module.js +50 -0
  61. package/dist/types/sdk-module.js.map +1 -0
  62. package/package.json +63 -1
  63. package/templates/typescript/client-class.hbs +136 -0
  64. package/templates/typescript/domain-class.hbs +188 -0
  65. package/templates/typescript/domain.hbs +5 -1
  66. package/templates/typescript/index-class.hbs +68 -0
package/README.md CHANGED
@@ -22,9 +22,9 @@ This reads your manifest and produces a complete npm-ready SDK in `./sdk/`.
22
22
 
23
23
  ## CLI
24
24
 
25
- ```
26
- tesseract generate [options]
27
- ```
25
+ ### `tesseract generate`
26
+
27
+ Generate an SDK from a static manifest file.
28
28
 
29
29
  | Flag | Required | Description |
30
30
  |------|----------|-------------|
@@ -34,16 +34,30 @@ tesseract generate [options]
34
34
  | `--package-version <version>` | No | Override the generated package version |
35
35
  | `--client-name <name>` | No | Override the generated client class name |
36
36
  | `--base-url <url>` | No | Override the default base URL |
37
+ | `--sdk-style <style>` | No | `functional` (default) or `class` (Resend-style `new MySDK('key')`) |
38
+ | `--client-type <type>` | No | `internal` (full options, default) or `public` (auth key only, baseUrl baked in) |
37
39
  | `--dry-run` | No | Preview changes without writing files |
38
40
  | `--check` | No | Exit non-zero if generated output is out of date |
39
41
 
42
+ `--dry-run` and `--check` are mutually exclusive.
43
+
44
+ ### `tesseract run`
45
+
46
+ Boot an instrumented Fastify app with `TESSERACT_GENERATE=1` to collect annotated routes at runtime and generate an SDK without a static manifest file.
47
+
48
+ ```bash
49
+ tesseract run dist/app.js
50
+ ```
51
+
52
+ The app must register `tesseractPlugin` from `@apollo-deploy/tesseract/fastify`. See [Fastify Integration](#fastify-integration) below.
53
+
40
54
  ## Input: The Manifest
41
55
 
42
- Tesseract consumes a `BackendManifest` JSON file with schema `"sdk-manifold/v1"`:
56
+ Tesseract consumes a `BackendManifest` JSON file with `$schema: "sdk-manifold/v1"`:
43
57
 
44
58
  ```json
45
59
  {
46
- "schema": "sdk-manifold/v1",
60
+ "$schema": "sdk-manifold/v1",
47
61
  "info": {
48
62
  "title": "My API",
49
63
  "version": "1.0.0",
@@ -52,7 +66,7 @@ Tesseract consumes a `BackendManifest` JSON file with schema `"sdk-manifold/v1"`
52
66
  },
53
67
  "domains": [
54
68
  {
55
- "name": "users",
69
+ "domain": "users",
56
70
  "prefix": "/users",
57
71
  "stability": "stable",
58
72
  "routes": [
@@ -83,7 +97,7 @@ Tesseract consumes a `BackendManifest` JSON file with schema `"sdk-manifold/v1"`
83
97
  ### Key Manifest Fields
84
98
 
85
99
  - **`info`** — Title, version, description, and base URL for the API
86
- - **`domains`** — Groups of routes organized by domain, each with a prefix, stability level (`stable` / `experimental` / `internal`), and route definitions
100
+ - **`domains`** — Groups of routes organized by domain, each with a prefix, stability level (`stable` / `experimental` / `internal`), and route definitions. `internal`-stability domains are excluded from public SDK builds.
87
101
  - **`definitions`** — JSON Schema definitions for shared types
88
102
  - **`schemaPackage`** _(optional)_ — An external npm package to import types from instead of generating them
89
103
 
@@ -92,13 +106,300 @@ Tesseract consumes a `BackendManifest` JSON file with schema `"sdk-manifold/v1"`
92
106
  Each route in a domain can specify:
93
107
 
94
108
  - **`method`** / **`url`** — HTTP method and Fastify-style URL pattern (`:param`)
95
- - **`schema`** — JSON Schemas for params, query, body, headers, and response
96
- - **`sdk`** — SDK-specific config: method name override, transport type (`json` | `multipart` | `binary` | `stream`), exclusion flags
109
+ - **`schema`** — JSON Schemas for `params`, `querystring`, `body`, `headers`, and `response`
110
+ - **`sdk`** — SDK-specific config: `methodName`, `transport` (`json` | `multipart` | `binary` | `stream`), `exclude`, `deprecated`, `internal`, `timeout`, `requiredHeaders`
97
111
  - **`sse: true`** — Marks the route as a Server-Sent Events stream
98
112
 
113
+ ## Framework Integration
114
+
115
+ Tesseract ships adapters for every major Node.js API framework. Each adapter is a separate subpath export so you only pull in what you use.
116
+
117
+ | Framework | Import |
118
+ |-----------|--------|
119
+ | **Fastify** | `@apollo-deploy/tesseract/fastify` |
120
+ | **Express** | `@apollo-deploy/tesseract/express` |
121
+ | **Hono** | `@apollo-deploy/tesseract/hono` |
122
+ | **Koa** | `@apollo-deploy/tesseract/koa` |
123
+ | **Elysia** | `@apollo-deploy/tesseract/elysia` |
124
+ | **NestJS** | `@apollo-deploy/tesseract/nestjs` |
125
+ | **Generic / any framework** | `import { SDKCollector } from '@apollo-deploy/tesseract'` |
126
+
127
+ All non-Fastify adapters follow the same pattern:
128
+
129
+ 1. Create an `SDKCollector` (or framework-specific subclass) with your API metadata.
130
+ 2. Register domains and routes with the collector alongside your framework route definitions.
131
+ 3. Call `collector.tryGenerate()` (or let a plugin do it) — it only runs when `TESSERACT_GENERATE=1`.
132
+
133
+ ---
134
+
135
+ ### Fastify
136
+
137
+ The Fastify adapter hooks into `onRoute` to collect routes automatically at boot time — no manual registration needed.
138
+
139
+ ```ts
140
+ // app.ts
141
+ import { tesseractPlugin } from '@apollo-deploy/tesseract/fastify';
142
+
143
+ app.register(tesseractPlugin, {
144
+ info: { title: 'My API', version: '1.0.0', baseUrl: 'https://api.example.com' },
145
+ output: './packages/api-sdk',
146
+ // Optional: import types from a shared package instead of regenerating them
147
+ schemaPackage: { name: '@my-org/schemas', version: '^2.0.0' },
148
+ sdkStyle: 'functional', // or 'class'
149
+ clientType: 'internal', // or 'public'
150
+ });
151
+ ```
152
+
153
+ The plugin is a complete no-op unless `TESSERACT_GENERATE=1` is set, so it is safe to register unconditionally.
154
+
155
+ Add `sdk` as a top-level option on each route (sibling to `schema`):
156
+
157
+ ```ts
158
+ fastify.get('/:id', {
159
+ schema: { response: { 200: UserSchema } },
160
+ sdk: { methodName: 'getUser' },
161
+ }, handler);
162
+ ```
163
+
164
+ Use `sdkDomain()` to name the domain and set a description:
165
+
166
+ ```ts
167
+ import fp from 'fastify-plugin';
168
+ import { sdkDomain } from '@apollo-deploy/tesseract/fastify';
169
+
170
+ export default fp(async (fastify) => {
171
+ sdkDomain(fastify, { domain: 'users', description: 'User management' });
172
+
173
+ fastify.get('/:id', {
174
+ schema: { response: { 200: UserSchema } },
175
+ sdk: { methodName: 'getUser' },
176
+ }, handler);
177
+ });
178
+ ```
179
+
180
+ Or use the `@SDKModule()` class decorator:
181
+
182
+ ```ts
183
+ import { SDKModule } from '@apollo-deploy/tesseract';
184
+
185
+ @SDKModule({ prefix: '/users', domain: 'users', description: 'User management' })
186
+ export class UsersPlugin {
187
+ register(app: FastifyInstance) {
188
+ app.get('/:id', { schema: { ... }, sdk: { methodName: 'getUser' } }, handler);
189
+ }
190
+ }
191
+ ```
192
+
193
+ **Trigger:**
194
+ ```bash
195
+ tesseract run dist/app.js
196
+ # or
197
+ TESSERACT_GENERATE=1 node dist/app.js
198
+ ```
199
+
200
+ ---
201
+
202
+ ### Express
203
+
204
+ ```ts
205
+ import express from 'express';
206
+ import { ExpressSDKCollector } from '@apollo-deploy/tesseract/express';
207
+
208
+ const app = express();
209
+ const collector = new ExpressSDKCollector({
210
+ info: { title: 'My API', version: '1.0.0', baseUrl: 'https://api.example.com' },
211
+ output: './packages/api-sdk',
212
+ });
213
+
214
+ collector.domain('/users', { domain: 'users', description: 'User management' });
215
+
216
+ app.get('/users/:id',
217
+ collector.expressRoute('/users/:id', 'GET', { sdk: { methodName: 'getUser' } }),
218
+ getUserHandler,
219
+ );
220
+ app.post('/users',
221
+ collector.expressRoute('/users', 'POST', { sdk: { methodName: 'createUser' } }),
222
+ createUserHandler,
223
+ );
224
+
225
+ // After all routes are registered:
226
+ if (await collector.tryGenerate()) process.exit(0);
227
+
228
+ app.listen(3000);
229
+ ```
230
+
231
+ **Trigger:** `TESSERACT_GENERATE=1 node dist/app.js`
232
+
233
+ ---
234
+
235
+ ### Hono
236
+
237
+ ```ts
238
+ import { Hono } from 'hono';
239
+ import { HonoSDKCollector } from '@apollo-deploy/tesseract/hono';
240
+
241
+ const app = new Hono();
242
+ const collector = new HonoSDKCollector({
243
+ info: { title: 'My API', version: '1.0.0', baseUrl: 'https://api.example.com' },
244
+ output: './packages/api-sdk',
245
+ });
246
+
247
+ collector.domain('/users', { domain: 'users', description: 'User management' });
248
+
249
+ app.get('/users/:id',
250
+ collector.honoMiddleware('/users/:id', 'GET', { sdk: { methodName: 'getUser' } }),
251
+ (c) => c.json(getUser(c.req.param('id'))),
252
+ );
253
+
254
+ if (await collector.tryGenerate()) process.exit(0);
255
+
256
+ export default app;
257
+ ```
258
+
259
+ **Trigger:** `TESSERACT_GENERATE=1 node dist/app.js`
260
+
261
+ ---
262
+
263
+ ### Koa
264
+
265
+ ```ts
266
+ import Koa from 'koa';
267
+ import Router from '@koa/router';
268
+ import { KoaSDKCollector } from '@apollo-deploy/tesseract/koa';
269
+
270
+ const app = new Koa();
271
+ const router = new Router();
272
+ const collector = new KoaSDKCollector({
273
+ info: { title: 'My API', version: '1.0.0', baseUrl: 'https://api.example.com' },
274
+ output: './packages/api-sdk',
275
+ });
276
+
277
+ collector.domain('/users', { domain: 'users', description: 'User management' });
278
+
279
+ router.get('/users/:id',
280
+ collector.koaMiddleware('/users/:id', 'GET', { sdk: { methodName: 'getUser' } }),
281
+ getUserHandler,
282
+ );
283
+
284
+ app.use(router.routes());
285
+
286
+ if (await collector.tryGenerate()) process.exit(0);
287
+
288
+ app.listen(3000);
289
+ ```
290
+
291
+ **Trigger:** `TESSERACT_GENERATE=1 node dist/app.js`
292
+
293
+ ---
294
+
295
+ ### Elysia
296
+
297
+ ```ts
298
+ import { Elysia } from 'elysia';
299
+ import { tesseractPlugin } from '@apollo-deploy/tesseract/elysia';
300
+
301
+ const { plugin, collector } = tesseractPlugin({
302
+ info: { title: 'My API', version: '1.0.0', baseUrl: 'https://api.example.com' },
303
+ output: './packages/api-sdk',
304
+ });
305
+
306
+ collector.domain('/users', { domain: 'users', description: 'User management' });
307
+ collector.route('/users/:id', 'GET', { sdk: { methodName: 'getUser' } });
308
+ collector.route('/users', 'POST', { sdk: { methodName: 'createUser' } });
309
+
310
+ const app = new Elysia()
311
+ .use(plugin)
312
+ .get('/users/:id', ({ params }) => getUser(params.id))
313
+ .post('/users', ({ body }) => createUser(body))
314
+ .listen(3000);
315
+ ```
316
+
317
+ The plugin triggers generation automatically in its `onStart` hook when `TESSERACT_GENERATE=1` is set.
318
+
319
+ **Trigger:** `TESSERACT_GENERATE=1 bun run dist/app.js`
320
+
321
+ ---
322
+
323
+ ### NestJS
324
+
325
+ Decorate controllers and methods, then call `collectFromNestControllers()` at bootstrap:
326
+
327
+ ```ts
328
+ // users.controller.ts
329
+ import { Controller, Get, Post, Param, Body } from '@nestjs/common';
330
+ import { SDKMethod, SDKDomain } from '@apollo-deploy/tesseract/nestjs';
331
+
332
+ @Controller('users')
333
+ @SDKDomain({ domain: 'users', description: 'User management' })
334
+ export class UsersController {
335
+ @Get(':id')
336
+ @SDKMethod({ methodName: 'getUser', schema: { response: { 200: { $ref: 'User' } } } })
337
+ getUser(@Param('id') id: string) { ... }
338
+
339
+ @Post()
340
+ @SDKMethod({ methodName: 'createUser' })
341
+ createUser(@Body() body: CreateUserDto) { ... }
342
+ }
343
+ ```
344
+
345
+ ```ts
346
+ // main.ts
347
+ import { NestFactory } from '@nestjs/core';
348
+ import { AppModule } from './app.module';
349
+ import { SDKCollector, collectFromNestControllers } from '@apollo-deploy/tesseract/nestjs';
350
+ import { UsersController } from './users/users.controller';
351
+
352
+ async function bootstrap() {
353
+ const app = await NestFactory.create(AppModule);
354
+ await app.init();
355
+
356
+ if (process.env.TESSERACT_GENERATE) {
357
+ const collector = new SDKCollector({
358
+ info: { title: 'My API', version: '1.0.0', baseUrl: 'https://api.example.com' },
359
+ output: './packages/api-sdk',
360
+ });
361
+ collectFromNestControllers([UsersController], collector);
362
+ await collector.generate();
363
+ await app.close();
364
+ process.exit(0);
365
+ }
366
+
367
+ await app.listen(3000);
368
+ }
369
+ bootstrap();
370
+ ```
371
+
372
+ Requires `reflect-metadata` (standard NestJS dep) and `"emitDecoratorMetadata": true` in `tsconfig.json`.
373
+
374
+ **Trigger:** `TESSERACT_GENERATE=1 node dist/main.js`
375
+
376
+ ---
377
+
378
+ ### Generic / any framework
379
+
380
+ Use `SDKCollector` directly from the main package with any HTTP framework:
381
+
382
+ ```ts
383
+ import { SDKCollector } from '@apollo-deploy/tesseract';
384
+
385
+ const collector = new SDKCollector({
386
+ info: { title: 'My API', version: '1.0.0', baseUrl: 'https://api.example.com' },
387
+ output: './packages/api-sdk',
388
+ });
389
+
390
+ collector.domain('/users', { domain: 'users', description: 'User management' });
391
+ collector.route('/users/:id', 'GET', { sdk: { methodName: 'getUser' } });
392
+ collector.route('/users', 'POST', { sdk: { methodName: 'createUser' } });
393
+
394
+ // After all routes are declared:
395
+ if (await collector.tryGenerate()) process.exit(0);
396
+ ```
397
+
99
398
  ## Output
100
399
 
101
- Tesseract generates a complete, publishable npm package:
400
+ Tesseract generates a complete, publishable npm package. The structure varies slightly by `sdkStyle`.
401
+
402
+ **Functional style** (default — `createMyClient(config)`):
102
403
 
103
404
  ```
104
405
  sdk/
@@ -125,6 +426,8 @@ sdk/
125
426
  └── handler.ts # Typed webhook registry (if needed)
126
427
  ```
127
428
 
429
+ **Class style** (`--sdk-style class` — `new MySDK('api_key', options?)`): generates `client-class.ts`, `domain-class/` files, and a matching `index.ts` using the class-based entry point.
430
+
128
431
  ### Generated SDK Features
129
432
 
130
433
  - **Typed client** with grouped domain methods
@@ -215,17 +518,33 @@ await generate({
215
518
  });
216
519
  ```
217
520
 
521
+ You can also pass a pre-parsed manifest object instead of a file path:
522
+
523
+ ```typescript
524
+ import { generate } from '@apollo-deploy/tesseract';
525
+ import type { BackendManifest } from '@apollo-deploy/tesseract';
526
+
527
+ const manifest: BackendManifest = { /* ... */ };
528
+
529
+ await generate({ manifest, output: './sdk' });
530
+ ```
531
+
218
532
  ### Configuration
219
533
 
534
+ Either `input` or `manifest` must be provided.
535
+
220
536
  | Option | Type | Description |
221
537
  |--------|------|-------------|
222
- | `input` | `string` | Path to the manifest file |
538
+ | `input` | `string?` | Path to the manifest file. Required if `manifest` is not provided. |
539
+ | `manifest` | `BackendManifest?` | Pre-parsed manifest object. Alternative to `input`. |
223
540
  | `output` | `string` | Output directory |
224
541
  | `language` | `'typescript'` | Target language |
225
542
  | `packageName` | `string?` | Override npm package name |
226
543
  | `packageVersion` | `string?` | Override generated package version; defaults to `info.version` from the manifest |
227
544
  | `clientName` | `string?` | Override client class name |
228
545
  | `baseUrl` | `string?` | Override default base URL |
546
+ | `sdkStyle` | `'functional' \| 'class'?` | `functional` (default) generates a `createMyClient(config)` factory; `class` generates a Resend-style `new MySDK('api_key', options?)` class |
547
+ | `clientType` | `'internal' \| 'public'?` | `internal` (default) exposes full config options; `public` accepts only an auth key with `baseUrl` baked in |
229
548
  | `environments` | `{ name: string; baseUrl: string }[]?` | Named environment presets |
230
549
  | `dryRun` | `boolean?` | Transform only, no file I/O |
231
550
  | `check` | `boolean?` | Compare output without writing |
@@ -3,6 +3,7 @@
3
3
  * Each supported language implements this contract.
4
4
  */
5
5
  import type { EnrichedSDKIR } from '../types/ir.js';
6
+ import type { ResolvedConfig } from '../types/config.js';
6
7
  import type { EmittedFile } from '../pipeline/write.js';
7
8
  export interface EmitResult {
8
9
  files: EmittedFile[];
@@ -10,6 +11,6 @@ export interface EmitResult {
10
11
  }
11
12
  export interface LanguageAdapter {
12
13
  readonly language: string;
13
- emit(enriched: EnrichedSDKIR, outputDir: string): Promise<EmitResult>;
14
+ emit(enriched: EnrichedSDKIR, outputDir: string, config?: ResolvedConfig): Promise<EmitResult>;
14
15
  }
15
16
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACvE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAChG"}
@@ -4,8 +4,9 @@
4
4
  */
5
5
  import type { EnrichedSDKIR } from '../../types/ir.js';
6
6
  import type { LanguageAdapter, EmitResult } from '../types.js';
7
+ import type { ResolvedConfig } from '../../types/config.js';
7
8
  export declare class TypeScriptAdapter implements LanguageAdapter {
8
9
  readonly language = "typescript";
9
- emit(enriched: EnrichedSDKIR, outputDir: string): Promise<EmitResult>;
10
+ emit(enriched: EnrichedSDKIR, outputDir: string, config?: ResolvedConfig): Promise<EmitResult>;
10
11
  }
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/typescript/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAO/D,qBAAa,iBAAkB,YAAW,eAAe;IACvD,QAAQ,CAAC,QAAQ,gBAAgB;IAE3B,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CA0H5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/typescript/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAO5D,qBAAa,iBAAkB,YAAW,eAAe;IACvD,QAAQ,CAAC,QAAQ,gBAAgB;IAE3B,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;CA6IrG"}
@@ -9,8 +9,9 @@ import { getTemplate, registerHelpers, collectImports } from '../../helpers/hand
9
9
  import { formatTypeScript } from '../../utils/format.js';
10
10
  export class TypeScriptAdapter {
11
11
  language = 'typescript';
12
- async emit(enriched, outputDir) {
12
+ async emit(enriched, outputDir, config) {
13
13
  registerHelpers();
14
+ const sdkStyle = config?.sdkStyle ?? 'functional';
14
15
  const files = [];
15
16
  const warnings = [];
16
17
  const { generatedSchemas, externalSchemas } = splitSchemasByOwnership(enriched.schemas);
@@ -19,7 +20,18 @@ export class TypeScriptAdapter {
19
20
  const externalTypeNames = new Set(externalSchemas.map((s) => s.name));
20
21
  const commonTypeExports = COMMON_TYPE_NAMES.filter((name) => !externalTypeNames.has(name));
21
22
  const externalPackages = collectExternalPackages(enriched.schemas, enriched.meta.schemaPackage);
22
- const hasSSE = enriched.groups.some((g) => g.operations.some((op) => op.isEventStream));
23
+ const clientType = config?.clientType ?? 'internal';
24
+ // For public SDKs, strip internal groups and internal operations from mixed groups.
25
+ const visibleGroups = clientType === 'public'
26
+ ? enriched.groups
27
+ .filter((g) => g.visibility !== 'internal')
28
+ .map((g) => ({
29
+ ...g,
30
+ operations: g.operations.filter((op) => op.visibility !== 'internal'),
31
+ }))
32
+ .filter((g) => g.operations.length > 0)
33
+ : enriched.groups;
34
+ const hasSSE = visibleGroups.some((g) => g.operations.some((op) => op.isEventStream));
23
35
  // ── ts-morph: model type files ───────────────────────────────────────────
24
36
  let domainTypeFiles = [];
25
37
  try {
@@ -32,8 +44,9 @@ export class TypeScriptAdapter {
32
44
  }
33
45
  // ── Handlebars: all other TypeScript files ───────────────────────────────
34
46
  // Domain files
35
- const domainTemplate = getTemplate('typescript', 'domain');
36
- for (const group of enriched.groups) {
47
+ const domainTemplateName = sdkStyle === 'class' ? 'domain-class' : 'domain';
48
+ const domainTemplate = getTemplate('typescript', domainTemplateName);
49
+ for (const group of visibleGroups) {
37
50
  try {
38
51
  const imports = collectImports(group.operations, schemaNames);
39
52
  const groupHasSSE = group.operations.some((op) => op.isEventStream);
@@ -47,7 +60,7 @@ export class TypeScriptAdapter {
47
60
  }
48
61
  }
49
62
  // Domain index barrel
50
- tryEmit(files, warnings, join('src', 'domain', 'index.ts'), () => getTemplate('typescript', 'domain-index')({ groups: enriched.groups }));
63
+ tryEmit(files, warnings, join('src', 'domain', 'index.ts'), () => getTemplate('typescript', 'domain-index')({ groups: visibleGroups }));
51
64
  // Types
52
65
  tryEmit(files, warnings, join('src', 'types', 'common.ts'), () => getTemplate('typescript', 'types-common')({}));
53
66
  tryEmit(files, warnings, join('src', 'types', 'errors.ts'), () => getTemplate('typescript', 'types-errors')({}));
@@ -67,17 +80,21 @@ export class TypeScriptAdapter {
67
80
  tryEmit(files, warnings, join('src', 'utils', 'query.ts'), () => getTemplate('typescript', 'utils-query')({}));
68
81
  tryEmit(files, warnings, join('src', 'utils', 'index.ts'), () => getTemplate('typescript', 'utils-index')({}));
69
82
  // Client, index, package.json, tsconfig, README
70
- tryEmit(files, warnings, join('src', 'client.ts'), () => getTemplate('typescript', 'client')({
83
+ const clientTemplateName = sdkStyle === 'class' ? 'client-class' : 'client';
84
+ tryEmit(files, warnings, join('src', 'client.ts'), () => getTemplate('typescript', clientTemplateName)({
71
85
  meta: enriched.meta,
72
- groups: enriched.groups,
86
+ groups: visibleGroups,
73
87
  securitySchemes: enriched.securitySchemes,
74
88
  hasSSE,
89
+ clientType,
75
90
  }));
76
- tryEmit(files, warnings, 'index.ts', () => getTemplate('typescript', 'index')({
91
+ const indexTemplateName = sdkStyle === 'class' ? 'index-class' : 'index';
92
+ tryEmit(files, warnings, 'index.ts', () => getTemplate('typescript', indexTemplateName)({
77
93
  meta: enriched.meta,
78
- groups: enriched.groups,
94
+ groups: visibleGroups,
79
95
  schemas: enriched.schemas,
80
96
  hasSSE,
97
+ clientType,
81
98
  }));
82
99
  const resolvedPackageVersion = enriched.meta.packageVersion
83
100
  ? enriched.meta.packageVersion
@@ -90,7 +107,7 @@ export class TypeScriptAdapter {
90
107
  tryEmit(files, warnings, 'tsconfig.json', () => getTemplate('typescript', 'tsconfig')({}));
91
108
  tryEmit(files, warnings, 'README.md', () => getTemplate('typescript', 'readme')({
92
109
  ...enriched.meta,
93
- groups: enriched.groups,
110
+ groups: visibleGroups,
94
111
  schemas: enriched.schemas,
95
112
  securitySchemes: enriched.securitySchemes,
96
113
  hasSSE,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/typescript/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/typescript/index.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -17,7 +17,7 @@ program
17
17
  .version(pkg.version);
18
18
  program
19
19
  .command('generate')
20
- .description('Generate an SDK from an sdk-manifold/v1 manifest')
20
+ .description('Generate an SDK from an sdk-manifold/v1 manifest file')
21
21
  .requiredOption('-i, --input <path>', 'Path to the sdk-manifold/v1 manifest JSON file')
22
22
  .requiredOption('-o, --output <dir>', 'Output directory for the generated SDK')
23
23
  .option('-n, --name <name>', 'Override the SDK package name')
@@ -26,6 +26,8 @@ program
26
26
  .option('--base-url <url>', 'Override the base URL')
27
27
  .option('--dry-run', 'Preview output without writing files')
28
28
  .option('--check', 'Exit non-zero if generated output is out of date')
29
+ .option('--sdk-style <style>', 'SDK style: functional (default) or class (Resend-style: new MySDK("key"))')
30
+ .option('--client-type <type>', 'Client type: internal (full options, default) or public (auth key only, baseUrl baked in)')
29
31
  .action(async (opts) => {
30
32
  if (opts.dryRun && opts.check) {
31
33
  console.error('\n✗ --dry-run and --check are mutually exclusive');
@@ -41,6 +43,8 @@ program
41
43
  baseUrl: opts.baseUrl,
42
44
  dryRun: opts.dryRun,
43
45
  check: opts.check,
46
+ sdkStyle: opts.sdkStyle,
47
+ clientType: opts.clientType,
44
48
  };
45
49
  try {
46
50
  const result = await generate(config);
@@ -82,5 +86,19 @@ program
82
86
  process.exit(1);
83
87
  }
84
88
  });
89
+ program
90
+ .command('run')
91
+ .description('Boot an instrumented Fastify app with TESSERACT_GENERATE=1 to collect routes and generate an SDK.\n' +
92
+ 'The app must register `tesseractPlugin` from `@apollo-deploy/tesseract/fastify`.')
93
+ .argument('<app>', 'Path to the compiled app entry-point (e.g. dist/app.js)')
94
+ .action(async (appPath) => {
95
+ const { spawnSync } = await import('node:child_process');
96
+ const resolved = resolve(appPath);
97
+ const result = spawnSync(process.execPath, [resolved], {
98
+ env: { ...process.env, TESSERACT_GENERATE: '1' },
99
+ stdio: 'inherit',
100
+ });
101
+ process.exit(result.status ?? 0);
102
+ });
85
103
  program.parse();
86
104
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}