@cpajs/cpa 0.0.1-alpha-3 → 0.1.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +101 -12
  2. package/dist/client/resources/oauth.d.ts +6 -2
  3. package/dist/client/resources/oauth.d.ts.map +1 -1
  4. package/dist/client/resources/oauth.js +28 -8
  5. package/dist/client/resources/oauth.js.map +1 -1
  6. package/dist/client/transport.d.ts.map +1 -1
  7. package/dist/client/transport.js +7 -3
  8. package/dist/client/transport.js.map +1 -1
  9. package/dist/server/args.js +1 -1
  10. package/dist/server/args.js.map +1 -1
  11. package/dist/server/config.d.ts +46 -7
  12. package/dist/server/config.d.ts.map +1 -1
  13. package/dist/server/config.js +148 -22
  14. package/dist/server/config.js.map +1 -1
  15. package/dist/server/errors.d.ts +4 -2
  16. package/dist/server/errors.d.ts.map +1 -1
  17. package/dist/server/errors.js +1 -1
  18. package/dist/server/errors.js.map +1 -1
  19. package/dist/server/index.d.ts +18 -1
  20. package/dist/server/index.d.ts.map +1 -1
  21. package/dist/server/index.js +359 -78
  22. package/dist/server/index.js.map +1 -1
  23. package/dist/server/internal.d.ts +16 -0
  24. package/dist/server/internal.d.ts.map +1 -0
  25. package/dist/server/internal.js +10 -0
  26. package/dist/server/internal.js.map +1 -0
  27. package/dist/server/management.d.ts +29 -0
  28. package/dist/server/management.d.ts.map +1 -0
  29. package/dist/server/management.js +64 -0
  30. package/dist/server/management.js.map +1 -0
  31. package/dist/server/process.d.ts +4 -1
  32. package/dist/server/process.d.ts.map +1 -1
  33. package/dist/server/process.js +24 -4
  34. package/dist/server/process.js.map +1 -1
  35. package/dist/server/readiness.d.ts +16 -2
  36. package/dist/server/readiness.d.ts.map +1 -1
  37. package/dist/server/readiness.js +32 -2
  38. package/dist/server/readiness.js.map +1 -1
  39. package/dist/server/types.d.ts +72 -14
  40. package/dist/server/types.d.ts.map +1 -1
  41. package/package.json +31 -24
  42. package/src/client/resources/oauth.ts +28 -13
  43. package/src/client/transport.ts +7 -3
  44. package/src/server/args.ts +1 -1
  45. package/src/server/config.ts +169 -22
  46. package/src/server/errors.ts +4 -2
  47. package/src/server/index.ts +428 -93
  48. package/src/server/internal.ts +16 -0
  49. package/src/server/management.ts +89 -0
  50. package/src/server/process.ts +23 -4
  51. package/src/server/readiness.ts +38 -3
  52. package/src/server/types.ts +74 -14
package/README.md CHANGED
@@ -10,8 +10,11 @@ manage any CPA instance with a hand-written, typed client for its native **v8 ma
10
10
  - Prebuilt CPA binaries for 23 platforms come through `optionalDependencies`, so `npm install` is all that is
11
11
  needed.
12
12
 
13
- Bundled CLIProxyAPI: **v8.0.43**. See [docs/compatibility.md](docs/compatibility.md) for platforms and versions,
14
- and [docs/api-coverage.md](docs/api-coverage.md) for every route.
13
+ Bundled CLIProxyAPI: **v8.0.43**.
14
+
15
+ - Upgrading: [CHANGELOG.md](CHANGELOG.md) and [docs/migration.md](docs/migration.md).
16
+ - Platforms, versions and the versioning policy: [docs/compatibility.md](docs/compatibility.md).
17
+ - Every management API route: [docs/api-coverage.md](docs/api-coverage.md).
15
18
 
16
19
  ```sh
17
20
  npm install @cpajs/cpa
@@ -24,7 +27,7 @@ import { startServer } from '@cpajs/cpa/server';
24
27
 
25
28
  const server = await startServer({
26
29
  stateDir: './.cpa', // omit for a temporary directory that is removed on stop
27
- managementKey: process.env.CPA_MANAGEMENT_KEY,
30
+ management: { key: process.env.CPA_MANAGEMENT_KEY! },
28
31
  config: { // native v8 config, typed as CpaConfig
29
32
  access: { 'api-keys': ['sk-my-model-key'] },
30
33
  routing: { strategy: 'fill-first' },
@@ -39,18 +42,88 @@ await server.stop();
39
42
  ```
40
43
 
41
44
  - `config` and `configPath` are mutually exclusive.
42
- - `config` is written to `<stateDir>/config.yaml` on every start. Credentials go to `<stateDir>/auths` unless
43
- `oauth.auth-dir` is set. The server binds `127.0.0.1` unless you pass `host` or set `server.host`.
44
- - `configPath` hands an existing file to CPA unchanged. CPA may rewrite it, for example to hash
45
- `management.secret-key`. The file must set a fixed port, because CPA does not report the port it picks.
45
+ - `config` is written as YAML to `<stateDir>/config.yaml` only when that file does not exist yet. On later
46
+ starts the existing file is reused, so changes made through the management API (or by CPA itself) survive
47
+ `stop()` and `startServer()`. Pass `overwriteConfig: true` to replace it; when a file is kept, `config`, `host`
48
+ and `port` are not applied and a message is emitted through `onLog`. Credentials go to `<stateDir>/auths`
49
+ unless `oauth.auth-dir` is set. The server binds `127.0.0.1` unless you pass `host` or set `server.host`.
50
+ - `configPath` hands an existing file to CPA unchanged. CPA may rewrite it on startup: it hashes a plaintext
51
+ `management.secret-key`, removes legacy keys that conflict with their v8 equivalents, and normalizes the
52
+ layout (`internal/config/config_load.go` and `NormalizeConfigLayout`).
53
+
54
+ Both modes require the file to set a fixed positive port: CPA does not default the port, and a missing or
55
+ non-positive one becomes 0, which makes CPA bind a random port it does not report. Like upstream,
56
+ `server.host` / `server.port` / `server.tls.enable` win by presence over the legacy top-level `host` / `port` /
57
+ `tls.enable`. When cpajs writes the file and no port is given, it picks a free port first; a reused file keeps
58
+ the port it already has.
46
59
  - `startServer` resolves only once `/healthz` answers. It rejects with `CpaStartError` on early exit, port
47
60
  conflict, timeout (`startupTimeoutMs`, default 30 s) or `signal` abort. In every failure case the process is
48
61
  stopped and the temporary directory removed.
49
- - `stop()` is idempotent: it sends SIGTERM and then SIGKILL after `stopTimeoutMs` (default 10 s). On Windows Node
50
- can only terminate forcefully. `server.exited` settles however the process ends.
51
- - `managementKey` is passed through `MANAGEMENT_PASSWORD`, so it never touches disk. Upstream treats that
52
- variable as also allowing remote management. The key, config secrets and `redact` values are masked in logs and
53
- errors.
62
+ - `stop()` is idempotent: on POSIX it sends SIGTERM and then SIGKILL after `stopTimeoutMs` (default 10 s). On
63
+ Windows Node cannot deliver a graceful shutdown signal, so `stop()` terminates the process forcefully (equivalent
64
+ to SIGKILL), `stopTimeoutMs` has no effect, and CPA gets no chance to flush state or update auth files. The same
65
+ applies to the stop half of `restart()`. `server.exited` settles on the final stop or an unexpected exit.
66
+ - `restart({ timeoutMs, signal })` stops the old process with the same SIGTERM → SIGKILL sequence
67
+ (`timeoutMs` defaults to `stopTimeoutMs`) and starts it again with the original options. The handle keeps
68
+ `origin`, `baseUrl`, `host`, `port`, `stateDir` and `configPath`; `pid`, `process` and `recentLogs` point at the
69
+ new process. The existing `config.yaml` is reused and never rewritten, so changes made through the management
70
+ API survive. A dynamic port is reused too; if another process took it meanwhile, restart fails with
71
+ `CpaStartError` code `port-in-use` instead of changing `origin`. Concurrent `restart()` calls share one
72
+ operation, `stop()` during a restart aborts it, and `restart()` after `stop()` rejects. A failed restart leaves
73
+ the handle stopped and cleans up a temporary state directory like `startServer` does.
74
+ - Shutdown: CPA processes are killed when the host exits normally or calls `process.exit()`. A signal the host
75
+ does not handle (for example a default SIGTERM) ends Node without that cleanup, and cpajs does not install
76
+ signal handlers, because doing so would change how your process reacts to them. To leave nothing behind,
77
+ stop servers from your own handlers. `stopAllServers()` stops every server this process started:
78
+
79
+ ```ts
80
+ import { stopAllServers } from '@cpajs/cpa/server';
81
+
82
+ for (const signal of ['SIGINT', 'SIGTERM'] as const) {
83
+ process.once(signal, async () => {
84
+ await stopAllServers();
85
+ process.exit(0);
86
+ });
87
+ }
88
+ ```
89
+
90
+ SIGKILL cannot be handled, so nothing can clean up after it. Lines longer than 64 KiB in CPA's output are
91
+ truncated, with a marker saying how much was dropped.
92
+ - `management: { key }` manages the management API key. The default mode writes a bcrypt hash into
93
+ `management.secret-key` of the managed config and sets `management.allow-remote` from `allowRemote`
94
+ (default `false`), so the plaintext never reaches disk and remote management stays off.
95
+
96
+ Redaction: the key, secrets found in the config when the server starts, and `redact` values are replaced with
97
+ `[REDACTED]` in `onLog`, `recentLogs` and startup errors. This is best-effort, with known limits:
98
+ - Values shorter than 4 characters are not redacted.
99
+ - Credentials added while the server runs (management API, OAuth logins, `restart()`) are not added to
100
+ the redaction list.
101
+ - A line longer than 64 KiB is truncated before redaction, which can leave the start of a secret at the cut.
102
+
103
+ Do not treat CPA's output as safe to publish.
104
+
105
+ | Mode | How CPA compares the key | Remote access |
106
+ | --- | --- | --- |
107
+ | `management: { key }` (default) | bcrypt hash in `management.secret-key` | Written from `allowRemote`, default `false` |
108
+ | `management: { key, allowRemote: true }` | bcrypt hash in `management.secret-key` | Non-loopback clients allowed |
109
+ | `management: { key, viaEnvironment: true }` | Plaintext `MANAGEMENT_PASSWORD` | Always allowed: upstream treats the variable as `allow-remote: true` |
110
+ | `config.management['secret-key']` | What you write; CPA hashes plaintext on startup | `config.management['allow-remote']` |
111
+ | `configPath` | `secret-key` in the file | `allow-remote` in the file |
112
+ | `managementKey` (deprecated) | bcrypt hash, same as the default | Same as the default; it no longer opens remote access |
113
+
114
+ `management.key` is rejected together with `config.management['secret-key']`, or with a `secret-key`
115
+ already present in `configPath`. In `configPath` mode it also requires `viaEnvironment: true`, because
116
+ cpajs must not edit your file.
117
+
118
+ `MANAGEMENT_PASSWORD` reaches CPA only through `viaEnvironment: true`. One inherited from the parent
119
+ environment is always removed, and setting it in `env` is rejected. Otherwise it would quietly add a
120
+ plaintext key and turn remote management on.
121
+
122
+ `viaEnvironment: true` always emits a warning through `onLog`, because the key is compared in plaintext and
123
+ remote management cannot be turned off. `allowRemote: true` emits one when the bind host is not loopback.
124
+ These are warnings, not errors, because both are explicit choices.
125
+
126
+ The server handle does not expose the key. Keep it in your own code and pass it to `createClient`.
54
127
  - CLI flags are typed options:
55
128
  - `localModel: true` → `-local-model`, which uses the embedded model catalogs.
56
129
  - `home: { jwt, disableClusterDiscovery }` → Home mode. The JWT is passed through `HOME_JWT`, so it never appears in argv.
@@ -110,6 +183,16 @@ Every method takes `{ signal, timeoutMs, headers }`. Errors:
110
183
 
111
184
  A 207 partial result resolves normally. Use `client.request()` for anything without a typed method.
112
185
 
186
+ ### Management-key bans
187
+
188
+ The fifth consecutive wrong management key from one IP address bans that IP for 30 minutes. While banned, CPA
189
+ answers 403 `{"error":"IP banned due to too many failed attempts. Try again in <duration>"}` before it even checks
190
+ the supplied key. Loopback clients are included, and `127.0.0.1` and `::1` are separate counters. The failed-attempt
191
+ map is in process memory and upstream has no unban route.
192
+
193
+ For a server you started with `startServer`, call `server.restart()` to clear the ban. For a remote instance you
194
+ can only wait for it to expire. Do not retry a 401 `invalid management key` or `missing management key` in a loop.
195
+
113
196
  ### Model API
114
197
 
115
198
  The management key and model API keys are different things. Model requests go to `server.baseUrl` or
@@ -124,11 +207,17 @@ const openai = new OpenAI({ baseURL: server.baseUrl, apiKey: 'sk-my-model-key' }
124
207
 
125
208
  ```sh
126
209
  pnpm install
210
+ pnpm lint # Biome
127
211
  pnpm typecheck && pnpm test # unit tests (mocked fetch + a fake CPA process)
212
+ pnpm test:coverage # line coverage for client resources and src/server
128
213
  node scripts/build-binary.ts --target linux-x64-musl
129
214
  CPA_BINARY=dist-bin/linux-x64-musl/cli-proxy-api pnpm test:e2e # contract tests against real CPA
130
215
  ```
131
216
 
217
+ Biome formatting is configured to match the existing style. The current tree predates it, so enforcing
218
+ formatting across the whole repository is left to a dedicated change; `pnpm format:check` currently covers
219
+ new examples only.
220
+
132
221
  Release tooling, all in `scripts/` and run directly with Node's type stripping:
133
222
 
134
223
  | Script | Purpose |
@@ -1,6 +1,6 @@
1
1
  import type { CancelOAuthSessionResponse, OAuthAuthUrlRequest, OAuthAuthUrlResponse, OAuthCallbackRequest, OAuthCallbackResponse, OAuthStatusResponse, SIWCBindResponse, VertexImportResponse } from '../types/oauth.ts';
2
2
  import type { SIWCStatusResponse } from '../types/credentials.ts';
3
- import type { RequestOptions, Transport } from '../transport.ts';
3
+ import { type RequestOptions, type Transport } from '../transport.ts';
4
4
  import type { CredentialContent, CredentialSelector } from './credentials.ts';
5
5
  export interface WaitForOAuthOptions extends RequestOptions {
6
6
  /** Poll interval. Default 2 000 ms. */
@@ -17,7 +17,11 @@ export declare class OAuthResource {
17
17
  start(request: OAuthAuthUrlRequest, options?: RequestOptions): Promise<OAuthAuthUrlResponse>;
18
18
  /** Session state: `wait` while pending, `ok` when done, `error` with a message otherwise. */
19
19
  status(state: string, options?: RequestOptions): Promise<OAuthStatusResponse>;
20
- /** Polls {@link status} until the session leaves `wait`. Abort with `signal`. */
20
+ /**
21
+ * Polls {@link status} until the session leaves `wait`. Abort with `signal`
22
+ * (for an overall limit use `AbortSignal.timeout()`); cancellation always
23
+ * rejects with `CpaAbortError`, whether it happens during a request or between polls.
24
+ */
21
25
  waitForCompletion(state: string, options?: WaitForOAuthOptions): Promise<Exclude<OAuthStatusResponse, {
22
26
  status: 'wait';
23
27
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../src/client/resources/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,oDAAoD;AACpD,qBAAa,aAAa;;IAGxB,YAAY,SAAS,EAAE,SAAS,EAE/B;IAED;;;OAGG;IACG,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAErG;IAED,6FAA6F;IACvF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAEtF;IAED,iFAAiF;IAC3E,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAiBnI;IAED,6FAA6F;IACvF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAE7F;IAED;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAG1G;IAED,yEAAyE;IACnE,YAAY,CAChB,KAAK,EAAE;QAAE,cAAc,EAAE,iBAAiB,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAClF,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAc/B;IAED,mFAAmF;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEpF;IAED,6DAA6D;IACvD,UAAU,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAExG;CACF"}
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../src/client/resources/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,oDAAoD;AACpD,qBAAa,aAAa;;IAGxB,YAAY,SAAS,EAAE,SAAS,EAE/B;IAED;;;OAGG;IACG,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAErG;IAED,6FAA6F;IACvF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAEtF;IAED;;;;OAIG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAUnI;IAED,6FAA6F;IACvF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAE7F;IAED;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAG1G;IAED,yEAAyE;IACnE,YAAY,CAChB,KAAK,EAAE;QAAE,cAAc,EAAE,iBAAiB,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAClF,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAc/B;IAED,mFAAmF;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEpF;IAED,6DAA6D;IACvD,UAAU,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAExG;CACF"}
@@ -1,3 +1,5 @@
1
+ import { CpaAbortError } from '../errors.js';
2
+ import { managementUrl } from '../transport.js';
1
3
  /** `/v8/management/oauth/*`: native login flows. */
2
4
  export class OAuthResource {
3
5
  #t;
@@ -15,20 +17,21 @@ export class OAuthResource {
15
17
  async status(state, options = {}) {
16
18
  return (await this.#t.request({ ...options, method: 'GET', path: '/oauth/status', query: { state } })).data;
17
19
  }
18
- /** Polls {@link status} until the session leaves `wait`. Abort with `signal`. */
20
+ /**
21
+ * Polls {@link status} until the session leaves `wait`. Abort with `signal`
22
+ * (for an overall limit use `AbortSignal.timeout()`); cancellation always
23
+ * rejects with `CpaAbortError`, whether it happens during a request or between polls.
24
+ */
19
25
  async waitForCompletion(state, options = {}) {
20
26
  const { intervalMs = 2_000, ...requestOptions } = options;
27
+ const url = managementUrl(this.#t.baseUrl, '/oauth/status');
28
+ url.searchParams.set('state', state);
29
+ const target = { method: 'GET', url: url.toString() };
21
30
  while (true) {
22
31
  const result = await this.status(state, requestOptions);
23
32
  if (result.status !== 'wait')
24
33
  return result;
25
- await new Promise((resolve, reject) => {
26
- const timer = setTimeout(resolve, intervalMs);
27
- requestOptions.signal?.addEventListener('abort', () => {
28
- clearTimeout(timer);
29
- reject(requestOptions.signal.reason);
30
- }, { once: true });
31
- });
34
+ await abortableDelay(intervalMs, requestOptions.signal, target);
32
35
  }
33
36
  }
34
37
  /** Cancels a pending session. `cancelled` is false if it was unknown or already finished. */
@@ -67,4 +70,21 @@ export class OAuthResource {
67
70
  return (await this.#t.request({ ...options, method: 'GET', path: '/oauth/siwc/status', query: { ...selector } })).data;
68
71
  }
69
72
  }
73
+ /** Waits `ms`, rejecting with `CpaAbortError` if `signal` aborts; never leaves a listener behind. */
74
+ function abortableDelay(ms, signal, target) {
75
+ const aborted = () => new CpaAbortError(`${target.method} ${target.url} was aborted`, target, { cause: signal.reason });
76
+ if (signal?.aborted)
77
+ return Promise.reject(aborted());
78
+ return new Promise((resolve, reject) => {
79
+ const onAbort = () => {
80
+ clearTimeout(timer);
81
+ reject(aborted());
82
+ };
83
+ const timer = setTimeout(() => {
84
+ signal?.removeEventListener('abort', onAbort);
85
+ resolve();
86
+ }, ms);
87
+ signal?.addEventListener('abort', onAbort, { once: true });
88
+ });
89
+ }
70
90
  //# sourceMappingURL=oauth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../src/client/resources/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../src/client/resources/oauth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE9D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;AAC/G,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC;IACtB,8FAA8F;IAC9F,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,uCAAuC;IACvC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAEjE,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,sEAAsE;IACtE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kDAAkD;IAClD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAWD,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,GAAG,CAMpF;AAED,qBAAa,SAAS;;IAOpB,YAAY,OAAO,EAAE,aAAa,EAYjC;IAED,IAAI,OAAO,IAAI,GAAG,CAEjB;IAEK,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAmG/D;CACF;AAED,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAAE,IAAI,SAAS,GAAG,MAAM,CASlF"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE9D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;AAC/G,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC;IACtB,8FAA8F;IAC9F,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,uCAAuC;IACvC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAEjE,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,sEAAsE;IACtE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kDAAkD;IAClD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAWD,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,GAAG,CAMpF;AAED,qBAAa,SAAS;;IAOpB,YAAY,OAAO,EAAE,aAAa,EAYjC;IAED,IAAI,OAAO,IAAI,GAAG,CAEjB;IAEK,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAuG/D;CACF;AAED,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAAE,IAAI,SAAS,GAAG,MAAM,CASlF"}
@@ -110,6 +110,8 @@ export class Transport {
110
110
  if (body !== undefined)
111
111
  init.body = body;
112
112
  const responseType = req.responseType ?? 'json';
113
+ // Set once a Response is handed to the caller, who then owns reading its body.
114
+ let handedOff = false;
113
115
  try {
114
116
  let response;
115
117
  try {
@@ -122,6 +124,7 @@ export class Transport {
122
124
  throw new CpaHttpError(target, response, await guard(response.text()));
123
125
  }
124
126
  if (responseType === 'response') {
127
+ handedOff = true;
125
128
  return { data: response, status: response.status, headers: response.headers };
126
129
  }
127
130
  if (responseType === 'blob') {
@@ -146,9 +149,10 @@ export class Transport {
146
149
  throw classify(error);
147
150
  }
148
151
  finally {
149
- // For `response`, the caller reads the body; the timeout covers the headers only,
150
- // while the caller's own signal keeps working through the request's signal.
151
- if (responseType === 'response')
152
+ // A handed-off Response is read by the caller: the timeout covered the headers
153
+ // only, and the caller's signal must keep cancelling the body, so its listener
154
+ // stays until that signal aborts. Every other outcome releases everything.
155
+ if (handedOff)
152
156
  clearTimeout(timer);
153
157
  else
154
158
  release();
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9G,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAyDlD,SAAS,WAAW,CAAC,GAAQ,EAAE,KAAwB;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;YAC1F,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,aAAa,CAAC,OAAqB,EAAE,IAAY,EAAE,IAAI,GAAG,KAAK;IAC7E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,GAAG,CAAC,QAAQ,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,GAAG,IAAI,EAAE,CAAC;IAClE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,OAAO,SAAS;IACX,QAAQ,CAAM;IACd,cAAc,CAAS;IACvB,MAAM,CAAY;IAClB,QAAQ,CAAU;IAClB,UAAU,CAAS;IAE5B,YAAY,OAAsB;QAChC,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,MAAM,IAAI,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;QAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC9E,MAAM,IAAI,SAAS,CAAC,gCAAgC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClF,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,GAAe;QAC9B,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7D,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;QAE3D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAElF,IAAI,IAA0B,CAAC;QAC/B,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YAClB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YAChB,IAAI,GAAG,CAAC,WAAW;gBAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEjI,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC;QACnD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;QAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAS,EAAE;YACzC,IAAI,UAAU,EAAE,OAAO;gBAAE,OAAO,IAAI,aAAa,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,cAAc,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACtI,IAAI,QAAQ;gBAAE,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9E,OAAO,IAAI,eAAe,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,YAAa,KAAe,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE;gBACzH,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC,CAAC;QACF,IAAI,UAAU,EAAE,OAAO;YAAE,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAE3D,uFAAuF;QACvF,+EAA+E;QAC/E,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,aAAa,GAA2B,GAAG,EAAE,GAAE,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC/C,aAAa,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,CAAC,MAAe,EAAQ,EAAE;YACtC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzB,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,UAAW,CAAC,MAAM,CAAC,CAAC;QAC1D,UAAU,EAAE,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,KAAgD,CAAC;QACrD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,QAAQ,GAAG,IAAI,CAAC;gBAChB,KAAK,CAAC,IAAI,YAAY,CAAC,mBAAmB,SAAS,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;YAC7E,CAAC,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC;QACD,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,UAAU,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACxD,CAAC,CAAC;QACF,uFAAuF;QACvF,MAAM,KAAK,GAAG,CAAI,OAAmB,EAAc,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAEvF,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;QACzG,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEzC,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC;QAChD,+EAA+E;QAC/E,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC;YACH,IAAI,QAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,KAAK,YAAY,aAAa,IAAI,KAAK,YAAY,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrG,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;gBAChC,SAAS,GAAG,IAAI,CAAC;gBACjB,OAAO,EAAE,IAAI,EAAE,QAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrF,CAAC;YACD,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;gBAC5B,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC3G,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1C,IAAI,YAAY,KAAK,MAAM;gBAAE,OAAO,EAAE,IAAI,EAAE,IAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC5G,IAAI,IAAI,KAAK,EAAE;gBAAE,OAAO,EAAE,IAAI,EAAE,SAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrG,IAAI,CAAC;gBACH,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC7F,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,wBAAwB,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/H,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,YAAY,gBAAgB,IAAI,KAAK,YAAY,aAAa,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;gBAC7I,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;gBAAS,CAAC;YACT,+EAA+E;YAC/E,+EAA+E;YAC/E,2EAA2E;YAC3E,IAAI,SAAS;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;;gBAC9B,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;CACF;AAED,iEAAiE;AACjE,MAAM,UAAU,UAAU,CAAC,IAAgC,EAAE,IAAI,GAAG,MAAM;IACxE,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACzI,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,KAAK,EAAE;YAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;QAC9E,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,aAAa,OAAO,oEAAoE,CAAC,CAAC;QACvH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC"}
@@ -24,7 +24,7 @@ const MANAGED_FLAGS = {
24
24
  'local-model': 'localModel',
25
25
  'home-jwt': 'home.jwt',
26
26
  'home-disable-cluster-discovery': 'home.disableClusterDiscovery',
27
- password: 'managementKey',
27
+ password: 'management.key',
28
28
  };
29
29
  function flagName(arg) {
30
30
  const match = /^--?([A-Za-z0-9][\w.-]*)(?:=.*)?$/.exec(arg);
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/server/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,mGAAmG;AACnG,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,aAAa;IACb,oBAAoB;IACpB,cAAc;IACd,mBAAmB;IACnB,YAAY;IACZ,eAAe;IACf,WAAW;IACX,aAAa;IACb,YAAY;IACZ,UAAU;IACV,eAAe;IACf,eAAe;IACf,WAAW;IACX,KAAK;IACL,YAAY;IACZ,qBAAqB;CACtB,CAAC,CAAC;AACH,iCAAiC;AACjC,MAAM,aAAa,GAA2B;IAC5C,MAAM,EAAE,qBAAqB;IAC7B,aAAa,EAAE,YAAY;IAC3B,UAAU,EAAE,UAAU;IACtB,gCAAgC,EAAE,8BAA8B;IAChE,QAAQ,EAAE,eAAe;CAC1B,CAAC;AAEF,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,KAAK,GAAG,mCAAmC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CAAC,OAA2B;IACnD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,aAAa,CAAC,iBAAiB,EAAE,0BAA0B,IAAI,qDAAqD,CAAC,CAAC;QAClI,CAAC;QACD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM;YAAE,MAAM,IAAI,aAAa,CAAC,iBAAiB,EAAE,WAAW,MAAM,+BAA+B,IAAI,WAAW,CAAC,CAAC;IAC1H,CAAC;IACD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,OAAO,CAAC,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,IAAI,EAAE,uBAAuB;QAAE,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACxF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/server/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,mGAAmG;AACnG,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,aAAa;IACb,oBAAoB;IACpB,cAAc;IACd,mBAAmB;IACnB,YAAY;IACZ,eAAe;IACf,WAAW;IACX,aAAa;IACb,YAAY;IACZ,UAAU;IACV,eAAe;IACf,eAAe;IACf,WAAW;IACX,KAAK;IACL,YAAY;IACZ,qBAAqB;CACtB,CAAC,CAAC;AACH,iCAAiC;AACjC,MAAM,aAAa,GAA2B;IAC5C,MAAM,EAAE,qBAAqB;IAC7B,aAAa,EAAE,YAAY;IAC3B,UAAU,EAAE,UAAU;IACtB,gCAAgC,EAAE,8BAA8B;IAChE,QAAQ,EAAE,gBAAgB;CAC3B,CAAC;AAEF,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,KAAK,GAAG,mCAAmC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CAAC,OAA2B;IACnD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,aAAa,CAAC,iBAAiB,EAAE,0BAA0B,IAAI,qDAAqD,CAAC,CAAC;QAClI,CAAC;QACD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM;YAAE,MAAM,IAAI,aAAa,CAAC,iBAAiB,EAAE,WAAW,MAAM,+BAA+B,IAAI,WAAW,CAAC,CAAC;IAC1H,CAAC;IACD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,OAAO,CAAC,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,IAAI,EAAE,uBAAuB;QAAE,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACxF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,6 +1,13 @@
1
1
  import type { CpaConfig } from '../client/types/config.ts';
2
- export declare const DEFAULT_PORT = 8317;
3
2
  export declare const MANAGED_CONFIG_FILE = "config.yaml";
3
+ export interface ManagementSettings {
4
+ /** `management.allow-remote`, falling back to the legacy `remote-management` key. */
5
+ allowRemote: boolean;
6
+ /** True when the document already has a non-empty `secret-key`. */
7
+ hasSecret: boolean;
8
+ /** The stored `secret-key` (plaintext or a bcrypt hash), if any. */
9
+ secretKey: string | undefined;
10
+ }
4
11
  export interface ListenSettings {
5
12
  /** The `server.host` value as configured; empty means all interfaces. */
6
13
  host: string;
@@ -8,30 +15,62 @@ export interface ListenSettings {
8
15
  tls: boolean;
9
16
  }
10
17
  /**
11
- * Reads listener settings from a parsed config document. The v8 `server.*`
12
- * keys win over the legacy top-level `host`/`port`/`tls` keys, mirroring CPA.
18
+ * Reads listener settings from a parsed config document using upstream's
19
+ * presence-based precedence: a `server.*` leaf wins whenever it is present,
20
+ * even when it is `0`, `false` or `null` (internal/config/config_v8.go).
21
+ * Legacy top-level `host`/`port`/`tls` are used only when that v8 leaf is
22
+ * absent, and `tls.enable` is resolved leaf by leaf rather than by replacing
23
+ * the whole `tls` object.
13
24
  */
14
25
  export declare function readListenSettings(doc: unknown): ListenSettings;
26
+ /**
27
+ * Reads management settings from a parsed config document. The v8 `management`
28
+ * section wins over the legacy `remote-management` alias, mirroring CPA.
29
+ */
30
+ export declare function readManagementSettings(doc: unknown): ManagementSettings;
15
31
  /** Secrets that appear in a config document and must never reach logs. */
16
32
  export declare function configSecrets(doc: unknown): string[];
17
33
  export interface PreparedConfig {
18
34
  configPath: string;
19
35
  listen: ListenSettings;
36
+ management: ManagementSettings;
20
37
  secrets: string[];
21
- /** True when the file was written by this package. */
38
+ /** True when the file belongs to the managed state directory. */
22
39
  managed: boolean;
40
+ /** True when an existing file was reused instead of written. */
41
+ reused: boolean;
23
42
  }
24
43
  /**
25
44
  * Writes a `config` object to the managed config file in `stateDir`.
26
45
  *
27
- * The object is serialised as JSON, which is valid YAML and is read by CPA's
28
- * YAML loader unchanged. Listener and auth directory defaults are filled in so
29
- * the process stays inside `stateDir` and binds to loopback unless told otherwise.
46
+ * The object is serialised as YAML so CPA and humans see the same stable shape.
47
+ * Listener and auth directory defaults are filled in so the process stays inside
48
+ * `stateDir` and binds to loopback unless told otherwise.
30
49
  */
31
50
  export declare function writeManagedConfig(config: CpaConfig, stateDir: string, listen: {
32
51
  host: string;
33
52
  port: number;
53
+ }, management?: {
54
+ secretKeyHash: string;
55
+ allowRemote: boolean;
34
56
  }): Promise<PreparedConfig>;
57
+ /**
58
+ * Reads the managed config file in `stateDir` without modifying it.
59
+ *
60
+ * Returns `undefined` when the file does not exist yet. An existing file must
61
+ * set a fixed `server.port`, because CPA does not report the port it picks and
62
+ * a later start cannot discover it.
63
+ */
64
+ export declare function readManagedConfig(stateDir: string): Promise<PreparedConfig | undefined>;
65
+ /**
66
+ * Sets `management.secret-key` and `management.allow-remote` in a reused
67
+ * managed config, leaving every other key and comment as CPA left them.
68
+ * The legacy `remote-management` section is dropped so it cannot shadow them.
69
+ */
70
+ export declare function updateManagedSecret(configPath: string, management: {
71
+ secretKeyHash: string;
72
+ allowRemote: boolean;
73
+ }): Promise<void>;
35
74
  /** Reads an existing config file without modifying it. */
36
75
  export declare function inspectConfigFile(configPath: string): Promise<PreparedConfig>;
37
76
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;CACd;AAQD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAe/D;AAKD,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAkBpD;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACrC,OAAO,CAAC,cAAc,CAAC,CAgBzB;AAED,0DAA0D;AAC1D,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAsBnF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,qFAAqF;IACrF,WAAW,EAAE,OAAO,CAAC;IACrB,mEAAmE;IACnE,SAAS,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;CACd;AAsBD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAmB/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,CAavE;AAUD,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAkBpD;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACtC,UAAU,CAAC,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GAC3D,OAAO,CAAC,cAAc,CAAC,CA+BzB;AAMD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CA8B7F;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GAC1D,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,0DAA0D;AAC1D,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAqCnF"}