sadrazam 0.1.7 → 0.1.9
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/CHANGELOG.md +21 -0
- package/README.md +119 -313
- package/dist/aliasResolver.d.ts +28 -0
- package/dist/aliasResolver.d.ts.map +1 -0
- package/dist/aliasResolver.js +136 -0
- package/dist/aliasResolver.js.map +1 -0
- package/dist/autoFix.d.ts +1 -0
- package/dist/autoFix.d.ts.map +1 -1
- package/dist/autoFix.js +37 -4
- package/dist/autoFix.js.map +1 -1
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +2 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +219 -0
- package/dist/init.js.map +1 -0
- package/dist/reporters.d.ts +3 -1
- package/dist/reporters.d.ts.map +1 -1
- package/dist/reporters.js +273 -56
- package/dist/reporters.js.map +1 -1
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +63 -51
- package/dist/scan.js.map +1 -1
- package/dist/scriptParser.d.ts.map +1 -1
- package/dist/scriptParser.js +28 -0
- package/dist/scriptParser.js.map +1 -1
- package/dist/symbolParser.d.ts +16 -0
- package/dist/symbolParser.d.ts.map +1 -1
- package/dist/symbolParser.js +92 -1
- package/dist/symbolParser.js.map +1 -1
- package/dist/workspaceFinder.d.ts +16 -0
- package/dist/workspaceFinder.d.ts.map +1 -1
- package/dist/workspaceFinder.js +67 -25
- package/dist/workspaceFinder.js.map +1 -1
- package/package.json +1 -1
package/dist/scan.js
CHANGED
|
@@ -4,10 +4,10 @@ import { performance as nodePerformance } from "node:perf_hooks";
|
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { readScanCache, writeScanCache } from "./cache.js";
|
|
6
6
|
import { findSourceFiles } from "./fileFinder.js";
|
|
7
|
-
import {
|
|
7
|
+
import { loadAliasEntries, resolveAlias, resolveAliasCandidates } from "./aliasResolver.js";
|
|
8
8
|
import { readPackageMetadata } from "./packageReader.js";
|
|
9
9
|
import { analyzePluginInputs, analyzePlugins } from "./plugins.js";
|
|
10
|
-
import {
|
|
10
|
+
import { parseFileSymbols, } from "./symbolParser.js";
|
|
11
11
|
import { parsePackageScripts } from "./scriptParser.js";
|
|
12
12
|
import { mapToSourcePath } from "./sourceMapper.js";
|
|
13
13
|
const DEFAULT_JSDOC_IGNORE_EXPORT_TAGS = ["sadrazam-ignore", "sadrazam-keep"];
|
|
@@ -29,9 +29,10 @@ export async function scanProject(rootDir, options = {}) {
|
|
|
29
29
|
const totalStart = nodePerformance.now();
|
|
30
30
|
const absoluteRoot = path.resolve(rootDir);
|
|
31
31
|
const discoverInputsStart = nodePerformance.now();
|
|
32
|
-
const [files, packageMetadata] = await Promise.all([
|
|
32
|
+
const [files, packageMetadata, aliases] = await Promise.all([
|
|
33
33
|
findSourceFiles(absoluteRoot),
|
|
34
34
|
readPackageMetadata(absoluteRoot),
|
|
35
|
+
loadAliasEntries(absoluteRoot),
|
|
35
36
|
]);
|
|
36
37
|
const discoverInputsMs = nodePerformance.now() - discoverInputsStart;
|
|
37
38
|
const scriptParseStart = nodePerformance.now();
|
|
@@ -75,10 +76,8 @@ export async function scanProject(rootDir, options = {}) {
|
|
|
75
76
|
const readFilesStart = nodePerformance.now();
|
|
76
77
|
const fileResults = await Promise.all(dedupedFiles.map(async (filePath) => {
|
|
77
78
|
const source = await readFile(filePath, "utf8");
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
const exportedNames = parseExportedNames(source);
|
|
81
|
-
const ignoredExportNames = parseIgnoredExportNames(source, options.jsdocIgnoreExportTags ?? DEFAULT_JSDOC_IGNORE_EXPORT_TAGS);
|
|
79
|
+
const { allSpecifiers, localReferences, exportedNames, ignoredExportNames } = parseFileSymbols(source, options.jsdocIgnoreExportTags ?? DEFAULT_JSDOC_IGNORE_EXPORT_TAGS);
|
|
80
|
+
const imports = allSpecifiers;
|
|
82
81
|
const relativePath = path.relative(absoluteRoot, filePath) || path.basename(filePath);
|
|
83
82
|
return {
|
|
84
83
|
filePath,
|
|
@@ -94,19 +93,19 @@ export async function scanProject(rootDir, options = {}) {
|
|
|
94
93
|
const analysisStart = nodePerformance.now();
|
|
95
94
|
const commandPackages = mergeStringLists(scriptAnalysis.commandPackages, pluginAnalysis.commandPackages, inputAnalysis.commandPackages);
|
|
96
95
|
const commandUsage = mergeCommandUsage(scriptAnalysis.commandUsage, pluginAnalysis.commandUsage, inputAnalysis.commandUsage);
|
|
97
|
-
const externalImports = collectExternalImports(fileResults, commandPackages);
|
|
98
|
-
const packageTraces = collectPackageTraces(fileResults, commandUsage);
|
|
99
|
-
const exportTraces = collectExportTraces(absoluteRoot, fileResults, packageMetadata.entrySpecifiers, mergeFiles(scriptAnalysis.fileEntries, pluginAnalysis.fileEntries, inputAnalysis.fileEntries));
|
|
96
|
+
const externalImports = collectExternalImports(fileResults, commandPackages, aliases);
|
|
97
|
+
const packageTraces = collectPackageTraces(fileResults, commandUsage, aliases);
|
|
98
|
+
const exportTraces = collectExportTraces(absoluteRoot, fileResults, packageMetadata.entrySpecifiers, mergeFiles(scriptAnalysis.fileEntries, pluginAnalysis.fileEntries, inputAnalysis.fileEntries), aliases);
|
|
100
99
|
const missingPackages = externalImports.filter((name) => !packageMetadata.allDependencies.has(name));
|
|
101
100
|
const effectivelyUsedPackages = getEffectivelyUsedPackages(externalImports, fileResults, packageMetadata.devDependencies);
|
|
102
101
|
const unusedDependencies = getUnusedDeclaredPackages(packageMetadata.dependencies, effectivelyUsedPackages);
|
|
103
102
|
const unusedDevDependencies = getUnusedDeclaredPackages(packageMetadata.devDependencies, effectivelyUsedPackages);
|
|
104
103
|
const misplacedDevDependencies = options.strict
|
|
105
|
-
? getMisplacedDevDependencies(fileResults, packageMetadata.devDependencies)
|
|
104
|
+
? getMisplacedDevDependencies(fileResults, packageMetadata.devDependencies, aliases)
|
|
106
105
|
: [];
|
|
107
106
|
const scriptEntryFiles = await mapScriptEntryFiles(absoluteRoot, mergeFiles(scriptAnalysis.fileEntries, pluginAnalysis.fileEntries, inputAnalysis.fileEntries));
|
|
108
|
-
const unusedFiles = getUnusedFiles(absoluteRoot, fileResults, packageMetadata.entrySpecifiers, mergeFiles(scriptAnalysis.fileEntries, pluginAnalysis.fileEntries, inputAnalysis.fileEntries));
|
|
109
|
-
const unusedExports = getUnusedExports(absoluteRoot, fileResults, packageMetadata.entrySpecifiers, mergeFiles(scriptAnalysis.fileEntries, pluginAnalysis.fileEntries, inputAnalysis.fileEntries));
|
|
107
|
+
const unusedFiles = getUnusedFiles(absoluteRoot, fileResults, packageMetadata.entrySpecifiers, mergeFiles(scriptAnalysis.fileEntries, pluginAnalysis.fileEntries, inputAnalysis.fileEntries), aliases);
|
|
108
|
+
const unusedExports = getUnusedExports(absoluteRoot, fileResults, packageMetadata.entrySpecifiers, mergeFiles(scriptAnalysis.fileEntries, pluginAnalysis.fileEntries, inputAnalysis.fileEntries), aliases);
|
|
110
109
|
const analysisMs = nodePerformance.now() - analysisStart;
|
|
111
110
|
const resultWithoutRuntime = {
|
|
112
111
|
rootDir: absoluteRoot,
|
|
@@ -166,11 +165,11 @@ function mergeCommandUsage(...usages) {
|
|
|
166
165
|
.map(([packageName, sources]) => [packageName, [...sources].sort()])
|
|
167
166
|
.sort(([left], [right]) => left.localeCompare(right)));
|
|
168
167
|
}
|
|
169
|
-
function collectExternalImports(files, scriptPackages) {
|
|
168
|
+
function collectExternalImports(files, scriptPackages, aliases) {
|
|
170
169
|
const packages = new Set();
|
|
171
170
|
for (const file of files) {
|
|
172
171
|
for (const specifier of file.imports) {
|
|
173
|
-
if (!isExternalSpecifier(specifier)) {
|
|
172
|
+
if (!isExternalSpecifier(specifier, aliases)) {
|
|
174
173
|
continue;
|
|
175
174
|
}
|
|
176
175
|
const packageName = getPackageName(specifier);
|
|
@@ -186,9 +185,9 @@ function collectExternalImports(files, scriptPackages) {
|
|
|
186
185
|
}
|
|
187
186
|
return [...packages].sort();
|
|
188
187
|
}
|
|
189
|
-
function collectExportTraces(rootDir, files, packageEntries, scriptEntryFiles) {
|
|
188
|
+
function collectExportTraces(rootDir, files, packageEntries, scriptEntryFiles, aliases) {
|
|
190
189
|
const filePathSet = new Set(files.map((file) => file.filePath));
|
|
191
|
-
const { reachableFiles } = getReachableFilePaths(rootDir, files, packageEntries, scriptEntryFiles);
|
|
190
|
+
const { reachableFiles } = getReachableFilePaths(rootDir, files, packageEntries, scriptEntryFiles, aliases);
|
|
192
191
|
const relativePaths = new Map(files.map((file) => [file.filePath, file.relativePath]));
|
|
193
192
|
const traces = new Map();
|
|
194
193
|
for (const file of files) {
|
|
@@ -196,10 +195,10 @@ function collectExportTraces(rootDir, files, packageEntries, scriptEntryFiles) {
|
|
|
196
195
|
continue;
|
|
197
196
|
}
|
|
198
197
|
for (const reference of file.localReferences) {
|
|
199
|
-
if (!isLocalSpecifier(reference.specifier)) {
|
|
198
|
+
if (!isLocalSpecifier(reference.specifier, aliases)) {
|
|
200
199
|
continue;
|
|
201
200
|
}
|
|
202
|
-
const target = resolveLocalImport(file.filePath, reference.specifier, filePathSet);
|
|
201
|
+
const target = resolveLocalImport(file.filePath, reference.specifier, filePathSet, aliases);
|
|
203
202
|
if (!target || !reachableFiles.has(target)) {
|
|
204
203
|
continue;
|
|
205
204
|
}
|
|
@@ -228,11 +227,11 @@ function addExportTrace(traces, traceTarget, importer) {
|
|
|
228
227
|
entries.add(importer);
|
|
229
228
|
traces.set(traceTarget, entries);
|
|
230
229
|
}
|
|
231
|
-
function collectPackageTraces(files, scriptUsage) {
|
|
230
|
+
function collectPackageTraces(files, scriptUsage, aliases) {
|
|
232
231
|
const traces = new Map();
|
|
233
232
|
for (const file of files) {
|
|
234
233
|
for (const specifier of file.imports) {
|
|
235
|
-
if (!isExternalSpecifier(specifier)) {
|
|
234
|
+
if (!isExternalSpecifier(specifier, aliases)) {
|
|
236
235
|
continue;
|
|
237
236
|
}
|
|
238
237
|
const packageName = getPackageName(specifier);
|
|
@@ -258,8 +257,8 @@ function collectPackageTraces(files, scriptUsage) {
|
|
|
258
257
|
.map(([packageName, entries]) => [packageName, [...entries].sort()])
|
|
259
258
|
.sort(([left], [right]) => left.localeCompare(right)));
|
|
260
259
|
}
|
|
261
|
-
function getUnusedFiles(rootDir, files, packageEntries, scriptEntryFiles) {
|
|
262
|
-
const { reachableFiles } = getReachableFilePaths(rootDir, files, packageEntries, scriptEntryFiles);
|
|
260
|
+
function getUnusedFiles(rootDir, files, packageEntries, scriptEntryFiles, aliases) {
|
|
261
|
+
const { reachableFiles } = getReachableFilePaths(rootDir, files, packageEntries, scriptEntryFiles, aliases);
|
|
263
262
|
if (reachableFiles.size === 0) {
|
|
264
263
|
return [];
|
|
265
264
|
}
|
|
@@ -269,9 +268,9 @@ function getUnusedFiles(rootDir, files, packageEntries, scriptEntryFiles) {
|
|
|
269
268
|
.map((file) => file.relativePath)
|
|
270
269
|
.sort();
|
|
271
270
|
}
|
|
272
|
-
function getUnusedExports(rootDir, files, packageEntries, scriptEntryFiles) {
|
|
271
|
+
function getUnusedExports(rootDir, files, packageEntries, scriptEntryFiles, aliases) {
|
|
273
272
|
const filePathSet = new Set(files.map((file) => file.filePath));
|
|
274
|
-
const { entryFiles, reachableFiles } = getReachableFilePaths(rootDir, files, packageEntries, scriptEntryFiles);
|
|
273
|
+
const { entryFiles, reachableFiles } = getReachableFilePaths(rootDir, files, packageEntries, scriptEntryFiles, aliases);
|
|
275
274
|
if (reachableFiles.size === 0) {
|
|
276
275
|
return [];
|
|
277
276
|
}
|
|
@@ -286,10 +285,10 @@ function getUnusedExports(rootDir, files, packageEntries, scriptEntryFiles) {
|
|
|
286
285
|
continue;
|
|
287
286
|
}
|
|
288
287
|
for (const reference of file.localReferences) {
|
|
289
|
-
if (!isLocalSpecifier(reference.specifier)) {
|
|
288
|
+
if (!isLocalSpecifier(reference.specifier, aliases)) {
|
|
290
289
|
continue;
|
|
291
290
|
}
|
|
292
|
-
const target = resolveLocalImport(file.filePath, reference.specifier, filePathSet);
|
|
291
|
+
const target = resolveLocalImport(file.filePath, reference.specifier, filePathSet, aliases);
|
|
293
292
|
if (!target) {
|
|
294
293
|
continue;
|
|
295
294
|
}
|
|
@@ -313,13 +312,13 @@ function getUnusedExports(rootDir, files, packageEntries, scriptEntryFiles) {
|
|
|
313
312
|
})
|
|
314
313
|
.sort();
|
|
315
314
|
}
|
|
316
|
-
function getReachableFilePaths(rootDir, files, packageEntries, scriptEntryFiles) {
|
|
315
|
+
function getReachableFilePaths(rootDir, files, packageEntries, scriptEntryFiles, aliases) {
|
|
317
316
|
const filePathSet = new Set(files.map((file) => file.filePath));
|
|
318
317
|
const entryFiles = resolveEntryFiles(rootDir, files, packageEntries, scriptEntryFiles, filePathSet);
|
|
319
318
|
if (entryFiles.length === 0) {
|
|
320
319
|
return { entryFiles: [], reachableFiles: new Set() };
|
|
321
320
|
}
|
|
322
|
-
const graph = buildLocalImportGraph(files, filePathSet);
|
|
321
|
+
const graph = buildLocalImportGraph(files, filePathSet, aliases);
|
|
323
322
|
const visited = new Set();
|
|
324
323
|
const stack = [...entryFiles];
|
|
325
324
|
while (stack.length > 0) {
|
|
@@ -336,15 +335,15 @@ function getReachableFilePaths(rootDir, files, packageEntries, scriptEntryFiles)
|
|
|
336
335
|
}
|
|
337
336
|
return { entryFiles, reachableFiles: visited };
|
|
338
337
|
}
|
|
339
|
-
function buildLocalImportGraph(files, filePathSet) {
|
|
338
|
+
function buildLocalImportGraph(files, filePathSet, aliases) {
|
|
340
339
|
const graph = new Map();
|
|
341
340
|
for (const file of files) {
|
|
342
341
|
const localImports = new Set();
|
|
343
342
|
for (const reference of file.localReferences) {
|
|
344
|
-
if (!isLocalSpecifier(reference.specifier)) {
|
|
343
|
+
if (!isLocalSpecifier(reference.specifier, aliases)) {
|
|
345
344
|
continue;
|
|
346
345
|
}
|
|
347
|
-
const resolved = resolveLocalImport(file.filePath, reference.specifier, filePathSet);
|
|
346
|
+
const resolved = resolveLocalImport(file.filePath, reference.specifier, filePathSet, aliases);
|
|
348
347
|
if (resolved) {
|
|
349
348
|
localImports.add(resolved);
|
|
350
349
|
}
|
|
@@ -396,7 +395,13 @@ function resolvePackageEntry(packageDir, specifier, filePathSet) {
|
|
|
396
395
|
const target = path.resolve(packageDir, specifier);
|
|
397
396
|
return resolveFileCandidate(target, filePathSet);
|
|
398
397
|
}
|
|
399
|
-
function resolveLocalImport(fromFilePath, specifier, filePathSet) {
|
|
398
|
+
function resolveLocalImport(fromFilePath, specifier, filePathSet, aliases = []) {
|
|
399
|
+
for (const aliasResolved of resolveAliasCandidates(specifier, aliases)) {
|
|
400
|
+
const resolved = resolveFileCandidate(aliasResolved, filePathSet);
|
|
401
|
+
if (resolved) {
|
|
402
|
+
return resolved;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
400
405
|
const target = path.resolve(path.dirname(fromFilePath), specifier);
|
|
401
406
|
return resolveFileCandidate(target, filePathSet);
|
|
402
407
|
}
|
|
@@ -413,11 +418,18 @@ function resolveFileCandidate(target, filePathSet) {
|
|
|
413
418
|
}
|
|
414
419
|
return null;
|
|
415
420
|
}
|
|
416
|
-
function isExternalSpecifier(specifier) {
|
|
417
|
-
|
|
421
|
+
function isExternalSpecifier(specifier, aliases = []) {
|
|
422
|
+
if (specifier.startsWith(".") || path.isAbsolute(specifier)) {
|
|
423
|
+
return false;
|
|
424
|
+
}
|
|
425
|
+
// If it resolves via an alias, it's local — not an external package
|
|
426
|
+
return resolveAlias(specifier, aliases) === null;
|
|
418
427
|
}
|
|
419
|
-
function isLocalSpecifier(specifier) {
|
|
420
|
-
|
|
428
|
+
function isLocalSpecifier(specifier, aliases = []) {
|
|
429
|
+
if (specifier.startsWith(".") || path.isAbsolute(specifier)) {
|
|
430
|
+
return true;
|
|
431
|
+
}
|
|
432
|
+
return resolveAlias(specifier, aliases) !== null;
|
|
421
433
|
}
|
|
422
434
|
function getPackageName(specifier) {
|
|
423
435
|
if (specifier.startsWith("@")) {
|
|
@@ -458,11 +470,7 @@ function isTypeScriptFile(filePath) {
|
|
|
458
470
|
return /\.(ts|tsx|cts|mts)$/i.test(filePath);
|
|
459
471
|
}
|
|
460
472
|
function shouldIgnoreUnusedFile(relativePath) {
|
|
461
|
-
return
|
|
462
|
-
|| /(^|\/)__tests__(\/|$)/i.test(relativePath)
|
|
463
|
-
|| /(^|\/)stories\//i.test(relativePath)
|
|
464
|
-
|| /\.stories\.[^.]+$/i.test(relativePath)
|
|
465
|
-
|| /(^|\/)(vitest|jest|tsdown|vite|webpack|rollup|eslint|prettier|biome)\.config\.[^.]+$/i.test(relativePath);
|
|
473
|
+
return isNonProductionPath(relativePath);
|
|
466
474
|
}
|
|
467
475
|
function getUnusedDeclaredPackages(declaredPackages, usedPackages) {
|
|
468
476
|
const usedSet = new Set(usedPackages);
|
|
@@ -470,14 +478,14 @@ function getUnusedDeclaredPackages(declaredPackages, usedPackages) {
|
|
|
470
478
|
.filter((packageName) => !usedSet.has(packageName))
|
|
471
479
|
.sort();
|
|
472
480
|
}
|
|
473
|
-
function getMisplacedDevDependencies(files, devDependencies) {
|
|
481
|
+
function getMisplacedDevDependencies(files, devDependencies, aliases) {
|
|
474
482
|
const misplaced = new Set();
|
|
475
483
|
for (const file of files) {
|
|
476
484
|
if (!file.isProduction) {
|
|
477
485
|
continue;
|
|
478
486
|
}
|
|
479
487
|
for (const specifier of file.imports) {
|
|
480
|
-
if (!isExternalSpecifier(specifier)) {
|
|
488
|
+
if (!isExternalSpecifier(specifier, aliases)) {
|
|
481
489
|
continue;
|
|
482
490
|
}
|
|
483
491
|
const packageName = getPackageName(specifier);
|
|
@@ -491,13 +499,17 @@ function getMisplacedDevDependencies(files, devDependencies) {
|
|
|
491
499
|
function isProductionFilePath(rootDir, filePath) {
|
|
492
500
|
const relativePath = path.relative(rootDir, filePath);
|
|
493
501
|
const normalizedPath = relativePath.split(path.sep).join("/");
|
|
494
|
-
return !(normalizedPath
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
502
|
+
return !isNonProductionPath(normalizedPath);
|
|
503
|
+
}
|
|
504
|
+
function isNonProductionPath(relativePath) {
|
|
505
|
+
return (/(\.|\/)(test|spec)\.[^.]+$/i.test(relativePath) ||
|
|
506
|
+
/(^|\/)__tests__(\/|$)/i.test(relativePath) ||
|
|
507
|
+
/(^|\/)__mocks__(\/|$)/i.test(relativePath) ||
|
|
508
|
+
/(^|\/)fixtures(\/|$)/i.test(relativePath) ||
|
|
509
|
+
/(^|\/)test-utils(\/|$)/i.test(relativePath) ||
|
|
510
|
+
/(^|\/)stories\//i.test(relativePath) ||
|
|
511
|
+
/\.stories\.[^.]+$/i.test(relativePath) ||
|
|
512
|
+
/(^|\/)(vitest|jest|tsdown|vite|webpack|rollup|eslint|prettier|biome)\.config\.[^.]+$/i.test(relativePath));
|
|
501
513
|
}
|
|
502
514
|
function getProcessMemoryUsage() {
|
|
503
515
|
const usage = process.memoryUsage();
|
package/dist/scan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scriptParser.d.ts","sourceRoot":"","sources":["../src/scriptParser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scriptParser.d.ts","sourceRoot":"","sources":["../src/scriptParser.ts"],"names":[],"mappings":"AAoDA,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACxC;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,aAAa,CAAC,CAyCxB"}
|
package/dist/scriptParser.js
CHANGED
|
@@ -19,6 +19,34 @@ const COMMAND_PACKAGE_ALIASES = {
|
|
|
19
19
|
changeset: "@changesets/cli",
|
|
20
20
|
markdownlint: "markdownlint-cli",
|
|
21
21
|
tsc: "typescript",
|
|
22
|
+
// test runners
|
|
23
|
+
jest: "jest",
|
|
24
|
+
vitest: "vitest",
|
|
25
|
+
mocha: "mocha",
|
|
26
|
+
// linters / formatters
|
|
27
|
+
eslint: "eslint",
|
|
28
|
+
prettier: "prettier",
|
|
29
|
+
standard: "standard",
|
|
30
|
+
// build tools
|
|
31
|
+
vite: "vite",
|
|
32
|
+
webpack: "webpack",
|
|
33
|
+
rollup: "rollup",
|
|
34
|
+
esbuild: "esbuild",
|
|
35
|
+
tsup: "tsup",
|
|
36
|
+
tsdown: "tsdown",
|
|
37
|
+
// utilities
|
|
38
|
+
rimraf: "rimraf",
|
|
39
|
+
"cross-env": "cross-env",
|
|
40
|
+
concurrently: "concurrently",
|
|
41
|
+
"wait-on": "wait-on",
|
|
42
|
+
dotenv: "dotenv-cli",
|
|
43
|
+
// git hooks
|
|
44
|
+
husky: "husky",
|
|
45
|
+
"lint-staged": "lint-staged",
|
|
46
|
+
// release / versioning
|
|
47
|
+
"semantic-release": "semantic-release",
|
|
48
|
+
"release-it": "release-it",
|
|
49
|
+
bumpp: "bumpp",
|
|
22
50
|
};
|
|
23
51
|
export async function parsePackageScripts(packageDir, scripts) {
|
|
24
52
|
const commandPackages = new Set();
|
package/dist/scriptParser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scriptParser.js","sourceRoot":"","sources":["../src/scriptParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAC/C,MAAM,QAAQ,GAAG,iCAAiC,CAAC;AACnD,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,IAAI;IACJ,MAAM;CACP,CAAC,CAAC;AACH,MAAM,uBAAuB,GAA2B;IACtD,KAAK,EAAE,gBAAgB;IACvB,IAAI,EAAE,uBAAuB;IAC7B,SAAS,EAAE,iBAAiB;IAC5B,YAAY,EAAE,kBAAkB;IAChC,GAAG,EAAE,YAAY;
|
|
1
|
+
{"version":3,"file":"scriptParser.js","sourceRoot":"","sources":["../src/scriptParser.ts"],"names":[],"mappings":"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"}
|
package/dist/symbolParser.d.ts
CHANGED
|
@@ -3,6 +3,22 @@ export interface LocalReference {
|
|
|
3
3
|
importedNames: string[];
|
|
4
4
|
usesAllExports: boolean;
|
|
5
5
|
}
|
|
6
|
+
export interface FileSymbols {
|
|
7
|
+
/** All import specifiers (external + local), deduplicated. */
|
|
8
|
+
allSpecifiers: string[];
|
|
9
|
+
/** Local references with named import tracking (for unused-export analysis). */
|
|
10
|
+
localReferences: LocalReference[];
|
|
11
|
+
/** Exported names from this file. */
|
|
12
|
+
exportedNames: string[];
|
|
13
|
+
/** Exports tagged with a JSDoc ignore tag. */
|
|
14
|
+
ignoredExportNames: string[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Single-pass parse of a source file.
|
|
18
|
+
* Replaces calling parseLocalReferences + parseExportedNames + parseIgnoredExportNames
|
|
19
|
+
* + importParser.parseImports separately — all regex runs happen once over the same string.
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseFileSymbols(source: string, jsdocIgnoreTags: string[]): FileSymbols;
|
|
6
22
|
export declare function parseLocalReferences(source: string): LocalReference[];
|
|
7
23
|
export declare function parseIgnoredExportNames(source: string, tagNames: string[]): string[];
|
|
8
24
|
export declare function parseExportedNames(source: string): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbolParser.d.ts","sourceRoot":"","sources":["../src/symbolParser.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"symbolParser.d.ts","sourceRoot":"","sources":["../src/symbolParser.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gFAAgF;IAChF,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,qCAAqC;IACrC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,8CAA8C;IAC9C,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAuBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,WAAW,CAqFvF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAsDrE;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEpF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE3D"}
|
package/dist/symbolParser.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
const IMPORT_CLAUSE_RE = /\bimport\s+([\s\S]*?)\s+from\s+["'`]([^"'`]+)["'`]/g;
|
|
2
|
+
const IMPORT_SIDE_EFFECT_RE = /\bimport\s+["'`]([^"'`]+)["'`]/g;
|
|
2
3
|
const DYNAMIC_IMPORT_RE = /\bimport\s*\(\s*["'`]([^"'`]+)["'`]\s*\)/g;
|
|
3
4
|
const REQUIRE_RE = /\brequire\s*\(\s*["'`]([^"'`]+)["'`]\s*\)/g;
|
|
5
|
+
const REQUIRE_RESOLVE_RE = /\brequire\.resolve\s*\(\s*["'`]([^"'`]+)["'`]\s*\)/g;
|
|
4
6
|
const IMPORT_EQUALS_RE = /\bimport\s+[\w*\s{},]+\s*=\s*require\s*\(\s*["'`]([^"'`]+)["'`]\s*\)/g;
|
|
5
7
|
const EXPORT_FROM_RE = /\bexport\s+{([^}]+)}\s+from\s+["'`]([^"'`]+)["'`]/g;
|
|
6
8
|
const EXPORT_ALL_FROM_RE = /\bexport\s+\*\s+from\s+["'`]([^"'`]+)["'`]/g;
|
|
@@ -15,6 +17,89 @@ const EXPORT_TYPE_LIST_RE = /\bexport\s+type\s*{([^}]+)}(?!\s*from)/g;
|
|
|
15
17
|
const JSDOC_EXPORT_DECLARATION_RE = /\/\*\*([\s\S]*?)\*\/\s*export\s+(?:declare\s+)?(?:const|let|var|class|interface|type|enum|async\s+function|function)\s+([A-Za-z_$][\w$]*)/g;
|
|
16
18
|
const JSDOC_EXPORT_LIST_RE = /\/\*\*([\s\S]*?)\*\/\s*export\s*(?:type\s*)?{([^}]+)}(?!\s*from)/g;
|
|
17
19
|
const JSDOC_EXPORT_DEFAULT_RE = /\/\*\*([\s\S]*?)\*\/\s*export\s+default\b/g;
|
|
20
|
+
/**
|
|
21
|
+
* Single-pass parse of a source file.
|
|
22
|
+
* Replaces calling parseLocalReferences + parseExportedNames + parseIgnoredExportNames
|
|
23
|
+
* + importParser.parseImports separately — all regex runs happen once over the same string.
|
|
24
|
+
*/
|
|
25
|
+
export function parseFileSymbols(source, jsdocIgnoreTags) {
|
|
26
|
+
const allSpecifiers = new Set();
|
|
27
|
+
const references = [];
|
|
28
|
+
// --- import "specifier" (side-effect only, no bindings) ---
|
|
29
|
+
for (const match of source.matchAll(IMPORT_SIDE_EFFECT_RE)) {
|
|
30
|
+
const specifier = match[1]?.trim();
|
|
31
|
+
if (specifier) {
|
|
32
|
+
allSpecifiers.add(specifier);
|
|
33
|
+
// side-effect imports don't contribute to local reference tracking
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// --- import ... from "specifier" ---
|
|
37
|
+
for (const match of source.matchAll(IMPORT_CLAUSE_RE)) {
|
|
38
|
+
const clause = match[1]?.trim();
|
|
39
|
+
const specifier = match[2]?.trim();
|
|
40
|
+
if (!clause || !specifier)
|
|
41
|
+
continue;
|
|
42
|
+
allSpecifiers.add(specifier);
|
|
43
|
+
references.push({ specifier, ...parseImportClause(clause) });
|
|
44
|
+
}
|
|
45
|
+
// --- import("specifier") ---
|
|
46
|
+
for (const match of source.matchAll(DYNAMIC_IMPORT_RE)) {
|
|
47
|
+
const specifier = match[1]?.trim();
|
|
48
|
+
if (specifier) {
|
|
49
|
+
allSpecifiers.add(specifier);
|
|
50
|
+
references.push({ specifier, importedNames: [], usesAllExports: true });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// --- require("specifier") ---
|
|
54
|
+
for (const match of source.matchAll(REQUIRE_RE)) {
|
|
55
|
+
const specifier = match[1]?.trim();
|
|
56
|
+
if (specifier) {
|
|
57
|
+
allSpecifiers.add(specifier);
|
|
58
|
+
references.push({ specifier, importedNames: [], usesAllExports: true });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// --- require.resolve("specifier") ---
|
|
62
|
+
for (const match of source.matchAll(REQUIRE_RESOLVE_RE)) {
|
|
63
|
+
const specifier = match[1]?.trim();
|
|
64
|
+
if (specifier) {
|
|
65
|
+
allSpecifiers.add(specifier);
|
|
66
|
+
references.push({ specifier, importedNames: [], usesAllExports: true });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// --- import X = require("specifier") ---
|
|
70
|
+
for (const match of source.matchAll(IMPORT_EQUALS_RE)) {
|
|
71
|
+
const specifier = match[1]?.trim();
|
|
72
|
+
if (specifier) {
|
|
73
|
+
allSpecifiers.add(specifier);
|
|
74
|
+
references.push({ specifier, importedNames: [], usesAllExports: true });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// --- export { X } from "specifier" ---
|
|
78
|
+
for (const match of source.matchAll(EXPORT_FROM_RE)) {
|
|
79
|
+
const specifier = match[2]?.trim();
|
|
80
|
+
const importedNames = parseListedNames(match[1] ?? "", "source");
|
|
81
|
+
if (specifier) {
|
|
82
|
+
allSpecifiers.add(specifier);
|
|
83
|
+
references.push({ specifier, importedNames, usesAllExports: false });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// --- export * from / export * as ns from ---
|
|
87
|
+
for (const pattern of [EXPORT_ALL_FROM_RE, EXPORT_ALL_AS_FROM_RE]) {
|
|
88
|
+
for (const match of source.matchAll(pattern)) {
|
|
89
|
+
const specifier = match[1]?.trim();
|
|
90
|
+
if (specifier) {
|
|
91
|
+
allSpecifiers.add(specifier);
|
|
92
|
+
references.push({ specifier, importedNames: [], usesAllExports: true });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
allSpecifiers: [...allSpecifiers].sort(),
|
|
98
|
+
localReferences: dedupeReferences(references),
|
|
99
|
+
exportedNames: collectExportedNames(source),
|
|
100
|
+
ignoredExportNames: collectIgnoredExportNames(source, jsdocIgnoreTags),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
18
103
|
export function parseLocalReferences(source) {
|
|
19
104
|
const references = [];
|
|
20
105
|
for (const match of source.matchAll(IMPORT_CLAUSE_RE)) {
|
|
@@ -61,6 +146,12 @@ export function parseLocalReferences(source) {
|
|
|
61
146
|
return dedupeReferences(references);
|
|
62
147
|
}
|
|
63
148
|
export function parseIgnoredExportNames(source, tagNames) {
|
|
149
|
+
return collectIgnoredExportNames(source, tagNames);
|
|
150
|
+
}
|
|
151
|
+
export function parseExportedNames(source) {
|
|
152
|
+
return collectExportedNames(source);
|
|
153
|
+
}
|
|
154
|
+
function collectIgnoredExportNames(source, tagNames) {
|
|
64
155
|
if (tagNames.length === 0) {
|
|
65
156
|
return [];
|
|
66
157
|
}
|
|
@@ -93,7 +184,7 @@ export function parseIgnoredExportNames(source, tagNames) {
|
|
|
93
184
|
}
|
|
94
185
|
return [...ignored].sort();
|
|
95
186
|
}
|
|
96
|
-
|
|
187
|
+
function collectExportedNames(source) {
|
|
97
188
|
const names = new Set();
|
|
98
189
|
if (EXPORT_DEFAULT_RE.test(source)) {
|
|
99
190
|
names.add("default");
|