@rsdk/yarn.constraints 6.0.0-next.4 → 6.0.0-next.41
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/DEPENDENCY_MODEL.md +460 -0
- package/README.MD +85 -21
- package/__tests__/compatibility.test.ts +321 -0
- package/__tests__/config-validation.test.ts +42 -0
- package/__tests__/engine.test.ts +1107 -0
- package/__tests__/fixtures/imports/bin.js +4 -0
- package/__tests__/fixtures/imports/export-entry.mjs +1 -0
- package/__tests__/fixtures/imports/lib/lib-entry.js +3 -0
- package/__tests__/fixtures/imports/root-entry.js +4 -0
- package/__tests__/fixtures/imports/rules/transitive.js +3 -0
- package/__tests__/fixtures/imports/src/common.cjs +3 -0
- package/__tests__/fixtures/imports/src/common.cts +3 -0
- package/__tests__/fixtures/imports/src/component.tsx +4 -0
- package/__tests__/fixtures/imports/src/index.ts +13 -0
- package/__tests__/fixtures/imports/src/module.mjs +3 -0
- package/__tests__/fixtures/imports/src/module.mts +3 -0
- package/__tests__/fixtures/imports/src/plain.js +3 -0
- package/__tests__/fixtures/imports/src/test-only-usage.ts +1 -0
- package/__tests__/fixtures/imports/test/outside.ts +3 -0
- package/__tests__/imports.test.ts +218 -0
- package/__tests__/manifest-writer.test.ts +157 -0
- package/dist/ansi.d.ts +9 -0
- package/dist/ansi.js +24 -0
- package/dist/ansi.js.map +1 -0
- package/dist/bin/depdoc.d.ts +2 -0
- package/dist/bin/depdoc.js +157 -0
- package/dist/bin/depdoc.js.map +1 -0
- package/dist/collectors/config.d.ts +2 -0
- package/dist/collectors/config.js +28 -0
- package/dist/collectors/config.js.map +1 -0
- package/dist/collectors/external-metadata.d.ts +5 -0
- package/dist/collectors/external-metadata.js +110 -0
- package/dist/collectors/external-metadata.js.map +1 -0
- package/dist/collectors/package-extensions.d.ts +3 -0
- package/dist/collectors/package-extensions.js +43 -0
- package/dist/collectors/package-extensions.js.map +1 -0
- package/dist/collectors/type-providers.d.ts +3 -0
- package/dist/collectors/type-providers.js +46 -0
- package/dist/collectors/type-providers.js.map +1 -0
- package/dist/collectors/workspaces.d.ts +2 -0
- package/dist/collectors/workspaces.js +90 -0
- package/dist/collectors/workspaces.js.map +1 -0
- package/dist/dependency-model.d.ts +11 -0
- package/dist/dependency-model.js +18 -0
- package/dist/dependency-model.js.map +1 -0
- package/dist/index.d.ts +9 -5
- package/dist/index.js +13 -33
- package/dist/index.js.map +1 -1
- package/dist/lib/imports.d.ts +11 -0
- package/dist/lib/imports.js +342 -0
- package/dist/lib/imports.js.map +1 -0
- package/dist/lib/package-json.d.ts +21 -0
- package/dist/lib/package-json.js +32 -0
- package/dist/lib/package-json.js.map +1 -0
- package/dist/model/config-validation.d.ts +6 -0
- package/dist/model/config-validation.js +31 -0
- package/dist/model/config-validation.js.map +1 -0
- package/dist/model/diagnostics.d.ts +4 -0
- package/dist/model/diagnostics.js +295 -0
- package/dist/model/diagnostics.js.map +1 -0
- package/dist/model/engine.d.ts +5 -0
- package/dist/model/engine.js +52 -0
- package/dist/model/engine.js.map +1 -0
- package/dist/model/expected.d.ts +20 -0
- package/dist/model/expected.js +89 -0
- package/dist/model/expected.js.map +1 -0
- package/dist/model/peer-propagation.d.ts +2 -0
- package/dist/model/peer-propagation.js +124 -0
- package/dist/model/peer-propagation.js.map +1 -0
- package/dist/model/placement.d.ts +9 -0
- package/dist/model/placement.js +210 -0
- package/dist/model/placement.js.map +1 -0
- package/dist/model/rules.d.ts +15 -0
- package/dist/model/rules.js +52 -0
- package/dist/model/rules.js.map +1 -0
- package/dist/model/types.d.ts +118 -0
- package/dist/model/types.js +9 -0
- package/dist/model/types.js.map +1 -0
- package/dist/model/versions.d.ts +3 -0
- package/dist/model/versions.js +77 -0
- package/dist/model/versions.js.map +1 -0
- package/dist/reporting.d.ts +3 -0
- package/dist/reporting.js +80 -0
- package/dist/reporting.js.map +1 -0
- package/dist/runner.d.ts +2 -0
- package/dist/runner.js +70 -0
- package/dist/runner.js.map +1 -0
- package/dist/writer/manifest-writer.d.ts +2 -0
- package/dist/writer/manifest-writer.js +72 -0
- package/dist/writer/manifest-writer.js.map +1 -0
- package/eslint.config.cjs +3 -0
- package/jest.config.js +1 -0
- package/package.json +7 -3
- package/src/ansi.ts +23 -0
- package/src/bin/depdoc.ts +213 -0
- package/src/collectors/config.ts +33 -0
- package/src/collectors/external-metadata.ts +148 -0
- package/src/collectors/package-extensions.ts +52 -0
- package/src/collectors/type-providers.ts +51 -0
- package/src/collectors/workspaces.ts +107 -0
- package/src/dependency-model.ts +26 -0
- package/src/index.ts +28 -45
- package/src/lib/imports.ts +435 -0
- package/src/lib/package-json.ts +46 -0
- package/src/model/config-validation.ts +49 -0
- package/src/model/diagnostics.ts +358 -0
- package/src/model/engine.ts +120 -0
- package/src/model/expected.ts +141 -0
- package/src/model/peer-propagation.ts +199 -0
- package/src/model/placement.ts +378 -0
- package/src/model/rules.ts +85 -0
- package/src/model/types.ts +165 -0
- package/src/model/versions.ts +114 -0
- package/src/reporting.ts +117 -0
- package/src/runner.ts +102 -0
- package/src/writer/manifest-writer.ts +111 -0
- package/tsconfig.build.json +1 -0
- package/tsconfig.json +6 -1
- package/dist/constraint-schema.d.ts +0 -1
- package/dist/constraint-schema.js +0 -17
- package/dist/constraint-schema.js.map +0 -1
- package/dist/dependency-checker.d.ts +0 -8
- package/dist/dependency-checker.js +0 -40
- package/dist/dependency-checker.js.map +0 -1
- package/src/constraint-schema.ts +0 -20
- package/src/dependency-checker.ts +0 -41
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.loadConfig = loadConfig;
|
|
7
|
+
/**
|
|
8
|
+
* Constraints configuration collector.
|
|
9
|
+
*
|
|
10
|
+
* This module is the only place that resolves and parses `.constraints.yml`.
|
|
11
|
+
* It returns raw model configuration; rule semantics are handled later by the
|
|
12
|
+
* pure model layer.
|
|
13
|
+
*/
|
|
14
|
+
const node_fs_1 = require("node:fs");
|
|
15
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
16
|
+
const yaml_1 = __importDefault(require("yaml"));
|
|
17
|
+
const config_validation_1 = require("../model/config-validation");
|
|
18
|
+
function loadConfig(rootDir, constraintsPath) {
|
|
19
|
+
const filepath = constraintsPath ??
|
|
20
|
+
process.env.RSDK_YARN_CONSTRAINTS_CFG ??
|
|
21
|
+
node_path_1.default.join(rootDir, '.rsdk/.constraints.yml');
|
|
22
|
+
if (!(0, node_fs_1.existsSync)(filepath))
|
|
23
|
+
return { rules: [] };
|
|
24
|
+
const config = yaml_1.default.parse((0, node_fs_1.readFileSync)(filepath, 'utf8'));
|
|
25
|
+
(0, config_validation_1.assertValidDependencyModelConfig)(config);
|
|
26
|
+
return config;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/collectors/config.ts"],"names":[],"mappings":";;;;;AAcA,gCAkBC;AAhCD;;;;;;GAMG;AACH,qCAAmD;AACnD,0DAA6B;AAC7B,gDAAwB;AAExB,kEAA8E;AAG9E,SAAgB,UAAU,CACxB,OAAe,EACf,eAAwB;IAExB,MAAM,QAAQ,GACZ,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,yBAAyB;QACrC,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;IAE/C,IAAI,CAAC,IAAA,oBAAU,EAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAEhD,MAAM,MAAM,GAAG,cAAI,CAAC,KAAK,CACvB,IAAA,sBAAY,EAAC,QAAQ,EAAE,MAAM,CAAC,CACN,CAAC;IAE3B,IAAA,oDAAgC,EAAC,MAAM,CAAC,CAAC;IAEzC,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ExpectedWorkspace, PackageExtension, WorkspaceContext } from '../model/types';
|
|
2
|
+
export declare function collectExternalProviderIdents(contexts: WorkspaceContext[], workspaceNames: Set<string>, expectedByLocation?: Map<string, ExpectedWorkspace>): Set<string>;
|
|
3
|
+
export declare function collectExternalMetadata(rootDir: string, packageExtensions: Map<string, PackageExtension>, idents: Set<string>, externalPeerMetadata: Map<string, Map<string, string> | null>, externalTypeMetadata: Map<string, {
|
|
4
|
+
hasBundledTypes: boolean;
|
|
5
|
+
}>): void;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.collectExternalProviderIdents = collectExternalProviderIdents;
|
|
7
|
+
exports.collectExternalMetadata = collectExternalMetadata;
|
|
8
|
+
/**
|
|
9
|
+
* Installed external package metadata collector.
|
|
10
|
+
*
|
|
11
|
+
* Peer and bundled-type metadata are read from installed packages and Yarn
|
|
12
|
+
* packageExtensions. The engine consumes the resulting maps as facts, keeping
|
|
13
|
+
* node_modules access outside the pure model.
|
|
14
|
+
*/
|
|
15
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
16
|
+
const package_json_1 = require("../lib/package-json");
|
|
17
|
+
const types_1 = require("../model/types");
|
|
18
|
+
const package_extensions_1 = require("./package-extensions");
|
|
19
|
+
const externalPeersCache = new Map();
|
|
20
|
+
function getExternalRequiredPeers(rootDir, packageExtensions, extIdent) {
|
|
21
|
+
const cacheKey = `${rootDir}:${extIdent}`;
|
|
22
|
+
if (externalPeersCache.has(cacheKey))
|
|
23
|
+
return externalPeersCache.get(cacheKey);
|
|
24
|
+
let peers;
|
|
25
|
+
let meta;
|
|
26
|
+
try {
|
|
27
|
+
const pkg = (0, package_json_1.readPackageJson)(node_path_1.default.join(rootDir, 'node_modules', extIdent));
|
|
28
|
+
peers = { ...pkg.peerDependencies };
|
|
29
|
+
meta = { ...pkg.peerDependenciesMeta };
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
peers = {};
|
|
33
|
+
meta = {};
|
|
34
|
+
}
|
|
35
|
+
for (const extension of (0, package_extensions_1.getMatchingPackageExtensions)(extIdent, packageExtensions)) {
|
|
36
|
+
peers = { ...peers, ...extension.peerDependencies };
|
|
37
|
+
meta = { ...meta, ...extension.peerDependenciesMeta };
|
|
38
|
+
}
|
|
39
|
+
const required = new Map(Object.entries(peers).filter(([ident]) => !meta[ident]?.optional));
|
|
40
|
+
const value = required.size > 0 ? required : null;
|
|
41
|
+
externalPeersCache.set(cacheKey, value);
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
function exportsDeclareTypes(value) {
|
|
45
|
+
if (!value || typeof value !== 'object')
|
|
46
|
+
return false;
|
|
47
|
+
if (Array.isArray(value))
|
|
48
|
+
return value.some(exportsDeclareTypes);
|
|
49
|
+
for (const [key, nested] of Object.entries(value)) {
|
|
50
|
+
if ((key === 'types' || key === 'typings') && typeof nested === 'string') {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
if (exportsDeclareTypes(nested))
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
function getExternalTypeMetadata(rootDir, extIdent) {
|
|
59
|
+
try {
|
|
60
|
+
const pkg = (0, package_json_1.readPackageJson)(node_path_1.default.join(rootDir, 'node_modules', extIdent));
|
|
61
|
+
return {
|
|
62
|
+
hasBundledTypes: typeof pkg.types === 'string' ||
|
|
63
|
+
typeof pkg.typings === 'string' ||
|
|
64
|
+
exportsDeclareTypes(pkg.exports),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return { hasBundledTypes: false };
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function collectExternalProviderIdents(contexts, workspaceNames, expectedByLocation) {
|
|
72
|
+
const result = new Set();
|
|
73
|
+
const add = (depIdent, range) => {
|
|
74
|
+
if (workspaceNames.has(depIdent) || range?.startsWith('workspace:'))
|
|
75
|
+
return;
|
|
76
|
+
result.add(depIdent);
|
|
77
|
+
};
|
|
78
|
+
for (const ctx of contexts) {
|
|
79
|
+
for (const section of types_1.SECTIONS) {
|
|
80
|
+
for (const [depIdent, range] of Object.entries(ctx.pkg[section] ?? {})) {
|
|
81
|
+
add(depIdent, range);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
for (const depIdent of ctx.sourceUsage.keys())
|
|
85
|
+
add(depIdent);
|
|
86
|
+
for (const depIdent of ctx.dtsImports)
|
|
87
|
+
add(depIdent);
|
|
88
|
+
}
|
|
89
|
+
if (expectedByLocation) {
|
|
90
|
+
for (const expected of expectedByLocation.values()) {
|
|
91
|
+
for (const section of types_1.SECTIONS) {
|
|
92
|
+
for (const [depIdent, range] of expected.sections[section]) {
|
|
93
|
+
add(depIdent, range);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
function collectExternalMetadata(rootDir, packageExtensions, idents, externalPeerMetadata, externalTypeMetadata) {
|
|
101
|
+
for (const ident of idents) {
|
|
102
|
+
if (!externalPeerMetadata.has(ident)) {
|
|
103
|
+
externalPeerMetadata.set(ident, getExternalRequiredPeers(rootDir, packageExtensions, ident));
|
|
104
|
+
}
|
|
105
|
+
if (!externalTypeMetadata.has(ident)) {
|
|
106
|
+
externalTypeMetadata.set(ident, getExternalTypeMetadata(rootDir, ident));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=external-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-metadata.js","sourceRoot":"","sources":["../../src/collectors/external-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { PackageExtension } from '../model/types';
|
|
2
|
+
export declare function loadPackageExtensions(rootDir: string): Map<string, PackageExtension>;
|
|
3
|
+
export declare function getMatchingPackageExtensions(depIdent: string, packageExtensions: Map<string, PackageExtension>): PackageExtension[];
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.loadPackageExtensions = loadPackageExtensions;
|
|
7
|
+
exports.getMatchingPackageExtensions = getMatchingPackageExtensions;
|
|
8
|
+
/**
|
|
9
|
+
* Yarn packageExtensions collector.
|
|
10
|
+
*
|
|
11
|
+
* Third-party peer metadata corrections are read from `.yarnrc.yml` here. The
|
|
12
|
+
* model receives these corrections as facts and does not parse Yarn config
|
|
13
|
+
* directly.
|
|
14
|
+
*/
|
|
15
|
+
const node_fs_1 = require("node:fs");
|
|
16
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
17
|
+
const yaml_1 = __importDefault(require("yaml"));
|
|
18
|
+
function loadPackageExtensions(rootDir) {
|
|
19
|
+
const filepath = node_path_1.default.join(rootDir, '.yarnrc.yml');
|
|
20
|
+
if (!(0, node_fs_1.existsSync)(filepath))
|
|
21
|
+
return new Map();
|
|
22
|
+
const parsed = yaml_1.default.parse((0, node_fs_1.readFileSync)(filepath, 'utf8'));
|
|
23
|
+
const result = new Map();
|
|
24
|
+
for (const [selector, extension] of Object.entries(parsed.packageExtensions ?? {})) {
|
|
25
|
+
result.set(selector, extension);
|
|
26
|
+
}
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
function extensionSelectorIdent(selector) {
|
|
30
|
+
const atIndex = selector.lastIndexOf('@');
|
|
31
|
+
if (atIndex <= 0)
|
|
32
|
+
return selector;
|
|
33
|
+
return selector.slice(0, atIndex);
|
|
34
|
+
}
|
|
35
|
+
function getMatchingPackageExtensions(depIdent, packageExtensions) {
|
|
36
|
+
const result = [];
|
|
37
|
+
for (const [selector, extension] of packageExtensions) {
|
|
38
|
+
if (extensionSelectorIdent(selector) === depIdent)
|
|
39
|
+
result.push(extension);
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=package-extensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-extensions.js","sourceRoot":"","sources":["../../src/collectors/package-extensions.ts"],"names":[],"mappings":";;;;;AAaA,sDAkBC;AASD,oEAWC;AAnDD;;;;;;GAMG;AACH,qCAAmD;AACnD,0DAA6B;AAC7B,gDAAwB;AAIxB,SAAgB,qBAAqB,CACnC,OAAe;IAEf,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACnD,IAAI,CAAC,IAAA,oBAAU,EAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAE5C,MAAM,MAAM,GAAG,cAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,QAAQ,EAAE,MAAM,CAAC,CAEvD,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEnD,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAChD,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAC/B,EAAE,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAElC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,4BAA4B,CAC1C,QAAgB,EAChB,iBAAgD;IAEhD,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,iBAAiB,EAAE,CAAC;QACtD,IAAI,sBAAsB,CAAC,QAAQ,CAAC,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.collectTypeProviderPackages = collectTypeProviderPackages;
|
|
7
|
+
/**
|
|
8
|
+
* DefinitelyTyped provider collector.
|
|
9
|
+
*
|
|
10
|
+
* The engine needs to know which `@types/*` packages are available for public
|
|
11
|
+
* `.d.ts` promotion. This module gathers that set from installed packages, root
|
|
12
|
+
* devDependencies, and explicit non-wildcard rules.
|
|
13
|
+
*/
|
|
14
|
+
const node_fs_1 = require("node:fs");
|
|
15
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
16
|
+
function collectInstalledTypeProviders(rootDir) {
|
|
17
|
+
const result = new Set();
|
|
18
|
+
const typesDir = node_path_1.default.join(rootDir, 'node_modules', '@types');
|
|
19
|
+
try {
|
|
20
|
+
for (const entry of (0, node_fs_1.readdirSync)(typesDir, { withFileTypes: true })) {
|
|
21
|
+
if (entry.isDirectory())
|
|
22
|
+
result.add(`@types/${entry.name}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
// node_modules may not exist yet; root devDeps and rules still contribute.
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
function collectTypeProviderPackages(rootDir, rootPkg, rules) {
|
|
31
|
+
const result = collectInstalledTypeProviders(rootDir);
|
|
32
|
+
for (const depIdent of Object.keys(rootPkg.devDependencies ?? {})) {
|
|
33
|
+
if (depIdent.startsWith('@types/'))
|
|
34
|
+
result.add(depIdent);
|
|
35
|
+
}
|
|
36
|
+
for (const rule of rules) {
|
|
37
|
+
const patterns = Array.isArray(rule.match) ? rule.match : [rule.match];
|
|
38
|
+
for (const pattern of patterns) {
|
|
39
|
+
if (pattern.startsWith('@types/') && !pattern.includes('*')) {
|
|
40
|
+
result.add(pattern);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=type-providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-providers.js","sourceRoot":"","sources":["../../src/collectors/type-providers.ts"],"names":[],"mappings":";;;;;AA4BA,kEAsBC;AAlDD;;;;;;GAMG;AACH,qCAAsC;AACtC,0DAA6B;AAK7B,SAAS,6BAA6B,CAAC,OAAe;IACpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,IAAA,qBAAW,EAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACnE,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;IAC7E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,2BAA2B,CACzC,OAAe,EACf,OAAoB,EACpB,KAAuB;IAEvB,MAAM,MAAM,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;IAEtD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,CAAC;QAClE,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5D,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.loadWorkspaces = loadWorkspaces;
|
|
7
|
+
/**
|
|
8
|
+
* Workspace and usage collector.
|
|
9
|
+
*
|
|
10
|
+
* This module discovers Yarn workspaces, reads their manifests, and attaches
|
|
11
|
+
* source/`.d.ts` import usage facts. It is deliberately outside the engine
|
|
12
|
+
* because it executes Yarn and reads the filesystem.
|
|
13
|
+
*/
|
|
14
|
+
const node_child_process_1 = require("node:child_process");
|
|
15
|
+
const node_fs_1 = require("node:fs");
|
|
16
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
17
|
+
const imports_1 = require("../lib/imports");
|
|
18
|
+
const package_json_1 = require("../lib/package-json");
|
|
19
|
+
const rules_1 = require("../model/rules");
|
|
20
|
+
function collectUsage(workspace, withDts) {
|
|
21
|
+
const sourceFiles = (0, imports_1.collectSourceFiles)(workspace.dir, workspace.pkg);
|
|
22
|
+
workspace.sourceFileCount = sourceFiles.length;
|
|
23
|
+
for (const entry of (0, imports_1.collectSourceImportsFromFiles)(sourceFiles)) {
|
|
24
|
+
if (!workspace.sourceUsage.has(entry.packageName)) {
|
|
25
|
+
workspace.sourceUsage.set(entry.packageName, {
|
|
26
|
+
files: new Set(),
|
|
27
|
+
runtimeFiles: new Set(),
|
|
28
|
+
typeOnlyFiles: new Set(),
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
const usage = workspace.sourceUsage.get(entry.packageName);
|
|
32
|
+
usage.files.add(entry.file);
|
|
33
|
+
if (entry.isTypeOnly) {
|
|
34
|
+
usage.typeOnlyFiles.add(entry.file);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
usage.runtimeFiles.add(entry.file);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const distDir = node_path_1.default.join(workspace.dir, 'dist');
|
|
41
|
+
if (withDts || (0, node_fs_1.existsSync)(distDir)) {
|
|
42
|
+
workspace.dtsImports = (0, imports_1.collectDtsImports)(distDir);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function loadWorkspaces(rootDir, withDts) {
|
|
46
|
+
const rootPkg = (0, package_json_1.readPackageJson)(rootDir);
|
|
47
|
+
const raw = (0, node_child_process_1.execSync)('yarn workspaces list --json', {
|
|
48
|
+
cwd: rootDir,
|
|
49
|
+
}).toString();
|
|
50
|
+
const listed = raw
|
|
51
|
+
.trim()
|
|
52
|
+
.split('\n')
|
|
53
|
+
.filter(Boolean)
|
|
54
|
+
.map((line) => JSON.parse(line))
|
|
55
|
+
.filter((ws) => ws.location !== '.');
|
|
56
|
+
const root = {
|
|
57
|
+
name: rootPkg.name,
|
|
58
|
+
location: '.',
|
|
59
|
+
dir: rootDir,
|
|
60
|
+
pkg: rootPkg,
|
|
61
|
+
role: undefined,
|
|
62
|
+
isRoot: true,
|
|
63
|
+
sourceUsage: new Map(),
|
|
64
|
+
dtsImports: new Set(),
|
|
65
|
+
hasSrc: false,
|
|
66
|
+
hasDist: false,
|
|
67
|
+
};
|
|
68
|
+
const workspaces = [root];
|
|
69
|
+
for (const ws of listed) {
|
|
70
|
+
const dir = node_path_1.default.join(rootDir, ws.location);
|
|
71
|
+
const pkg = (0, package_json_1.readPackageJson)(dir);
|
|
72
|
+
const role = (0, rules_1.isWorkspaceRole)(pkg.role) ? pkg.role : undefined;
|
|
73
|
+
const ctx = {
|
|
74
|
+
name: ws.name ?? pkg.name,
|
|
75
|
+
location: ws.location,
|
|
76
|
+
dir,
|
|
77
|
+
pkg,
|
|
78
|
+
role,
|
|
79
|
+
isRoot: false,
|
|
80
|
+
sourceUsage: new Map(),
|
|
81
|
+
dtsImports: new Set(),
|
|
82
|
+
hasSrc: (0, node_fs_1.existsSync)(node_path_1.default.join(dir, 'src')),
|
|
83
|
+
hasDist: (0, node_fs_1.existsSync)(node_path_1.default.join(dir, 'dist')),
|
|
84
|
+
};
|
|
85
|
+
collectUsage(ctx, withDts);
|
|
86
|
+
workspaces.push(ctx);
|
|
87
|
+
}
|
|
88
|
+
return workspaces;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=workspaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/collectors/workspaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public dependency-model facade.
|
|
3
|
+
*
|
|
4
|
+
* Historically this file contained the whole implementation. It now keeps the
|
|
5
|
+
* public import path stable while delegating to focused modules: the pure model
|
|
6
|
+
* engine, the filesystem/Yarn runner, and CLI reporting helpers.
|
|
7
|
+
*/
|
|
8
|
+
export { deriveDependencyModel } from './model/engine';
|
|
9
|
+
export { runDependencyModel } from './runner';
|
|
10
|
+
export { explainDependency, formatDependencyModelResult } from './reporting';
|
|
11
|
+
export type { DependencyModelConfig, DependencyModelFacts, DependencyModelOptions, DependencyModelOutput, DependencyModelResult, DependencyRule, DependencyViolation, DependencyWarning, ExpectedWorkspace, SectionType, UsageSummary, WorkspaceFacts, WorkspaceRole, } from './model/types';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatDependencyModelResult = exports.explainDependency = exports.runDependencyModel = exports.deriveDependencyModel = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Public dependency-model facade.
|
|
6
|
+
*
|
|
7
|
+
* Historically this file contained the whole implementation. It now keeps the
|
|
8
|
+
* public import path stable while delegating to focused modules: the pure model
|
|
9
|
+
* engine, the filesystem/Yarn runner, and CLI reporting helpers.
|
|
10
|
+
*/
|
|
11
|
+
var engine_1 = require("./model/engine");
|
|
12
|
+
Object.defineProperty(exports, "deriveDependencyModel", { enumerable: true, get: function () { return engine_1.deriveDependencyModel; } });
|
|
13
|
+
var runner_1 = require("./runner");
|
|
14
|
+
Object.defineProperty(exports, "runDependencyModel", { enumerable: true, get: function () { return runner_1.runDependencyModel; } });
|
|
15
|
+
var reporting_1 = require("./reporting");
|
|
16
|
+
Object.defineProperty(exports, "explainDependency", { enumerable: true, get: function () { return reporting_1.explainDependency; } });
|
|
17
|
+
Object.defineProperty(exports, "formatDependencyModelResult", { enumerable: true, get: function () { return reporting_1.formatDependencyModelResult; } });
|
|
18
|
+
//# sourceMappingURL=dependency-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-model.js","sourceRoot":"","sources":["../src/dependency-model.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,yCAAuD;AAA9C,+GAAA,qBAAqB,OAAA;AAC9B,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAC3B,yCAA6E;AAApE,8GAAA,iBAAiB,OAAA;AAAE,wHAAA,2BAA2B,OAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Package public API.
|
|
3
|
+
*
|
|
4
|
+
* Consumers should import from this barrel instead of reaching into the model,
|
|
5
|
+
* runner, or collector internals. The split modules remain implementation
|
|
6
|
+
* details unless explicitly exported here.
|
|
7
|
+
*/
|
|
8
|
+
export { deriveDependencyModel, runDependencyModel, formatDependencyModelResult, explainDependency, } from './dependency-model';
|
|
9
|
+
export type { DependencyRule, DependencyModelConfig, DependencyModelOptions, DependencyModelFacts, DependencyModelOutput, DependencyModelResult, DependencyViolation, DependencyWarning, WorkspaceFacts, WorkspaceRole, SectionType, UsageSummary, ExpectedWorkspace, } from './dependency-model';
|
package/dist/index.js
CHANGED
|
@@ -1,36 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const cause = [...value_1.Value.Errors(constraint_schema_1.ConstraintSchema, constraints)];
|
|
20
|
-
throw new Error('Invalid constraints.yml\n' + JSON.stringify(cause, null, 2), {
|
|
21
|
-
cause: cause,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
new dependency_checker_1.DependencyChecker(Yarn).enforceConsistentDependenciesAcrossTheProject(constraints);
|
|
25
|
-
overrideConfig?.constraints?.(ctx);
|
|
26
|
-
};
|
|
27
|
-
exports.createConstraints = createConstraints;
|
|
28
|
-
exports.config = {
|
|
29
|
-
constraints: (0, exports.createConstraints)(),
|
|
30
|
-
};
|
|
31
|
-
const override = (config) => ({
|
|
32
|
-
...config,
|
|
33
|
-
constraints: (0, exports.createConstraints)(config),
|
|
34
|
-
});
|
|
35
|
-
exports.override = override;
|
|
3
|
+
exports.explainDependency = exports.formatDependencyModelResult = exports.runDependencyModel = exports.deriveDependencyModel = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Package public API.
|
|
6
|
+
*
|
|
7
|
+
* Consumers should import from this barrel instead of reaching into the model,
|
|
8
|
+
* runner, or collector internals. The split modules remain implementation
|
|
9
|
+
* details unless explicitly exported here.
|
|
10
|
+
*/
|
|
11
|
+
var dependency_model_1 = require("./dependency-model");
|
|
12
|
+
Object.defineProperty(exports, "deriveDependencyModel", { enumerable: true, get: function () { return dependency_model_1.deriveDependencyModel; } });
|
|
13
|
+
Object.defineProperty(exports, "runDependencyModel", { enumerable: true, get: function () { return dependency_model_1.runDependencyModel; } });
|
|
14
|
+
Object.defineProperty(exports, "formatDependencyModelResult", { enumerable: true, get: function () { return dependency_model_1.formatDependencyModelResult; } });
|
|
15
|
+
Object.defineProperty(exports, "explainDependency", { enumerable: true, get: function () { return dependency_model_1.explainDependency; } });
|
|
36
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,uDAK4B;AAJ1B,yHAAA,qBAAqB,OAAA;AACrB,sHAAA,kBAAkB,OAAA;AAClB,+HAAA,2BAA2B,OAAA;AAC3B,qHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { PackageJson } from './package-json';
|
|
2
|
+
export interface ImportEntry {
|
|
3
|
+
packageName: string;
|
|
4
|
+
isTypeOnly: boolean;
|
|
5
|
+
file: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function getPackageName(specifier: string): string | null;
|
|
8
|
+
export declare function collectSourceFiles(srcDirOrWorkspaceDir: string, pkg?: PackageJson): string[];
|
|
9
|
+
export declare function collectSourceImportsFromFiles(files: string[]): ImportEntry[];
|
|
10
|
+
export declare function collectSourceImports(srcDirOrWorkspaceDir: string, pkg?: PackageJson): ImportEntry[];
|
|
11
|
+
export declare function collectDtsImports(distDir: string): Set<string>;
|