@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.
- package/README.md +330 -11
- package/dist/adapters/types.d.ts +2 -1
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/adapters/typescript/index.d.ts +2 -1
- package/dist/adapters/typescript/index.d.ts.map +1 -1
- package/dist/adapters/typescript/index.js +27 -10
- package/dist/adapters/typescript/index.js.map +1 -1
- package/dist/cli.js +19 -1
- package/dist/cli.js.map +1 -1
- package/dist/collector.d.ts +135 -0
- package/dist/collector.d.ts.map +1 -0
- package/dist/collector.js +159 -0
- package/dist/collector.js.map +1 -0
- package/dist/elysia.d.ts +65 -0
- package/dist/elysia.d.ts.map +1 -0
- package/dist/elysia.js +70 -0
- package/dist/elysia.js.map +1 -0
- package/dist/express.d.ts +74 -0
- package/dist/express.d.ts.map +1 -0
- package/dist/express.js +73 -0
- package/dist/express.js.map +1 -0
- package/dist/fastify.d.ts +135 -0
- package/dist/fastify.d.ts.map +1 -0
- package/dist/fastify.js +188 -0
- package/dist/fastify.js.map +1 -0
- package/dist/hono.d.ts +65 -0
- package/dist/hono.d.ts.map +1 -0
- package/dist/hono.js +64 -0
- package/dist/hono.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/koa.d.ts +69 -0
- package/dist/koa.d.ts.map +1 -0
- package/dist/koa.js +68 -0
- package/dist/koa.js.map +1 -0
- package/dist/nestjs.d.ts +107 -0
- package/dist/nestjs.d.ts.map +1 -0
- package/dist/nestjs.js +143 -0
- package/dist/nestjs.js.map +1 -0
- package/dist/pipeline/intake.d.ts.map +1 -1
- package/dist/pipeline/intake.js +35 -21
- package/dist/pipeline/intake.js.map +1 -1
- package/dist/pipeline/write.d.ts +1 -0
- package/dist/pipeline/write.d.ts.map +1 -1
- package/dist/pipeline/write.js +21 -3
- package/dist/pipeline/write.js.map +1 -1
- package/dist/types/config.d.ts +13 -3
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +5 -2
- package/dist/types/config.js.map +1 -1
- package/dist/types/ir.d.ts +8 -0
- package/dist/types/ir.d.ts.map +1 -1
- package/dist/types/manifest.d.ts +5 -30
- package/dist/types/manifest.d.ts.map +1 -1
- package/dist/types/manifest.js.map +1 -1
- package/dist/types/sdk-module.d.ts +128 -0
- package/dist/types/sdk-module.d.ts.map +1 -0
- package/dist/types/sdk-module.js +50 -0
- package/dist/types/sdk-module.js.map +1 -0
- package/package.json +63 -1
- package/templates/typescript/client-class.hbs +136 -0
- package/templates/typescript/domain-class.hbs +188 -0
- package/templates/typescript/domain.hbs +5 -1
- package/templates/typescript/index-class.hbs +68 -0
package/dist/types/config.js
CHANGED
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
* Manifest-first — no OpenAPI-specific fields.
|
|
5
5
|
*/
|
|
6
6
|
export function resolveConfig(config) {
|
|
7
|
-
if (!config.input)
|
|
8
|
-
throw new Error('Missing required config: input');
|
|
7
|
+
if (!config.input && !config.manifest)
|
|
8
|
+
throw new Error('Missing required config: provide either input (manifest file path) or manifest (object)');
|
|
9
9
|
if (!config.output)
|
|
10
10
|
throw new Error('Missing required config: output');
|
|
11
11
|
return {
|
|
12
12
|
input: config.input,
|
|
13
|
+
manifest: config.manifest,
|
|
13
14
|
output: config.output,
|
|
14
15
|
language: config.language ?? 'typescript',
|
|
15
16
|
packageName: config.packageName,
|
|
@@ -19,6 +20,8 @@ export function resolveConfig(config) {
|
|
|
19
20
|
dryRun: config.dryRun ?? false,
|
|
20
21
|
check: config.check ?? false,
|
|
21
22
|
prettier: config.prettier ?? true,
|
|
23
|
+
sdkStyle: config.sdkStyle ?? 'functional',
|
|
24
|
+
clientType: config.clientType ?? 'internal',
|
|
22
25
|
environments: config.environments,
|
|
23
26
|
};
|
|
24
27
|
}
|
package/dist/types/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8DH,MAAM,UAAU,aAAa,CAAC,MAAuB;IACnD,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;IAClJ,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAEvE,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,YAAY;QACzC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;QAC9B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;QAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;QACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,YAAY;QACzC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,UAAU;QAC3C,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC;AACJ,CAAC"}
|
package/dist/types/ir.d.ts
CHANGED
|
@@ -52,6 +52,8 @@ export interface OperationGroup {
|
|
|
52
52
|
interfaceName: string;
|
|
53
53
|
factoryName: string;
|
|
54
54
|
description?: string;
|
|
55
|
+
/** 'internal' groups are excluded from public SDKs. Default: 'public'. */
|
|
56
|
+
visibility?: 'public' | 'internal';
|
|
55
57
|
operations: Operation[];
|
|
56
58
|
}
|
|
57
59
|
export interface Operation {
|
|
@@ -73,6 +75,12 @@ export interface Operation {
|
|
|
73
75
|
responseType: string;
|
|
74
76
|
statusCode: number;
|
|
75
77
|
deprecated?: boolean;
|
|
78
|
+
/** Custom deprecation message from `SDKRouteConfig.deprecated` when a string is provided. */
|
|
79
|
+
deprecationMessage?: string;
|
|
80
|
+
/** Per-route request timeout in milliseconds. Overrides the transport-level default for this operation. */
|
|
81
|
+
timeout?: number;
|
|
82
|
+
/** 'internal' operations are excluded from public SDKs. Default: 'public'. */
|
|
83
|
+
visibility?: 'public' | 'internal';
|
|
76
84
|
isEventStream?: boolean;
|
|
77
85
|
eventSchema?: string;
|
|
78
86
|
/**
|
package/dist/types/ir.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../src/types/ir.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../src/types/ir.ts"],"names":[],"mappings":"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"}
|
package/dist/types/manifest.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Defined inline so Tesseract has no runtime dependency on @apollo-deploy/sdk-manifold.
|
|
5
5
|
* Keep in sync with the manifold package's manifest.ts.
|
|
6
6
|
*/
|
|
7
|
+
import type { SDKRouteConfig, SDKModuleConfig } from './sdk-module.js';
|
|
7
8
|
export type JsonSchema = {
|
|
8
9
|
$ref: string;
|
|
9
10
|
[k: string]: unknown;
|
|
@@ -57,30 +58,8 @@ export interface ManifestRouteSchema {
|
|
|
57
58
|
headers?: JsonSchema;
|
|
58
59
|
response?: Record<string | number, JsonSchema>;
|
|
59
60
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
transport?: 'json' | 'multipart' | 'binary' | 'stream';
|
|
63
|
-
exclude?: boolean;
|
|
64
|
-
deprecated?: boolean | string;
|
|
65
|
-
description?: string;
|
|
66
|
-
operationId?: string;
|
|
67
|
-
group?: string;
|
|
68
|
-
internal?: boolean;
|
|
69
|
-
timeout?: number;
|
|
70
|
-
prefix?: string;
|
|
71
|
-
requiredHeaders?: Array<{
|
|
72
|
-
name: string;
|
|
73
|
-
paramName: string;
|
|
74
|
-
description?: string;
|
|
75
|
-
}>;
|
|
76
|
-
/**
|
|
77
|
-
* For SSE routes only. When set, overrides the generated return type of the
|
|
78
|
-
* method entirely (bypassing `SSEEvent<T>`) to a named type that is expected
|
|
79
|
-
* to be exported from the schema package. e.g. `"SignalStreamEvent"` emits:
|
|
80
|
-
* `AsyncIterable<SignalStreamEvent>` with the necessary cast at the call site.
|
|
81
|
-
*/
|
|
82
|
-
sseReturnType?: string;
|
|
83
|
-
}
|
|
61
|
+
/** Alias of {@link SDKRouteConfig} — the canonical definition lives in sdk-module.ts. */
|
|
62
|
+
export type ManifestSDKRouteConfig = SDKRouteConfig;
|
|
84
63
|
export interface ManifestRoute {
|
|
85
64
|
method: string | string[];
|
|
86
65
|
url: string;
|
|
@@ -88,12 +67,8 @@ export interface ManifestRoute {
|
|
|
88
67
|
sdk?: ManifestSDKRouteConfig;
|
|
89
68
|
sse?: boolean;
|
|
90
69
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
domain?: string;
|
|
94
|
-
fileName?: string;
|
|
95
|
-
description?: string;
|
|
96
|
-
stability?: 'stable' | 'experimental' | 'internal';
|
|
70
|
+
/** Extends {@link SDKModuleConfig} with manifest-only `routes`. */
|
|
71
|
+
export interface ManifestDomain extends SDKModuleConfig {
|
|
97
72
|
routes: ManifestRoute[];
|
|
98
73
|
}
|
|
99
74
|
export interface BackendManifest {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/types/manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/types/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/types/manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/types/manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2GH,gFAAgF;AAEhF,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,KAAgC,CAAC;IAE7C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,4BAA4B,CAAC,EAAE,CAAC;IAClE,CAAC;IAED,IAAI,GAAG,CAAC,OAAO,KAAK,iBAAiB,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,4CAA4C,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAA2C,CAAC;IAC7D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACzF,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDKModuleConfig — domain-level metadata for an API route module.
|
|
3
|
+
*
|
|
4
|
+
* Used via the `@SDKModule()` class decorator or `sdkDomain()` from
|
|
5
|
+
* `@apollo-deploy/tesseract/fastify`.
|
|
6
|
+
*/
|
|
7
|
+
export interface SDKModuleConfig {
|
|
8
|
+
/**
|
|
9
|
+
* The URL prefix applied to every route in this module.
|
|
10
|
+
* Path parameters use `:param` syntax, e.g. `/signal/projects/:projectId/domains`.
|
|
11
|
+
*/
|
|
12
|
+
prefix: string;
|
|
13
|
+
/**
|
|
14
|
+
* Override the SDK group / domain key.
|
|
15
|
+
* Defaults to the last path segment of `prefix` when omitted.
|
|
16
|
+
*/
|
|
17
|
+
domain?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Override the output file name for this domain's generated file.
|
|
20
|
+
* Defaults to the kebab-cased domain name when omitted.
|
|
21
|
+
*/
|
|
22
|
+
fileName?: string;
|
|
23
|
+
/** Human-readable description surfaced in generated READMEs and JSDoc. */
|
|
24
|
+
description?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Stability level of this domain.
|
|
27
|
+
*
|
|
28
|
+
* - `'stable'` — production-ready, included in all SDK builds.
|
|
29
|
+
* - `'experimental'` — may change; included but annotated.
|
|
30
|
+
* - `'internal'` — excluded from public SDK builds.
|
|
31
|
+
*
|
|
32
|
+
* @default 'stable'
|
|
33
|
+
*/
|
|
34
|
+
stability?: 'stable' | 'experimental' | 'internal';
|
|
35
|
+
}
|
|
36
|
+
/** Symbol used to store SDKModuleConfig on a decorated class. */
|
|
37
|
+
export declare const SDK_MODULE_CONFIG: unique symbol;
|
|
38
|
+
/**
|
|
39
|
+
* Module-level domain registry. Populated by `@SDKModule` and `sdkDomain()`.
|
|
40
|
+
* Read by the Fastify plugin at generation time.
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
export declare const _domainRegistry: Map<string, SDKModuleConfig>;
|
|
44
|
+
/**
|
|
45
|
+
* Class decorator that attaches `SDKModuleConfig` metadata to a Fastify plugin
|
|
46
|
+
* or route module class, and registers the domain in the global `_domainRegistry`
|
|
47
|
+
* for the Fastify plugin to read at generation time.
|
|
48
|
+
*
|
|
49
|
+
* ```ts
|
|
50
|
+
* import { SDKModule } from "@apollo-deploy/tesseract";
|
|
51
|
+
*
|
|
52
|
+
* @SDKModule({
|
|
53
|
+
* prefix: "/users",
|
|
54
|
+
* domain: "users",
|
|
55
|
+
* description: "User management",
|
|
56
|
+
* })
|
|
57
|
+
* export class UsersPlugin {
|
|
58
|
+
* register(app: FastifyInstance) {
|
|
59
|
+
* app.get('/:id', {
|
|
60
|
+
* schema: { response: { 200: UserSchema } },
|
|
61
|
+
* sdk: { methodName: 'getUser' },
|
|
62
|
+
* }, handler);
|
|
63
|
+
* }
|
|
64
|
+
* }
|
|
65
|
+
* ```
|
|
66
|
+
*
|
|
67
|
+
* The config is accessible at runtime via the `SDK_MODULE_CONFIG` symbol:
|
|
68
|
+
* ```ts
|
|
69
|
+
* import { SDK_MODULE_CONFIG } from "@apollo-deploy/tesseract";
|
|
70
|
+
* UsersPlugin[SDK_MODULE_CONFIG]; // SDKModuleConfig
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export declare function SDKModule(config: SDKModuleConfig): <T extends abstract new (...args: unknown[]) => unknown>(target: T, _context: ClassDecoratorContext<T>) => void;
|
|
74
|
+
/**
|
|
75
|
+
* SDKRouteConfig — per-route SDK options, set via `sdk` on a route definition.
|
|
76
|
+
*
|
|
77
|
+
* Canonical definition: `ManifestSDKRouteConfig` is a direct alias of this type.
|
|
78
|
+
*
|
|
79
|
+
* ```ts
|
|
80
|
+
* import type { SDKRouteConfig } from "@apollo-deploy/tesseract";
|
|
81
|
+
*
|
|
82
|
+
* const sdkOptions: SDKRouteConfig = {
|
|
83
|
+
* methodName: "listDomains",
|
|
84
|
+
* internal: true,
|
|
85
|
+
* };
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export interface SDKRouteConfig {
|
|
89
|
+
/** Override the generated method name for this route. */
|
|
90
|
+
methodName?: string;
|
|
91
|
+
/** Request body encoding. Defaults to `'json'`. */
|
|
92
|
+
transport?: 'json' | 'multipart' | 'binary' | 'stream';
|
|
93
|
+
/** Completely exclude this route from the generated SDK. */
|
|
94
|
+
exclude?: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Mark the generated method as deprecated.
|
|
97
|
+
* Pass a string to include a deprecation message in the JSDoc.
|
|
98
|
+
*/
|
|
99
|
+
deprecated?: boolean | string;
|
|
100
|
+
/** Override the JSDoc description for this route's generated method. */
|
|
101
|
+
description?: string;
|
|
102
|
+
/** Override the operationId used for method-name derivation. */
|
|
103
|
+
operationId?: string;
|
|
104
|
+
/**
|
|
105
|
+
* Exclude this route from public SDKs; only emit it in internal SDKs.
|
|
106
|
+
*/
|
|
107
|
+
internal?: boolean;
|
|
108
|
+
/** Per-route request timeout in milliseconds. */
|
|
109
|
+
timeout?: number;
|
|
110
|
+
/** Override the URL prefix for this individual route. */
|
|
111
|
+
prefix?: string;
|
|
112
|
+
/**
|
|
113
|
+
* Declare required headers that should be exposed as explicit parameters
|
|
114
|
+
* on the generated method signature.
|
|
115
|
+
*/
|
|
116
|
+
requiredHeaders?: Array<{
|
|
117
|
+
name: string;
|
|
118
|
+
paramName: string;
|
|
119
|
+
description?: string;
|
|
120
|
+
}>;
|
|
121
|
+
/**
|
|
122
|
+
* SSE routes only. Overrides the generated return type to a named type
|
|
123
|
+
* exported from the schema package, bypassing the default `SSEEvent<T>`
|
|
124
|
+
* wrapper. e.g. `"SignalStreamEvent"` emits `AsyncIterable<SignalStreamEvent>`.
|
|
125
|
+
*/
|
|
126
|
+
sseReturnType?: string;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=sdk-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-module.d.ts","sourceRoot":"","sources":["../../src/types/sdk-module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,UAAU,CAAC;CACpD;AAED,iEAAiE;AACjE,eAAO,MAAM,iBAAiB,eAAsC,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,eAAe,8BAAqC,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,IACvC,CAAC,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAC5D,QAAQ,CAAC,EACT,UAAU,qBAAqB,CAAC,CAAC,CAAC,KACjC,IAAI,CAUR;AAGD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAEvD,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE9B,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IAEH;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/** Symbol used to store SDKModuleConfig on a decorated class. */
|
|
2
|
+
export const SDK_MODULE_CONFIG = Symbol('tesseract:sdkModuleConfig');
|
|
3
|
+
/**
|
|
4
|
+
* Module-level domain registry. Populated by `@SDKModule` and `sdkDomain()`.
|
|
5
|
+
* Read by the Fastify plugin at generation time.
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export const _domainRegistry = new Map();
|
|
9
|
+
/**
|
|
10
|
+
* Class decorator that attaches `SDKModuleConfig` metadata to a Fastify plugin
|
|
11
|
+
* or route module class, and registers the domain in the global `_domainRegistry`
|
|
12
|
+
* for the Fastify plugin to read at generation time.
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { SDKModule } from "@apollo-deploy/tesseract";
|
|
16
|
+
*
|
|
17
|
+
* @SDKModule({
|
|
18
|
+
* prefix: "/users",
|
|
19
|
+
* domain: "users",
|
|
20
|
+
* description: "User management",
|
|
21
|
+
* })
|
|
22
|
+
* export class UsersPlugin {
|
|
23
|
+
* register(app: FastifyInstance) {
|
|
24
|
+
* app.get('/:id', {
|
|
25
|
+
* schema: { response: { 200: UserSchema } },
|
|
26
|
+
* sdk: { methodName: 'getUser' },
|
|
27
|
+
* }, handler);
|
|
28
|
+
* }
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* The config is accessible at runtime via the `SDK_MODULE_CONFIG` symbol:
|
|
33
|
+
* ```ts
|
|
34
|
+
* import { SDK_MODULE_CONFIG } from "@apollo-deploy/tesseract";
|
|
35
|
+
* UsersPlugin[SDK_MODULE_CONFIG]; // SDKModuleConfig
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export function SDKModule(config) {
|
|
39
|
+
return (target, _context) => {
|
|
40
|
+
Object.defineProperty(target, SDK_MODULE_CONFIG, {
|
|
41
|
+
value: config,
|
|
42
|
+
writable: false,
|
|
43
|
+
enumerable: true,
|
|
44
|
+
configurable: false,
|
|
45
|
+
});
|
|
46
|
+
// Register in domain registry so the Fastify plugin can group routes by prefix
|
|
47
|
+
_domainRegistry.set(config.prefix, config);
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=sdk-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-module.js","sourceRoot":"","sources":["../../src/types/sdk-module.ts"],"names":[],"mappings":"AAwCA,iEAAiE;AACjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAErE;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,EAA2B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,SAAS,CAAC,MAAuB;IAC/C,OAAO,CACL,MAAS,EACT,QAAkC,EAC5B,EAAE;QACR,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,iBAAiB,EAAE;YAC/C,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,+EAA+E;QAC/E,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apollo-deploy/tesseract",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Manifest-first SDK generator — turns sdk-manifold/v1 manifests into production-ready TypeScript SDKs",
|
|
6
6
|
"bin": {
|
|
@@ -12,6 +12,30 @@
|
|
|
12
12
|
".": {
|
|
13
13
|
"import": "./dist/index.js",
|
|
14
14
|
"types": "./dist/index.d.ts"
|
|
15
|
+
},
|
|
16
|
+
"./fastify": {
|
|
17
|
+
"import": "./dist/fastify.js",
|
|
18
|
+
"types": "./dist/fastify.d.ts"
|
|
19
|
+
},
|
|
20
|
+
"./express": {
|
|
21
|
+
"import": "./dist/express.js",
|
|
22
|
+
"types": "./dist/express.d.ts"
|
|
23
|
+
},
|
|
24
|
+
"./hono": {
|
|
25
|
+
"import": "./dist/hono.js",
|
|
26
|
+
"types": "./dist/hono.d.ts"
|
|
27
|
+
},
|
|
28
|
+
"./koa": {
|
|
29
|
+
"import": "./dist/koa.js",
|
|
30
|
+
"types": "./dist/koa.d.ts"
|
|
31
|
+
},
|
|
32
|
+
"./elysia": {
|
|
33
|
+
"import": "./dist/elysia.js",
|
|
34
|
+
"types": "./dist/elysia.d.ts"
|
|
35
|
+
},
|
|
36
|
+
"./nestjs": {
|
|
37
|
+
"import": "./dist/nestjs.js",
|
|
38
|
+
"types": "./dist/nestjs.d.ts"
|
|
15
39
|
}
|
|
16
40
|
},
|
|
17
41
|
"files": [
|
|
@@ -47,12 +71,50 @@
|
|
|
47
71
|
"dependencies": {
|
|
48
72
|
"change-case": "^5.4.4",
|
|
49
73
|
"commander": "^12.1.0",
|
|
74
|
+
"fastify-plugin": "^5.1.0",
|
|
50
75
|
"handlebars": "^4.7.8",
|
|
51
76
|
"prettier": "^3.3.0",
|
|
52
77
|
"ts-morph": "^27.0.2"
|
|
53
78
|
},
|
|
79
|
+
"peerDependencies": {
|
|
80
|
+
"fastify": ">=4",
|
|
81
|
+
"express": ">=4",
|
|
82
|
+
"hono": ">=4",
|
|
83
|
+
"koa": ">=2",
|
|
84
|
+
"@koa/router": ">=12",
|
|
85
|
+
"elysia": ">=1",
|
|
86
|
+
"@nestjs/common": ">=9",
|
|
87
|
+
"@nestjs/core": ">=9"
|
|
88
|
+
},
|
|
89
|
+
"peerDependenciesMeta": {
|
|
90
|
+
"fastify": {
|
|
91
|
+
"optional": true
|
|
92
|
+
},
|
|
93
|
+
"express": {
|
|
94
|
+
"optional": true
|
|
95
|
+
},
|
|
96
|
+
"hono": {
|
|
97
|
+
"optional": true
|
|
98
|
+
},
|
|
99
|
+
"koa": {
|
|
100
|
+
"optional": true
|
|
101
|
+
},
|
|
102
|
+
"@koa/router": {
|
|
103
|
+
"optional": true
|
|
104
|
+
},
|
|
105
|
+
"elysia": {
|
|
106
|
+
"optional": true
|
|
107
|
+
},
|
|
108
|
+
"@nestjs/common": {
|
|
109
|
+
"optional": true
|
|
110
|
+
},
|
|
111
|
+
"@nestjs/core": {
|
|
112
|
+
"optional": true
|
|
113
|
+
}
|
|
114
|
+
},
|
|
54
115
|
"devDependencies": {
|
|
55
116
|
"@types/node": "^20.14.0",
|
|
117
|
+
"fastify": "^5.8.5",
|
|
56
118
|
"typescript": "^5.5.0"
|
|
57
119
|
}
|
|
58
120
|
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @generated
|
|
3
|
+
* This file was automatically generated by Tesseract.
|
|
4
|
+
* DO NOT MODIFY THIS FILE DIRECTLY.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
{{#if (eq clientType "public")}}
|
|
8
|
+
import { createTransport, type SDKTransport } from './transport/axios.js';
|
|
9
|
+
{{else}}
|
|
10
|
+
import { createTransport, type SDKTransport, type SDKPlugin, type RequestMeta, type ResponseMeta, type ErrorMeta } from './transport/axios.js';
|
|
11
|
+
{{/if}}
|
|
12
|
+
{{#each groups}}
|
|
13
|
+
import { {{interfaceName}} } from './domain/{{fileName}}.js';
|
|
14
|
+
{{/each}}
|
|
15
|
+
{{#if hasWebhooks}}
|
|
16
|
+
import { createWebhookRegistry, type WebhookRegistry } from './webhooks/handler.js';
|
|
17
|
+
{{/if}}
|
|
18
|
+
|
|
19
|
+
{{#if (eq clientType "internal")}}
|
|
20
|
+
/**
|
|
21
|
+
* Configuration options for {{meta.title}}.
|
|
22
|
+
* Pass as the last argument to the constructor for advanced settings.
|
|
23
|
+
*/
|
|
24
|
+
export interface {{meta.clientName}}Options {
|
|
25
|
+
/** Base URL for the API (default: '{{meta.baseUrl}}') */
|
|
26
|
+
baseUrl?: string;
|
|
27
|
+
/** Request timeout in milliseconds (default: 15000) */
|
|
28
|
+
timeoutMs?: number;
|
|
29
|
+
/** Retry configuration */
|
|
30
|
+
retries?: { attempts: number; backoffMs: number; jitter: boolean; maxBackoffMs?: number };
|
|
31
|
+
/** Custom idempotency key generator */
|
|
32
|
+
getIdempotencyKey?: () => string;
|
|
33
|
+
/** Request telemetry hook */
|
|
34
|
+
onRequest?: (meta: RequestMeta) => void;
|
|
35
|
+
/** Response telemetry hook */
|
|
36
|
+
onResponse?: (meta: ResponseMeta) => void;
|
|
37
|
+
/** Error telemetry hook */
|
|
38
|
+
onError?: (meta: ErrorMeta) => void;
|
|
39
|
+
/** Default headers sent with every request */
|
|
40
|
+
defaultHeaders?: Record<string, string>;
|
|
41
|
+
/** Ordered list of plugins applied to every request and response */
|
|
42
|
+
plugins?: SDKPlugin[];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
{{/if}}
|
|
46
|
+
/**
|
|
47
|
+
* {{meta.title}} SDK client.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* import { {{meta.clientName}} } from '{{meta.packageName}}';
|
|
52
|
+
*
|
|
53
|
+
{{#if securitySchemes.length}}
|
|
54
|
+
{{#each securitySchemes}}
|
|
55
|
+
{{#if (eq type "apiKey")}}
|
|
56
|
+
* const client = new {{../meta.clientName}}('YOUR_{{upperCase configKey}}');
|
|
57
|
+
{{/if}}
|
|
58
|
+
{{#if (and (eq type "http") (eq scheme "bearer"))}}
|
|
59
|
+
* const client = new {{../meta.clientName}}('YOUR_BEARER_TOKEN');
|
|
60
|
+
{{/if}}
|
|
61
|
+
{{/each}}
|
|
62
|
+
{{else}}
|
|
63
|
+
* const client = new {{meta.clientName}}();
|
|
64
|
+
{{/if}}
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export class {{meta.clientName}} {
|
|
68
|
+
{{#if (eq clientType "public")}}
|
|
69
|
+
private readonly _transport: SDKTransport;
|
|
70
|
+
{{else}}
|
|
71
|
+
/** @internal — exposed for advanced use and testing */
|
|
72
|
+
readonly _transport: SDKTransport;
|
|
73
|
+
{{/if}}
|
|
74
|
+
|
|
75
|
+
{{#each groups}}
|
|
76
|
+
/** {{#if description}}{{description}}{{else}}{{interfaceName}} operations{{/if}} */
|
|
77
|
+
readonly {{name}}: {{interfaceName}};
|
|
78
|
+
{{/each}}
|
|
79
|
+
{{#if hasWebhooks}}
|
|
80
|
+
/** Typed webhook event handler registry */
|
|
81
|
+
readonly webhooks: WebhookRegistry;
|
|
82
|
+
{{/if}}
|
|
83
|
+
|
|
84
|
+
constructor(
|
|
85
|
+
{{#if securitySchemes.length}}
|
|
86
|
+
{{#each securitySchemes}}
|
|
87
|
+
{{#if (eq type "apiKey")}}
|
|
88
|
+
readonly {{configKey}}: string,
|
|
89
|
+
{{/if}}
|
|
90
|
+
{{#if (and (eq type "http") (eq scheme "bearer"))}}
|
|
91
|
+
readonly {{configKey}}: string,
|
|
92
|
+
{{/if}}
|
|
93
|
+
{{#if (eq type "oauth2")}}
|
|
94
|
+
readonly {{configKey}}: string,
|
|
95
|
+
{{/if}}
|
|
96
|
+
{{#if (eq type "openIdConnect")}}
|
|
97
|
+
readonly {{configKey}}: string,
|
|
98
|
+
{{/if}}
|
|
99
|
+
{{/each}}
|
|
100
|
+
{{/if}}
|
|
101
|
+
{{#if (eq clientType "internal")}}
|
|
102
|
+
options?: {{meta.clientName}}Options,
|
|
103
|
+
{{/if}}
|
|
104
|
+
) {
|
|
105
|
+
this._transport = createTransport({
|
|
106
|
+
{{#if (eq clientType "public")}}
|
|
107
|
+
baseUrl: '{{meta.baseUrl}}',
|
|
108
|
+
{{else}}
|
|
109
|
+
baseUrl: options?.baseUrl ?? '{{meta.baseUrl}}',
|
|
110
|
+
{{/if}}
|
|
111
|
+
{{#each securitySchemes}}
|
|
112
|
+
{{configKey}}: this.{{configKey}},
|
|
113
|
+
{{/each}}
|
|
114
|
+
{{#if (eq clientType "public")}}
|
|
115
|
+
timeoutMs: 15000,
|
|
116
|
+
retries: { attempts: 3, backoffMs: 400, jitter: true },
|
|
117
|
+
{{else}}
|
|
118
|
+
timeoutMs: options?.timeoutMs ?? 15000,
|
|
119
|
+
retries: options?.retries ?? { attempts: 3, backoffMs: 400, jitter: true },
|
|
120
|
+
getIdempotencyKey: options?.getIdempotencyKey,
|
|
121
|
+
onRequest: options?.onRequest,
|
|
122
|
+
onResponse: options?.onResponse,
|
|
123
|
+
onError: options?.onError,
|
|
124
|
+
defaultHeaders: options?.defaultHeaders,
|
|
125
|
+
plugins: options?.plugins,
|
|
126
|
+
{{/if}}
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
{{#each groups}}
|
|
130
|
+
this.{{name}} = new {{interfaceName}}(this._transport);
|
|
131
|
+
{{/each}}
|
|
132
|
+
{{#if hasWebhooks}}
|
|
133
|
+
this.webhooks = createWebhookRegistry();
|
|
134
|
+
{{/if}}
|
|
135
|
+
}
|
|
136
|
+
}
|