@sdd-method/sdd-cli 1.40.0 → 1.42.0
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/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/api-surface/index.js +2 -2
- package/dist/lib/api-surface/index.js.map +1 -1
- package/dist/lib/catalogue/build.d.ts.map +1 -1
- package/dist/lib/catalogue/build.js +6 -0
- package/dist/lib/catalogue/build.js.map +1 -1
- package/dist/lib/catalogue/builders/integration-components.js +3 -3
- package/dist/lib/catalogue/builders/integrations.d.ts +2 -0
- package/dist/lib/catalogue/builders/integrations.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/integrations.js +3 -0
- package/dist/lib/catalogue/builders/integrations.js.map +1 -1
- package/dist/lib/catalogue/builders/products.d.ts +6 -0
- package/dist/lib/catalogue/builders/products.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/products.js +9 -2
- package/dist/lib/catalogue/builders/products.js.map +1 -1
- package/dist/lib/catalogue/builders/repo-dependency.d.ts +12 -0
- package/dist/lib/catalogue/builders/repo-dependency.d.ts.map +1 -0
- package/dist/lib/catalogue/builders/repo-dependency.js +127 -0
- package/dist/lib/catalogue/builders/repo-dependency.js.map +1 -0
- package/dist/lib/catalogue/builders/repositories.d.ts +1 -0
- package/dist/lib/catalogue/builders/repositories.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/repositories.js +4 -0
- package/dist/lib/catalogue/builders/repositories.js.map +1 -1
- package/dist/lib/catalogue/canonical-schema.yaml +66 -1
- package/dist/lib/catalogue/cli-version.d.ts +1 -1
- package/dist/lib/catalogue/cli-version.d.ts.map +1 -1
- package/dist/lib/catalogue/cli-version.js +3 -3
- package/dist/lib/catalogue/cli-version.js.map +1 -1
- package/dist/lib/catalogue/freshness.d.ts +26 -0
- package/dist/lib/catalogue/freshness.d.ts.map +1 -0
- package/dist/lib/catalogue/freshness.js +69 -0
- package/dist/lib/catalogue/freshness.js.map +1 -0
- package/dist/lib/catalogue/graph-run.js +1 -1
- package/dist/lib/catalogue/graph-run.js.map +1 -1
- package/dist/lib/catalogue/manifest-loader.d.ts +2 -0
- package/dist/lib/catalogue/manifest-loader.d.ts.map +1 -1
- package/dist/lib/catalogue/manifest-loader.js +4 -0
- package/dist/lib/catalogue/manifest-loader.js.map +1 -1
- package/dist/lib/catalogue/rubric-coverage-map.yaml +10 -0
- package/dist/lib/ci-binding/index.d.ts +63 -0
- package/dist/lib/ci-binding/index.d.ts.map +1 -0
- package/dist/lib/ci-binding/index.js +220 -0
- package/dist/lib/ci-binding/index.js.map +1 -0
- package/dist/lib/ci-binding/module.d.ts +36 -0
- package/dist/lib/ci-binding/module.d.ts.map +1 -0
- package/dist/lib/ci-binding/module.js +204 -0
- package/dist/lib/ci-binding/module.js.map +1 -0
- package/dist/lib/context-pull/index.d.ts +39 -0
- package/dist/lib/context-pull/index.d.ts.map +1 -0
- package/dist/lib/context-pull/index.js +151 -0
- package/dist/lib/context-pull/index.js.map +1 -0
- package/dist/lib/context-pull/resolve.d.ts +46 -0
- package/dist/lib/context-pull/resolve.d.ts.map +1 -0
- package/dist/lib/context-pull/resolve.js +70 -0
- package/dist/lib/context-pull/resolve.js.map +1 -0
- package/dist/lib/init/app.d.ts.map +1 -1
- package/dist/lib/init/app.js +3 -0
- package/dist/lib/init/app.js.map +1 -1
- package/dist/lib/init/ci-workflow.d.ts +6 -8
- package/dist/lib/init/ci-workflow.d.ts.map +1 -1
- package/dist/lib/init/ci-workflow.js +69 -122
- package/dist/lib/init/ci-workflow.js.map +1 -1
- package/dist/lib/init/integration.d.ts.map +1 -1
- package/dist/lib/init/integration.js +3 -0
- package/dist/lib/init/integration.js.map +1 -1
- package/dist/lib/init/platform.d.ts.map +1 -1
- package/dist/lib/init/platform.js +6 -2
- package/dist/lib/init/platform.js.map +1 -1
- package/dist/lib/lock-file.d.ts +20 -0
- package/dist/lib/lock-file.d.ts.map +1 -1
- package/dist/lib/lock-file.js +25 -1
- package/dist/lib/lock-file.js.map +1 -1
- package/dist/lib/mcp/build-info.d.ts.map +1 -1
- package/dist/lib/mcp/build-info.js +3 -3
- package/dist/lib/mcp/build-info.js.map +1 -1
- package/dist/lib/pack/index.js +2 -2
- package/dist/lib/pack/index.js.map +1 -1
- package/dist/lib/pack/validate.js +2 -2
- package/dist/lib/pack/validate.js.map +1 -1
- package/dist/lib/package-version.d.ts +24 -0
- package/dist/lib/package-version.d.ts.map +1 -1
- package/dist/lib/package-version.js +68 -1
- package/dist/lib/package-version.js.map +1 -1
- package/dist/lib/sync/index.d.ts +13 -0
- package/dist/lib/sync/index.d.ts.map +1 -1
- package/dist/lib/sync/index.js +69 -46
- package/dist/lib/sync/index.js.map +1 -1
- package/dist/lib/validate/bundle-coherence.js +2 -2
- package/dist/lib/validate/bundle-coherence.js.map +1 -1
- package/dist/lib/validate/plan.d.ts +25 -0
- package/dist/lib/validate/plan.d.ts.map +1 -0
- package/dist/lib/validate/plan.js +54 -0
- package/dist/lib/validate/plan.js.map +1 -0
- package/dist/maintain-bin.d.ts +3 -0
- package/dist/maintain-bin.d.ts.map +1 -0
- package/dist/maintain-bin.js +8 -0
- package/dist/maintain-bin.js.map +1 -0
- package/dist/maintain-program.d.ts +8 -0
- package/dist/maintain-program.d.ts.map +1 -0
- package/dist/maintain-program.js +91 -0
- package/dist/maintain-program.js.map +1 -0
- package/dist/maintain-version.json +4 -0
- package/dist/verbs/catalogue-maintain.d.ts +6 -0
- package/dist/verbs/catalogue-maintain.d.ts.map +1 -0
- package/dist/verbs/catalogue-maintain.js +110 -0
- package/dist/verbs/catalogue-maintain.js.map +1 -0
- package/dist/verbs/catalogue.d.ts +5 -0
- package/dist/verbs/catalogue.d.ts.map +1 -1
- package/dist/verbs/catalogue.js +14 -80
- package/dist/verbs/catalogue.js.map +1 -1
- package/dist/verbs/context.d.ts +3 -0
- package/dist/verbs/context.d.ts.map +1 -0
- package/dist/verbs/context.js +39 -0
- package/dist/verbs/context.js.map +1 -0
- package/dist/verbs/pack-build.d.ts +3 -0
- package/dist/verbs/pack-build.d.ts.map +1 -0
- package/dist/verbs/pack-build.js +31 -0
- package/dist/verbs/pack-build.js.map +1 -0
- package/dist/verbs/pack.d.ts.map +1 -1
- package/dist/verbs/pack.js +2 -25
- package/dist/verbs/pack.js.map +1 -1
- package/dist/verbs/sync.d.ts.map +1 -1
- package/dist/verbs/sync.js +21 -0
- package/dist/verbs/sync.js.map +1 -1
- package/dist/verbs/validate.d.ts.map +1 -1
- package/dist/verbs/validate.js +26 -0
- package/dist/verbs/validate.js.map +1 -1
- package/dist/verify-program.d.ts +6 -1
- package/dist/verify-program.d.ts.map +1 -1
- package/dist/verify-program.js +11 -4
- package/dist/verify-program.js.map +1 -1
- package/dist/verify-version.json +4 -0
- package/package.json +6 -5
- package/scripts/{build-verify-package.mjs → build-persona-package.mjs} +112 -46
- package/scripts/copy-yaml-assets.mjs +6 -0
- package/scripts/dagger-parity.sh +74 -0
- package/scripts/maintain-acceptance.mjs +240 -0
- package/scripts/maintain-version.json +4 -0
- package/scripts/release-gate.mjs +60 -0
- package/scripts/verify-version.json +2 -2
package/dist/verbs/pack.js
CHANGED
|
@@ -1,33 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { runPackBuild } from "../lib/pack/index.js";
|
|
1
|
+
import { registerPackBuild } from "./pack-build.js";
|
|
3
2
|
import { registerPackValidate } from "./pack-validate.js";
|
|
4
3
|
export function registerPack(program) {
|
|
5
4
|
const pack = program
|
|
6
5
|
.command("pack")
|
|
7
6
|
.description("Build and validate adopter-shipped context-pack bundles (per ADR 0151)");
|
|
8
|
-
pack
|
|
9
|
-
.command("build")
|
|
10
|
-
.description("Build a context-pack tarball from a seed file. Runs producer-side leakage check before emit.")
|
|
11
|
-
.requiredOption("--seed <path>", "path to the seed file (orchestration/distribution/{name}-seed.yaml)")
|
|
12
|
-
.option("--producer-repo <dir>", "adopter repo root (managed_paths are resolved relative to this; defaults to cwd)", process.cwd())
|
|
13
|
-
.option("--out-dir <dir>", "output directory for the tarball (defaults to <producer-repo>/dist/<pack-name>/)", resolvePathOption)
|
|
14
|
-
.option("--forward-base-managed-paths <path>", "path to forward-base MANAGED_PATHS.txt for the leakage check (defaults to extracting from method-baseline.lock)")
|
|
15
|
-
.option("--publish-transform", "apply the point-in-time / producer-agnostic publish transform (ADR 0183/0184): drop non-Accepted ADRs, strip lineage + stripped-class fields, flatten cross-repo refs, fail closed on leaks. For producer-published bundles.")
|
|
16
|
-
.option("--origin-prefix", "with the publish transform, apply the range-aware origin prefix (ADR 0140 §4.1): 0NNN→M-ADR, 9NNN→RA-ADR, adopter 1NNN stays ADR; ADR files renamed to match. Implies --publish-transform. The RA-ADR bundle cutover switch.")
|
|
17
|
-
.action(async (opts) => {
|
|
18
|
-
const { exitCode } = await runPackBuild({
|
|
19
|
-
seedPath: opts.seed,
|
|
20
|
-
producerRepo: opts.producerRepo ?? process.cwd(),
|
|
21
|
-
...(opts.outDir && { outDir: opts.outDir }),
|
|
22
|
-
...(opts.forwardBaseManagedPaths && {
|
|
23
|
-
forwardBaseManagedPathsFile: opts.forwardBaseManagedPaths,
|
|
24
|
-
}),
|
|
25
|
-
...(opts.publishTransform && { publishTransform: true }),
|
|
26
|
-
...(opts.originPrefix && { originPrefix: true }),
|
|
27
|
-
});
|
|
28
|
-
if (exitCode !== 0)
|
|
29
|
-
process.exit(exitCode);
|
|
30
|
-
});
|
|
7
|
+
registerPackBuild(pack);
|
|
31
8
|
registerPackValidate(pack);
|
|
32
9
|
}
|
|
33
10
|
//# sourceMappingURL=pack.js.map
|
package/dist/verbs/pack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/verbs/pack.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/verbs/pack.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,wEAAwE,CACzE,CAAC;IAEJ,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAExB,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
|
package/dist/verbs/sync.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/verbs/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/verbs/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwInD"}
|
package/dist/verbs/sync.js
CHANGED
|
@@ -2,6 +2,7 @@ import { AGENT_HARNESSES, resolveAgentHarness, } from "../lib/agent-harness.js";
|
|
|
2
2
|
import { loadSyncConfig } from "../lib/sync/config.js";
|
|
3
3
|
import { materialiseBundle } from "../lib/sync/bundle-source.js";
|
|
4
4
|
import { runSync } from "../lib/sync/index.js";
|
|
5
|
+
import { CI_BINDINGS, CI_RUNNER_DEFAULT, isCiBinding, parseCiRunner } from "../lib/ci-binding/index.js";
|
|
5
6
|
import { resolvePathOption } from "./path-option.js";
|
|
6
7
|
export function registerSync(program) {
|
|
7
8
|
program
|
|
@@ -16,7 +17,23 @@ export function registerSync(program) {
|
|
|
16
17
|
.option("--allow-overwrite", "accept overwrites of locally-modified method content")
|
|
17
18
|
.option("--no-delete", "preserve files removed upstream")
|
|
18
19
|
.option("--agent-harness <name>", `target agent harness for hooks + briefing. Default: claude-code. Supported: ${AGENT_HARNESSES.join(", ")}`)
|
|
20
|
+
.option("--ci-binding <host>", `CI host whose wrapper calls the Method Validation module (M-ADR 0219): ${CI_BINDINGS.join(", ")}. Default: the binding the lock records, else github; a new choice is recorded in the lock`)
|
|
21
|
+
.option("--ci-runner <labels>", `runner label(s) the CI wrapper targets, comma-separated (GitHub runs-on, GitLab tags, Jenkins agent label), e.g. a self-hosted runner. '${CI_RUNNER_DEFAULT}' returns to the host's default runner. Default: what the lock records; a new choice is recorded`)
|
|
19
22
|
.action(async (opts) => {
|
|
23
|
+
if (opts.ciBinding !== undefined && !isCiBinding(opts.ciBinding)) {
|
|
24
|
+
process.stderr.write(`[FAIL] --ci-binding must be one of ${CI_BINDINGS.join(", ")}; got '${opts.ciBinding}'\n`);
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
const ciBinding = opts.ciBinding;
|
|
28
|
+
let ciRunner;
|
|
29
|
+
if (opts.ciRunner !== undefined) {
|
|
30
|
+
const parsed = opts.ciRunner === CI_RUNNER_DEFAULT ? [] : parseCiRunner(opts.ciRunner);
|
|
31
|
+
if (parsed === null) {
|
|
32
|
+
process.stderr.write(`[FAIL] --ci-runner takes comma-separated labels of letters, digits, '.', '_' or '-', or '${CI_RUNNER_DEFAULT}'; got '${opts.ciRunner}'\n`);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
ciRunner = parsed;
|
|
36
|
+
}
|
|
20
37
|
let agentHarness;
|
|
21
38
|
try {
|
|
22
39
|
agentHarness = resolveAgentHarness(opts.agentHarness);
|
|
@@ -42,6 +59,8 @@ export function registerSync(program) {
|
|
|
42
59
|
allowOverwrite: opts.allowOverwrite === true,
|
|
43
60
|
delete: opts.delete,
|
|
44
61
|
agentHarness,
|
|
62
|
+
...(ciBinding ? { ciBinding } : {}),
|
|
63
|
+
...(ciRunner ? { ciRunner } : {}),
|
|
45
64
|
...(opts.replaceBundle ? { replaceBundle: opts.replaceBundle } : {}),
|
|
46
65
|
...(opts.yes === true ? { yes: true } : {}),
|
|
47
66
|
});
|
|
@@ -69,6 +88,8 @@ export function registerSync(program) {
|
|
|
69
88
|
allowOverwrite: opts.allowOverwrite === true,
|
|
70
89
|
delete: opts.delete,
|
|
71
90
|
agentHarness,
|
|
91
|
+
...(ciBinding ? { ciBinding } : {}),
|
|
92
|
+
...(ciRunner ? { ciRunner } : {}),
|
|
72
93
|
});
|
|
73
94
|
if (exitCode !== 0) {
|
|
74
95
|
await resolved.cleanup();
|
package/dist/verbs/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/verbs/sync.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/verbs/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/verbs/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/verbs/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoDvD"}
|
package/dist/verbs/validate.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { runValidate } from "../lib/validate/index.js";
|
|
2
|
+
import { methodValidationPlan } from "../lib/validate/plan.js";
|
|
3
|
+
import { profileFromRepoKind, readRepoKind } from "../lib/repo-kind.js";
|
|
4
|
+
const LISTABLE = ["platform", "application", "integration"];
|
|
5
|
+
const isListable = (p) => LISTABLE.includes(p);
|
|
2
6
|
import { resolvePathOption } from "./path-option.js";
|
|
3
7
|
export function registerValidate(program) {
|
|
4
8
|
program
|
|
@@ -8,7 +12,29 @@ export function registerValidate(program) {
|
|
|
8
12
|
.option("--platform-root <dir>", "path to the sdd-method (or platform) repo, required for app-dependencies", resolvePathOption)
|
|
9
13
|
.option("--validator <name>", "run only the named validator")
|
|
10
14
|
.option("--strict", "treat warnings as failures")
|
|
15
|
+
.option("--list", "print the method-managed validation job for this repo's profile as JSON (the plan every CI executor runs, the Dagger module included) and run nothing")
|
|
16
|
+
.option("--profile <profile>", "with --list: the profile to list, instead of reading .sdd-repo-kind (platform | application | integration)")
|
|
11
17
|
.action(async (opts) => {
|
|
18
|
+
if (opts.list === true) {
|
|
19
|
+
let profile;
|
|
20
|
+
if (opts.profile !== undefined) {
|
|
21
|
+
if (!isListable(opts.profile)) {
|
|
22
|
+
process.stderr.write(`--profile must be platform, application or integration (got: ${opts.profile})\n`);
|
|
23
|
+
process.exit(2);
|
|
24
|
+
}
|
|
25
|
+
profile = opts.profile;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
const kind = await readRepoKind(opts.targetRepo);
|
|
29
|
+
if (kind === null) {
|
|
30
|
+
process.stderr.write(`Not an SDD repo (no .sdd-repo-kind in ${opts.targetRepo}); pass --profile\n`);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
profile = profileFromRepoKind(kind);
|
|
34
|
+
}
|
|
35
|
+
process.stdout.write(JSON.stringify({ profile, steps: methodValidationPlan(profile) }, null, 2) + "\n");
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
12
38
|
const { exitCode } = await runValidate({
|
|
13
39
|
targetRepo: opts.targetRepo,
|
|
14
40
|
...(opts.platformRoot ? { platformRoot: opts.platformRoot } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/verbs/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/verbs/validate.ts"],"names":[],"mappings":"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"}
|
package/dist/verify-program.d.ts
CHANGED
|
@@ -8,7 +8,12 @@ export declare const VERIFY_SURFACE: ReadonlyArray<string>;
|
|
|
8
8
|
* this binary exists to prevent. So an excluded verb fails, loudly, whatever
|
|
9
9
|
* flags accompany it.
|
|
10
10
|
*/
|
|
11
|
-
export declare function rejectOutsideSurface(program: Command, argv: readonly string[]): void;
|
|
11
|
+
export declare function rejectOutsideSurface(program: Command, argv: readonly string[], outside?: string): void;
|
|
12
12
|
export declare function runVerify(argv: readonly string[]): Promise<void>;
|
|
13
13
|
export declare function buildVerifyProgram(): Command;
|
|
14
|
+
/**
|
|
15
|
+
* The verify verbs, registered onto any program. sdd-verify calls it; sdd-maintain calls it too,
|
|
16
|
+
* which is what makes the personas nest structurally: whatever verify ships, maintain ships.
|
|
17
|
+
*/
|
|
18
|
+
export declare function registerVerifySurface(program: Command): void;
|
|
14
19
|
//# sourceMappingURL=verify-program.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-program.d.ts","sourceRoot":"","sources":["../src/verify-program.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;AAepD,gFAAgF;AAChF,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,MAAM,CAQhD,CAAC;AAMF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"verify-program.d.ts","sourceRoot":"","sources":["../src/verify-program.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;AAepD,gFAAgF;AAChF,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,MAAM,CAQhD,CAAC;AAMF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,MAAgB,GAAG,IAAI,CAW/G;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBtE;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAqB5C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgB5D"}
|
package/dist/verify-program.js
CHANGED
|
@@ -49,7 +49,7 @@ const OUTSIDE = "is not part of sdd-verify, which cannot write to the repository
|
|
|
49
49
|
* this binary exists to prevent. So an excluded verb fails, loudly, whatever
|
|
50
50
|
* flags accompany it.
|
|
51
51
|
*/
|
|
52
|
-
export function rejectOutsideSurface(program, argv) {
|
|
52
|
+
export function rejectOutsideSurface(program, argv, outside = OUTSIDE) {
|
|
53
53
|
const words = argv.filter((a) => !a.startsWith("-"));
|
|
54
54
|
if (words.length === 0)
|
|
55
55
|
return;
|
|
@@ -58,10 +58,10 @@ export function rejectOutsideSurface(program, argv) {
|
|
|
58
58
|
return;
|
|
59
59
|
const cmd = program.commands.find((c) => c.name() === verb);
|
|
60
60
|
if (!cmd)
|
|
61
|
-
throw new Error(`'${verb}' ${
|
|
61
|
+
throw new Error(`'${verb}' ${outside}`);
|
|
62
62
|
const subs = cmd.commands.map((c) => c.name()).filter((n) => n !== "help");
|
|
63
63
|
if (subs.length > 0 && sub !== undefined && sub !== "help" && !subs.includes(sub)) {
|
|
64
|
-
throw new Error(`'${verb} ${sub}' ${
|
|
64
|
+
throw new Error(`'${verb} ${sub}' ${outside}`);
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
export async function runVerify(argv) {
|
|
@@ -97,6 +97,14 @@ export function buildVerifyProgram() {
|
|
|
97
97
|
writeOut: (str) => process.stdout.write(str),
|
|
98
98
|
writeErr: (str) => process.stderr.write(str),
|
|
99
99
|
});
|
|
100
|
+
registerVerifySurface(program);
|
|
101
|
+
return program;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The verify verbs, registered onto any program. sdd-verify calls it; sdd-maintain calls it too,
|
|
105
|
+
* which is what makes the personas nest structurally: whatever verify ships, maintain ships.
|
|
106
|
+
*/
|
|
107
|
+
export function registerVerifySurface(program) {
|
|
100
108
|
registerValidate(program);
|
|
101
109
|
registerList(program);
|
|
102
110
|
const pack = program
|
|
@@ -110,6 +118,5 @@ export function buildVerifyProgram() {
|
|
|
110
118
|
registerCatalogueImpact(catalogue);
|
|
111
119
|
registerCatalogueBaselineCheck(catalogue);
|
|
112
120
|
registerCatalogueVersion(catalogue);
|
|
113
|
-
return program;
|
|
114
121
|
}
|
|
115
122
|
//# sourceMappingURL=verify-program.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-program.js","sourceRoot":"","sources":["../src/verify-program.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,kEAAkE;AAClE,EAAE;AACF,yDAAyD;AACzD,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,qEAAqE;AACrE,8EAA8E;AAC9E,gFAAgF;AAChF,+EAA+E;AAC/E,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAChF,gFAAgF;AAChF,8EAA8E;AAC9E,kFAAkF;AAClF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,oDAAoD;AAEpD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,8BAA8B,EAC9B,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,QAAQ,GACZ,8FAA8F,CAAC;AAEjG,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAA0B;IACnD,UAAU;IACV,MAAM;IACN,eAAe;IACf,oBAAoB;IACpB,kBAAkB;IAClB,0BAA0B;IAC1B,mBAAmB;CACpB,CAAC;AAEF,MAAM,OAAO,GACX,oFAAoF;IACpF,6DAA6D,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAgB,EAAE,IAAuB;
|
|
1
|
+
{"version":3,"file":"verify-program.js","sourceRoot":"","sources":["../src/verify-program.ts"],"names":[],"mappings":"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"}
|