@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
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ManagementOptions } from './types.ts';
|
|
2
|
+
/** bcrypt cost; matches upstream's `bcrypt.DefaultCost` (about 50-100 ms per hash). */
|
|
3
|
+
export declare const BCRYPT_COST = 10;
|
|
4
|
+
export interface ResolvedManagement {
|
|
5
|
+
/** The plaintext key, when the caller supplied one. */
|
|
6
|
+
key: string | undefined;
|
|
7
|
+
/** True when the key travels through `MANAGEMENT_PASSWORD`. */
|
|
8
|
+
viaEnvironment: boolean;
|
|
9
|
+
/** Value for `management.allow-remote` in a managed config. */
|
|
10
|
+
allowRemote: boolean;
|
|
11
|
+
/** bcrypt hash for `management.secret-key` (default mode only). */
|
|
12
|
+
secretKeyHash: string | undefined;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Normalises the management options and hashes the key for the default mode.
|
|
16
|
+
* The deprecated `managementKey` alias maps to the same safe default, not to
|
|
17
|
+
* the old `MANAGEMENT_PASSWORD` behaviour.
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveManagement(options: {
|
|
20
|
+
management?: ManagementOptions;
|
|
21
|
+
managementKey?: string;
|
|
22
|
+
}): Promise<ResolvedManagement>;
|
|
23
|
+
/**
|
|
24
|
+
* True when `stored` (a `management.secret-key` value) authenticates `key` the
|
|
25
|
+
* way upstream checks it: bcrypt hashes are compared, a plaintext value is
|
|
26
|
+
* hashed by CPA on load and so must equal the key.
|
|
27
|
+
*/
|
|
28
|
+
export declare function keyMatches(key: string, stored: string | undefined): Promise<boolean>;
|
|
29
|
+
//# sourceMappingURL=management.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"management.d.ts","sourceRoot":"","sources":["../../src/server/management.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,uFAAuF;AACvF,eAAO,MAAM,WAAW,KAAK,CAAC;AAM9B,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,+DAA+D;IAC/D,cAAc,EAAE,OAAO,CAAC;IACxB,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB,mEAAmE;IACnE,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA8C9B;AAID;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAG1F"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { compare, hash } from 'bcryptjs';
|
|
2
|
+
import { CpaStartError } from './errors.js';
|
|
3
|
+
/** bcrypt cost; matches upstream's `bcrypt.DefaultCost` (about 50-100 ms per hash). */
|
|
4
|
+
export const BCRYPT_COST = 10;
|
|
5
|
+
// bcrypt only uses the first 72 bytes and upstream's Go implementation rejects
|
|
6
|
+
// longer passwords, so a hash of a longer key could never authenticate.
|
|
7
|
+
const MAX_BCRYPT_BYTES = 72;
|
|
8
|
+
/**
|
|
9
|
+
* Normalises the management options and hashes the key for the default mode.
|
|
10
|
+
* The deprecated `managementKey` alias maps to the same safe default, not to
|
|
11
|
+
* the old `MANAGEMENT_PASSWORD` behaviour.
|
|
12
|
+
*/
|
|
13
|
+
export async function resolveManagement(options) {
|
|
14
|
+
if (options.management !== undefined && options.managementKey !== undefined) {
|
|
15
|
+
throw new CpaStartError('invalid-options', 'management and managementKey are mutually exclusive; managementKey is the deprecated alias for management.key.');
|
|
16
|
+
}
|
|
17
|
+
const management = options.management ?? (options.managementKey === undefined ? undefined : { key: options.managementKey });
|
|
18
|
+
if (management === undefined) {
|
|
19
|
+
return {
|
|
20
|
+
key: undefined,
|
|
21
|
+
viaEnvironment: false,
|
|
22
|
+
allowRemote: false,
|
|
23
|
+
secretKeyHash: undefined,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const key = management.key;
|
|
27
|
+
if (typeof key !== 'string' || key.trim() === '') {
|
|
28
|
+
throw new CpaStartError('invalid-options', 'management.key must not be empty.');
|
|
29
|
+
}
|
|
30
|
+
if (management.viaEnvironment === true) {
|
|
31
|
+
// Upstream trims MANAGEMENT_PASSWORD, so a key with surrounding whitespace
|
|
32
|
+
// would not match what the caller sends from its own client.
|
|
33
|
+
if (key !== key.trim()) {
|
|
34
|
+
throw new CpaStartError('invalid-options', 'management.key must not start or end with whitespace when viaEnvironment is true.');
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
key,
|
|
38
|
+
viaEnvironment: true,
|
|
39
|
+
allowRemote: management.allowRemote === true,
|
|
40
|
+
secretKeyHash: undefined,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (Buffer.byteLength(key, 'utf8') > MAX_BCRYPT_BYTES) {
|
|
44
|
+
throw new CpaStartError('invalid-options', `management.key is longer than ${MAX_BCRYPT_BYTES} bytes, which bcrypt cannot represent. Use management.viaEnvironment: true for a longer key.`);
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
key,
|
|
48
|
+
viaEnvironment: false,
|
|
49
|
+
allowRemote: management.allowRemote === true,
|
|
50
|
+
secretKeyHash: await hash(key, BCRYPT_COST),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const BCRYPT_HASH = /^\$2[aby]\$/;
|
|
54
|
+
/**
|
|
55
|
+
* True when `stored` (a `management.secret-key` value) authenticates `key` the
|
|
56
|
+
* way upstream checks it: bcrypt hashes are compared, a plaintext value is
|
|
57
|
+
* hashed by CPA on load and so must equal the key.
|
|
58
|
+
*/
|
|
59
|
+
export async function keyMatches(key, stored) {
|
|
60
|
+
if (stored === undefined)
|
|
61
|
+
return false;
|
|
62
|
+
return BCRYPT_HASH.test(stored) ? compare(key, stored) : stored === key;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=management.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"management.js","sourceRoot":"","sources":["../../src/server/management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,uFAAuF;AACvF,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAE9B,+EAA+E;AAC/E,wEAAwE;AACxE,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAa5B;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAGvC;IACC,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC5E,MAAM,IAAI,aAAa,CACrB,iBAAiB,EACjB,gHAAgH,CACjH,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GACd,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC3G,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO;YACL,GAAG,EAAE,SAAS;YACd,cAAc,EAAE,KAAK;YACrB,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,SAAS;SACzB,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;IAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,aAAa,CAAC,iBAAiB,EAAE,mCAAmC,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,UAAU,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;QACvC,2EAA2E;QAC3E,6DAA6D;QAC7D,IAAI,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,aAAa,CAAC,iBAAiB,EAAE,mFAAmF,CAAC,CAAC;QAClI,CAAC;QACD,OAAO;YACL,GAAG;YACH,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,UAAU,CAAC,WAAW,KAAK,IAAI;YAC5C,aAAa,EAAE,SAAS;SACzB,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,gBAAgB,EAAE,CAAC;QACtD,MAAM,IAAI,aAAa,CACrB,iBAAiB,EACjB,iCAAiC,gBAAgB,8FAA8F,CAChJ,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG;QACH,cAAc,EAAE,KAAK;QACrB,WAAW,EAAE,UAAU,CAAC,WAAW,KAAK,IAAI;QAC5C,aAAa,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,aAAa,CAAC;AAElC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,MAA0B;IACtE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC;AAC1E,CAAC"}
|
package/dist/server/process.d.ts
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { type ChildProcess } from 'node:child_process';
|
|
2
2
|
import type { ExitResult, LogLine } from './types.ts';
|
|
3
|
+
/** Longest line kept, in UTF-16 code units; longer output is truncated with a marker. */
|
|
4
|
+
export declare const MAX_LINE_LENGTH: number;
|
|
3
5
|
export interface SpawnOptions {
|
|
4
6
|
cwd: string;
|
|
5
7
|
env: NodeJS.ProcessEnv;
|
|
6
8
|
redact: (text: string) => string;
|
|
7
9
|
onLog?: ((log: LogLine) => void) | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Supervise mode of cpa-launcher: start it in its own process group, signal
|
|
12
|
+
* the whole group (launcher and CPA), and keep a stdin pipe open whose EOF
|
|
13
|
+
* tells the launcher that this process has died.
|
|
14
|
+
*/
|
|
15
|
+
supervised?: boolean;
|
|
8
16
|
}
|
|
9
17
|
/** A spawned CPA process with line-buffered, redacted output and idempotent stop. */
|
|
10
18
|
export declare class ManagedProcess {
|
|
@@ -16,11 +24,14 @@ export declare class ManagedProcess {
|
|
|
16
24
|
spawnError: Error | undefined;
|
|
17
25
|
exitResult: ExitResult | undefined;
|
|
18
26
|
constructor(binaryPath: string, args: readonly string[], options: SpawnOptions);
|
|
27
|
+
/** Signals the process, or the launcher's whole process group in supervise mode. */
|
|
28
|
+
kill(signal: NodeJS.Signals): void;
|
|
19
29
|
onLine(listener: (log: LogLine) => void): () => void;
|
|
20
30
|
output(): string;
|
|
21
31
|
/**
|
|
22
32
|
* Sends SIGTERM and waits up to `timeoutMs` before SIGKILL. On Windows Node
|
|
23
|
-
*
|
|
33
|
+
* cannot deliver SIGTERM: both steps terminate the process forcefully, so
|
|
34
|
+
* there is no grace period and the timeout is irrelevant.
|
|
24
35
|
*/
|
|
25
36
|
stop(timeoutMs: number): Promise<ExitResult>;
|
|
26
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/server/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/server/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGtD,yFAAyF;AACzF,eAAO,MAAM,eAAe,QAAY,CAAC;AAmBzC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7C;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qFAAqF;AACrF,qBAAa,cAAc;;IACzB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,CAAM;IACpC,wDAAwD;IACxD,UAAU,EAAE,KAAK,GAAG,SAAS,CAAC;IAC9B,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IAQnC,YAAY,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EA6B7E;IA6CD,oFAAoF;IACpF,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAWjC;IAED,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAGnD;IAED,MAAM,IAAI,MAAM,CAEf;IAED;;;;OAIG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAc3C;CACF"}
|
package/dist/server/process.js
CHANGED
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
2
|
const MAX_RECENT_LINES = 200;
|
|
3
|
-
|
|
3
|
+
/** Longest line kept, in UTF-16 code units; longer output is truncated with a marker. */
|
|
4
|
+
export const MAX_LINE_LENGTH = 64 * 1024;
|
|
5
|
+
// Children still running when this process exits normally (or calls
|
|
6
|
+
// process.exit()) are killed. A fatal signal with no listener, e.g. a default
|
|
7
|
+
// SIGTERM or SIGKILL, ends Node without emitting 'exit'; there the launcher
|
|
8
|
+
// (cpa-launcher, see binary.ts) stops CPA instead. This library does not
|
|
9
|
+
// install signal handlers, because doing so would change how the host process
|
|
10
|
+
// reacts to them.
|
|
4
11
|
const live = new Set();
|
|
5
12
|
let exitHookInstalled = false;
|
|
6
|
-
function
|
|
7
|
-
live.add(
|
|
13
|
+
function track(proc) {
|
|
14
|
+
live.add(proc);
|
|
8
15
|
if (exitHookInstalled)
|
|
9
16
|
return;
|
|
10
17
|
exitHookInstalled = true;
|
|
11
18
|
process.once('exit', () => {
|
|
12
|
-
for (const
|
|
13
|
-
|
|
19
|
+
for (const p of live)
|
|
20
|
+
p.kill('SIGKILL');
|
|
14
21
|
});
|
|
15
22
|
}
|
|
16
23
|
/** A spawned CPA process with line-buffered, redacted output and idempotent stop. */
|
|
@@ -24,17 +31,25 @@ export class ManagedProcess {
|
|
|
24
31
|
#redact;
|
|
25
32
|
#onLog;
|
|
26
33
|
#lineListeners = new Set();
|
|
34
|
+
#supervised;
|
|
27
35
|
#stopping;
|
|
28
36
|
constructor(binaryPath, args, options) {
|
|
29
37
|
this.#redact = options.redact;
|
|
30
38
|
this.#onLog = options.onLog;
|
|
39
|
+
this.#supervised = options.supervised === true;
|
|
31
40
|
this.child = spawn(binaryPath, [...args], {
|
|
32
41
|
cwd: options.cwd,
|
|
33
42
|
env: options.env,
|
|
34
|
-
|
|
43
|
+
// The supervised launcher's stdin is a liveness pipe: never written, closed by
|
|
44
|
+
// the OS when this process dies.
|
|
45
|
+
stdio: [this.#supervised ? 'pipe' : 'ignore', 'pipe', 'pipe'],
|
|
46
|
+
// Its own process group, so stop() can signal the launcher and CPA together.
|
|
47
|
+
detached: this.#supervised,
|
|
35
48
|
windowsHide: true,
|
|
36
49
|
});
|
|
37
|
-
|
|
50
|
+
// A liveness pipe with nobody reading it is expected after the launcher exits.
|
|
51
|
+
this.child.stdin?.on('error', () => { });
|
|
52
|
+
track(this);
|
|
38
53
|
this.exited = new Promise((resolve) => {
|
|
39
54
|
this.child.once('error', (error) => {
|
|
40
55
|
this.spawnError = error;
|
|
@@ -51,7 +66,7 @@ export class ManagedProcess {
|
|
|
51
66
|
if (this.exitResult)
|
|
52
67
|
return;
|
|
53
68
|
this.exitResult = result;
|
|
54
|
-
live.delete(this
|
|
69
|
+
live.delete(this);
|
|
55
70
|
resolve(result);
|
|
56
71
|
}
|
|
57
72
|
#pipe(stream, name) {
|
|
@@ -59,8 +74,14 @@ export class ManagedProcess {
|
|
|
59
74
|
return;
|
|
60
75
|
stream.setEncoding('utf8');
|
|
61
76
|
let pending = '';
|
|
77
|
+
// Characters dropped from the line currently being received; bounds memory
|
|
78
|
+
// when the child writes very long or never-terminated lines.
|
|
79
|
+
let dropped = 0;
|
|
62
80
|
const emit = (raw) => {
|
|
63
|
-
const
|
|
81
|
+
const text = raw.replace(/\r$/, '');
|
|
82
|
+
const line = dropped > 0 ? `${text} …[truncated ${dropped} chars]` : text;
|
|
83
|
+
dropped = 0;
|
|
84
|
+
const log = { stream: name, line: this.#redact(line) };
|
|
64
85
|
this.recentLogs.push(log);
|
|
65
86
|
if (this.recentLogs.length > MAX_RECENT_LINES)
|
|
66
87
|
this.recentLogs.shift();
|
|
@@ -72,9 +93,15 @@ export class ManagedProcess {
|
|
|
72
93
|
pending += chunk;
|
|
73
94
|
let index;
|
|
74
95
|
while ((index = pending.indexOf('\n')) !== -1) {
|
|
75
|
-
|
|
96
|
+
if (index > MAX_LINE_LENGTH)
|
|
97
|
+
dropped += index - MAX_LINE_LENGTH;
|
|
98
|
+
emit(pending.slice(0, Math.min(index, MAX_LINE_LENGTH)));
|
|
76
99
|
pending = pending.slice(index + 1);
|
|
77
100
|
}
|
|
101
|
+
if (pending.length > MAX_LINE_LENGTH) {
|
|
102
|
+
dropped += pending.length - MAX_LINE_LENGTH;
|
|
103
|
+
pending = pending.slice(0, MAX_LINE_LENGTH);
|
|
104
|
+
}
|
|
78
105
|
});
|
|
79
106
|
stream.on('end', () => {
|
|
80
107
|
if (pending)
|
|
@@ -82,6 +109,20 @@ export class ManagedProcess {
|
|
|
82
109
|
pending = '';
|
|
83
110
|
});
|
|
84
111
|
}
|
|
112
|
+
/** Signals the process, or the launcher's whole process group in supervise mode. */
|
|
113
|
+
kill(signal) {
|
|
114
|
+
const pid = this.child.pid;
|
|
115
|
+
if (this.#supervised && pid !== undefined) {
|
|
116
|
+
try {
|
|
117
|
+
process.kill(-pid, signal);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// The group is already gone; fall back to the direct child.
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
this.child.kill(signal);
|
|
125
|
+
}
|
|
85
126
|
onLine(listener) {
|
|
86
127
|
this.#lineListeners.add(listener);
|
|
87
128
|
return () => this.#lineListeners.delete(listener);
|
|
@@ -91,13 +132,14 @@ export class ManagedProcess {
|
|
|
91
132
|
}
|
|
92
133
|
/**
|
|
93
134
|
* Sends SIGTERM and waits up to `timeoutMs` before SIGKILL. On Windows Node
|
|
94
|
-
*
|
|
135
|
+
* cannot deliver SIGTERM: both steps terminate the process forcefully, so
|
|
136
|
+
* there is no grace period and the timeout is irrelevant.
|
|
95
137
|
*/
|
|
96
138
|
stop(timeoutMs) {
|
|
97
139
|
if (this.exitResult)
|
|
98
140
|
return Promise.resolve(this.exitResult);
|
|
99
141
|
this.#stopping ??= (async () => {
|
|
100
|
-
this.
|
|
142
|
+
this.kill('SIGTERM');
|
|
101
143
|
let timer;
|
|
102
144
|
const timedOut = new Promise((resolve) => {
|
|
103
145
|
timer = setTimeout(() => resolve('timeout'), timeoutMs);
|
|
@@ -105,7 +147,7 @@ export class ManagedProcess {
|
|
|
105
147
|
const first = await Promise.race([this.exited, timedOut]);
|
|
106
148
|
clearTimeout(timer);
|
|
107
149
|
if (first === 'timeout')
|
|
108
|
-
this.
|
|
150
|
+
this.kill('SIGKILL');
|
|
109
151
|
return this.exited;
|
|
110
152
|
})();
|
|
111
153
|
return this.#stopping;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/server/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAI9D,MAAM,gBAAgB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/server/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAI9D,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,yFAAyF;AACzF,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzC,oEAAoE;AACpE,8EAA8E;AAC9E,4EAA4E;AAC5E,yEAAyE;AACzE,8EAA8E;AAC9E,kBAAkB;AAClB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;AACvC,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAC9B,SAAS,KAAK,CAAC,IAAoB;IACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACf,IAAI,iBAAiB;QAAE,OAAO;IAC9B,iBAAiB,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QACxB,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC;AAeD,qFAAqF;AACrF,MAAM,OAAO,cAAc;IAChB,KAAK,CAAe;IACpB,MAAM,CAAsB;IAC5B,UAAU,GAAc,EAAE,CAAC;IACpC,wDAAwD;IACxD,UAAU,CAAoB;IAC9B,UAAU,CAAyB;IAE1B,OAAO,CAA2B;IAClC,MAAM,CAAuC;IAC7C,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;IACnD,WAAW,CAAU;IAC9B,SAAS,CAAkC;IAE3C,YAAY,UAAkB,EAAE,IAAuB,EAAE,OAAqB;QAC5E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;YACxC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,+EAA+E;YAC/E,iCAAiC;YACjC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YAC7D,6EAA6E;YAC7E,QAAQ,EAAE,IAAI,CAAC,WAAW;YAC1B,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,+EAA+E;QAC/E,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,EAAE;YAChD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,6CAA6C;gBAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS;oBAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,OAAqC,EAAE,MAAkB;QAC/D,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,MAAuB,EAAE,IAAuB;QACpD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,2EAA2E;QAC3E,6DAA6D;QAC7D,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;YACjC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,gBAAgB,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1E,OAAO,GAAG,CAAC,CAAC;YACZ,MAAM,GAAG,GAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,gBAAgB;gBAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACvE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc;gBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAClC,OAAO,IAAI,KAAK,CAAC;YACjB,IAAI,KAAa,CAAC;YAClB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC9C,IAAI,KAAK,GAAG,eAAe;oBAAE,OAAO,IAAI,KAAK,GAAG,eAAe,CAAC;gBAChE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;gBACzD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;gBACrC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC;gBAC5C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACpB,IAAI,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO,GAAG,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oFAAoF;IACpF,IAAI,CAAC,MAAsB;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3B,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YAAC,MAAM,CAAC;gBACP,4DAA4D;YAC9D,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,QAAgC;QACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,SAAiB;QACpB,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,KAAK,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrB,IAAI,KAAiC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,EAAE;gBAClD,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1D,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,KAAK,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF"}
|
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
/** Hostname to connect to for a configured bind host. */
|
|
2
2
|
export declare function connectHost(bindHost: string): string;
|
|
3
|
+
/** True when a bind host only accepts loopback connections. */
|
|
4
|
+
export declare function isLoopbackHost(host: string): boolean;
|
|
3
5
|
export declare function formatOrigin(protocol: 'http' | 'https', host: string, port: number): string;
|
|
4
6
|
/**
|
|
5
7
|
* Single `GET /healthz` probe. Certificate checks are skipped because the probe
|
|
6
8
|
* only targets the child process this package just started.
|
|
7
9
|
*/
|
|
8
10
|
export declare function probeHealth(origin: string, timeoutMs: number): Promise<boolean>;
|
|
9
|
-
/**
|
|
10
|
-
export
|
|
11
|
+
/** A free port whose probing listener stays open until `release()` is called. */
|
|
12
|
+
export interface PortReservation {
|
|
13
|
+
port: number;
|
|
14
|
+
/** Closes the probing listener so a child process can bind the port. */
|
|
15
|
+
release(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Reserves a currently free TCP port on `host`.
|
|
19
|
+
*
|
|
20
|
+
* The listening socket is left open until `release()` so another process cannot
|
|
21
|
+
* take the port while the caller finishes preparing the child. The window
|
|
22
|
+
* between `release()` and the child's own bind cannot be removed entirely.
|
|
23
|
+
*/
|
|
24
|
+
export declare function findFreePort(host: string): Promise<PortReservation>;
|
|
11
25
|
/** Resolves to true when nothing is listening on `host:port`. */
|
|
12
26
|
export declare function isPortFree(host: string, port: number): Promise<boolean>;
|
|
13
27
|
//# sourceMappingURL=readiness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../src/server/readiness.ts"],"names":[],"mappings":"AAIA,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG3F;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY/E;AAED,
|
|
1
|
+
{"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../src/server/readiness.ts"],"names":[],"mappings":"AAIA,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMpD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG3F;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY/E;AAED,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAwBnE;AAED,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQvE"}
|
package/dist/server/readiness.js
CHANGED
|
@@ -9,6 +9,17 @@ export function connectHost(bindHost) {
|
|
|
9
9
|
return '::1';
|
|
10
10
|
return bindHost;
|
|
11
11
|
}
|
|
12
|
+
/** True when a bind host only accepts loopback connections. */
|
|
13
|
+
export function isLoopbackHost(host) {
|
|
14
|
+
const normalized = host.trim().toLowerCase().replace(/^\[|\]$/g, '');
|
|
15
|
+
if (normalized === '' || normalized === '0.0.0.0' || normalized === '::')
|
|
16
|
+
return false;
|
|
17
|
+
if (normalized === 'localhost' || normalized === '::1')
|
|
18
|
+
return true;
|
|
19
|
+
if (normalized.startsWith('::ffff:127.'))
|
|
20
|
+
return true;
|
|
21
|
+
return /^127(?:\.\d{1,3}){3}$/.test(normalized);
|
|
22
|
+
}
|
|
12
23
|
export function formatOrigin(protocol, host, port) {
|
|
13
24
|
const h = host.includes(':') && !host.startsWith('[') ? `[${host}]` : host;
|
|
14
25
|
return `${protocol}://${h}:${port}`;
|
|
@@ -30,7 +41,13 @@ export function probeHealth(origin, timeoutMs) {
|
|
|
30
41
|
req.end();
|
|
31
42
|
});
|
|
32
43
|
}
|
|
33
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* Reserves a currently free TCP port on `host`.
|
|
46
|
+
*
|
|
47
|
+
* The listening socket is left open until `release()` so another process cannot
|
|
48
|
+
* take the port while the caller finishes preparing the child. The window
|
|
49
|
+
* between `release()` and the child's own bind cannot be removed entirely.
|
|
50
|
+
*/
|
|
34
51
|
export function findFreePort(host) {
|
|
35
52
|
return new Promise((resolve, reject) => {
|
|
36
53
|
const server = createServer();
|
|
@@ -39,7 +56,20 @@ export function findFreePort(host) {
|
|
|
39
56
|
server.listen({ host: connectHost(host), port: 0, exclusive: true }, () => {
|
|
40
57
|
const address = server.address();
|
|
41
58
|
const port = typeof address === 'object' && address ? address.port : 0;
|
|
42
|
-
|
|
59
|
+
if (!port) {
|
|
60
|
+
server.close(() => reject(new Error('Could not allocate a free port.')));
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
let released;
|
|
64
|
+
resolve({
|
|
65
|
+
port,
|
|
66
|
+
release() {
|
|
67
|
+
released ??= new Promise((resolveClose) => {
|
|
68
|
+
server.close(() => resolveClose());
|
|
69
|
+
});
|
|
70
|
+
return released;
|
|
71
|
+
},
|
|
72
|
+
});
|
|
43
73
|
});
|
|
44
74
|
});
|
|
45
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../src/server/readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,yDAAyD;AACzD,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IAClE,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC3D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAA0B,EAAE,IAAY,EAAE,IAAY;IACjF,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,OAAO,GAAG,QAAQ,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,SAAiB;IAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;IACvE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;YACjG,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;
|
|
1
|
+
{"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../src/server/readiness.ts"],"names":[],"mappings":"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"}
|
package/dist/server/targets.d.ts
CHANGED
|
@@ -45,4 +45,8 @@ export declare const TARGETS: readonly Target[];
|
|
|
45
45
|
export declare const UNSUPPORTED_PLATFORMS: Readonly<Record<string, string>>;
|
|
46
46
|
export declare function packageName(target: Target): string;
|
|
47
47
|
export declare function binaryName(target: Pick<Target, 'os'>): string;
|
|
48
|
+
/** Name of the launcher shipped next to the CPA binary. Windows needs none (see binary.ts). */
|
|
49
|
+
export declare const LAUNCHER_NAME = "cpa-launcher";
|
|
50
|
+
/** True for targets whose platform package ships `cpa-launcher`. */
|
|
51
|
+
export declare function hasLauncher(target: Pick<Target, 'os'>): boolean;
|
|
48
52
|
//# sourceMappingURL=targets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../src/server/targets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uCAAuC;AACvC,MAAM,MAAM,WAAW;AACrB,2FAA2F;AACzF,QAAQ;AACV,0FAA0F;GACxF,UAAU,CAAC;AAEf,2DAA2D;AAC3D,MAAM,MAAM,kBAAkB;AAC5B,wEAAwE;AACtE,QAAQ;AACV,yEAAyE;GACvE,UAAU;AACZ,+DAA+D;GAC7D,gBAAgB,CAAC;AAErB,MAAM,WAAW,MAAM;IACrB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC7B,4BAA4B;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC;IAClC,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,uDAAuD;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,SAAS,WAAW,CAAC;AAElC,eAAO,MAAM,OAAO,EAAE,SAAS,MAAM,EAmEpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlE,CAAC;AAEF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,CAE7D"}
|
|
1
|
+
{"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../src/server/targets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uCAAuC;AACvC,MAAM,MAAM,WAAW;AACrB,2FAA2F;AACzF,QAAQ;AACV,0FAA0F;GACxF,UAAU,CAAC;AAEf,2DAA2D;AAC3D,MAAM,MAAM,kBAAkB;AAC5B,wEAAwE;AACtE,QAAQ;AACV,yEAAyE;GACvE,UAAU;AACZ,+DAA+D;GAC7D,gBAAgB,CAAC;AAErB,MAAM,WAAW,MAAM;IACrB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC7B,4BAA4B;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC;IAClC,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,uDAAuD;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,SAAS,WAAW,CAAC;AAElC,eAAO,MAAM,OAAO,EAAE,SAAS,MAAM,EAmEpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlE,CAAC;AAEF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,CAE7D;AAED,+FAA+F;AAC/F,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAE5C,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAE/D"}
|
package/dist/server/targets.js
CHANGED
|
@@ -87,4 +87,10 @@ export function packageName(target) {
|
|
|
87
87
|
export function binaryName(target) {
|
|
88
88
|
return target.os === 'win32' ? 'cli-proxy-api.exe' : 'cli-proxy-api';
|
|
89
89
|
}
|
|
90
|
+
/** Name of the launcher shipped next to the CPA binary. Windows needs none (see binary.ts). */
|
|
91
|
+
export const LAUNCHER_NAME = 'cpa-launcher';
|
|
92
|
+
/** True for targets whose platform package ships `cpa-launcher`. */
|
|
93
|
+
export function hasLauncher(target) {
|
|
94
|
+
return target.os !== 'win32';
|
|
95
|
+
}
|
|
90
96
|
//# sourceMappingURL=targets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targets.js","sourceRoot":"","sources":["../../src/server/targets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"targets.js","sourceRoot":"","sources":["../../src/server/targets.ts"],"names":[],"mappings":"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"}
|