@cpajs/cpa 0.0.1-alpha-3 → 0.1.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -12
- package/dist/client/resources/oauth.d.ts +6 -2
- package/dist/client/resources/oauth.d.ts.map +1 -1
- package/dist/client/resources/oauth.js +28 -8
- package/dist/client/resources/oauth.js.map +1 -1
- package/dist/client/transport.d.ts.map +1 -1
- package/dist/client/transport.js +7 -3
- package/dist/client/transport.js.map +1 -1
- package/dist/server/args.js +1 -1
- package/dist/server/args.js.map +1 -1
- package/dist/server/binary.d.ts +19 -0
- package/dist/server/binary.d.ts.map +1 -1
- package/dist/server/binary.js +35 -1
- package/dist/server/binary.js.map +1 -1
- package/dist/server/config.d.ts +46 -7
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +148 -22
- package/dist/server/config.js.map +1 -1
- package/dist/server/errors.d.ts +4 -2
- package/dist/server/errors.d.ts.map +1 -1
- package/dist/server/errors.js +1 -1
- package/dist/server/errors.js.map +1 -1
- package/dist/server/index.d.ts +18 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +383 -79
- package/dist/server/index.js.map +1 -1
- package/dist/server/internal.d.ts +19 -0
- package/dist/server/internal.d.ts.map +1 -0
- package/dist/server/internal.js +10 -0
- package/dist/server/internal.js.map +1 -0
- package/dist/server/management.d.ts +29 -0
- package/dist/server/management.d.ts.map +1 -0
- package/dist/server/management.js +64 -0
- package/dist/server/management.js.map +1 -0
- package/dist/server/process.d.ts +12 -1
- package/dist/server/process.d.ts.map +1 -1
- package/dist/server/process.js +55 -13
- package/dist/server/process.js.map +1 -1
- package/dist/server/readiness.d.ts +16 -2
- package/dist/server/readiness.d.ts.map +1 -1
- package/dist/server/readiness.js +32 -2
- package/dist/server/readiness.js.map +1 -1
- package/dist/server/targets.d.ts +4 -0
- package/dist/server/targets.d.ts.map +1 -1
- package/dist/server/targets.js +6 -0
- package/dist/server/targets.js.map +1 -1
- package/dist/server/types.d.ts +88 -14
- package/dist/server/types.d.ts.map +1 -1
- package/package.json +31 -24
- package/src/client/resources/oauth.ts +28 -13
- package/src/client/transport.ts +7 -3
- package/src/server/args.ts +1 -1
- package/src/server/binary.ts +46 -1
- package/src/server/config.ts +169 -22
- package/src/server/errors.ts +4 -2
- package/src/server/index.ts +459 -94
- package/src/server/internal.ts +20 -0
- package/src/server/management.ts +89 -0
- package/src/server/process.ts +60 -13
- package/src/server/readiness.ts +38 -3
- package/src/server/targets.ts +8 -0
- package/src/server/types.ts +90 -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**.
|
|
14
|
-
|
|
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
|
-
|
|
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,95 @@ await server.stop();
|
|
|
39
42
|
```
|
|
40
43
|
|
|
41
44
|
- `config` and `configPath` are mutually exclusive.
|
|
42
|
-
- `config` is written to `<stateDir>/config.yaml`
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
`
|
|
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
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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 does not outlive your process, even if it is killed with SIGKILL, crashes, or is restarted by
|
|
75
|
+
`tsx watch` / `nodemon`. Each platform package ships a small `cpa-launcher` (pure Go, in `launcher/`) that
|
|
76
|
+
relies only on operating-system facilities:
|
|
77
|
+
- Linux: it sets `PR_SET_PDEATHSIG` and execs CPA, so there is no extra process. The kernel sends CPA SIGTERM
|
|
78
|
+
when your process dies.
|
|
79
|
+
- macOS / BSD: it stays as CPA's parent and stops CPA when the pipe to your process closes. `server.pid` is
|
|
80
|
+
then the launcher's pid; signals sent to it reach CPA.
|
|
81
|
+
- Windows: no launcher is needed, because Node already kills child processes with their parent.
|
|
82
|
+
|
|
83
|
+
Pass `launcher: false` to start CPA directly. With a custom `binaryPath`, the launcher is looked up next to
|
|
84
|
+
that binary and then in the installed platform package; if none is found, a notice is logged. A graceful stop
|
|
85
|
+
is still nicer than a kill, and `stopAllServers()` stops every server this process started:
|
|
86
|
+
|
|
87
|
+
```ts
|
|
88
|
+
import { stopAllServers } from '@cpajs/cpa/server';
|
|
89
|
+
|
|
90
|
+
for (const signal of ['SIGINT', 'SIGTERM'] as const) {
|
|
91
|
+
process.once(signal, async () => {
|
|
92
|
+
await stopAllServers();
|
|
93
|
+
process.exit(0);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Lines longer than 64 KiB in CPA's output are truncated, with a marker saying how much was dropped.
|
|
99
|
+
- `management: { key }` manages the management API key. The default mode writes a bcrypt hash into
|
|
100
|
+
`management.secret-key` of the managed config and sets `management.allow-remote` from `allowRemote`
|
|
101
|
+
(default `false`), so the plaintext never reaches disk and remote management stays off.
|
|
102
|
+
|
|
103
|
+
Redaction: the key, secrets found in the config when the server starts, and `redact` values are replaced with
|
|
104
|
+
`[REDACTED]` in `onLog`, `recentLogs` and startup errors. This is best-effort, with known limits:
|
|
105
|
+
- Values shorter than 4 characters are not redacted.
|
|
106
|
+
- Credentials added while the server runs (management API, OAuth logins, `restart()`) are not added to
|
|
107
|
+
the redaction list.
|
|
108
|
+
- A line longer than 64 KiB is truncated before redaction, which can leave the start of a secret at the cut.
|
|
109
|
+
|
|
110
|
+
Do not treat CPA's output as safe to publish.
|
|
111
|
+
|
|
112
|
+
| Mode | How CPA compares the key | Remote access |
|
|
113
|
+
| --- | --- | --- |
|
|
114
|
+
| `management: { key }` (default) | bcrypt hash in `management.secret-key` | Written from `allowRemote`, default `false` |
|
|
115
|
+
| `management: { key, allowRemote: true }` | bcrypt hash in `management.secret-key` | Non-loopback clients allowed |
|
|
116
|
+
| `management: { key, viaEnvironment: true }` | Plaintext `MANAGEMENT_PASSWORD` | Always allowed: upstream treats the variable as `allow-remote: true` |
|
|
117
|
+
| `config.management['secret-key']` | What you write; CPA hashes plaintext on startup | `config.management['allow-remote']` |
|
|
118
|
+
| `configPath` | `secret-key` in the file | `allow-remote` in the file |
|
|
119
|
+
| `managementKey` (deprecated) | bcrypt hash, same as the default | Same as the default; it no longer opens remote access |
|
|
120
|
+
|
|
121
|
+
`management.key` is rejected together with `config.management['secret-key']`, or with a `secret-key`
|
|
122
|
+
already present in `configPath`. In `configPath` mode it also requires `viaEnvironment: true`, because
|
|
123
|
+
cpajs must not edit your file.
|
|
124
|
+
|
|
125
|
+
`MANAGEMENT_PASSWORD` reaches CPA only through `viaEnvironment: true`. One inherited from the parent
|
|
126
|
+
environment is always removed, and setting it in `env` is rejected. Otherwise it would quietly add a
|
|
127
|
+
plaintext key and turn remote management on.
|
|
128
|
+
|
|
129
|
+
`viaEnvironment: true` always emits a warning through `onLog`, because the key is compared in plaintext and
|
|
130
|
+
remote management cannot be turned off. `allowRemote: true` emits one when the bind host is not loopback.
|
|
131
|
+
These are warnings, not errors, because both are explicit choices.
|
|
132
|
+
|
|
133
|
+
The server handle does not expose the key. Keep it in your own code and pass it to `createClient`.
|
|
54
134
|
- CLI flags are typed options:
|
|
55
135
|
- `localModel: true` → `-local-model`, which uses the embedded model catalogs.
|
|
56
136
|
- `home: { jwt, disableClusterDiscovery }` → Home mode. The JWT is passed through `HOME_JWT`, so it never appears in argv.
|
|
@@ -110,6 +190,16 @@ Every method takes `{ signal, timeoutMs, headers }`. Errors:
|
|
|
110
190
|
|
|
111
191
|
A 207 partial result resolves normally. Use `client.request()` for anything without a typed method.
|
|
112
192
|
|
|
193
|
+
### Management-key bans
|
|
194
|
+
|
|
195
|
+
The fifth consecutive wrong management key from one IP address bans that IP for 30 minutes. While banned, CPA
|
|
196
|
+
answers 403 `{"error":"IP banned due to too many failed attempts. Try again in <duration>"}` before it even checks
|
|
197
|
+
the supplied key. Loopback clients are included, and `127.0.0.1` and `::1` are separate counters. The failed-attempt
|
|
198
|
+
map is in process memory and upstream has no unban route.
|
|
199
|
+
|
|
200
|
+
For a server you started with `startServer`, call `server.restart()` to clear the ban. For a remote instance you
|
|
201
|
+
can only wait for it to expire. Do not retry a 401 `invalid management key` or `missing management key` in a loop.
|
|
202
|
+
|
|
113
203
|
### Model API
|
|
114
204
|
|
|
115
205
|
The management key and model API keys are different things. Model requests go to `server.baseUrl` or
|
|
@@ -124,11 +214,17 @@ const openai = new OpenAI({ baseURL: server.baseUrl, apiKey: 'sk-my-model-key' }
|
|
|
124
214
|
|
|
125
215
|
```sh
|
|
126
216
|
pnpm install
|
|
217
|
+
pnpm lint # Biome
|
|
127
218
|
pnpm typecheck && pnpm test # unit tests (mocked fetch + a fake CPA process)
|
|
219
|
+
pnpm test:coverage # line coverage for client resources and src/server
|
|
128
220
|
node scripts/build-binary.ts --target linux-x64-musl
|
|
129
221
|
CPA_BINARY=dist-bin/linux-x64-musl/cli-proxy-api pnpm test:e2e # contract tests against real CPA
|
|
130
222
|
```
|
|
131
223
|
|
|
224
|
+
Biome formatting is configured to match the existing style. The current tree predates it, so enforcing
|
|
225
|
+
formatting across the whole repository is left to a dedicated change; `pnpm format:check` currently covers
|
|
226
|
+
new examples only.
|
|
227
|
+
|
|
132
228
|
Release tooling, all in `scripts/` and run directly with Node's type stripping:
|
|
133
229
|
|
|
134
230
|
| 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
|
|
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
|
-
/**
|
|
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;
|
|
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
|
-
/**
|
|
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
|
|
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":"
|
|
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,
|
|
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"}
|
package/dist/client/transport.js
CHANGED
|
@@ -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
|
-
//
|
|
150
|
-
//
|
|
151
|
-
|
|
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":"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"}
|
package/dist/server/args.js
CHANGED
|
@@ -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: '
|
|
27
|
+
password: 'management.key',
|
|
28
28
|
};
|
|
29
29
|
function flagName(arg) {
|
|
30
30
|
const match = /^--?([A-Za-z0-9][\w.-]*)(?:=.*)?$/.exec(arg);
|
package/dist/server/args.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/server/binary.d.ts
CHANGED
|
@@ -32,4 +32,23 @@ export declare function resolveBinary(options?: {
|
|
|
32
32
|
binaryPath?: string;
|
|
33
33
|
platform?: HostPlatform;
|
|
34
34
|
}): ResolvedBinary;
|
|
35
|
+
/** How the launcher keeps CPA from outliving this process. */
|
|
36
|
+
export type LauncherMode = 'exec' | 'supervise';
|
|
37
|
+
export interface ResolvedLauncher {
|
|
38
|
+
path: string;
|
|
39
|
+
/**
|
|
40
|
+
* `exec` (Linux): the launcher sets PR_SET_PDEATHSIG and becomes CPA.
|
|
41
|
+
* `supervise` (macOS, BSD): the launcher stays as CPA's parent and stops it
|
|
42
|
+
* when its stdin pipe from this process closes.
|
|
43
|
+
*/
|
|
44
|
+
mode: LauncherMode;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Finds `cpa-launcher` for a CPA binary: next to the binary first (platform
|
|
48
|
+
* packages and local builds keep both in one directory), then in an installed
|
|
49
|
+
* platform package. Returns undefined on Windows, where Node already places
|
|
50
|
+
* child processes in a job object that is closed (and its processes killed)
|
|
51
|
+
* when this process exits.
|
|
52
|
+
*/
|
|
53
|
+
export declare function resolveLauncher(cpaPath: string, platform?: HostPlatform): ResolvedLauncher | undefined;
|
|
35
54
|
//# sourceMappingURL=binary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../src/server/binary.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../src/server/binary.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0E,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAInH,MAAM,MAAM,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC;IACzB,gCAAgC;IAChC,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yDAAyD;AACzD,wBAAgB,UAAU,IAAI,IAAI,GAAG,SAAS,CAc7C;AAED,wBAAgB,eAAe,IAAI,YAAY,CAG9C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,CAO7D;AAuBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;CAAO,GAAG,cAAc,CAuC5G;AAED,8DAA8D;AAC9D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,EAAE,YAAY,CAAC;CACpB;AAYD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,YAAgC,GAAG,gBAAgB,GAAG,SAAS,CAazH"}
|
package/dist/server/binary.js
CHANGED
|
@@ -2,7 +2,7 @@ import { accessSync, chmodSync, constants, existsSync, readdirSync, statSync } f
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { dirname, join } from 'node:path';
|
|
4
4
|
import { CpaBinaryError } from './errors.js';
|
|
5
|
-
import { TARGETS, UNSUPPORTED_PLATFORMS, binaryName, packageName } from './targets.js';
|
|
5
|
+
import { LAUNCHER_NAME, TARGETS, UNSUPPORTED_PLATFORMS, binaryName, packageName } from './targets.js';
|
|
6
6
|
const require = createRequire(import.meta.url);
|
|
7
7
|
/** Detects the C library of the running Linux system. */
|
|
8
8
|
export function detectLibc() {
|
|
@@ -105,4 +105,38 @@ export function resolveBinary(options = {}) {
|
|
|
105
105
|
'It is an optional dependency of @cpajs/cpa; reinstall without --no-optional / --omit=optional, ' +
|
|
106
106
|
'make sure your lockfile was not created on another platform without it, or pass binaryPath.');
|
|
107
107
|
}
|
|
108
|
+
function isExecutable(path) {
|
|
109
|
+
try {
|
|
110
|
+
if (!statSync(path).isFile())
|
|
111
|
+
return false;
|
|
112
|
+
accessSync(path, constants.X_OK);
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Finds `cpa-launcher` for a CPA binary: next to the binary first (platform
|
|
121
|
+
* packages and local builds keep both in one directory), then in an installed
|
|
122
|
+
* platform package. Returns undefined on Windows, where Node already places
|
|
123
|
+
* child processes in a job object that is closed (and its processes killed)
|
|
124
|
+
* when this process exits.
|
|
125
|
+
*/
|
|
126
|
+
export function resolveLauncher(cpaPath, platform = currentPlatform()) {
|
|
127
|
+
if (platform.os === 'win32')
|
|
128
|
+
return undefined;
|
|
129
|
+
const mode = platform.os === 'linux' ? 'exec' : 'supervise';
|
|
130
|
+
const candidates = [join(dirname(cpaPath), LAUNCHER_NAME)];
|
|
131
|
+
for (const target of candidateTargets(platform)) {
|
|
132
|
+
try {
|
|
133
|
+
candidates.push(join(dirname(require.resolve(`${packageName(target)}/package.json`)), 'bin', LAUNCHER_NAME));
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// Package not installed.
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
const path = candidates.find(isExecutable);
|
|
140
|
+
return path === undefined ? undefined : { path, mode };
|
|
141
|
+
}
|
|
108
142
|
//# sourceMappingURL=binary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../src/server/binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,WAAW,EAAe,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../src/server/binary.ts"],"names":[],"mappings":"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"}
|
package/dist/server/config.d.ts
CHANGED
|
@@ -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
|
|
12
|
-
*
|
|
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
|
|
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
|
|
28
|
-
*
|
|
29
|
-
*
|
|
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,
|
|
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"}
|