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.
- package/README.md +7 -3
- package/lib/buzz.mjs +3 -0
- package/lib/buzz.test.mjs +33 -0
- package/lib/functions.mjs +61 -14
- package/lib/identity.mjs +10 -3
- package/package.json +1 -1
- package/sdk/dist/app-up.d.ts.map +1 -1
- package/sdk/dist/app-up.js +33 -0
- package/sdk/dist/app-up.js.map +1 -1
- package/sdk/dist/namespaces/buzz.types.d.ts +38 -2
- package/sdk/dist/namespaces/buzz.types.d.ts.map +1 -1
- package/sdk/dist/namespaces/identity-links.types.d.ts +34 -4
- package/sdk/dist/namespaces/identity-links.types.d.ts.map +1 -1
- package/sdk/dist/node/actions-node.d.ts.map +1 -1
- package/sdk/dist/node/actions-node.js +74 -34
- package/sdk/dist/node/actions-node.js.map +1 -1
|
@@ -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;
|
|
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
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
...
|
|
477
|
-
|
|
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
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
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
|
|
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
|
|
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
|
|
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 } : {}) }
|