@eudiplo/cli 9.0.0 → 9.1.0-main.b08ff89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/commands/config/portability/migrations.spec.js +3 -2
  2. package/dist/commands/config/portability/migrations.spec.js.map +1 -1
  3. package/dist/commands/config/validate/index.d.ts.map +1 -1
  4. package/dist/commands/config/validate/index.js +2 -2
  5. package/dist/commands/config/validate/index.js.map +1 -1
  6. package/dist/commands/deployment/index.d.ts.map +1 -1
  7. package/dist/commands/deployment/index.js +8 -3
  8. package/dist/commands/deployment/index.js.map +1 -1
  9. package/dist/commands/deployment/pass-through.d.ts +15 -0
  10. package/dist/commands/deployment/pass-through.d.ts.map +1 -0
  11. package/dist/commands/deployment/pass-through.js +52 -0
  12. package/dist/commands/deployment/pass-through.js.map +1 -0
  13. package/dist/commands/upgrade/action.d.ts.map +1 -1
  14. package/dist/commands/upgrade/action.js +5 -2
  15. package/dist/commands/upgrade/action.js.map +1 -1
  16. package/dist/index.js +930 -140
  17. package/dist/services/compose-args.d.ts +1 -1
  18. package/dist/services/compose-args.d.ts.map +1 -1
  19. package/dist/services/compose-args.js +4 -2
  20. package/dist/services/compose-args.js.map +1 -1
  21. package/dist/services/compose-upgrade.d.ts +2 -0
  22. package/dist/services/compose-upgrade.d.ts.map +1 -1
  23. package/dist/services/compose-upgrade.js +5 -0
  24. package/dist/services/compose-upgrade.js.map +1 -1
  25. package/dist/services/container-state.d.ts +4 -1
  26. package/dist/services/container-state.d.ts.map +1 -1
  27. package/dist/services/container-state.js +21 -8
  28. package/dist/services/container-state.js.map +1 -1
  29. package/dist/services/diagnostics.d.ts.map +1 -1
  30. package/dist/services/diagnostics.js +10 -0
  31. package/dist/services/diagnostics.js.map +1 -1
  32. package/package.json +5 -5
  33. package/templates/demo-config/presentation/pid.json +1 -2
  34. package/templates/demo-config.manifest.json +1 -3
  35. package/templates/docker-compose.yml +11 -6
  36. package/templates/schemas/IssuanceConfig.schema.json +20 -0
  37. package/templates/schemas/IssuanceConfigFile.schema.json +676 -1
  38. package/templates/demo-config/attribute-providers/claims-provider.json +0 -15
  39. package/templates/demo-config/webhook-endpoints/notification.json +0 -15
@@ -1,7 +1,7 @@
1
1
  import { describe, expect, it } from "vitest";
2
2
  import { upgradeDocument } from "./migrations.js";
3
3
  describe("offline configuration migrations", () => {
4
- it("upgrades a v1 issuance document to v2 without retaining metadata.id", () => {
4
+ it("upgrades a v1 issuance document to v3 without retaining metadata.id", () => {
5
5
  const result = upgradeDocument({
6
6
  $schema: "https://eudiplo.dev/schemas/v1/IssuanceConfigFile.schema.json",
7
7
  metadata: { generation: 1 },
@@ -12,12 +12,13 @@ describe("offline configuration migrations", () => {
12
12
  ],
13
13
  },
14
14
  });
15
- expect(result.document.$schema).toBe("https://eudiplo.dev/schemas/v2/IssuanceConfigFile.schema.json");
15
+ expect(result.document.$schema).toBe("https://eudiplo.dev/schemas/v3/IssuanceConfigFile.schema.json");
16
16
  expect(result.document.spec.walletProviderTrustLists).toEqual([
17
17
  { url: "https://example.com/trust-list" },
18
18
  ]);
19
19
  expect(result.migrations).toEqual([
20
20
  "issuance-config-v2-offer-lifetime",
21
+ "issuance-config-v3-trust-list-verifier-pem",
21
22
  ]);
22
23
  expect(result.issues).toEqual([]);
23
24
  });
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.spec.js","sourceRoot":"","sources":["../../../../src/commands/config/portability/migrations.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC3E,MAAM,MAAM,GAAG,eAAe,CAAC;YAC3B,OAAO,EACH,+DAA+D;YACnE,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;YAC3B,IAAI,EAAE;gBACF,oBAAoB,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;gBAC1D,wBAAwB,EAAE;oBACtB,EAAE,GAAG,EAAE,gCAAgC,EAAE;iBAC5C;aACJ;SACJ,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAChC,+DAA+D,CAClE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC;YAC1D,EAAE,GAAG,EAAE,gCAAgC,EAAE;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAC9B,mCAAmC;SACtC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,GAAG,EAAE,CACR,eAAe,CAAC;YACZ,OAAO,EACH,oEAAoE;YACxE,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,EAAE;SACX,CAAC,CACL,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"migrations.spec.js","sourceRoot":"","sources":["../../../../src/commands/config/portability/migrations.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC3E,MAAM,MAAM,GAAG,eAAe,CAAC;YAC3B,OAAO,EACH,+DAA+D;YACnE,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;YAC3B,IAAI,EAAE;gBACF,oBAAoB,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;gBAC1D,wBAAwB,EAAE;oBACtB,EAAE,GAAG,EAAE,gCAAgC,EAAE;iBAC5C;aACJ;SACJ,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAChC,+DAA+D,CAClE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC;YAC1D,EAAE,GAAG,EAAE,gCAAgC,EAAE;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAC9B,mCAAmC;YACnC,4CAA4C;SAC/C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,GAAG,EAAE,CACR,eAAe,CAAC;YACZ,OAAO,EACH,oEAAoE;YACxE,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,EAAE;SACX,CAAC,CACL,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/validate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG7E,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW,GACzB,OAAO,CAwBT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/validate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG7E,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW,GACzB,OAAO,CA2BT"}
@@ -4,8 +4,8 @@ import { runValidate } from "./action.js";
4
4
  export function createValidateCommand(context, setExitCode) {
5
5
  return new Command("validate")
6
6
  .description("Validate CLI or tenant config-import files")
7
- .argument("[scope]")
8
- .argument("[path]")
7
+ .argument("[scope]", '"tenant" for one tenant folder or "tenants" for a folder of tenant folders; omit it to validate the CLI config file')
8
+ .argument("[path]", "the folder to validate (required with a scope)")
9
9
  .addOption(new Option("--format <text|json>", "tenant report format")
10
10
  .choices(["text", "json"])
11
11
  .default("text"))
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/config/validate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAoB,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,qBAAqB,CACjC,OAAuB,EACvB,WAAwB;IAExB,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;SACzB,WAAW,CAAC,4CAA4C,CAAC;SACzD,QAAQ,CAAC,SAAS,CAAC;SACnB,QAAQ,CAAC,QAAQ,CAAC;SAClB,SAAS,CACN,IAAI,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;SACrD,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACzB,OAAO,CAAC,MAAM,CAAC,CACvB;SACA,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CACpC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACxD,CAAC;QACF,WAAW,CACP,MAAM,WAAW,CACb,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,MAAM,EACZ,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,EACtD,OAAO,CACV,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/config/validate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAoB,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,qBAAqB,CACjC,OAAuB,EACvB,WAAwB;IAExB,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;SACzB,WAAW,CAAC,4CAA4C,CAAC;SACzD,QAAQ,CACL,SAAS,EACT,qHAAqH,CACxH;SACA,QAAQ,CAAC,QAAQ,EAAE,gDAAgD,CAAC;SACpE,SAAS,CACN,IAAI,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;SACrD,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACzB,OAAO,CAAC,MAAM,CAAC,CACvB;SACA,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CACpC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACxD,CAAC;QACF,WAAW,CACP,MAAM,WAAW,CACb,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,MAAM,EACZ,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,EACtD,OAAO,CACV,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/deployment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAqB1E,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW,GACzB,OAAO,EAAE,CA4CX"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/deployment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAsB1E,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW,GACzB,OAAO,EAAE,CAgDX"}
@@ -1,10 +1,11 @@
1
1
  import { Command } from "commander";
2
2
  import { loadCliState, parsedArgs } from "../shared.js";
3
3
  import { runDriverCommand } from "./action.js";
4
+ import { runtimeArguments } from "./pass-through.js";
4
5
  const descriptions = {
5
6
  up: "Start the selected Compose deployment",
6
7
  down: "Stop the selected Compose deployment",
7
- logs: "Stream logs for the selected deployment",
8
+ logs: "Print the logs of the selected deployment, or stream them with --follow",
8
9
  ps: "List the running containers or pods for the selected deployment",
9
10
  restart: "Restart the workloads of the selected deployment",
10
11
  pull: "Download the configured images without changing configuration",
@@ -19,7 +20,10 @@ export function createDeploymentCommands(context, setExitCode) {
19
20
  return ["up", "down", "logs", "ps", "restart", "pull"].map((name) => {
20
21
  const command = new Command(name)
21
22
  .description(descriptions[name])
22
- .argument("[args...]", "additional arguments passed to the deployment runtime")
23
+ .argument("[args...]", "additional arguments and options passed to the deployment runtime")
24
+ // Options this command does not define belong to Compose or
25
+ // kubectl; runtimeArguments still rejects misspelled ones.
26
+ .allowUnknownOption()
23
27
  .option("--instance <name>", "select a configured instance");
24
28
  if (serviceScoped.has(name)) {
25
29
  command.option("--service <name>", "select a single service (Compose) or configured workload (Kubernetes)");
@@ -34,8 +38,9 @@ export function createDeploymentCommands(context, setExitCode) {
34
38
  command.option("--no-wait", "return without waiting for the rollout to finish (Kubernetes instances)");
35
39
  }
36
40
  return command.action(async (args, options) => {
41
+ const runtimeArgs = runtimeArguments(command, args);
37
42
  const { config } = await loadCliState(context);
38
- setExitCode(await runDriverCommand(config, name, parsedArgs(name, undefined, args, options), context));
43
+ setExitCode(await runDriverCommand(config, name, parsedArgs(name, undefined, runtimeArgs, options), context));
39
44
  });
40
45
  });
41
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/deployment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAoB,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAI/C,MAAM,YAAY,GAAkC;IAChD,EAAE,EAAE,uCAAuC;IAC3C,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,yCAAyC;IAC/C,EAAE,EAAE,iEAAiE;IACrE,OAAO,EAAE,kDAAkD;IAC3D,IAAI,EAAE,+DAA+D;CACxE,CAAC;AAEF,2EAA2E;AAC3E,MAAM,aAAa,GAA+B,IAAI,GAAG,CAAC;IACtD,MAAM;IACN,SAAS;IACT,MAAM;CACT,CAAC,CAAC;AAEH,MAAM,UAAU,wBAAwB,CACpC,OAAuB,EACvB,WAAwB;IAExB,OAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAW,CAAC,GAAG,CACjE,CAAC,IAAI,EAAE,EAAE;QACL,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;aAC5B,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aAC/B,QAAQ,CACL,WAAW,EACX,uDAAuD,CAC1D;aACA,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC,CAAC;QACjE,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CACV,kBAAkB,EAClB,uEAAuE,CAC1E,CAAC;QACN,CAAC;QACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAClB,OAAO;iBACF,MAAM,CAAC,UAAU,EAAE,iCAAiC,CAAC;iBACrD,MAAM,CAAC,gBAAgB,EAAE,gCAAgC,CAAC;iBAC1D,MAAM,CACH,gBAAgB,EAChB,uEAAuE,CAC1E,CAAC;QACV,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CACV,WAAW,EACX,yEAAyE,CAC5E,CAAC;QACN,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;YAC/C,WAAW,CACP,MAAM,gBAAgB,CAClB,MAAM,EACN,IAAI,EACJ,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,EAC1C,OAAO,CACV,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/deployment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAoB,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIrD,MAAM,YAAY,GAAkC;IAChD,EAAE,EAAE,uCAAuC;IAC3C,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,yEAAyE;IAC/E,EAAE,EAAE,iEAAiE;IACrE,OAAO,EAAE,kDAAkD;IAC3D,IAAI,EAAE,+DAA+D;CACxE,CAAC;AAEF,2EAA2E;AAC3E,MAAM,aAAa,GAA+B,IAAI,GAAG,CAAC;IACtD,MAAM;IACN,SAAS;IACT,MAAM;CACT,CAAC,CAAC;AAEH,MAAM,UAAU,wBAAwB,CACpC,OAAuB,EACvB,WAAwB;IAExB,OAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAW,CAAC,GAAG,CACjE,CAAC,IAAI,EAAE,EAAE;QACL,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;aAC5B,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aAC/B,QAAQ,CACL,WAAW,EACX,mEAAmE,CACtE;YACD,4DAA4D;YAC5D,2DAA2D;aAC1D,kBAAkB,EAAE;aACpB,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC,CAAC;QACjE,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CACV,kBAAkB,EAClB,uEAAuE,CAC1E,CAAC;QACN,CAAC;QACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAClB,OAAO;iBACF,MAAM,CAAC,UAAU,EAAE,iCAAiC,CAAC;iBACrD,MAAM,CAAC,gBAAgB,EAAE,gCAAgC,CAAC;iBAC1D,MAAM,CACH,gBAAgB,EAChB,uEAAuE,CAC1E,CAAC;QACV,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CACV,WAAW,EACX,yEAAyE,CAC5E,CAAC;QACN,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC1C,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;YAC/C,WAAW,CACP,MAAM,gBAAgB,CAClB,MAAM,EACN,IAAI,EACJ,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,EACjD,OAAO,CACV,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { Command } from "commander";
2
+ /**
3
+ * The driver commands pass the options they do not define to Compose or
4
+ * kubectl, as in `eudiplo down --volumes`. Commander then no longer rejects a
5
+ * misspelled option of the command itself, which would reach the runtime
6
+ * while the command acts on the default instance. An unknown option within
7
+ * two edits of one of the command's options is rejected here instead, with
8
+ * the message Commander gives for unknown options of other commands. No
9
+ * Compose or kubectl flag is that close to an option of these commands.
10
+ *
11
+ * Commander drops a leading "--" but keeps one that follows an unknown
12
+ * option. That one is dropped here, so "--" never reaches the runtime.
13
+ */
14
+ export declare function runtimeArguments(command: Command, args: string[]): string[];
15
+ //# sourceMappingURL=pass-through.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pass-through.d.ts","sourceRoot":"","sources":["../../../src/commands/deployment/pass-through.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAyB3E"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * The driver commands pass the options they do not define to Compose or
3
+ * kubectl, as in `eudiplo down --volumes`. Commander then no longer rejects a
4
+ * misspelled option of the command itself, which would reach the runtime
5
+ * while the command acts on the default instance. An unknown option within
6
+ * two edits of one of the command's options is rejected here instead, with
7
+ * the message Commander gives for unknown options of other commands. No
8
+ * Compose or kubectl flag is that close to an option of these commands.
9
+ *
10
+ * Commander drops a leading "--" but keeps one that follows an unknown
11
+ * option. That one is dropped here, so "--" never reaches the runtime.
12
+ */
13
+ export function runtimeArguments(command, args) {
14
+ const options = command.options.flatMap((option) => option.long ?? []);
15
+ for (const arg of args) {
16
+ if (!arg.startsWith("--") || arg === "--") {
17
+ continue;
18
+ }
19
+ const flag = arg.split("=", 1)[0];
20
+ const similar = options.filter((option) => option !== flag && editDistance(flag, option) <= 2);
21
+ if (similar.length > 0) {
22
+ const suggestion = similar.length === 1
23
+ ? similar[0]
24
+ : `one of ${similar.join(", ")}`;
25
+ command.error(`error: unknown option '${arg}'\n(Did you mean ${suggestion}?)`, { code: "commander.unknownOption" });
26
+ }
27
+ }
28
+ const separator = args.indexOf("--");
29
+ return separator === -1
30
+ ? args
31
+ : [...args.slice(0, separator), ...args.slice(separator + 1)];
32
+ }
33
+ /**
34
+ * Optimal string alignment distance: insertions, deletions, substitutions
35
+ * and swaps of adjacent characters, as in Commander's own suggestions.
36
+ */
37
+ function editDistance(a, b) {
38
+ const distances = Array.from({ length: a.length + 1 }, (_, i) => Array.from({ length: b.length + 1 }, (_, j) => Math.max(i, j)));
39
+ for (let i = 1; i <= a.length; i++) {
40
+ for (let j = 1; j <= b.length; j++) {
41
+ distances[i][j] = Math.min(distances[i - 1][j] + 1, distances[i][j - 1] + 1, distances[i - 1][j - 1] + (a[i - 1] === b[j - 1] ? 0 : 1));
42
+ if (i > 1 &&
43
+ j > 1 &&
44
+ a[i - 1] === b[j - 2] &&
45
+ a[i - 2] === b[j - 1]) {
46
+ distances[i][j] = Math.min(distances[i][j], distances[i - 2][j - 2] + 1);
47
+ }
48
+ }
49
+ }
50
+ return distances[a.length][b.length];
51
+ }
52
+ //# sourceMappingURL=pass-through.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pass-through.js","sourceRoot":"","sources":["../../../src/commands/deployment/pass-through.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/commands/upgrade/action.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACR,SAAS,EACT,cAAc,EAEd,UAAU,EACb,MAAM,gBAAgB,CAAC;AAGxB,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC,CAiFjB"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/commands/upgrade/action.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACR,SAAS,EACT,cAAc,EAEd,UAAU,EACb,MAAM,gBAAgB,CAAC;AAGxB,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC,CAyFjB"}
@@ -2,7 +2,7 @@ import { readFile, writeFile } from "node:fs/promises";
2
2
  import { resolve } from "node:path";
3
3
  import { readStringFlag } from "../../options.js";
4
4
  import { buildComposePullArgs, buildComposeUpArgs, } from "../../services/compose-args.js";
5
- import { migrationNotes, planImageUpgrade, } from "../../services/compose-upgrade.js";
5
+ import { managedServices, migrationNotes, planImageUpgrade, } from "../../services/compose-upgrade.js";
6
6
  import { assertWritable, runCompose, unsupportedCommand, } from "../../services/deployment-drivers.js";
7
7
  import { resolveInstance } from "../../services/instance-selection.js";
8
8
  import { createPrompter } from "../shared.js";
@@ -49,7 +49,10 @@ export async function runUpgradeCommand(config, parsed, context) {
49
49
  }
50
50
  // Writing to the existing path keeps its owner-only permissions.
51
51
  await writeFile(envPath, plan.content, "utf8");
52
- const pulled = await runCompose(buildComposePullArgs(undefined), options);
52
+ // Pull only the images this upgrade changes. The other services keep
53
+ // their images, and a registry that stopped serving one of them (MinIO's
54
+ // images now need a login) must not block the upgrade.
55
+ const pulled = await runCompose(buildComposePullArgs(plan.changes.map((change) => managedServices[change.key])), options);
53
56
  if (pulled !== 0) {
54
57
  await writeFile(envPath, original, "utf8");
55
58
  context.stderr.write(`Pulling the new images failed. Restored the previous image tags in ${envPath}.\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/commands/upgrade/action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/commands/upgrade/action.ts"],"names":[],"mappings":"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"}