@agent-teams/engineering-foundation 1.2.0 → 1.3.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/configuration/load-public-api-audit.d.ts +4 -0
- package/dist/capabilities/public-api-compatibility/adapters/inbound/configuration/load-public-api-audit.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/inbound/configuration/load-public-api-audit.js +13 -0
- package/dist/capabilities/public-api-compatibility/adapters/inbound/configuration/load-public-api-audit.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/audit-compiler-bindings.d.ts +17 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/audit-compiler-bindings.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/audit-compiler-bindings.js +139 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/audit-compiler-bindings.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/load-pinned-audit-sdk.d.ts +7 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/load-pinned-audit-sdk.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/load-pinned-audit-sdk.js +14 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/load-pinned-audit-sdk.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-extractor.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-extractor.js +10 -43
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-extractor.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-observer.d.ts +6 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-observer.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-observer.js +497 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-observer.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/pinned-audit-compiler.d.ts +101 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/pinned-audit-compiler.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/pinned-audit-compiler.js +2 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/pinned-audit-compiler.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/prepare-public-api-extractor.d.ts +15 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/prepare-public-api-extractor.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/prepare-public-api-extractor.js +47 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/prepare-public-api-extractor.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-audit-inputs.d.ts +43 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-audit-inputs.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-audit-inputs.js +239 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-audit-inputs.js.map +1 -0
- 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.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/stage-public-api-audit.d.ts +12 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/stage-public-api-audit.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/stage-public-api-audit.js +169 -0
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/stage-public-api-audit.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/api.d.ts +3 -0
- package/dist/capabilities/public-api-compatibility/api.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/api.js +2 -0
- package/dist/capabilities/public-api-compatibility/api.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/model/public-api-audit-report.d.ts +36 -0
- package/dist/capabilities/public-api-compatibility/application/model/public-api-audit-report.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/model/public-api-audit-report.js +2 -0
- package/dist/capabilities/public-api-compatibility/application/model/public-api-audit-report.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/model/public-api-observation.d.ts +73 -0
- package/dist/capabilities/public-api-compatibility/application/model/public-api-observation.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/model/public-api-observation.js +5 -0
- package/dist/capabilities/public-api-compatibility/application/model/public-api-observation.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/project-public-api-observation.d.ts +33 -0
- package/dist/capabilities/public-api-compatibility/application/policies/project-public-api-observation.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/project-public-api-observation.js +110 -0
- package/dist/capabilities/public-api-compatibility/application/policies/project-public-api-observation.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/public-api-audit-eligibility.d.ts +9 -0
- package/dist/capabilities/public-api-compatibility/application/policies/public-api-audit-eligibility.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/policies/public-api-audit-eligibility.js +180 -0
- package/dist/capabilities/public-api-compatibility/application/policies/public-api-audit-eligibility.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/ports/public-api-observer.d.ts +29 -0
- package/dist/capabilities/public-api-compatibility/application/ports/public-api-observer.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/ports/public-api-observer.js +2 -0
- package/dist/capabilities/public-api-compatibility/application/ports/public-api-observer.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/use-cases/audit-public-api.d.ts +14 -0
- package/dist/capabilities/public-api-compatibility/application/use-cases/audit-public-api.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/application/use-cases/audit-public-api.js +144 -0
- package/dist/capabilities/public-api-compatibility/application/use-cases/audit-public-api.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/contract/public-api-audit.d.ts +58 -0
- package/dist/capabilities/public-api-compatibility/contract/public-api-audit.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/contract/public-api-audit.js +2 -0
- package/dist/capabilities/public-api-compatibility/contract/public-api-audit.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/node.d.ts +3 -0
- package/dist/capabilities/public-api-compatibility/node.d.ts.map +1 -0
- package/dist/capabilities/public-api-compatibility/node.js +2 -0
- package/dist/capabilities/public-api-compatibility/node.js.map +1 -0
- package/dist/capabilities/public-api-compatibility/schemas.d.ts +1 -1
- package/dist/capabilities/public-api-compatibility/schemas.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/schemas.js +2 -0
- package/dist/capabilities/public-api-compatibility/schemas.js.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/inbound/configuration/load-capability-config.d.ts +1 -0
- package/dist/capabilities/source-dependencies/adapters/inbound/configuration/load-capability-config.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/inbound/configuration/load-capability-config.js +3 -0
- package/dist/capabilities/source-dependencies/adapters/inbound/configuration/load-capability-config.js.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/selected-package-source-discovery.d.ts +2 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/selected-package-source-discovery.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/selected-package-source-discovery.js +5 -4
- package/dist/capabilities/source-dependencies/adapters/outbound/node/selected-package-source-discovery.js.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/source-census-reader.d.ts +3 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/source-census-reader.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/source-census-reader.js +32 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/source-census-reader.js.map +1 -0
- package/dist/capabilities/source-dependencies/api.d.ts +1 -0
- package/dist/capabilities/source-dependencies/api.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/api.js.map +1 -1
- package/dist/capabilities/source-dependencies/application/ports/source-census-reader.d.ts +13 -0
- package/dist/capabilities/source-dependencies/application/ports/source-census-reader.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/application/ports/source-census-reader.js +2 -0
- package/dist/capabilities/source-dependencies/application/ports/source-census-reader.js.map +1 -0
- package/dist/capabilities/source-dependencies/module.d.ts +2 -0
- package/dist/capabilities/source-dependencies/module.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/module.js +2 -0
- package/dist/capabilities/source-dependencies/module.js.map +1 -1
- package/dist/capabilities/suppression-governance/adapters/inbound/configuration/load-capability-config.d.ts +1 -0
- package/dist/capabilities/suppression-governance/adapters/inbound/configuration/load-capability-config.d.ts.map +1 -1
- package/dist/capabilities/suppression-governance/adapters/inbound/configuration/load-capability-config.js +3 -0
- package/dist/capabilities/suppression-governance/adapters/inbound/configuration/load-capability-config.js.map +1 -1
- package/dist/capabilities/suppression-governance/module.d.ts +1 -0
- package/dist/capabilities/suppression-governance/module.d.ts.map +1 -1
- package/dist/capabilities/suppression-governance/module.js +1 -0
- package/dist/capabilities/suppression-governance/module.js.map +1 -1
- package/dist/composition/capability-modules.d.ts.map +1 -1
- package/dist/composition/capability-modules.js +3 -0
- package/dist/composition/capability-modules.js.map +1 -1
- package/dist/composition/command-host.d.ts.map +1 -1
- package/dist/composition/command-host.js +2 -1
- package/dist/composition/command-host.js.map +1 -1
- package/dist/composition/quality-coverage.d.ts +6 -0
- package/dist/composition/quality-coverage.d.ts.map +1 -0
- package/dist/composition/quality-coverage.js +25 -0
- package/dist/composition/quality-coverage.js.map +1 -0
- package/dist/features/command-host/adapters/inbound/cli/cli-arguments.d.ts.map +1 -1
- package/dist/features/command-host/adapters/inbound/cli/cli-arguments.js +17 -2
- package/dist/features/command-host/adapters/inbound/cli/cli-arguments.js.map +1 -1
- package/dist/features/command-host/adapters/inbound/cli/foundation-cli.d.ts.map +1 -1
- package/dist/features/command-host/adapters/inbound/cli/foundation-cli.js +38 -1
- package/dist/features/command-host/adapters/inbound/cli/foundation-cli.js.map +1 -1
- package/dist/features/command-host/application/command-invocation.d.ts +1 -0
- package/dist/features/command-host/application/command-invocation.d.ts.map +1 -1
- package/dist/features/command-host/application/command-invocation.js.map +1 -1
- package/dist/features/command-host/application/command-reporting.d.ts +2 -2
- package/dist/features/command-host/application/command-reporting.d.ts.map +1 -1
- package/dist/features/command-host/application/command-reporting.js +4 -1
- package/dist/features/command-host/application/command-reporting.js.map +1 -1
- package/dist/features/command-host/application/command-services.d.ts +10 -1
- package/dist/features/command-host/application/command-services.d.ts.map +1 -1
- package/dist/features/command-host/composition/node-command-host.d.ts +4 -1
- package/dist/features/command-host/composition/node-command-host.d.ts.map +1 -1
- package/dist/features/command-host/composition/node-command-host.js +3 -0
- package/dist/features/command-host/composition/node-command-host.js.map +1 -1
- package/dist/features/foundation-check/adapters/inbound/config/foundation-config-reader.d.ts.map +1 -1
- package/dist/features/foundation-check/adapters/inbound/config/foundation-config-reader.js +2 -1
- package/dist/features/foundation-check/adapters/inbound/config/foundation-config-reader.js.map +1 -1
- package/dist/features/foundation-check/application/ports/foundation-config-input.d.ts +1 -1
- package/dist/features/foundation-check/application/ports/foundation-config-input.d.ts.map +1 -1
- package/dist/features/foundation-check/schemas.d.ts +1 -1
- package/dist/features/foundation-check/schemas.d.ts.map +1 -1
- package/dist/features/foundation-check/schemas.js +2 -1
- package/dist/features/foundation-check/schemas.js.map +1 -1
- package/dist/features/quality-coverage/adapters/configuration.d.ts +3 -0
- package/dist/features/quality-coverage/adapters/configuration.d.ts.map +1 -0
- package/dist/features/quality-coverage/adapters/configuration.js +4 -0
- package/dist/features/quality-coverage/adapters/configuration.js.map +1 -0
- package/dist/features/quality-coverage/adapters/consumer-execution.d.ts +12 -0
- package/dist/features/quality-coverage/adapters/consumer-execution.d.ts.map +1 -0
- package/dist/features/quality-coverage/adapters/consumer-execution.js +35 -0
- package/dist/features/quality-coverage/adapters/consumer-execution.js.map +1 -0
- package/dist/features/quality-coverage/adapters/consumer-observations.d.ts +8 -0
- package/dist/features/quality-coverage/adapters/consumer-observations.d.ts.map +1 -0
- package/dist/features/quality-coverage/adapters/consumer-observations.js +93 -0
- package/dist/features/quality-coverage/adapters/consumer-observations.js.map +1 -0
- package/dist/features/quality-coverage/adapters/consumer-toolchain.d.ts +13 -0
- package/dist/features/quality-coverage/adapters/consumer-toolchain.d.ts.map +1 -0
- package/dist/features/quality-coverage/adapters/consumer-toolchain.js +84 -0
- package/dist/features/quality-coverage/adapters/consumer-toolchain.js.map +1 -0
- package/dist/features/quality-coverage/adapters/oxlint-output.d.ts +8 -0
- package/dist/features/quality-coverage/adapters/oxlint-output.d.ts.map +1 -0
- package/dist/features/quality-coverage/adapters/oxlint-output.js +53 -0
- package/dist/features/quality-coverage/adapters/oxlint-output.js.map +1 -0
- package/dist/features/quality-coverage/adapters/oxlint-session.d.ts +14 -0
- package/dist/features/quality-coverage/adapters/oxlint-session.d.ts.map +1 -0
- package/dist/features/quality-coverage/adapters/oxlint-session.js +53 -0
- package/dist/features/quality-coverage/adapters/oxlint-session.js.map +1 -0
- package/dist/features/quality-coverage/adapters/profile-input.d.ts +9 -0
- package/dist/features/quality-coverage/adapters/profile-input.d.ts.map +1 -0
- package/dist/features/quality-coverage/adapters/profile-input.js +110 -0
- package/dist/features/quality-coverage/adapters/profile-input.js.map +1 -0
- package/dist/features/quality-coverage/adapters/protected-config.d.ts +15 -0
- package/dist/features/quality-coverage/adapters/protected-config.d.ts.map +1 -0
- package/dist/features/quality-coverage/adapters/protected-config.js +200 -0
- package/dist/features/quality-coverage/adapters/protected-config.js.map +1 -0
- package/dist/features/quality-coverage/api.d.ts +13 -0
- package/dist/features/quality-coverage/api.d.ts.map +1 -0
- package/dist/features/quality-coverage/api.js +7 -0
- package/dist/features/quality-coverage/api.js.map +1 -0
- package/dist/features/quality-coverage/application/capability.d.ts +7 -0
- package/dist/features/quality-coverage/application/capability.d.ts.map +1 -0
- package/dist/features/quality-coverage/application/capability.js +12 -0
- package/dist/features/quality-coverage/application/capability.js.map +1 -0
- package/dist/features/quality-coverage/application/check-quality-coverage.d.ts +9 -0
- package/dist/features/quality-coverage/application/check-quality-coverage.d.ts.map +1 -0
- package/dist/features/quality-coverage/application/check-quality-coverage.js +56 -0
- package/dist/features/quality-coverage/application/check-quality-coverage.js.map +1 -0
- package/dist/features/quality-coverage/application/evaluate-coverage.d.ts +6 -0
- package/dist/features/quality-coverage/application/evaluate-coverage.d.ts.map +1 -0
- package/dist/features/quality-coverage/application/evaluate-coverage.js +125 -0
- package/dist/features/quality-coverage/application/evaluate-coverage.js.map +1 -0
- package/dist/features/quality-coverage/application/input-observations.d.ts +6 -0
- package/dist/features/quality-coverage/application/input-observations.d.ts.map +1 -0
- package/dist/features/quality-coverage/application/input-observations.js +2 -0
- package/dist/features/quality-coverage/application/input-observations.js.map +1 -0
- package/dist/features/quality-coverage/application/model.d.ts +57 -0
- package/dist/features/quality-coverage/application/model.d.ts.map +1 -0
- package/dist/features/quality-coverage/application/model.js +2 -0
- package/dist/features/quality-coverage/application/model.js.map +1 -0
- package/dist/features/quality-coverage/application/observation-input.d.ts +17 -0
- package/dist/features/quality-coverage/application/observation-input.d.ts.map +1 -0
- package/dist/features/quality-coverage/application/observation-input.js +2 -0
- package/dist/features/quality-coverage/application/observation-input.js.map +1 -0
- package/dist/features/quality-coverage/application/profile.d.ts +38 -0
- package/dist/features/quality-coverage/application/profile.d.ts.map +1 -0
- package/dist/features/quality-coverage/application/profile.js +2 -0
- package/dist/features/quality-coverage/application/profile.js.map +1 -0
- package/dist/features/quality-coverage/application/rules.d.ts +20 -0
- package/dist/features/quality-coverage/application/rules.d.ts.map +1 -0
- package/dist/features/quality-coverage/application/rules.js +33 -0
- package/dist/features/quality-coverage/application/rules.js.map +1 -0
- package/dist/features/quality-coverage/application/script-route.d.ts +3 -0
- package/dist/features/quality-coverage/application/script-route.d.ts.map +1 -0
- package/dist/features/quality-coverage/application/script-route.js +46 -0
- package/dist/features/quality-coverage/application/script-route.js.map +1 -0
- package/dist/features/quality-coverage/application/source-coverage.d.ts +19 -0
- package/dist/features/quality-coverage/application/source-coverage.d.ts.map +1 -0
- package/dist/features/quality-coverage/application/source-coverage.js +46 -0
- package/dist/features/quality-coverage/application/source-coverage.js.map +1 -0
- package/dist/features/quality-coverage/application/tool-execution.d.ts +2 -0
- package/dist/features/quality-coverage/application/tool-execution.d.ts.map +1 -0
- package/dist/features/quality-coverage/application/tool-execution.js +2 -0
- package/dist/features/quality-coverage/application/tool-execution.js.map +1 -0
- package/dist/features/quality-coverage/node.d.ts +5 -0
- package/dist/features/quality-coverage/node.d.ts.map +1 -0
- package/dist/features/quality-coverage/node.js +5 -0
- package/dist/features/quality-coverage/node.js.map +1 -0
- package/dist/features/quality-coverage/schemas.d.ts +2 -0
- package/dist/features/quality-coverage/schemas.d.ts.map +1 -0
- package/dist/features/quality-coverage/schemas.js +2 -0
- package/dist/features/quality-coverage/schemas.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/process-execution/node-process-runner.d.ts.map +1 -1
- package/dist/process-execution/node-process-runner.js +15 -0
- package/dist/process-execution/node-process-runner.js.map +1 -1
- package/dist/process-execution/windows-managed-process.js +2 -2
- package/dist/process-execution/windows-managed-process.js.map +1 -1
- package/dist/schema-catalog.d.ts +1 -1
- package/dist/schema-catalog.d.ts.map +1 -1
- package/dist/schema-ids.d.ts +1 -1
- package/dist/schema-ids.d.ts.map +1 -1
- package/dist/schema-ids.js +2 -0
- package/dist/schema-ids.js.map +1 -1
- package/dist/source-inventory/adapters/outbound/filesystem/filesystem-source-tree-reader.d.ts.map +1 -1
- package/dist/source-inventory/adapters/outbound/filesystem/filesystem-source-tree-reader.js +4 -0
- package/dist/source-inventory/adapters/outbound/filesystem/filesystem-source-tree-reader.js.map +1 -1
- package/package.json +5 -1
- package/schemas/foundation-config/v2.schema.json +201 -0
- package/schemas/package-public-api-audit-report/v1.schema.json +1400 -0
- package/schemas/package-public-api-audit-request/v1.schema.json +339 -0
- package/schemas/quality-source-coverage/v1.schema.json +119 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { auditIdentityKey, PUBLIC_API_AUDIT_PROFILE } from "../model/public-api-observation.js";
|
|
2
|
+
function result(reasons) {
|
|
3
|
+
return { eligible: reasons.size === 0, reasons: [...reasons].toSorted() };
|
|
4
|
+
}
|
|
5
|
+
function modelReasons(observation) {
|
|
6
|
+
if (!observation.modelExpected) {
|
|
7
|
+
const invalid = observation.exportPath !== null || observation.modelPresent || observation.modelDigest !== undefined || observation.items.length > 0
|
|
8
|
+
|| observation.invocation.outcome !== "not-invoked" || observation.invocation.succeeded
|
|
9
|
+
|| observation.invocation.errorCount !== null || observation.invocation.warningCount !== null
|
|
10
|
+
|| observation.diagnostics.some((diagnostic) => diagnostic.source === "extractor");
|
|
11
|
+
return invalid ? ["invalid-empty-export-observation"] : [];
|
|
12
|
+
}
|
|
13
|
+
const reasons = [];
|
|
14
|
+
if (observation.exportPath === null) {
|
|
15
|
+
reasons.push("missing-model-export-path");
|
|
16
|
+
}
|
|
17
|
+
if (!observation.modelPresent) {
|
|
18
|
+
reasons.push("missing-model");
|
|
19
|
+
}
|
|
20
|
+
if (observation.modelPresent && observation.modelDigest === undefined) {
|
|
21
|
+
reasons.push("missing-model-digest");
|
|
22
|
+
}
|
|
23
|
+
if (observation.invocation.outcome !== "completed") {
|
|
24
|
+
reasons.push("incomplete-invocation");
|
|
25
|
+
}
|
|
26
|
+
return reasons;
|
|
27
|
+
}
|
|
28
|
+
// Check the runtime profile independently of the producer's literal TypeScript claim.
|
|
29
|
+
function supportedProfile(profile) {
|
|
30
|
+
return profile === PUBLIC_API_AUDIT_PROFILE;
|
|
31
|
+
}
|
|
32
|
+
function observationReasons(observation) {
|
|
33
|
+
const reasons = [];
|
|
34
|
+
if (!observation.inputBytesRevalidated) {
|
|
35
|
+
reasons.push("input-bytes-not-revalidated");
|
|
36
|
+
}
|
|
37
|
+
if (!observation.compilerDiagnosticsCollected) {
|
|
38
|
+
reasons.push("compiler-diagnostics-unavailable");
|
|
39
|
+
}
|
|
40
|
+
reasons.push(...modelReasons(observation));
|
|
41
|
+
if (!supportedProfile(observation.normalizationProfile)) {
|
|
42
|
+
reasons.push("unsupported-profile");
|
|
43
|
+
}
|
|
44
|
+
const errors = observation.diagnostics.filter((diagnostic) => diagnostic.severity === "error");
|
|
45
|
+
if (errors.some((diagnostic) => diagnostic.source !== "extractor" || diagnostic.id !== "ae-forgotten-export")) {
|
|
46
|
+
reasons.push("non-forgotten-export-error");
|
|
47
|
+
}
|
|
48
|
+
if (observation.modelExpected && !observation.invocation.succeeded && errors.length === 0) {
|
|
49
|
+
reasons.push("unexplained-extraction-failure");
|
|
50
|
+
}
|
|
51
|
+
if (observation.modelExpected && observation.invocation.errorCount !== errors.filter((diagnostic) => diagnostic.source === "extractor").length) {
|
|
52
|
+
reasons.push("incomplete-extractor-diagnostics");
|
|
53
|
+
}
|
|
54
|
+
return [...reasons, ...observation.unsupported];
|
|
55
|
+
}
|
|
56
|
+
function parentReasons(item, observation) {
|
|
57
|
+
const reasons = [];
|
|
58
|
+
const visited = new Set();
|
|
59
|
+
let cursor = item;
|
|
60
|
+
let expectedPublic = true;
|
|
61
|
+
while (cursor !== undefined) {
|
|
62
|
+
if (visited.has(cursor.identity.canonicalReference)) {
|
|
63
|
+
reasons.push("parent-cycle");
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
visited.add(cursor.identity.canonicalReference);
|
|
67
|
+
expectedPublic &&= cursor.isExported !== false;
|
|
68
|
+
if (cursor.parentKind === "EntryPoint") {
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
if (!["Namespace", "Class", "Interface", "Enum"].includes(cursor.parentKind)) {
|
|
72
|
+
reasons.push("unsupported-parent-semantics");
|
|
73
|
+
}
|
|
74
|
+
const parent = observation.items.find((candidate) => candidate.identity.canonicalReference === cursor?.parentReference);
|
|
75
|
+
if (parent === undefined || parent.kind !== cursor.parentKind) {
|
|
76
|
+
reasons.push("unsupported-parent");
|
|
77
|
+
}
|
|
78
|
+
cursor = parent;
|
|
79
|
+
}
|
|
80
|
+
if (item.public !== expectedPublic) {
|
|
81
|
+
reasons.push("inconsistent-parent-visibility");
|
|
82
|
+
}
|
|
83
|
+
return reasons;
|
|
84
|
+
}
|
|
85
|
+
function itemReasons(item, observation) {
|
|
86
|
+
const reasons = [...parentReasons(item, observation)];
|
|
87
|
+
if (item.identity.subject !== observation.subject || item.identity.packageName !== observation.packageName || item.identity.exportPath !== observation.exportPath) {
|
|
88
|
+
reasons.push("invalid-scoped-identity");
|
|
89
|
+
}
|
|
90
|
+
if (item.parentKind === "EntryPoint" && item.isExported === null) {
|
|
91
|
+
reasons.push("unsupported-root-visibility");
|
|
92
|
+
}
|
|
93
|
+
if (!item.excerpt.trim() && item.kind !== "Namespace") {
|
|
94
|
+
reasons.push("empty-declaration-excerpt");
|
|
95
|
+
}
|
|
96
|
+
return reasons;
|
|
97
|
+
}
|
|
98
|
+
function referenceReasons(reference, observation, identities) {
|
|
99
|
+
if (reference.resolution === "verified-external-library") {
|
|
100
|
+
return reference.library === undefined || reference.library.declarations.length === 0 ? ["unverified-library"] : [];
|
|
101
|
+
}
|
|
102
|
+
if ((reference.resolution !== "local" && reference.resolution !== "same-subject-dependency") || reference.target === undefined || !identities.has(auditIdentityKey(reference.target))) {
|
|
103
|
+
return ["incomplete-reference-resolution"];
|
|
104
|
+
}
|
|
105
|
+
const reasons = [];
|
|
106
|
+
if (reference.target.subject !== observation.subject) {
|
|
107
|
+
reasons.push("cross-subject-reference");
|
|
108
|
+
}
|
|
109
|
+
if (reference.resolution === "local" && (reference.target.packageName !== observation.packageName || reference.target.exportPath !== observation.exportPath)) {
|
|
110
|
+
reasons.push("invalid-local-reference");
|
|
111
|
+
}
|
|
112
|
+
if (reference.resolution === "same-subject-dependency" && reference.target.packageName === observation.packageName) {
|
|
113
|
+
reasons.push("invalid-dependency-reference");
|
|
114
|
+
}
|
|
115
|
+
return reasons;
|
|
116
|
+
}
|
|
117
|
+
/** Admission is Foundation-derived; extraction failure remains a separate failed gate. */
|
|
118
|
+
export function publicApiAuditEligibility(observations) {
|
|
119
|
+
const reasons = new Set();
|
|
120
|
+
const identities = new Set();
|
|
121
|
+
if (observations.length === 0) {
|
|
122
|
+
reasons.add("missing-observations");
|
|
123
|
+
}
|
|
124
|
+
const subject = observations[0]?.subject;
|
|
125
|
+
for (const observation of observations) {
|
|
126
|
+
if (observation.subject !== subject) {
|
|
127
|
+
reasons.add("mixed-subjects");
|
|
128
|
+
}
|
|
129
|
+
for (const reason of observationReasons(observation)) {
|
|
130
|
+
reasons.add(reason);
|
|
131
|
+
}
|
|
132
|
+
for (const item of observation.items) {
|
|
133
|
+
const key = auditIdentityKey(item.identity);
|
|
134
|
+
if (identities.has(key)) {
|
|
135
|
+
reasons.add("duplicate-scoped-identity");
|
|
136
|
+
}
|
|
137
|
+
identities.add(key);
|
|
138
|
+
for (const reason of itemReasons(item, observation)) {
|
|
139
|
+
reasons.add(reason);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
for (const observation of observations) {
|
|
144
|
+
for (const reference of observation.items.flatMap((item) => item.references)) {
|
|
145
|
+
for (const reason of referenceReasons(reference, observation, identities)) {
|
|
146
|
+
reasons.add(reason);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return result(reasons);
|
|
151
|
+
}
|
|
152
|
+
function environments(observations) {
|
|
153
|
+
return [...new Set(observations.map((observation) => observation.compilerEnvironment))].toSorted();
|
|
154
|
+
}
|
|
155
|
+
function libraries(observations) {
|
|
156
|
+
return [...new Set(observations.flatMap((observation) => observation.externalDeclarations.map((file) => JSON.stringify([file.path, file.digest]))))].toSorted();
|
|
157
|
+
}
|
|
158
|
+
export function publicApiAuditPairEligibility(before, after) {
|
|
159
|
+
const reasons = new Set([...publicApiAuditEligibility(before).reasons, ...publicApiAuditEligibility(after).reasons]);
|
|
160
|
+
const tools = new Set([...before, ...after].map((observation) => observation.toolchain));
|
|
161
|
+
if (tools.size !== 1) {
|
|
162
|
+
reasons.add("toolchain-mismatch");
|
|
163
|
+
}
|
|
164
|
+
const packages = new Set([...before, ...after].map((observation) => observation.packageName));
|
|
165
|
+
for (const packageName of packages) {
|
|
166
|
+
const left = before.filter((observation) => observation.packageName === packageName);
|
|
167
|
+
const right = after.filter((observation) => observation.packageName === packageName);
|
|
168
|
+
if (left.length === 0 || right.length === 0) {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
if (JSON.stringify(environments(left)) !== JSON.stringify(environments(right))) {
|
|
172
|
+
reasons.add("compiler-environment-mismatch");
|
|
173
|
+
}
|
|
174
|
+
if (JSON.stringify(libraries(left)) !== JSON.stringify(libraries(right))) {
|
|
175
|
+
reasons.add("compiler-library-mismatch");
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return result(reasons);
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=public-api-audit-eligibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-api-audit-eligibility.js","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/policies/public-api-audit-eligibility.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { AuditDeclarationInput, PublicApiAuditRequest } from "../../contract/public-api-audit.js";
|
|
2
|
+
import type { AuditObservation, AuditSubject } from "../model/public-api-observation.js";
|
|
3
|
+
import type { PublicApiSnapshot } from "../model/public-api.js";
|
|
4
|
+
export interface PublicApiObserver {
|
|
5
|
+
observe(input: {
|
|
6
|
+
readonly consumerRoot: string;
|
|
7
|
+
readonly subject: AuditSubject;
|
|
8
|
+
readonly declarations: AuditDeclarationInput;
|
|
9
|
+
readonly signal?: AbortSignal;
|
|
10
|
+
}): Promise<readonly AuditObservation[]>;
|
|
11
|
+
}
|
|
12
|
+
/** Monotonic reservations owned by one audit invocation, including failed reads. */
|
|
13
|
+
export interface AuditInputBudget {
|
|
14
|
+
bytes: number;
|
|
15
|
+
files: number;
|
|
16
|
+
}
|
|
17
|
+
/** Requires a caller-frozen input namespace (including ancestors) for the whole
|
|
18
|
+
* invocation. Digests authenticate supplied content, not filesystem containment
|
|
19
|
+
* against concurrent writers. Revalidation is best-effort mutation detection.
|
|
20
|
+
*/
|
|
21
|
+
export interface PublicApiAuditInputs {
|
|
22
|
+
load(consumerRoot: string, configPath: string): Promise<{
|
|
23
|
+
readonly request: PublicApiAuditRequest;
|
|
24
|
+
readonly digest: string;
|
|
25
|
+
}>;
|
|
26
|
+
baseline(consumerRoot: string, input: PublicApiAuditRequest["subjects"]["B"]["baselines"][number], budget: AuditInputBudget): Promise<PublicApiSnapshot>;
|
|
27
|
+
revalidate(consumerRoot: string, request: PublicApiAuditRequest): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=public-api-observer.d.ts.map
|
package/dist/capabilities/public-api-compatibility/application/ports/public-api-observer.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-api-observer.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/ports/public-api-observer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AACvG,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,KAAK,EAAE;QACb,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;QAC/B,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;QAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;KAC/B,GAAG,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;CAC1C;AACD,oFAAoF;AACpF,MAAM,WAAW,gBAAgB;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAClE;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9H,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzJ,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjF"}
|
package/dist/capabilities/public-api-compatibility/application/ports/public-api-observer.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-api-observer.js","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/ports/public-api-observer.ts"],"names":[],"mappings":""}
|
package/dist/capabilities/public-api-compatibility/application/use-cases/audit-public-api.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PublicApiAuditReport } from "../model/public-api-audit-report.js";
|
|
2
|
+
import type { PublicApiAuditInputs, PublicApiObserver } from "../ports/public-api-observer.js";
|
|
3
|
+
import type { ChangeFingerprint } from "../ports/change-fingerprint.js";
|
|
4
|
+
export declare function auditPublicApi(input: {
|
|
5
|
+
readonly consumerRoot: string;
|
|
6
|
+
readonly configPath: string;
|
|
7
|
+
readonly foundationVersion: string;
|
|
8
|
+
readonly signal?: AbortSignal;
|
|
9
|
+
}, dependencies: {
|
|
10
|
+
readonly inputs: PublicApiAuditInputs;
|
|
11
|
+
readonly observer: PublicApiObserver;
|
|
12
|
+
readonly fingerprint: ChangeFingerprint;
|
|
13
|
+
}): Promise<PublicApiAuditReport>;
|
|
14
|
+
//# sourceMappingURL=audit-public-api.d.ts.map
|
package/dist/capabilities/public-api-compatibility/application/use-cases/audit-public-api.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-public-api.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/use-cases/audit-public-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAmB,MAAM,qCAAqC,CAAC;AACjG,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAoFxE,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/H,EAAE,YAAY,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;CAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAuCxK"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { classifyPublicApiChange } from "../policies/evaluate-public-api-compatibility.js";
|
|
2
|
+
import { publicApiAuditPairEligibility } from "../policies/public-api-audit-eligibility.js";
|
|
3
|
+
import { projectPublicApiObservation } from "../policies/project-public-api-observation.js";
|
|
4
|
+
import { assertNotCancelled } from "../policies/public-api-evidence-errors.js";
|
|
5
|
+
const HISTORICAL_LIMITATIONS = ["B records stored declarations only; original export visibility is not reconstructible.", "B lacks hidden declarations, ordered reference targets and compiler-input closure.", "Stored-surface findings do not qualify a rich comparison or release admission."];
|
|
6
|
+
function stored(observations, pkg) {
|
|
7
|
+
const selected = observations.filter((observation) => observation.packageName === pkg.packageName);
|
|
8
|
+
if (selected.length !== Math.max(1, pkg.entrypoints.length) || selected.some((observation) => observation.storedSurface === undefined || !observation.inputBytesRevalidated)) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return { schemaVersion: 1, packageName: pkg.packageName, packageVersion: pkg.packageVersion,
|
|
12
|
+
extractorVersion: selected[0]?.storedSurface?.extractorVersion ?? "",
|
|
13
|
+
entrypoints: selected.flatMap((observation) => observation.storedSurface?.entrypoints ?? []) };
|
|
14
|
+
}
|
|
15
|
+
/** Admit each package with its declared reference dependencies, never unrelated packages. */
|
|
16
|
+
function packageScope(observations, packageName) {
|
|
17
|
+
const names = new Set([packageName]);
|
|
18
|
+
const pending = [packageName];
|
|
19
|
+
while (pending.length > 0) {
|
|
20
|
+
const current = pending.pop();
|
|
21
|
+
for (const observation of observations.filter((candidate) => candidate.packageName === current)) {
|
|
22
|
+
for (const reference of observation.items.flatMap((item) => item.references)) {
|
|
23
|
+
const dependency = reference.target?.packageName;
|
|
24
|
+
if (dependency !== undefined && !names.has(dependency)) {
|
|
25
|
+
names.add(dependency);
|
|
26
|
+
pending.push(dependency);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return observations.filter((observation) => names.has(observation.packageName));
|
|
32
|
+
}
|
|
33
|
+
function completeExportCoverage(observations, pkg) {
|
|
34
|
+
if (pkg === undefined) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
const expected = pkg.entrypoints.map((entry) => entry.exportPath).toSorted();
|
|
38
|
+
const observed = observations.filter((observation) => observation.packageName === pkg.packageName).flatMap((observation) => observation.exportPath === null ? [] : [observation.exportPath]).toSorted();
|
|
39
|
+
return JSON.stringify(expected) === JSON.stringify(observed);
|
|
40
|
+
}
|
|
41
|
+
function retainComparison(comparisons, comparison, budget) {
|
|
42
|
+
const size = JSON.stringify(comparison).length;
|
|
43
|
+
if (budget.characters + size > 16 * 1024 * 1024) {
|
|
44
|
+
comparisons.push({ pair: comparison.pair, packageName: comparison.packageName, scope: comparison.scope,
|
|
45
|
+
eligibility: { eligible: false, reasons: [...comparison.eligibility.reasons, "comparison-output-budget-exhausted"] }, limitations: comparison.limitations });
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
budget.characters += size;
|
|
49
|
+
comparisons.push(comparison);
|
|
50
|
+
}
|
|
51
|
+
function historicalComparison(input, fingerprint) {
|
|
52
|
+
const { pair, packageName, observed, baseline } = input;
|
|
53
|
+
const reasons = input.inputsRevalidated ? [] : ["input-evidence-failure"];
|
|
54
|
+
if (observed === undefined || baseline === undefined) {
|
|
55
|
+
reasons.push("stored-surface-unavailable");
|
|
56
|
+
}
|
|
57
|
+
if (observed !== undefined && baseline !== undefined && observed.extractorVersion !== baseline.extractorVersion) {
|
|
58
|
+
reasons.push("historical-extractor-version-mismatch");
|
|
59
|
+
}
|
|
60
|
+
const findings = reasons.length > 0 || observed === undefined || baseline === undefined ? undefined
|
|
61
|
+
: classifyPublicApiChange(pair === "A-B" ? observed : baseline, pair === "A-B" ? baseline : observed, fingerprint);
|
|
62
|
+
return { pair, packageName, scope: "historical-stored-surface", eligibility: { eligible: reasons.length === 0, reasons }, limitations: HISTORICAL_LIMITATIONS,
|
|
63
|
+
...(findings === undefined ? {} : { findings }) };
|
|
64
|
+
}
|
|
65
|
+
function richComparison(input, fingerprint) {
|
|
66
|
+
const aScope = packageScope(input.a, input.packageName);
|
|
67
|
+
const cScope = packageScope(input.c, input.packageName);
|
|
68
|
+
const reasons = [...publicApiAuditPairEligibility(aScope, cScope).reasons];
|
|
69
|
+
if (!input.packagesPresent) {
|
|
70
|
+
reasons.push("package-unavailable");
|
|
71
|
+
}
|
|
72
|
+
if (!input.coverageComplete) {
|
|
73
|
+
reasons.push("incomplete-export-path-observations");
|
|
74
|
+
}
|
|
75
|
+
if (!input.inputsRevalidated) {
|
|
76
|
+
reasons.push("input-evidence-failure");
|
|
77
|
+
}
|
|
78
|
+
let projections = {};
|
|
79
|
+
if (reasons.length === 0) {
|
|
80
|
+
try {
|
|
81
|
+
const beforeProjection = projectPublicApiObservation(aScope, input.packageName);
|
|
82
|
+
const afterProjection = projectPublicApiObservation(cScope, input.packageName);
|
|
83
|
+
const auditFingerprint = { sha256: (value) => fingerprint.sha256(`foundation:public-api-audit:declaration-graph:1\n${value}`) };
|
|
84
|
+
projections = { beforeProjection, afterProjection, findings: classifyPublicApiChange(beforeProjection.snapshot, afterProjection.snapshot, auditFingerprint) };
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
reasons.push(`unsupported-graph: ${String(error)}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return { pair: "A-C", packageName: input.packageName, scope: "declaration-graph", eligibility: { eligible: reasons.length === 0, reasons }, limitations: ["Bounded declaration/reference comparison; no assignability or semantic-equivalence claim."], ...projections };
|
|
91
|
+
}
|
|
92
|
+
export async function auditPublicApi(input, dependencies) {
|
|
93
|
+
assertNotCancelled(input.signal);
|
|
94
|
+
const loaded = await dependencies.inputs.load(input.consumerRoot, input.configPath);
|
|
95
|
+
const request = loaded.request;
|
|
96
|
+
const observations = [];
|
|
97
|
+
const comparisons = [];
|
|
98
|
+
const comparisonBudget = { characters: 0 };
|
|
99
|
+
const baselineBudget = { bytes: 0, files: 0 };
|
|
100
|
+
const errors = [];
|
|
101
|
+
for (const subject of ["A", "C"]) {
|
|
102
|
+
assertNotCancelled(input.signal);
|
|
103
|
+
try {
|
|
104
|
+
observations.push(...await dependencies.observer.observe({ consumerRoot: input.consumerRoot, subject, declarations: request.subjects[subject], ...(input.signal === undefined ? {} : { signal: input.signal }) }));
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
errors.push(`${subject}: ${String(error)}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
await dependencies.inputs.revalidate(input.consumerRoot, request);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
errors.push(`Input revalidation failed: ${String(error)}`);
|
|
115
|
+
}
|
|
116
|
+
const inputsRevalidated = errors.length === 0;
|
|
117
|
+
const a = observations.filter((observation) => observation.subject === "A");
|
|
118
|
+
const c = observations.filter((observation) => observation.subject === "C");
|
|
119
|
+
const names = [...new Set([...request.subjects.A.packages, ...request.subjects.C.packages, ...request.subjects.B.baselines].map((pkg) => pkg.packageName))].toSorted();
|
|
120
|
+
for (const packageName of names) {
|
|
121
|
+
const aPackage = request.subjects.A.packages.find((pkg) => pkg.packageName === packageName);
|
|
122
|
+
const cPackage = request.subjects.C.packages.find((pkg) => pkg.packageName === packageName);
|
|
123
|
+
let baseline;
|
|
124
|
+
const b = request.subjects.B.baselines.find((pkg) => pkg.packageName === packageName);
|
|
125
|
+
if (b !== undefined) {
|
|
126
|
+
try {
|
|
127
|
+
baseline = await dependencies.inputs.baseline(input.consumerRoot, b, baselineBudget);
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
errors.push(`B/${packageName}: ${String(error)}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
retainComparison(comparisons, historicalComparison({ pair: "A-B", packageName, observed: aPackage === undefined ? undefined : stored(a, aPackage), baseline, inputsRevalidated }, dependencies.fingerprint), comparisonBudget);
|
|
134
|
+
retainComparison(comparisons, historicalComparison({ pair: "B-C", packageName, observed: cPackage === undefined ? undefined : stored(c, cPackage), baseline, inputsRevalidated }, dependencies.fingerprint), comparisonBudget);
|
|
135
|
+
retainComparison(comparisons, richComparison({ a, c, packageName, packagesPresent: aPackage !== undefined && cPackage !== undefined, coverageComplete: completeExportCoverage(a, aPackage) && completeExportCoverage(c, cPackage), inputsRevalidated }, dependencies.fingerprint), comparisonBudget);
|
|
136
|
+
}
|
|
137
|
+
assertNotCancelled(input.signal);
|
|
138
|
+
const evidenceComplete = errors.length === 0 && comparisons.length > 0 && comparisons.every((comparison) => comparison.eligibility.eligible);
|
|
139
|
+
const failed = observations.some((observation) => (observation.modelExpected && !observation.invocation.succeeded) || observation.diagnostics.some((diagnostic) => diagnostic.severity === "error"));
|
|
140
|
+
return { schemaVersion: 1, operation: "public-api-audit", releaseEligible: false, foundationVersion: input.foundationVersion, requestDigest: loaded.digest,
|
|
141
|
+
custody: { supplied: request.subjects, archiveProvenanceVerified: false, archiveDigestVerified: false, archiveInventoryCompletenessVerified: false, buildExecutionVerified: false }, observations, comparisons, evidenceComplete, errors,
|
|
142
|
+
exitCode: evidenceComplete && !failed ? 0 : 2 };
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=audit-public-api.js.map
|
package/dist/capabilities/public-api-compatibility/application/use-cases/audit-public-api.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-public-api.js","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/use-cases/audit-public-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export interface AuditFileIdentity {
|
|
2
|
+
readonly path: string;
|
|
3
|
+
readonly digest: string;
|
|
4
|
+
}
|
|
5
|
+
export interface AuditPackageInput {
|
|
6
|
+
readonly packageName: string;
|
|
7
|
+
readonly packageVersion: string;
|
|
8
|
+
readonly manifestPath: string;
|
|
9
|
+
readonly tsconfigPath: string;
|
|
10
|
+
readonly entrypoints: readonly {
|
|
11
|
+
readonly exportPath: string;
|
|
12
|
+
readonly declarationEntryPoint: string;
|
|
13
|
+
}[];
|
|
14
|
+
readonly nonTypeExports: readonly {
|
|
15
|
+
readonly exportPath: string;
|
|
16
|
+
readonly kind: "data" | "runtime" | "wildcard";
|
|
17
|
+
}[];
|
|
18
|
+
}
|
|
19
|
+
export interface AuditDeclarationInput {
|
|
20
|
+
readonly packages: readonly AuditPackageInput[];
|
|
21
|
+
/** Exact complete allowed non-toolchain input set, including configs and manifests. */
|
|
22
|
+
readonly files: readonly AuditFileIdentity[];
|
|
23
|
+
readonly resolutionUniverse: readonly {
|
|
24
|
+
readonly packageName: string;
|
|
25
|
+
readonly exportPath: string;
|
|
26
|
+
readonly declarationPath: string;
|
|
27
|
+
}[];
|
|
28
|
+
}
|
|
29
|
+
/** Content-addressed evidence in an externally frozen namespace. Preparation
|
|
30
|
+
* must finish and all writers must be excluded before the request is consumed;
|
|
31
|
+
* the auditor cannot verify that external custody precondition.
|
|
32
|
+
*/
|
|
33
|
+
export interface PublicApiAuditRequest {
|
|
34
|
+
readonly schemaVersion: 1;
|
|
35
|
+
readonly subjects: {
|
|
36
|
+
readonly A: AuditDeclarationInput & {
|
|
37
|
+
readonly archive: {
|
|
38
|
+
readonly digest: string;
|
|
39
|
+
readonly extractedMembers: readonly AuditFileIdentity[];
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
readonly B: {
|
|
43
|
+
readonly baselines: readonly {
|
|
44
|
+
readonly packageName: string;
|
|
45
|
+
readonly path: string;
|
|
46
|
+
readonly digest: string;
|
|
47
|
+
}[];
|
|
48
|
+
};
|
|
49
|
+
readonly C: AuditDeclarationInput & {
|
|
50
|
+
readonly build: {
|
|
51
|
+
readonly sourceIdentity: string;
|
|
52
|
+
readonly buildIdentity: string;
|
|
53
|
+
readonly declarations: readonly AuditFileIdentity[];
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=public-api-audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-api-audit.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/public-api-compatibility/contract/public-api-audit.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,SAAS;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzG,QAAQ,CAAC,cAAc,EAAE,SAAS;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA;KAAE,EAAE,CAAC;CACrH;AACD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,uFAAuF;IACvF,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,QAAQ,CAAC,kBAAkB,EAAE,SAAS;QAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACzI;AACD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,CAAC,EAAE,qBAAqB,GAAG;YAClC,QAAQ,CAAC,OAAO,EAAE;gBAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,iBAAiB,EAAE,CAAA;aAAE,CAAC;SACxG,CAAC;QACF,QAAQ,CAAC,CAAC,EAAE;YAAE,QAAQ,CAAC,SAAS,EAAE,SAAS;gBAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;aAAE,EAAE,CAAA;SAAE,CAAC;QAChI,QAAQ,CAAC,CAAC,EAAE,qBAAqB,GAAG;YAClC,QAAQ,CAAC,KAAK,EAAE;gBAAE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,iBAAiB,EAAE,CAAA;aAAE,CAAC;SAC1I,CAAC;KACH,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-api-audit.js","sourceRoot":"","sources":["../../../../src/capabilities/public-api-compatibility/contract/public-api-audit.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/capabilities/public-api-compatibility/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2DAA2D,CAAC;AAC9F,YAAY,EAAE,6BAA6B,EAAE,MAAM,2DAA2D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/capabilities/public-api-compatibility/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2DAA2D,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const PUBLIC_API_COMPATIBILITY_SCHEMA_IDS: readonly ["package-public-api-baseline/v1", "package-public-api-compatibility/v1"];
|
|
1
|
+
export declare const PUBLIC_API_COMPATIBILITY_SCHEMA_IDS: readonly ["package-public-api-audit-request/v1", "package-public-api-audit-report/v1", "package-public-api-baseline/v1", "package-public-api-compatibility/v1"];
|
|
2
2
|
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/capabilities/public-api-compatibility/schemas.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,mCAAmC,YAC9C,gCAAgC,EAChC,qCAAqC,CAC7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/capabilities/public-api-compatibility/schemas.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,mCAAmC,YAC9C,qCAAqC,EACrC,oCAAoC,EACpC,gCAAgC,EAChC,qCAAqC,CAC7B,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// Published schema identities contributed by their semantic owner. Schema bytes stay in schemas/.
|
|
2
2
|
export const PUBLIC_API_COMPATIBILITY_SCHEMA_IDS = [
|
|
3
|
+
"package-public-api-audit-request/v1",
|
|
4
|
+
"package-public-api-audit-report/v1",
|
|
3
5
|
"package-public-api-baseline/v1",
|
|
4
6
|
"package-public-api-compatibility/v1"
|
|
5
7
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/capabilities/public-api-compatibility/schemas.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,gCAAgC;IAChC,qCAAqC;CAC7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/capabilities/public-api-compatibility/schemas.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,qCAAqC;IACrC,oCAAoC;IACpC,gCAAgC;IAChC,qCAAqC;CAC7B,CAAC"}
|
|
@@ -3,5 +3,6 @@ export interface SourceArchitectureConfigurationDependencies {
|
|
|
3
3
|
readonly readYaml: (consumerRoot: string, configPath: string, phase: string) => Promise<unknown>;
|
|
4
4
|
readonly assertSchema: (schemaId: "architecture-source-dependencies/v1" | "architecture-source-dependencies/v2" | "architecture-source-dependencies/v3", input: unknown, phase: string) => Promise<void>;
|
|
5
5
|
}
|
|
6
|
+
export declare function createSourceArchitecturePolicyReader(dependencies: SourceArchitectureConfigurationDependencies): (consumerRoot: string, configPath: string, signal?: AbortSignal) => Promise<SourceArchitecturePolicy>;
|
|
6
7
|
export declare function loadCapabilityConfig(dependencies: SourceArchitectureConfigurationDependencies, consumerRoot: string, configPath: string, signal?: AbortSignal, observeSchemaVersion?: (version: SourceArchitectureConfigSchemaVersion) => void): Promise<SourceArchitecturePolicy>;
|
|
7
8
|
//# sourceMappingURL=load-capability-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-capability-config.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/source-dependencies/adapters/inbound/configuration/load-capability-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qCAAqC,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAItI,MAAM,WAAW,2CAA2C;IAC1D,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjG,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,qCAAqC,GAAG,qCAAqC,GAAG,qCAAqC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1M;AAQD,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,2CAA2C,EACzD,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,EACpB,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,qCAAqC,KAAK,IAAI,GAC9E,OAAO,CAAC,wBAAwB,CAAC,CAenC"}
|
|
1
|
+
{"version":3,"file":"load-capability-config.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/source-dependencies/adapters/inbound/configuration/load-capability-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qCAAqC,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAItI,MAAM,WAAW,2CAA2C;IAC1D,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjG,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,qCAAqC,GAAG,qCAAqC,GAAG,qCAAqC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1M;AAQD,wBAAgB,oCAAoC,CAAC,YAAY,EAAE,2CAA2C,kBACtF,MAAM,cAAc,MAAM,WAAW,WAAW,uCAEvE;AAED,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,2CAA2C,EACzD,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,EACpB,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,qCAAqC,KAAK,IAAI,GAC9E,OAAO,CAAC,wBAAwB,CAAC,CAenC"}
|
|
@@ -5,6 +5,9 @@ const SOURCE_ARCHITECTURE_SCHEMA_IDS = Object.freeze({
|
|
|
5
5
|
2: "architecture-source-dependencies/v2",
|
|
6
6
|
3: "architecture-source-dependencies/v3"
|
|
7
7
|
});
|
|
8
|
+
export function createSourceArchitecturePolicyReader(dependencies) {
|
|
9
|
+
return (consumerRoot, configPath, signal) => loadCapabilityConfig(dependencies, consumerRoot, configPath, signal);
|
|
10
|
+
}
|
|
8
11
|
export async function loadCapabilityConfig(dependencies, consumerRoot, configPath, signal, observeSchemaVersion) {
|
|
9
12
|
let input;
|
|
10
13
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-capability-config.js","sourceRoot":"","sources":["../../../../../../src/capabilities/source-dependencies/adapters/inbound/configuration/load-capability-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAO3G,MAAM,8BAA8B,GAAG,MAAM,CAAC,MAAM,CAAC;IACnD,CAAC,EAAE,qCAAqC;IACxC,CAAC,EAAE,qCAAqC;IACxC,CAAC,EAAE,qCAAqC;CAChC,CAAC,CAAC;AAEZ,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAAyD,EACzD,YAAoB,EACpB,UAAkB,EAClB,MAAoB,EACpB,oBAA+E;IAE/E,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,uEAAuE;QACvE,qEAAqE;QACrE,KAAK,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,EAAE,4BAA4B,CAAC,CAAC;IAC9F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,+BAA+B,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACnD,oBAAoB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,YAAY,CAAC,YAAY,CAAC,8BAA8B,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,4BAA4B,CAAC,CAAC;IACrH,OAAO,6BAA6B,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"load-capability-config.js","sourceRoot":"","sources":["../../../../../../src/capabilities/source-dependencies/adapters/inbound/configuration/load-capability-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAO3G,MAAM,8BAA8B,GAAG,MAAM,CAAC,MAAM,CAAC;IACnD,CAAC,EAAE,qCAAqC;IACxC,CAAC,EAAE,qCAAqC;IACxC,CAAC,EAAE,qCAAqC;CAChC,CAAC,CAAC;AAEZ,MAAM,UAAU,oCAAoC,CAAC,YAAyD;IAC5G,OAAO,CAAC,YAAoB,EAAE,UAAkB,EAAE,MAAoB,EAAE,EAAE,CACxE,oBAAoB,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAAyD,EACzD,YAAoB,EACpB,UAAkB,EAClB,MAAoB,EACpB,oBAA+E;IAE/E,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,uEAAuE;QACvE,qEAAqE;QACrE,KAAK,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,EAAE,4BAA4B,CAAC,CAAC;IAC9F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,+BAA+B,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACnD,oBAAoB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,YAAY,CAAC,YAAY,CAAC,8BAA8B,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,4BAA4B,CAAC,CAAC;IACrH,OAAO,6BAA6B,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -25,9 +25,11 @@ export declare function sourceWorkspaceDiscoveryLimits(overrides?: Partial<Sourc
|
|
|
25
25
|
export declare function recordDiscoveryEntry(path: string, budget: DiscoveryBudget, limits: SourceWorkspaceDiscoveryLimits): void;
|
|
26
26
|
export declare function discoverSourceWorkspacePaths(canonicalConsumerRoot: string, options: {
|
|
27
27
|
readonly repositoryRoots: readonly string[];
|
|
28
|
+
readonly recursivePackages?: boolean;
|
|
28
29
|
readonly rootSourceRoots?: readonly string[];
|
|
29
30
|
readonly budget?: DiscoveryBudget;
|
|
30
31
|
readonly observeManifest?: (manifestPath: string) => Promise<boolean>;
|
|
32
|
+
readonly observeFile?: (repositoryPath: string) => void;
|
|
31
33
|
readonly selectedPackageRoots?: readonly string[];
|
|
32
34
|
readonly governedRoots?: readonly string[];
|
|
33
35
|
readonly boundaryRoots?: readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selected-package-source-discovery.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/source-dependencies/adapters/outbound/node/selected-package-source-discovery.ts"],"names":[],"mappings":"AASA,OAAO,EAKL,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EAC1B,MAAM,kCAAkC,CAAC;AAe1C,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAUD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChF;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,kBAAkB,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC7D,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAOD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAYD,wBAAgB,8BAA8B,CAC5C,SAAS,GAAE,OAAO,CAAC,8BAA8B,CAAC,GAAG,SAAc,GAClE,8BAA8B,CAahC;AAiBD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,8BAA8B,GACrC,IAAI,CAYN;
|
|
1
|
+
{"version":3,"file":"selected-package-source-discovery.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/source-dependencies/adapters/outbound/node/selected-package-source-discovery.ts"],"names":[],"mappings":"AASA,OAAO,EAKL,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EAC1B,MAAM,kCAAkC,CAAC;AAe1C,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAUD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChF;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,kBAAkB,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC7D,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAOD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAYD,wBAAgB,8BAA8B,CAC5C,SAAS,GAAE,OAAO,CAAC,8BAA8B,CAAC,GAAG,SAAc,GAClE,8BAA8B,CAahC;AAiBD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,8BAA8B,GACrC,IAAI,CAYN;AAyND,wBAAsB,4BAA4B,CAChD,qBAAqB,EAAE,MAAM,EAC7B,OAAO,EAAE;IACP,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,6BAA6B,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B,GACA,OAAO,CAAC,8BAA8B,CAAC,CAoGzC;AAED,OAAO,EAAE,kCAAkC,EAAE,2BAA2B,EAAE,MAAM,mEAAmE,CAAC"}
|