ts-procedures 8.3.0 → 8.5.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.
- package/agent_config/claude-code/skills/ts-procedures/SKILL.md +26 -8
- package/agent_config/claude-code/skills/ts-procedures/templates/client.md +3 -3
- package/agent_config/claude-code/skills/ts-procedures/templates/hono.md +3 -3
- package/agent_config/claude-code/skills/ts-procedures/templates/procedure.md +3 -3
- package/agent_config/claude-code/skills/ts-procedures/templates/stream-procedure.md +3 -3
- package/build/client/call.js +1 -1
- package/build/client/call.js.map +1 -1
- package/build/client/index.d.ts +1 -1
- package/build/client/index.js +23 -1
- package/build/client/index.js.map +1 -1
- package/build/client/index.test.js +87 -0
- package/build/client/index.test.js.map +1 -1
- package/build/client/resolve-options.d.ts +5 -4
- package/build/client/resolve-options.js +18 -7
- package/build/client/resolve-options.js.map +1 -1
- package/build/client/resolve-options.test.js +53 -24
- package/build/client/resolve-options.test.js.map +1 -1
- package/build/client/stream.js +1 -1
- package/build/client/stream.js.map +1 -1
- package/build/client/types.d.ts +31 -3
- package/build/codegen/__fixtures__/make-envelope.d.ts +41 -0
- package/build/codegen/__fixtures__/make-envelope.js +38 -0
- package/build/codegen/__fixtures__/make-envelope.js.map +1 -0
- package/build/codegen/bin/cli.d.ts +15 -0
- package/build/codegen/bin/cli.js +46 -21
- package/build/codegen/bin/cli.js.map +1 -1
- package/build/codegen/bin/cli.test.js +54 -1
- package/build/codegen/bin/cli.test.js.map +1 -1
- package/build/codegen/bin/flag-specs.d.ts +10 -0
- package/build/codegen/bin/flag-specs.js +62 -0
- package/build/codegen/bin/flag-specs.js.map +1 -0
- package/build/codegen/bin/flag-specs.test.d.ts +1 -0
- package/build/codegen/bin/flag-specs.test.js +35 -0
- package/build/codegen/bin/flag-specs.test.js.map +1 -0
- package/build/codegen/collect-models.d.ts +48 -0
- package/build/codegen/collect-models.js +84 -0
- package/build/codegen/collect-models.js.map +1 -0
- package/build/codegen/collect-models.test.d.ts +1 -0
- package/build/codegen/collect-models.test.js +59 -0
- package/build/codegen/collect-models.test.js.map +1 -0
- package/build/codegen/emit-client-runtime.js +1 -0
- package/build/codegen/emit-client-runtime.js.map +1 -1
- package/build/codegen/emit-models.d.ts +26 -0
- package/build/codegen/emit-models.js +53 -0
- package/build/codegen/emit-models.js.map +1 -0
- package/build/codegen/emit-models.test.d.ts +1 -0
- package/build/codegen/emit-models.test.js +42 -0
- package/build/codegen/emit-models.test.js.map +1 -0
- package/build/codegen/emit-scope.d.ts +10 -0
- package/build/codegen/emit-scope.js +119 -34
- package/build/codegen/emit-scope.js.map +1 -1
- package/build/codegen/emit-types.d.ts +26 -1
- package/build/codegen/emit-types.js +27 -5
- package/build/codegen/emit-types.js.map +1 -1
- package/build/codegen/index.d.ts +15 -0
- package/build/codegen/index.js +5 -0
- package/build/codegen/index.js.map +1 -1
- package/build/codegen/model-refs.d.ts +27 -0
- package/build/codegen/model-refs.js +49 -0
- package/build/codegen/model-refs.js.map +1 -0
- package/build/codegen/model-refs.test.d.ts +1 -0
- package/build/codegen/model-refs.test.js +33 -0
- package/build/codegen/model-refs.test.js.map +1 -0
- package/build/codegen/pipeline.d.ts +7 -0
- package/build/codegen/pipeline.js +6 -1
- package/build/codegen/pipeline.js.map +1 -1
- package/build/codegen/schema-walk.d.ts +13 -0
- package/build/codegen/schema-walk.js +26 -0
- package/build/codegen/schema-walk.js.map +1 -0
- package/build/codegen/schema-walk.test.d.ts +1 -0
- package/build/codegen/schema-walk.test.js +35 -0
- package/build/codegen/schema-walk.test.js.map +1 -0
- package/build/codegen/targets/_shared/target-run.d.ts +15 -0
- package/build/codegen/targets/ts/run.js +37 -1
- package/build/codegen/targets/ts/run.js.map +1 -1
- package/build/codegen/targets/ts/shared-models.test.d.ts +1 -0
- package/build/codegen/targets/ts/shared-models.test.js +354 -0
- package/build/codegen/targets/ts/shared-models.test.js.map +1 -0
- package/build/doc-envelope.d.ts +13 -0
- package/build/doc-envelope.js +23 -0
- package/build/doc-envelope.js.map +1 -0
- package/build/doc-envelope.test.d.ts +1 -0
- package/build/doc-envelope.test.js +31 -0
- package/build/doc-envelope.test.js.map +1 -0
- package/build/exports.d.ts +2 -0
- package/build/exports.js +1 -0
- package/build/exports.js.map +1 -1
- package/docs/client-and-codegen.md +163 -0
- package/docs/handoffs/ajsc-named-type-collision.md +134 -0
- package/docs/handoffs/ajsc-named-type-support.md +181 -0
- package/docs/handoffs/shared-models-auto-resolve-response.md +181 -0
- package/docs/superpowers/plans/2026-06-05-dx-feedback-round.md +1292 -0
- package/docs/superpowers/plans/2026-06-06-shared-models-convention-and-diagnostics.md +659 -0
- package/docs/superpowers/specs/2026-06-05-dx-feedback-round-design.md +285 -0
- package/package.json +2 -2
- package/src/client/call.ts +1 -1
- package/src/client/index.test.ts +98 -0
- package/src/client/index.ts +32 -1
- package/src/client/resolve-options.test.ts +73 -26
- package/src/client/resolve-options.ts +23 -9
- package/src/client/stream.ts +1 -1
- package/src/client/types.ts +34 -3
- package/src/codegen/__fixtures__/make-envelope.ts +89 -0
- package/src/codegen/bin/cli.test.ts +65 -1
- package/src/codegen/bin/cli.ts +51 -22
- package/src/codegen/bin/flag-specs.test.ts +38 -0
- package/src/codegen/bin/flag-specs.ts +71 -0
- package/src/codegen/collect-models.test.ts +68 -0
- package/src/codegen/collect-models.ts +125 -0
- package/src/codegen/emit-client-runtime.ts +1 -0
- package/src/codegen/emit-models.test.ts +48 -0
- package/src/codegen/emit-models.ts +63 -0
- package/src/codegen/emit-scope.ts +145 -33
- package/src/codegen/emit-types.ts +48 -7
- package/src/codegen/index.ts +20 -0
- package/src/codegen/model-refs.test.ts +37 -0
- package/src/codegen/model-refs.ts +57 -0
- package/src/codegen/pipeline.ts +13 -1
- package/src/codegen/schema-walk.test.ts +37 -0
- package/src/codegen/schema-walk.ts +23 -0
- package/src/codegen/targets/_shared/target-run.ts +15 -0
- package/src/codegen/targets/ts/run.ts +50 -0
- package/src/codegen/targets/ts/shared-models.test.ts +391 -0
- package/src/doc-envelope.test.ts +35 -0
- package/src/doc-envelope.ts +30 -0
- package/src/exports.ts +2 -0
|
@@ -273,19 +273,37 @@ If `<type>` or `<Name>` is missing, ask the user for them before writing anythin
|
|
|
273
273
|
- `{{Name}}` — PascalCase as given (e.g., `UserProfile`)
|
|
274
274
|
- `{{name}}` — camelCase (e.g., `userProfile`)
|
|
275
275
|
- `{{kebab}}` — kebab-case (e.g., `user-profile`)
|
|
276
|
-
4.
|
|
277
|
-
5.
|
|
278
|
-
6.
|
|
279
|
-
7.
|
|
276
|
+
4. Resolve `fileNameStyle` and `groupBy` (from `$ARGUMENTS` flags, else by inference — see **Options** below), then derive `{{fileName}}` and `{{dir}}` (and `{{scope}}` when `groupBy: scope`).
|
|
277
|
+
5. Read the template file from `templates/<type>.md` (relative to this skill directory).
|
|
278
|
+
6. Replace all `{{Name}}`, `{{name}}`, `{{kebab}}`, `{{fileName}}`, `{{dir}}`, and `{{scope}}` placeholders with the appropriate variants.
|
|
279
|
+
7. Generate the implementation file(s) following the template exactly.
|
|
280
|
+
8. Also generate a colocated test file following ts-procedures test conventions.
|
|
281
|
+
|
|
282
|
+
### Options
|
|
283
|
+
|
|
284
|
+
Two optional flags control output file naming and location. Parse them from `$ARGUMENTS` if present (e.g. `scaffold procedure GetUser --file-name-style kebab.concern --group-by scope`); otherwise INFER the default (see below).
|
|
285
|
+
|
|
286
|
+
- `fileNameStyle` — `PascalCase` (default) or `kebab.concern`.
|
|
287
|
+
- `PascalCase`: `GetUser.procedure.ts`
|
|
288
|
+
- `kebab.concern`: `get-user.procedure.ts`
|
|
289
|
+
- `groupBy` — `flat` (default, writes to the current directory) or `scope`.
|
|
290
|
+
- `scope`: writes under a `<scope>/` subdirectory, e.g. `users/get-user.procedure.ts`. The scope is the procedure's `scope` (from its config / the `{{kebab}}` of the scope name); kebab-cased.
|
|
291
|
+
|
|
292
|
+
**Default inference (when neither flag is passed):** inspect the target directory's existing layout before writing. If existing procedure files are kebab-cased and/or grouped into per-scope folders, default to `fileNameStyle: kebab.concern` + `groupBy: scope`. Otherwise default to `fileNameStyle: PascalCase` + `groupBy: flat`. **State the inferred choice to the user before writing files.**
|
|
293
|
+
|
|
294
|
+
Two further derived placeholders follow from these options:
|
|
295
|
+
- `{{fileName}}` — `{{Name}}` when `fileNameStyle` is `PascalCase`, else `{{kebab}}`.
|
|
296
|
+
- `{{dir}}` — empty when `groupBy` is `flat`, else `{{scope}}/` (the kebab-cased scope followed by a slash).
|
|
297
|
+
- `{{scope}}` — the kebab-cased scope name when known (from the procedure's intended `scope`); ask the user if `groupBy: scope` is selected and the scope isn't derivable.
|
|
280
298
|
|
|
281
299
|
### Valid Types
|
|
282
300
|
|
|
283
301
|
| Type | Template | Files Generated |
|
|
284
302
|
|------|----------|----------------|
|
|
285
|
-
| `procedure` | `templates/procedure.md` | `{{
|
|
286
|
-
| `stream-procedure` | `templates/stream-procedure.md` | `{{
|
|
287
|
-
| `hono` | `templates/hono.md` | `{{
|
|
288
|
-
| `client` | `templates/client.md` | `{{
|
|
303
|
+
| `procedure` | `templates/procedure.md` | `{{dir}}{{fileName}}.procedure.ts`, `{{dir}}{{fileName}}.procedure.test.ts` |
|
|
304
|
+
| `stream-procedure` | `templates/stream-procedure.md` | `{{dir}}{{fileName}}.stream.ts`, `{{dir}}{{fileName}}.stream.test.ts` |
|
|
305
|
+
| `hono` | `templates/hono.md` | `{{dir}}{{fileName}}.hono.ts`, `{{dir}}{{fileName}}.hono.test.ts` |
|
|
306
|
+
| `client` | `templates/client.md` | `{{dir}}{{fileName}}.client.ts`, `{{dir}}{{fileName}}.client.test.ts` |
|
|
289
307
|
| `astro-catchall` | `templates/astro-catchall.md` | `src/pages/api/[...rest].ts` |
|
|
290
308
|
|
|
291
309
|
### Rules
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Client Template: {{Name}}
|
|
2
2
|
|
|
3
|
-
## Implementation — `{{
|
|
3
|
+
## Implementation — `{{dir}}{{fileName}}.client.ts`
|
|
4
4
|
|
|
5
5
|
```typescript
|
|
6
6
|
import { createFetchAdapter } from 'ts-procedures/client'
|
|
@@ -86,11 +86,11 @@ export const {{name}}Client = createApiClient({
|
|
|
86
86
|
// setTimeout(() => controller.abort(), 3000)
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
## Test — `{{
|
|
89
|
+
## Test — `{{dir}}{{fileName}}.client.test.ts`
|
|
90
90
|
|
|
91
91
|
```typescript
|
|
92
92
|
import { describe, test, expect, beforeAll, afterAll } from 'vitest'
|
|
93
|
-
import { {{name}}Client } from './{{
|
|
93
|
+
import { {{name}}Client } from './{{fileName}}.client'
|
|
94
94
|
|
|
95
95
|
// TODO: start your server before tests, or mock the adapter
|
|
96
96
|
// import { createServer } from './server'
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A single `HonoAppBuilder` can host all four procedure kinds — RPC (`Create`), RPC stream (`CreateStream`), HTTP REST (`CreateHttp`), and HTTP stream (`CreateHttpStream`) — registered against one `Procedures` factory and mounted with one `register(...)` call. This template demonstrates that.
|
|
4
4
|
|
|
5
|
-
## Implementation — `{{
|
|
5
|
+
## Implementation — `{{dir}}{{fileName}}.hono.ts`
|
|
6
6
|
|
|
7
7
|
```typescript
|
|
8
8
|
import { Procedures } from 'ts-procedures'
|
|
@@ -172,11 +172,11 @@ export const {{name}}App = {{name}}Builder.build()
|
|
|
172
172
|
// Documentation: {{name}}Builder.docs or {{name}}Builder.toDocEnvelope()
|
|
173
173
|
```
|
|
174
174
|
|
|
175
|
-
## Test — `{{
|
|
175
|
+
## Test — `{{dir}}{{fileName}}.hono.test.ts`
|
|
176
176
|
|
|
177
177
|
```typescript
|
|
178
178
|
import { describe, test, expect } from 'vitest'
|
|
179
|
-
import { {{name}}App } from './{{
|
|
179
|
+
import { {{name}}App } from './{{fileName}}.hono'
|
|
180
180
|
|
|
181
181
|
describe('{{Name}} Hono — all four kinds', () => {
|
|
182
182
|
test('Create (RPC) — POST /api/{{kebab}}/get-item/1', async () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Procedure Template: {{Name}}
|
|
2
2
|
|
|
3
|
-
## Implementation — `{{
|
|
3
|
+
## Implementation — `{{dir}}{{fileName}}.procedure.ts`
|
|
4
4
|
|
|
5
5
|
```typescript
|
|
6
6
|
import { Procedures } from 'ts-procedures'
|
|
@@ -45,12 +45,12 @@ export const { {{Name}}, procedure: {{Name}}Procedure, info: {{Name}}Info } = Cr
|
|
|
45
45
|
)
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
## Test — `{{
|
|
48
|
+
## Test — `{{dir}}{{fileName}}.procedure.test.ts`
|
|
49
49
|
|
|
50
50
|
```typescript
|
|
51
51
|
import { describe, test, expect } from 'vitest'
|
|
52
52
|
import { ProcedureError, ProcedureValidationError } from 'ts-procedures'
|
|
53
|
-
import { {{Name}} } from './{{
|
|
53
|
+
import { {{Name}} } from './{{fileName}}.procedure'
|
|
54
54
|
|
|
55
55
|
const mockContext = { userId: 'test-user' }
|
|
56
56
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Stream Procedure Template: {{Name}}
|
|
2
2
|
|
|
3
|
-
## Implementation — `{{
|
|
3
|
+
## Implementation — `{{dir}}{{fileName}}.stream.ts`
|
|
4
4
|
|
|
5
5
|
```typescript
|
|
6
6
|
import { Procedures } from 'ts-procedures'
|
|
@@ -69,12 +69,12 @@ async function fetchLatestData(channel: string, opts?: { signal?: AbortSignal })
|
|
|
69
69
|
}
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
-
## Test — `{{
|
|
72
|
+
## Test — `{{dir}}{{fileName}}.stream.test.ts`
|
|
73
73
|
|
|
74
74
|
```typescript
|
|
75
75
|
import { describe, test, expect } from 'vitest'
|
|
76
76
|
import { ProcedureValidationError } from 'ts-procedures'
|
|
77
|
-
import { {{Name}} } from './{{
|
|
77
|
+
import { {{Name}} } from './{{fileName}}.stream'
|
|
78
78
|
|
|
79
79
|
const mockContext = { userId: 'test-user' }
|
|
80
80
|
|
package/build/client/call.js
CHANGED
|
@@ -23,7 +23,7 @@ export async function executeCall(config) {
|
|
|
23
23
|
const resolvedBasePath = resolveBasePath(defaults, options, basePath);
|
|
24
24
|
let request = buildAdapterRequest(descriptor, resolvedBasePath);
|
|
25
25
|
// 2. Apply request-level options (headers, signal, timeout, meta)
|
|
26
|
-
const applied = applyRequestOptions(request, defaults, options);
|
|
26
|
+
const applied = await applyRequestOptions(request, defaults, options);
|
|
27
27
|
request = applied.request;
|
|
28
28
|
const signalSources = applied.signalSources;
|
|
29
29
|
// 3. Run before-request hooks — they may further mutate the request
|
package/build/client/call.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/client/call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3E,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAwB1D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAY,MAAyB;IACpE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA;IAEzF,iEAAiE;IACjE,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IACrE,IAAI,OAAO,GAAG,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAA;IAE/D,kEAAkE;IAClE,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/client/call.ts"],"names":[],"mappings":"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"}
|
package/build/client/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ import type { CreateClientConfig } from './types.js';
|
|
|
13
13
|
* - The outer `.result` is wired up to the inner stream's `.result`.
|
|
14
14
|
*/
|
|
15
15
|
export declare function createClient<TScopes>(config: CreateClientConfig<TScopes>): TScopes;
|
|
16
|
-
export type { ClientAdapter, AdapterRequest, AdapterResponse, AdapterStreamResponse, ClientHooks, BeforeRequestContext, AfterResponseContext, ErrorContext, CallDescriptor, StreamDescriptor, TypedStream, ClientInstance, ProcedureCallDefaults, ProcedureCallOptions, CreateClientConfig, RequestMeta, ErrorRegistry, ErrorFactory, ErrorResponseMeta, ClientErrorMap, FrameworkFailure, Result, ResultNoTyped, } from './types.js';
|
|
16
|
+
export type { ClientAdapter, AdapterRequest, AdapterResponse, AdapterStreamResponse, ClientHooks, BeforeRequestContext, AfterResponseContext, ErrorContext, CallDescriptor, StreamDescriptor, TypedStream, ClientInstance, ProcedureCallDefaults, ProcedureCallOptions, ClientHeadersInit, CreateClientConfig, RequestMeta, ErrorRegistry, ErrorFactory, ErrorResponseMeta, ClientErrorMap, FrameworkFailure, Result, ResultNoTyped, } from './types.js';
|
|
17
17
|
export { dispatchTypedError } from './error-dispatch.js';
|
|
18
18
|
export { ClientHttpError, ClientRequestError, ClientPathParamError, ClientStreamError, ClientNetworkError, ClientTimeoutError, ClientAbortError, ClientParseError, } from './errors.js';
|
|
19
19
|
export { createTypedStream } from './stream.js';
|
package/build/client/index.js
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import { executeCall, executeSafeCall } from './call.js';
|
|
2
2
|
import { executeStream, createTypedStream } from './stream.js';
|
|
3
3
|
// ── createClient ──────────────────────────────────────────
|
|
4
|
+
/**
|
|
5
|
+
* Folds `config.auth` into the resolved default headers as a single async
|
|
6
|
+
* function-valued `ClientHeadersInit`. Resolves the user's existing default
|
|
7
|
+
* headers (record OR function) to a record first, then appends
|
|
8
|
+
* `Authorization: Bearer <token>` when `auth()` yields a non-null token.
|
|
9
|
+
* Re-evaluated per request, so a rotating token never goes stale.
|
|
10
|
+
*/
|
|
11
|
+
function composeAuthHeaders(base, auth) {
|
|
12
|
+
return async () => {
|
|
13
|
+
const resolvedBase = base == null ? {} : typeof base === 'function' ? await base() : base;
|
|
14
|
+
const token = await auth();
|
|
15
|
+
return token ? { ...resolvedBase, Authorization: `Bearer ${token}` } : resolvedBase;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
4
18
|
/**
|
|
5
19
|
* Creates a typed client from a config object.
|
|
6
20
|
*
|
|
@@ -15,7 +29,15 @@ import { executeStream, createTypedStream } from './stream.js';
|
|
|
15
29
|
* - The outer `.result` is wired up to the inner stream's `.result`.
|
|
16
30
|
*/
|
|
17
31
|
export function createClient(config) {
|
|
18
|
-
const { adapter, basePath, hooks: globalHooks = {}, defaults:
|
|
32
|
+
const { adapter, basePath, hooks: globalHooks = {}, defaults: configDefaults = {}, errorRegistry, auth, scopes, } = config;
|
|
33
|
+
// `auth` is sugar over a function-valued `defaults.headers`: fold it into the
|
|
34
|
+
// resolved default headers as an async function so it shares the single
|
|
35
|
+
// per-request header-resolution path (no new resolution branch). The user's
|
|
36
|
+
// existing `defaults.headers` (record or function) is resolved first, then the
|
|
37
|
+
// bearer token is appended — a null/undefined token omits the header.
|
|
38
|
+
const globalDefaults = auth
|
|
39
|
+
? { ...configDefaults, headers: composeAuthHeaders(configDefaults.headers, auth) }
|
|
40
|
+
: configDefaults;
|
|
19
41
|
const instance = {
|
|
20
42
|
basePath,
|
|
21
43
|
adapter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -316,6 +316,93 @@ describe('createClient', () => {
|
|
|
316
316
|
spy.mockRestore();
|
|
317
317
|
}
|
|
318
318
|
});
|
|
319
|
+
// ── auth (bearer token sugar) ─────────────────────────────
|
|
320
|
+
it('auth wires Authorization: Bearer <token>, re-evaluated per call', async () => {
|
|
321
|
+
const capturedHeaders = [];
|
|
322
|
+
const adapter = {
|
|
323
|
+
request: vi.fn(async (req) => {
|
|
324
|
+
capturedHeaders.push(req.headers ?? {});
|
|
325
|
+
return { status: 200, headers: {}, body: {} };
|
|
326
|
+
}),
|
|
327
|
+
stream: vi.fn(async () => ({
|
|
328
|
+
status: 200,
|
|
329
|
+
headers: new Headers(),
|
|
330
|
+
body: makeAsyncIterable([]),
|
|
331
|
+
})),
|
|
332
|
+
};
|
|
333
|
+
let token = 'tok-1';
|
|
334
|
+
const client = createClient({
|
|
335
|
+
adapter,
|
|
336
|
+
basePath: 'https://api.example.com',
|
|
337
|
+
auth: () => token,
|
|
338
|
+
scopes: (instance) => ({
|
|
339
|
+
users: {
|
|
340
|
+
getUser: () => instance.call(makeCallDescriptor()),
|
|
341
|
+
},
|
|
342
|
+
}),
|
|
343
|
+
});
|
|
344
|
+
await client.users.getUser();
|
|
345
|
+
expect(capturedHeaders[0]?.['Authorization']).toBe('Bearer tok-1');
|
|
346
|
+
token = 'tok-2';
|
|
347
|
+
await client.users.getUser();
|
|
348
|
+
expect(capturedHeaders[1]?.['Authorization']).toBe('Bearer tok-2');
|
|
349
|
+
});
|
|
350
|
+
it('auth omits the Authorization header when the token is null', async () => {
|
|
351
|
+
const capturedHeaders = [];
|
|
352
|
+
const adapter = {
|
|
353
|
+
request: vi.fn(async (req) => {
|
|
354
|
+
capturedHeaders.push(req.headers ?? {});
|
|
355
|
+
return { status: 200, headers: {}, body: {} };
|
|
356
|
+
}),
|
|
357
|
+
stream: vi.fn(async () => ({
|
|
358
|
+
status: 200,
|
|
359
|
+
headers: new Headers(),
|
|
360
|
+
body: makeAsyncIterable([]),
|
|
361
|
+
})),
|
|
362
|
+
};
|
|
363
|
+
const client = createClient({
|
|
364
|
+
adapter,
|
|
365
|
+
basePath: 'https://api.example.com',
|
|
366
|
+
auth: () => null,
|
|
367
|
+
scopes: (instance) => ({
|
|
368
|
+
users: {
|
|
369
|
+
getUser: () => instance.call(makeCallDescriptor()),
|
|
370
|
+
},
|
|
371
|
+
}),
|
|
372
|
+
});
|
|
373
|
+
await client.users.getUser();
|
|
374
|
+
expect(capturedHeaders[0]?.['Authorization']).toBeUndefined();
|
|
375
|
+
});
|
|
376
|
+
it('auth composes with existing defaults.headers (both present)', async () => {
|
|
377
|
+
const capturedHeaders = [];
|
|
378
|
+
const adapter = {
|
|
379
|
+
request: vi.fn(async (req) => {
|
|
380
|
+
capturedHeaders.push(req.headers ?? {});
|
|
381
|
+
return { status: 200, headers: {}, body: {} };
|
|
382
|
+
}),
|
|
383
|
+
stream: vi.fn(async () => ({
|
|
384
|
+
status: 200,
|
|
385
|
+
headers: new Headers(),
|
|
386
|
+
body: makeAsyncIterable([]),
|
|
387
|
+
})),
|
|
388
|
+
};
|
|
389
|
+
const client = createClient({
|
|
390
|
+
adapter,
|
|
391
|
+
basePath: 'https://api.example.com',
|
|
392
|
+
defaults: { headers: { 'x-client': 'web' } },
|
|
393
|
+
auth: async () => 'tok-async',
|
|
394
|
+
scopes: (instance) => ({
|
|
395
|
+
users: {
|
|
396
|
+
getUser: () => instance.call(makeCallDescriptor()),
|
|
397
|
+
},
|
|
398
|
+
}),
|
|
399
|
+
});
|
|
400
|
+
await client.users.getUser();
|
|
401
|
+
expect(capturedHeaders[0]).toMatchObject({
|
|
402
|
+
'x-client': 'web',
|
|
403
|
+
Authorization: 'Bearer tok-async',
|
|
404
|
+
});
|
|
405
|
+
});
|
|
319
406
|
it('ClientInstance exposes defaults', () => {
|
|
320
407
|
const adapter = makeAdapter();
|
|
321
408
|
const defaults = { timeout: 5000, headers: { 'x-client': 'test' } };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/client/index.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/client/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,10 +38,11 @@ export declare function resolveSignalSources(defaults: ProcedureCallDefaults | u
|
|
|
38
38
|
*/
|
|
39
39
|
export declare function resolveSignal(defaults: ProcedureCallDefaults | undefined, options: ProcedureCallOptions | undefined): AbortSignal | undefined;
|
|
40
40
|
/**
|
|
41
|
-
* Merges headers with precedence: default < per-call.
|
|
42
|
-
* no headers would
|
|
41
|
+
* Merges headers with precedence: default < per-call. Function-valued headers
|
|
42
|
+
* are evaluated (and awaited) per call. Returns undefined if no headers would
|
|
43
|
+
* be set.
|
|
43
44
|
*/
|
|
44
|
-
export declare function resolveHeaders(defaults: ProcedureCallDefaults | undefined, options: ProcedureCallOptions | undefined): Record<string, string> | undefined
|
|
45
|
+
export declare function resolveHeaders(defaults: ProcedureCallDefaults | undefined, options: ProcedureCallOptions | undefined): Promise<Record<string, string> | undefined>;
|
|
45
46
|
/**
|
|
46
47
|
* Merges meta with precedence: default < per-call. Returns undefined if
|
|
47
48
|
* no meta fields would be set.
|
|
@@ -73,4 +74,4 @@ export interface ApplyRequestOptionsResult {
|
|
|
73
74
|
* the error classifier in Task 6) can distinguish timeout from user abort without
|
|
74
75
|
* losing provenance after `AbortSignal.any` collapses the originals.
|
|
75
76
|
*/
|
|
76
|
-
export declare function applyRequestOptions(request: AdapterRequest, defaults: ProcedureCallDefaults | undefined, options: ProcedureCallOptions | undefined): ApplyRequestOptionsResult
|
|
77
|
+
export declare function applyRequestOptions(request: AdapterRequest, defaults: ProcedureCallDefaults | undefined, options: ProcedureCallOptions | undefined): Promise<ApplyRequestOptionsResult>;
|
|
@@ -40,12 +40,23 @@ export function resolveSignal(defaults, options) {
|
|
|
40
40
|
return resolveSignalSources(defaults, options).combined;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
43
|
+
* Resolves a `ClientHeadersInit` value: a static record passes through, a
|
|
44
|
+
* function is invoked and (if async) awaited — re-evaluated on every call so
|
|
45
|
+
* values like a rotating bearer token never go stale.
|
|
45
46
|
*/
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
async function resolveHeadersValue(h) {
|
|
48
|
+
if (h == null)
|
|
49
|
+
return undefined;
|
|
50
|
+
return typeof h === 'function' ? await h() : h;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Merges headers with precedence: default < per-call. Function-valued headers
|
|
54
|
+
* are evaluated (and awaited) per call. Returns undefined if no headers would
|
|
55
|
+
* be set.
|
|
56
|
+
*/
|
|
57
|
+
export async function resolveHeaders(defaults, options) {
|
|
58
|
+
const defaultHeaders = await resolveHeadersValue(defaults?.headers);
|
|
59
|
+
const callHeaders = await resolveHeadersValue(options?.headers);
|
|
49
60
|
if (!defaultHeaders && !callHeaders)
|
|
50
61
|
return undefined;
|
|
51
62
|
return { ...defaultHeaders, ...callHeaders };
|
|
@@ -83,9 +94,9 @@ export function resolveMeta(defaults, options) {
|
|
|
83
94
|
* the error classifier in Task 6) can distinguish timeout from user abort without
|
|
84
95
|
* losing provenance after `AbortSignal.any` collapses the originals.
|
|
85
96
|
*/
|
|
86
|
-
export function applyRequestOptions(request, defaults, options) {
|
|
97
|
+
export async function applyRequestOptions(request, defaults, options) {
|
|
87
98
|
const signalSources = resolveSignalSources(defaults, options);
|
|
88
|
-
const resolvedHeaders = resolveHeaders(defaults, options);
|
|
99
|
+
const resolvedHeaders = await resolveHeaders(defaults, options);
|
|
89
100
|
const meta = resolveMeta(defaults, options);
|
|
90
101
|
const headers = resolvedHeaders || request.headers
|
|
91
102
|
? { ...resolvedHeaders, ...request.headers }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-options.js","sourceRoot":"","sources":["../../src/client/resolve-options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve-options.js","sourceRoot":"","sources":["../../src/client/resolve-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { describe, it, expect, vi } from 'vitest';
|
|
2
2
|
import { applyRequestOptions, resolveBasePath, resolveHeaders, resolveMeta, resolveSignal, resolveSignalSources, } from './resolve-options.js';
|
|
3
|
+
// Minimal valid AdapterRequest (headers undefined) shared across describe blocks.
|
|
4
|
+
const baseRequest = {
|
|
5
|
+
url: 'https://api.example.com/foo',
|
|
6
|
+
method: 'POST',
|
|
7
|
+
body: { hello: 'world' },
|
|
8
|
+
};
|
|
3
9
|
// ── resolveBasePath ───────────────────────────────────────
|
|
4
10
|
describe('resolveBasePath', () => {
|
|
5
11
|
it('uses fallback when nothing is set', () => {
|
|
@@ -14,21 +20,49 @@ describe('resolveBasePath', () => {
|
|
|
14
20
|
});
|
|
15
21
|
// ── resolveHeaders ────────────────────────────────────────
|
|
16
22
|
describe('resolveHeaders', () => {
|
|
17
|
-
it('returns undefined when neither side sets headers', () => {
|
|
18
|
-
expect(resolveHeaders(undefined, undefined)).toBeUndefined();
|
|
23
|
+
it('returns undefined when neither side sets headers', async () => {
|
|
24
|
+
expect(await resolveHeaders(undefined, undefined)).toBeUndefined();
|
|
19
25
|
});
|
|
20
|
-
it('returns default headers when only defaults set', () => {
|
|
21
|
-
expect(resolveHeaders({ headers: { 'x-a': '1' } }, undefined)).toEqual({ 'x-a': '1' });
|
|
26
|
+
it('returns default headers when only defaults set', async () => {
|
|
27
|
+
expect(await resolveHeaders({ headers: { 'x-a': '1' } }, undefined)).toEqual({ 'x-a': '1' });
|
|
22
28
|
});
|
|
23
|
-
it('per-call keys override default keys', () => {
|
|
29
|
+
it('per-call keys override default keys', async () => {
|
|
24
30
|
const defaults = { headers: { 'x-a': 'default', 'x-b': 'keep' } };
|
|
25
31
|
const options = { headers: { 'x-a': 'override' } };
|
|
26
|
-
expect(resolveHeaders(defaults, options)).toEqual({
|
|
32
|
+
expect(await resolveHeaders(defaults, options)).toEqual({
|
|
27
33
|
'x-a': 'override',
|
|
28
34
|
'x-b': 'keep',
|
|
29
35
|
});
|
|
30
36
|
});
|
|
31
37
|
});
|
|
38
|
+
// ── resolveHeaders (function-valued) ──────────────────────
|
|
39
|
+
describe('function-valued headers', () => {
|
|
40
|
+
it('resolves a sync function-valued default header', async () => {
|
|
41
|
+
const { request } = await applyRequestOptions(baseRequest, { headers: () => ({ Authorization: 'Bearer t1' }) }, undefined);
|
|
42
|
+
expect(request.headers).toMatchObject({ Authorization: 'Bearer t1' });
|
|
43
|
+
});
|
|
44
|
+
it('resolves an async function-valued header', async () => {
|
|
45
|
+
const { request } = await applyRequestOptions(baseRequest, { headers: async () => ({ Authorization: 'Bearer async' }) }, undefined);
|
|
46
|
+
expect(request.headers).toMatchObject({ Authorization: 'Bearer async' });
|
|
47
|
+
});
|
|
48
|
+
it('per-call headers win over default headers (both functions)', async () => {
|
|
49
|
+
const { request } = await applyRequestOptions(baseRequest, { headers: () => ({ Authorization: 'Bearer default', 'x-a': '1' }) }, { headers: () => ({ Authorization: 'Bearer call' }) });
|
|
50
|
+
expect(request.headers).toMatchObject({ Authorization: 'Bearer call', 'x-a': '1' });
|
|
51
|
+
});
|
|
52
|
+
it('static record path still works', async () => {
|
|
53
|
+
const { request } = await applyRequestOptions(baseRequest, { headers: { 'x-s': 'v' } }, undefined);
|
|
54
|
+
expect(request.headers).toMatchObject({ 'x-s': 'v' });
|
|
55
|
+
});
|
|
56
|
+
it('re-evaluates the function on each call (no staleness)', async () => {
|
|
57
|
+
let token = 't1';
|
|
58
|
+
const headers = () => ({ Authorization: `Bearer ${token}` });
|
|
59
|
+
const first = await applyRequestOptions(baseRequest, { headers }, undefined);
|
|
60
|
+
expect(first.request.headers).toMatchObject({ Authorization: 'Bearer t1' });
|
|
61
|
+
token = 't2';
|
|
62
|
+
const second = await applyRequestOptions(baseRequest, { headers }, undefined);
|
|
63
|
+
expect(second.request.headers).toMatchObject({ Authorization: 'Bearer t2' });
|
|
64
|
+
});
|
|
65
|
+
});
|
|
32
66
|
// ── resolveMeta ───────────────────────────────────────────
|
|
33
67
|
describe('resolveMeta', () => {
|
|
34
68
|
it('returns undefined when neither side sets meta', () => {
|
|
@@ -151,27 +185,22 @@ describe('resolveSignalSources', () => {
|
|
|
151
185
|
});
|
|
152
186
|
// ── applyRequestOptions ───────────────────────────────────
|
|
153
187
|
// Helper so existing tests can destructure .request without boilerplate
|
|
154
|
-
const apply = (req, d, o) => applyRequestOptions(req, d, o).request;
|
|
188
|
+
const apply = async (req, d, o) => (await applyRequestOptions(req, d, o)).request;
|
|
155
189
|
describe('applyRequestOptions', () => {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
method: 'POST',
|
|
159
|
-
body: { hello: 'world' },
|
|
160
|
-
};
|
|
161
|
-
it('returns the request unchanged when nothing is provided', () => {
|
|
162
|
-
const result = apply(baseRequest, undefined, undefined);
|
|
190
|
+
it('returns the request unchanged when nothing is provided', async () => {
|
|
191
|
+
const result = await apply(baseRequest, undefined, undefined);
|
|
163
192
|
expect(result.url).toBe(baseRequest.url);
|
|
164
193
|
expect(result.body).toEqual({ hello: 'world' });
|
|
165
194
|
expect(result.headers).toBeUndefined();
|
|
166
195
|
expect(result.signal).toBeUndefined();
|
|
167
196
|
expect(result.meta).toBeUndefined();
|
|
168
197
|
});
|
|
169
|
-
it('merges default + per-call headers, preserving route-declared headers', () => {
|
|
198
|
+
it('merges default + per-call headers, preserving route-declared headers', async () => {
|
|
170
199
|
const reqWithHeaders = {
|
|
171
200
|
...baseRequest,
|
|
172
201
|
headers: { 'content-type': 'application/json', 'x-route': 'declared' },
|
|
173
202
|
};
|
|
174
|
-
const result = apply(reqWithHeaders, { headers: { 'x-default': 'd', 'x-route': 'from-default' } }, { headers: { 'x-call': 'c', 'x-route': 'from-call' } });
|
|
203
|
+
const result = await apply(reqWithHeaders, { headers: { 'x-default': 'd', 'x-route': 'from-default' } }, { headers: { 'x-call': 'c', 'x-route': 'from-call' } });
|
|
175
204
|
expect(result.headers).toEqual({
|
|
176
205
|
'x-default': 'd',
|
|
177
206
|
'x-call': 'c',
|
|
@@ -180,21 +209,21 @@ describe('applyRequestOptions', () => {
|
|
|
180
209
|
'x-route': 'declared',
|
|
181
210
|
});
|
|
182
211
|
});
|
|
183
|
-
it('attaches meta to the request when provided', () => {
|
|
184
|
-
const result = apply(baseRequest, undefined, {
|
|
212
|
+
it('attaches meta to the request when provided', async () => {
|
|
213
|
+
const result = await apply(baseRequest, undefined, {
|
|
185
214
|
meta: { traceId: 'abc' },
|
|
186
215
|
});
|
|
187
216
|
expect(result.meta).toEqual({ traceId: 'abc' });
|
|
188
217
|
});
|
|
189
|
-
it('passes per-call signal through', () => {
|
|
218
|
+
it('passes per-call signal through', async () => {
|
|
190
219
|
const controller = new AbortController();
|
|
191
|
-
const result = apply(baseRequest, undefined, { signal: controller.signal });
|
|
220
|
+
const result = await apply(baseRequest, undefined, { signal: controller.signal });
|
|
192
221
|
expect(result.signal).toBe(controller.signal);
|
|
193
222
|
});
|
|
194
|
-
it('attaches a signal when per-call timeout is set', () => {
|
|
223
|
+
it('attaches a signal when per-call timeout is set', async () => {
|
|
195
224
|
const spy = vi.spyOn(AbortSignal, 'timeout');
|
|
196
225
|
try {
|
|
197
|
-
const result = apply(baseRequest, undefined, { timeout: 100 });
|
|
226
|
+
const result = await apply(baseRequest, undefined, { timeout: 100 });
|
|
198
227
|
expect(spy).toHaveBeenCalledWith(100);
|
|
199
228
|
expect(result.signal).toBeDefined();
|
|
200
229
|
expect(result.signal?.aborted).toBe(false);
|
|
@@ -203,9 +232,9 @@ describe('applyRequestOptions', () => {
|
|
|
203
232
|
spy.mockRestore();
|
|
204
233
|
}
|
|
205
234
|
});
|
|
206
|
-
it('exposes signalSources alongside the request', () => {
|
|
235
|
+
it('exposes signalSources alongside the request', async () => {
|
|
207
236
|
const ctrl = new AbortController();
|
|
208
|
-
const { request, signalSources } = applyRequestOptions(baseRequest, undefined, {
|
|
237
|
+
const { request, signalSources } = await applyRequestOptions(baseRequest, undefined, {
|
|
209
238
|
signal: ctrl.signal,
|
|
210
239
|
timeout: 500,
|
|
211
240
|
});
|