@agent-teams/engineering-foundation 1.4.1 → 1.5.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/capabilities/public-api-compatibility/adapters/inbound/authority/growth-authority-contract.d.ts +10 -0
- package/dist/capabilities/public-api-compatibility/adapters/inbound/authority/growth-authority-contract.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/inbound/authority/growth-authority-contract.js +2 -0
- package/dist/capabilities/public-api-compatibility/adapters/inbound/authority/growth-authority-contract.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/crypto/node-change-fingerprint.d.ts +2 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/crypto/node-change-fingerprint.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/crypto/node-change-fingerprint.js +4 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/crypto/node-change-fingerprint.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/artifact-public-api-evidence.d.ts +7 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/artifact-public-api-evidence.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/artifact-public-api-evidence.js +16 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/artifact-public-api-evidence.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.d.ts +6 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.js +22 -2
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-invocation.d.ts +3 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-invocation.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-invocation.js +10 -7
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-invocation.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-metadata-root-sources.d.ts +13 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-metadata-root-sources.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-metadata-root-sources.js +38 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-metadata-root-sources.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-report-writer.d.ts +3 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-report-writer.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-report-writer.js +17 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-report-writer.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.d.ts +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.js +6 -2
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-evidence-files.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-evidence-files.js +64 -26
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-evidence-files.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/reviewrouter-growth-authority-acl.d.ts +18 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/reviewrouter-growth-authority-acl.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/reviewrouter-growth-authority-acl.js +51 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/reviewrouter-growth-authority-acl.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/strict-json-response.d.ts +5 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/strict-json-response.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/strict-json-response.js +118 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/strict-json-response.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-input-context.d.ts +28 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-input-context.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-input-context.js +163 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-input-context.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-observation.d.ts +8 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-observation.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-observation.js +59 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-observation.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/api.d.ts +1 -0
- package/dist/capabilities/public-api-compatibility/api.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/model/growth-admission-context.d.ts +9 -0
- package/dist/capabilities/public-api-compatibility/application/model/growth-admission-context.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/model/growth-authority.d.ts +243 -0
- package/dist/capabilities/public-api-compatibility/application/model/growth-authority.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/model/growth-authority.js +5 -0
- package/dist/capabilities/public-api-compatibility/application/model/growth-authority.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/default-type-argument-equivalence.d.ts +15 -0
- package/dist/capabilities/public-api-compatibility/application/policies/default-type-argument-equivalence.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/default-type-argument-equivalence.js +282 -0
- package/dist/capabilities/public-api-compatibility/application/policies/default-type-argument-equivalence.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-admission.d.ts +18 -2
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-admission.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-admission.js +35 -15
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-admission.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-release-compatibility.d.ts +4 -2
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-release-compatibility.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-release-compatibility.js +76 -9
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-release-compatibility.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-initial-release.d.ts +15 -0
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-initial-release.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-initial-release.js +26 -0
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-initial-release.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-public-api-compatibility.d.ts +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-public-api-compatibility.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-public-api-compatibility.js +19 -10
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-public-api-compatibility.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/normalize-growth-observation.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/normalize-growth-observation.js +2 -1
- package/dist/capabilities/public-api-compatibility/application/policies/normalize-growth-observation.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/project-growth-report.js +47 -19
- package/dist/capabilities/public-api-compatibility/application/policies/project-growth-report.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority-primitives.d.ts +18 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority-primitives.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority-primitives.js +153 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority-primitives.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority.d.ts +24 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority.js +610 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-installed-inventory.d.ts +8 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-installed-inventory.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-installed-inventory.js +11 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-installed-inventory.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-metadata-root.d.ts +13 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-metadata-root.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-metadata-root.js +121 -0
- package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-metadata-root.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/ports/change-fingerprint.d.ts +2 -1
- package/dist/capabilities/public-api-compatibility/application/ports/change-fingerprint.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/ports/growth-authority.d.ts +17 -0
- package/dist/capabilities/public-api-compatibility/application/ports/growth-authority.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/ports/growth-authority.js +2 -0
- package/dist/capabilities/public-api-compatibility/application/ports/growth-authority.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/ports/growth-input-context.d.ts +11 -1
- package/dist/capabilities/public-api-compatibility/application/ports/growth-input-context.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/ports/public-api-repository.d.ts +6 -0
- package/dist/capabilities/public-api-compatibility/application/ports/public-api-repository.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/admit-sdk-growth.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/admit-sdk-growth.js +31 -5
- package/dist/capabilities/public-api-compatibility/application/use-cases/admit-sdk-growth.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/analyze-public-api-compatibility.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/analyze-public-api-compatibility.js +8 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/analyze-public-api-compatibility.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.d.ts +11 -2
- package/dist/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.js +11 -8
- package/dist/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/preflight-public-api-promotions.d.ts +2 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/preflight-public-api-promotions.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/preflight-public-api-promotions.js +16 -4
- package/dist/capabilities/public-api-compatibility/application/use-cases/preflight-public-api-promotions.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.js +24 -11
- package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/qualify-sdk-growth.d.ts +16 -0
- package/dist/capabilities/public-api-compatibility/application/use-cases/qualify-sdk-growth.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/use-cases/qualify-sdk-growth.js +45 -0
- package/dist/capabilities/public-api-compatibility/application/use-cases/qualify-sdk-growth.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/authority-module.d.ts +30 -0
- package/dist/capabilities/public-api-compatibility/authority-module.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/authority-module.js +142 -0
- package/dist/capabilities/public-api-compatibility/authority-module.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/module.d.ts +16 -0
- package/dist/capabilities/public-api-compatibility/module.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/module.js +6 -6
- package/dist/capabilities/public-api-compatibility/module.js.map +1 -1
- package/dist/composition/quality-coverage.d.ts +1 -1
- package/dist/composition/quality-coverage.d.ts.map +1 -1
- package/dist/composition/sdk-growth-authority.d.ts +13 -0
- package/dist/composition/sdk-growth-authority.d.ts.map +1 -0
- package/dist/composition/sdk-growth-authority.js +19 -0
- package/dist/composition/sdk-growth-authority.js.map +1 -0
- package/dist/features/validation-reporting/api.d.ts +1 -1
- package/dist/features/validation-reporting/api.d.ts.map +1 -1
- package/dist/features/validation-reporting/api.js.map +1 -1
- package/dist/features/validation-reporting/application/model.d.ts +2 -3
- package/dist/features/validation-reporting/application/model.d.ts.map +1 -1
- package/dist/sdk-growth-authority.d.ts +15 -0
- package/dist/sdk-growth-authority.d.ts.map +1 -0
- package/dist/sdk-growth-authority.js +2 -0
- package/dist/sdk-growth-authority.js.map +1 -0
- package/package.json +5 -1
package/dist/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.js
CHANGED
|
@@ -6,9 +6,7 @@ import { GrowthReportWriteError } from "../ports/growth-report-writer.js";
|
|
|
6
6
|
import { growthCanonicalJson } from "../policies/normalize-growth-observation.js";
|
|
7
7
|
import { createGrowthObservation } from "./observe-sdk-growth.js";
|
|
8
8
|
import { admitSdkGrowth } from "./admit-sdk-growth.js";
|
|
9
|
-
|
|
10
|
-
* comparator. Persistence owns the final cancellation boundary. */
|
|
11
|
-
export async function checkSdkGrowth(input, dependencies) {
|
|
9
|
+
export async function executeSdkGrowth(input, dependencies) {
|
|
12
10
|
const cancellation = { ...(input.signal === undefined ? {} : { signal: input.signal }),
|
|
13
11
|
throwIfCancelled() { assertNotCancelled(input.signal); } };
|
|
14
12
|
cancellation.throwIfCancelled();
|
|
@@ -21,7 +19,7 @@ export async function checkSdkGrowth(input, dependencies) {
|
|
|
21
19
|
}
|
|
22
20
|
const observation = createGrowthObservation({ consumerRoot: input.consumerRoot,
|
|
23
21
|
workspaceManifestPath: "pnpm-workspace.yaml", subjects }, dependencies);
|
|
24
|
-
const execution = await admitSdkGrowth({ invocation, context: { ...config.sdkGrowth.comparison, decisionsPath: config.sdkGrowth.decisionsPath }, cancellation }, { observation, context: dependencies.context, fingerprint: dependencies.fingerprint });
|
|
22
|
+
const execution = await admitSdkGrowth({ invocation, context: { ...config.sdkGrowth.comparison, decisionsPath: config.sdkGrowth.decisionsPath }, cancellation }, { observation: dependencies.observationBoundary?.(observation) ?? observation, context: dependencies.context, fingerprint: dependencies.fingerprint });
|
|
25
23
|
const finalInvocation = await dependencies.readInvocation(cancellation);
|
|
26
24
|
if (growthCanonicalJson(finalInvocation) !== growthCanonicalJson(invocation)) {
|
|
27
25
|
throw new GrowthObservationInvariantError("growth-execution-inputs-changed");
|
|
@@ -36,12 +34,12 @@ export async function checkSdkGrowth(input, dependencies) {
|
|
|
36
34
|
if (!(error instanceof GrowthReportWriteError)) {
|
|
37
35
|
throw error;
|
|
38
36
|
}
|
|
39
|
-
return capabilityReport({ capabilityId: "package.public-api-compatibility", capabilityConfigSchemaVersion: 2, outcome: "failed",
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
return { capability: capabilityReport({ capabilityId: "package.public-api-compatibility", capabilityConfigSchemaVersion: 2, outcome: "failed",
|
|
38
|
+
problem: { code: `SDK_GROWTH_REPORT_${error.kind.toUpperCase()}`, message: error.reason,
|
|
39
|
+
phase: "sdk-growth-report-publication", retryable: error.kind === "uncertain" } }) };
|
|
42
40
|
}
|
|
43
41
|
const status = payload.verdict;
|
|
44
|
-
|
|
42
|
+
const capability = capabilityReport({ capabilityId: "package.public-api-compatibility", capabilityConfigSchemaVersion: 2,
|
|
45
43
|
outcome: status === "admitted" ? "passed" : status === "rejected" ? "violations" : "invalid-input",
|
|
46
44
|
...(status === "incomplete" ? { problem: { code: "SDK_GROWTH_EVIDENCE_INCOMPLETE", message: "SDK evidence is incomplete; no trusted admission or release authority is established.",
|
|
47
45
|
phase: "sdk-growth-evidence", retryable: false } } : {}),
|
|
@@ -57,5 +55,10 @@ export async function checkSdkGrowth(input, dependencies) {
|
|
|
57
55
|
remediation: "Inspect the SDK report's exact transitions, decision diagnostics and incomplete reasons. Filesystem inputs never establish trusted authority.",
|
|
58
56
|
requiresArchitectureReview: false
|
|
59
57
|
}] });
|
|
58
|
+
return { capability, report: payload, reportDigest: publication.digest,
|
|
59
|
+
reportByteLength: Buffer.byteLength(`${growthCanonicalJson(payload)}\n`, "utf8") };
|
|
60
|
+
}
|
|
61
|
+
export async function checkSdkGrowth(input, dependencies) {
|
|
62
|
+
return (await executeSdkGrowth(input, dependencies)).capability;
|
|
60
63
|
}
|
|
61
64
|
//# sourceMappingURL=check-sdk-growth.js.map
|
package/dist/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-sdk-growth.js","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEjF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;
|
|
1
|
+
{"version":3,"file":"check-sdk-growth.js","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import type { PublicApiRepository } from "../ports/public-api-repository.js";
|
|
1
2
|
import { promotePublicApiBaselines } from "./promote-public-api-baselines.js";
|
|
2
3
|
/** Validate every typed and artifact change before the first release-owned write. */
|
|
3
|
-
export declare function preflightPublicApiPromotions(input: Parameters<typeof promotePublicApiBaselines>[0], surfaces: readonly Parameters<typeof promotePublicApiBaselines>[1][]): Promise<readonly import("../model/public-api.js").PublicApiSnapshot[]>;
|
|
4
|
+
export declare function preflightPublicApiPromotions(input: Parameters<typeof promotePublicApiBaselines>[0], surfaces: readonly Parameters<typeof promotePublicApiBaselines>[1][], authorize?: (writes: readonly Awaited<ReturnType<PublicApiRepository["describeReleasedBaselineWrite"]>>[]) => Promise<void>): Promise<readonly import("../model/public-api.js").PublicApiSnapshot[]>;
|
|
4
5
|
//# sourceMappingURL=preflight-public-api-promotions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflight-public-api-promotions.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/use-cases/preflight-public-api-promotions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"preflight-public-api-promotions.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/use-cases/preflight-public-api-promotions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,qFAAqF;AACrF,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,EACtD,QAAQ,EAAE,SAAS,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,EACpE,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,0EA8B5H"}
|
|
@@ -1,19 +1,31 @@
|
|
|
1
1
|
import { promotePublicApiBaselines } from "./promote-public-api-baselines.js";
|
|
2
2
|
/** Validate every typed and artifact change before the first release-owned write. */
|
|
3
|
-
export async function preflightPublicApiPromotions(input, surfaces) {
|
|
3
|
+
export async function preflightPublicApiPromotions(input, surfaces, authorize) {
|
|
4
4
|
const writes = [];
|
|
5
|
+
const plan = [];
|
|
5
6
|
const results = [];
|
|
6
7
|
for (const dependencies of surfaces) {
|
|
7
8
|
const repository = {
|
|
8
9
|
readReleasedBaseline: dependencies.repository.readReleasedBaseline.bind(dependencies.repository),
|
|
9
10
|
readReleaseEvidence: dependencies.repository.readReleaseEvidence.bind(dependencies.repository),
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
describeReleasedBaselineWrite: async (...args) => {
|
|
12
|
+
if (typeof dependencies.repository.describeReleasedBaselineWrite !== "function") {
|
|
13
|
+
throw new TypeError("Public API baseline authorization requires a write-plan adapter.");
|
|
14
|
+
}
|
|
15
|
+
return dependencies.repository.describeReleasedBaselineWrite(...args);
|
|
16
|
+
},
|
|
17
|
+
writeReleasedBaseline: async (...args) => {
|
|
18
|
+
if (authorize !== undefined) {
|
|
19
|
+
plan.push(await repository.describeReleasedBaselineWrite(args[0], args[1], args[2], args[4] ?? "replace"));
|
|
20
|
+
}
|
|
21
|
+
writes.push(() => authorize === undefined
|
|
22
|
+
? dependencies.repository.writeReleasedBaseline(...args)
|
|
23
|
+
: dependencies.repository.writeReleasedBaseline(args[0], args[1], args[2], undefined, args[4]));
|
|
13
24
|
}
|
|
14
25
|
};
|
|
15
26
|
results.push(await promotePublicApiBaselines(input, { ...dependencies, repository }));
|
|
16
27
|
}
|
|
28
|
+
await authorize?.(plan);
|
|
17
29
|
for (const write of writes) {
|
|
18
30
|
await write();
|
|
19
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflight-public-api-promotions.js","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/use-cases/preflight-public-api-promotions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,KAAsD,EACtD,QAAoE;
|
|
1
|
+
{"version":3,"file":"preflight-public-api-promotions.js","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/use-cases/preflight-public-api-promotions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,KAAsD,EACtD,QAAoE,EACpE,SAA2H;IAE3H,MAAM,MAAM,GAA+B,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAqF,EAAE,CAAC;IAClG,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,MAAM,YAAY,IAAI,QAAQ,EAAE,CAAC;QACpC,MAAM,UAAU,GAAwB;YACtC,oBAAoB,EAAE,YAAY,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YAChG,mBAAmB,EAAE,YAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YAC9F,6BAA6B,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;gBAC/C,IAAI,OAAO,YAAY,CAAC,UAAU,CAAC,6BAA6B,KAAK,UAAU,EAAE,CAAC;oBAChF,MAAM,IAAI,SAAS,CAAC,kEAAkE,CAAC,CAAC;gBAC1F,CAAC;gBACD,OAAO,YAAY,CAAC,UAAU,CAAC,6BAA6B,CAAC,GAAG,IAAI,CAAC,CAAC;YACxE,CAAC;YACD,qBAAqB,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;gBACvC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;gBAC7G,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,KAAK,SAAS;oBACvC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;oBACxD,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpG,CAAC;SACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,MAAM,yBAAyB,CAAC,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAAC,MAAM,KAAK,EAAE,CAAC;IAAC,CAAC;IAC9C,kEAAkE;IAClE,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promote-public-api-baselines.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,4BAA4B,EAC5B,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAC3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"promote-public-api-baselines.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,4BAA4B,EAC5B,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAC3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAwH7E,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE;IACL,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC9C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B,EACD,YAAY,EAAE;IACZ,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,wBAAwB,EAAE,4BAA4B,CAAC;CACjE,GACA,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAkHvC"}
|
|
@@ -3,6 +3,8 @@ import { sameNumberedPrereleaseTrain, semanticVersionBumpBetween } from "../../.
|
|
|
3
3
|
import { approvedBreakingChangeReference } from "../model/public-api.js";
|
|
4
4
|
import { isApprovedBreakingChangeAccepted } from "../policies/accepted-breaking-change.js";
|
|
5
5
|
import { classifyPublicApiChange } from "../policies/evaluate-public-api-compatibility.js";
|
|
6
|
+
import { collectUnchangedPublicTypeBindings } from "../policies/default-type-argument-equivalence.js";
|
|
7
|
+
import { evaluateBaselineBootstrapPolicy, initialUnreleasedVersion } from "../policies/evaluate-initial-release.js";
|
|
6
8
|
function promotionError(code, message) {
|
|
7
9
|
throw new CapabilityInputError({
|
|
8
10
|
code,
|
|
@@ -12,7 +14,6 @@ function promotionError(code, message) {
|
|
|
12
14
|
});
|
|
13
15
|
}
|
|
14
16
|
const BUMP_RANK = Object.freeze({ patch: 0, minor: 1, major: 2 });
|
|
15
|
-
const INITIAL_UNRELEASED_VERSION = "0.0.0";
|
|
16
17
|
function effectiveReleaseBump(input) {
|
|
17
18
|
if (input.prereleaseInitialVersion === undefined || input.prereleaseTag === undefined) {
|
|
18
19
|
return input.actualBump;
|
|
@@ -25,24 +26,25 @@ function effectiveReleaseBump(input) {
|
|
|
25
26
|
return prereleaseLineBump;
|
|
26
27
|
}
|
|
27
28
|
function assertReviewedBootstrap(packagePolicy, releaseEvidence) {
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
const result = evaluateBaselineBootstrapPolicy(packagePolicy.packageName, releaseEvidence);
|
|
30
|
+
if (result.status === "accepted") {
|
|
31
|
+
return;
|
|
30
32
|
}
|
|
31
|
-
if (
|
|
32
|
-
promotionError("
|
|
33
|
+
if (result.failure === "version-not-initial" || result.failure === "package-mismatch") {
|
|
34
|
+
promotionError("PUBLIC_API_BASELINE_BOOTSTRAP_NOT_INITIAL", `Missing baseline for ${packagePolicy.packageName} can be bootstrapped only for that exact package at the initial unreleased version ${initialUnreleasedVersion}.`);
|
|
33
35
|
}
|
|
34
|
-
if (
|
|
35
|
-
promotionError("
|
|
36
|
+
if (result.failure === "changeset-missing") {
|
|
37
|
+
promotionError("PUBLIC_API_BASELINE_BOOTSTRAP_CHANGESET_MISSING", `Initial public API baseline for ${packagePolicy.packageName} requires a Changeset.`);
|
|
36
38
|
}
|
|
39
|
+
promotionError("PUBLIC_API_BASELINE_BOOTSTRAP_CHANGESET_INSUFFICIENT", `Initial public API baseline for ${packagePolicy.packageName} requires at least a minor Changeset.`);
|
|
37
40
|
}
|
|
38
41
|
function assertExtractorVersionMatch(released, current) {
|
|
39
42
|
if (released.extractorVersion !== current.extractorVersion) {
|
|
40
43
|
promotionError("PUBLIC_API_BASELINE_PROMOTION_TOOL_MISMATCH", `API Extractor changed from ${released.extractorVersion} to ${current.extractorVersion}; migrate the baseline in an explicitly reviewed tool-upgrade change.`);
|
|
41
44
|
}
|
|
42
45
|
}
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
let acceptedDecisionEvidence;
|
|
46
|
+
async function loadPromotionPackages(input, dependencies) {
|
|
47
|
+
const packages = [];
|
|
46
48
|
for (const packagePolicy of input.policy.packages) {
|
|
47
49
|
assertNotCancelled(input.signal);
|
|
48
50
|
const [released, releaseEvidence] = await Promise.all([
|
|
@@ -50,13 +52,24 @@ export async function promotePublicApiBaselines(input, dependencies) {
|
|
|
50
52
|
dependencies.repository.readReleaseEvidence(input.consumerRoot, input.policy.changesetDirectory, packagePolicy, input.signal)
|
|
51
53
|
]);
|
|
52
54
|
const current = await dependencies.extractor.extract(input.consumerRoot, packagePolicy, releaseEvidence.packageVersion, input.signal);
|
|
55
|
+
packages.push({ packagePolicy, released, releaseEvidence, current });
|
|
56
|
+
}
|
|
57
|
+
return Object.freeze(packages);
|
|
58
|
+
}
|
|
59
|
+
export async function promotePublicApiBaselines(input, dependencies) {
|
|
60
|
+
const promotions = [];
|
|
61
|
+
let acceptedDecisionEvidence;
|
|
62
|
+
const packages = await loadPromotionPackages(input, dependencies);
|
|
63
|
+
const stableTypeBindings = collectUnchangedPublicTypeBindings(packages.flatMap(({ released, current }) => released === undefined ? [] : [{ released, current }]));
|
|
64
|
+
for (const { packagePolicy, released, releaseEvidence, current } of packages) {
|
|
65
|
+
assertNotCancelled(input.signal);
|
|
53
66
|
if (released === undefined) {
|
|
54
67
|
assertReviewedBootstrap(packagePolicy, releaseEvidence);
|
|
55
68
|
promotions.push({ packagePolicy, snapshot: current, mode: "create" });
|
|
56
69
|
continue;
|
|
57
70
|
}
|
|
58
71
|
assertExtractorVersionMatch(released, current);
|
|
59
|
-
const change = classifyPublicApiChange(released, current, dependencies.fingerprint);
|
|
72
|
+
const change = classifyPublicApiChange(released, current, dependencies.fingerprint, stableTypeBindings);
|
|
60
73
|
if (released.packageVersion === releaseEvidence.packageVersion) {
|
|
61
74
|
if (change.classification !== "none") {
|
|
62
75
|
promotionError("PUBLIC_API_BASELINE_PROMOTION_RELEASE_DRIFT", `Package ${packagePolicy.packageName} changed after baseline ${released.packageVersion} was promoted.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promote-public-api-baselines.js","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAC,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAC3G,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,iCAAiC,CAAC;AASzC,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;
|
|
1
|
+
{"version":3,"file":"promote-public-api-baselines.js","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.ts"],"names":[],"mappings":"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"}
|
package/dist/capabilities/public-api-compatibility/application/use-cases/qualify-sdk-growth.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { GrowthAuthorityReceipt } from "../model/growth-authority.js";
|
|
2
|
+
import type { GrowthAuthorityPort } from "../ports/growth-authority.js";
|
|
3
|
+
import type { ResolvedGrowthInputContextPort } from "../ports/growth-input-context.js";
|
|
4
|
+
import type { ChangeFingerprint } from "../ports/change-fingerprint.js";
|
|
5
|
+
import { executeSdkGrowth, type SdkGrowthCheckExecution } from "./check-sdk-growth.js";
|
|
6
|
+
export interface QualifiedSdkGrowthExecution extends SdkGrowthCheckExecution {
|
|
7
|
+
readonly receipt?: GrowthAuthorityReceipt;
|
|
8
|
+
}
|
|
9
|
+
/** Coordinates the already-existing check with authenticated completion.
|
|
10
|
+
* Report publication precedes completion so the receipt binds finalized bytes. */
|
|
11
|
+
export declare function qualifySdkGrowth(input: Parameters<typeof executeSdkGrowth>[0], dependencies: Parameters<typeof executeSdkGrowth>[1] & {
|
|
12
|
+
readonly context: ResolvedGrowthInputContextPort;
|
|
13
|
+
readonly authority: GrowthAuthorityPort;
|
|
14
|
+
readonly fingerprint: ChangeFingerprint;
|
|
15
|
+
}): Promise<QualifiedSdkGrowthExecution>;
|
|
16
|
+
//# sourceMappingURL=qualify-sdk-growth.d.ts.map
|
package/dist/capabilities/public-api-compatibility/application/use-cases/qualify-sdk-growth.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qualify-sdk-growth.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/use-cases/qualify-sdk-growth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEvF,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAC3C;AAED;kFACkF;AAClF,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAC7C,YAAY,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG;IACrD,QAAQ,CAAC,OAAO,EAAE,8BAA8B,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;CACzC,GACA,OAAO,CAAC,2BAA2B,CAAC,CAmCtC"}
|
package/dist/capabilities/public-api-compatibility/application/use-cases/qualify-sdk-growth.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { growthAuthoritySchemaVersion } from "../model/growth-authority.js";
|
|
2
|
+
import { GrowthObservationInvariantError } from "../model/growth-observation.js";
|
|
3
|
+
import { growthReportAuthorityDigests } from "../policies/validate-growth-authority.js";
|
|
4
|
+
import { executeSdkGrowth } from "./check-sdk-growth.js";
|
|
5
|
+
/** Coordinates the already-existing check with authenticated completion.
|
|
6
|
+
* Report publication precedes completion so the receipt binds finalized bytes. */
|
|
7
|
+
export async function qualifySdkGrowth(input, dependencies) {
|
|
8
|
+
const execution = await executeSdkGrowth(input, dependencies);
|
|
9
|
+
if (execution.report === undefined || execution.reportDigest === undefined || execution.reportByteLength === undefined) {
|
|
10
|
+
return execution;
|
|
11
|
+
}
|
|
12
|
+
const resolved = dependencies.context.resolution();
|
|
13
|
+
const digests = growthReportAuthorityDigests(execution.report, dependencies.fingerprint);
|
|
14
|
+
if (digests.coverageDigest !== resolved.grant.requiredCoverageDigest) {
|
|
15
|
+
throw new GrowthObservationInvariantError("growth-authority-coverage-mismatch");
|
|
16
|
+
}
|
|
17
|
+
const cancellation = { ...(input.signal === undefined ? {} : { signal: input.signal }),
|
|
18
|
+
throwIfCancelled() {
|
|
19
|
+
if (input.signal?.aborted === true) {
|
|
20
|
+
throw input.signal.reason;
|
|
21
|
+
}
|
|
22
|
+
} };
|
|
23
|
+
const completion = {
|
|
24
|
+
schemaVersion: growthAuthoritySchemaVersion,
|
|
25
|
+
kind: "completion",
|
|
26
|
+
grantId: resolved.grant.grantId,
|
|
27
|
+
grantDigest: resolved.grantDigest,
|
|
28
|
+
requestDigest: resolved.requestDigest,
|
|
29
|
+
binding: resolved.grant.binding,
|
|
30
|
+
reportDigest: execution.reportDigest,
|
|
31
|
+
reportByteLength: execution.reportByteLength,
|
|
32
|
+
coverageDigest: digests.coverageDigest,
|
|
33
|
+
phasesDigest: digests.phasesDigest,
|
|
34
|
+
verdict: execution.report.verdict,
|
|
35
|
+
releaseEligible: execution.report.releaseEligible,
|
|
36
|
+
publication: "finalized",
|
|
37
|
+
promotion: { kind: "none" }
|
|
38
|
+
};
|
|
39
|
+
const receipt = await dependencies.authority.complete(completion, cancellation);
|
|
40
|
+
if (execution.report.verdict === "admitted" && (receipt.qualification !== "qualified" || !receipt.releaseEligible)) {
|
|
41
|
+
throw new GrowthObservationInvariantError("growth-authority-qualified-receipt-required");
|
|
42
|
+
}
|
|
43
|
+
return { ...execution, receipt };
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=qualify-sdk-growth.js.map
|
package/dist/capabilities/public-api-compatibility/application/use-cases/qualify-sdk-growth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qualify-sdk-growth.js","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/use-cases/qualify-sdk-growth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAIjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAgC,MAAM,uBAAuB,CAAC;AAMvF;kFACkF;AAClF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAA6C,EAC7C,YAIC;IAED,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC9D,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,IAAI,SAAS,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACvH,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,4BAA4B,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACzF,IAAI,OAAO,CAAC,cAAc,KAAK,QAAQ,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;QACrE,MAAM,IAAI,+BAA+B,CAAC,oCAAoC,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,YAAY,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QACpF,gBAAgB;YACd,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;gBAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAAC,CAAC;QACpE,CAAC,EAAE,CAAC;IACN,MAAM,UAAU,GAAG;QACjB,aAAa,EAAE,4BAA4B;QAC3C,IAAI,EAAE,YAAqB;QAC3B,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;QAC/B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;QAC/B,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;QAC5C,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO;QACjC,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,eAAe;QACjD,WAAW,EAAE,WAAoB;QACjC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE;KACrC,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAChF,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QACnH,MAAM,IAAI,+BAA+B,CAAC,6CAA6C,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type PublicApiConfigurationDependencies } from "./adapters/inbound/configuration/load-capability-config.js";
|
|
2
|
+
import type { SdkGrowthAuthorityTransport } from "./adapters/inbound/authority/growth-authority-contract.js";
|
|
3
|
+
import type { GrowthAuthorityBinding, GrowthAuthorityReceipt } from "./application/model/growth-authority.js";
|
|
4
|
+
import type { JsonSchemaSetInspector } from "./application/ports/package-artifact-inventory.js";
|
|
5
|
+
export interface SdkGrowthAuthorityOperationInput {
|
|
6
|
+
readonly consumerRoot: string;
|
|
7
|
+
readonly configPath: string;
|
|
8
|
+
readonly binding: GrowthAuthorityBinding;
|
|
9
|
+
readonly signal?: AbortSignal;
|
|
10
|
+
}
|
|
11
|
+
export interface SdkGrowthAuthorityModuleDependencies {
|
|
12
|
+
readonly transport: SdkGrowthAuthorityTransport;
|
|
13
|
+
readonly installedInventory?: import("./application/ports/growth-authority.js").GrowthInstalledInventoryReader | undefined;
|
|
14
|
+
readonly readAcceptedDecisions: import("./application/ports/accepted-decision-evidence.js").AcceptedArchitectureDecisionReader;
|
|
15
|
+
readonly assertSchema: PublicApiConfigurationDependencies["assertSchema"];
|
|
16
|
+
readonly inspector: JsonSchemaSetInspector;
|
|
17
|
+
readonly now?: (() => Date) | undefined;
|
|
18
|
+
}
|
|
19
|
+
/** Trusted ReviewRouter port/adapter assembly. This module publishes no status
|
|
20
|
+
* and owns no ReviewRouter persistence or authentication implementation. */
|
|
21
|
+
export declare function createSdkGrowthAuthorityModule(dependencies: SdkGrowthAuthorityModuleDependencies): Readonly<{
|
|
22
|
+
qualifyCheck(input: SdkGrowthAuthorityOperationInput): Promise<import("./application/use-cases/qualify-sdk-growth.js").QualifiedSdkGrowthExecution>;
|
|
23
|
+
promoteRelease(input: SdkGrowthAuthorityOperationInput & {
|
|
24
|
+
readonly admissionReceiptId: string;
|
|
25
|
+
}): Promise<{
|
|
26
|
+
readonly snapshots: readonly import("./application/model/public-api.js").PublicApiSnapshot[];
|
|
27
|
+
readonly receipt: GrowthAuthorityReceipt;
|
|
28
|
+
}>;
|
|
29
|
+
}>;
|
|
30
|
+
//# sourceMappingURL=authority-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authority-module.d.ts","sourceRoot":"","sources":["../../../src/capabilities/public-api-compatibility/authority-module.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwB,KAAK,kCAAkC,EAAE,MAAM,4DAA4D,CAAC;AAQ3I,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2DAA2D,CAAC;AAC7G,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAuB,MAAM,yCAAyC,CAAC;AAGnI,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAchG,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,SAAS,EAAE,2BAA2B,CAAC;IAChD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,yCAAyC,EAAE,8BAA8B,GAAG,SAAS,CAAC;IAC3H,QAAQ,CAAC,qBAAqB,EAAE,OAAO,mDAAmD,EAAE,kCAAkC,CAAC;IAC/H,QAAQ,CAAC,YAAY,EAAE,kCAAkC,CAAC,cAAc,CAAC,CAAC;IAC1E,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACzC;AAMD;4EAC4E;AAC5E,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,oCAAoC;wBAuCnE,gCAAgC;0BAqB9B,gCAAgC,GAAG;QAAE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,mCAAmC,EAAE,iBAAiB,EAAE,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAA;KAAE,CAAC;GAgD/P"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { createVerifiedGrowthObservation } from "./adapters/outbound/reviewrouter/verified-growth-observation.js";
|
|
2
|
+
import { createManagedProcessExecutor } from "../../process-execution/module.js";
|
|
3
|
+
import { pathTraversesSymbolicLink, readContainedRegularFile } from "../../source-inventory/node.js";
|
|
4
|
+
import { createWorkspaceInventoryReader } from "../../workspace-inventory/module.js";
|
|
5
|
+
import { assertGrowthReportDestination } from "./adapters/inbound/configuration/parse-growth-config.js";
|
|
6
|
+
import { loadCapabilityConfig } from "./adapters/inbound/configuration/load-capability-config.js";
|
|
7
|
+
import { createFilesystemGrowthInputContext } from "./adapters/outbound/filesystem/growth-input-context.js";
|
|
8
|
+
import { assertGrowthMetadataRootSources } from "./adapters/outbound/filesystem/growth-metadata-root-sources.js";
|
|
9
|
+
import { readGrowthInvocation, assertGrowthDestination, growthBytesDigest, readGrowthInputFile } from "./adapters/outbound/filesystem/growth-invocation.js";
|
|
10
|
+
import { createFilesystemGrowthReportWriter, parseFinalizedGrowthReport } from "./adapters/outbound/filesystem/growth-report-writer.js";
|
|
11
|
+
import { createWorkspaceGrowthReader } from "./adapters/outbound/filesystem/workspace-growth-reader.js";
|
|
12
|
+
import { ReviewRouterGrowthAuthorityAcl } from "./adapters/outbound/reviewrouter/reviewrouter-growth-authority-acl.js";
|
|
13
|
+
import { VerifiedGrowthInputContext } from "./adapters/outbound/reviewrouter/verified-growth-input-context.js";
|
|
14
|
+
import { growthAuthoritySchemaVersion } from "./application/model/growth-authority.js";
|
|
15
|
+
import { GrowthObservationInvariantError } from "./application/model/growth-observation.js";
|
|
16
|
+
import { hashGrowthPayload } from "./application/policies/compare-growth-surfaces.js";
|
|
17
|
+
import { growthCanonicalJson } from "./application/policies/normalize-growth-observation.js";
|
|
18
|
+
import { growthAuthorityGrantDigest, growthAuthorityRepositoryIdentity, growthPromotionPlanDigest, growthReportAuthorityDigests, validateGrowthAuthorityBinding } from "./application/policies/validate-growth-authority.js";
|
|
19
|
+
import { preflightPublicApiPromotions } from "./application/use-cases/preflight-public-api-promotions.js";
|
|
20
|
+
import { qualifySdkGrowth } from "./application/use-cases/qualify-sdk-growth.js";
|
|
21
|
+
import { loadStrictYamlFile } from "../../features/configuration-input/node.js";
|
|
22
|
+
import { createPublicApiArtifactDependencies, createPublicApiCompatibilityDependencies } from "./module.js";
|
|
23
|
+
const files = { read: readContainedRegularFile };
|
|
24
|
+
const paths = { traversesSymbolicLink: pathTraversesSymbolicLink };
|
|
25
|
+
const commandDigestPayload = Object.freeze({ domain: "reviewrouter:sdk-growth-authority:command:1",
|
|
26
|
+
entrypoint: "@agent-teams/engineering-foundation/sdk-growth-authority", operations: ["check", "promote-release"] });
|
|
27
|
+
function invariant(condition, reason) {
|
|
28
|
+
if (!condition) {
|
|
29
|
+
throw new GrowthObservationInvariantError(reason);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/** Trusted ReviewRouter port/adapter assembly. This module publishes no status
|
|
33
|
+
* and owns no ReviewRouter persistence or authentication implementation. */
|
|
34
|
+
export function createSdkGrowthAuthorityModule(dependencies) {
|
|
35
|
+
const common = createPublicApiCompatibilityDependencies(dependencies.readAcceptedDecisions, dependencies.assertSchema);
|
|
36
|
+
if (dependencies.now === undefined) {
|
|
37
|
+
throw new GrowthObservationInvariantError("growth-authority-clock-required");
|
|
38
|
+
}
|
|
39
|
+
const now = dependencies.now;
|
|
40
|
+
const processes = createManagedProcessExecutor();
|
|
41
|
+
async function setup(input, operation, admissionReceiptId) {
|
|
42
|
+
const policy = await loadCapabilityConfig({ readYaml: loadStrictYamlFile, assertSchema: dependencies.assertSchema }, input.consumerRoot, input.configPath, input.signal);
|
|
43
|
+
invariant(policy.schemaVersion === 2, "growth-authority-v2-required");
|
|
44
|
+
await assertGrowthDestination(input.consumerRoot, policy.sdkGrowth.reportPath);
|
|
45
|
+
const inventory = await createWorkspaceGrowthReader(createWorkspaceInventoryReader()).read(input.consumerRoot, "pnpm-workspace.yaml", input.signal);
|
|
46
|
+
assertGrowthReportDestination(policy.sdkGrowth.reportPath, inventory.packages.flatMap((pkg) => [pkg.rootPath, pkg.manifestPath]));
|
|
47
|
+
const identityInputs = { files, runGit: (args, signal) => processes.run({
|
|
48
|
+
command: "git", args, cwd: input.consumerRoot, timeoutMs: 10_000, ...(signal === undefined ? {} : { signal })
|
|
49
|
+
}) };
|
|
50
|
+
const binding = validateGrowthAuthorityBinding(input.binding);
|
|
51
|
+
const mapInvocation = async (signal) => {
|
|
52
|
+
const observed = await readGrowthInvocation(input.consumerRoot, inventory, identityInputs, signal);
|
|
53
|
+
return { ...observed, repository: growthAuthorityRepositoryIdentity(binding.target.repository) };
|
|
54
|
+
};
|
|
55
|
+
const invocation = await mapInvocation(input.signal);
|
|
56
|
+
invariant(growthCanonicalJson(binding.invocation) === growthCanonicalJson(invocation), "growth-authority-invocation-mismatch");
|
|
57
|
+
const configBytes = await readGrowthInputFile(input.consumerRoot, input.configPath, files);
|
|
58
|
+
invariant(binding.policy.configurationDigest === growthBytesDigest(configBytes), "growth-authority-policy-digest-mismatch");
|
|
59
|
+
const scopeDigest = hashGrowthPayload({ domain: "reviewrouter:sdk-growth-authority:scope:1", packages: policy.compatibility.packages }, common.fingerprint);
|
|
60
|
+
invariant(binding.policy.scopeDigest === scopeDigest, "growth-authority-scope-digest-mismatch");
|
|
61
|
+
const commandDigest = hashGrowthPayload(commandDigestPayload, common.fingerprint);
|
|
62
|
+
invariant(binding.policy.commandDigest === commandDigest, "growth-authority-command-digest-mismatch");
|
|
63
|
+
const authority = new ReviewRouterGrowthAuthorityAcl(dependencies.transport, common.fingerprint, now, dependencies.installedInventory);
|
|
64
|
+
const candidate = createFilesystemGrowthInputContext({ consumerRoot: input.consumerRoot, policy: policy.compatibility }, { ...common, assertSchema: dependencies.assertSchema });
|
|
65
|
+
const context = new VerifiedGrowthInputContext({ candidate, authority, binding, operation,
|
|
66
|
+
assertMetadataRoots: (roots, cancellation) => assertGrowthMetadataRootSources(roots, input.consumerRoot, identityInputs, cancellation),
|
|
67
|
+
...(admissionReceiptId === undefined ? {} : { admissionReceiptId }), fingerprint: common.fingerprint, assertSchema: dependencies.assertSchema });
|
|
68
|
+
const readInvocation = (cancellation) => mapInvocation(cancellation.signal);
|
|
69
|
+
return { policy, inventory, invocation, binding, authority, context, readInvocation };
|
|
70
|
+
}
|
|
71
|
+
return Object.freeze({
|
|
72
|
+
async qualifyCheck(input) {
|
|
73
|
+
const state = await setup(input, "check");
|
|
74
|
+
await state.context.read({ ...state.policy.sdkGrowth.comparison, decisionsPath: state.policy.sdkGrowth.decisionsPath }, {
|
|
75
|
+
...(input.signal === undefined ? {} : { signal: input.signal }),
|
|
76
|
+
throwIfCancelled() { if (input.signal?.aborted === true) {
|
|
77
|
+
throw input.signal.reason;
|
|
78
|
+
} }
|
|
79
|
+
});
|
|
80
|
+
const context = {
|
|
81
|
+
read: async () => structuredClone(state.context.resolution().context),
|
|
82
|
+
resolution: () => state.context.resolution(),
|
|
83
|
+
packedCandidates: () => state.context.packedCandidates()
|
|
84
|
+
};
|
|
85
|
+
return qualifySdkGrowth({ consumerRoot: input.consumerRoot, policy: state.policy, invocation: state.invocation,
|
|
86
|
+
...(input.signal === undefined ? {} : { signal: input.signal }) }, {
|
|
87
|
+
repository: common.repository, fingerprint: common.fingerprint, typed: common.extractor,
|
|
88
|
+
artifact: new (await import("./adapters/outbound/filesystem/filesystem-package-artifact-inventory.js")).FilesystemPackageArtifactInventory(dependencies.inspector, { files, paths }),
|
|
89
|
+
workspace: { read: async () => state.inventory }, context, authority: state.authority,
|
|
90
|
+
observationBoundary: (local) => createVerifiedGrowthObservation(local, state.context, common.fingerprint),
|
|
91
|
+
writer: createFilesystemGrowthReportWriter(input.consumerRoot), readInvocation: state.readInvocation
|
|
92
|
+
});
|
|
93
|
+
},
|
|
94
|
+
async promoteRelease(input) {
|
|
95
|
+
const state = await setup(input, "promote-release", input.admissionReceiptId);
|
|
96
|
+
const cancellation = { ...(input.signal === undefined ? {} : { signal: input.signal }), throwIfCancelled() {
|
|
97
|
+
if (input.signal?.aborted === true) {
|
|
98
|
+
throw input.signal.reason;
|
|
99
|
+
}
|
|
100
|
+
} };
|
|
101
|
+
await state.context.read({ ...state.policy.sdkGrowth.comparison, decisionsPath: state.policy.sdkGrowth.decisionsPath }, cancellation);
|
|
102
|
+
const resolved = state.context.resolution();
|
|
103
|
+
invariant(resolved.grant.admissionReceipt.kind === "receipt", "growth-authority-admission-receipt-required");
|
|
104
|
+
const reportBytes = await readGrowthInputFile(input.consumerRoot, state.policy.sdkGrowth.reportPath, files);
|
|
105
|
+
const provenance = resolved.grant.admissionReceipt.receipt.provenance;
|
|
106
|
+
invariant(provenance !== undefined && provenance.completion.reportByteLength === reportBytes.byteLength, "growth-authority-admission-report-mismatch");
|
|
107
|
+
const report = parseFinalizedGrowthReport(reportBytes, common.fingerprint);
|
|
108
|
+
invariant(report.authority.status === "verified" && report.authority.receiptDigest === resolved.grant.admissionReceipt.receipt.grantDigest
|
|
109
|
+
&& report.authority.workflowRef === provenance.grant.workflowRef && report.authority.runRef === provenance.grant.runRef, "growth-authority-admission-provenance-mismatch");
|
|
110
|
+
const reportDigest = growthBytesDigest(reportBytes);
|
|
111
|
+
invariant(resolved.grant.admissionReceipt.receipt.reportDigest === reportDigest, "growth-authority-admission-report-mismatch");
|
|
112
|
+
invariant(report.verdict === "admitted" && report.releaseEligible, "growth-authority-admission-report-ineligible");
|
|
113
|
+
const reportDigests = growthReportAuthorityDigests(report, common.fingerprint);
|
|
114
|
+
invariant(resolved.grant.admissionReceipt.receipt.coverageDigest === reportDigests.coverageDigest
|
|
115
|
+
&& resolved.grant.admissionReceipt.receipt.phasesDigest === reportDigests.phasesDigest, "growth-authority-admission-report-mismatch");
|
|
116
|
+
invariant(reportDigests.coverageDigest === resolved.grant.requiredCoverageDigest, "growth-authority-coverage-mismatch");
|
|
117
|
+
const artifacts = await createPublicApiArtifactDependencies(input.consumerRoot, state.policy.compatibility.packages, common, dependencies.inspector, input.signal);
|
|
118
|
+
let receipt;
|
|
119
|
+
const snapshots = await preflightPublicApiPromotions({ consumerRoot: input.consumerRoot, policy: state.policy.compatibility,
|
|
120
|
+
...(input.signal === undefined ? {} : { signal: input.signal }) }, [common, artifacts], async (writes) => {
|
|
121
|
+
invariant(writes.length === new Set(writes.map((entry) => entry.destination)).size, "growth-authority-promotion-destination-duplicate");
|
|
122
|
+
const plan = { binding: state.binding, writes: writes.toSorted((a, b) => a.destination < b.destination ? -1 : a.destination > b.destination ? 1 : 0) };
|
|
123
|
+
const planDigest = growthPromotionPlanDigest(plan, common.fingerprint);
|
|
124
|
+
const completion = { schemaVersion: growthAuthoritySchemaVersion, kind: "completion", grantId: resolved.grant.grantId,
|
|
125
|
+
grantDigest: growthAuthorityGrantDigest(resolved.grant, common.fingerprint), requestDigest: resolved.requestDigest, binding: state.binding,
|
|
126
|
+
reportDigest, reportByteLength: reportBytes.byteLength, coverageDigest: reportDigests.coverageDigest, phasesDigest: reportDigests.phasesDigest,
|
|
127
|
+
verdict: report.verdict, releaseEligible: report.releaseEligible, publication: "finalized",
|
|
128
|
+
promotion: { kind: "plan", planDigest } };
|
|
129
|
+
invariant(growthCanonicalJson(await state.readInvocation(cancellation)) === growthCanonicalJson(state.invocation), "growth-execution-inputs-changed");
|
|
130
|
+
receipt = await state.authority.complete(completion, cancellation);
|
|
131
|
+
invariant(receipt.qualification === "qualified" && receipt.operation === "promote-release"
|
|
132
|
+
&& receipt.promotion.kind === "plan" && receipt.promotion.planDigest === planDigest, "growth-authority-promotion-receipt-invalid");
|
|
133
|
+
// Completion is asynchronous external IO. Its receipt cannot authorize
|
|
134
|
+
// writes against source bytes that changed while it was in flight.
|
|
135
|
+
invariant(growthCanonicalJson(await state.readInvocation(cancellation)) === growthCanonicalJson(state.invocation), "growth-execution-inputs-changed");
|
|
136
|
+
});
|
|
137
|
+
invariant(receipt !== undefined, "growth-authority-promotion-not-authorized");
|
|
138
|
+
return { snapshots, receipt };
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=authority-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authority-module.js","sourceRoot":"","sources":["../../../src/capabilities/public-api-compatibility/authority-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,33 @@
|
|
|
1
1
|
import { type CapabilityDefinition } from "../../features/validation-reporting/api.js";
|
|
2
|
+
import { NodeChangeFingerprint } from "./adapters/outbound/crypto/node-change-fingerprint.js";
|
|
3
|
+
import { FilesystemPublicApiRepository } from "./adapters/outbound/filesystem/filesystem-public-api-repository.js";
|
|
4
|
+
import { GovernanceAcceptedDecisionEvidenceAcl } from "./adapters/outbound/governance/governance-accepted-decision-evidence-acl.js";
|
|
2
5
|
import { PUBLIC_API_COMPATIBILITY_RULES_BY_ID } from "./application/rules.js";
|
|
3
6
|
import { FilesystemPackageArtifactInventory } from "./adapters/outbound/filesystem/filesystem-package-artifact-inventory.js";
|
|
7
|
+
import { ArtifactPublicApiEvidence } from "./adapters/outbound/filesystem/artifact-public-api-evidence.js";
|
|
4
8
|
import type { JsonSchemaSetInspector } from "./application/ports/package-artifact-inventory.js";
|
|
5
9
|
import { type PublicApiConfigurationDependencies } from "./adapters/inbound/configuration/load-capability-config.js";
|
|
6
10
|
import type { PublicApiExtractor } from "./application/ports/public-api-extractor.js";
|
|
7
11
|
export { PUBLIC_API_COMPATIBILITY_RULES_BY_ID };
|
|
8
12
|
export declare function createPublicApiExtractor(): PublicApiExtractor;
|
|
13
|
+
export declare function createPublicApiCompatibilityDependencies(readAcceptedDecisions: import("./application/ports/accepted-decision-evidence.js").AcceptedArchitectureDecisionReader, assertSchema: PublicApiConfigurationDependencies["assertSchema"]): Readonly<{
|
|
14
|
+
extractor: PublicApiExtractor;
|
|
15
|
+
fingerprint: NodeChangeFingerprint;
|
|
16
|
+
repository: FilesystemPublicApiRepository;
|
|
17
|
+
acceptedDecisionEvidence: GovernanceAcceptedDecisionEvidenceAcl;
|
|
18
|
+
}>;
|
|
9
19
|
export declare function promotePublicApiRelease(input: {
|
|
10
20
|
readonly consumerRoot: string;
|
|
11
21
|
readonly configPath: string;
|
|
12
22
|
readonly signal?: AbortSignal;
|
|
13
23
|
}, readAcceptedDecisions: import("./application/ports/accepted-decision-evidence.js").AcceptedArchitectureDecisionReader, assertSchema: PublicApiConfigurationDependencies["assertSchema"], inspector: JsonSchemaSetInspector): Promise<readonly import("./application/model/public-api.js").PublicApiSnapshot[]>;
|
|
14
24
|
export declare function createPublicApiCompatibilityCapability(readAcceptedDecisions: import("./application/ports/accepted-decision-evidence.js").AcceptedArchitectureDecisionReader, assertSchema: PublicApiConfigurationDependencies["assertSchema"], inspector: JsonSchemaSetInspector): CapabilityDefinition;
|
|
25
|
+
export declare function createPublicApiArtifactDependencies(root: string, packages: readonly import("./application/model/public-api.js").PublicApiPackagePolicy[], dependencies: ReturnType<typeof createPublicApiCompatibilityDependencies>, inspector: JsonSchemaSetInspector, signal?: AbortSignal): Promise<{
|
|
26
|
+
fingerprint: NodeChangeFingerprint;
|
|
27
|
+
acceptedDecisionEvidence: GovernanceAcceptedDecisionEvidenceAcl;
|
|
28
|
+
repository: ArtifactPublicApiEvidence;
|
|
29
|
+
extractor: ArtifactPublicApiEvidence;
|
|
30
|
+
}>;
|
|
15
31
|
export { observedPackageExports } from "./application/policies/validate-package-export-coverage.js";
|
|
16
32
|
export { assertPackedWildcardMembers } from "./application/policies/compare-package-artifact-inventory.js";
|
|
17
33
|
export { mapReleasedArtifactBaseline } from "./adapters/outbound/filesystem/public-api-artifact-baseline.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/capabilities/public-api-compatibility/module.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,oBAAoB,EAE1B,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/capabilities/public-api-compatibility/module.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,oBAAoB,EAE1B,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,oEAAoE,CAAC;AACnH,OAAO,EAAE,qCAAqC,EAAE,MAAM,6EAA6E,CAAC;AACpI,OAAO,EAAE,oCAAoC,EAAE,MAAM,wBAAwB,CAAC;AAG9E,OAAO,EAAE,kCAAkC,EAAE,MAAM,yEAAyE,CAAC;AAC7H,OAAO,EAAE,yBAAyB,EAAE,MAAM,gEAAgE,CAAC;AAC3G,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAOhG,OAAO,EAAwB,KAAK,kCAAkC,EAAE,MAAM,4DAA4D,CAAC;AAK3I,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAetF,OAAO,EAAE,oCAAoC,EAAE,CAAC;AAEhD,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D;AAED,wBAAgB,wCAAwC,CAAC,qBAAqB,EAAE,OAAO,mDAAmD,EAAE,kCAAkC,EAAE,YAAY,EAAE,kCAAkC,CAAC,cAAc,CAAC;;;;;GAO/O;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B,EAAE,qBAAqB,EAAE,OAAO,mDAAmD,EAAE,kCAAkC,EAAE,YAAY,EAAE,kCAAkC,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,sBAAsB,qFAoB5N;AAED,wBAAgB,sCAAsC,CAAC,qBAAqB,EAAE,OAAO,mDAAmD,EAAE,kCAAkC,EAAE,YAAY,EAAE,kCAAkC,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,sBAAsB,GAAG,oBAAoB,CAsDvS;AAED,wBAAsB,mCAAmC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,OAAO,mCAAmC,EAAE,sBAAsB,EAAE,EAAE,YAAY,EAAE,UAAU,CAAC,OAAO,wCAAwC,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,WAAW;;;;;GAIlS;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,4DAA4D,CAAC;AACpG,OAAO,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAC3G,OAAO,EAAE,2BAA2B,EAAE,MAAM,gEAAgE,CAAC;AAC7G,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,sBAAsB,sCAE/E"}
|