knip 2.20.0 → 2.21.0-op.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/DependencyDeputy.d.ts +3 -0
- package/dist/DependencyDeputy.js +19 -1
- package/dist/constants.js +2 -0
- package/dist/index.js +2 -1
- package/dist/reporters/json.js +1 -0
- package/dist/types/issues.d.ts +1 -0
- package/dist/types/workspace.d.ts +1 -0
- package/dist/util/get-included-issue-types.js +10 -3
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -32,6 +32,7 @@ export declare class DependencyDeputy {
|
|
|
32
32
|
scripts: string[];
|
|
33
33
|
dependencies: string[];
|
|
34
34
|
peerDependencies: string[];
|
|
35
|
+
optionalPeerDependencies: string[];
|
|
35
36
|
optionalDependencies: string[];
|
|
36
37
|
devDependencies: string[];
|
|
37
38
|
allDependencies: string[];
|
|
@@ -46,12 +47,14 @@ export declare class DependencyDeputy {
|
|
|
46
47
|
addReferencedBinary(workspaceName: string, binaryName: string): void;
|
|
47
48
|
addPeerDependencies(workspaceName: string, peerDependencies: Map<string, Set<string>>): void;
|
|
48
49
|
getPeerDependenciesOf(workspaceName: string, dependency: string): string[];
|
|
50
|
+
getOptionalPeerDependencies(workspaceName: string): string[];
|
|
49
51
|
maybeAddReferencedExternalDependency(workspace: Workspace, packageName: string): boolean;
|
|
50
52
|
maybeAddReferencedBinary(workspace: Workspace, binaryName: string): boolean;
|
|
51
53
|
private isInDependencies;
|
|
52
54
|
settleDependencyIssues(): {
|
|
53
55
|
dependencyIssues: Issue[];
|
|
54
56
|
devDependencyIssues: Issue[];
|
|
57
|
+
optionalPeerDependencyIssues: Issue[];
|
|
55
58
|
};
|
|
56
59
|
getConfigurationHints(): {
|
|
57
60
|
configurationHints: ConfigurationHints;
|
package/dist/DependencyDeputy.js
CHANGED
|
@@ -22,6 +22,11 @@ export class DependencyDeputy {
|
|
|
22
22
|
const dependencies = Object.keys(manifest.dependencies ?? {});
|
|
23
23
|
const peerDependencies = Object.keys(manifest.peerDependencies ?? {});
|
|
24
24
|
const optionalDependencies = Object.keys(manifest.optionalDependencies ?? {});
|
|
25
|
+
const optionalPeerDependencies = manifest.peerDependenciesMeta
|
|
26
|
+
? peerDependencies.filter(peerDependency => manifest.peerDependenciesMeta &&
|
|
27
|
+
peerDependency in manifest.peerDependenciesMeta &&
|
|
28
|
+
manifest.peerDependenciesMeta[peerDependency].optional)
|
|
29
|
+
: [];
|
|
25
30
|
const devDependencies = Object.keys(manifest.devDependencies ?? {});
|
|
26
31
|
const allDependencies = [...dependencies, ...devDependencies, ...peerDependencies, ...optionalDependencies];
|
|
27
32
|
this._manifests.set(name, {
|
|
@@ -32,6 +37,7 @@ export class DependencyDeputy {
|
|
|
32
37
|
scripts,
|
|
33
38
|
dependencies,
|
|
34
39
|
peerDependencies,
|
|
40
|
+
optionalPeerDependencies,
|
|
35
41
|
optionalDependencies,
|
|
36
42
|
devDependencies,
|
|
37
43
|
allDependencies,
|
|
@@ -79,6 +85,12 @@ export class DependencyDeputy {
|
|
|
79
85
|
getPeerDependenciesOf(workspaceName, dependency) {
|
|
80
86
|
return Array.from(this.peerDependencies.get(workspaceName)?.get(dependency) ?? []);
|
|
81
87
|
}
|
|
88
|
+
getOptionalPeerDependencies(workspaceName) {
|
|
89
|
+
const manifest = this._manifests.get(workspaceName);
|
|
90
|
+
if (!manifest)
|
|
91
|
+
return [];
|
|
92
|
+
return manifest.optionalPeerDependencies;
|
|
93
|
+
}
|
|
82
94
|
maybeAddReferencedExternalDependency(workspace, packageName) {
|
|
83
95
|
if (isBuiltin(packageName))
|
|
84
96
|
return true;
|
|
@@ -133,6 +145,7 @@ export class DependencyDeputy {
|
|
|
133
145
|
settleDependencyIssues() {
|
|
134
146
|
const dependencyIssues = [];
|
|
135
147
|
const devDependencyIssues = [];
|
|
148
|
+
const optionalPeerDependencyIssues = [];
|
|
136
149
|
for (const [workspaceName, { manifestPath, ignoreDependencies, ignoreBinaries }] of this._manifests.entries()) {
|
|
137
150
|
const referencedDependencies = this.referencedDependencies.get(workspaceName);
|
|
138
151
|
const installedBinaries = this.getInstalledBinaries(workspaceName);
|
|
@@ -175,6 +188,7 @@ export class DependencyDeputy {
|
|
|
175
188
|
const isNotReferencedDependency = (dependency) => !isReferencedDependency(dependency);
|
|
176
189
|
const pd = this.getProductionDependencies(workspaceName);
|
|
177
190
|
const dd = this.getDevDependencies(workspaceName);
|
|
191
|
+
const od = this.getOptionalPeerDependencies(workspaceName);
|
|
178
192
|
pd.filter(isNotIgnoredDependency)
|
|
179
193
|
.filter(isNotIgnoredBinary)
|
|
180
194
|
.filter(isNotReferencedDependency)
|
|
@@ -183,8 +197,12 @@ export class DependencyDeputy {
|
|
|
183
197
|
.filter(isNotIgnoredBinary)
|
|
184
198
|
.filter(isNotReferencedDependency)
|
|
185
199
|
.forEach(symbol => devDependencyIssues.push({ type: 'devDependencies', filePath: manifestPath, symbol }));
|
|
200
|
+
od.filter(isNotIgnoredDependency)
|
|
201
|
+
.filter(isNotIgnoredBinary)
|
|
202
|
+
.filter(p => isReferencedDependency(p))
|
|
203
|
+
.forEach(symbol => optionalPeerDependencyIssues.push({ type: 'optionalPeerDependencies', filePath: manifestPath, symbol }));
|
|
186
204
|
}
|
|
187
|
-
return { dependencyIssues, devDependencyIssues };
|
|
205
|
+
return { dependencyIssues, devDependencyIssues, optionalPeerDependencyIssues };
|
|
188
206
|
}
|
|
189
207
|
getConfigurationHints() {
|
|
190
208
|
const configurationHints = new Set();
|
package/dist/constants.js
CHANGED
|
@@ -59,6 +59,7 @@ export const ISSUE_TYPES = [
|
|
|
59
59
|
'files',
|
|
60
60
|
'dependencies',
|
|
61
61
|
'devDependencies',
|
|
62
|
+
'optionalPeerDependencies',
|
|
62
63
|
'unlisted',
|
|
63
64
|
'binaries',
|
|
64
65
|
'unresolved',
|
|
@@ -74,6 +75,7 @@ export const ISSUE_TYPE_TITLE = {
|
|
|
74
75
|
files: 'Unused files',
|
|
75
76
|
dependencies: 'Unused dependencies',
|
|
76
77
|
devDependencies: 'Unused devDependencies',
|
|
78
|
+
optionalPeerDependencies: 'Referenced optional peerDependencies',
|
|
77
79
|
unlisted: 'Unlisted dependencies',
|
|
78
80
|
binaries: 'Unlisted binaries',
|
|
79
81
|
unresolved: 'Unresolved imports',
|
package/dist/index.js
CHANGED
|
@@ -308,11 +308,12 @@ export const main = async (unresolvedConfiguration) => {
|
|
|
308
308
|
}
|
|
309
309
|
}
|
|
310
310
|
if (isReportDependencies) {
|
|
311
|
-
const { dependencyIssues, devDependencyIssues } = deputy.settleDependencyIssues();
|
|
311
|
+
const { dependencyIssues, devDependencyIssues, optionalPeerDependencyIssues } = deputy.settleDependencyIssues();
|
|
312
312
|
const { configurationHints } = deputy.getConfigurationHints();
|
|
313
313
|
dependencyIssues.forEach(issue => collector.addIssue(issue));
|
|
314
314
|
if (!isProduction)
|
|
315
315
|
devDependencyIssues.forEach(issue => collector.addIssue(issue));
|
|
316
|
+
optionalPeerDependencyIssues.forEach(issue => collector.addIssue(issue));
|
|
316
317
|
configurationHints.forEach(hint => collector.addConfigurationHint(hint));
|
|
317
318
|
}
|
|
318
319
|
const unusedIgnoredWorkspaces = chief.getUnusedIgnoredWorkspaces();
|
package/dist/reporters/json.js
CHANGED
|
@@ -22,6 +22,7 @@ export default async ({ report, issues, options }) => {
|
|
|
22
22
|
...(report.files && { files: false }),
|
|
23
23
|
...(report.dependencies && { dependencies: [] }),
|
|
24
24
|
...(report.devDependencies && { devDependencies: [] }),
|
|
25
|
+
...(report.optionalPeerDependencies && { optionalPeerDependencies: [] }),
|
|
25
26
|
...(report.unlisted && { unlisted: [] }),
|
|
26
27
|
...(report.unresolved && { unresolved: [] }),
|
|
27
28
|
...((report.exports || report.nsExports) && { exports: [] }),
|
package/dist/types/issues.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { ISSUE_TYPES } from '../constants.js';
|
|
2
2
|
export const getIncludedIssueTypes = (cliArgs, { include = [], exclude = [], isProduction = false } = {}) => {
|
|
3
3
|
if (cliArgs.dependencies) {
|
|
4
|
-
cliArgs.include = [
|
|
4
|
+
cliArgs.include = [
|
|
5
|
+
...cliArgs.include,
|
|
6
|
+
'dependencies',
|
|
7
|
+
'optionalPeerDependencies',
|
|
8
|
+
'unlisted',
|
|
9
|
+
'binaries',
|
|
10
|
+
'unresolved',
|
|
11
|
+
];
|
|
5
12
|
}
|
|
6
13
|
if (cliArgs.exports) {
|
|
7
14
|
const exports = ['exports', 'nsExports', 'classMembers', 'types', 'nsTypes', 'enumMembers', 'duplicates'];
|
|
@@ -21,9 +28,9 @@ export const getIncludedIssueTypes = (cliArgs, { include = [], exclude = [], isP
|
|
|
21
28
|
}
|
|
22
29
|
else {
|
|
23
30
|
if (_include.includes('dependencies'))
|
|
24
|
-
_include.push('devDependencies');
|
|
31
|
+
_include.push('devDependencies', 'optionalPeerDependencies');
|
|
25
32
|
if (_exclude.includes('dependencies'))
|
|
26
|
-
_exclude.push('devDependencies');
|
|
33
|
+
_exclude.push('devDependencies', 'optionalPeerDependencies');
|
|
27
34
|
}
|
|
28
35
|
const included = (_include.length > 0 ? _include : ISSUE_TYPES).filter(group => !_exclude.includes(group));
|
|
29
36
|
return ISSUE_TYPES.reduce((types, group) => ((types[group] = included.includes(group)), types), {});
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "2.
|
|
1
|
+
export declare const version = "2.21.0-op.0";
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '2.
|
|
1
|
+
export const version = '2.21.0-op.0';
|
package/package.json
CHANGED