@eudiplo/cli 8.0.2 → 8.1.0-main.1c091cc
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 +7 -3
- package/dist/commands/completion/action.js +1 -1
- package/dist/commands/completion/action.js.map +1 -1
- package/dist/commands/completion/index.d.ts.map +1 -1
- package/dist/commands/completion/index.js +6 -1
- package/dist/commands/completion/index.js.map +1 -1
- package/dist/commands/config/action.d.ts.map +1 -1
- package/dist/commands/config/action.js.map +1 -1
- package/dist/commands/config/portability/migrations.spec.js +5 -3
- package/dist/commands/config/portability/migrations.spec.js.map +1 -1
- package/dist/commands/config/validate/schemas.js.map +1 -1
- package/dist/commands/config/validate/validator.js +7 -4
- package/dist/commands/config/validate/validator.js.map +1 -1
- package/dist/commands/deployment/action.d.ts +1 -1
- package/dist/commands/deployment/action.d.ts.map +1 -1
- package/dist/commands/deployment/action.js.map +1 -1
- package/dist/commands/deployment/index.d.ts.map +1 -1
- package/dist/commands/deployment/index.js +7 -4
- package/dist/commands/deployment/index.js.map +1 -1
- package/dist/commands/doctor/action.d.ts +2 -1
- package/dist/commands/doctor/action.d.ts.map +1 -1
- package/dist/commands/doctor/action.js +25 -7
- package/dist/commands/doctor/action.js.map +1 -1
- package/dist/commands/doctor/index.d.ts.map +1 -1
- package/dist/commands/doctor/index.js +2 -0
- package/dist/commands/doctor/index.js.map +1 -1
- package/dist/commands/instance/action.d.ts.map +1 -1
- package/dist/commands/instance/action.js.map +1 -1
- package/dist/commands/open/action.d.ts +9 -0
- package/dist/commands/open/action.d.ts.map +1 -0
- package/dist/commands/open/action.js +41 -0
- package/dist/commands/open/action.js.map +1 -0
- package/dist/commands/open/index.d.ts +5 -0
- package/dist/commands/open/index.d.ts.map +1 -0
- package/dist/commands/open/index.js +15 -0
- package/dist/commands/open/index.js.map +1 -0
- package/dist/commands/upgrade/action.d.ts +3 -0
- package/dist/commands/upgrade/action.d.ts.map +1 -0
- package/dist/commands/upgrade/action.js +95 -0
- package/dist/commands/upgrade/action.js.map +1 -0
- package/dist/commands/upgrade/index.d.ts +5 -0
- package/dist/commands/upgrade/index.d.ts.map +1 -0
- package/dist/commands/upgrade/index.js +15 -0
- package/dist/commands/upgrade/index.js.map +1 -0
- package/dist/index.js +3948 -593
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +5 -1
- package/dist/runtime.js.map +1 -1
- package/dist/services/api-auth.d.ts +31 -0
- package/dist/services/api-auth.d.ts.map +1 -0
- package/dist/services/api-auth.js +78 -0
- package/dist/services/api-auth.js.map +1 -0
- package/dist/services/backend-checks.d.ts +24 -0
- package/dist/services/backend-checks.d.ts.map +1 -0
- package/dist/services/backend-checks.js +105 -0
- package/dist/services/backend-checks.js.map +1 -0
- package/dist/services/browser.d.ts +30 -0
- package/dist/services/browser.d.ts.map +1 -0
- package/dist/services/browser.js +102 -0
- package/dist/services/browser.js.map +1 -0
- package/dist/services/cli-config.d.ts.map +1 -1
- package/dist/services/cli-config.js +5 -2
- package/dist/services/cli-config.js.map +1 -1
- package/dist/services/compose-args.d.ts +28 -0
- package/dist/services/compose-args.d.ts.map +1 -0
- package/dist/services/compose-args.js +117 -0
- package/dist/services/compose-args.js.map +1 -0
- package/dist/services/compose-project.d.ts.map +1 -1
- package/dist/services/compose-project.js +18 -13
- package/dist/services/compose-project.js.map +1 -1
- package/dist/services/compose-upgrade.d.ts +40 -0
- package/dist/services/compose-upgrade.d.ts.map +1 -0
- package/dist/services/compose-upgrade.js +102 -0
- package/dist/services/compose-upgrade.js.map +1 -0
- package/dist/services/container-state.d.ts +14 -0
- package/dist/services/container-state.d.ts.map +1 -0
- package/dist/services/container-state.js +70 -0
- package/dist/services/container-state.js.map +1 -0
- package/dist/services/deployment-drivers.d.ts +8 -1
- package/dist/services/deployment-drivers.d.ts.map +1 -1
- package/dist/services/deployment-drivers.js +162 -19
- package/dist/services/deployment-drivers.js.map +1 -1
- package/dist/services/diagnostics.d.ts +19 -2
- package/dist/services/diagnostics.d.ts.map +1 -1
- package/dist/services/diagnostics.js +219 -50
- package/dist/services/diagnostics.js.map +1 -1
- package/dist/services/kubectl.d.ts.map +1 -1
- package/dist/services/kubectl.js +1 -6
- package/dist/services/kubectl.js.map +1 -1
- package/dist/services/tls-expiry.d.ts +16 -0
- package/dist/services/tls-expiry.d.ts.map +1 -0
- package/dist/services/tls-expiry.js +80 -0
- package/dist/services/tls-expiry.js.map +1 -0
- package/dist/types.d.ts +5 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -4
- package/templates/demo-config/trust-lists/trustlist-580831bc-ef11-43f4-a3be-a2b6bf1b29a3-config.json +1 -97
- package/templates/docker-compose.yml +35 -28
- package/templates/schemas/DCQL.schema.json +30 -4
- package/templates/schemas/IssuanceConfig.schema.json +13 -0
- package/templates/schemas/IssuanceConfigFile.schema.json +663 -1
- package/templates/schemas/KeyChainConfigFile.schema.json +7 -3
- package/templates/schemas/KeyChainImportDto.schema.json +7 -3
- package/templates/schemas/PresentationConfigCreateDto.schema.json +33 -10
- package/templates/schemas/PresentationConfigFile.schema.json +1442 -1
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;AAgBpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAsB,MAAM,CACxB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,cAAiC,GAC3C,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED,wBAAgB,aAAa,CACzB,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACxC,OAAO,CAwCT"}
|
package/dist/runtime.js
CHANGED
|
@@ -8,7 +8,9 @@ import { createDeploymentCommands } from "./commands/deployment/index.js";
|
|
|
8
8
|
import { createDoctorCommand } from "./commands/doctor/index.js";
|
|
9
9
|
import { createInitCommand } from "./commands/init/index.js";
|
|
10
10
|
import { createInstanceCommand } from "./commands/instance/index.js";
|
|
11
|
+
import { createOpenCommand } from "./commands/open/index.js";
|
|
11
12
|
import { createStatusCommand } from "./commands/status/index.js";
|
|
13
|
+
import { createUpgradeCommand } from "./commands/upgrade/index.js";
|
|
12
14
|
import { createVersionCommand, versionText } from "./commands/version/index.js";
|
|
13
15
|
export async function runCli(args, context = defaultContext()) {
|
|
14
16
|
let actionExitCode = 0;
|
|
@@ -34,12 +36,14 @@ export function createProgram(context, setExitCode) {
|
|
|
34
36
|
.description("Deployment-aware command line tools for EUDIPLO")
|
|
35
37
|
.version(versionText(), "-v, --version", "Print the installed CLI version")
|
|
36
38
|
.helpCommand(true)
|
|
37
|
-
.addHelpText("afterAll", "\nFor more information, see https://docs.eudiplo.dev/
|
|
39
|
+
.addHelpText("afterAll", "\nFor more information, see https://docs.eudiplo.dev/cookbooks/foundation");
|
|
38
40
|
program.addCommand(createDemoCommand(context, setExitCode));
|
|
39
41
|
program.addCommand(createInitCommand(context, setExitCode));
|
|
40
42
|
for (const command of createDeploymentCommands(context, setExitCode)) {
|
|
41
43
|
program.addCommand(command);
|
|
42
44
|
}
|
|
45
|
+
program.addCommand(createUpgradeCommand(context, setExitCode));
|
|
46
|
+
program.addCommand(createOpenCommand(context, setExitCode));
|
|
43
47
|
program.addCommand(createInstanceCommand(context, setExitCode));
|
|
44
48
|
program.addCommand(createConfigCommand(context, setExitCode));
|
|
45
49
|
program.addCommand(createDoctorCommand(context, setExitCode));
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EACH,iCAAiC,EACjC,uBAAuB,GAC1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAGhF,MAAM,CAAC,KAAK,UAAU,MAAM,CACxB,IAAc,EACd,OAAO,GAAmB,cAAc,EAAE;IAE1C,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAQ,EAAE;QAC3C,cAAc,GAAG,QAAQ,CAAC;IAC9B,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAEpD,IAAI,CAAC;QACD,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,OAAO,cAAc,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC,QAAQ,CAAC;QAC1B,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAChE,CAAC;QACF,OAAO,CAAC,CAAC;IACb,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CACzB,OAAuB,EACvB,WAAuC;IAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SACxB,IAAI,CAAC,SAAS,CAAC;SACf,WAAW,CAAC,iDAAiD,CAAC;SAC9D,OAAO,CACJ,WAAW,EAAE,EACb,eAAe,EACf,iCAAiC,CACpC;SACA,WAAW,CAAC,IAAI,CAAC;SACjB,WAAW,CACR,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { CommandContext } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Minimal client-credentials token fetch for the checks that need an
|
|
4
|
+
* authenticated API call. The CLI has no shared auth helper yet; when one
|
|
5
|
+
* lands, only this module should need replacing.
|
|
6
|
+
*/
|
|
7
|
+
export type TokenResult = {
|
|
8
|
+
kind: "token";
|
|
9
|
+
accessToken: string;
|
|
10
|
+
} | {
|
|
11
|
+
kind: "unavailable";
|
|
12
|
+
reason: string;
|
|
13
|
+
} | {
|
|
14
|
+
kind: "error";
|
|
15
|
+
reason: string;
|
|
16
|
+
};
|
|
17
|
+
export declare function requestAccessToken(baseUrl: URL, context: CommandContext): Promise<TokenResult>;
|
|
18
|
+
/**
|
|
19
|
+
* Fetches an authenticated endpoint. Returns the status code and parsed
|
|
20
|
+
* body; error bodies are never returned, so nothing sensitive is printed.
|
|
21
|
+
*/
|
|
22
|
+
export declare function fetchAuthenticated(url: URL, accessToken: string, context: CommandContext): Promise<{
|
|
23
|
+
ok: true;
|
|
24
|
+
body: unknown;
|
|
25
|
+
} | {
|
|
26
|
+
ok: false;
|
|
27
|
+
status?: number;
|
|
28
|
+
reason: string;
|
|
29
|
+
}>;
|
|
30
|
+
export declare function withTrailingSlash(url: URL): URL;
|
|
31
|
+
//# sourceMappingURL=api-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-auth.d.ts","sourceRoot":"","sources":["../../src/services/api-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;GAIG;AACH,MAAM,MAAM,WAAW,GACjB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,wBAAsB,kBAAkB,CACpC,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC,WAAW,CAAC,CAgDtB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACpC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,GACxB,OAAO,CACN;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAC/E,CAoBA;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAE/C"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
export async function requestAccessToken(baseUrl, context) {
|
|
2
|
+
const clientId = context.env.EUDIPLO_CLIENT_ID;
|
|
3
|
+
const clientSecret = context.env.EUDIPLO_CLIENT_SECRET;
|
|
4
|
+
if (!clientId || !clientSecret) {
|
|
5
|
+
return {
|
|
6
|
+
kind: "unavailable",
|
|
7
|
+
reason: "EUDIPLO_CLIENT_ID and EUDIPLO_CLIENT_SECRET are not set",
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
const tokenUrl = new URL("api/oauth2/token", withTrailingSlash(baseUrl));
|
|
11
|
+
try {
|
|
12
|
+
const response = await context.fetch(tokenUrl, {
|
|
13
|
+
method: "POST",
|
|
14
|
+
headers: { "content-type": "application/x-www-form-urlencoded" },
|
|
15
|
+
body: new URLSearchParams({
|
|
16
|
+
grant_type: "client_credentials",
|
|
17
|
+
client_id: clientId,
|
|
18
|
+
client_secret: clientSecret,
|
|
19
|
+
}).toString(),
|
|
20
|
+
});
|
|
21
|
+
if (!response.ok) {
|
|
22
|
+
// Never echo the response body: it can contain credentials.
|
|
23
|
+
return {
|
|
24
|
+
kind: "error",
|
|
25
|
+
reason: `the token endpoint returned HTTP ${response.status}`,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const payload = await response.json();
|
|
29
|
+
const accessToken = typeof payload === "object" &&
|
|
30
|
+
payload !== null &&
|
|
31
|
+
"access_token" in payload
|
|
32
|
+
? String(payload.access_token)
|
|
33
|
+
: "";
|
|
34
|
+
if (!accessToken) {
|
|
35
|
+
return {
|
|
36
|
+
kind: "error",
|
|
37
|
+
reason: "the token response did not contain an access token",
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return { kind: "token", accessToken };
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
return {
|
|
44
|
+
kind: "error",
|
|
45
|
+
reason: `the token endpoint could not be reached: ${error instanceof Error ? error.message : String(error)}`,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Fetches an authenticated endpoint. Returns the status code and parsed
|
|
51
|
+
* body; error bodies are never returned, so nothing sensitive is printed.
|
|
52
|
+
*/
|
|
53
|
+
export async function fetchAuthenticated(url, accessToken, context) {
|
|
54
|
+
try {
|
|
55
|
+
const response = await context.fetch(url, {
|
|
56
|
+
method: "GET",
|
|
57
|
+
headers: { authorization: `Bearer ${accessToken}` },
|
|
58
|
+
});
|
|
59
|
+
if (!response.ok) {
|
|
60
|
+
return {
|
|
61
|
+
ok: false,
|
|
62
|
+
status: response.status,
|
|
63
|
+
reason: `${url.pathname} returned HTTP ${response.status}`,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return { ok: true, body: await response.json() };
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
return {
|
|
70
|
+
ok: false,
|
|
71
|
+
reason: `${url.pathname} could not be reached: ${error instanceof Error ? error.message : String(error)}`,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export function withTrailingSlash(url) {
|
|
76
|
+
return url.href.endsWith("/") ? url : new URL(`${url.href}/`);
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=api-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-auth.js","sourceRoot":"","sources":["../../src/services/api-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { DoctorCheck } from "../types.js";
|
|
2
|
+
export interface ProviderHealth {
|
|
3
|
+
providerId: string;
|
|
4
|
+
type: string;
|
|
5
|
+
ok: boolean;
|
|
6
|
+
latencyMs?: number;
|
|
7
|
+
error?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Compares the CLI version with the backend version. A different major
|
|
11
|
+
* version is a failure, a different minor version a warning; patch
|
|
12
|
+
* differences are fine. Unparsable versions (e.g. "main" from a dev build)
|
|
13
|
+
* cannot be judged, so they warn rather than fail.
|
|
14
|
+
*/
|
|
15
|
+
export declare function compareVersions(cliVersion: string, backendVersion: string): DoctorCheck;
|
|
16
|
+
export declare function readBackendVersion(body: unknown): string | undefined;
|
|
17
|
+
export declare function readProviderHealth(body: unknown): ProviderHealth[];
|
|
18
|
+
/**
|
|
19
|
+
* Summarizes KMS provider health. Provider errors are reported by provider
|
|
20
|
+
* id and type only; the raw error text is not echoed, since it can contain
|
|
21
|
+
* endpoint details or credentials.
|
|
22
|
+
*/
|
|
23
|
+
export declare function summarizeProviderHealth(providers: ProviderHealth[]): DoctorCheck;
|
|
24
|
+
//# sourceMappingURL=backend-checks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-checks.d.ts","sourceRoot":"","sources":["../../src/services/backend-checks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC3B,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACvB,WAAW,CA+Bb;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMpE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,EAAE,CAiBlE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACnC,SAAS,EAAE,cAAc,EAAE,GAC5B,WAAW,CAkCb"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compares the CLI version with the backend version. A different major
|
|
3
|
+
* version is a failure, a different minor version a warning; patch
|
|
4
|
+
* differences are fine. Unparsable versions (e.g. "main" from a dev build)
|
|
5
|
+
* cannot be judged, so they warn rather than fail.
|
|
6
|
+
*/
|
|
7
|
+
export function compareVersions(cliVersion, backendVersion) {
|
|
8
|
+
const name = "version compatibility";
|
|
9
|
+
const cli = parse(cliVersion);
|
|
10
|
+
const backend = parse(backendVersion);
|
|
11
|
+
if (!cli || !backend) {
|
|
12
|
+
return {
|
|
13
|
+
name,
|
|
14
|
+
status: "warn",
|
|
15
|
+
message: `CLI ${cliVersion} and backend ${backendVersion} cannot be compared as versions.`,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
if (cli.major !== backend.major) {
|
|
19
|
+
return {
|
|
20
|
+
name,
|
|
21
|
+
status: "fail",
|
|
22
|
+
message: `CLI ${cliVersion} and backend ${backendVersion} are different major versions. Install a matching CLI with npm install -g @eudiplo/cli@${backend.major}.`,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
if (cli.minor !== backend.minor) {
|
|
26
|
+
return {
|
|
27
|
+
name,
|
|
28
|
+
status: "warn",
|
|
29
|
+
message: `CLI ${cliVersion} and backend ${backendVersion} differ in minor version; some commands may not be supported.`,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
name,
|
|
34
|
+
status: "pass",
|
|
35
|
+
message: `CLI ${cliVersion} matches backend ${backendVersion}.`,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export function readBackendVersion(body) {
|
|
39
|
+
if (typeof body === "object" && body !== null && "version" in body) {
|
|
40
|
+
const version = body.version;
|
|
41
|
+
return typeof version === "string" && version ? version : undefined;
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
export function readProviderHealth(body) {
|
|
46
|
+
if (!Array.isArray(body)) {
|
|
47
|
+
throw new Error("the provider health response was not a list");
|
|
48
|
+
}
|
|
49
|
+
return body.map((entry) => {
|
|
50
|
+
const record = entry;
|
|
51
|
+
return {
|
|
52
|
+
providerId: String(record.providerId ?? "unknown"),
|
|
53
|
+
type: String(record.type ?? "unknown"),
|
|
54
|
+
ok: record.ok === true,
|
|
55
|
+
latencyMs: typeof record.latencyMs === "number"
|
|
56
|
+
? record.latencyMs
|
|
57
|
+
: undefined,
|
|
58
|
+
error: typeof record.error === "string" ? record.error : undefined,
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Summarizes KMS provider health. Provider errors are reported by provider
|
|
64
|
+
* id and type only; the raw error text is not echoed, since it can contain
|
|
65
|
+
* endpoint details or credentials.
|
|
66
|
+
*/
|
|
67
|
+
export function summarizeProviderHealth(providers) {
|
|
68
|
+
const name = "KMS providers";
|
|
69
|
+
if (providers.length === 0) {
|
|
70
|
+
return {
|
|
71
|
+
name,
|
|
72
|
+
status: "warn",
|
|
73
|
+
message: "No KMS providers are registered for this tenant.",
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
const failing = providers.filter((provider) => !provider.ok);
|
|
77
|
+
if (failing.length > 0) {
|
|
78
|
+
return {
|
|
79
|
+
name,
|
|
80
|
+
status: "fail",
|
|
81
|
+
message: `${failing.length}/${providers.length} provider(s) unhealthy: ${failing
|
|
82
|
+
.map((provider) => `${provider.providerId} (${provider.type})${provider.error ? ", health check reported an error" : ""}`)
|
|
83
|
+
.join(", ")}`,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
name,
|
|
88
|
+
status: "pass",
|
|
89
|
+
message: `${providers.length} provider(s) healthy: ${providers
|
|
90
|
+
.map((provider) => `${provider.providerId} (${provider.type}${provider.latencyMs === undefined ? "" : `, ${provider.latencyMs}ms`})`)
|
|
91
|
+
.join(", ")}`,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
function parse(version) {
|
|
95
|
+
const match = /^v?(\d+)\.(\d+)\.(\d+)/.exec(version.trim());
|
|
96
|
+
if (!match) {
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
major: Number(match[1]),
|
|
101
|
+
minor: Number(match[2]),
|
|
102
|
+
patch: Number(match[3]),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=backend-checks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-checks.js","sourceRoot":"","sources":["../../src/services/backend-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface BrowserLauncher {
|
|
2
|
+
command: string;
|
|
3
|
+
args: string[];
|
|
4
|
+
}
|
|
5
|
+
export interface LauncherEnvironment {
|
|
6
|
+
platform: NodeJS.Platform;
|
|
7
|
+
env: NodeJS.ProcessEnv;
|
|
8
|
+
/** Resolves an executable name on PATH, or undefined when absent. */
|
|
9
|
+
which: (name: string) => Promise<string | undefined>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Only web URLs are ever handed to a launcher. Instance URLs are validated
|
|
13
|
+
* when they are registered, but a hand-edited config must not be able to turn
|
|
14
|
+
* `open` into "run whatever this file:// or custom-scheme URL points at".
|
|
15
|
+
*/
|
|
16
|
+
export declare function assertWebUrl(value: string): URL;
|
|
17
|
+
/**
|
|
18
|
+
* Picks how to open a URL in a browser, or returns undefined when this
|
|
19
|
+
* environment has no usable browser (SSH sessions, containers, CI). Every
|
|
20
|
+
* launcher receives the URL as a single argv entry; no shell ever parses it.
|
|
21
|
+
*/
|
|
22
|
+
export declare function chooseLauncher(url: string, { platform, env, which }: LauncherEnvironment): Promise<BrowserLauncher | undefined>;
|
|
23
|
+
/**
|
|
24
|
+
* Starts the launcher detached. Resolves true once it has been spawned and
|
|
25
|
+
* false when it could not be started, so the caller can fall back to
|
|
26
|
+
* printing the URL.
|
|
27
|
+
*/
|
|
28
|
+
export declare function launchBrowser(launcher: BrowserLauncher): Promise<boolean>;
|
|
29
|
+
export declare function pathLookup(env: NodeJS.ProcessEnv, platform?: NodeJS.Platform): (name: string) => Promise<string | undefined>;
|
|
30
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/services/browser.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,qEAAqE;IACrE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACxD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAa/C;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAChC,GAAG,EAAE,MAAM,EACX,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,mBAAmB,GAC9C,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAwCtC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAYzE;AAED,wBAAgB,UAAU,CACtB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC7C,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoB/C"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { access } from "node:fs/promises";
|
|
3
|
+
import { delimiter, join } from "node:path";
|
|
4
|
+
/**
|
|
5
|
+
* Only web URLs are ever handed to a launcher. Instance URLs are validated
|
|
6
|
+
* when they are registered, but a hand-edited config must not be able to turn
|
|
7
|
+
* `open` into "run whatever this file:// or custom-scheme URL points at".
|
|
8
|
+
*/
|
|
9
|
+
export function assertWebUrl(value) {
|
|
10
|
+
let url;
|
|
11
|
+
try {
|
|
12
|
+
url = new URL(value);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
throw new Error(`${value} is not a valid absolute URL.`);
|
|
16
|
+
}
|
|
17
|
+
if (url.protocol !== "http:" && url.protocol !== "https:") {
|
|
18
|
+
throw new Error(`Refusing to open ${value}: only http and https URLs are supported.`);
|
|
19
|
+
}
|
|
20
|
+
return url;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Picks how to open a URL in a browser, or returns undefined when this
|
|
24
|
+
* environment has no usable browser (SSH sessions, containers, CI). Every
|
|
25
|
+
* launcher receives the URL as a single argv entry; no shell ever parses it.
|
|
26
|
+
*/
|
|
27
|
+
export async function chooseLauncher(url, { platform, env, which }) {
|
|
28
|
+
// $BROWSER is the conventional user override. Only a bare command is
|
|
29
|
+
// honoured; anything with arguments or placeholders is ignored rather
|
|
30
|
+
// than split, so the value is never interpreted by a shell.
|
|
31
|
+
const browser = env.BROWSER?.trim();
|
|
32
|
+
if (browser && !/\s|%s/.test(browser)) {
|
|
33
|
+
const command = await which(browser);
|
|
34
|
+
if (command) {
|
|
35
|
+
return { command, args: [url] };
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (platform === "darwin") {
|
|
39
|
+
return { command: "open", args: [url] };
|
|
40
|
+
}
|
|
41
|
+
if (platform === "win32") {
|
|
42
|
+
// Avoids `cmd /c start`, where "&" in a query string would be parsed.
|
|
43
|
+
return {
|
|
44
|
+
command: "rundll32.exe",
|
|
45
|
+
args: ["url.dll,FileProtocolHandler", url],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
// WSL: open the Windows browser when wslu is installed.
|
|
49
|
+
if (env.WSL_DISTRO_NAME) {
|
|
50
|
+
const wslview = await which("wslview");
|
|
51
|
+
if (wslview) {
|
|
52
|
+
return { command: wslview, args: [url] };
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (env.DISPLAY || env.WAYLAND_DISPLAY) {
|
|
56
|
+
const xdgOpen = await which("xdg-open");
|
|
57
|
+
if (xdgOpen) {
|
|
58
|
+
return { command: xdgOpen, args: [url] };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Starts the launcher detached. Resolves true once it has been spawned and
|
|
65
|
+
* false when it could not be started, so the caller can fall back to
|
|
66
|
+
* printing the URL.
|
|
67
|
+
*/
|
|
68
|
+
export function launchBrowser(launcher) {
|
|
69
|
+
return new Promise((resolveLaunch) => {
|
|
70
|
+
const child = spawn(launcher.command, launcher.args, {
|
|
71
|
+
detached: true,
|
|
72
|
+
stdio: "ignore",
|
|
73
|
+
});
|
|
74
|
+
child.once("error", () => resolveLaunch(false));
|
|
75
|
+
child.once("spawn", () => {
|
|
76
|
+
child.unref();
|
|
77
|
+
resolveLaunch(true);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
export function pathLookup(env, platform = process.platform) {
|
|
82
|
+
const extensions = platform === "win32"
|
|
83
|
+
? ["", ...(env.PATHEXT ?? ".EXE;.CMD;.BAT;.COM").split(";")]
|
|
84
|
+
: [""];
|
|
85
|
+
return async (name) => {
|
|
86
|
+
const entries = (env.PATH ?? "").split(delimiter).filter(Boolean);
|
|
87
|
+
for (const entry of entries) {
|
|
88
|
+
for (const extension of extensions) {
|
|
89
|
+
const candidate = join(entry, `${name}${extension}`);
|
|
90
|
+
try {
|
|
91
|
+
await access(candidate);
|
|
92
|
+
return candidate;
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// keep looking
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return undefined;
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/services/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-config.d.ts","sourceRoot":"","sources":["../../src/services/cli-config.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAUhE;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAUjE;AAED,wBAAsB,UAAU,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,SAAS,GAClB,OAAO,CAAC,IAAI,CAAC,CAMf;AAyBD,wBAAgB,cAAc,CAC1B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,GACzB,SAAS,CAQX;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAK7E;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"cli-config.d.ts","sourceRoot":"","sources":["../../src/services/cli-config.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAUhE;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAUjE;AAED,wBAAsB,UAAU,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,SAAS,GAClB,OAAO,CAAC,IAAI,CAAC,CAMf;AAyBD,wBAAgB,cAAc,CAC1B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,GACzB,SAAS,CAQX;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAK7E;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAsBzE"}
|
|
@@ -66,13 +66,16 @@ export function removeInstance(config, name) {
|
|
|
66
66
|
if (!Object.hasOwn(config.instances, name)) {
|
|
67
67
|
throw new Error(`Unknown instance: ${name}`);
|
|
68
68
|
}
|
|
69
|
-
if (config.defaultInstance === name &&
|
|
69
|
+
if (config.defaultInstance === name &&
|
|
70
|
+
Object.keys(config.instances).length > 1) {
|
|
70
71
|
throw new Error(`Cannot remove default instance ${name}. Select another with: eudiplo instance use <name>`);
|
|
71
72
|
}
|
|
72
73
|
const instances = { ...config.instances };
|
|
73
74
|
delete instances[name];
|
|
74
75
|
return {
|
|
75
|
-
defaultInstance: config.defaultInstance === name
|
|
76
|
+
defaultInstance: config.defaultInstance === name
|
|
77
|
+
? undefined
|
|
78
|
+
: config.defaultInstance,
|
|
76
79
|
instances,
|
|
77
80
|
};
|
|
78
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-config.js","sourceRoot":"","sources":["../../src/services/cli-config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-config.js","sourceRoot":"","sources":["../../src/services/cli-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { InstanceConfig } from "../types.js";
|
|
2
|
+
export interface ComposeLogOptions {
|
|
3
|
+
follow?: boolean;
|
|
4
|
+
tail?: number;
|
|
5
|
+
since?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function assertServiceName(service: string): void;
|
|
8
|
+
export declare function assertSince(since: string): void;
|
|
9
|
+
/**
|
|
10
|
+
* Options shared by every Compose invocation for an instance: env file,
|
|
11
|
+
* compose files, profiles and project name, all resolved against the
|
|
12
|
+
* project directory.
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildComposeBaseArgs(instance: InstanceConfig, projectDirectory: string, composeFiles: string[]): string[];
|
|
15
|
+
export declare function buildComposePsArgs(): string[];
|
|
16
|
+
export declare function buildComposeListServicesArgs(): string[];
|
|
17
|
+
export declare function buildComposeLogsArgs(service: string | undefined, options?: ComposeLogOptions): string[];
|
|
18
|
+
export declare function buildComposePullArgs(service: string | undefined): string[];
|
|
19
|
+
export declare function buildComposeUpArgs(): string[];
|
|
20
|
+
export declare function buildComposeRestartArgs(service: string | undefined): string[];
|
|
21
|
+
/**
|
|
22
|
+
* Parses `compose config --services` output. `podman compose` can print a
|
|
23
|
+
* provider notice before delegating, so anything that is not a valid service
|
|
24
|
+
* name is dropped rather than trusted.
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseServiceList(stdout: string): string[];
|
|
27
|
+
export declare function assertKnownService(service: string, known: string[]): void;
|
|
28
|
+
//# sourceMappingURL=compose-args.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose-args.d.ts","sourceRoot":"","sources":["../../src/services/compose-args.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAuBlD,MAAM,WAAW,iBAAiB;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAMvD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAS/C;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,cAAc,EACxB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EAAE,GACvB,MAAM,EAAE,CAeV;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED,wBAAgB,4BAA4B,IAAI,MAAM,EAAE,CAEvD;AAED,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,GAAE,iBAAsB,GAChC,MAAM,EAAE,CAkBV;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAO1E;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAO7E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAMzD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAMzE"}
|