ts-procedures 8.3.0 → 8.4.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 (124) hide show
  1. package/agent_config/claude-code/skills/ts-procedures/SKILL.md +26 -8
  2. package/agent_config/claude-code/skills/ts-procedures/templates/client.md +3 -3
  3. package/agent_config/claude-code/skills/ts-procedures/templates/hono.md +3 -3
  4. package/agent_config/claude-code/skills/ts-procedures/templates/procedure.md +3 -3
  5. package/agent_config/claude-code/skills/ts-procedures/templates/stream-procedure.md +3 -3
  6. package/build/client/call.js +1 -1
  7. package/build/client/call.js.map +1 -1
  8. package/build/client/index.d.ts +1 -1
  9. package/build/client/index.js +23 -1
  10. package/build/client/index.js.map +1 -1
  11. package/build/client/index.test.js +87 -0
  12. package/build/client/index.test.js.map +1 -1
  13. package/build/client/resolve-options.d.ts +5 -4
  14. package/build/client/resolve-options.js +18 -7
  15. package/build/client/resolve-options.js.map +1 -1
  16. package/build/client/resolve-options.test.js +53 -24
  17. package/build/client/resolve-options.test.js.map +1 -1
  18. package/build/client/stream.js +1 -1
  19. package/build/client/stream.js.map +1 -1
  20. package/build/client/types.d.ts +31 -3
  21. package/build/codegen/__fixtures__/make-envelope.d.ts +41 -0
  22. package/build/codegen/__fixtures__/make-envelope.js +38 -0
  23. package/build/codegen/__fixtures__/make-envelope.js.map +1 -0
  24. package/build/codegen/bin/cli.d.ts +11 -0
  25. package/build/codegen/bin/cli.js +30 -21
  26. package/build/codegen/bin/cli.js.map +1 -1
  27. package/build/codegen/bin/cli.test.js +36 -1
  28. package/build/codegen/bin/cli.test.js.map +1 -1
  29. package/build/codegen/bin/flag-specs.d.ts +10 -0
  30. package/build/codegen/bin/flag-specs.js +60 -0
  31. package/build/codegen/bin/flag-specs.js.map +1 -0
  32. package/build/codegen/bin/flag-specs.test.d.ts +1 -0
  33. package/build/codegen/bin/flag-specs.test.js +26 -0
  34. package/build/codegen/bin/flag-specs.test.js.map +1 -0
  35. package/build/codegen/collect-models.d.ts +37 -0
  36. package/build/codegen/collect-models.js +74 -0
  37. package/build/codegen/collect-models.js.map +1 -0
  38. package/build/codegen/collect-models.test.d.ts +1 -0
  39. package/build/codegen/collect-models.test.js +40 -0
  40. package/build/codegen/collect-models.test.js.map +1 -0
  41. package/build/codegen/emit-client-runtime.js +1 -0
  42. package/build/codegen/emit-client-runtime.js.map +1 -1
  43. package/build/codegen/emit-models.d.ts +26 -0
  44. package/build/codegen/emit-models.js +53 -0
  45. package/build/codegen/emit-models.js.map +1 -0
  46. package/build/codegen/emit-models.test.d.ts +1 -0
  47. package/build/codegen/emit-models.test.js +42 -0
  48. package/build/codegen/emit-models.test.js.map +1 -0
  49. package/build/codegen/emit-scope.d.ts +10 -0
  50. package/build/codegen/emit-scope.js +119 -34
  51. package/build/codegen/emit-scope.js.map +1 -1
  52. package/build/codegen/emit-types.d.ts +26 -1
  53. package/build/codegen/emit-types.js +27 -5
  54. package/build/codegen/emit-types.js.map +1 -1
  55. package/build/codegen/index.d.ts +5 -0
  56. package/build/codegen/index.js +2 -0
  57. package/build/codegen/index.js.map +1 -1
  58. package/build/codegen/model-refs.d.ts +27 -0
  59. package/build/codegen/model-refs.js +49 -0
  60. package/build/codegen/model-refs.js.map +1 -0
  61. package/build/codegen/model-refs.test.d.ts +1 -0
  62. package/build/codegen/model-refs.test.js +33 -0
  63. package/build/codegen/model-refs.test.js.map +1 -0
  64. package/build/codegen/pipeline.d.ts +3 -0
  65. package/build/codegen/pipeline.js +3 -1
  66. package/build/codegen/pipeline.js.map +1 -1
  67. package/build/codegen/schema-walk.d.ts +13 -0
  68. package/build/codegen/schema-walk.js +26 -0
  69. package/build/codegen/schema-walk.js.map +1 -0
  70. package/build/codegen/schema-walk.test.d.ts +1 -0
  71. package/build/codegen/schema-walk.test.js +35 -0
  72. package/build/codegen/schema-walk.test.js.map +1 -0
  73. package/build/codegen/targets/_shared/target-run.d.ts +5 -0
  74. package/build/codegen/targets/ts/run.js +28 -1
  75. package/build/codegen/targets/ts/run.js.map +1 -1
  76. package/build/codegen/targets/ts/shared-models.test.d.ts +1 -0
  77. package/build/codegen/targets/ts/shared-models.test.js +258 -0
  78. package/build/codegen/targets/ts/shared-models.test.js.map +1 -0
  79. package/build/doc-envelope.d.ts +13 -0
  80. package/build/doc-envelope.js +23 -0
  81. package/build/doc-envelope.js.map +1 -0
  82. package/build/doc-envelope.test.d.ts +1 -0
  83. package/build/doc-envelope.test.js +31 -0
  84. package/build/doc-envelope.test.js.map +1 -0
  85. package/build/exports.d.ts +2 -0
  86. package/build/exports.js +1 -0
  87. package/build/exports.js.map +1 -1
  88. package/docs/client-and-codegen.md +101 -0
  89. package/docs/handoffs/ajsc-named-type-collision.md +134 -0
  90. package/docs/handoffs/ajsc-named-type-support.md +181 -0
  91. package/docs/superpowers/plans/2026-06-05-dx-feedback-round.md +1292 -0
  92. package/docs/superpowers/specs/2026-06-05-dx-feedback-round-design.md +285 -0
  93. package/package.json +2 -2
  94. package/src/client/call.ts +1 -1
  95. package/src/client/index.test.ts +98 -0
  96. package/src/client/index.ts +32 -1
  97. package/src/client/resolve-options.test.ts +73 -26
  98. package/src/client/resolve-options.ts +23 -9
  99. package/src/client/stream.ts +1 -1
  100. package/src/client/types.ts +34 -3
  101. package/src/codegen/__fixtures__/make-envelope.ts +89 -0
  102. package/src/codegen/bin/cli.test.ts +38 -1
  103. package/src/codegen/bin/cli.ts +33 -22
  104. package/src/codegen/bin/flag-specs.test.ts +27 -0
  105. package/src/codegen/bin/flag-specs.ts +69 -0
  106. package/src/codegen/collect-models.test.ts +46 -0
  107. package/src/codegen/collect-models.ts +108 -0
  108. package/src/codegen/emit-client-runtime.ts +1 -0
  109. package/src/codegen/emit-models.test.ts +48 -0
  110. package/src/codegen/emit-models.ts +63 -0
  111. package/src/codegen/emit-scope.ts +145 -33
  112. package/src/codegen/emit-types.ts +48 -7
  113. package/src/codegen/index.ts +7 -0
  114. package/src/codegen/model-refs.test.ts +37 -0
  115. package/src/codegen/model-refs.ts +57 -0
  116. package/src/codegen/pipeline.ts +6 -1
  117. package/src/codegen/schema-walk.test.ts +37 -0
  118. package/src/codegen/schema-walk.ts +23 -0
  119. package/src/codegen/targets/_shared/target-run.ts +5 -0
  120. package/src/codegen/targets/ts/run.ts +33 -0
  121. package/src/codegen/targets/ts/shared-models.test.ts +283 -0
  122. package/src/doc-envelope.test.ts +35 -0
  123. package/src/doc-envelope.ts +30 -0
  124. 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. Read the template file from `templates/<type>.md` (relative to this skill directory).
277
- 5. Replace all `{{Name}}`, `{{name}}`, and `{{kebab}}` placeholders with the appropriate variants.
278
- 6. Generate the implementation file(s) following the template exactly.
279
- 7. Also generate a colocated test file following ts-procedures test conventions.
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` | `{{Name}}.procedure.ts`, `{{Name}}.procedure.test.ts` |
286
- | `stream-procedure` | `templates/stream-procedure.md` | `{{Name}}.stream.ts`, `{{Name}}.stream.test.ts` |
287
- | `hono` | `templates/hono.md` | `{{Name}}.hono.ts`, `{{Name}}.hono.test.ts` |
288
- | `client` | `templates/client.md` | `{{Name}}.client.ts`, `{{Name}}.client.test.ts` |
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 — `{{Name}}.client.ts`
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 — `{{Name}}.client.test.ts`
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 './{{Name}}.client'
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 — `{{Name}}.hono.ts`
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 — `{{Name}}.hono.test.ts`
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 './{{Name}}.hono'
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 — `{{Name}}.procedure.ts`
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 — `{{Name}}.procedure.test.ts`
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 './{{Name}}.procedure'
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 — `{{Name}}.stream.ts`
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 — `{{Name}}.stream.test.ts`
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 './{{Name}}.stream'
77
+ import { {{Name}} } from './{{fileName}}.stream'
78
78
 
79
79
  const mockContext = { userId: 'test-user' }
80
80
 
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/client/call.ts"],"names":[],"mappings":"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"}
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,MAAM,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IACrE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IACzB,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IAE3C,oEAAoE;IACpE,MAAM,SAAS,GAAG,MAAM,gBAAgB,CACtC,EAAE,aAAa,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,EACpE,KAAK,EACL,OAAO,CACR,CAAA;IACD,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;IAE3B,sBAAsB;IACtB,IAAI,QAAQ,CAAA;IACZ,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,4EAA4E;QAC5E,0DAA0D;QAC1D,MAAM,WAAW,GAAyB;YACxC,aAAa,EAAE,UAAU,CAAC,IAAI;YAC9B,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,SAAS,EAAE,aAAa,CAAC,SAAS;SACnC,CAAA;QACD,MAAM,UAAU,GACd,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC5C,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QAC3C,4EAA4E;QAC5E,iEAAiE;QACjE,uEAAuE;QACvE,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;YACxE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,CAAC;gBAAC,UAAU,CAAC,KAAoD,CAAC,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAA;YACxG,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,UAAU,EAAE,KAAK,IAAI,MAAM,CAAA;QAE9C,MAAM,UAAU,CACd,EAAE,aAAa,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,EACvF,KAAK,EACL,OAAO,CACR,CAAA;QACD,MAAM,UAAU,CAAA;IAClB,CAAC;IAED,kFAAkF;IAClF,MAAM,gBAAgB,CACpB,EAAE,aAAa,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAC9E,KAAK,EACL,OAAO,CACR,CAAA;IAED,sFAAsF;IACtF,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE;YAC7D,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,aAAa,EAAE,UAAU,CAAC,IAAI;YAC9B,KAAK,EAAE,UAAU,CAAC,KAAK;SACxB,CAAC,CAAA;QACF,IAAI,KAAK,EAAE,CAAC;YACV,0EAA0E;YAC1E,sDAAsD;YACtD,CAAC;YAAC,KAAsD,CAAC,mBAAmB,GAAG,IAAI,CAAA;YACnF,MAAM,KAAK,CAAA;QACb,CAAC;QACD,MAAM,IAAI,eAAe,CAAC;YACxB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,aAAa,EAAE,UAAU,CAAC,IAAI;YAC9B,KAAK,EAAE,UAAU,CAAC,KAAK;SACxB,CAAC,CAAA;IACJ,CAAC;IAED,gFAAgF;IAChF,IAAI,UAAU,CAAC,uBAAuB,EAAE,CAAC;QACvC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAe,CAAA;IACxE,CAAC;IACD,OAAO,QAAQ,CAAC,IAAiB,CAAA;AACnC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAyB;IAEzB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAY,MAAM,CAAC,CAAA;QAClD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,mBAAmB,CAAS,GAAG,CAAC,CAAA;IACzC,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAS,GAAY;IAC/C,oEAAoE;IACpE,IAAI,GAAG,YAAY,oBAAoB,EAAE,CAAC;QACxC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;IACjD,CAAC;IACD,yEAAyE;IACzE,IAAI,GAAG,YAAY,KAAK,IAAK,GAAoD,CAAC,mBAAmB,EAAE,CAAC;QACtG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAa,EAAE,CAAA;IAC3D,CAAC;IACD,+CAA+C;IAC/C,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;QACnC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;IAChD,CAAC;IACD,gEAAgE;IAChE,IAAI,GAAG,YAAY,kBAAkB,EAAE,CAAC;QACtC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;IACnD,CAAC;IACD,IAAI,GAAG,YAAY,kBAAkB,EAAE,CAAC;QACtC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;IACnD,CAAC;IACD,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;QACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;IACnD,CAAC;IACD,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;QACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;IACjD,CAAC;IACD,yEAAyE;IACzE,+EAA+E;IAC/E,6EAA6E;IAC7E,0EAA0E;IAC1E,wEAAwE;IACxE,IAAI,GAAG,YAAY,KAAK,IAAI,OAAQ,GAAkD,CAAC,kBAAkB,KAAK,QAAQ,EAAE,CAAC;QACvH,MAAM,IAAI,GAAI,GAAiD,CAAC,kBAAkB,CAAA;QAClF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAA4B,EAAE,KAAK,EAAE,GAAG,EAAsB,CAAA;IAC1F,CAAC;IACD,oEAAoE;IACpE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AACnD,CAAC"}
@@ -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';
@@ -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: globalDefaults = {}, errorRegistry, scopes, } = config;
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;AAY9D,6DAA6D;AAE7D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAU,MAAmC;IACvE,MAAM,EACJ,OAAO,EACP,QAAQ,EACR,KAAK,EAAE,WAAW,GAAG,EAAE,EACvB,QAAQ,EAAE,cAAc,GAAG,EAAE,EAC7B,aAAa,EACb,MAAM,GACP,GAAG,MAAM,CAAA;IAEV,MAAM,QAAQ,GAAmB;QAC/B,QAAQ;QACR,OAAO;QACP,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,cAAc;QACxB,aAAa;QAEb,IAAI,CACF,UAA0B,EAC1B,OAA8B;YAE9B,OAAO,WAAW,CAAY;gBAC5B,UAAU;gBACV,QAAQ;gBACR,OAAO;gBACP,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,cAAc;gBACxB,OAAO;gBACP,aAAa;aACd,CAAC,CAAA;QACJ,CAAC;QAED,QAAQ,CACN,UAA0B,EAC1B,OAA8B;YAE9B,OAAO,eAAe,CAAoB;gBACxC,UAAU;gBACV,QAAQ;gBACR,OAAO;gBACP,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,cAAc;gBACxB,OAAO;gBACP,aAAa;aACd,CAAC,CAAA;QACJ,CAAC;QAED,YAAY,CAAqB,UAA0C;YACzE,MAAM,IAAI,GAAG,CAAC,MAAe,EAAE,OAA8B,EAAE,EAAE,CAC/D,QAAQ,CAAC,IAAI,CAAY,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAA;YAC9D,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;YACnF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;gBACzB,IAAI,EAAE,CAAC,MAAe,EAAE,OAA8B,EAAE,EAAE,CACxD,QAAQ,CAAC,QAAQ,CAAY,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,CAAsC;aACxG,CAAC,CAAA;QACJ,CAAC;QAED,iBAAiB,CAA6B,UAA0C;YACtF,MAAM,IAAI,GAAG,CAAC,MAAe,EAAE,OAA8B,EAAE,EAAE,CAC/D,QAAQ,CAAC,IAAI,CAAY,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAA;YAC9D,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;YACnF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;gBACzB,IAAI,EAAE,CAAC,MAAe,EAAE,OAA8B,EAAE,EAAE,CACxD,QAAQ,CAAC,QAAQ,CAAoB,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC;aAC3E,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,CACJ,UAA4B,EAC5B,OAA8B;YAE9B,2DAA2D;YAC3D,yEAAyE;YAEzE,IAAI,aAAuC,CAAA;YAC3C,IAAI,YAAuC,CAAA;YAE3C,MAAM,aAAa,GAAG,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC7D,aAAa,GAAG,OAAO,CAAA;gBACvB,YAAY,GAAG,MAAM,CAAA;YACvB,CAAC,CAAC,CAAA;YAEF,sEAAsE;YACtE,wEAAwE;YACxE,+DAA+D;YAC/D,+CAA+C;YAC/C,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YAEpC,oEAAoE;YACpE,KAAK,SAAS,CAAC,CAAC,iBAAiB;gBAC/B,IAAI,WAAyC,CAAA;gBAC7C,IAAI,CAAC;oBACH,WAAW,GAAG,MAAM,aAAa,CAAkB;wBACjD,UAAU;wBACV,QAAQ;wBACR,OAAO;wBACP,KAAK,EAAE,WAAW;wBAClB,QAAQ,EAAE,cAAc;wBACxB,OAAO;wBACP,aAAa;qBACd,CAAC,CAAA;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,YAAY,CAAC,GAAG,CAAC,CAAA;oBACjB,MAAM,GAAG,CAAA;gBACX,CAAC;gBAED,wCAAwC;gBACxC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;gBAEpD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;oBACrC,MAAM,IAAI,CAAA;gBACZ,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAA;YAEpC,OAAO;gBACL,CAAC,MAAM,CAAC,aAAa,CAAC;oBACpB,OAAO,QAAQ,CAAA;gBACjB,CAAC;gBACD,MAAM,EAAE,aAAa;aACtB,CAAA;QACH,CAAC;KACF,CAAA;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAA;AACzB,CAAC;AA8BD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExD,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAGvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,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":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAYhD,6DAA6D;AAE7D,KAAK,SAAS,CAAC,CAAC,iBAAiB,CAAI,KAAU;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,CAAA;IACZ,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,eAAwB,EAAE,EAAE,EAAE,IAAI,EAAE,EACpC,cAAyB,EAAE;IAE3B,OAAO;QACL,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,IAAoB,EAA4B,EAAE,CAAC,CAAC;YACxE,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;QACH,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,IAAoB,EAAkC,EAAE,CAAC,CAAC;YAC7E,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,IAAI,OAAO,EAAE;YACtB,IAAI,EAAE,iBAAiB,CAAC,WAAW,CAAC;SACrC,CAAC,CAAC;KACJ,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAmC;IAC7D,OAAO;QACL,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;QACnB,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAqC;IACjE,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,EAAE;QACV,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AAED,6DAA6D;AAE7D,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,OAAO,GAAG,WAAW,EAAE,CAAA;QAE7B,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,OAAO;YACP,QAAQ,EAAE,yBAAyB;YACnC,MAAM,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,CAAC;gBACrC,KAAK,EAAE;oBACL,OAAO,EAAE,CAAC,EAAU,EAAE,EAAE,CACtB,QAAQ,CAAC,IAAI,CACX,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CACvC;iBACJ;aACF,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;QAC9C,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QAEvD,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,OAAO;YACP,QAAQ,EAAE,yBAAyB;YACnC,MAAM,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,CAAC;gBACrC,KAAK,EAAE;oBACL,OAAO,EAAE,CAAC,EAAU,EAAE,EAAE,CACtB,QAAQ,CAAC,IAAI,CACX,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CACvC;iBACJ;aACF,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC9C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,CAAA;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,OAAO,GAAkB;YAC7B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAA8B,EAAE,CAAC,CAAC;gBACpD,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;aAC/B,CAAC,CAAC;YACH,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAoC,EAAE,CAAC,CAAC;gBACzD,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,IAAI,OAAO,EAAE;gBACtB,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC;SACJ,CAAA;QAED,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,OAAO;YACP,QAAQ,EAAE,yBAAyB;YACnC,MAAM,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,CAAC;gBACrC,KAAK,EAAE;oBACL,OAAO,EAAE,CAAC,EAAU,EAAE,EAAE,CACtB,QAAQ,CAAC,IAAI,CAAU,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;iBACjE;aACF,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,eAAe,GAA6B,EAAE,CAAA;QACpD,MAAM,OAAO,GAAkB;YAC7B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAmB,EAA4B,EAAE;gBACrE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;gBACvC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;YAC/C,CAAC,CAAC;YACF,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAoC,EAAE,CAAC,CAAC;gBACzD,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,IAAI,OAAO,EAAE;gBACtB,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC;SACJ,CAAA;QAED,MAAM,WAAW,GAAgB;YAC/B,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACzB,GAAG,GAAG;gBACN,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE;aAChE,CAAC;SACH,CAAA;QAED,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,OAAO;YACP,QAAQ,EAAE,yBAAyB;YACnC,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,CAAC;gBACrC,KAAK,EAAE;oBACL,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAU,kBAAkB,EAAE,CAAC;iBAC5D;aACF,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;QAC5B,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,QAAQ,GAAG;YACf,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;YACjC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;YACjC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;SACxC,CAAA;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QAEzC,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,OAAO;YACP,QAAQ,EAAE,yBAAyB;YACnC,MAAM,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,CAAC;gBACrC,OAAO,EAAE;oBACP,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAC1B,oBAAoB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAC5C;iBACF;aACF,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QAErC,MAAM,OAAO,GAAoB,EAAE,CAAA;QACnC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7C,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QACrC,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAEvC,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,OAAO;YACP,QAAQ,EAAE,yBAAyB;YACnC,MAAM,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,CAAC;gBACrC,IAAI,EAAE;oBACJ,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CACzB,oBAAoB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAC9E;iBACF;aACF,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;QACjC,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAChC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAEnC,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,OAAO;YACP,QAAQ,EAAE,yBAAyB;YACnC,MAAM,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,CAAC;gBACrC,OAAO,EAAE;oBACP,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAe,oBAAoB,EAAE,CAAC;iBACnE;aACF,CAAC;SACH,CAAC,CAAA;QAEF,iCAAiC;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACrC,MAAM,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QACvC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,eAAe,GAA6B,EAAE,CAAA;QACpD,MAAM,OAAO,GAAkB;YAC7B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAoB,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA,CAAC,CAAC,CAAC;YAC/E,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAmB,EAAkC,EAAE;gBAC1E,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;gBACvC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAA;YAC7E,CAAC,CAAC;SACH,CAAA;QAED,MAAM,WAAW,GAAgB;YAC/B,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACzB,GAAG,GAAG;gBACN,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE;aAC1E,CAAC;SACH,CAAA;QAED,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,OAAO;YACP,QAAQ,EAAE,yBAAyB;YACnC,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,CAAC;gBACrC,OAAO,EAAE;oBACP,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAe,oBAAoB,EAAE,CAAC;iBACnE;aACF,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACrC,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;QAE7C,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,+EAA+E;QAC/E,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;QAC9D,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,6DAA6D;IAE7D,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,eAAe,GAA6B,EAAE,CAAA;QACpD,MAAM,OAAO,GAAkB;YAC7B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAmB,EAA4B,EAAE;gBACrE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;gBACvC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;YAC/C,CAAC,CAAC;YACF,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAoC,EAAE,CAAC,CAAC;gBACzD,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,IAAI,OAAO,EAAE;gBACtB,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC;SACJ,CAAA;QAED,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,OAAO;YACP,QAAQ,EAAE,yBAAyB;YACnC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE;YAC5C,MAAM,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,CAAC;gBACrC,KAAK,EAAE;oBACL,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAU,kBAAkB,EAAE,CAAC;iBAC5D;aACF,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;QAC5B,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,eAAe,GAA6B,EAAE,CAAA;QACpD,MAAM,OAAO,GAAkB;YAC7B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAmB,EAA4B,EAAE;gBACrE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;gBACvC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;YAC/C,CAAC,CAAC;YACF,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAoC,EAAE,CAAC,CAAC;gBACzD,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,IAAI,OAAO,EAAE;gBACtB,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC;SACJ,CAAA;QAED,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,OAAO;YACP,QAAQ,EAAE,yBAAyB;YACnC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE;YAClE,MAAM,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,CAAC;gBACrC,KAAK,EAAE;oBACL,OAAO,EAAE,CAAC,OAA8C,EAAE,EAAE,CAC1D,QAAQ,CAAC,IAAI,CAAU,kBAAkB,EAAE,EAAE,OAAO,CAAC;iBACxD;aACF,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;QACpF,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACvC,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,UAAU;YACrB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QAC5C,IAAI,CAAC;YACH,IAAI,cAAuC,CAAA;YAC3C,MAAM,OAAO,GAAkB;gBAC7B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAmB,EAA4B,EAAE;oBACrE,cAAc,GAAG,GAAG,CAAC,MAAM,CAAA;oBAC3B,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;gBAC/C,CAAC,CAAC;gBACF,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAoC,EAAE,CAAC,CAAC;oBACzD,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,IAAI,OAAO,EAAE;oBACtB,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;iBAC5B,CAAC,CAAC;aACJ,CAAA;YAED,MAAM,MAAM,GAAG,YAAY,CAAC;gBAC1B,OAAO;gBACP,QAAQ,EAAE,yBAAyB;gBACnC,MAAM,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,CAAC;oBACrC,KAAK,EAAE;wBACL,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAU,kBAAkB,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qBAC5E;iBACF,CAAC;aACH,CAAC,CAAA;YAEF,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;YACzB,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;YACtC,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAA;QACtC,CAAC;gBAAS,CAAC;YACT,GAAG,CAAC,WAAW,EAAE,CAAA;QACnB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAA;QAC7B,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAA;QAEnE,IAAI,gBAA4C,CAAA;QAChD,YAAY,CAAC;YACX,OAAO;YACP,QAAQ,EAAE,yBAAyB;YACnC,QAAQ;YACR,MAAM,EAAE,CAAC,QAAwB,EAAE,EAAE;gBACnC,gBAAgB,GAAG,QAAQ,CAAA;gBAC3B,OAAO,EAAE,CAAA;YACX,CAAC;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
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. Returns undefined if
42
- * no headers would be set.
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
- * Merges headers with precedence: default < per-call. Returns undefined if
44
- * no headers would be set.
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
- export function resolveHeaders(defaults, options) {
47
- const defaultHeaders = defaults?.headers;
48
- const callHeaders = options?.headers;
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":"AAOA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,QAA2C,EAC3C,OAAyC,EACzC,QAAgB;IAEhB,OAAO,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAA;AAC5D,CAAC;AAsBD,MAAM,UAAU,oBAAoB,CAClC,QAA2C,EAC3C,OAAyC;IAEzC,MAAM,UAAU,GAAG,OAAO,EAAE,MAAM,CAAA;IAClC,mFAAmF;IACnF,MAAM,SAAS,GAAG,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAA;IACtF,MAAM,aAAa,GACjB,SAAS,IAAI,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEjF,MAAM,OAAO,GAAkB,EAAE,CAAA;IACjC,IAAI,QAAQ,EAAE,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACnD,IAAI,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACxC,IAAI,aAAa;QAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAE9C,IAAI,QAAiC,CAAA;IACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;SAC1C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAEhE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA;AAC3D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,QAA2C,EAC3C,OAAyC;IAEzC,OAAO,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAA;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,QAA2C,EAC3C,OAAyC;IAEzC,MAAM,cAAc,GAAG,QAAQ,EAAE,OAAO,CAAA;IACxC,MAAM,WAAW,GAAG,OAAO,EAAE,OAAO,CAAA;IAEpC,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAA;IAErD,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,WAAW,EAAE,CAAA;AAC9C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CACzB,QAA2C,EAC3C,OAAyC;IAEzC,MAAM,WAAW,GAAG,QAAQ,EAAE,IAAI,CAAA;IAClC,MAAM,QAAQ,GAAG,OAAO,EAAE,IAAI,CAAA;IAE9B,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAA;IAE/C,OAAO,EAAE,GAAG,WAAW,EAAE,GAAG,QAAQ,EAAiB,CAAA;AACvD,CAAC;AAOD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAuB,EACvB,QAA2C,EAC3C,OAAyC;IAEzC,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC7D,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACzD,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAE3C,MAAM,OAAO,GACX,eAAe,IAAI,OAAO,CAAC,OAAO;QAChC,CAAC,CAAC,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;QAC5C,CAAC,CAAC,SAAS,CAAA;IAEf,OAAO;QACL,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE;QACtE,aAAa;KACd,CAAA;AACH,CAAC"}
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
- const baseRequest = {
157
- url: 'https://api.example.com/foo',
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
  });