@agent-teams/docs-protocol-agent-teams 0.0.0 → 0.1.1
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/CHANGELOG.md +50 -0
- package/README.md +27 -2
- package/assets/catalog.json +1 -1
- package/assets/history/sha256-8711dbd6109740857c69462d218071818317a62949f08ecf8abdc6d6b736321f/caller.yml +14 -0
- package/assets/history/sha256-f8da49344c3b0e9f31235de2826b1b9b392afb84515ace6af4fb5fe580e3a714/caller.yml +14 -0
- package/assets/transition-catalog.json +1 -1
- package/dist/composition/qualification-cli.d.ts.map +1 -1
- package/dist/composition/qualification-cli.js +19 -3
- package/dist/composition/qualification-cli.js.map +1 -1
- package/dist/consumer-integration/adapters/cohort-v2-authority-validator.d.ts +5 -0
- package/dist/consumer-integration/adapters/cohort-v2-authority-validator.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/cohort-v2-authority-validator.js +361 -0
- package/dist/consumer-integration/adapters/cohort-v2-authority-validator.js.map +1 -0
- package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts +1 -0
- package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js +22 -4
- package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js.map +1 -1
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts +40 -1
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js +227 -0
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js.map +1 -1
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts +17 -5
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.js +123 -16
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.js.map +1 -1
- package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts +2 -1
- package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/node-consumer-integration-repository.js +55 -16
- package/dist/consumer-integration/adapters/node-consumer-integration-repository.js.map +1 -1
- package/dist/consumer-integration/adapters/node-consumer-restoration-evidence.d.ts +38 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-evidence.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-evidence.js +177 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-evidence.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-finalization.d.ts +10 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-finalization.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-finalization.js +95 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-finalization.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-lock.d.ts +3 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-lock.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-lock.js +104 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-lock.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-scope.d.ts +9 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-scope.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-scope.js +71 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-scope.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-selection.d.ts +9 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-selection.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-selection.js +35 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-selection.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration.d.ts +12 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration.js +102 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts +33 -5
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js +111 -106
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js.map +1 -1
- package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.d.ts +20 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.js +89 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-target.d.ts +11 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-target.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-target.js +60 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-target.js.map +1 -0
- package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.d.ts +1 -1
- package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.js +2 -3
- package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.js.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.d.ts +19 -0
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.js +184 -44
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.js.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.d.ts +4 -0
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.js +64 -0
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.js.map +1 -0
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts +19 -2
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js +65 -18
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.d.ts +13 -0
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.js +37 -0
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.js.map +1 -0
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.d.ts +7 -0
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.js +12 -3
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.js.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.d.ts +3 -0
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.js +11 -0
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.js.map +1 -0
- package/dist/consumer-integration/application/model/consumer-restoration.d.ts +76 -0
- package/dist/consumer-integration/application/model/consumer-restoration.d.ts.map +1 -0
- package/dist/consumer-integration/application/model/consumer-restoration.js +2 -0
- package/dist/consumer-integration/application/model/consumer-restoration.js.map +1 -0
- package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts +19 -3
- package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts.map +1 -1
- package/dist/consumer-integration/application/policies/consumer-integration-assets.js +38 -4
- package/dist/consumer-integration/application/policies/consumer-integration-assets.js.map +1 -1
- package/dist/consumer-integration/application/policies/consumer-integration-desired-state.d.ts +3 -1
- package/dist/consumer-integration/application/policies/consumer-integration-desired-state.d.ts.map +1 -1
- package/dist/consumer-integration/application/policies/consumer-integration-desired-state.js +87 -0
- package/dist/consumer-integration/application/policies/consumer-integration-desired-state.js.map +1 -1
- package/dist/consumer-integration/application/policies/consumer-restoration-proof.d.ts +12 -0
- package/dist/consumer-integration/application/policies/consumer-restoration-proof.d.ts.map +1 -0
- package/dist/consumer-integration/application/policies/consumer-restoration-proof.js +123 -0
- package/dist/consumer-integration/application/policies/consumer-restoration-proof.js.map +1 -0
- package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.d.ts +13 -0
- package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.d.ts.map +1 -0
- package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.js +38 -0
- package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.js.map +1 -0
- package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.d.ts +3 -2
- package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.d.ts.map +1 -1
- package/dist/consumer-integration/application/ports/consumer-integration-planners.d.ts +4 -4
- package/dist/consumer-integration/application/ports/consumer-integration-planners.d.ts.map +1 -1
- package/dist/consumer-integration/application/ports/consumer-restoration.d.ts +24 -0
- package/dist/consumer-integration/application/ports/consumer-restoration.d.ts.map +1 -0
- package/dist/consumer-integration/application/ports/consumer-restoration.js +2 -0
- package/dist/consumer-integration/application/ports/consumer-restoration.js.map +1 -0
- package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts +44 -6
- package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts.map +1 -1
- package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.d.ts +39 -0
- package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.d.ts.map +1 -0
- package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.js +284 -0
- package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.js.map +1 -0
- package/dist/consumer-integration/application/use-cases/plan-consumer-integration.d.ts +2 -2
- package/dist/consumer-integration/application/use-cases/plan-consumer-integration.d.ts.map +1 -1
- package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js +23 -153
- package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js.map +1 -1
- package/dist/consumer-integration/application/use-cases/run-consumer-integration.d.ts.map +1 -1
- package/dist/consumer-integration/application/use-cases/run-consumer-integration.js +10 -6
- package/dist/consumer-integration/application/use-cases/run-consumer-integration.js.map +1 -1
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts +11 -3
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts.map +1 -1
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js +188 -39
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js.map +1 -1
- package/dist/consumer-integration/composition/consumer-integration-cli.d.ts.map +1 -1
- package/dist/consumer-integration/composition/consumer-integration-cli.js +85 -15
- package/dist/consumer-integration/composition/consumer-integration-cli.js.map +1 -1
- package/dist/consumer-integration/composition/consumer-integration-planner.d.ts +6 -2
- package/dist/consumer-integration/composition/consumer-integration-planner.d.ts.map +1 -1
- package/dist/consumer-integration/composition/consumer-integration-planner.js +40 -3
- package/dist/consumer-integration/composition/consumer-integration-planner.js.map +1 -1
- package/dist/consumer-integration/composition/node-consumer-integration.d.ts +12 -0
- package/dist/consumer-integration/composition/node-consumer-integration.d.ts.map +1 -1
- package/dist/consumer-integration/composition/node-consumer-integration.js +17 -1
- package/dist/consumer-integration/composition/node-consumer-integration.js.map +1 -1
- package/dist/consumer-integration/composition/qualification-v3-boundary.d.ts +20 -0
- package/dist/consumer-integration/composition/qualification-v3-boundary.d.ts.map +1 -0
- package/dist/consumer-integration/composition/qualification-v3-boundary.js +29 -0
- package/dist/consumer-integration/composition/qualification-v3-boundary.js.map +1 -0
- package/dist/consumer-integration/domain/model.d.ts +61 -0
- package/dist/consumer-integration/domain/model.d.ts.map +1 -1
- package/dist/consumer-integration/generated/canonical-assets.d.ts +3 -2
- package/dist/consumer-integration/generated/canonical-assets.d.ts.map +1 -1
- package/dist/consumer-integration/generated/canonical-assets.js +3 -2
- package/dist/consumer-integration/generated/canonical-assets.js.map +1 -1
- package/dist/consumer-integration/index.d.ts +3 -1
- package/dist/consumer-integration/index.d.ts.map +1 -1
- package/dist/consumer-integration/index.js +1 -0
- package/dist/consumer-integration/index.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/qualification/index.d.ts +6 -0
- package/dist/qualification/index.d.ts.map +1 -1
- package/dist/qualification/index.js +3 -0
- package/dist/qualification/index.js.map +1 -1
- package/dist/qualification/qualification-v3-authority.d.ts +14 -0
- package/dist/qualification/qualification-v3-authority.d.ts.map +1 -0
- package/dist/qualification/qualification-v3-authority.js +5 -0
- package/dist/qualification/qualification-v3-authority.js.map +1 -0
- package/dist/qualification/qualification-v3-observer.d.ts +7 -0
- package/dist/qualification/qualification-v3-observer.d.ts.map +1 -0
- package/dist/qualification/qualification-v3-observer.js +22 -0
- package/dist/qualification/qualification-v3-observer.js.map +1 -0
- package/dist/qualification/qualification-v3-runner.d.ts +7 -0
- package/dist/qualification/qualification-v3-runner.d.ts.map +1 -0
- package/dist/qualification/qualification-v3-runner.js +95 -0
- package/dist/qualification/qualification-v3-runner.js.map +1 -0
- package/dist/qualification/v3-contract.d.ts +58 -0
- package/dist/qualification/v3-contract.d.ts.map +1 -0
- package/dist/qualification/v3-contract.js +2 -0
- package/dist/qualification/v3-contract.js.map +1 -0
- package/package.json +3 -3
- package/schemas/docs-consumer-integration-profile/v3.schema.json +68 -0
- package/schemas/docs-consumer-managed-state/v2.schema.json +120 -0
- package/schemas/docs-consumer-restoration-execution/v1.schema.json +124 -0
- package/schemas/docs-consumer-upgrade-execution/v1.schema.json +39 -3
- package/schemas/docs-protocol-qualification-receipt/v3.schema.json +118 -0
- package/schemas/qualified-docs-cohort/v2.schema.json +149 -0
- package/skills/docs/SKILL.md +8 -6
|
@@ -1,3 +1,22 @@
|
|
|
1
1
|
import type { ConsumerIntegrationDesiredStateV1 } from "../domain/model.js";
|
|
2
|
+
export interface QualifiedPnpmLockfileTarget {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly version: string;
|
|
5
|
+
readonly integrity: string;
|
|
6
|
+
readonly direct?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface QualifiedPnpmLockfileInternalEdge {
|
|
9
|
+
readonly from: string;
|
|
10
|
+
readonly to: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function assertQualifiedPnpmLockfileTargets(bytes: Uint8Array, options: {
|
|
13
|
+
readonly targets: readonly QualifiedPnpmLockfileTarget[];
|
|
14
|
+
readonly internalEdges: readonly QualifiedPnpmLockfileInternalEdge[];
|
|
15
|
+
readonly runtimeClosureDigest: string;
|
|
16
|
+
readonly computeRuntimeClosureDigest: (lockfile: Record<string, unknown>) => `sha256:${string}`;
|
|
17
|
+
readonly forbiddenAliasTargetPackageNames?: readonly string[];
|
|
18
|
+
/** V1 historically validates closure safety without binding the consumer's full graph digest. */
|
|
19
|
+
readonly enforceRuntimeClosureDigest?: boolean;
|
|
20
|
+
}): void;
|
|
2
21
|
export declare function assertQualifiedPnpmLockfileV1(bytes: Uint8Array, desired: ConsumerIntegrationDesiredStateV1): void;
|
|
3
22
|
//# sourceMappingURL=pnpm-lockfile-validator-v1.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pnpm-lockfile-validator-v1.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-validator-v1.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"pnpm-lockfile-validator-v1.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-validator-v1.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AAQ5E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAkSD,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE;IACP,QAAQ,CAAC,OAAO,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACzD,QAAQ,CAAC,aAAa,EAAE,SAAS,iCAAiC,EAAE,CAAC;IACrE,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,2BAA2B,EAAE,CACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,UAAU,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,gCAAgC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9D,iGAAiG;IACjG,QAAQ,CAAC,2BAA2B,CAAC,EAAE,OAAO,CAAC;CAChD,GACA,IAAI,CAwEN;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,iCAAiC,GACzC,IAAI,CAkBN"}
|
|
@@ -8,6 +8,9 @@ function yamlRecord(value, subject) {
|
|
|
8
8
|
}
|
|
9
9
|
return value;
|
|
10
10
|
}
|
|
11
|
+
function yamlOptionalRecord(value, subject) {
|
|
12
|
+
return value === undefined ? {} : yamlRecord(value, subject);
|
|
13
|
+
}
|
|
11
14
|
function assertRegistryPackageEntry(options) {
|
|
12
15
|
const resolution = yamlRecord(options.packageEntry["resolution"], `pnpm-lock.yaml#packages.${options.packageName}.resolution`);
|
|
13
16
|
if (resolution["integrity"] !== options.integrity) {
|
|
@@ -36,11 +39,45 @@ function assertRootOwnsCohortPins(importers, packageNames) {
|
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
41
|
}
|
|
39
|
-
function
|
|
42
|
+
function targetsNpmAlias(value, packageNames) {
|
|
43
|
+
const candidates = typeof value === "string"
|
|
44
|
+
? [value]
|
|
45
|
+
: typeof value === "object" && value !== null && !Array.isArray(value)
|
|
46
|
+
? [
|
|
47
|
+
value["specifier"],
|
|
48
|
+
value["version"]
|
|
49
|
+
]
|
|
50
|
+
: [];
|
|
51
|
+
return candidates.some((candidate) => typeof candidate === "string" &&
|
|
52
|
+
packageNames.some((packageName) => candidate === `npm:${packageName}` || candidate.startsWith(`npm:${packageName}@`) ||
|
|
53
|
+
candidate === packageName || candidate.startsWith(`${packageName}@`)));
|
|
54
|
+
}
|
|
55
|
+
function assertNoCohortAliases(importers, packageNames) {
|
|
56
|
+
for (const [importerPath, importerValue] of Object.entries(importers)) {
|
|
57
|
+
const importer = yamlRecord(importerValue, `pnpm-lock.yaml#importers.${importerPath}`);
|
|
58
|
+
for (const field of [
|
|
59
|
+
"dependencies", "devDependencies", "optionalDependencies", "peerDependencies"
|
|
60
|
+
]) {
|
|
61
|
+
if (importer[field] === undefined) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const declarations = yamlRecord(importer[field], `pnpm-lock.yaml#importers.${importerPath}.${field}`);
|
|
65
|
+
for (const [alias, declaration] of Object.entries(declarations)) {
|
|
66
|
+
if (targetsNpmAlias(declaration, packageNames)) {
|
|
67
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_ALIAS_FORBIDDEN", `pnpm importer ${importerPath} alias ${alias} must not target a Cohort package.`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function assertRegistryBoundRuntimeClosure(lockfile, compute, expectedDigest, enforceDigest) {
|
|
40
74
|
try {
|
|
41
75
|
// The Cohort digest qualifies the isolated release graph. A consumer may select
|
|
42
76
|
// compatible transitives or peer contexts, but every reachable edge stays registry/SRI bound.
|
|
43
|
-
|
|
77
|
+
const observedDigest = compute(lockfile);
|
|
78
|
+
if (enforceDigest && observedDigest !== expectedDigest) {
|
|
79
|
+
throw new PnpmRuntimeClosureError("Runtime closure digest differs from the selected Cohort.");
|
|
80
|
+
}
|
|
44
81
|
}
|
|
45
82
|
catch (error) {
|
|
46
83
|
if (error instanceof PnpmRuntimeClosureError) {
|
|
@@ -49,22 +86,128 @@ function assertRegistryBoundRuntimeClosure(lockfile, desired) {
|
|
|
49
86
|
throw error;
|
|
50
87
|
}
|
|
51
88
|
}
|
|
52
|
-
|
|
89
|
+
function assertTargetSnapshots(input) {
|
|
90
|
+
const snapshotKeys = new Map();
|
|
91
|
+
for (const target of input.targets) {
|
|
92
|
+
const packageName = target.name;
|
|
93
|
+
const direct = target.direct ?? true;
|
|
94
|
+
snapshotKeys.set(packageName, new Set());
|
|
95
|
+
const importerValue = input.devDependencies[packageName];
|
|
96
|
+
if (!direct && importerValue !== undefined) {
|
|
97
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_COHORT_MISMATCH", `${packageName} is a transitive Cohort coordinate and must not be a root importer pin.`);
|
|
98
|
+
}
|
|
99
|
+
if (direct) {
|
|
100
|
+
const importerEntry = yamlRecord(importerValue, `pnpm-lock.yaml#importers...${packageName}`);
|
|
101
|
+
if (importerEntry["specifier"] !== target.version ||
|
|
102
|
+
!validPnpmPeerContext(importerEntry["version"], target.version)) {
|
|
103
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_COHORT_MISMATCH", `${packageName} importer evidence must select exact cohort version ${target.version}.`);
|
|
104
|
+
}
|
|
105
|
+
const snapshotKey = `${packageName}@${String(importerEntry["version"])}`;
|
|
106
|
+
if (input.snapshots[snapshotKey] === undefined) {
|
|
107
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_SNAPSHOT_MISSING", `${packageName} has no snapshot selected by the root importer.`);
|
|
108
|
+
}
|
|
109
|
+
snapshotKeys.get(packageName).add(snapshotKey);
|
|
110
|
+
}
|
|
111
|
+
const packageEntry = yamlRecord(input.packages[`${packageName}@${target.version}`], `pnpm-lock.yaml#packages.${packageName}`);
|
|
112
|
+
assertRegistryPackageEntry({ integrity: target.integrity, packageEntry, packageName });
|
|
113
|
+
}
|
|
114
|
+
return snapshotKeys;
|
|
115
|
+
}
|
|
116
|
+
function assertSinglePackageResolutions(packages, targets) {
|
|
117
|
+
for (const target of targets) {
|
|
118
|
+
const packageName = target.name;
|
|
119
|
+
const prefix = `${packageName}@`;
|
|
120
|
+
const keys = Object.keys(packages).filter((key) => key.startsWith(prefix));
|
|
121
|
+
if (keys.length !== 1 || keys[0] !== `${prefix}${target.version}`) {
|
|
122
|
+
throw new ConsumerIntegrationNodeError(packageName.endsWith("engineering-foundation")
|
|
123
|
+
? "DOCS_CONSUMER_DUPLICATE_FOUNDATION_RESOLUTION"
|
|
124
|
+
: packageName.endsWith("docs-protocol")
|
|
125
|
+
? "DOCS_CONSUMER_DUPLICATE_DOCS_PROTOCOL_RESOLUTION"
|
|
126
|
+
: "DOCS_CONSUMER_DUPLICATE_COHORT_RESOLUTION", `pnpm-lock.yaml must contain exactly one physical cohort ${packageName} resolution.`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function assertInternalEdges(input) {
|
|
131
|
+
const targetByName = new Map(input.targets.map((target) => [target.name, target]));
|
|
132
|
+
const allowedTargetsBySource = new Map();
|
|
133
|
+
for (const edge of input.edges) {
|
|
134
|
+
const source = targetByName.get(edge.from);
|
|
135
|
+
const target = targetByName.get(edge.to);
|
|
136
|
+
if (source === undefined || target === undefined) {
|
|
137
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_DEPENDENCY_MISMATCH", `Internal Cohort edge ${edge.from} -> ${edge.to} has no declared coordinate.`);
|
|
138
|
+
}
|
|
139
|
+
const allowedTargets = allowedTargetsBySource.get(source.name) ?? new Set();
|
|
140
|
+
allowedTargets.add(target.name);
|
|
141
|
+
allowedTargetsBySource.set(source.name, allowedTargets);
|
|
142
|
+
}
|
|
143
|
+
const selectedSnapshots = new Map([...input.snapshotKeys].map(([name, keys]) => [name, new Set(keys)]));
|
|
144
|
+
const pending = input.targets.flatMap((target) => [...(selectedSnapshots.get(target.name) ?? [])].map((snapshotKey) => ({
|
|
145
|
+
source: target,
|
|
146
|
+
snapshotKey
|
|
147
|
+
})));
|
|
148
|
+
const visited = new Set();
|
|
149
|
+
while (pending.length > 0) {
|
|
150
|
+
const { source, snapshotKey } = pending.shift();
|
|
151
|
+
if (visited.has(snapshotKey)) {
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
visited.add(snapshotKey);
|
|
155
|
+
const sourceSnapshot = yamlRecord(input.snapshots[snapshotKey], `pnpm-lock.yaml#snapshots.${snapshotKey}`);
|
|
156
|
+
const dependencies = yamlOptionalRecord(sourceSnapshot["dependencies"], `pnpm-lock.yaml#snapshots.${source.name}.dependencies`);
|
|
157
|
+
const optionalDependencies = yamlOptionalRecord(sourceSnapshot["optionalDependencies"], `pnpm-lock.yaml#snapshots.${source.name}.optionalDependencies`);
|
|
158
|
+
const allowedTargets = allowedTargetsBySource.get(source.name) ?? new Set();
|
|
159
|
+
for (const target of input.targets) {
|
|
160
|
+
const dependency = dependencies[target.name];
|
|
161
|
+
const optionalDependency = optionalDependencies[target.name];
|
|
162
|
+
if (optionalDependency !== undefined) {
|
|
163
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_DEPENDENCY_MISMATCH", `${source.name} must not optionally depend on Cohort package ${target.name}.`);
|
|
164
|
+
}
|
|
165
|
+
if (allowedTargets.has(target.name)) {
|
|
166
|
+
if (!validPnpmPeerContext(dependency, target.version)) {
|
|
167
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_DEPENDENCY_MISMATCH", `${source.name} must depend on exact Cohort ${target.name}@${target.version}.`);
|
|
168
|
+
}
|
|
169
|
+
const targetSnapshotKey = `${target.name}@${String(dependency)}`;
|
|
170
|
+
if (input.snapshots[targetSnapshotKey] === undefined) {
|
|
171
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_SNAPSHOT_MISSING", `${source.name} selects missing Cohort snapshot ${targetSnapshotKey}.`);
|
|
172
|
+
}
|
|
173
|
+
const targetSelections = selectedSnapshots.get(target.name);
|
|
174
|
+
if (!targetSelections.has(targetSnapshotKey)) {
|
|
175
|
+
targetSelections.add(targetSnapshotKey);
|
|
176
|
+
pending.push({ source: target, snapshotKey: targetSnapshotKey });
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else if (dependency !== undefined) {
|
|
180
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_DEPENDENCY_MISMATCH", `${source.name} has forbidden extra Cohort dependency ${target.name}.`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
for (const target of input.targets) {
|
|
185
|
+
if ((selectedSnapshots.get(target.name)?.size ?? 0) === 0) {
|
|
186
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_SNAPSHOT_MISSING", `${target.name} has no snapshot reachable from the root Cohort pins.`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
export function assertQualifiedPnpmLockfileTargets(bytes, options) {
|
|
53
191
|
const document = parseDocument(Buffer.from(bytes).toString("utf8"), { uniqueKeys: true });
|
|
54
192
|
if (document.errors.length > 0) {
|
|
55
193
|
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_INVALID", "pnpm-lock.yaml must be duplicate-free YAML.");
|
|
56
194
|
}
|
|
57
195
|
const lockfile = yamlRecord(document.toJS({ maxAliasCount: 0 }), "pnpm-lock.yaml");
|
|
58
196
|
if (String(lockfile["lockfileVersion"]) !== "9.0") {
|
|
59
|
-
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_INVALID", "
|
|
197
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_INVALID", "Managed consumer integration requires pnpm lockfileVersion 9.0.");
|
|
60
198
|
}
|
|
61
|
-
|
|
62
|
-
|
|
199
|
+
const targetPackageNames = options.targets.map(({ name }) => name);
|
|
200
|
+
if (targetsManagedPackage(lockfile["overrides"], targetPackageNames) ||
|
|
201
|
+
targetsManagedPackage(lockfile["patchedDependencies"], targetPackageNames)) {
|
|
63
202
|
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_OVERRIDE", "Docs Protocol cohort packages must not use lockfile overrides or patches.");
|
|
64
203
|
}
|
|
65
204
|
const importers = yamlRecord(lockfile["importers"], "pnpm-lock.yaml#importers");
|
|
66
205
|
if (importers["."] === undefined) {
|
|
67
|
-
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UNSUPPORTED_WORKSPACE", "
|
|
206
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UNSUPPORTED_WORKSPACE", "Managed consumer integration requires one root pnpm importer.");
|
|
207
|
+
}
|
|
208
|
+
const forbiddenAliasTargetPackageNames = options.forbiddenAliasTargetPackageNames ?? [];
|
|
209
|
+
if (forbiddenAliasTargetPackageNames.length > 0) {
|
|
210
|
+
assertNoCohortAliases(importers, forbiddenAliasTargetPackageNames);
|
|
68
211
|
}
|
|
69
212
|
const importer = yamlRecord(importers["."], "pnpm-lock.yaml#importers.");
|
|
70
213
|
const devDependencies = yamlRecord(importer["devDependencies"], "pnpm-lock.yaml#importers...devDependencies");
|
|
@@ -74,47 +217,44 @@ export function assertQualifiedPnpmLockfileV1(bytes, desired) {
|
|
|
74
217
|
continue;
|
|
75
218
|
}
|
|
76
219
|
const record = yamlRecord(declarations, `pnpm-lock.yaml#importers...${field}`);
|
|
77
|
-
if ([
|
|
78
|
-
.some((packageName) => record[packageName] !== undefined)) {
|
|
220
|
+
if (targetPackageNames.some((packageName) => record[packageName] !== undefined)) {
|
|
79
221
|
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_NON_DEV_DEPENDENCY", "Docs Protocol cohort packages may be declared only in root devDependencies.");
|
|
80
222
|
}
|
|
81
223
|
}
|
|
82
224
|
const packages = yamlRecord(lockfile["packages"], "pnpm-lock.yaml#packages");
|
|
83
225
|
const snapshots = yamlRecord(lockfile["snapshots"], "pnpm-lock.yaml#snapshots");
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
assertRegistryBoundRuntimeClosure(lockfile, desired);
|
|
226
|
+
assertRootOwnsCohortPins(importers, targetPackageNames);
|
|
227
|
+
const snapshotKeys = assertTargetSnapshots({
|
|
228
|
+
devDependencies,
|
|
229
|
+
packages,
|
|
230
|
+
snapshots,
|
|
231
|
+
targets: options.targets
|
|
232
|
+
});
|
|
233
|
+
assertSinglePackageResolutions(packages, options.targets);
|
|
234
|
+
assertInternalEdges({
|
|
235
|
+
edges: options.internalEdges,
|
|
236
|
+
snapshots,
|
|
237
|
+
snapshotKeys,
|
|
238
|
+
targets: options.targets
|
|
239
|
+
});
|
|
240
|
+
assertRegistryBoundRuntimeClosure(lockfile, options.computeRuntimeClosureDigest, options.runtimeClosureDigest, options.enforceRuntimeClosureDigest ?? true);
|
|
241
|
+
}
|
|
242
|
+
export function assertQualifiedPnpmLockfileV1(bytes, desired) {
|
|
243
|
+
assertQualifiedPnpmLockfileTargets(bytes, {
|
|
244
|
+
targets: [
|
|
245
|
+
{ name: "@agent-teams/docs-protocol", ...desired.cohort.packages.docsProtocol },
|
|
246
|
+
{
|
|
247
|
+
name: "@agent-teams/engineering-foundation",
|
|
248
|
+
...desired.cohort.packages.engineeringFoundation
|
|
249
|
+
}
|
|
250
|
+
],
|
|
251
|
+
internalEdges: [{
|
|
252
|
+
from: "@agent-teams/docs-protocol",
|
|
253
|
+
to: "@agent-teams/engineering-foundation"
|
|
254
|
+
}],
|
|
255
|
+
runtimeClosureDigest: desired.cohort.runtime.runtimeClosureDigest,
|
|
256
|
+
enforceRuntimeClosureDigest: false,
|
|
257
|
+
computeRuntimeClosureDigest: (lockfile) => computePnpmRuntimeClosureDigestV1(lockfile, desired.cohort)
|
|
258
|
+
});
|
|
119
259
|
}
|
|
120
260
|
//# sourceMappingURL=pnpm-lockfile-validator-v1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pnpm-lockfile-validator-v1.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-validator-v1.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pnpm-lockfile-validator-v1.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-validator-v1.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ConsumerIntegrationDesiredStateV3 } from "../domain/model.js";
|
|
2
|
+
export declare function observeQualifiedPnpmLockfileV2(bytes: Uint8Array, desired: ConsumerIntegrationDesiredStateV3): `sha256:${string}`;
|
|
3
|
+
export declare function assertQualifiedPnpmLockfileV2(bytes: Uint8Array, desired: ConsumerIntegrationDesiredStateV3): void;
|
|
4
|
+
//# sourceMappingURL=pnpm-lockfile-validator-v2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pnpm-lockfile-validator-v2.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-validator-v2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AAuE5E,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,iCAAiC,GACzC,UAAU,MAAM,EAAE,CAEpB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,iCAAiC,GACzC,IAAI,CAEN"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { qualifiedDocsCohortV2PackageEntries } from "../application/policies/qualified-docs-cohort-v2.js";
|
|
2
|
+
import { assertQualifiedPnpmLockfileTargets } from "./pnpm-lockfile-validator-v1.js";
|
|
3
|
+
import { computePnpmRuntimeClosureDigestV2 } from "./pnpm-runtime-closure-v2.js";
|
|
4
|
+
const MAXIMUM_LOCKFILE_BYTES = 32 * 1024 * 1024;
|
|
5
|
+
const INTERNAL_EDGES = Object.freeze([
|
|
6
|
+
Object.freeze({
|
|
7
|
+
from: "@agent-teams/document-authoring",
|
|
8
|
+
to: "@agent-teams/repository-mutation"
|
|
9
|
+
}),
|
|
10
|
+
Object.freeze({
|
|
11
|
+
from: "@agent-teams/docs-protocol",
|
|
12
|
+
to: "@agent-teams/document-authoring"
|
|
13
|
+
}),
|
|
14
|
+
Object.freeze({
|
|
15
|
+
from: "@agent-teams/docs-protocol",
|
|
16
|
+
to: "@agent-teams/repository-mutation"
|
|
17
|
+
}),
|
|
18
|
+
Object.freeze({
|
|
19
|
+
from: "@agent-teams/docs-protocol-agent-teams",
|
|
20
|
+
to: "@agent-teams/docs-protocol"
|
|
21
|
+
}),
|
|
22
|
+
Object.freeze({
|
|
23
|
+
from: "@agent-teams/docs-protocol-agent-teams",
|
|
24
|
+
to: "@agent-teams/repository-mutation"
|
|
25
|
+
}),
|
|
26
|
+
Object.freeze({
|
|
27
|
+
from: "@agent-teams/engineering-foundation",
|
|
28
|
+
to: "@agent-teams/document-authoring"
|
|
29
|
+
}),
|
|
30
|
+
Object.freeze({
|
|
31
|
+
from: "@agent-teams/engineering-foundation",
|
|
32
|
+
to: "@agent-teams/repository-mutation"
|
|
33
|
+
})
|
|
34
|
+
]);
|
|
35
|
+
function validateQualifiedPnpmLockfileV2(bytes, desired, enforceRuntimeClosureDigest) {
|
|
36
|
+
if (!(bytes instanceof Uint8Array) || bytes.byteLength === 0 ||
|
|
37
|
+
bytes.byteLength > MAXIMUM_LOCKFILE_BYTES) {
|
|
38
|
+
throw new TypeError(`Qualification v3 lockfile must contain 1..${MAXIMUM_LOCKFILE_BYTES} bytes.`);
|
|
39
|
+
}
|
|
40
|
+
const entries = qualifiedDocsCohortV2PackageEntries(desired.cohort);
|
|
41
|
+
let runtimeClosureDigest;
|
|
42
|
+
assertQualifiedPnpmLockfileTargets(bytes, {
|
|
43
|
+
targets: entries.map(({ name, version, integrity, direct }) => ({ name, version, integrity, direct })),
|
|
44
|
+
internalEdges: INTERNAL_EDGES,
|
|
45
|
+
forbiddenAliasTargetPackageNames: entries.map(({ name }) => name),
|
|
46
|
+
runtimeClosureDigest: desired.cohort.runtime.runtimeClosureDigest,
|
|
47
|
+
enforceRuntimeClosureDigest,
|
|
48
|
+
computeRuntimeClosureDigest(lockfile) {
|
|
49
|
+
runtimeClosureDigest = computePnpmRuntimeClosureDigestV2(lockfile, desired.cohort);
|
|
50
|
+
return runtimeClosureDigest;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
if (runtimeClosureDigest === undefined) {
|
|
54
|
+
throw new Error("Qualified pnpm lockfile validation did not observe a runtime closure.");
|
|
55
|
+
}
|
|
56
|
+
return runtimeClosureDigest;
|
|
57
|
+
}
|
|
58
|
+
export function observeQualifiedPnpmLockfileV2(bytes, desired) {
|
|
59
|
+
return validateQualifiedPnpmLockfileV2(bytes, desired, false);
|
|
60
|
+
}
|
|
61
|
+
export function assertQualifiedPnpmLockfileV2(bytes, desired) {
|
|
62
|
+
validateQualifiedPnpmLockfileV2(bytes, desired, true);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=pnpm-lockfile-validator-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pnpm-lockfile-validator-v2.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-validator-v2.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mCAAmC,EAAE,MAC5C,qDAAqD,CAAC;AACxD,OAAO,EAAE,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,iCAAiC,EAAE,MAAM,8BAA8B,CAAC;AAEjF,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,MAAM,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,iCAAiC;QACvC,EAAE,EAAE,kCAAkC;KACvC,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,4BAA4B;QAClC,EAAE,EAAE,iCAAiC;KACtC,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,4BAA4B;QAClC,EAAE,EAAE,kCAAkC;KACvC,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,wCAAwC;QAC9C,EAAE,EAAE,4BAA4B;KACjC,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,wCAAwC;QAC9C,EAAE,EAAE,kCAAkC;KACvC,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,qCAAqC;QAC3C,EAAE,EAAE,iCAAiC;KACtC,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,qCAAqC;QAC3C,EAAE,EAAE,kCAAkC;KACvC,CAAC;CACH,CAAC,CAAC;AAEH,SAAS,+BAA+B,CACtC,KAAiB,EACjB,OAA0C,EAC1C,2BAAoC;IAEpC,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC;QAC1D,KAAK,CAAC,UAAU,GAAG,sBAAsB,EAAE,CAAC;QAC5C,MAAM,IAAI,SAAS,CACjB,6CAA6C,sBAAsB,SAAS,CAC7E,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,mCAAmC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,IAAI,oBAAoD,CAAC;IACzD,kCAAkC,CAAC,KAAK,EAAE;QACxC,OAAO,EAAE,OAAO,CAAC,GAAG,CAClB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CACjF;QACD,aAAa,EAAE,cAAc;QAC7B,gCAAgC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;QACjE,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB;QACjE,2BAA2B;QAC3B,2BAA2B,CAAC,QAAQ;YAClC,oBAAoB,GAAG,iCAAiC,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACnF,OAAO,oBAAoB,CAAC;QAC9B,CAAC;KACF,CAAC,CAAC;IACH,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,KAAiB,EACjB,OAA0C;IAE1C,OAAO,+BAA+B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAiB,EACjB,OAA0C;IAE1C,+BAA+B,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -1,15 +1,32 @@
|
|
|
1
1
|
import type { ConsumerIntegrationDigest, ConsumerIntegrationFileObservation, QualifiedDocsCohortBindingV1 } from "../domain/model.js";
|
|
2
|
-
import type { PnpmManifestPlanV1
|
|
2
|
+
import type { PnpmManifestPlanV1 } from "../application/ports/consumer-integration-planners.js";
|
|
3
|
+
export interface CohortManifestTarget {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly version: string;
|
|
6
|
+
}
|
|
3
7
|
export type { PnpmManifestPlanV1 } from "../application/ports/consumer-integration-planners.js";
|
|
8
|
+
export declare function projectPnpmManifestCohortTargets(input: {
|
|
9
|
+
readonly bytes: Uint8Array;
|
|
10
|
+
readonly targets: readonly CohortManifestTarget[];
|
|
11
|
+
readonly transitivePackageNames?: readonly string[];
|
|
12
|
+
readonly forbiddenAliasTargetPackageNames?: readonly string[];
|
|
13
|
+
}): Uint8Array;
|
|
4
14
|
export declare function projectPnpmManifestCohortPinsV1(input: {
|
|
5
15
|
readonly bytes: Uint8Array;
|
|
6
16
|
readonly cohort: QualifiedDocsCohortBindingV1;
|
|
7
17
|
}): Uint8Array;
|
|
18
|
+
export declare function planPnpmManifestTargets(input: {
|
|
19
|
+
readonly observation: ConsumerIntegrationFileObservation;
|
|
20
|
+
readonly profilePath: string;
|
|
21
|
+
readonly targets: readonly CohortManifestTarget[];
|
|
22
|
+
readonly forbiddenRootPackageNames?: readonly string[];
|
|
23
|
+
readonly forbiddenAliasTargetPackageNames?: readonly string[];
|
|
24
|
+
readonly knownPriorScriptsDigest?: ConsumerIntegrationDigest;
|
|
25
|
+
}): PnpmManifestPlanV1;
|
|
8
26
|
export declare function planPnpmManifestV1(input: {
|
|
9
27
|
readonly observation: ConsumerIntegrationFileObservation;
|
|
10
28
|
readonly profilePath: string;
|
|
11
29
|
readonly cohort: QualifiedDocsCohortBindingV1;
|
|
12
30
|
readonly knownPriorScriptsDigest?: ConsumerIntegrationDigest;
|
|
13
31
|
}): PnpmManifestPlanV1;
|
|
14
|
-
export declare const pnpmManifestPlannerV1: PnpmManifestPlannerV1;
|
|
15
32
|
//# sourceMappingURL=pnpm-manifest-adapter-v1.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pnpm-manifest-adapter-v1.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-manifest-adapter-v1.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,yBAAyB,EACzB,kCAAkC,EAElC,4BAA4B,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,kBAAkB,
|
|
1
|
+
{"version":3,"file":"pnpm-manifest-adapter-v1.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-manifest-adapter-v1.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,yBAAyB,EACzB,kCAAkC,EAElC,4BAA4B,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,kBAAkB,EACnB,MAAM,uDAAuD,CAAC;AAU/D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,YAAY,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC;AAgJhG,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAClD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpD,QAAQ,CAAC,gCAAgC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/D,GAAG,UAAU,CA+Cb;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;CAC/C,GAAG,UAAU,CAKb;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,WAAW,EAAE,kCAAkC,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAClD,QAAQ,CAAC,yBAAyB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvD,QAAQ,CAAC,gCAAgC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9D,QAAQ,CAAC,uBAAuB,CAAC,EAAE,yBAAyB,CAAC;CAC9D,GAAG,kBAAkB,CA4FrB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,QAAQ,CAAC,WAAW,EAAE,kCAAkC,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC9C,QAAQ,CAAC,uBAAuB,CAAC,EAAE,yBAAyB,CAAC;CAC9D,GAAG,kBAAkB,CASrB"}
|
|
@@ -59,9 +59,9 @@ function manifestShapeIssues(manifest) {
|
|
|
59
59
|
}
|
|
60
60
|
return issues;
|
|
61
61
|
}
|
|
62
|
-
function cohortDependencyIssues(dependencies, devDependencies, optionalDependencies, peerDependencies,
|
|
62
|
+
function cohortDependencyIssues(dependencies, devDependencies, optionalDependencies, peerDependencies, targets) {
|
|
63
63
|
const issues = [];
|
|
64
|
-
for (const packageName of
|
|
64
|
+
for (const { name: packageName } of targets) {
|
|
65
65
|
for (const [field, declarations] of [
|
|
66
66
|
["dependencies", dependencies],
|
|
67
67
|
["optionalDependencies", optionalDependencies],
|
|
@@ -72,24 +72,45 @@ function cohortDependencyIssues(dependencies, devDependencies, optionalDependenc
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
const
|
|
76
|
-
[DOCS_PACKAGE]: cohort.packages.docsProtocol.version,
|
|
77
|
-
[FOUNDATION_PACKAGE]: cohort.packages.engineeringFoundation.version
|
|
78
|
-
};
|
|
79
|
-
for (const [packageName, version] of Object.entries(requiredVersions)) {
|
|
75
|
+
for (const { name: packageName, version } of targets) {
|
|
80
76
|
if (devDependencies[packageName] !== version) {
|
|
81
77
|
issues.push(issue(`package.json#devDependencies.${packageName}`, "DOCS_CONSUMER_COHORT_PIN_REQUIRED", `Update ${packageName} and pnpm-lock.yaml together to exact version ${version} before consumer apply.`));
|
|
82
78
|
}
|
|
83
79
|
}
|
|
84
80
|
return issues;
|
|
85
81
|
}
|
|
86
|
-
|
|
82
|
+
function forbiddenRootDeclarationIssues(declarationsByField, packageNames) {
|
|
83
|
+
return packageNames.flatMap((packageName) => declarationsByField.flatMap(([field, declarations]) => declarations[packageName] === undefined ? [] : [issue(`package.json#${field}.${packageName}`, "DOCS_CONSUMER_TRANSITIVE_ROOT_DECLARATION", `${packageName} is a transitive Cohort coordinate and must not be a root declaration.`)]));
|
|
84
|
+
}
|
|
85
|
+
function targetsNpmAlias(value, packageNames) {
|
|
86
|
+
return typeof value === "string" && packageNames.some((packageName) => value === `npm:${packageName}` || value.startsWith(`npm:${packageName}@`));
|
|
87
|
+
}
|
|
88
|
+
function cohortAliasIssues(declarationsByField, packageNames) {
|
|
89
|
+
return declarationsByField.flatMap(([field, declarations]) => Object.entries(declarations).flatMap(([alias, value]) => targetsNpmAlias(value, packageNames) ? [issue(`package.json#${field}.${alias}`, "DOCS_CONSUMER_COHORT_ALIAS_FORBIDDEN", `npm alias ${alias} must not target a Cohort package.`)] : []));
|
|
90
|
+
}
|
|
91
|
+
function cohortManifestTargetsV1(cohort) {
|
|
92
|
+
return Object.freeze([
|
|
93
|
+
Object.freeze({ name: DOCS_PACKAGE, version: cohort.packages.docsProtocol.version }),
|
|
94
|
+
Object.freeze({
|
|
95
|
+
name: FOUNDATION_PACKAGE,
|
|
96
|
+
version: cohort.packages.engineeringFoundation.version
|
|
97
|
+
})
|
|
98
|
+
]);
|
|
99
|
+
}
|
|
100
|
+
export function projectPnpmManifestCohortTargets(input) {
|
|
87
101
|
const { manifest, source } = parseManifest(input.bytes);
|
|
88
102
|
const issues = manifestShapeIssues(manifest);
|
|
89
103
|
const dependencies = recordField(manifest, "dependencies");
|
|
104
|
+
const devDependencies = recordField(manifest, "devDependencies");
|
|
90
105
|
const optionalDependencies = recordField(manifest, "optionalDependencies");
|
|
91
106
|
const peerDependencies = recordField(manifest, "peerDependencies");
|
|
92
|
-
|
|
107
|
+
const declarationsByField = [
|
|
108
|
+
["dependencies", dependencies],
|
|
109
|
+
["devDependencies", devDependencies],
|
|
110
|
+
["optionalDependencies", optionalDependencies],
|
|
111
|
+
["peerDependencies", peerDependencies]
|
|
112
|
+
];
|
|
113
|
+
for (const { name: packageName } of input.targets) {
|
|
93
114
|
for (const [field, declarations] of [
|
|
94
115
|
["dependencies", dependencies],
|
|
95
116
|
["optionalDependencies", optionalDependencies],
|
|
@@ -100,19 +121,30 @@ export function projectPnpmManifestCohortPinsV1(input) {
|
|
|
100
121
|
}
|
|
101
122
|
}
|
|
102
123
|
}
|
|
124
|
+
issues.push(...cohortAliasIssues(declarationsByField, input.forbiddenAliasTargetPackageNames ?? []));
|
|
103
125
|
if (issues.length > 0) {
|
|
104
126
|
throw new TypeError(issues.map(({ message }) => message).join(" "));
|
|
105
127
|
}
|
|
106
128
|
let postimage = source;
|
|
107
|
-
for (const
|
|
108
|
-
[
|
|
109
|
-
|
|
110
|
-
|
|
129
|
+
for (const packageName of input.transitivePackageNames ?? []) {
|
|
130
|
+
for (const [field, declarations] of declarationsByField) {
|
|
131
|
+
if (declarations[packageName] !== undefined) {
|
|
132
|
+
postimage = applyField(postimage, [field, packageName], void 0);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
for (const { name: packageName, version } of input.targets) {
|
|
111
137
|
postimage = applyField(postimage, ["devDependencies", packageName], version);
|
|
112
138
|
}
|
|
113
139
|
return Buffer.from(postimage, "utf8");
|
|
114
140
|
}
|
|
115
|
-
export function
|
|
141
|
+
export function projectPnpmManifestCohortPinsV1(input) {
|
|
142
|
+
return projectPnpmManifestCohortTargets({
|
|
143
|
+
bytes: input.bytes,
|
|
144
|
+
targets: cohortManifestTargetsV1(input.cohort)
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
export function planPnpmManifestTargets(input) {
|
|
116
148
|
if (input.observation.state === "absent") {
|
|
117
149
|
const empty = digestBytes(new Uint8Array());
|
|
118
150
|
return {
|
|
@@ -143,7 +175,15 @@ export function planPnpmManifestV1(input) {
|
|
|
143
175
|
const devDependencies = recordField(manifest, "devDependencies");
|
|
144
176
|
const optionalDependencies = recordField(manifest, "optionalDependencies");
|
|
145
177
|
const peerDependencies = recordField(manifest, "peerDependencies");
|
|
146
|
-
|
|
178
|
+
const declarationsByField = [
|
|
179
|
+
["dependencies", dependencies],
|
|
180
|
+
["devDependencies", devDependencies],
|
|
181
|
+
["optionalDependencies", optionalDependencies],
|
|
182
|
+
["peerDependencies", peerDependencies]
|
|
183
|
+
];
|
|
184
|
+
issues.push(...cohortDependencyIssues(dependencies, devDependencies, optionalDependencies, peerDependencies, input.targets));
|
|
185
|
+
issues.push(...forbiddenRootDeclarationIssues(declarationsByField, input.forbiddenRootPackageNames ?? []));
|
|
186
|
+
issues.push(...cohortAliasIssues(declarationsByField, input.forbiddenAliasTargetPackageNames ?? []));
|
|
147
187
|
const desiredScripts = canonicalDocsScripts(input.profilePath);
|
|
148
188
|
const observedScripts = Object.fromEntries(Object.keys(desiredScripts).map((script) => [
|
|
149
189
|
script,
|
|
@@ -183,7 +223,14 @@ export function planPnpmManifestV1(input) {
|
|
|
183
223
|
issues: []
|
|
184
224
|
};
|
|
185
225
|
}
|
|
186
|
-
export
|
|
187
|
-
|
|
188
|
-
|
|
226
|
+
export function planPnpmManifestV1(input) {
|
|
227
|
+
return planPnpmManifestTargets({
|
|
228
|
+
observation: input.observation,
|
|
229
|
+
profilePath: input.profilePath,
|
|
230
|
+
targets: cohortManifestTargetsV1(input.cohort),
|
|
231
|
+
...(input.knownPriorScriptsDigest === undefined
|
|
232
|
+
? {}
|
|
233
|
+
: { knownPriorScriptsDigest: input.knownPriorScriptsDigest })
|
|
234
|
+
});
|
|
235
|
+
}
|
|
189
236
|
//# sourceMappingURL=pnpm-manifest-adapter-v1.js.map
|