@eudiplo/cli 0.1.3 → 6.1.0-main.5a67231

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 CHANGED
@@ -5,6 +5,10 @@ instance and deployment-driver commands for local Docker Compose demos.
5
5
 
6
6
  ## Quick Start
7
7
 
8
+ `npx` is provided by npm, which is installed with Node.js. It is not bundled with
9
+ operating systems by default, so install a current Node.js distribution first if
10
+ `npx` is missing.
11
+
8
12
  ```bash
9
13
  npx @eudiplo/cli demo
10
14
  npx @eudiplo/cli instance add production --url https://eudiplo.example.com
@@ -23,6 +27,9 @@ The npm package is scoped as `@eudiplo/cli`, while the installed binary is
23
27
  or project installation, run `eudiplo` directly.
24
28
 
25
29
  ```bash
30
+ npm install -g @eudiplo/cli
31
+ eudiplo status
32
+
26
33
  pnpm add -D @eudiplo/cli
27
34
  pnpm eudiplo status
28
35
  ```
@@ -38,17 +45,29 @@ eudiplo doctor --instance production
38
45
  eudiplo status --instance production
39
46
  eudiplo config validate
40
47
  eudiplo --version
48
+ eudiplo version
41
49
  ```
42
50
 
51
+ `--version` and `-v` print the installed CLI version without network access.
52
+ `version` also checks the npm registry and reports whether an update is
53
+ available.
54
+
43
55
  Compose driver commands require a `compose` instance:
44
56
 
45
57
  ```bash
46
58
  eudiplo init --target compose
59
+ eudiplo init --target compose --demo
60
+ eudiplo init --target compose --no-client
47
61
  eudiplo up
48
62
  eudiplo down
49
63
  eudiplo logs
50
64
  ```
51
65
 
66
+ `init --target compose` writes a local `.eudiplo.env` that uses the standard
67
+ `ghcr.io/openwallet-foundation/eudiplo:latest` image via the Compose default.
68
+ Add `--demo` to write the demo image override instead. Add `--no-client` to
69
+ generate a small Compose override that skips the web client container.
70
+
52
71
  If a driver-specific command is used with an unsupported target, the CLI exits
53
72
  with a clear error, for example:
54
73
 
@@ -82,3 +101,17 @@ pnpm --filter @eudiplo/cli lint
82
101
 
83
102
  The build runs `assets:check`, which fails if the bundled Compose template has
84
103
  drifted from the canonical deployment Compose file.
104
+
105
+ ## Single Executable Application
106
+
107
+ To produce a standalone CLI binary with Node.js SEA support, run:
108
+
109
+ ```bash
110
+ pnpm --filter @eudiplo/cli build:sea
111
+ ```
112
+
113
+ This writes the executable to `apps/cli/dist-sea/eudiplo` and bundles the
114
+ Compose template as a SEA asset.
115
+
116
+ The GitHub release workflow also publishes that SEA binary as a release asset,
117
+ so consumers can download the standalone executable without cloning the repo.
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAgCpD;AAED,wBAAgB,cAAc,CAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EACvC,IAAI,EAAE,MAAM,GACb,MAAM,GAAG,SAAS,CAGpB"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO7C,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAuCpD;AAED,wBAAgB,cAAc,CAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EACvC,IAAI,EAAE,MAAM,GACb,MAAM,GAAG,SAAS,CAGpB"}
package/dist/args.js CHANGED
@@ -1,8 +1,19 @@
1
+ const shortFlagAliases = {
2
+ h: "help",
3
+ v: "version",
4
+ };
1
5
  export function parseArgs(args) {
2
6
  const flags = {};
3
7
  const positionals = [];
4
8
  for (let index = 0; index < args.length; index += 1) {
5
9
  const token = args[index];
10
+ if (token.startsWith("-") && !token.startsWith("--")) {
11
+ const alias = shortFlagAliases[token.slice(1)];
12
+ if (alias) {
13
+ flags[alias] = true;
14
+ continue;
15
+ }
16
+ }
6
17
  if (!token.startsWith("--")) {
7
18
  positionals.push(token);
8
19
  continue;
package/dist/args.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,IAAc;IACpC,MAAM,KAAK,GAAqC,EAAE,CAAC;IACnD,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,SAAS;QACb,CAAC;QAED,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;YAC1B,SAAS;QACb,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YACtB,KAAK,IAAI,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,OAAO;QACH,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QACvB,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,KAAK;KACR,CAAC;AACN,CAAC;AAED,MAAM,UAAU,cAAc,CAC1B,KAAuC,EACvC,IAAY;IAEZ,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAA2B;IAC7C,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,SAAS;CACf,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,IAAc;IACpC,MAAM,KAAK,GAAqC,EAAE,CAAC;IACnD,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACR,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBACpB,SAAS;YACb,CAAC;QACL,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,SAAS;QACb,CAAC;QAED,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;YAC1B,SAAS;QACb,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YACtB,KAAK,IAAI,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,OAAO;QACH,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QACvB,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,KAAK;KACR,CAAC;AACN,CAAC;AAED,MAAM,UAAU,cAAc,CAC1B,KAAuC,EACvC,IAAY;IAEZ,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7E,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export declare const defaultComposeFileName = "eudiplo.compose.yaml";
2
+ export declare const defaultComposeOverrideFileName = "eudiplo.compose.override.yaml";
2
3
  export declare const defaultEnvFileName = ".eudiplo.env";
3
- export declare function createDemoEnv(): string;
4
+ export declare function createComposeEnv(useDemoImage: boolean): string;
4
5
  export declare function createComposeFile(): Promise<string>;
6
+ export declare function createNoClientComposeOverride(): string;
5
7
  //# sourceMappingURL=compose-template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose-template.d.ts","sourceRoot":"","sources":["../src/compose-template.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAC7D,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,wBAAgB,aAAa,IAAI,MAAM,CAUtC;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAEzD"}
1
+ {"version":3,"file":"compose-template.d.ts","sourceRoot":"","sources":["../src/compose-template.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAC7D,eAAO,MAAM,8BAA8B,kCAAkC,CAAC;AAC9E,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAe9D;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAKzD;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAOtD"}
@@ -1,19 +1,31 @@
1
1
  import { randomBytes } from "node:crypto";
2
- import { readFile } from "node:fs/promises";
2
+ import { readCliTextAsset } from "./sea-assets.js";
3
3
  export const defaultComposeFileName = "eudiplo.compose.yaml";
4
+ export const defaultComposeOverrideFileName = "eudiplo.compose.override.yaml";
4
5
  export const defaultEnvFileName = ".eudiplo.env";
5
- export function createDemoEnv() {
6
- return [
6
+ export function createComposeEnv(useDemoImage) {
7
+ const lines = [
7
8
  "EUDIPLO_ENV_FILE=.eudiplo.env",
8
- "EUDIPLO_IMAGE=ghcr.io/openwallet-foundation/eudiplo-demo:main",
9
9
  "PUBLIC_URL=http://localhost:3000",
10
10
  `MASTER_SECRET=${randomBytes(32).toString("base64")}`,
11
11
  "AUTH_CLIENT_ID=root",
12
12
  "AUTH_CLIENT_SECRET=root",
13
13
  "",
14
- ].join("\n");
14
+ ];
15
+ if (useDemoImage) {
16
+ lines.splice(1, 0, "EUDIPLO_IMAGE=ghcr.io/openwallet-foundation/eudiplo-demo:main");
17
+ }
18
+ return lines.join("\n");
15
19
  }
16
20
  export async function createComposeFile() {
17
- return readFile(new URL("../templates/docker-compose.yml", import.meta.url), "utf8");
21
+ return readCliTextAsset("templates/docker-compose.yml", new URL("../templates/docker-compose.yml", import.meta.url));
22
+ }
23
+ export function createNoClientComposeOverride() {
24
+ return [
25
+ "services:",
26
+ " eudiplo-client:",
27
+ ' profiles: ["disabled"]',
28
+ "",
29
+ ].join("\n");
18
30
  }
19
31
  //# sourceMappingURL=compose-template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose-template.js","sourceRoot":"","sources":["../src/compose-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAC7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAEjD,MAAM,UAAU,aAAa;IACzB,OAAO;QACL,+BAA+B;QAC/B,+DAA+D;QAC/D,kCAAkC;QAChC,iBAAiB,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACrD,qBAAqB;QACrB,yBAAyB;QACzB,EAAE;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACnC,OAAO,QAAQ,CAAC,IAAI,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AACzF,CAAC"}
1
+ {"version":3,"file":"compose-template.js","sourceRoot":"","sources":["../src/compose-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAC7D,MAAM,CAAC,MAAM,8BAA8B,GAAG,+BAA+B,CAAC;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAEjD,MAAM,UAAU,gBAAgB,CAAC,YAAqB;IAClD,MAAM,KAAK,GAAG;QACV,+BAA+B;QAC/B,kCAAkC;QAClC,iBAAiB,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACrD,qBAAqB;QACrB,yBAAyB;QACzB,EAAE;KACL,CAAC;IAEF,IAAI,YAAY,EAAE,CAAC;QACf,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,+DAA+D,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACnC,OAAO,gBAAgB,CACnB,8BAA8B,EAC9B,IAAI,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAC9D,CAAC;AACN,CAAC;AAED,MAAM,UAAU,6BAA6B;IACzC,OAAO;QACH,WAAW;QACX,mBAAmB;QACnB,4BAA4B;QAC5B,EAAE;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC"}
package/dist/config.d.ts CHANGED
@@ -2,6 +2,5 @@ import type { CliConfig, InstanceConfig } from "./types.js";
2
2
  export declare function resolveConfigPath(env: NodeJS.ProcessEnv): string;
3
3
  export declare function loadConfig(path: string): Promise<CliConfig>;
4
4
  export declare function saveConfig(path: string, config: CliConfig): Promise<void>;
5
- export declare function validateConfig(value: unknown): CliConfig;
6
5
  export declare function upsertInstance(config: CliConfig, name: string, instance: InstanceConfig): CliConfig;
7
6
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5D,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,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAM/E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAkBxD;AAED,wBAAgB,cAAc,CAC1B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,GACzB,SAAS,CAQX"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5D,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,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAM/E;AAsBD,wBAAgB,cAAc,CAC1B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,GACzB,SAAS,CAQX"}
package/dist/config.js CHANGED
@@ -30,7 +30,7 @@ export async function saveConfig(path, config) {
30
30
  mode: 0o600,
31
31
  });
32
32
  }
33
- export function validateConfig(value) {
33
+ function validateConfig(value) {
34
34
  if (!isRecord(value)) {
35
35
  throw new Error("Config must be a JSON object.");
36
36
  }
@@ -87,6 +87,7 @@ function validateInstanceConfig(name, value) {
87
87
  url: value.url,
88
88
  clientUrl: optionalString(value.clientUrl),
89
89
  composeFile: optionalString(value.composeFile),
90
+ composeFiles: optionalStringArray(value.composeFiles),
90
91
  envFile: optionalString(value.envFile),
91
92
  projectName: optionalString(value.projectName),
92
93
  };
@@ -94,6 +95,15 @@ function validateInstanceConfig(name, value) {
94
95
  function optionalString(value) {
95
96
  return typeof value === "string" ? value : undefined;
96
97
  }
98
+ function optionalStringArray(value) {
99
+ if (!Array.isArray(value)) {
100
+ return undefined;
101
+ }
102
+ if (value.some((item) => typeof item !== "string")) {
103
+ throw new Error("composeFiles must contain only strings.");
104
+ }
105
+ return value;
106
+ }
97
107
  function validateOptionalHttpUrl(value, label) {
98
108
  if (typeof value === "string") {
99
109
  validateHttpUrl(value, label);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/doctor.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { CommandContext, InstanceConfig } from "./types.js";
2
- export type CheckStatus = "pass" | "warn" | "fail";
2
+ type CheckStatus = "pass" | "warn" | "fail";
3
3
  export interface DoctorCheck {
4
4
  name: string;
5
5
  status: CheckStatus;
@@ -8,4 +8,5 @@ export interface DoctorCheck {
8
8
  export declare function runDoctor(instance: InstanceConfig, context: CommandContext, driverDiagnostics: string[]): Promise<DoctorCheck[]>;
9
9
  export declare function hasFailedChecks(checks: DoctorCheck[]): boolean;
10
10
  export declare function formatChecks(checks: DoctorCheck[]): string;
11
+ export {};
11
12
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,SAAS,CAC3B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,cAAc,EACvB,iBAAiB,EAAE,MAAM,EAAE,GAC5B,OAAO,CAAC,WAAW,EAAE,CAAC,CAuDxB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAE9D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAI1D"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,SAAS,CAC3B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,cAAc,EACvB,iBAAiB,EAAE,MAAM,EAAE,GAC5B,OAAO,CAAC,WAAW,EAAE,CAAC,CAuDxB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAE9D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAI1D"}
package/dist/drivers.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  import type { DeploymentDriver, DeploymentTarget, InstanceConfig } from "./types.js";
2
2
  export declare const drivers: Record<DeploymentTarget, DeploymentDriver>;
3
- export declare function ensureComposeProject(cwd: string): Promise<InstanceConfig>;
3
+ export declare function ensureComposeProject(cwd: string, options?: {
4
+ useDemoImage?: boolean;
5
+ noClient?: boolean;
6
+ }): Promise<InstanceConfig>;
4
7
  export declare function unsupportedCommand(command: string, target: DeploymentTarget): string;
5
8
  //# sourceMappingURL=drivers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drivers.d.ts","sourceRoot":"","sources":["../src/drivers.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAER,gBAAgB,EAChB,gBAAgB,EAEhB,cAAc,EACjB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAiC9D,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAmB/E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAKpF"}
1
+ {"version":3,"file":"drivers.d.ts","sourceRoot":"","sources":["../src/drivers.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACR,gBAAgB,EAChB,gBAAgB,EAEhB,cAAc,EACjB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAiC9D,CAAC;AAEF,wBAAsB,oBAAoB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7D,OAAO,CAAC,cAAc,CAAC,CAmCzB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAKpF"}
package/dist/drivers.js CHANGED
@@ -1,21 +1,21 @@
1
- import { access, writeFile } from "node:fs/promises";
1
+ import { access, unlink, writeFile } from "node:fs/promises";
2
2
  import { join, resolve } from "node:path";
3
3
  import { spawn } from "node:child_process";
4
- import { createComposeFile, createDemoEnv, defaultComposeFileName, defaultEnvFileName, } from "./compose-template.js";
4
+ import { createComposeFile, createComposeEnv, createNoClientComposeOverride, defaultComposeFileName, defaultComposeOverrideFileName, defaultEnvFileName, } from "./compose-template.js";
5
5
  export const drivers = {
6
6
  compose: {
7
7
  target: "compose",
8
8
  async diagnostics(instance, context) {
9
9
  const messages = [];
10
- if (!(await commandExists("docker", context))) {
11
- messages.push("Docker is not available on PATH.");
10
+ if (!(await resolveDockerExecutable())) {
11
+ messages.push("Docker was not found in a supported install location.");
12
12
  }
13
- if (instance.composeFile) {
13
+ for (const composeFile of getComposeFiles(instance)) {
14
14
  try {
15
- await access(resolve(context.cwd, instance.composeFile));
15
+ await access(resolve(context.cwd, composeFile));
16
16
  }
17
17
  catch {
18
- messages.push(`Compose file not found: ${instance.composeFile}`);
18
+ messages.push(`Compose file not found: ${composeFile}`);
19
19
  }
20
20
  }
21
21
  return messages;
@@ -37,20 +37,35 @@ export const drivers = {
37
37
  },
38
38
  },
39
39
  };
40
- export async function ensureComposeProject(cwd) {
40
+ export async function ensureComposeProject(cwd, options = {}) {
41
41
  const composePath = join(cwd, defaultComposeFileName);
42
+ const overridePath = join(cwd, defaultComposeOverrideFileName);
42
43
  const envPath = join(cwd, defaultEnvFileName);
43
44
  if (!(await exists(composePath))) {
44
45
  await writeFile(composePath, await createComposeFile(), "utf8");
45
46
  }
46
47
  if (!(await exists(envPath))) {
47
- await writeFile(envPath, createDemoEnv(), { encoding: "utf8", mode: 0o600 });
48
+ await writeFile(envPath, createComposeEnv(options.useDemoImage === true), {
49
+ encoding: "utf8",
50
+ mode: 0o600,
51
+ });
52
+ }
53
+ if (options.noClient === true) {
54
+ await writeFile(overridePath, createNoClientComposeOverride(), "utf8");
55
+ }
56
+ else {
57
+ await removeIfExists(overridePath);
58
+ }
59
+ const composeFiles = [defaultComposeFileName];
60
+ if (options.noClient === true) {
61
+ composeFiles.push(defaultComposeOverrideFileName);
48
62
  }
49
63
  return {
50
64
  target: "compose",
51
65
  url: "http://localhost:3000",
52
- clientUrl: "http://localhost:4200",
66
+ clientUrl: options.noClient === true ? undefined : "http://localhost:4200",
53
67
  composeFile: defaultComposeFileName,
68
+ composeFiles,
54
69
  envFile: defaultEnvFileName,
55
70
  projectName: "eudiplo-demo",
56
71
  };
@@ -66,15 +81,20 @@ async function runCompose(args, { instance, context }) {
66
81
  if (instance.envFile) {
67
82
  composeArgs.push("--env-file", resolve(context.cwd, instance.envFile));
68
83
  }
69
- if (instance.composeFile) {
70
- composeArgs.push("-f", resolve(context.cwd, instance.composeFile));
84
+ for (const composeFile of getComposeFiles(instance)) {
85
+ composeArgs.push("-f", resolve(context.cwd, composeFile));
71
86
  }
72
87
  if (instance.projectName) {
73
88
  composeArgs.push("--project-name", instance.projectName);
74
89
  }
75
90
  composeArgs.push(...args);
91
+ const dockerExecutable = await resolveDockerExecutable();
92
+ if (!dockerExecutable) {
93
+ context.stderr.write("Docker was not found in a supported install location.\n");
94
+ return 1;
95
+ }
76
96
  return new Promise((resolveProcess) => {
77
- const child = spawn("docker", composeArgs, {
97
+ const child = spawn(dockerExecutable, composeArgs, {
78
98
  cwd: context.cwd,
79
99
  env: context.env,
80
100
  stdio: "inherit",
@@ -86,17 +106,16 @@ async function runCompose(args, { instance, context }) {
86
106
  child.on("close", (code) => resolveProcess(code ?? 1));
87
107
  });
88
108
  }
89
- async function commandExists(command, context) {
90
- const path = context.env.PATH ?? "";
91
- const executableNames = process.platform === "win32" ? [command, `${command}.exe`] : [command];
92
- for (const directory of path.split(process.platform === "win32" ? ";" : ":")) {
93
- for (const executableName of executableNames) {
94
- if (await exists(join(directory, executableName))) {
95
- return true;
96
- }
109
+ async function resolveDockerExecutable() {
110
+ const executablePaths = process.platform === "win32"
111
+ ? [String.raw `C:\Program Files\Docker\Docker\resources\bin\docker.exe`]
112
+ : ["/usr/local/bin/docker", "/opt/homebrew/bin/docker", "/usr/bin/docker"];
113
+ for (const executablePath of executablePaths) {
114
+ if (await exists(executablePath)) {
115
+ return executablePath;
97
116
  }
98
117
  }
99
- return false;
118
+ return undefined;
100
119
  }
101
120
  async function exists(path) {
102
121
  try {
@@ -107,4 +126,17 @@ async function exists(path) {
107
126
  return false;
108
127
  }
109
128
  }
129
+ function getComposeFiles(instance) {
130
+ return instance.composeFiles ?? (instance.composeFile ? [instance.composeFile] : []);
131
+ }
132
+ async function removeIfExists(path) {
133
+ try {
134
+ await unlink(path);
135
+ }
136
+ catch (error) {
137
+ if (!(error instanceof Error) || !("code" in error) || error.code !== "ENOENT") {
138
+ throw error;
139
+ }
140
+ }
141
+ }
110
142
  //# sourceMappingURL=drivers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drivers.js","sourceRoot":"","sources":["../src/drivers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drivers.js","sourceRoot":"","sources":["../src/drivers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAa,cAAc,EAAgC,MAAM,YAAY,CAAC;AAE1F,wBAAsB,MAAM,CACxB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,cAAiC,GAC3C,OAAO,CAAC,MAAM,CAAC,CAsBjB"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAa,cAAc,EAAgC,MAAM,YAAY,CAAC;AAE1F,wBAAsB,MAAM,CACxB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,cAAiC,GAC3C,OAAO,CAAC,MAAM,CAAC,CAyBjB"}
package/dist/runtime.js CHANGED
@@ -5,14 +5,19 @@ import { formatChecks, hasFailedChecks, runDoctor } from "./doctor.js";
5
5
  import packageJson from "../package.json" with { type: "json" };
6
6
  export async function runCli(args, context = defaultContext()) {
7
7
  const parsed = parseArgs(args);
8
- if (parsed.command === "version" ||
9
- parsed.command === "-v" ||
10
- parsed.command === "--version" ||
11
- parsed.flags.version === true) {
8
+ if (parsed.command === "-v" || parsed.command === "--version" || parsed.flags.version === true) {
12
9
  context.stdout.write(`${versionText()}\n`);
13
10
  return 0;
14
11
  }
15
- if (!parsed.command || parsed.flags.help === true || parsed.command === "help") {
12
+ if (parsed.command === "version") {
13
+ context.stdout.write(`${await versionStatusText(context)}\n`);
14
+ return 0;
15
+ }
16
+ if (parsed.command && parsed.flags.help === true) {
17
+ context.stdout.write(`${commandHelpText(parsed.command)}\n`);
18
+ return 0;
19
+ }
20
+ if (!parsed.command || parsed.command === "help") {
16
21
  context.stdout.write(`${helpText()}\n`);
17
22
  return 0;
18
23
  }
@@ -61,8 +66,10 @@ async function init(configPath, config, parsed, context) {
61
66
  const target = parseTarget(readStringFlag(parsed.flags, "target") ?? "compose");
62
67
  const name = readStringFlag(parsed.flags, "instance") ?? "local";
63
68
  const url = readStringFlag(parsed.flags, "url");
69
+ const useDemoImage = parsed.flags.demo === true;
70
+ const noClient = parsed.flags["no-client"] === true;
64
71
  if (target === "compose") {
65
- const instance = await ensureComposeProject(context.cwd);
72
+ const instance = await ensureComposeProject(context.cwd, { useDemoImage, noClient });
66
73
  const nextConfig = upsertInstance(config, name, {
67
74
  ...instance,
68
75
  url: url ?? instance.url,
@@ -80,7 +87,7 @@ async function init(configPath, config, parsed, context) {
80
87
  return 0;
81
88
  }
82
89
  async function demo(configPath, config, context) {
83
- const instance = await ensureComposeProject(context.cwd);
90
+ const instance = await ensureComposeProject(context.cwd, { useDemoImage: true });
84
91
  const nextConfig = upsertInstance(config, "local", instance);
85
92
  await saveConfig(configPath, nextConfig);
86
93
  context.stdout.write("Starting EUDIPLO demo with Docker Compose...\n");
@@ -152,6 +159,9 @@ async function driverCommand(config, command, parsed, context) {
152
159
  if (!handler) {
153
160
  throw new Error(unsupportedCommand(command, instance.target));
154
161
  }
162
+ if (instance.target === "compose") {
163
+ context.stdout.write(`${command} ${instanceName} (${composeClientMode(instance)})\n`);
164
+ }
155
165
  return handler({ instanceName, instance, args: parsed.positionals, context });
156
166
  }
157
167
  function resolveInstance(config, parsed) {
@@ -171,23 +181,211 @@ function parseTarget(value) {
171
181
  }
172
182
  throw new Error(`Unsupported target: ${value}`);
173
183
  }
184
+ function composeClientMode(instance) {
185
+ return instance.clientUrl ? "client enabled" : "client disabled";
186
+ }
174
187
  function helpText() {
175
188
  return `EUDIPLO CLI
176
189
 
177
190
  Usage:
178
- eudiplo demo
179
- eudiplo init --target compose [--instance local]
180
- eudiplo up|down|logs [--instance local]
181
- eudiplo instance add <name> --url <url> [--target external] [--client-url <url>]
182
- eudiplo doctor [--instance name]
183
- eudiplo status [--instance name]
184
- eudiplo config validate
185
- eudiplo version
191
+ eudiplo <command> [options]
192
+
193
+ Commands:
194
+ eudiplo demo Creates and starts a local Docker Compose demo.
195
+ eudiplo init --target compose Creates local Compose assets; add --demo or --no-client as needed.
196
+ eudiplo up Starts the selected Compose deployment.
197
+ eudiplo down Stops the selected Compose deployment.
198
+ eudiplo logs Streams logs for the selected Compose deployment.
199
+ eudiplo instance add <name> --url Registers an existing EUDIPLO deployment.
200
+ eudiplo doctor Checks API reachability, health, config, and client connectivity.
201
+ eudiplo status Prints the selected instance status.
202
+ eudiplo config validate Validates the local CLI configuration file.
203
+ eudiplo version Prints the installed version and checks npm for updates.
204
+
205
+ Options:
206
+ --instance <name> Selects a configured instance.
207
+ --target <compose|external> Selects the deployment target for init/add.
208
+ --url <url> Sets the EUDIPLO API URL for an instance.
209
+ --client-url <url> Sets the optional web client URL for an instance.
210
+ --no-client Skips the web client for compose init.
211
+ --help Shows this help message.
212
+ --version, -v Prints the installed CLI version without network access.
186
213
 
187
214
  One-off npm usage:
188
- npx @eudiplo/cli demo`;
215
+ npx @eudiplo/cli demo
216
+
217
+ For more information, see https://openwallet-foundation.github.io/eudiplo/docs/latest/getting-started/cli/`;
218
+ }
219
+ function commandHelpText(command) {
220
+ switch (command) {
221
+ case "demo":
222
+ return `EUDIPLO CLI
223
+
224
+ Usage:
225
+ eudiplo demo
226
+
227
+ Creates local demo assets and starts EUDIPLO with Docker Compose.
228
+
229
+ Options:
230
+ --help Shows this help message.`;
231
+ case "init":
232
+ return `EUDIPLO CLI
233
+
234
+ Usage:
235
+ eudiplo init --target compose [options]
236
+
237
+ Creates local deployment assets without starting them.
238
+
239
+ Options:
240
+ --target <compose|external> Selects the deployment target. Defaults to compose.
241
+ --instance <name> Names the instance in CLI config. Defaults to local.
242
+ --demo Uses the demo image instead of the standard image.
243
+ --no-client Omits the web client from the local Compose setup.
244
+ --url <url> Overrides the instance API URL.
245
+ --help Shows this help message.`;
246
+ case "up":
247
+ case "down":
248
+ case "logs":
249
+ return `EUDIPLO CLI
250
+
251
+ Usage:
252
+ eudiplo ${command} [--instance name]
253
+
254
+ ${driverCommandDescription(command)}
255
+
256
+ Options:
257
+ --instance <name> Selects a configured Compose instance.
258
+ --help Shows this help message.`;
259
+ case "instance":
260
+ return `EUDIPLO CLI
261
+
262
+ Usage:
263
+ eudiplo instance add <name> --url <url> [options]
264
+
265
+ Registers an existing EUDIPLO deployment in the local CLI config.
266
+
267
+ Options:
268
+ --target <compose|external> Selects the deployment target. Defaults to external.
269
+ --url <url> Sets the EUDIPLO API URL.
270
+ --client-url <url> Sets the optional web client URL.
271
+ --help Shows this help message.`;
272
+ case "doctor":
273
+ return `EUDIPLO CLI
274
+
275
+ Usage:
276
+ eudiplo doctor [--instance name]
277
+
278
+ Checks API reachability, health, authentication hints, public URLs, and client connectivity.
279
+
280
+ Options:
281
+ --instance <name> Selects a configured instance.
282
+ --help Shows this help message.`;
283
+ case "status":
284
+ return `EUDIPLO CLI
285
+
286
+ Usage:
287
+ eudiplo status [--instance name]
288
+
289
+ Prints the selected instance URL and health status.
290
+
291
+ Options:
292
+ --instance <name> Selects a configured instance.
293
+ --help Shows this help message.`;
294
+ case "config":
295
+ return `EUDIPLO CLI
296
+
297
+ Usage:
298
+ eudiplo config validate
299
+
300
+ Validates the local CLI configuration file.
301
+
302
+ Commands:
303
+ eudiplo config validate Validates configured instances and URLs.
304
+
305
+ Options:
306
+ --help Shows this help message.`;
307
+ case "version":
308
+ return `EUDIPLO CLI
309
+
310
+ Usage:
311
+ eudiplo version
312
+ eudiplo --version
313
+ eudiplo -v
314
+
315
+ Prints the installed CLI version. The version command also checks npm for updates.
316
+
317
+ Options:
318
+ --help Shows this help message.`;
319
+ default:
320
+ return `Unknown command: ${command}\n\n${helpText()}`;
321
+ }
322
+ }
323
+ function driverCommandDescription(command) {
324
+ if (command === "up") {
325
+ return "Starts the selected Docker Compose deployment.";
326
+ }
327
+ if (command === "down") {
328
+ return "Stops the selected Docker Compose deployment.";
329
+ }
330
+ return "Streams logs for the selected Docker Compose deployment.";
189
331
  }
190
332
  function versionText() {
191
333
  return `${packageJson.name} ${packageJson.version}`;
192
334
  }
335
+ async function versionStatusText(context) {
336
+ const currentVersion = packageJson.version;
337
+ const lines = [versionText()];
338
+ try {
339
+ const latestVersion = await fetchLatestVersion(context);
340
+ lines.push(`latest ${latestVersion}`);
341
+ const comparison = compareSemver(currentVersion, latestVersion);
342
+ if (comparison < 0) {
343
+ lines.push("update available: npm install -g @eudiplo/cli@latest");
344
+ }
345
+ else if (comparison === 0) {
346
+ lines.push("up to date");
347
+ }
348
+ else {
349
+ lines.push("newer than the latest published version");
350
+ }
351
+ }
352
+ catch (error) {
353
+ lines.push(`latest unavailable: ${error instanceof Error ? error.message : String(error)}`);
354
+ }
355
+ return lines.join("\n");
356
+ }
357
+ async function fetchLatestVersion(context) {
358
+ const response = await context.fetch(`https://registry.npmjs.org/${encodeURIComponent(packageJson.name)}/latest`);
359
+ if (!response.ok) {
360
+ throw new Error(`npm registry returned HTTP ${response.status}`);
361
+ }
362
+ const metadata = await response.json();
363
+ if (!isPackageMetadata(metadata)) {
364
+ throw new Error("npm registry response did not include a version");
365
+ }
366
+ return metadata.version;
367
+ }
368
+ function isPackageMetadata(value) {
369
+ return (typeof value === "object" &&
370
+ value !== null &&
371
+ "version" in value &&
372
+ typeof value.version === "string");
373
+ }
374
+ function compareSemver(left, right) {
375
+ const leftParts = parseSemver(left);
376
+ const rightParts = parseSemver(right);
377
+ for (let index = 0; index < leftParts.length; index += 1) {
378
+ if (leftParts[index] > rightParts[index]) {
379
+ return 1;
380
+ }
381
+ if (leftParts[index] < rightParts[index]) {
382
+ return -1;
383
+ }
384
+ }
385
+ return 0;
386
+ }
387
+ function parseSemver(version) {
388
+ const [major = "0", minor = "0", patch = "0"] = version.split("-", 1)[0].split(".");
389
+ return [Number(major) || 0, Number(minor) || 0, Number(patch) || 0];
390
+ }
193
391
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function readCliTextAsset(assetKey: string, fileUrl: URL): Promise<string>;
2
+ //# sourceMappingURL=sea-assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sea-assets.d.ts","sourceRoot":"","sources":["../src/sea-assets.ts"],"names":[],"mappings":"AAGA,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtF"}
@@ -0,0 +1,9 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { isSea, getAsset } from "node:sea";
3
+ export async function readCliTextAsset(assetKey, fileUrl) {
4
+ if (isSea()) {
5
+ return getAsset(assetKey, "utf8");
6
+ }
7
+ return readFile(fileUrl, "utf8");
8
+ }
9
+ //# sourceMappingURL=sea-assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sea-assets.js","sourceRoot":"","sources":["../src/sea-assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,OAAY;IACjE,IAAI,KAAK,EAAE,EAAE,CAAC;QACV,OAAO,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAW,CAAC;IAChD,CAAC;IAED,OAAO,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -4,6 +4,7 @@ export interface InstanceConfig {
4
4
  url: string;
5
5
  clientUrl?: string;
6
6
  composeFile?: string;
7
+ composeFiles?: string[];
7
8
  envFile?: string;
8
9
  projectName?: string;
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1C,KAAK,EAAE,OAAO,KAAK,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClF,EAAE,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CAC3C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1C,KAAK,EAAE,OAAO,KAAK,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClF,EAAE,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CAC3C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eudiplo/cli",
3
- "version": "0.1.3",
3
+ "version": "6.1.0-main.5a67231",
4
4
  "description": "Deployment-aware command line tools for EUDIPLO",
5
5
  "private": false,
6
6
  "type": "module",
@@ -15,6 +15,8 @@
15
15
  "scripts": {
16
16
  "assets:check": "node ../../scripts/check-cli-assets.js",
17
17
  "build": "pnpm assets:check && tsc -p tsconfig.json",
18
+ "build:sea:bundle": "esbuild src/index.ts --bundle --platform=node --format=esm --target=node22 --outfile=dist-sea/index.js",
19
+ "build:sea": "node ../../scripts/build-cli-sea.mjs",
18
20
  "dev": "tsx src/index.ts",
19
21
  "test": "vitest run",
20
22
  "lint": "biome lint .",
@@ -48,8 +50,9 @@
48
50
  "devDependencies": {
49
51
  "@biomejs/biome": "2.5.3",
50
52
  "@types/node": "^26.0.1",
53
+ "esbuild": "^0.25.12",
51
54
  "tsx": "^4.22.4",
52
55
  "typescript": "^6.0.3",
53
56
  "vitest": "4.1.10"
54
57
  }
55
- }
58
+ }