run402 4.17.7 → 4.17.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"identity-links.types.d.ts","sourceRoot":"","sources":["../../src/namespaces/identity-links.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity-links.types.d.ts","sourceRoot":"","sources":["../../src/namespaces/identity-links.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"actions-node.d.ts","sourceRoot":"","sources":["../../src/node/actions-node.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAIV,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EAGb,kCAAkC,EAClC,wBAAwB,EACxB,mBAAmB,EACnB,cAAc,EAEf,MAAM,eAAe,CAAC;AAmBvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAS1C,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,KAAK,EAAY,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGrE,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAmKD;;;GAGG;AACH,qBAAa,WAAY,YAAW,aAAa;;IAE7C,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,kBAAuB;IAG1C,GAAG,CACP,KAAK,EAAE,kCAAkC,EACzC,IAAI,CAAC,EAAE,sBAAsB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACzC,GAAG,CACP,KAAK,EAAE,wBAAwB,EAC/B,IAAI,CAAC,EAAE,sBAAsB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACvC,GAAG,CACP,KAAK,EAAE,mBAAmB,EAC1B,IAAI,CAAC,EAAE,sBAAsB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAmCxC,EAAE,CACN,KAAK,GAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAM,EAC7C,IAAI,CAAC,EAAE,sBAAsB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;CA84D/C"}
1
+ {"version":3,"file":"actions-node.d.ts","sourceRoot":"","sources":["../../src/node/actions-node.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAIV,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EAGb,kCAAkC,EAClC,wBAAwB,EACxB,mBAAmB,EACnB,cAAc,EAEf,MAAM,eAAe,CAAC;AAoBvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAS1C,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,KAAK,EAAY,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGrE,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAmKD;;;GAGG;AACH,qBAAa,WAAY,YAAW,aAAa;;IAE7C,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,kBAAuB;IAG1C,GAAG,CACP,KAAK,EAAE,kCAAkC,EACzC,IAAI,CAAC,EAAE,sBAAsB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACzC,GAAG,CACP,KAAK,EAAE,wBAAwB,EAC/B,IAAI,CAAC,EAAE,sBAAsB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACvC,GAAG,CACP,KAAK,EAAE,mBAAmB,EAC1B,IAAI,CAAC,EAAE,sBAAsB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAmCxC,EAAE,CACN,KAAK,GAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAM,EAC7C,IAAI,CAAC,EAAE,sBAAsB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;CAy6D/C"}
@@ -6,7 +6,7 @@ import { basename, dirname, isAbsolute, join, relative, resolve as resolvePath }
6
6
  import { setTimeout as delay } from "node:timers/promises";
7
7
  import { promisify } from "node:util";
8
8
  import { Run402Action } from "../actions.js";
9
- import { RUN402_APP_MANIFEST_FILENAME, compileRun402AppInstallGraph, createRun402AppUpResult, } from "../app-up.js";
9
+ import { RUN402_APP_SCHEMA_ID, RUN402_APP_MANIFEST_FILENAME, compileRun402AppInstallGraph, createRun402AppUpResult, } from "../app-up.js";
10
10
  import { LocalError } from "../errors.js";
11
11
  import { loadDeployManifest, normalizeDeployManifest } from "./deploy-manifest.js";
12
12
  function deployEventDetails(event) {
@@ -468,37 +468,64 @@ export class NodeActions {
468
468
  });
469
469
  }
470
470
  if (basename(manifestPath) === RUN402_APP_MANIFEST_FILENAME) {
471
- const loadedAppSpec = await loadRun402AppManifest(manifestPath);
472
- const appSpec = input.buildMode
473
- ? {
474
- ...loadedAppSpec,
475
- build: {
476
- ...(loadedAppSpec.build ?? {}),
477
- mode: input.buildMode,
478
- },
471
+ const candidate = await loadRun402JsonManifest(manifestPath);
472
+ if (looksLikeRun402AppManifest(candidate)) {
473
+ const loadedAppSpec = candidate;
474
+ const appSpec = input.buildMode
475
+ ? {
476
+ ...loadedAppSpec,
477
+ build: {
478
+ ...(loadedAppSpec.build ?? {}),
479
+ mode: input.buildMode,
480
+ },
481
+ }
482
+ : loadedAppSpec;
483
+ let appGraph;
484
+ try {
485
+ appGraph = await compileRun402AppInstallGraph(appSpec, {
486
+ source,
487
+ ...(input.name ? { name: input.name } : {}),
488
+ ...(input.idempotencyKey ?? run.rootIdempotencyKey
489
+ ? { root_idempotency_key: input.idempotencyKey ?? run.rootIdempotencyKey }
490
+ : {}),
491
+ });
479
492
  }
480
- : loadedAppSpec;
481
- const appGraph = await compileRun402AppInstallGraph(appSpec, {
482
- source,
483
- ...(input.name ? { name: input.name } : {}),
484
- ...(input.idempotencyKey ?? run.rootIdempotencyKey
485
- ? { root_idempotency_key: input.idempotencyKey ?? run.rootIdempotencyKey }
486
- : {}),
487
- });
488
- run.setState(step, "succeeded", {
489
- manifest_kind: "app",
490
- manifest_path: manifestPath,
491
- app_id: appSpec.app.id,
492
- graph_digest: appGraph.graph_digest,
493
- });
494
- return {
495
- manifestKind: "app",
496
- manifestPath,
497
- releaseSpec: null,
498
- appGraph,
499
- appSpec,
500
- source,
501
- };
493
+ catch (err) {
494
+ if (err instanceof LocalError && err.code === "APP_SPEC_INVALID") {
495
+ const errorDetails = err.details && typeof err.details === "object" && !Array.isArray(err.details)
496
+ ? err.details
497
+ : {};
498
+ throw new LocalError(err.message, "validating Run402 app manifest", {
499
+ cause: err,
500
+ code: "APP_SPEC_INVALID",
501
+ details: { manifest_path: manifestPath, ...errorDetails },
502
+ next_actions: [{
503
+ type: "edit_manifest",
504
+ path: manifestPath,
505
+ ...(typeof errorDetails.field_path === "string" ? { field_path: errorDetails.field_path } : {}),
506
+ command: `run402 up --manifest ${shellArg(shortPath(manifestPath))} --check`,
507
+ argv: ["run402", "up", "--manifest", manifestPath, "--check"],
508
+ why: "Fix the named app-manifest field, then rerun local validation.",
509
+ }],
510
+ });
511
+ }
512
+ throw err;
513
+ }
514
+ run.setState(step, "succeeded", {
515
+ manifest_kind: "app",
516
+ manifest_path: manifestPath,
517
+ app_id: appSpec.app.id,
518
+ graph_digest: appGraph.graph_digest,
519
+ });
520
+ return {
521
+ manifestKind: "app",
522
+ manifestPath,
523
+ releaseSpec: null,
524
+ appGraph,
525
+ appSpec,
526
+ source,
527
+ };
528
+ }
502
529
  }
503
530
  const loaded = await loadDeployManifest(manifestPath, {
504
531
  ...(input.projectId
@@ -509,6 +536,7 @@ export class NodeActions {
509
536
  throw run.error("Deploy manifest contains no deployable sections.", "MANIFEST_EMPTY", { manifest_path: manifestPath });
510
537
  }
511
538
  run.setState(step, "succeeded", {
539
+ manifest_kind: "release",
512
540
  manifest_path: manifestPath,
513
541
  project_id: loaded.spec.project,
514
542
  idempotency_key: loaded.idempotencyKey ?? null,
@@ -2369,24 +2397,36 @@ async function findExecutableManifest(workspaceDir) {
2369
2397
  }
2370
2398
  return null;
2371
2399
  }
2372
- async function loadRun402AppManifest(path) {
2400
+ async function loadRun402JsonManifest(path) {
2373
2401
  let raw;
2374
2402
  try {
2375
2403
  raw = await readFile(path, "utf-8");
2376
2404
  }
2377
2405
  catch (err) {
2378
- throw new LocalError(`Failed to read Run402 app manifest '${path}': ${err.message}`, "loading Run402 app manifest", err);
2406
+ throw new LocalError(`Failed to read Run402 manifest '${path}': ${err.message}`, "loading Run402 manifest", err);
2379
2407
  }
2380
2408
  try {
2381
2409
  return JSON.parse(raw);
2382
2410
  }
2383
2411
  catch (err) {
2384
- throw new LocalError(`Run402 app manifest is not valid JSON: ${err.message}`, "parsing Run402 app manifest", {
2412
+ throw new LocalError(`Run402 manifest is not valid JSON: ${err.message}`, "parsing Run402 manifest", {
2385
2413
  code: "APP_SPEC_INVALID",
2386
2414
  details: { path },
2387
2415
  });
2388
2416
  }
2389
2417
  }
2418
+ function looksLikeRun402AppManifest(value) {
2419
+ if (!value || typeof value !== "object" || Array.isArray(value))
2420
+ return false;
2421
+ const candidate = value;
2422
+ return candidate.$schema === RUN402_APP_SCHEMA_ID ||
2423
+ "spec_version" in candidate ||
2424
+ "app" in candidate ||
2425
+ "release" in candidate ||
2426
+ "resources" in candidate ||
2427
+ "build" in candidate ||
2428
+ "lifecycle" in candidate;
2429
+ }
2390
2430
  function reviewedPlanRequirement(mode) {
2391
2431
  return typeof mode === "object" && mode.kind === "applyReviewed"
2392
2432
  ? { planId: mode.planId, ...(mode.planFingerprint ? { planFingerprint: mode.planFingerprint } : {}) }