ts-procedures 8.2.1 → 8.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/agent_config/claude-code/skills/ts-procedures/SKILL.md +5 -1
  2. package/agent_config/claude-code/skills/ts-procedures/api-reference.md +3 -1
  3. package/agent_config/claude-code/skills/ts-procedures/patterns.md +30 -6
  4. package/agent_config/copilot/copilot-instructions.md +10 -6
  5. package/agent_config/cursor/cursorrules +10 -6
  6. package/build/codegen/emit-errors.integration.test.js +22 -0
  7. package/build/codegen/emit-errors.integration.test.js.map +1 -1
  8. package/build/implementations/http/error-taxonomy.d.ts +40 -0
  9. package/build/implementations/http/error-taxonomy.js +57 -5
  10. package/build/implementations/http/error-taxonomy.js.map +1 -1
  11. package/build/implementations/http/error-taxonomy.test.js +95 -1
  12. package/build/implementations/http/error-taxonomy.test.js.map +1 -1
  13. package/build/implementations/http/hono/handlers/http.js +19 -24
  14. package/build/implementations/http/hono/handlers/http.js.map +1 -1
  15. package/build/implementations/http/hono/handlers/http.test.js +64 -1
  16. package/build/implementations/http/hono/handlers/http.test.js.map +1 -1
  17. package/docs/client-and-codegen.md +8 -0
  18. package/docs/core.md +2 -0
  19. package/docs/http-integrations.md +4 -0
  20. package/package.json +1 -1
  21. package/src/codegen/emit-errors.integration.test.ts +26 -0
  22. package/src/implementations/http/error-taxonomy.test.ts +111 -0
  23. package/src/implementations/http/error-taxonomy.ts +60 -5
  24. package/src/implementations/http/hono/handlers/http.test.ts +69 -1
  25. package/src/implementations/http/hono/handlers/http.ts +19 -21
@@ -20,6 +20,8 @@ allowed-tools: Read, Write, Edit, Grep, Glob
20
20
 
21
21
  You are assisting a developer using **ts-procedures**, a TypeScript RPC framework that creates type-safe, schema-validated procedure calls with a single function definition. Always follow these rules when writing or reviewing code.
22
22
 
23
+ > **ESM-only.** All ts-procedures packages ship ESM only — the consuming project needs `"type": "module"` in `package.json` and `moduleResolution` set to `"Bundler"` or `"NodeNext"` in `tsconfig.json`. (The full setup guide lives in the package `docs/`.)
24
+
23
25
  ## Modes
24
26
 
25
27
  This skill has three modes, selected by the **first whitespace-delimited word of `$ARGUMENTS`**:
@@ -94,6 +96,8 @@ Uses **TypeBox** for schema definitions (`import { Type } from 'typebox'`):
94
96
 
95
97
  AJV config: `allErrors: true`, `coerceTypes: true`, `removeAdditional: true`
96
98
 
99
+ > **Composing schemas:** the bundled TypeBox does **not** export `Type.Composite`. Extend a schema with a flat property spread — `Type.Object({ ...Base.properties, name: Type.String() })` — which also keeps the generated JSON Schema a single `object` instead of an `allOf`.
100
+
97
101
  ## Error Classes
98
102
 
99
103
  | Error Class | Trigger | Key Properties |
@@ -121,7 +125,7 @@ const appErrors = defineErrorTaxonomy({
121
125
  new HonoAppBuilder({ errors: appErrors, unknownError: { toResponse: () => ({ error: '...' }) } })
122
126
  ```
123
127
 
124
- Per-route narrowing: `APIConfig<keyof typeof appErrors & string>` / `RPCConfig<keyof typeof appErrors & string>` with a `errors: [...]` array on the config. Generated `_errors.ts` emits runtime classes — clients catch with `instanceof ${Service}Errors.${Name}` when using `create${Service}Client`.
128
+ Per-route narrowing: add an `errors: [...]` array on the config. For `RPCConfig` routes narrow the factory via `RPCConfig<keyof typeof appErrors & string>`. For `CreateHttp` routes do **not** pass an explicit generic (that binds `TName` and breaks `schema.req`/`schema.res` inference) — instead attach `satisfies (keyof typeof appErrors & string)[]` to the `errors` array. Generated `_errors.ts` emits runtime classes — clients catch with `instanceof ${Service}Errors.${Name}` when using `create${Service}Client`.
125
129
 
126
130
  Full contract: `docs/http-integrations.md § Error Handling` (canonical) and `api-reference.md § Error Taxonomy API`.
127
131
 
@@ -222,7 +222,9 @@ function CreateHttp<
222
222
 
223
223
  ### Return Shape
224
224
 
225
- - **No `schema.res.headers`:** handler returns body bare (`T`).
225
+ The `{ body, headers }` envelope is **opt-in**, gated entirely on `schema.res.headers`. The framework never duck-types the return value for a `body` key, so a domain model may safely carry its own `body` / `headers` fields.
226
+
227
+ - **No `schema.res.headers`:** handler returns the body bare (`T`) — serialized verbatim.
226
228
  - **`schema.res.headers` declared:** handler returns `{ body: B, headers: H }`.
227
229
 
228
230
  ### Throws
@@ -65,6 +65,22 @@ const { GetUser } = Create(
65
65
 
66
66
  ---
67
67
 
68
+ ## Composing / Extending Schemas
69
+
70
+ The TypeBox build bundled with ts-procedures does **not** export `Type.Composite`. Compose schemas with a flat object spread of the source `.properties` instead. This also keeps the generated JSON Schema a single `object` rather than an `allOf` (which codegen and AJV handle more cleanly).
71
+
72
+ ```typescript
73
+ // DON'T: Type.Composite is not available in the bundled TypeBox
74
+ // const User = Type.Composite([Base, Type.Object({ name: Type.String() })])
75
+
76
+ // DO: flat spread of the base schema's properties
77
+ const Base = Type.Object({ id: Type.String() })
78
+ const User = Type.Object({ ...Base.properties, name: Type.String() })
79
+ // User → a single { type: 'object', properties: { id, name } } JSON Schema
80
+ ```
81
+
82
+ ---
83
+
68
84
  ## Error Handling in Handlers
69
85
 
70
86
  Use `ctx.error()` for business logic errors. Never throw raw Error instances.
@@ -160,22 +176,28 @@ Key rules:
160
176
  - The core wraps any non-`ProcedureError` thrown from a handler into a `ProcedureError` with `.cause` set. The resolver unwraps this automatically so your taxonomy sees the real class.
161
177
  - Two peer modes: declarative (`errors` + `unknownError`) or imperative (`onError`). Both are first-class. When neither is configured, the builder falls through to a hard default (`{ error: message }`, 500).
162
178
  - `onCatch`'s `raw` is the framework request object (Hono `Context`) typed as `unknown` — cast at the use site.
179
+ - **Typed client classes are automatic for `{ class, statusCode }`-only entries** (their default `{ name, message }` body is self-describing). You only need to add an explicit `schema` when you (a) supply a custom `toResponse` — the framework won't guess the shape — or (b) document a raw `ErrorDoc` (via `documentError(...)` / a `config.errors` array). Without a schema those fall back to the untyped `ClientHttpError` on the client.
163
180
 
164
181
  ### Per-route error declaration (typed)
165
182
 
166
- Declare which errors each procedure may emit via the `errors` field on `CreateHttp` / `Create` config. These populate the DocEnvelope per-route so generated clients can type `catch` blocks precisely. For compile-time typo protection, pass the taxonomy key type as the `TErrorKey` generic on `CreateHttp`.
183
+ Declare which errors each procedure may emit via the `errors` field on `CreateHttp` / `Create` config. These populate the DocEnvelope per-route so generated clients can type `catch` blocks precisely. For compile-time typo protection, attach a `satisfies` clause to the `errors` array rather than supplying an explicit generic.
184
+
185
+ > Do **not** write `CreateHttp<keyof typeof appErrors & string>(...)`. `CreateHttp` is generic over `<TName, TReq, TRes, TErrorKey>` (see api-reference.md and `TCreateHttpConfig`), so a single explicit type argument binds `TName` and breaks inference of the `schema.req` / `schema.res` channels. Let all four type parameters infer, and use `satisfies` to keep the `errors` keys typo-safe.
167
186
 
168
187
  ```typescript
169
188
  import { appErrors } from './errors/taxonomy'
170
189
 
171
190
  const API = Procedures<Ctx>()
172
191
 
173
- // CreateHttp accepts TErrorKey as a generic for compile-time protection
174
- API.CreateHttp<keyof typeof appErrors & string>('GetUser', {
192
+ API.CreateHttp('GetUser', {
175
193
  path: '/users/:id',
176
194
  method: 'get',
177
- errors: ['UseCaseError', 'AuthError'], // typed against taxonomy keys; typos are TS errors
178
- schema: { req: { /* ... */ } },
195
+ // typed against taxonomy keys; typos are TS errors — without binding TName/TReq/TRes
196
+ errors: ['UseCaseError', 'AuthError'] satisfies (keyof typeof appErrors & string)[],
197
+ schema: {
198
+ req: { /* ... */ },
199
+ res: { /* ... */ },
200
+ },
179
201
  }, async (ctx, params) => { /* ... */ })
180
202
  ```
181
203
 
@@ -669,7 +691,9 @@ API.CreateHttp('UpdateUserField', {
669
691
 
670
692
  ## Response Headers (v8 `CreateHttp`)
671
693
 
672
- When `schema.res.headers` is declared, the handler must return `{ body, headers }` instead of the body bare. The client surfaces initial response headers on `TypedStream.headers` for streaming routes.
694
+ The `{ body, headers }` envelope is strictly **opt-in**. By default the handler's return value is serialized verbatim as the response body — the framework does **not** duck-type the result looking for a `body` key. The envelope is only expected when `schema.res.headers` is declared; in that case (and only then) the handler must return `{ body, headers }` instead of the body bare. The client surfaces initial response headers on `TypedStream.headers` for streaming routes.
695
+
696
+ > Because the envelope is opt-in, a domain model may safely have its own `body` or `headers` field — without `schema.res.headers` declared, `{ id, body: '...' }` is serialized as-is, never reinterpreted as an envelope.
673
697
 
674
698
  ```typescript
675
699
  API.CreateHttp('DownloadReport', {
@@ -51,7 +51,7 @@ import type { DocEnvelope, HeaderDoc, ErrorDoc } from 'ts-procedures/http-docs'
51
51
 
52
52
  4. **Stream handlers always have ctx.signal (guaranteed AbortSignal).** Standard handlers get it when HTTP implementations provide it. Check `signal.reason === 'stream-completed'` to distinguish normal completion from client disconnect.
53
53
 
54
- 5. **Use TypeBox for schemas** (`import { Type } from 'typebox'`). Plain JSON Schema objects are not recognized. AJV config: `allErrors: true`, `coerceTypes: true`, `removeAdditional: true`.
54
+ 5. **Use TypeBox for schemas** (`import { Type } from 'typebox'`). Plain JSON Schema objects are not recognized. AJV config: `allErrors: true`, `coerceTypes: true`, `removeAdditional: true`. The bundled TypeBox does **not** export `Type.Composite` — compose schemas with a flat property spread (`Type.Object({ ...Base.properties, name: Type.String() })`), which also keeps the generated JSON Schema a single `object` instead of an `allOf`.
55
55
 
56
56
  6. **One factory per access level.** Separate `Procedures()` factories for public, authenticated, admin contexts.
57
57
 
@@ -237,16 +237,18 @@ Handlers throw the error classes directly — the builder auto-serializes. `onEr
237
237
 
238
238
  ### Per-route errors (typed)
239
239
 
240
- `APIConfig` and `RPCConfig` are generic over `TErrorKey extends string = string`. Narrow to your taxonomy for compile-time typo protection and route-level error doc entries:
240
+ Declare a route's errors via the `errors` field on the `CreateHttp` config. For compile-time typo protection, attach a `satisfies` clause to the array do NOT pass an explicit generic. `CreateHttp` is generic over `<TName, TReq, TRes, TErrorKey>`, so a single type argument binds `TName` and breaks `schema.req` / `schema.res` inference:
241
241
 
242
242
  ```typescript
243
- import { APIConfig } from 'ts-procedures/http'
244
243
  import { DocRegistry } from 'ts-procedures/http-docs'
245
244
 
246
- type MyAPIConfig = APIConfig<keyof typeof appErrors & string>
247
- const API = Procedures<Ctx, MyAPIConfig>()
245
+ const API = Procedures<Ctx>()
248
246
 
249
- API.Create('GetUser', { path: '/users/:id', method: 'get', errors: ['UseCaseError'], /* ... */ }, ...)
247
+ API.CreateHttp('GetUser', {
248
+ path: '/users/:id', method: 'get',
249
+ errors: ['UseCaseError'] satisfies (keyof typeof appErrors & string)[],
250
+ schema: { req: { pathParams: Type.Object({ id: Type.String() }) } },
251
+ }, async (ctx, { pathParams }) => fetchUser(pathParams.id))
250
252
 
251
253
  // Seed envelope errors from the taxonomy + framework defaults in one call
252
254
  const envelope = new DocRegistry({ errors: appErrors, basePath: '/api' }).from(apiApp).toJSON()
@@ -272,6 +274,8 @@ try {
272
274
  }
273
275
  ```
274
276
 
277
+ Typed classes are generated automatically for taxonomy entries declared with just `{ class, statusCode }` (their default `{ name, message }` body is self-describing). Add an explicit `schema` only when you give an entry a custom `toResponse` (shape can't be inferred) or document a raw `ErrorDoc` (via `documentError(...)` / a `config.errors` array) — without a schema those dispatch as the untyped `ClientHttpError`.
278
+
275
279
  Per-route error unions: routes with `errors: [...]` get an `Errors` type in their namespace (e.g. `Users.GetUser.Errors = ApiErrors.UseCaseError | ApiErrors.AuthError`).
276
280
 
277
281
  - Generated client error handling: catch the framework classes (`ClientHttpError`, `ClientNetworkError`, `ClientTimeoutError`, `ClientAbortError`), not raw `DOMException`/`TypeError` — the framework normalizes platform errors at the `executeCall` boundary, so raw platform errors no longer reach `catch` blocks after 7.0.0 (original is on `error.cause`). Use the `.safe()` sibling on RPC/API callables for an exhaustive `Result<T, E>` switch (`ok`, `typed`, `http`, `network`, `timeout`, `aborted`, `parse`, `usage`, `unknown`). Streams keep the throwing form — no `.safe()`.
@@ -51,7 +51,7 @@ import type { DocEnvelope, HeaderDoc, ErrorDoc } from 'ts-procedures/http-docs'
51
51
 
52
52
  4. **Stream handlers always have ctx.signal (guaranteed AbortSignal).** Standard handlers get it when HTTP implementations provide it. Check `signal.reason === 'stream-completed'` to distinguish normal completion from client disconnect.
53
53
 
54
- 5. **Use TypeBox for schemas** (`import { Type } from 'typebox'`). Plain JSON Schema objects are not recognized. AJV config: `allErrors: true`, `coerceTypes: true`, `removeAdditional: true`.
54
+ 5. **Use TypeBox for schemas** (`import { Type } from 'typebox'`). Plain JSON Schema objects are not recognized. AJV config: `allErrors: true`, `coerceTypes: true`, `removeAdditional: true`. The bundled TypeBox does **not** export `Type.Composite` — compose schemas with a flat property spread (`Type.Object({ ...Base.properties, name: Type.String() })`), which also keeps the generated JSON Schema a single `object` instead of an `allOf`.
55
55
 
56
56
  6. **One factory per access level.** Separate `Procedures()` factories for public, authenticated, admin contexts.
57
57
 
@@ -237,16 +237,18 @@ Handlers throw the error classes directly — the builder auto-serializes. `onEr
237
237
 
238
238
  ### Per-route errors (typed)
239
239
 
240
- `APIConfig` and `RPCConfig` are generic over `TErrorKey extends string = string`. Narrow to your taxonomy for compile-time typo protection and route-level error doc entries:
240
+ Declare a route's errors via the `errors` field on the `CreateHttp` config. For compile-time typo protection, attach a `satisfies` clause to the array do NOT pass an explicit generic. `CreateHttp` is generic over `<TName, TReq, TRes, TErrorKey>`, so a single type argument binds `TName` and breaks `schema.req` / `schema.res` inference:
241
241
 
242
242
  ```typescript
243
- import { APIConfig } from 'ts-procedures/http'
244
243
  import { DocRegistry } from 'ts-procedures/http-docs'
245
244
 
246
- type MyAPIConfig = APIConfig<keyof typeof appErrors & string>
247
- const API = Procedures<Ctx, MyAPIConfig>()
245
+ const API = Procedures<Ctx>()
248
246
 
249
- API.Create('GetUser', { path: '/users/:id', method: 'get', errors: ['UseCaseError'], /* ... */ }, ...)
247
+ API.CreateHttp('GetUser', {
248
+ path: '/users/:id', method: 'get',
249
+ errors: ['UseCaseError'] satisfies (keyof typeof appErrors & string)[],
250
+ schema: { req: { pathParams: Type.Object({ id: Type.String() }) } },
251
+ }, async (ctx, { pathParams }) => fetchUser(pathParams.id))
250
252
 
251
253
  // Seed envelope errors from the taxonomy + framework defaults in one call
252
254
  const envelope = new DocRegistry({ errors: appErrors, basePath: '/api' }).from(apiApp).toJSON()
@@ -272,6 +274,8 @@ try {
272
274
  }
273
275
  ```
274
276
 
277
+ Typed classes are generated automatically for taxonomy entries declared with just `{ class, statusCode }` (their default `{ name, message }` body is self-describing). Add an explicit `schema` only when you give an entry a custom `toResponse` (shape can't be inferred) or document a raw `ErrorDoc` (via `documentError(...)` / a `config.errors` array) — without a schema those dispatch as the untyped `ClientHttpError`.
278
+
275
279
  Per-route error unions: routes with `errors: [...]` get an `Errors` type in their namespace (e.g. `Users.GetUser.Errors = ApiErrors.UseCaseError | ApiErrors.AuthError`).
276
280
 
277
281
  - Generated client error handling: catch the framework classes (`ClientHttpError`, `ClientNetworkError`, `ClientTimeoutError`, `ClientAbortError`), not raw `DOMException`/`TypeError` — the framework normalizes platform errors at the `executeCall` boundary, so raw platform errors no longer reach `catch` blocks after 7.0.0 (original is on `error.cause`). Use the `.safe()` sibling on RPC/API callables for an exhaustive `Result<T, E>` switch (`ok`, `typed`, `http`, `network`, `timeout`, `aborted`, `parse`, `usage`, `unknown`). Streams keep the throwing form — no `.safe()`.
@@ -10,6 +10,8 @@ import { tmpdir } from 'node:os';
10
10
  import { join } from 'node:path';
11
11
  import { execSync } from 'node:child_process';
12
12
  import { generateClient } from './index.js';
13
+ import { emitErrorsFile } from './emit-errors.js';
14
+ import { defineErrorTaxonomy, taxonomyToErrorDocs, } from '../implementations/http/error-taxonomy.js';
13
15
  describe('generated _errors.ts — runtime behavior', () => {
14
16
  const envelope = {
15
17
  basePath: '/api',
@@ -158,5 +160,25 @@ describe('generated _errors.ts — runtime behavior', () => {
158
160
  rmSync(outDir, { recursive: true, force: true });
159
161
  }
160
162
  }, 30000);
163
+ // ---------------------------------------------------------------------------
164
+ // Taxonomy-derived envelope: a class+statusCode-only entry must produce a
165
+ // typed client error class + registry entry (previously schema-less → skipped).
166
+ // ---------------------------------------------------------------------------
167
+ it('emits a typed class + registry entry for a class+statusCode-only taxonomy entry', async () => {
168
+ const taxonomy = defineErrorTaxonomy({
169
+ // Only { class, statusCode } — the common case. No schema, no toResponse.
170
+ AuthError: { class: class AuthError extends Error {
171
+ }, statusCode: 401 },
172
+ });
173
+ const errorDocs = taxonomyToErrorDocs(taxonomy);
174
+ // The synthesized schema is what makes codegen emit a class for it.
175
+ const result = await emitErrorsFile(errorDocs);
176
+ expect(result).toBeDefined();
177
+ expect(result).toContain('export class AuthError');
178
+ expect(result).toContain('export const ErrorRegistry = {');
179
+ // Precise registry membership — `^\s*AuthError,$` avoids matching a
180
+ // substring like `MyAuthError,` or an occurrence in a comment.
181
+ expect(result).toMatch(/^\s*AuthError,$/m);
182
+ });
161
183
  });
162
184
  //# sourceMappingURL=emit-errors.integration.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emit-errors.integration.test.js","sourceRoot":"","sources":["../../src/codegen/emit-errors.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit-errors.integration.test.js","sourceRoot":"","sources":["../../src/codegen/emit-errors.integration.test.ts"],"names":[],"mappings":"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"}
@@ -189,9 +189,49 @@ export declare const defaultErrorTaxonomy: {
189
189
  * via `DocRegistry.defaultErrors()`.
190
190
  */
191
191
  export declare const PROCEDURE_REGISTRATION_ERROR_DOC: ErrorDoc;
192
+ /**
193
+ * The default response body for an entry without a custom `toResponse`:
194
+ * `{ name: <key>, message }`. This is the single source of truth for the default
195
+ * wire shape — `resolveErrorResponse` serializes with it and
196
+ * {@link defaultErrorSchema} describes it. Keeping both derived from one place
197
+ * means the synthesized schema can never drift from what the runtime emits.
198
+ */
199
+ export declare function defaultErrorBody(key: string, err: unknown): {
200
+ name: string;
201
+ message: string;
202
+ };
203
+ /**
204
+ * Synthesizes the response-body JSON Schema for a taxonomy entry that ships
205
+ * neither an explicit `schema` nor a custom `toResponse`.
206
+ *
207
+ * The common case for `defineErrorTaxonomy` is `{ class, statusCode }` only.
208
+ * For those entries the default `toResponse` (see `resolveErrorResponse`) emits
209
+ * exactly `{ name: <key>, message }`. Without a schema, `taxonomyToErrorDocs`
210
+ * produced a schema-less `ErrorDoc`, and codegen (`emit-errors.ts`) only emits a
211
+ * typed client error class for docs that carry a schema — so these entries
212
+ * silently fell back to the untyped `ClientHttpError`, while framework errors
213
+ * (which ship schemas) worked. That mismatch was confusing.
214
+ *
215
+ * By describing the default envelope here, the entry becomes self-describing and
216
+ * codegen emits a typed client error class with zero ceremony from the consumer.
217
+ *
218
+ * Rules:
219
+ * - Entry has an explicit `schema` → caller keeps it (this is not consulted).
220
+ * - Entry has a custom `toResponse` but no `schema` → returns `undefined`; the
221
+ * body shape is unknown and we never guess it.
222
+ * - Entry has neither → returns the `{ name: const <key>, message }` schema that
223
+ * describes {@link defaultErrorBody} — the exact body the runtime serializes.
224
+ * (An invariant test keeps the two from drifting.)
225
+ */
226
+ export declare function defaultErrorSchema(key: string, entry: ErrorTaxonomyEntry): Record<string, unknown> | undefined;
192
227
  /**
193
228
  * Converts a taxonomy into {@link ErrorDoc} objects suitable for a DocEnvelope.
194
229
  *
230
+ * For entries that supply neither a `schema` nor a custom `toResponse`, the
231
+ * schema of the default `{ name, message }` envelope is synthesized (see
232
+ * {@link defaultErrorSchema}) so client codegen emits a typed error class for
233
+ * them too — matching the behavior of the schema-carrying framework defaults.
234
+ *
195
235
  * @internal Used by `DocRegistry` to merge taxonomy entries into the envelope.
196
236
  * Consumers should pass their taxonomy directly to `new DocRegistry({ errors: taxonomy })`
197
237
  * rather than calling this helper — the constructor handles the conversion.
@@ -145,9 +145,64 @@ export const PROCEDURE_REGISTRATION_ERROR_DOC = {
145
145
  required: ['name', 'procedureName', 'message'],
146
146
  },
147
147
  };
148
+ /**
149
+ * The default response body for an entry without a custom `toResponse`:
150
+ * `{ name: <key>, message }`. This is the single source of truth for the default
151
+ * wire shape — `resolveErrorResponse` serializes with it and
152
+ * {@link defaultErrorSchema} describes it. Keeping both derived from one place
153
+ * means the synthesized schema can never drift from what the runtime emits.
154
+ */
155
+ export function defaultErrorBody(key, err) {
156
+ return {
157
+ name: key,
158
+ message: err instanceof Error ? err.message : String(err),
159
+ };
160
+ }
161
+ /**
162
+ * Synthesizes the response-body JSON Schema for a taxonomy entry that ships
163
+ * neither an explicit `schema` nor a custom `toResponse`.
164
+ *
165
+ * The common case for `defineErrorTaxonomy` is `{ class, statusCode }` only.
166
+ * For those entries the default `toResponse` (see `resolveErrorResponse`) emits
167
+ * exactly `{ name: <key>, message }`. Without a schema, `taxonomyToErrorDocs`
168
+ * produced a schema-less `ErrorDoc`, and codegen (`emit-errors.ts`) only emits a
169
+ * typed client error class for docs that carry a schema — so these entries
170
+ * silently fell back to the untyped `ClientHttpError`, while framework errors
171
+ * (which ship schemas) worked. That mismatch was confusing.
172
+ *
173
+ * By describing the default envelope here, the entry becomes self-describing and
174
+ * codegen emits a typed client error class with zero ceremony from the consumer.
175
+ *
176
+ * Rules:
177
+ * - Entry has an explicit `schema` → caller keeps it (this is not consulted).
178
+ * - Entry has a custom `toResponse` but no `schema` → returns `undefined`; the
179
+ * body shape is unknown and we never guess it.
180
+ * - Entry has neither → returns the `{ name: const <key>, message }` schema that
181
+ * describes {@link defaultErrorBody} — the exact body the runtime serializes.
182
+ * (An invariant test keeps the two from drifting.)
183
+ */
184
+ export function defaultErrorSchema(key, entry) {
185
+ if (entry.schema)
186
+ return entry.schema;
187
+ if (entry.toResponse)
188
+ return undefined;
189
+ return {
190
+ type: 'object',
191
+ properties: {
192
+ name: { type: 'string', const: key },
193
+ message: { type: 'string' },
194
+ },
195
+ required: ['name', 'message'],
196
+ };
197
+ }
148
198
  /**
149
199
  * Converts a taxonomy into {@link ErrorDoc} objects suitable for a DocEnvelope.
150
200
  *
201
+ * For entries that supply neither a `schema` nor a custom `toResponse`, the
202
+ * schema of the default `{ name, message }` envelope is synthesized (see
203
+ * {@link defaultErrorSchema}) so client codegen emits a typed error class for
204
+ * them too — matching the behavior of the schema-carrying framework defaults.
205
+ *
151
206
  * @internal Used by `DocRegistry` to merge taxonomy entries into the envelope.
152
207
  * Consumers should pass their taxonomy directly to `new DocRegistry({ errors: taxonomy })`
153
208
  * rather than calling this helper — the constructor handles the conversion.
@@ -157,7 +212,7 @@ export function taxonomyToErrorDocs(taxonomy) {
157
212
  name: key,
158
213
  statusCode: entry.statusCode,
159
214
  description: entry.description ?? '',
160
- schema: entry.schema,
215
+ schema: defaultErrorSchema(key, entry),
161
216
  }));
162
217
  }
163
218
  /**
@@ -207,10 +262,7 @@ export function resolveErrorResponse(params) {
207
262
  continue;
208
263
  const rawBody = entry.toResponse
209
264
  ? entry.toResponse(candidate, { key })
210
- : {
211
- name: key,
212
- message: candidate instanceof Error ? candidate.message : String(candidate),
213
- };
265
+ : defaultErrorBody(key, candidate);
214
266
  const body = ensureName(rawBody, key);
215
267
  return {
216
268
  statusCode: entry.statusCode,
@@ -1 +1 @@
1
- {"version":3,"file":"error-taxonomy.js","sourceRoot":"","sources":["../../../src/implementations/http/error-taxonomy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-taxonomy.js","sourceRoot":"","sources":["../../../src/implementations/http/error-taxonomy.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { describe, expect, test } from 'vitest';
2
2
  import { ProcedureError, ProcedureValidationError, ProcedureYieldValidationError, } from '../../errors.js';
3
- import { defineErrorTaxonomy, resolveErrorResponse, defaultErrorTaxonomy, } from './error-taxonomy.js';
3
+ import * as AJV from 'ajv';
4
+ import { defineErrorTaxonomy, resolveErrorResponse, defaultErrorTaxonomy, taxonomyToErrorDocs, defaultErrorSchema, defaultErrorBody, } from './error-taxonomy.js';
4
5
  class UseCaseError extends Error {
5
6
  externalMsg;
6
7
  internalMsg;
@@ -396,4 +397,97 @@ describe('resolveErrorResponse', () => {
396
397
  expect(Object.keys(taxonomy)).toEqual(['B', 'A']);
397
398
  });
398
399
  });
400
+ describe('taxonomyToErrorDocs', () => {
401
+ test('synthesizes a { name const, message } schema for class+statusCode-only entries', () => {
402
+ const taxonomy = defineErrorTaxonomy({
403
+ AuthError: { class: AuthError, statusCode: 401 },
404
+ });
405
+ const docs = taxonomyToErrorDocs(taxonomy);
406
+ const auth = docs.find((d) => d.name === 'AuthError');
407
+ expect(auth?.statusCode).toBe(401);
408
+ expect(auth?.schema).toEqual({
409
+ type: 'object',
410
+ properties: {
411
+ name: { type: 'string', const: 'AuthError' },
412
+ message: { type: 'string' },
413
+ },
414
+ required: ['name', 'message'],
415
+ });
416
+ });
417
+ test('does NOT synthesize a schema when a custom toResponse is present', () => {
418
+ const taxonomy = defineErrorTaxonomy({
419
+ UseCaseError: {
420
+ class: UseCaseError,
421
+ statusCode: 422,
422
+ toResponse: (err) => ({ name: 'UseCaseError', message: err.externalMsg }),
423
+ },
424
+ });
425
+ const docs = taxonomyToErrorDocs(taxonomy);
426
+ const useCase = docs.find((d) => d.name === 'UseCaseError');
427
+ expect(useCase?.schema).toBeUndefined();
428
+ });
429
+ test('preserves an explicit schema untouched', () => {
430
+ const explicitSchema = {
431
+ type: 'object',
432
+ properties: {
433
+ name: { type: 'string', const: 'UseCaseError' },
434
+ reason: { type: 'string' },
435
+ },
436
+ required: ['name', 'reason'],
437
+ };
438
+ const taxonomy = defineErrorTaxonomy({
439
+ UseCaseError: {
440
+ class: UseCaseError,
441
+ statusCode: 422,
442
+ schema: explicitSchema,
443
+ },
444
+ });
445
+ const docs = taxonomyToErrorDocs(taxonomy);
446
+ const useCase = docs.find((d) => d.name === 'UseCaseError');
447
+ expect(useCase?.schema).toBe(explicitSchema);
448
+ });
449
+ });
450
+ describe('defaultErrorSchema', () => {
451
+ test('synthesizes the { name, message } envelope for a bare entry', () => {
452
+ expect(defaultErrorSchema('AuthError', { class: AuthError, statusCode: 401 })).toEqual({
453
+ type: 'object',
454
+ properties: {
455
+ name: { type: 'string', const: 'AuthError' },
456
+ message: { type: 'string' },
457
+ },
458
+ required: ['name', 'message'],
459
+ });
460
+ });
461
+ test('returns undefined when a custom toResponse is present (shape unknown)', () => {
462
+ expect(defaultErrorSchema('UseCaseError', {
463
+ class: UseCaseError,
464
+ statusCode: 422,
465
+ toResponse: () => ({ name: 'UseCaseError' }),
466
+ })).toBeUndefined();
467
+ });
468
+ test('returns the explicit schema when one is set', () => {
469
+ const schema = { type: 'object', properties: {} };
470
+ expect(defaultErrorSchema('UseCaseError', { class: UseCaseError, statusCode: 422, schema })).toBe(schema);
471
+ });
472
+ });
473
+ // The synthesized schema and the runtime body share one source (defaultErrorBody).
474
+ // This locks the invariant: whatever the default branch serializes must validate
475
+ // against the schema codegen turns into the client error class. If either side
476
+ // changes shape, this fails before consumers see a mismatch.
477
+ describe('defaultErrorBody / defaultErrorSchema invariant', () => {
478
+ const ajv = new AJV.Ajv();
479
+ test('default body validates against the synthesized schema', () => {
480
+ const schema = defaultErrorSchema('AuthError', { class: AuthError, statusCode: 401 });
481
+ const validate = ajv.compile(schema);
482
+ expect(validate(defaultErrorBody('AuthError', new Error('nope')))).toBe(true);
483
+ // A non-Error throw stringifies to a message — still valid.
484
+ expect(validate(defaultErrorBody('AuthError', 'plain string'))).toBe(true);
485
+ // Wrong discriminator name is rejected by the `const` — proves the schema
486
+ // actually constrains the wire shape the client dispatcher keys on.
487
+ expect(validate({ name: 'SomethingElse', message: 'x' })).toBe(false);
488
+ });
489
+ test('default body carries exactly the schema-described keys', () => {
490
+ expect(Object.keys(defaultErrorBody('X', new Error('m'))).sort()).toEqual(['message', 'name']);
491
+ });
492
+ });
399
493
  //# sourceMappingURL=error-taxonomy.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-taxonomy.test.js","sourceRoot":"","sources":["../../../src/implementations/http/error-taxonomy.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-taxonomy.test.js","sourceRoot":"","sources":["../../../src/implementations/http/error-taxonomy.test.ts"],"names":[],"mappings":"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"}