@agent-teams/engineering-foundation 1.1.1 → 1.2.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/README.md +9 -0
- package/dist/capabilities/source-dependencies/adapters/inbound/configuration/load-capability-config.d.ts +1 -1
- 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 -2
- package/dist/capabilities/source-dependencies/adapters/inbound/configuration/load-capability-config.js.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/inbound/configuration/parse-capability-config.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/inbound/configuration/parse-capability-config.js +17 -13
- package/dist/capabilities/source-dependencies/adapters/inbound/configuration/parse-capability-config.js.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/generated-output-filesystem.d.ts +1 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/generated-output-filesystem.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/generated-output-filesystem.js +22 -7
- package/dist/capabilities/source-dependencies/adapters/outbound/node/generated-output-filesystem.js.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/generated-output-manifest-observations.d.ts +8 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/generated-output-manifest-observations.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/generated-output-manifest-observations.js +135 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/generated-output-manifest-observations.js.map +1 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/node-source-dependency-resolver.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/node-source-dependency-resolver.js +1 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/node-source-dependency-resolver.js.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/pnpm-source-workspace-snapshot.d.ts +4 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/pnpm-source-workspace-snapshot.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/pnpm-source-workspace-snapshot.js +70 -34
- package/dist/capabilities/source-dependencies/adapters/outbound/node/pnpm-source-workspace-snapshot.js.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/pnpm-source-workspace-topology-inspector.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/pnpm-source-workspace-topology-inspector.js +12 -4
- package/dist/capabilities/source-dependencies/adapters/outbound/node/pnpm-source-workspace-topology-inspector.js.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/root-package-source-scopes.d.ts +20 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/root-package-source-scopes.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/root-package-source-scopes.js +164 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/root-package-source-scopes.js.map +1 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/selected-package-source-discovery.d.ts +11 -4
- 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 +38 -67
- package/dist/capabilities/source-dependencies/adapters/outbound/node/selected-package-source-discovery.js.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/selected-package-source-snapshot-reader.d.ts +1 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/selected-package-source-snapshot-reader.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/selected-package-source-snapshot-reader.js +4 -1
- package/dist/capabilities/source-dependencies/adapters/outbound/node/selected-package-source-snapshot-reader.js.map +1 -1
- package/dist/capabilities/source-dependencies/application/model/source-workspace-topology.d.ts +1 -0
- package/dist/capabilities/source-dependencies/application/model/source-workspace-topology.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/application/model/source-workspace.d.ts +5 -1
- package/dist/capabilities/source-dependencies/application/model/source-workspace.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/application/policies/evaluate-resolved-source-dependency.js +1 -1
- package/dist/capabilities/source-dependencies/application/policies/evaluate-source-workspace-coverage.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/application/policies/evaluate-source-workspace-coverage.js +19 -14
- package/dist/capabilities/source-dependencies/application/policies/evaluate-source-workspace-coverage.js.map +1 -1
- package/dist/capabilities/source-dependencies/application/policies/selected-source-package-topology.d.ts +5 -0
- package/dist/capabilities/source-dependencies/application/policies/selected-source-package-topology.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/application/policies/selected-source-package-topology.js +59 -0
- package/dist/capabilities/source-dependencies/application/policies/selected-source-package-topology.js.map +1 -0
- package/dist/capabilities/source-dependencies/application/policies/source-package-ownership.d.ts +11 -0
- package/dist/capabilities/source-dependencies/application/policies/source-package-ownership.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/application/policies/source-package-ownership.js +27 -0
- package/dist/capabilities/source-dependencies/application/policies/source-package-ownership.js.map +1 -0
- package/dist/capabilities/source-dependencies/application/ports/source-dependency-resolver.d.ts +1 -0
- package/dist/capabilities/source-dependencies/application/ports/source-dependency-resolver.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/application/ports/source-workspace-topology-inspector.d.ts +3 -0
- package/dist/capabilities/source-dependencies/application/ports/source-workspace-topology-inspector.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/application/use-cases/analyze-source-dependencies.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/application/use-cases/analyze-source-dependencies.js +17 -8
- package/dist/capabilities/source-dependencies/application/use-cases/analyze-source-dependencies.js.map +1 -1
- package/dist/capabilities/source-dependencies/application/use-cases/build-observed-source-graph.d.ts +1 -0
- package/dist/capabilities/source-dependencies/application/use-cases/build-observed-source-graph.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/application/use-cases/build-observed-source-graph.js +1 -0
- package/dist/capabilities/source-dependencies/application/use-cases/build-observed-source-graph.js.map +1 -1
- package/dist/capabilities/source-dependencies/contract/config.d.ts +1 -1
- package/dist/capabilities/source-dependencies/contract/config.js +1 -1
- package/dist/capabilities/source-dependencies/module.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/module.js +1 -1
- package/dist/capabilities/source-dependencies/module.js.map +1 -1
- package/dist/capabilities/source-dependencies/schemas.d.ts +1 -1
- package/dist/capabilities/source-dependencies/schemas.d.ts.map +1 -1
- package/dist/capabilities/source-dependencies/schemas.js +2 -1
- package/dist/capabilities/source-dependencies/schemas.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/package.json +2 -1
- package/schemas/architecture-source-dependencies/v3.schema.json +195 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RootPackageSourceScopes } from "./root-package-source-scopes.js";
|
|
1
2
|
import { join, posix } from "node:path";
|
|
2
3
|
import { compareBinaryStrings } from "../../../../../binary-string-comparator.js";
|
|
3
4
|
import { assertSourceManifestByteLimit, assertSourceTopologyActive as assertNotCancelled, isSourceTopologyProblem, sourceTopologyInputError as inputError } from "../../../api.js";
|
|
@@ -73,27 +74,33 @@ function assertPortableDiscoveryAgreement(workspaceManifestPaths, discovered) {
|
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
77
|
+
function selectedWorkspaceRoots(input, workspaceManifestPaths, observations) {
|
|
78
|
+
return workspaceManifestPaths
|
|
79
|
+
.filter((manifestPath) => manifestPath !== "package.json" &&
|
|
80
|
+
(observations === undefined || observations.authorityPaths().includes(manifestPath)) &&
|
|
81
|
+
input.packageRoots.some((packageRoot) => manifestSelectedByPackageRoot(manifestPath, packageRoot)))
|
|
82
|
+
.map(packageRootForManifest);
|
|
83
|
+
}
|
|
84
|
+
function selectObservedPackages(input, workspaceManifestPaths, discovered, observations) {
|
|
85
|
+
const ownership = observations?.deriveOwnership(input.governedRoots, input.v3?.includeRootPackage === true);
|
|
86
|
+
const authorityPaths = ownership?.ownershipManifestPaths;
|
|
87
|
+
const unclassifiedWorkspaceManifest = (authorityPaths ?? workspaceManifestPaths).find((manifestPath) => manifestPath !== "package.json" &&
|
|
88
|
+
!input.packageRoots.some((packageRoot) => manifestSelectedByPackageRoot(manifestPath, packageRoot)));
|
|
89
|
+
if (unclassifiedWorkspaceManifest !== undefined) {
|
|
90
|
+
inputError("WORKSPACE_PACKAGE_OUTSIDE_PACKAGE_ROOTS", `pnpm workspace package is outside the closed schema v2 packageRoots contract: ${unclassifiedWorkspaceManifest}.`);
|
|
91
|
+
}
|
|
92
|
+
if (input.v3?.includeRootPackage === true && ownership?.rootSourceRoots.length === 0) {
|
|
93
|
+
inputError("SOURCE_ROOT_PACKAGE_SCOPE_EMPTY", "Root package participation requires a root-owned governed source root.");
|
|
94
|
+
}
|
|
95
|
+
const selectedManifestPaths = Object.freeze((authorityPaths ?? discovered.manifestPaths).filter((manifestPath) => manifestPath === "package.json"
|
|
96
|
+
? input.v3?.includeRootPackage === true
|
|
97
|
+
: input.packageRoots.some((packageRoot) => manifestSelectedByPackageRoot(manifestPath, packageRoot))));
|
|
98
|
+
assertPackageRootsContainPackages(input.packageRoots, selectedManifestPaths);
|
|
99
|
+
const manifestPaths = Object.freeze([...new Set(["package.json", ...selectedManifestPaths])].toSorted(compareBinaryStrings));
|
|
100
|
+
return { ownership, selectedManifestPaths, manifestPaths };
|
|
101
|
+
}
|
|
102
|
+
async function discoverWorkspaceManifests(snapshotInput, canonicalConsumerRoot, workspaceManifest) {
|
|
103
|
+
const { input, fileSystem } = snapshotInput;
|
|
97
104
|
let workspaceManifestPaths;
|
|
98
105
|
try {
|
|
99
106
|
workspaceManifestPaths = await snapshotInput.inventoryReader
|
|
@@ -117,12 +124,44 @@ export async function capturePnpmSourceWorkspaceSnapshot(snapshotInput) {
|
|
|
117
124
|
}
|
|
118
125
|
throw error;
|
|
119
126
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
127
|
+
return workspaceManifestPaths;
|
|
128
|
+
}
|
|
129
|
+
export async function capturePnpmSourceWorkspaceSnapshot(snapshotInput) {
|
|
130
|
+
const { fileSystem, input } = snapshotInput;
|
|
131
|
+
assertNotCancelled(input.signal);
|
|
132
|
+
const workspaceManifest = await snapshotInput.workspaceManifestLoader(input.consumerRoot, input.workspaceManifestPath, "source-workspace-topology", input.signal);
|
|
133
|
+
const canonicalConsumerRoot = await fileSystem
|
|
134
|
+
.realpath(input.consumerRoot)
|
|
135
|
+
.catch(() => {
|
|
136
|
+
assertNotCancelled(input.signal);
|
|
137
|
+
return inputError("CONSUMER_ROOT_UNAVAILABLE", "Consumer root must be an existing accessible directory.");
|
|
138
|
+
});
|
|
139
|
+
assertNotCancelled(input.signal);
|
|
140
|
+
const consumerRootSnapshot = await captureStableRepositoryPath(canonicalConsumerRoot, ".", "directory", fileSystem, input.signal);
|
|
141
|
+
const configuredPackageRoots = await inspectUniqueRoots({
|
|
142
|
+
canonicalConsumerRoot,
|
|
143
|
+
expectedKind: "directory",
|
|
144
|
+
label: "Configured package roots",
|
|
145
|
+
operations: fileSystem,
|
|
146
|
+
roots: input.packageRoots,
|
|
147
|
+
...(input.signal === undefined ? {} : { signal: input.signal }),
|
|
148
|
+
symbolicLinkCode: "PACKAGE_ROOT_SYMLINK_PROHIBITED"
|
|
149
|
+
});
|
|
150
|
+
const workspaceManifestPaths = await discoverWorkspaceManifests(snapshotInput, canonicalConsumerRoot, workspaceManifest);
|
|
151
|
+
const observations = input.v3 === undefined ? undefined : new RootPackageSourceScopes(canonicalConsumerRoot, fileSystem, snapshotInput.limits, input.signal);
|
|
152
|
+
await observations?.observeAncestry([...input.governedRoots, ...input.packageRoots]);
|
|
153
|
+
for (const manifestPath of observations === undefined ? [] : workspaceManifestPaths) {
|
|
154
|
+
await observations?.observe(manifestPath);
|
|
155
|
+
}
|
|
156
|
+
const initialOwnership = observations?.deriveOwnership(input.governedRoots, input.v3?.includeRootPackage === true);
|
|
157
|
+
const selectedWorkspacePackageRoots = selectedWorkspaceRoots(input, workspaceManifestPaths, observations);
|
|
124
158
|
const discovered = await discoverSourceWorkspacePaths(canonicalConsumerRoot, {
|
|
125
159
|
repositoryRoots: input.packageRoots,
|
|
160
|
+
...(observations === undefined ? {} : {
|
|
161
|
+
budget: observations.budget,
|
|
162
|
+
rootSourceRoots: initialOwnership?.rootSourceRoots ?? [],
|
|
163
|
+
observeManifest: (path) => observations.observe(path)
|
|
164
|
+
}),
|
|
126
165
|
governedRoots: input.governedRoots,
|
|
127
166
|
boundaryRoots: input.boundaryRoots.map(({ path }) => path),
|
|
128
167
|
selectedPackageRoots: selectedWorkspacePackageRoots,
|
|
@@ -132,19 +171,16 @@ export async function capturePnpmSourceWorkspaceSnapshot(snapshotInput) {
|
|
|
132
171
|
...(input.signal === undefined ? {} : { signal: input.signal })
|
|
133
172
|
});
|
|
134
173
|
assertPortableDiscoveryAgreement(workspaceManifestPaths, discovered);
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
if (unclassifiedWorkspaceManifest !== undefined) {
|
|
138
|
-
inputError("WORKSPACE_PACKAGE_OUTSIDE_PACKAGE_ROOTS", `pnpm workspace package is outside the closed schema v2 packageRoots contract: ${unclassifiedWorkspaceManifest}.`);
|
|
139
|
-
}
|
|
140
|
-
const selectedManifestPaths = Object.freeze(discovered.manifestPaths.filter((manifestPath) => input.packageRoots.some((packageRoot) => manifestSelectedByPackageRoot(manifestPath, packageRoot))));
|
|
141
|
-
assertPackageRootsContainPackages(input.packageRoots, selectedManifestPaths);
|
|
142
|
-
const manifestPaths = Object.freeze([...new Set(["package.json", ...selectedManifestPaths])].toSorted(compareBinaryStrings));
|
|
174
|
+
const { ownership, selectedManifestPaths, manifestPaths } = selectObservedPackages(input, workspaceManifestPaths, discovered, observations);
|
|
175
|
+
await observations?.revalidate();
|
|
143
176
|
const inventory = await snapshotInput.inventoryReader.readFromManifestPaths(canonicalConsumerRoot, workspaceManifest, manifestPaths, input.signal);
|
|
144
|
-
|
|
177
|
+
await observations?.revalidate();
|
|
178
|
+
const packageTypeScopes = observations?.typeScopes() ?? await readPackageTypeScopes(canonicalConsumerRoot, discovered.manifestPaths, fileSystem, input.signal);
|
|
145
179
|
const selectedManifestSet = new Set(selectedManifestPaths);
|
|
146
180
|
const selectedPackages = inventory.packages.filter((workspacePackage) => selectedManifestSet.has(workspacePackage.manifestPath));
|
|
147
181
|
return Object.freeze({
|
|
182
|
+
...(observations === undefined ? {} : { observations }),
|
|
183
|
+
...(ownership === undefined ? {} : { ownership }),
|
|
148
184
|
canonicalConsumerRoot,
|
|
149
185
|
configuredPackageRoots,
|
|
150
186
|
consumerRootSnapshot,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pnpm-source-workspace-snapshot.js","sourceRoot":"","sources":["../../../../../../src/capabilities/source-dependencies/adapters/outbound/node/pnpm-source-workspace-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,IAAI,kBAAkB,EAChD,uBAAuB,EACvB,wBAAwB,IAAI,UAAU,EAEvC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAC;AAK/F,OAAO,EACL,4BAA4B,EAI7B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,2BAA2B,EAG5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"pnpm-source-workspace-snapshot.js","sourceRoot":"","sources":["../../../../../../src/capabilities/source-dependencies/adapters/outbound/node/pnpm-source-workspace-snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pnpm-source-workspace-topology-inspector.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/source-dependencies/adapters/outbound/node/pnpm-source-workspace-topology-inspector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pnpm-source-workspace-topology-inspector.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/source-dependencies/adapters/outbound/node/pnpm-source-workspace-topology-inspector.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EACnC,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AACvG,OAAO,KAAK,EACV,mCAAmC,EAEnC,sCAAsC,EACtC,gCAAgC,EACjC,MAAM,mEAAmE,CAAC;AAC3E,OAAO,EAIL,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACpC,MAAM,wCAAwC,CAAC;AAKhD,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,kCAAkC,CAAC;AAM1C,MAAM,WAAW,gDAAgD;IAC/D,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,6BAA6B,CAAC;IAC/C,QAAQ,CAAC,eAAe,EAAE,sCAAsC,CAAC;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC1D,QAAQ,CAAC,uBAAuB,EAAE,6BAA6B,CAAC;CACjE;AAcD,qBAAa,oCACX,YAAW,gCAAgC;;IAM3C,YAAY,YAAY,EAAE,gDAAgD,EAIzE;IAEK,OAAO,CACX,KAAK,EAAE,mCAAmC,GACzC,OAAO,CAAC,uBAAuB,CAAC,CA6IlC;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { sourcePackageOwner } from "../../../application/policies/source-package-ownership.js";
|
|
1
2
|
import { compareBinaryStrings } from "../../../../../binary-string-comparator.js";
|
|
2
3
|
import { sourceTopologyInputError as inputError } from "../../../api.js";
|
|
3
4
|
import { buildSelectedPackageSourceTopology, rootOutsideSelectedPackages, sourceWorkspaceDiscoveryLimits } from "./selected-package-source-discovery.js";
|
|
@@ -21,7 +22,7 @@ export class PnpmSourceWorkspaceTopologyInspector {
|
|
|
21
22
|
this.#limits = sourceWorkspaceDiscoveryLimits(dependencies.limits);
|
|
22
23
|
}
|
|
23
24
|
async inspect(input) {
|
|
24
|
-
const { canonicalConsumerRoot, configuredPackageRoots, consumerRootSnapshot, discovered, inventory, packageTypeScopes, selectedManifestPaths, selectedPackages } = await capturePnpmSourceWorkspaceSnapshot({
|
|
25
|
+
const { canonicalConsumerRoot, configuredPackageRoots, consumerRootSnapshot, discovered, inventory, observations, ownership, packageTypeScopes, selectedManifestPaths, selectedPackages } = await capturePnpmSourceWorkspaceSnapshot({
|
|
25
26
|
fileSystem: this.#fileSystem,
|
|
26
27
|
input,
|
|
27
28
|
inventoryReader: this.#dependencies.inventoryReader,
|
|
@@ -36,7 +37,9 @@ export class PnpmSourceWorkspaceTopologyInspector {
|
|
|
36
37
|
...input.boundaryRoots.map(({ path }) => path)
|
|
37
38
|
]
|
|
38
39
|
.toSorted(compareBinaryStrings)
|
|
39
|
-
.find((root) =>
|
|
40
|
+
.find((root) => ownership === undefined
|
|
41
|
+
? rootOutsideSelectedPackages(root, selectedPackages, selectedManifestPaths)
|
|
42
|
+
: sourcePackageOwner(root, selectedPackages, ownership) === undefined);
|
|
40
43
|
if (outsideRoot !== undefined) {
|
|
41
44
|
inputError("SOURCE_ROOT_OUTSIDE_WORKSPACE", `Governed or architecture boundary root is outside the schema v2 packageRoots contract: ${outsideRoot}.`);
|
|
42
45
|
}
|
|
@@ -75,12 +78,14 @@ export class PnpmSourceWorkspaceTopologyInspector {
|
|
|
75
78
|
inode: String(root.canonicalMetadata.ino)
|
|
76
79
|
})
|
|
77
80
|
]));
|
|
78
|
-
const packages = buildSelectedPackageSourceTopology(selectedPackages, discovered.sourcePaths, selectedManifestPaths).map((workspacePackage) => Object.freeze({
|
|
81
|
+
const packages = buildSelectedPackageSourceTopology(selectedPackages, discovered.sourcePaths, ownership?.ownershipManifestPaths ?? selectedManifestPaths).map((workspacePackage) => Object.freeze({
|
|
79
82
|
...workspacePackage,
|
|
80
83
|
filesystemIdentity: packageRootIdentities.get(workspacePackage.rootPath) ??
|
|
81
84
|
inputError("SOURCE_FILESYSTEM_CHANGED", `Workspace package root identity is missing: ${workspacePackage.rootPath}.`)
|
|
82
85
|
}));
|
|
83
|
-
const unownedSourcePath = discovered.sourcePaths.find((path) =>
|
|
86
|
+
const unownedSourcePath = discovered.sourcePaths.find((path) => ownership === undefined
|
|
87
|
+
? rootOutsideSelectedPackages(path, selectedPackages, selectedManifestPaths)
|
|
88
|
+
: sourcePackageOwner(path, selectedPackages, ownership) === undefined);
|
|
84
89
|
if (unownedSourcePath !== undefined) {
|
|
85
90
|
inputError("SOURCE_OUTSIDE_PACKAGE", `Source below a configured package root belongs to no package: ${unownedSourcePath}.`);
|
|
86
91
|
}
|
|
@@ -90,6 +95,7 @@ export class PnpmSourceWorkspaceTopologyInspector {
|
|
|
90
95
|
const sourceFiles = await readGovernedSourceFiles(canonicalConsumerRoot, selectedSourcePaths, input.governedRoots, {
|
|
91
96
|
fileSystem: this.#fileSystem,
|
|
92
97
|
limits: this.#limits,
|
|
98
|
+
consumedBytes: observations?.manifestBytes ?? 0,
|
|
93
99
|
...(input.signal === undefined ? {} : { signal: input.signal })
|
|
94
100
|
});
|
|
95
101
|
await revalidateRoots({
|
|
@@ -105,7 +111,9 @@ export class PnpmSourceWorkspaceTopologyInspector {
|
|
|
105
111
|
],
|
|
106
112
|
...(input.signal === undefined ? {} : { signal: input.signal })
|
|
107
113
|
});
|
|
114
|
+
await observations?.revalidate();
|
|
108
115
|
return Object.freeze({
|
|
116
|
+
...(ownership === undefined ? {} : { ownership }),
|
|
109
117
|
canonicalConsumerRoot,
|
|
110
118
|
consumerRootIdentity: Object.freeze({
|
|
111
119
|
device: String(consumerRootSnapshot.canonicalMetadata.dev),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pnpm-source-workspace-topology-inspector.js","sourceRoot":"","sources":["../../../../../../src/capabilities/source-dependencies/adapters/outbound/node/pnpm-source-workspace-topology-inspector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EACL,wBAAwB,IAAI,UAAU,EAGvC,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EACL,kCAAkC,EAClC,2BAA2B,EAC3B,8BAA8B,EAG/B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EACL,kCAAkC,EACnC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,+BAA+B,EAEhC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,kBAAkB,EAClB,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAW7C,SAAS,iBAAiB,CACxB,KAA+C;IAE/C,OAAO,KAAK;SACT,QAAQ,CACP,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;QAC3C,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAC1D;SACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,OAAO,oCAAoC;IAGtC,aAAa,CAAmD;IAChE,WAAW,CAA4B;IACvC,OAAO,CAAiC;IAEjD,YAAY,YAA8D;QACxE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,+BAA+B,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;QACrG,IAAI,CAAC,OAAO,GAAG,8BAA8B,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,OAAO,CACX,KAA0C;QAE1C,MAAM,EACJ,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EACjB,GAAG,MAAM,kCAAkC,CAAC;YAC3C,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,KAAK;YACL,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;YACnD,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,SAAS;gBACxC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACxC,uBAAuB,EAAE,IAAI,CAAC,aAAa,CAAC,uBAAuB;SACpE,CAAC,CAAC;QACH,MAAM,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,aAAa;YACtB,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;SAC/C;aACE,QAAQ,CAAC,oBAAoB,CAAC;aAC9B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,2BAA2B,
|
|
1
|
+
{"version":3,"file":"pnpm-source-workspace-topology-inspector.js","sourceRoot":"","sources":["../../../../../../src/capabilities/source-dependencies/adapters/outbound/node/pnpm-source-workspace-topology-inspector.ts"],"names":[],"mappings":"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"}
|
package/dist/capabilities/source-dependencies/adapters/outbound/node/root-package-source-scopes.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type SourcePackageOwnership } from "../../../application/policies/source-package-ownership.js";
|
|
2
|
+
import { type DiscoveryBudget, type SourceWorkspaceDiscoveryLimits } from "./selected-package-source-discovery.js";
|
|
3
|
+
import { type SourceWorkspaceFileSystem } from "./source-workspace-filesystem.js";
|
|
4
|
+
/** One bounded observation ledger brackets discovery, inventory and source reads. */
|
|
5
|
+
export declare class RootPackageSourceScopes {
|
|
6
|
+
#private;
|
|
7
|
+
readonly budget: DiscoveryBudget;
|
|
8
|
+
constructor(root: string, files: SourceWorkspaceFileSystem, limits: SourceWorkspaceDiscoveryLimits, signal?: AbortSignal);
|
|
9
|
+
get manifestBytes(): number;
|
|
10
|
+
observe(path: string): Promise<boolean>;
|
|
11
|
+
observeAncestry(roots: readonly string[]): Promise<void>;
|
|
12
|
+
authorityPaths(): readonly string[];
|
|
13
|
+
typeScopes(): readonly {
|
|
14
|
+
readonly rootPath: string;
|
|
15
|
+
readonly moduleType: "module" | "commonjs";
|
|
16
|
+
}[];
|
|
17
|
+
deriveOwnership(governedRoots: readonly string[], includeRoot: boolean): SourcePackageOwnership;
|
|
18
|
+
revalidate(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=root-package-source-scopes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root-package-source-scopes.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/source-dependencies/adapters/outbound/node/root-package-source-scopes.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6C,KAAK,sBAAsB,EAAE,MAAM,2DAA2D,CAAC;AAEnJ,OAAO,EAAwB,KAAK,eAAe,EAAE,KAAK,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACzI,OAAO,EAA+D,KAAK,yBAAyB,EAA6B,MAAM,kCAAkC,CAAC;AAW1K,qFAAqF;AACrF,qBAAa,uBAAuB;;IAQlC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAA4E;IAG5G,YAAY,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,8BAA8B,EAAE,MAAM,CAAC,EAAE,WAAW,EAKvH;IAED,IAAI,aAAa,IAAI,MAAM,CAAwB;IAgB7C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAwE5C;IAEK,eAAe,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAS7D;IAED,cAAc,IAAI,SAAS,MAAM,EAAE,CAGlC;IAED,UAAU,IAAI,SAAS;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU,CAAA;KAAE,EAAE,CAIjG;IAED,eAAe,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,GAAG,sBAAsB,CAO9F;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBhC;CACF"}
|
package/dist/capabilities/source-dependencies/adapters/outbound/node/root-package-source-scopes.js
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { join, posix } from "node:path";
|
|
2
|
+
import { compareBinaryStrings } from "../../../../../binary-string-comparator.js";
|
|
3
|
+
import { assertSourceTopologyActive as assertActive, sourceTopologyInputError as inputError } from "../../../api.js";
|
|
4
|
+
import { isPureModuleTypeScope, sourcePackageOwner } from "../../../application/policies/source-package-ownership.js";
|
|
5
|
+
import { portableRepositoryPathIdentity } from "../../../application/model/repository-path.js";
|
|
6
|
+
import { recordDiscoveryEntry } from "./selected-package-source-discovery.js";
|
|
7
|
+
import { captureStableRepositoryPath, revalidateStableRepositoryPath } from "./source-workspace-filesystem.js";
|
|
8
|
+
/** One bounded observation ledger brackets discovery, inventory and source reads. */
|
|
9
|
+
export class RootPackageSourceScopes {
|
|
10
|
+
#root;
|
|
11
|
+
#files;
|
|
12
|
+
#limits;
|
|
13
|
+
#signal;
|
|
14
|
+
#observations = new Map();
|
|
15
|
+
#portablePaths = new Map();
|
|
16
|
+
#parents = new Map();
|
|
17
|
+
budget = { entries: 0, manifests: 0, sourceFiles: 0, observedEntries: new Set() };
|
|
18
|
+
#bytes = 0;
|
|
19
|
+
constructor(root, files, limits, signal) {
|
|
20
|
+
this.#root = root;
|
|
21
|
+
this.#files = files;
|
|
22
|
+
this.#limits = limits;
|
|
23
|
+
this.#signal = signal;
|
|
24
|
+
}
|
|
25
|
+
get manifestBytes() { return this.#bytes; }
|
|
26
|
+
async #read(path) {
|
|
27
|
+
assertActive(this.#signal);
|
|
28
|
+
const bytes = await this.#files.readContainedFile({
|
|
29
|
+
candidate: join(this.#root, path),
|
|
30
|
+
maxBytes: Math.min(2 * 1024 * 1024, this.#limits.maxSourceFileBytes),
|
|
31
|
+
root: this.#root
|
|
32
|
+
});
|
|
33
|
+
assertActive(this.#signal);
|
|
34
|
+
if (bytes.byteLength > Math.min(2 * 1024 * 1024, this.#limits.maxSourceFileBytes)) {
|
|
35
|
+
inputError("WORKSPACE_LIMIT_EXCEEDED", `Package manifest exceeds the byte limit: ${path}.`);
|
|
36
|
+
}
|
|
37
|
+
return bytes;
|
|
38
|
+
}
|
|
39
|
+
async observe(path) {
|
|
40
|
+
assertActive(this.#signal);
|
|
41
|
+
const existing = this.#observations.get(path);
|
|
42
|
+
if (existing !== undefined) {
|
|
43
|
+
return existing.kind === "package-authority";
|
|
44
|
+
}
|
|
45
|
+
const identity = portableRepositoryPathIdentity(path);
|
|
46
|
+
const prior = this.#portablePaths.get(identity);
|
|
47
|
+
if (prior !== undefined && prior !== path) {
|
|
48
|
+
inputError("PACKAGE_PATH_CASE_COLLISION", `Manifest paths share portable identity: ${prior} and ${path}.`);
|
|
49
|
+
}
|
|
50
|
+
this.#portablePaths.set(identity, path);
|
|
51
|
+
recordDiscoveryEntry(path, this.budget, this.#limits);
|
|
52
|
+
const parentPath = posix.dirname(path);
|
|
53
|
+
let parent = this.#parents.get(parentPath);
|
|
54
|
+
if (parent === undefined) {
|
|
55
|
+
parent = await captureStableRepositoryPath(this.#root, parentPath, "directory", this.#files, this.#signal);
|
|
56
|
+
if (parent.traversesSymbolicLink) {
|
|
57
|
+
inputError("SOURCE_SYMLINK_PROHIBITED", `Manifest ancestor traverses a symbolic link: ${path}.`);
|
|
58
|
+
}
|
|
59
|
+
this.#parents.set(parentPath, parent);
|
|
60
|
+
}
|
|
61
|
+
let absent = false;
|
|
62
|
+
try {
|
|
63
|
+
await this.#files.lstat(join(this.#root, path));
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
assertActive(this.#signal);
|
|
67
|
+
if (error.code !== "ENOENT") {
|
|
68
|
+
inputError("PACKAGE_MANIFEST_INVALID", `Package manifest is unavailable: ${path}.`);
|
|
69
|
+
}
|
|
70
|
+
absent = true;
|
|
71
|
+
}
|
|
72
|
+
if (absent) {
|
|
73
|
+
this.#observations.set(path, { path, parent, kind: "absent" });
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
if (this.budget.manifests >= this.#limits.maxManifestFiles) {
|
|
77
|
+
inputError("WORKSPACE_LIMIT_EXCEEDED", `Workspace contains too many package manifests: ${path}.`);
|
|
78
|
+
}
|
|
79
|
+
this.budget.manifests += 1;
|
|
80
|
+
const captured = await captureStableRepositoryPath(this.#root, path, "source", this.#files, this.#signal);
|
|
81
|
+
if (captured.traversesSymbolicLink) {
|
|
82
|
+
inputError("SOURCE_SYMLINK_PROHIBITED", `Package manifest traverses a symbolic link: ${path}.`);
|
|
83
|
+
}
|
|
84
|
+
if (!captured.canonicalMetadata.isFile()) {
|
|
85
|
+
inputError("PACKAGE_MANIFEST_INVALID", `Package manifest must be a file: ${path}.`);
|
|
86
|
+
}
|
|
87
|
+
let bytes;
|
|
88
|
+
let value;
|
|
89
|
+
try {
|
|
90
|
+
bytes = await this.#read(path);
|
|
91
|
+
value = JSON.parse(Buffer.from(bytes).toString("utf8"));
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
assertActive(this.#signal);
|
|
95
|
+
inputError("PACKAGE_MANIFEST_INVALID", `Package manifest is unavailable or invalid: ${path}.`);
|
|
96
|
+
}
|
|
97
|
+
this.#bytes += bytes.byteLength;
|
|
98
|
+
if (this.#bytes > this.#limits.maxTotalSourceBytes) {
|
|
99
|
+
inputError("WORKSPACE_LIMIT_EXCEEDED", `Manifest observations exceed the total byte limit: ${path}.`);
|
|
100
|
+
}
|
|
101
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
102
|
+
inputError("PACKAGE_MANIFEST_INVALID", `Package manifest must contain an object: ${path}.`);
|
|
103
|
+
}
|
|
104
|
+
const object = value;
|
|
105
|
+
const kind = path !== "package.json" && isPureModuleTypeScope(object)
|
|
106
|
+
? "module-type-scope" : "package-authority";
|
|
107
|
+
await revalidateStableRepositoryPath(this.#root, captured, this.#files, this.#signal);
|
|
108
|
+
this.#observations.set(path, {
|
|
109
|
+
path, parent, captured, bytes: Uint8Array.from(bytes), kind,
|
|
110
|
+
moduleType: object["type"] === "module" ? "module" : "commonjs"
|
|
111
|
+
});
|
|
112
|
+
return kind === "package-authority";
|
|
113
|
+
}
|
|
114
|
+
async observeAncestry(roots) {
|
|
115
|
+
for (const root of roots.toSorted(compareBinaryStrings)) {
|
|
116
|
+
let directory = root;
|
|
117
|
+
for (;;) {
|
|
118
|
+
await this.observe(directory === "." ? "package.json" : `${directory}/package.json`);
|
|
119
|
+
if (directory === ".") {
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
directory = posix.dirname(directory);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
authorityPaths() {
|
|
127
|
+
return [...this.#observations.values()].filter(({ kind }) => kind === "package-authority")
|
|
128
|
+
.map(({ path }) => path).toSorted(compareBinaryStrings);
|
|
129
|
+
}
|
|
130
|
+
typeScopes() {
|
|
131
|
+
return [...this.#observations.values()].flatMap(({ path, moduleType }) => moduleType === undefined ? [] : [{ rootPath: posix.dirname(path), moduleType }]).toSorted((a, b) => compareBinaryStrings(a.rootPath, b.rootPath));
|
|
132
|
+
}
|
|
133
|
+
deriveOwnership(governedRoots, includeRoot) {
|
|
134
|
+
const ownershipManifestPaths = this.authorityPaths();
|
|
135
|
+
const candidates = ownershipManifestPaths.map((manifestPath) => ({ manifestPath, rootPath: posix.dirname(manifestPath) }));
|
|
136
|
+
const rootSourceRoots = governedRoots.filter((path) => sourcePackageOwner(path, candidates, { ownershipManifestPaths, rootSourceRoots: governedRoots })?.rootPath === ".").toSorted(compareBinaryStrings);
|
|
137
|
+
return { ownershipManifestPaths, rootSourceRoots: includeRoot ? rootSourceRoots : [] };
|
|
138
|
+
}
|
|
139
|
+
async revalidate() {
|
|
140
|
+
for (const observation of this.#observations.values()) {
|
|
141
|
+
assertActive(this.#signal);
|
|
142
|
+
await revalidateStableRepositoryPath(this.#root, observation.parent, this.#files, this.#signal);
|
|
143
|
+
if (observation.captured === undefined) {
|
|
144
|
+
try {
|
|
145
|
+
await this.#files.lstat(join(this.#root, observation.path));
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
assertActive(this.#signal);
|
|
149
|
+
if (error.code === "ENOENT") {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
inputError("SOURCE_FILESYSTEM_CHANGED", `Previously absent manifest changed: ${observation.path}.`);
|
|
154
|
+
}
|
|
155
|
+
await revalidateStableRepositoryPath(this.#root, observation.captured, this.#files, this.#signal);
|
|
156
|
+
const bytes = await this.#read(observation.path);
|
|
157
|
+
if (!Buffer.from(bytes).equals(Buffer.from(observation.bytes ?? []))) {
|
|
158
|
+
inputError("SOURCE_FILESYSTEM_CHANGED", `Package manifest bytes changed: ${observation.path}.`);
|
|
159
|
+
}
|
|
160
|
+
await revalidateStableRepositoryPath(this.#root, observation.captured, this.#files, this.#signal);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=root-package-source-scopes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root-package-source-scopes.js","sourceRoot":"","sources":["../../../../../../src/capabilities/source-dependencies/adapters/outbound/node/root-package-source-scopes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,0BAA0B,IAAI,YAAY,EAAE,wBAAwB,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACrH,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAA+B,MAAM,2DAA2D,CAAC;AACnJ,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAA6D,MAAM,wCAAwC,CAAC;AACzI,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAA6D,MAAM,kCAAkC,CAAC;AAW1K,qFAAqF;AACrF,MAAM,OAAO,uBAAuB;IACzB,KAAK,CAAS;IACd,MAAM,CAA4B;IAClC,OAAO,CAAiC;IACxC,OAAO,CAA0B;IACjC,aAAa,GAAG,IAAI,GAAG,EAA+B,CAAC;IACvD,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;IACnD,MAAM,GAAoB,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAC5G,MAAM,GAAG,CAAC,CAAC;IAEX,YAAY,IAAY,EAAE,KAAgC,EAAE,MAAsC,EAAE,MAAoB;QACtH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,aAAa,KAAa,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnD,KAAK,CAAC,KAAK,CAAC,IAAY;QACtB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAChD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;YACjC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;YACpE,IAAI,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC,CAAC;QACH,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAClF,UAAU,CAAC,0BAA0B,EAAE,4CAA4C,IAAI,GAAG,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC,IAAI,KAAK,mBAAmB,CAAC;QAC/C,CAAC;QACD,MAAM,QAAQ,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,UAAU,CAAC,6BAA6B,EAAE,2CAA2C,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC;QAC7G,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,GAAG,MAAM,2BAA2B,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3G,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACjC,UAAU,CAAC,2BAA2B,EAAE,gDAAgD,IAAI,GAAG,CAAC,CAAC;YACnG,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,UAAU,CAAC,0BAA0B,EAAE,oCAAoC,IAAI,GAAG,CAAC,CAAC;YACtF,CAAC;YACD,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC3D,UAAU,CAAC,0BAA0B,EAAE,kDAAkD,IAAI,GAAG,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1G,IAAI,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACnC,UAAU,CAAC,2BAA2B,EAAE,+CAA+C,IAAI,GAAG,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,UAAU,CAAC,0BAA0B,EAAE,oCAAoC,IAAI,GAAG,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,KAAiB,CAAC;QACtB,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,UAAU,CAAC,0BAA0B,EAAE,+CAA+C,IAAI,GAAG,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACnD,UAAU,CAAC,0BAA0B,EAAE,sDAAsD,IAAI,GAAG,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,UAAU,CAAC,0BAA0B,EAAE,4CAA4C,IAAI,GAAG,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,KAAK,cAAc,IAAI,qBAAqB,CAAC,MAAM,CAAC;YACnE,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC9C,MAAM,8BAA8B,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACtF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE;YAC3B,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI;YAC3D,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;SAChE,CAAC,CAAC;QACH,OAAO,IAAI,KAAK,mBAAmB,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAwB;QAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACxD,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,SAAS,CAAC;gBACR,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,eAAe,CAAC,CAAC;gBACrF,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;oBAAC,MAAM;gBAAC,CAAC;gBACjC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,mBAAmB,CAAC;aACvF,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAC5D,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CACvE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAChF,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,eAAe,CAAC,aAAgC,EAAE,WAAoB;QACpE,MAAM,sBAAsB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3H,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACpD,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,KAAK,GAAG,CACnH,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QACjC,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACzF,CAAC;IAED,KAAK,CAAC,UAAU;QACd,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;YACtD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,MAAM,8BAA8B,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAChG,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9D,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC3B,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAAC,SAAS;oBAAC,CAAC;gBACvE,CAAC;gBACD,UAAU,CAAC,2BAA2B,EAAE,uCAAuC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;YACtG,CAAC;YACD,MAAM,8BAA8B,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAClG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBACrE,UAAU,CAAC,2BAA2B,EAAE,mCAAmC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;YAClG,CAAC;YACD,MAAM,8BAA8B,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { WorkspacePackage } from "../../../application/model/workspace-inventory.js";
|
|
2
|
-
import type { SourceWorkspacePackageTopology } from "../../../application/model/source-workspace-topology.js";
|
|
3
1
|
import { type SourceWorkspaceDirectorySystem, type StableRepositoryPath } from "./source-workspace-filesystem.js";
|
|
4
2
|
export interface SourceWorkspaceDiscoveryLimits {
|
|
5
3
|
readonly maxDirectoryEntries: number;
|
|
@@ -17,9 +15,19 @@ export interface DiscoveredSourceWorkspacePaths {
|
|
|
17
15
|
readonly sourcePaths: readonly string[];
|
|
18
16
|
readonly symbolicLinkPaths: readonly string[];
|
|
19
17
|
}
|
|
18
|
+
export interface DiscoveryBudget {
|
|
19
|
+
readonly observedEntries?: Set<string>;
|
|
20
|
+
entries: number;
|
|
21
|
+
manifests: number;
|
|
22
|
+
sourceFiles: number;
|
|
23
|
+
}
|
|
20
24
|
export declare function sourceWorkspaceDiscoveryLimits(overrides?: Partial<SourceWorkspaceDiscoveryLimits> | undefined): SourceWorkspaceDiscoveryLimits;
|
|
25
|
+
export declare function recordDiscoveryEntry(path: string, budget: DiscoveryBudget, limits: SourceWorkspaceDiscoveryLimits): void;
|
|
21
26
|
export declare function discoverSourceWorkspacePaths(canonicalConsumerRoot: string, options: {
|
|
22
27
|
readonly repositoryRoots: readonly string[];
|
|
28
|
+
readonly rootSourceRoots?: readonly string[];
|
|
29
|
+
readonly budget?: DiscoveryBudget;
|
|
30
|
+
readonly observeManifest?: (manifestPath: string) => Promise<boolean>;
|
|
23
31
|
readonly selectedPackageRoots?: readonly string[];
|
|
24
32
|
readonly governedRoots?: readonly string[];
|
|
25
33
|
readonly boundaryRoots?: readonly string[];
|
|
@@ -28,6 +36,5 @@ export declare function discoverSourceWorkspacePaths(canonicalConsumerRoot: stri
|
|
|
28
36
|
readonly limits?: Partial<SourceWorkspaceDiscoveryLimits>;
|
|
29
37
|
readonly signal?: AbortSignal;
|
|
30
38
|
}): Promise<DiscoveredSourceWorkspacePaths>;
|
|
31
|
-
export
|
|
32
|
-
export declare function rootOutsideSelectedPackages(repositoryPath: string, packages: readonly WorkspacePackage[], allManifestPaths: readonly string[]): boolean;
|
|
39
|
+
export { buildSelectedPackageSourceTopology, rootOutsideSelectedPackages } from "../../../application/policies/selected-source-package-topology.js";
|
|
33
40
|
//# sourceMappingURL=selected-package-source-discovery.d.ts.map
|
|
@@ -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":"
|
|
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;AAsND,wBAAsB,4BAA4B,CAChD,qBAAqB,EAAE,MAAM,EAC7B,OAAO,EAAE;IACP,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,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,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"}
|