@empline/preflight 1.1.37 → 1.1.39
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/bin/approve.js +0 -0
- package/dist/bin/audit.js +0 -0
- package/dist/bin/install-hooks.js +0 -0
- package/dist/bin/preflight.js +0 -0
- package/dist/bin/review-drift.js +0 -0
- package/dist/bin/review.js +0 -0
- package/dist/bin/submit-drift.js +0 -0
- package/dist/bin/submit.js +0 -0
- package/dist/bin/sync-check.js +0 -0
- package/dist/bin/watch.js +0 -0
- package/dist/checks/code-quality/barrel-export-orphans.d.ts +16 -7
- package/dist/checks/code-quality/barrel-export-orphans.d.ts.map +1 -1
- package/dist/checks/code-quality/barrel-export-orphans.js +300 -56
- package/dist/checks/code-quality/barrel-export-orphans.js.map +1 -1
- package/dist/checks/code-quality/unused-lib-detection.d.ts +18 -3
- package/dist/checks/code-quality/unused-lib-detection.d.ts.map +1 -1
- package/dist/checks/code-quality/unused-lib-detection.js +333 -109
- package/dist/checks/code-quality/unused-lib-detection.js.map +1 -1
- package/dist/checks/system/preflight-drift-detector.js +0 -0
- package/package.json +19 -18
package/dist/bin/approve.js
CHANGED
|
File without changes
|
package/dist/bin/audit.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/bin/preflight.js
CHANGED
|
File without changes
|
package/dist/bin/review-drift.js
CHANGED
|
File without changes
|
package/dist/bin/review.js
CHANGED
|
File without changes
|
package/dist/bin/submit-drift.js
CHANGED
|
File without changes
|
package/dist/bin/submit.js
CHANGED
|
File without changes
|
package/dist/bin/sync-check.js
CHANGED
|
File without changes
|
package/dist/bin/watch.js
CHANGED
|
File without changes
|
|
@@ -2,18 +2,27 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Barrel Export Orphan Detection
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* 1. Exported from barrel files (index.ts) but never imported elsewhere
|
|
7
|
-
* 2. Re-export wrapper files that just forward exports (backward compat files)
|
|
8
|
-
* 3. Components only referenced in docs/coverage (not actual code)
|
|
5
|
+
* ⚠️ ADVISORY ONLY - DO NOT AUTO-REMOVE EXPORTS BASED ON THIS OUTPUT
|
|
9
6
|
*
|
|
10
|
-
*
|
|
7
|
+
* This check attempts to find exports that may be unused, but has significant
|
|
8
|
+
* limitations and WILL produce false positives:
|
|
11
9
|
*
|
|
12
|
-
*
|
|
10
|
+
* Common false positive scenarios:
|
|
11
|
+
* - Components used via parent barrel re-exports (@/components re-exports @/components/home)
|
|
12
|
+
* - Dynamic imports: await import("@/components/SearchBar")
|
|
13
|
+
* - Server-side code that imports differently
|
|
14
|
+
* - Components used in MDX files, documentation, or examples
|
|
15
|
+
* - Components conditionally rendered based on feature flags
|
|
16
|
+
* - Components imported by external packages
|
|
17
|
+
* - Namespace imports: import * as Home from "@/components/home"
|
|
18
|
+
*
|
|
19
|
+
* ALWAYS manually verify before removing any exports!
|
|
20
|
+
*
|
|
21
|
+
* NON-BLOCKING: Reports advisory findings only
|
|
13
22
|
*/
|
|
14
23
|
export declare const id = "code-quality/barrel-export-orphans";
|
|
15
24
|
export declare const name = "Barrel Export Orphan Detection";
|
|
16
|
-
export declare const description = "Detects
|
|
25
|
+
export declare const description = "ADVISORY: Detects potentially unused barrel exports (verify manually before removing)";
|
|
17
26
|
export declare const category = "code-quality";
|
|
18
27
|
export declare const blocking = false;
|
|
19
28
|
export declare const tags: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"barrel-export-orphans.d.ts","sourceRoot":"","sources":["../../../src/checks/code-quality/barrel-export-orphans.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"barrel-export-orphans.d.ts","sourceRoot":"","sources":["../../../src/checks/code-quality/barrel-export-orphans.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAQH,eAAO,MAAM,EAAE,uCAAuC,CAAC;AACvD,eAAO,MAAM,IAAI,mCAAmC,CAAC;AACrD,eAAO,MAAM,WAAW,0FACiE,CAAC;AAC1F,eAAO,MAAM,QAAQ,iBAAiB,CAAC;AACvC,eAAO,MAAM,QAAQ,QAAQ,CAAC;AAC9B,eAAO,MAAM,IAAI,UAAuE,CAAC;AAiczF,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAmKzC"}
|
|
@@ -3,14 +3,23 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* Barrel Export Orphan Detection
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* 1. Exported from barrel files (index.ts) but never imported elsewhere
|
|
8
|
-
* 2. Re-export wrapper files that just forward exports (backward compat files)
|
|
9
|
-
* 3. Components only referenced in docs/coverage (not actual code)
|
|
6
|
+
* ⚠️ ADVISORY ONLY - DO NOT AUTO-REMOVE EXPORTS BASED ON THIS OUTPUT
|
|
10
7
|
*
|
|
11
|
-
*
|
|
8
|
+
* This check attempts to find exports that may be unused, but has significant
|
|
9
|
+
* limitations and WILL produce false positives:
|
|
12
10
|
*
|
|
13
|
-
*
|
|
11
|
+
* Common false positive scenarios:
|
|
12
|
+
* - Components used via parent barrel re-exports (@/components re-exports @/components/home)
|
|
13
|
+
* - Dynamic imports: await import("@/components/SearchBar")
|
|
14
|
+
* - Server-side code that imports differently
|
|
15
|
+
* - Components used in MDX files, documentation, or examples
|
|
16
|
+
* - Components conditionally rendered based on feature flags
|
|
17
|
+
* - Components imported by external packages
|
|
18
|
+
* - Namespace imports: import * as Home from "@/components/home"
|
|
19
|
+
*
|
|
20
|
+
* ALWAYS manually verify before removing any exports!
|
|
21
|
+
*
|
|
22
|
+
* NON-BLOCKING: Reports advisory findings only
|
|
14
23
|
*/
|
|
15
24
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
16
25
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -25,10 +34,10 @@ const universal_progress_reporter_1 = require("../system/universal-progress-repo
|
|
|
25
34
|
// METADATA
|
|
26
35
|
exports.id = "code-quality/barrel-export-orphans";
|
|
27
36
|
exports.name = "Barrel Export Orphan Detection";
|
|
28
|
-
exports.description = "Detects
|
|
37
|
+
exports.description = "ADVISORY: Detects potentially unused barrel exports (verify manually before removing)";
|
|
29
38
|
exports.category = "code-quality";
|
|
30
39
|
exports.blocking = false;
|
|
31
|
-
exports.tags = ["dead-code", "barrel-exports", "cleanup", "ai-clarity"];
|
|
40
|
+
exports.tags = ["dead-code", "barrel-exports", "cleanup", "ai-clarity", "advisory"];
|
|
32
41
|
const orphanedExports = [];
|
|
33
42
|
const reExportWrappers = [];
|
|
34
43
|
// Directories to scan for barrel files
|
|
@@ -37,24 +46,59 @@ const COMPONENT_DIRS = [
|
|
|
37
46
|
"hooks",
|
|
38
47
|
"lib",
|
|
39
48
|
];
|
|
40
|
-
// Directories to check for imports
|
|
49
|
+
// Directories to check for imports - expanded to reduce false positives
|
|
41
50
|
const SOURCE_DIRS = [
|
|
42
51
|
"app",
|
|
43
52
|
"components",
|
|
44
53
|
"hooks",
|
|
45
54
|
"lib",
|
|
46
|
-
"
|
|
55
|
+
"pages",
|
|
56
|
+
"src",
|
|
57
|
+
"scripts",
|
|
58
|
+
"middleware",
|
|
59
|
+
"e2e",
|
|
60
|
+
"tests",
|
|
61
|
+
"__tests__",
|
|
62
|
+
"cypress",
|
|
47
63
|
];
|
|
48
|
-
// Files/patterns to ignore
|
|
64
|
+
// Files/patterns to ignore when searching for imports
|
|
49
65
|
const IGNORE_PATTERNS = [
|
|
50
|
-
/\.test\./,
|
|
51
|
-
/\.spec\./,
|
|
52
|
-
/\.stories\./,
|
|
53
66
|
/\.d\.ts$/,
|
|
54
67
|
/coverage\//,
|
|
55
|
-
|
|
68
|
+
/\.next\//,
|
|
69
|
+
/node_modules\//,
|
|
56
70
|
/\.kiro\//,
|
|
71
|
+
/dist\//,
|
|
72
|
+
/build\//,
|
|
73
|
+
];
|
|
74
|
+
// Patterns that indicate low confidence (likely false positive)
|
|
75
|
+
const LOW_CONFIDENCE_PATTERNS = [
|
|
76
|
+
// Components commonly used via parent barrels
|
|
77
|
+
/components\/home\//,
|
|
78
|
+
/components\/search\//,
|
|
79
|
+
/components\/cart\//,
|
|
80
|
+
/components\/filters\//,
|
|
81
|
+
/components\/notifications\//,
|
|
82
|
+
/components\/seller\//,
|
|
83
|
+
/components\/admin\//,
|
|
84
|
+
// Commonly dynamically imported
|
|
85
|
+
/Modal/i,
|
|
86
|
+
/Drawer/i,
|
|
87
|
+
/Dialog/i,
|
|
88
|
+
/Popup/i,
|
|
89
|
+
/Toast/i,
|
|
90
|
+
/Background/i,
|
|
91
|
+
// Factory patterns
|
|
92
|
+
/Factory/i,
|
|
93
|
+
/Creator/i,
|
|
94
|
+
/Builder/i,
|
|
95
|
+
// Event-driven components
|
|
96
|
+
/Handler/i,
|
|
97
|
+
/Listener/i,
|
|
98
|
+
/Observer/i,
|
|
57
99
|
];
|
|
100
|
+
// Cache for barrel import checks
|
|
101
|
+
const barrelImportCache = new Map();
|
|
58
102
|
function shouldIgnore(filePath) {
|
|
59
103
|
return IGNORE_PATTERNS.some(pattern => pattern.test(filePath));
|
|
60
104
|
}
|
|
@@ -119,49 +163,171 @@ function parseBarrelExports(barrelPath) {
|
|
|
119
163
|
}
|
|
120
164
|
return exports;
|
|
121
165
|
}
|
|
122
|
-
|
|
166
|
+
/**
|
|
167
|
+
* Check if the barrel file itself is imported anywhere
|
|
168
|
+
* If the barrel is imported, all its exports are potentially used
|
|
169
|
+
*/
|
|
170
|
+
function isBarrelImported(barrelPath) {
|
|
123
171
|
const barrelRelative = node_path_1.default.relative(process.cwd(), barrelPath).replace(/\\/g, "/");
|
|
124
172
|
const barrelImportPath = barrelRelative.replace(/\/index\.ts$/, "").replace(/^/, "@/");
|
|
173
|
+
// Check cache
|
|
174
|
+
if (barrelImportCache.has(barrelImportPath)) {
|
|
175
|
+
return barrelImportCache.get(barrelImportPath);
|
|
176
|
+
}
|
|
177
|
+
let found = false;
|
|
125
178
|
for (const dir of SOURCE_DIRS) {
|
|
179
|
+
if (found)
|
|
180
|
+
break;
|
|
126
181
|
const dirPath = node_path_1.default.join(process.cwd(), dir);
|
|
127
182
|
if (!node_fs_1.default.existsSync(dirPath))
|
|
128
183
|
continue;
|
|
129
184
|
function checkDir(currentDir) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
if (entry.isDirectory() && !entry.name.startsWith(".")) {
|
|
137
|
-
if (checkDir(fullPath))
|
|
138
|
-
return true;
|
|
139
|
-
}
|
|
140
|
-
else if (entry.isFile() && (entry.name.endsWith(".ts") || entry.name.endsWith(".tsx"))) {
|
|
141
|
-
// Skip the source file itself and the barrel file
|
|
142
|
-
if (fullPath === sourceFile || fullPath === barrelPath)
|
|
185
|
+
try {
|
|
186
|
+
const entries = node_fs_1.default.readdirSync(currentDir, { withFileTypes: true });
|
|
187
|
+
for (const entry of entries) {
|
|
188
|
+
const fullPath = node_path_1.default.join(currentDir, entry.name);
|
|
189
|
+
const relativePath = node_path_1.default.relative(process.cwd(), fullPath).replace(/\\/g, "/");
|
|
190
|
+
if (shouldIgnore(relativePath))
|
|
143
191
|
continue;
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
// Check if the export name is imported from the barrel
|
|
147
|
-
// Pattern: import { ExportName } from "@/components/..."
|
|
148
|
-
const importPattern = new RegExp(`import\\s*\\{[^}]*\\b${exportName}\\b[^}]*\\}\\s*from\\s*["']${barrelImportPath.replace(/\//g, "\\/")}["']`);
|
|
149
|
-
if (importPattern.test(content)) {
|
|
192
|
+
if (entry.isDirectory() && !entry.name.startsWith(".") && !entry.name.includes("node_modules")) {
|
|
193
|
+
if (checkDir(fullPath))
|
|
150
194
|
return true;
|
|
195
|
+
}
|
|
196
|
+
else if (entry.isFile() && (entry.name.endsWith(".ts") || entry.name.endsWith(".tsx") || entry.name.endsWith(".js") || entry.name.endsWith(".jsx"))) {
|
|
197
|
+
try {
|
|
198
|
+
const content = node_fs_1.default.readFileSync(fullPath, "utf-8");
|
|
199
|
+
// Check for any import from this barrel
|
|
200
|
+
// Namespace: import * as X from "@/components/home"
|
|
201
|
+
// Named: import { X } from "@/components/home"
|
|
202
|
+
// Dynamic: import("@/components/home")
|
|
203
|
+
const escapedPath = barrelImportPath.replace(/\//g, "\\/");
|
|
204
|
+
if (new RegExp(`from\\s*["']${escapedPath}["']`).test(content) ||
|
|
205
|
+
new RegExp(`import\\s*\\(\\s*["']${escapedPath}["']`).test(content)) {
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
151
208
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
const directImportPath = "@/" + sourceRelative.replace(/\.(ts|tsx)$/, "");
|
|
155
|
-
const directPattern = new RegExp(`import\\s*\\{[^}]*\\b${exportName}\\b[^}]*\\}\\s*from\\s*["']${directImportPath.replace(/\//g, "\\/")}["']`);
|
|
156
|
-
if (directPattern.test(content)) {
|
|
157
|
-
return true;
|
|
209
|
+
catch {
|
|
210
|
+
// Skip unreadable files
|
|
158
211
|
}
|
|
159
212
|
}
|
|
160
|
-
|
|
161
|
-
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
// Skip unreadable directories
|
|
217
|
+
}
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
if (checkDir(dirPath)) {
|
|
221
|
+
found = true;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
barrelImportCache.set(barrelImportPath, found);
|
|
225
|
+
return found;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Check if parent barrels re-export this barrel
|
|
229
|
+
* e.g., @/components/index.ts might have: export * from "./home"
|
|
230
|
+
*/
|
|
231
|
+
function isReExportedByParentBarrel(barrelPath) {
|
|
232
|
+
const barrelDir = node_path_1.default.dirname(barrelPath);
|
|
233
|
+
const barrelName = node_path_1.default.basename(barrelDir);
|
|
234
|
+
// Check parent directories for barrel files that re-export this one
|
|
235
|
+
let currentDir = node_path_1.default.dirname(barrelDir);
|
|
236
|
+
const cwd = process.cwd();
|
|
237
|
+
while (currentDir.length >= cwd.length) {
|
|
238
|
+
const parentBarrel = node_path_1.default.join(currentDir, "index.ts");
|
|
239
|
+
if (node_fs_1.default.existsSync(parentBarrel)) {
|
|
240
|
+
try {
|
|
241
|
+
const content = node_fs_1.default.readFileSync(parentBarrel, "utf-8");
|
|
242
|
+
// Check for: export * from "./home" or export { X } from "./home"
|
|
243
|
+
const relativeName = "./" + barrelName;
|
|
244
|
+
if (content.includes(`from "${relativeName}"`) ||
|
|
245
|
+
content.includes(`from '${relativeName}'`)) {
|
|
246
|
+
return true;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
// Skip
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
currentDir = node_path_1.default.dirname(currentDir);
|
|
254
|
+
}
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
function isExportUsed(exportName, sourceFile, barrelPath) {
|
|
258
|
+
const barrelRelative = node_path_1.default.relative(process.cwd(), barrelPath).replace(/\\/g, "/");
|
|
259
|
+
const barrelImportPath = barrelRelative.replace(/\/index\.ts$/, "").replace(/^/, "@/");
|
|
260
|
+
for (const dir of SOURCE_DIRS) {
|
|
261
|
+
const dirPath = node_path_1.default.join(process.cwd(), dir);
|
|
262
|
+
if (!node_fs_1.default.existsSync(dirPath))
|
|
263
|
+
continue;
|
|
264
|
+
function checkDir(currentDir) {
|
|
265
|
+
try {
|
|
266
|
+
const entries = node_fs_1.default.readdirSync(currentDir, { withFileTypes: true });
|
|
267
|
+
for (const entry of entries) {
|
|
268
|
+
const fullPath = node_path_1.default.join(currentDir, entry.name);
|
|
269
|
+
const relativePath = node_path_1.default.relative(process.cwd(), fullPath).replace(/\\/g, "/");
|
|
270
|
+
if (shouldIgnore(relativePath))
|
|
271
|
+
continue;
|
|
272
|
+
if (entry.isDirectory() && !entry.name.startsWith(".") && !entry.name.includes("node_modules")) {
|
|
273
|
+
if (checkDir(fullPath))
|
|
274
|
+
return true;
|
|
275
|
+
}
|
|
276
|
+
else if (entry.isFile() && (entry.name.endsWith(".ts") || entry.name.endsWith(".tsx") || entry.name.endsWith(".js") || entry.name.endsWith(".jsx") || entry.name.endsWith(".mdx"))) {
|
|
277
|
+
// Skip the source file itself and the barrel file
|
|
278
|
+
if (fullPath === sourceFile || fullPath === barrelPath)
|
|
279
|
+
continue;
|
|
280
|
+
try {
|
|
281
|
+
const content = node_fs_1.default.readFileSync(fullPath, "utf-8");
|
|
282
|
+
const escapedBarrelPath = barrelImportPath.replace(/\//g, "\\/");
|
|
283
|
+
const escapedExportName = exportName.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
284
|
+
// Check if the export name is imported from the barrel
|
|
285
|
+
// Pattern: import { ExportName } from "@/components/..."
|
|
286
|
+
const importPattern = new RegExp(`import\\s*\\{[^}]*\\b${escapedExportName}\\b[^}]*\\}\\s*from\\s*["']${escapedBarrelPath}["']`);
|
|
287
|
+
if (importPattern.test(content)) {
|
|
288
|
+
return true;
|
|
289
|
+
}
|
|
290
|
+
// Check for default import of the component
|
|
291
|
+
// Pattern: import ExportName from "@/components/..."
|
|
292
|
+
const defaultImportPattern = new RegExp(`import\\s+${escapedExportName}\\s+from\\s*["']`);
|
|
293
|
+
if (defaultImportPattern.test(content)) {
|
|
294
|
+
return true;
|
|
295
|
+
}
|
|
296
|
+
// Also check direct imports from the file
|
|
297
|
+
const sourceRelative = node_path_1.default.relative(process.cwd(), sourceFile).replace(/\\/g, "/");
|
|
298
|
+
const directImportPath = "@/" + sourceRelative.replace(/\.(ts|tsx)$/, "");
|
|
299
|
+
const escapedDirectPath = directImportPath.replace(/\//g, "\\/");
|
|
300
|
+
const directPattern = new RegExp(`import\\s*\\{[^}]*\\b${escapedExportName}\\b[^}]*\\}\\s*from\\s*["']${escapedDirectPath}["']`);
|
|
301
|
+
if (directPattern.test(content)) {
|
|
302
|
+
return true;
|
|
303
|
+
}
|
|
304
|
+
// Check for dynamic imports
|
|
305
|
+
// Pattern: import("@/components/...").then(m => m.ExportName)
|
|
306
|
+
// Pattern: const { ExportName } = await import("@/components/...")
|
|
307
|
+
if (content.includes(`import(`) && content.includes(exportName)) {
|
|
308
|
+
return true;
|
|
309
|
+
}
|
|
310
|
+
// Check for JSX usage (might be rendered without explicit import visible)
|
|
311
|
+
// Pattern: <ExportName ... />
|
|
312
|
+
const jsxPattern = new RegExp(`<${escapedExportName}[\\s/>]`);
|
|
313
|
+
if (jsxPattern.test(content)) {
|
|
314
|
+
return true;
|
|
315
|
+
}
|
|
316
|
+
// Check for string references (e.g., component registries, lazy loading)
|
|
317
|
+
// Pattern: "ExportName" or 'ExportName' in component arrays/objects
|
|
318
|
+
if (content.includes(`"${exportName}"`) || content.includes(`'${exportName}'`)) {
|
|
319
|
+
return true;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
catch {
|
|
323
|
+
// Skip unreadable files
|
|
324
|
+
}
|
|
162
325
|
}
|
|
163
326
|
}
|
|
164
327
|
}
|
|
328
|
+
catch {
|
|
329
|
+
// Skip unreadable directories
|
|
330
|
+
}
|
|
165
331
|
return false;
|
|
166
332
|
}
|
|
167
333
|
if (checkDir(dirPath))
|
|
@@ -239,31 +405,76 @@ function detectReExportWrappers() {
|
|
|
239
405
|
checkDir(dirPath);
|
|
240
406
|
}
|
|
241
407
|
}
|
|
408
|
+
/**
|
|
409
|
+
* Determine confidence level for an orphan finding
|
|
410
|
+
*/
|
|
411
|
+
function getConfidenceLevel(barrelPath, exportName, exportedFile) {
|
|
412
|
+
// Low confidence if barrel is imported or re-exported
|
|
413
|
+
if (isBarrelImported(barrelPath)) {
|
|
414
|
+
return "low";
|
|
415
|
+
}
|
|
416
|
+
if (isReExportedByParentBarrel(barrelPath)) {
|
|
417
|
+
return "low";
|
|
418
|
+
}
|
|
419
|
+
// Low confidence for patterns that commonly have false positives
|
|
420
|
+
const fullPath = `${barrelPath}/${exportName}`;
|
|
421
|
+
if (LOW_CONFIDENCE_PATTERNS.some(pattern => pattern.test(fullPath) || pattern.test(exportedFile) || pattern.test(exportName))) {
|
|
422
|
+
return "low";
|
|
423
|
+
}
|
|
424
|
+
return "high";
|
|
425
|
+
}
|
|
242
426
|
async function run() {
|
|
243
427
|
const reporter = (0, universal_progress_reporter_1.createUniversalProgressReporter)(exports.name);
|
|
428
|
+
// Print advisory warning upfront
|
|
429
|
+
console.log();
|
|
430
|
+
console.log((0, console_chars_1.createDivider)());
|
|
431
|
+
console.log(`${console_chars_1.emoji.warning} ADVISORY CHECK - DO NOT AUTO-REMOVE EXPORTS`);
|
|
432
|
+
console.log((0, console_chars_1.createDivider)());
|
|
433
|
+
console.log();
|
|
434
|
+
console.log("This check has significant limitations and WILL produce false positives.");
|
|
435
|
+
console.log("Common false positive scenarios:");
|
|
436
|
+
console.log(" - Components imported via parent barrel re-exports");
|
|
437
|
+
console.log(" - Dynamic imports (await import(...))");
|
|
438
|
+
console.log(" - Namespace imports (import * as X from ...)");
|
|
439
|
+
console.log(" - Components used in MDX, docs, or external packages");
|
|
440
|
+
console.log();
|
|
441
|
+
console.log("ALWAYS manually verify before removing any exports!");
|
|
442
|
+
console.log();
|
|
244
443
|
// Find all barrel files
|
|
245
444
|
const barrelFiles = [];
|
|
246
445
|
for (const dir of COMPONENT_DIRS) {
|
|
247
446
|
barrelFiles.push(...findBarrelFiles(dir));
|
|
248
447
|
}
|
|
249
448
|
reporter.start(barrelFiles.length + 1, "Analyzing barrel exports for orphans");
|
|
449
|
+
// Track skipped barrels
|
|
450
|
+
let skippedBarrels = 0;
|
|
250
451
|
// Check each barrel's exports
|
|
251
452
|
for (let i = 0; i < barrelFiles.length; i++) {
|
|
252
453
|
const barrelPath = barrelFiles[i];
|
|
253
454
|
const barrelRelative = node_path_1.default.relative(process.cwd(), barrelPath).replace(/\\/g, "/");
|
|
254
455
|
reporter.updateStep(barrelRelative, i + 1, barrelFiles.length + 1);
|
|
456
|
+
// Skip barrels that are definitely in use
|
|
457
|
+
if (isBarrelImported(barrelPath) && isReExportedByParentBarrel(barrelPath)) {
|
|
458
|
+
// Both imported AND re-exported - very likely in active use
|
|
459
|
+
skippedBarrels++;
|
|
460
|
+
continue;
|
|
461
|
+
}
|
|
255
462
|
const exports = parseBarrelExports(barrelPath);
|
|
256
463
|
for (const exp of exports) {
|
|
257
464
|
if (!node_fs_1.default.existsSync(exp.file))
|
|
258
465
|
continue;
|
|
259
466
|
const fileRelative = node_path_1.default.relative(process.cwd(), exp.file).replace(/\\/g, "/");
|
|
260
467
|
if (!isExportUsed(exp.name, exp.file, barrelPath)) {
|
|
468
|
+
const confidence = getConfidenceLevel(barrelPath, exp.name, fileRelative);
|
|
261
469
|
orphanedExports.push({
|
|
262
470
|
barrelFile: barrelRelative,
|
|
263
471
|
exportedFile: fileRelative,
|
|
264
472
|
exportName: exp.name,
|
|
265
|
-
reason:
|
|
266
|
-
|
|
473
|
+
reason: confidence === "low"
|
|
474
|
+
? "Possibly unused (LOW CONFIDENCE - verify manually)"
|
|
475
|
+
: "Exported from barrel but not found in direct imports",
|
|
476
|
+
severity: confidence === "low" ? "info" : "warning",
|
|
477
|
+
confidence,
|
|
267
478
|
});
|
|
268
479
|
}
|
|
269
480
|
}
|
|
@@ -271,19 +482,25 @@ async function run() {
|
|
|
271
482
|
// Detect re-export wrapper files
|
|
272
483
|
reporter.updateStep("Checking re-export wrappers", barrelFiles.length + 1, barrelFiles.length + 1);
|
|
273
484
|
detectReExportWrappers();
|
|
485
|
+
// Separate by confidence
|
|
486
|
+
const highConfidence = orphanedExports.filter(o => o.confidence === "high");
|
|
487
|
+
const lowConfidence = orphanedExports.filter(o => o.confidence === "low");
|
|
274
488
|
// Report findings
|
|
275
|
-
const totalIssues =
|
|
276
|
-
if (totalIssues === 0) {
|
|
489
|
+
const totalIssues = highConfidence.length + reExportWrappers.length;
|
|
490
|
+
if (totalIssues === 0 && lowConfidence.length === 0) {
|
|
277
491
|
reporter.completeStep("Analysis complete", "success", "No orphaned exports detected");
|
|
492
|
+
console.log();
|
|
493
|
+
console.log(`${console_chars_1.emoji.info} Skipped ${skippedBarrels} barrels that are both imported and re-exported.`);
|
|
278
494
|
}
|
|
279
495
|
else {
|
|
280
|
-
|
|
496
|
+
// Only show high confidence as warnings
|
|
497
|
+
if (highConfidence.length > 0) {
|
|
281
498
|
console.log();
|
|
282
|
-
console.log(`${console_chars_1.emoji.warning} Found ${
|
|
499
|
+
console.log(`${console_chars_1.emoji.warning} Found ${highConfidence.length} potentially orphaned exports (higher confidence):`);
|
|
283
500
|
console.log();
|
|
284
501
|
// Group by barrel file
|
|
285
502
|
const grouped = new Map();
|
|
286
|
-
for (const orphan of
|
|
503
|
+
for (const orphan of highConfidence) {
|
|
287
504
|
const existing = grouped.get(orphan.barrelFile) || [];
|
|
288
505
|
existing.push(orphan);
|
|
289
506
|
grouped.set(orphan.barrelFile, existing);
|
|
@@ -296,6 +513,26 @@ async function run() {
|
|
|
296
513
|
console.log();
|
|
297
514
|
}
|
|
298
515
|
}
|
|
516
|
+
// Show low confidence as info only
|
|
517
|
+
if (lowConfidence.length > 0) {
|
|
518
|
+
console.log();
|
|
519
|
+
console.log(`${console_chars_1.emoji.info} Found ${lowConfidence.length} potentially orphaned exports (LOW CONFIDENCE - likely false positives):`);
|
|
520
|
+
console.log();
|
|
521
|
+
// Group by barrel file
|
|
522
|
+
const grouped = new Map();
|
|
523
|
+
for (const orphan of lowConfidence) {
|
|
524
|
+
const existing = grouped.get(orphan.barrelFile) || [];
|
|
525
|
+
existing.push(orphan);
|
|
526
|
+
grouped.set(orphan.barrelFile, existing);
|
|
527
|
+
}
|
|
528
|
+
for (const [barrel, orphans] of grouped) {
|
|
529
|
+
console.log(` ${console_chars_1.chars.info} ${barrel}:`);
|
|
530
|
+
for (const orphan of orphans) {
|
|
531
|
+
console.log(` ${console_chars_1.chars.bullet} ${orphan.exportName} (LIKELY FALSE POSITIVE)`);
|
|
532
|
+
}
|
|
533
|
+
console.log();
|
|
534
|
+
}
|
|
535
|
+
}
|
|
299
536
|
if (reExportWrappers.length > 0) {
|
|
300
537
|
console.log(`${console_chars_1.emoji.warning} Found ${reExportWrappers.length} re-export wrapper files:`);
|
|
301
538
|
console.log();
|
|
@@ -308,16 +545,23 @@ async function run() {
|
|
|
308
545
|
}
|
|
309
546
|
}
|
|
310
547
|
console.log((0, console_chars_1.createDivider)());
|
|
311
|
-
console.log(
|
|
312
|
-
console.log(
|
|
313
|
-
console.log("
|
|
314
|
-
console.log("
|
|
548
|
+
console.log(`${console_chars_1.emoji.warning} REMINDER: This is an ADVISORY check with known limitations.`);
|
|
549
|
+
console.log();
|
|
550
|
+
console.log("Before removing any export:");
|
|
551
|
+
console.log(" 1. Search the entire codebase for the component name");
|
|
552
|
+
console.log(" 2. Check for dynamic imports: import('@/...')");
|
|
553
|
+
console.log(" 3. Check for usage in MDX, docs, or external consumers");
|
|
554
|
+
console.log(" 4. Verify the barrel isn't imported elsewhere (namespace imports)");
|
|
555
|
+
console.log();
|
|
556
|
+
console.log("When in doubt, KEEP THE EXPORT.");
|
|
557
|
+
console.log((0, console_chars_1.createDivider)());
|
|
315
558
|
}
|
|
559
|
+
// Only count high confidence as warnings in summary
|
|
316
560
|
reporter.showSummary({
|
|
317
561
|
filesProcessed: barrelFiles.length,
|
|
318
|
-
issuesFound:
|
|
562
|
+
issuesFound: highConfidence.length + reExportWrappers.length,
|
|
319
563
|
errors: 0,
|
|
320
|
-
warnings:
|
|
564
|
+
warnings: highConfidence.length + reExportWrappers.length,
|
|
321
565
|
});
|
|
322
566
|
}
|
|
323
567
|
// Allow direct execution
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"barrel-export-orphans.js","sourceRoot":"","sources":["../../../src/checks/code-quality/barrel-export-orphans.ts"],"names":[],"mappings":";;AAEA;;;;;;;;;;;GAWG;;;;;;AA4QH,kBA+FC;AAzWD,sDAAyB;AACzB,0DAA6B;AAC7B,6DAAwE;AACxE,uFAAwF;AAExF,WAAW;AACE,QAAA,EAAE,GAAG,oCAAoC,CAAC;AAC1C,QAAA,IAAI,GAAG,gCAAgC,CAAC;AACxC,QAAA,WAAW,GACtB,iEAAiE,CAAC;AACvD,QAAA,QAAQ,GAAG,cAAc,CAAC;AAC1B,QAAA,QAAQ,GAAG,KAAK,CAAC;AACjB,QAAA,IAAI,GAAG,CAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AAgB7E,MAAM,eAAe,GAAqB,EAAE,CAAC;AAC7C,MAAM,gBAAgB,GAAsB,EAAE,CAAC;AAE/C,uCAAuC;AACvC,MAAM,cAAc,GAAG;IACrB,YAAY;IACZ,OAAO;IACP,KAAK;CACN,CAAC;AAEF,oEAAoE;AACpE,MAAM,WAAW,GAAG;IAClB,KAAK;IACL,YAAY;IACZ,OAAO;IACP,KAAK;IACL,gBAAgB;CACjB,CAAC;AAEF,2BAA2B;AAC3B,MAAM,eAAe,GAAG;IACtB,UAAU;IACV,UAAU;IACV,aAAa;IACb,UAAU;IACV,YAAY;IACZ,QAAQ;IACR,UAAU;CACX,CAAC;AAEF,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,SAAS,QAAQ,CAAC,UAAkB;QAClC,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO;QAEvC,MAAM,OAAO,GAAG,iBAAE,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAEnD,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC/F,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrB,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACvD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IACxC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,MAAM,OAAO,GAA0C,EAAE,CAAC;IAE1D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,iBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE3C,qCAAqC;QACrC,iDAAiD;QACjD,MAAM,WAAW,GAAG,iDAAiD,CAAC;QACtE,IAAI,KAAK,CAAC;QAEV,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACpD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACvF,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAE5B,iEAAiE;YACjE,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,SAAS;YAE3C,wBAAwB;YACxB,IAAI,YAAY,GAAG,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACvD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpE,IAAI,iBAAE,CAAC,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC,EAAE,CAAC;oBACxC,YAAY,IAAI,KAAK,CAAC;gBACxB,CAAC;qBAAM,IAAI,iBAAE,CAAC,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC;oBAChD,YAAY,IAAI,MAAM,CAAC;gBACzB,CAAC;qBAAM,IAAI,iBAAE,CAAC,UAAU,CAAC,mBAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;oBAC9D,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;QACH,CAAC;QAED,mFAAmF;QACnF,qEAAqE;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,UAAkB,EAAE,UAAkB,EAAE,UAAkB;IAC9E,MAAM,cAAc,GAAG,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpF,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEvF,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAS;QAEtC,SAAS,QAAQ,CAAC,UAAkB;YAClC,MAAM,OAAO,GAAG,iBAAE,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnD,MAAM,YAAY,GAAG,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAEhF,IAAI,YAAY,CAAC,YAAY,CAAC;oBAAE,SAAS;gBAEzC,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvD,IAAI,QAAQ,CAAC,QAAQ,CAAC;wBAAE,OAAO,IAAI,CAAC;gBACtC,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;oBACzF,kDAAkD;oBAClD,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,UAAU;wBAAE,SAAS;oBAEjE,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,iBAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBAEnD,uDAAuD;wBACvD,yDAAyD;wBACzD,MAAM,aAAa,GAAG,IAAI,MAAM,CAC9B,wBAAwB,UAAU,8BAA8B,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAC7G,CAAC;wBAEF,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;4BAChC,OAAO,IAAI,CAAC;wBACd,CAAC;wBAED,0CAA0C;wBAC1C,MAAM,cAAc,GAAG,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;wBACpF,MAAM,gBAAgB,GAAG,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;wBAC1E,MAAM,aAAa,GAAG,IAAI,MAAM,CAC9B,wBAAwB,UAAU,8BAA8B,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAC7G,CAAC;wBAEF,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;4BAChC,OAAO,IAAI,CAAC;wBACd,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,wBAAwB;oBAC1B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;IACrC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB;IAC7B,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAS;QAEtC,SAAS,QAAQ,CAAC,UAAkB;YAClC,MAAM,OAAO,GAAG,iBAAE,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEnD,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvD,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACrB,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACtH,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,iBAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;wBAEjJ,wCAAwC;wBACxC,4DAA4D;wBAC5D,MAAM,UAAU,GACd,KAAK,CAAC,MAAM,IAAI,EAAE;4BAClB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;4BAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;4BAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAE3B,IAAI,UAAU,EAAE,CAAC;4BACf,2BAA2B;4BAC3B,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;4BAC9D,IAAI,YAAY,EAAE,CAAC;gCACjB,6BAA6B;gCAC7B,IAAI,WAAW,GAAG,CAAC,CAAC;gCACpB,MAAM,YAAY,GAAG,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gCAChF,MAAM,UAAU,GAAG,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gCAElE,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;oCACjC,MAAM,OAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;oCACjD,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,OAAO,CAAC;wCAAE,SAAS;oCAEtC,SAAS,YAAY,CAAC,GAAW;wCAC/B,MAAM,UAAU,GAAG,iBAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;wCAChE,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;4CAC3B,MAAM,CAAC,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;4CACjC,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gDAC/C,YAAY,CAAC,CAAC,CAAC,CAAC;4CAClB,CAAC;iDAAM,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gDAC7E,IAAI,CAAC;oDACH,MAAM,CAAC,GAAG,iBAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oDACtC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;wDAAE,WAAW,EAAE,CAAC;gDAC5C,CAAC;gDAAC,MAAM,CAAC,CAAA,CAAC;4CACZ,CAAC;wCACH,CAAC;oCACH,CAAC;oCACD,YAAY,CAAC,OAAO,CAAC,CAAC;gCACxB,CAAC;gCAED,gBAAgB,CAAC,IAAI,CAAC;oCACpB,IAAI,EAAE,YAAY;oCAClB,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;oCAC3B,WAAW;iCACZ,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,wBAAwB;oBAC1B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,GAAG;IACvB,MAAM,QAAQ,GAAG,IAAA,6DAA+B,EAAC,YAAI,CAAC,CAAC;IAEvD,wBAAwB;IACxB,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,sCAAsC,CAAC,CAAC;IAE/E,8BAA8B;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,cAAc,GAAG,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEpF,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEnE,MAAM,OAAO,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAE/C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEvC,MAAM,YAAY,GAAG,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAEhF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;gBAClD,eAAe,CAAC,IAAI,CAAC;oBACnB,UAAU,EAAE,cAAc;oBAC1B,YAAY,EAAE,YAAY;oBAC1B,UAAU,EAAE,GAAG,CAAC,IAAI;oBACpB,MAAM,EAAE,mDAAmD;oBAC3D,QAAQ,EAAE,SAAS;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,QAAQ,CAAC,UAAU,CAAC,6BAA6B,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnG,sBAAsB,EAAE,CAAC;IAEzB,kBAAkB;IAClB,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAErE,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,YAAY,CAAC,mBAAmB,EAAE,SAAS,EAAE,8BAA8B,CAAC,CAAC;IACxF,CAAC;SAAM,CAAC;QACN,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,GAAG,qBAAK,CAAC,OAAO,UAAU,eAAe,CAAC,MAAM,2BAA2B,CAAC,CAAC;YACzF,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,uBAAuB;YACvB,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;YACpD,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACtD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC3C,CAAC;YAED,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,KAAK,qBAAK,CAAC,OAAO,IAAI,MAAM,GAAG,CAAC,CAAC;gBAC7C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,qBAAK,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,UAAU,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;gBACxF,CAAC;gBACD,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,GAAG,qBAAK,CAAC,OAAO,UAAU,gBAAgB,CAAC,MAAM,2BAA2B,CAAC,CAAC;YAC1F,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,WAAW,2BAA2B,CAAC;gBAC5H,OAAO,CAAC,GAAG,CAAC,KAAK,qBAAK,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,GAAE,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;IACrF,CAAC;IAED,QAAQ,CAAC,WAAW,CAAC;QACnB,cAAc,EAAE,WAAW,CAAC,MAAM;QAClC,WAAW,EAAE,WAAW;QACxB,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,eAAe,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM;KAC3D,CAAC,CAAC;AACL,CAAC;AAED,yBAAyB;AACzB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"barrel-export-orphans.js","sourceRoot":"","sources":["../../../src/checks/code-quality/barrel-export-orphans.ts"],"names":[],"mappings":"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"}
|