sadrazam 0.1.0-beta.1 → 0.1.0-beta.2
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 +9 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/configHints.d.ts +8 -0
- package/dist/configHints.d.ts.map +1 -0
- package/dist/configHints.js +44 -0
- package/dist/configHints.js.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -1
- package/dist/reporters.d.ts +8 -0
- package/dist/reporters.d.ts.map +1 -1
- package/dist/reporters.js +29 -0
- package/dist/reporters.js.map +1 -1
- package/dist/scan.d.ts +9 -0
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +25 -1
- package/dist/scan.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## v0.1.0-beta.2
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- Configuration hints for stale allowlist entries in Sadrazam config
|
|
9
|
+
- Performance reporting with per-workspace and total timing output
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- Added `--performance` CLI flag and JSON reporter performance output
|
|
13
|
+
|
|
5
14
|
## v0.1.0-beta.1
|
|
6
15
|
|
|
7
16
|
### Changed
|
package/dist/config.d.ts
CHANGED
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGhE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,6BAA6B,CAAC,EAAE,MAAM,EAAE,CAAC;IACzC,EAAE,CAAC,EAAE;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAQD,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAoBxF"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGhE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,6BAA6B,CAAC,EAAE,MAAM,EAAE,CAAC;IACzC,EAAE,CAAC,EAAE;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAQD,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAoBxF"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAgC7E,MAAM,gBAAgB,GAAG,CAAC,eAAe,CAAC,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IACvD,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7C,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEnD,IAAI,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAmB;gBACxE,MAAM,EAAE,UAAU;aACnB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,MAAM,eAAe,CAAC,WAAW,CAAC,CAA4B,CAAC;IACpF,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,QAAQ,IAAI,EAAE;QAClC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,WAAW,CAAC,CAAC,CAAC,UAAU;KACtE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SadrazamConfig } from "./config.js";
|
|
2
|
+
import type { ScanResult } from "./scan.js";
|
|
3
|
+
interface WorkspaceScanLike {
|
|
4
|
+
result: ScanResult;
|
|
5
|
+
}
|
|
6
|
+
export declare function getConfigurationHints(config: SadrazamConfig, workspaces: WorkspaceScanLike[]): string[];
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=configHints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configHints.d.ts","sourceRoot":"","sources":["../src/configHints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,UAAU,iBAAiB;IACzB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,iBAAiB,EAAE,GAC9B,MAAM,EAAE,CA4EV"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export function getConfigurationHints(config, workspaces) {
|
|
2
|
+
const hints = [];
|
|
3
|
+
const unusedDependencies = new Set();
|
|
4
|
+
const unusedDevDependencies = new Set();
|
|
5
|
+
const missingPackages = new Set();
|
|
6
|
+
const misplacedDevDependencies = new Set();
|
|
7
|
+
const observedPackages = new Set();
|
|
8
|
+
for (const { result } of workspaces) {
|
|
9
|
+
for (const item of result.unusedDependencies) {
|
|
10
|
+
unusedDependencies.add(item);
|
|
11
|
+
observedPackages.add(item);
|
|
12
|
+
}
|
|
13
|
+
for (const item of result.unusedDevDependencies) {
|
|
14
|
+
unusedDevDependencies.add(item);
|
|
15
|
+
observedPackages.add(item);
|
|
16
|
+
}
|
|
17
|
+
for (const item of result.missingPackages) {
|
|
18
|
+
missingPackages.add(item);
|
|
19
|
+
observedPackages.add(item);
|
|
20
|
+
}
|
|
21
|
+
for (const item of result.misplacedDevDependencies) {
|
|
22
|
+
misplacedDevDependencies.add(item);
|
|
23
|
+
observedPackages.add(item);
|
|
24
|
+
}
|
|
25
|
+
for (const item of result.externalImports) {
|
|
26
|
+
observedPackages.add(item);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
hints.push(...getUnusedRuleHints("ignorePackages", config.ignorePackages, observedPackages, 'ignorePackages entry "{name}" has no effect and can be removed.'));
|
|
30
|
+
hints.push(...getUnusedRuleHints("allowUnusedDependencies", config.allowUnusedDependencies, unusedDependencies, 'allowUnusedDependencies entry "{name}" has no effect and can be removed.'));
|
|
31
|
+
hints.push(...getUnusedRuleHints("allowUnusedDevDependencies", config.allowUnusedDevDependencies, unusedDevDependencies, 'allowUnusedDevDependencies entry "{name}" has no effect and can be removed.'));
|
|
32
|
+
hints.push(...getUnusedRuleHints("allowMissingPackages", config.allowMissingPackages, missingPackages, 'allowMissingPackages entry "{name}" has no effect and can be removed.'));
|
|
33
|
+
hints.push(...getUnusedRuleHints("allowMisplacedDevDependencies", config.allowMisplacedDevDependencies, misplacedDevDependencies, 'allowMisplacedDevDependencies entry "{name}" has no effect and can be removed.'));
|
|
34
|
+
return hints.sort();
|
|
35
|
+
}
|
|
36
|
+
function getUnusedRuleHints(_ruleName, values, activeItems, template) {
|
|
37
|
+
if (!values || values.length === 0) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
return values
|
|
41
|
+
.filter((value) => !activeItems.has(value))
|
|
42
|
+
.map((value) => template.replace("{name}", value));
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=configHints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configHints.js","sourceRoot":"","sources":["../src/configHints.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { performance as nodePerformance } from "node:perf_hooks";
|
|
2
3
|
import path from "node:path";
|
|
3
4
|
import pc from "picocolors";
|
|
4
5
|
import { Command } from "commander";
|
|
5
6
|
import { generateAiSummary } from "./aiClient.js";
|
|
6
7
|
import { resolveAiConfig, SUPPORTED_AI_PROVIDERS } from "./aiConfig.js";
|
|
8
|
+
import { getConfigurationHints } from "./configHints.js";
|
|
7
9
|
import { loadSadrazamConfig } from "./config.js";
|
|
8
10
|
import { getActiveFindings } from "./findings.js";
|
|
9
11
|
import { renderReport, SUPPORTED_REPORTERS, } from "./reporters.js";
|
|
@@ -30,6 +32,7 @@ program
|
|
|
30
32
|
.option("--production", "scan production files only")
|
|
31
33
|
.option("--strict", "flag devDependencies used in production files")
|
|
32
34
|
.option("--debug", "print resolved debug information")
|
|
35
|
+
.option("--performance", "print performance timing information")
|
|
33
36
|
.option("--trace <package>", "trace where a package is used")
|
|
34
37
|
.option("--ignore-packages <names>", "comma-separated package names to ignore in findings")
|
|
35
38
|
.option("--allow-unused-dependencies <names>", "comma-separated dependency allowlist")
|
|
@@ -41,12 +44,14 @@ Examples:
|
|
|
41
44
|
sadrazam .
|
|
42
45
|
sadrazam . --reporter json
|
|
43
46
|
sadrazam . --trace typescript
|
|
47
|
+
sadrazam . --performance
|
|
44
48
|
sadrazam . --workspace packages/web
|
|
45
49
|
sadrazam . --production --strict
|
|
46
50
|
AI_PROVIDER=openai AI_TOKEN=... sadrazam . --ai
|
|
47
51
|
`)
|
|
48
52
|
.action(async (target, options) => {
|
|
49
53
|
try {
|
|
54
|
+
const totalStart = nodePerformance.now();
|
|
50
55
|
const targetDir = path.resolve(target);
|
|
51
56
|
const loadedConfig = await loadSadrazamConfig(targetDir);
|
|
52
57
|
const mergedOptions = mergeCliWithConfig(options, loadedConfig.config);
|
|
@@ -61,7 +66,9 @@ Examples:
|
|
|
61
66
|
const exclude = parseFindingTypes(mergedOptions.exclude);
|
|
62
67
|
const workspaceFilters = parseCsvOption(mergedOptions.workspace);
|
|
63
68
|
const rules = buildFindingRules(mergedOptions, include, exclude);
|
|
69
|
+
const discoverStart = nodePerformance.now();
|
|
64
70
|
const { rootDir, workspaces } = await discoverWorkspaces(targetDir, workspaceFilters);
|
|
71
|
+
const discoverWorkspacesMs = nodePerformance.now() - discoverStart;
|
|
65
72
|
const workspaceReports = await Promise.all(workspaces.map(async (workspace) => {
|
|
66
73
|
const result = await scanProject(workspace.dir, {
|
|
67
74
|
production: Boolean(mergedOptions.production),
|
|
@@ -76,7 +83,9 @@ Examples:
|
|
|
76
83
|
}));
|
|
77
84
|
const warnings = [];
|
|
78
85
|
let aiSummary;
|
|
86
|
+
let aiSummaryMs = 0;
|
|
79
87
|
if (aiConfig) {
|
|
88
|
+
const aiStart = nodePerformance.now();
|
|
80
89
|
try {
|
|
81
90
|
aiSummary = await generateAiSummary(aiConfig, workspaceReports);
|
|
82
91
|
}
|
|
@@ -84,16 +93,23 @@ Examples:
|
|
|
84
93
|
const message = error instanceof Error ? error.message : String(error);
|
|
85
94
|
warnings.push(`AI summary unavailable: ${message}`);
|
|
86
95
|
}
|
|
96
|
+
aiSummaryMs = nodePerformance.now() - aiStart;
|
|
87
97
|
}
|
|
98
|
+
const configurationHints = loadedConfig.source === "defaults"
|
|
99
|
+
? []
|
|
100
|
+
: getConfigurationHints(loadedConfig.config, workspaceReports);
|
|
101
|
+
const workspaceScanMs = workspaceReports.reduce((sum, workspace) => sum + workspace.result.performance.totalMs, 0);
|
|
88
102
|
const report = renderReport({
|
|
89
103
|
targetDir: rootDir,
|
|
90
104
|
reporter,
|
|
91
105
|
debug: Boolean(mergedOptions.debug),
|
|
106
|
+
performance: Boolean(mergedOptions.performance),
|
|
92
107
|
production: Boolean(mergedOptions.production),
|
|
93
108
|
strict: Boolean(mergedOptions.strict),
|
|
94
109
|
include,
|
|
95
110
|
exclude,
|
|
96
111
|
workspaces: workspaceReports,
|
|
112
|
+
configurationHints,
|
|
97
113
|
configSource: loadedConfig.source,
|
|
98
114
|
rulesSummary: {
|
|
99
115
|
ignorePackages: rules.ignorePackages,
|
|
@@ -102,6 +118,12 @@ Examples:
|
|
|
102
118
|
allowMissingPackages: rules.allowMissingPackages,
|
|
103
119
|
allowMisplacedDevDependencies: rules.allowMisplacedDevDependencies,
|
|
104
120
|
},
|
|
121
|
+
performanceSummary: {
|
|
122
|
+
discoverWorkspacesMs: roundMs(discoverWorkspacesMs),
|
|
123
|
+
workspaceScanMs: roundMs(workspaceScanMs),
|
|
124
|
+
aiSummaryMs: roundMs(aiSummaryMs),
|
|
125
|
+
totalMs: roundMs(nodePerformance.now() - totalStart),
|
|
126
|
+
},
|
|
105
127
|
...(warnings.length > 0 ? { warnings } : {}),
|
|
106
128
|
...(mergedOptions.trace ? { trace: String(mergedOptions.trace) } : {}),
|
|
107
129
|
...(aiSummary ? { aiSummary } : {}),
|
|
@@ -170,6 +192,7 @@ function mergeCliWithConfig(rawOptions, config) {
|
|
|
170
192
|
production: rawOptions.production === true ? true : config.production ?? false,
|
|
171
193
|
strict: rawOptions.strict === true ? true : config.strict ?? false,
|
|
172
194
|
debug: rawOptions.debug === true ? true : config.debug ?? false,
|
|
195
|
+
performance: rawOptions.performance === true ? true : config.performance ?? false,
|
|
173
196
|
trace: asOptionalString(rawOptions.trace) ?? config.trace,
|
|
174
197
|
ignorePackages: asOptionalString(rawOptions.ignorePackages) ?? config.ignorePackages?.join(","),
|
|
175
198
|
allowUnusedDependencies: asOptionalString(rawOptions.allowUnusedDependencies) ?? config.allowUnusedDependencies?.join(","),
|
|
@@ -182,4 +205,7 @@ function mergeCliWithConfig(rawOptions, config) {
|
|
|
182
205
|
function asOptionalString(value) {
|
|
183
206
|
return typeof value === "string" && value.trim() ? value : undefined;
|
|
184
207
|
}
|
|
208
|
+
function roundMs(value) {
|
|
209
|
+
return Number(value.toFixed(1));
|
|
210
|
+
}
|
|
185
211
|
//# 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":";AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAuB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAqB,MAAM,eAAe,CAAC;AACrE,OAAO,EACL,YAAY,EACZ,mBAAmB,GAGpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,MAAM,uBAAuB,GAAkB;IAC7C,SAAS;IACT,qBAAqB;IACrB,wBAAwB;IACxB,2BAA2B;CAC5B,CAAC;AAEF,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,mFAAmF,CAAC;KAChG,QAAQ,CAAC,UAAU,EAAE,mBAAmB,EAAE,GAAG,CAAC;KAC9C,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC;KAC7C,MAAM,CAAC,uBAAuB,EAAE,gBAAgB,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC;KAC1C,MAAM,CAAC,mBAAmB,EAAE,aAAa,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;KAC3E,MAAM,CAAC,mBAAmB,EAAE,0CAA0C,CAAC;KACvE,MAAM,CAAC,mBAAmB,EAAE,0CAA0C,CAAC;KACvE,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;KAClE,MAAM,CAAC,cAAc,EAAE,4BAA4B,CAAC;KACpD,MAAM,CAAC,UAAU,EAAE,+CAA+C,CAAC;KACnE,MAAM,CAAC,SAAS,EAAE,kCAAkC,CAAC;KACrD,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,CAAC;KAC5D,MAAM,CAAC,2BAA2B,EAAE,qDAAqD,CAAC;KAC1F,MAAM,CAAC,qCAAqC,EAAE,sCAAsC,CAAC;KACrF,MAAM,CAAC,yCAAyC,EAAE,yCAAyC,CAAC;KAC5F,MAAM,CAAC,kCAAkC,EAAE,2CAA2C,CAAC;KACvF,MAAM,CAAC,4CAA4C,EAAE,mDAAmD,CAAC;KACzG,WAAW,CACV,OAAO,EACP
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/reporters.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface RenderReportInput {
|
|
|
17
17
|
targetDir: string;
|
|
18
18
|
reporter: ReporterType;
|
|
19
19
|
debug: boolean;
|
|
20
|
+
performance: boolean;
|
|
20
21
|
production: boolean;
|
|
21
22
|
strict: boolean;
|
|
22
23
|
include: FindingType[];
|
|
@@ -25,6 +26,7 @@ export interface RenderReportInput {
|
|
|
25
26
|
trace?: string;
|
|
26
27
|
aiSummary?: string;
|
|
27
28
|
warnings?: string[];
|
|
29
|
+
configurationHints?: string[];
|
|
28
30
|
configSource?: string;
|
|
29
31
|
rulesSummary?: {
|
|
30
32
|
ignorePackages: string[];
|
|
@@ -33,6 +35,12 @@ export interface RenderReportInput {
|
|
|
33
35
|
allowMissingPackages: string[];
|
|
34
36
|
allowMisplacedDevDependencies: string[];
|
|
35
37
|
};
|
|
38
|
+
performanceSummary?: {
|
|
39
|
+
discoverWorkspacesMs: number;
|
|
40
|
+
workspaceScanMs: number;
|
|
41
|
+
aiSummaryMs: number;
|
|
42
|
+
totalMs: number;
|
|
43
|
+
};
|
|
36
44
|
ai?: {
|
|
37
45
|
provider: string;
|
|
38
46
|
model?: string;
|
package/dist/reporters.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporters.d.ts","sourceRoot":"","sources":["../src/reporters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,eAAO,MAAM,mBAAmB,2BAA4B,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,qBAAqB,GACrB,wBAAwB,GACxB,2BAA2B,CAAC;AAEhC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE;QACb,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,uBAAuB,EAAE,MAAM,EAAE,CAAC;QAClC,0BAA0B,EAAE,MAAM,EAAE,CAAC;QACrC,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,6BAA6B,EAAE,MAAM,EAAE,CAAC;KACzC,CAAC;IACF,EAAE,CAAC,EAAE;QACH,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"reporters.d.ts","sourceRoot":"","sources":["../src/reporters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,eAAO,MAAM,mBAAmB,2BAA4B,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,qBAAqB,GACrB,wBAAwB,GACxB,2BAA2B,CAAC;AAEhC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE;QACb,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,uBAAuB,EAAE,MAAM,EAAE,CAAC;QAClC,0BAA0B,EAAE,MAAM,EAAE,CAAC;QACrC,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,6BAA6B,EAAE,MAAM,EAAE,CAAC;KACzC,CAAC;IACF,kBAAkB,CAAC,EAAE;QACnB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,EAAE,CAAC,EAAE;QACH,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAqL7D"}
|
package/dist/reporters.js
CHANGED
|
@@ -6,6 +6,7 @@ export function renderReport(input) {
|
|
|
6
6
|
targetDir: input.targetDir,
|
|
7
7
|
mode: {
|
|
8
8
|
debug: input.debug,
|
|
9
|
+
performance: input.performance,
|
|
9
10
|
production: input.production,
|
|
10
11
|
strict: input.strict,
|
|
11
12
|
include: input.include,
|
|
@@ -14,8 +15,10 @@ export function renderReport(input) {
|
|
|
14
15
|
ai: input.ai ?? null,
|
|
15
16
|
aiSummary: input.aiSummary ?? null,
|
|
16
17
|
warnings: input.warnings ?? [],
|
|
18
|
+
configurationHints: input.configurationHints ?? [],
|
|
17
19
|
configSource: input.configSource ?? null,
|
|
18
20
|
rulesSummary: input.rulesSummary ?? null,
|
|
21
|
+
performance: input.performance ? input.performanceSummary ?? null : null,
|
|
19
22
|
workspaces: input.workspaces.map(({ workspace, result, findings }) => ({
|
|
20
23
|
workspace,
|
|
21
24
|
summary: {
|
|
@@ -27,6 +30,7 @@ export function renderReport(input) {
|
|
|
27
30
|
},
|
|
28
31
|
findings,
|
|
29
32
|
externalImports: result.externalImports,
|
|
33
|
+
performance: input.performance ? result.performance : null,
|
|
30
34
|
traces: input.trace
|
|
31
35
|
? {
|
|
32
36
|
package: input.trace,
|
|
@@ -48,6 +52,23 @@ export function renderReport(input) {
|
|
|
48
52
|
lines.push(`- ${warning}`);
|
|
49
53
|
}
|
|
50
54
|
}
|
|
55
|
+
if (input.configurationHints && input.configurationHints.length > 0) {
|
|
56
|
+
lines.push("");
|
|
57
|
+
lines.push(pc.yellow("Configuration hints"));
|
|
58
|
+
for (const hint of input.configurationHints) {
|
|
59
|
+
lines.push(`- ${hint}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (input.performance && input.performanceSummary) {
|
|
63
|
+
lines.push("");
|
|
64
|
+
lines.push(pc.blue("Performance"));
|
|
65
|
+
lines.push(`Discover workspaces: ${formatMs(input.performanceSummary.discoverWorkspacesMs)}`);
|
|
66
|
+
lines.push(`Workspace scans: ${formatMs(input.performanceSummary.workspaceScanMs)}`);
|
|
67
|
+
if (input.ai) {
|
|
68
|
+
lines.push(`AI summary: ${formatMs(input.performanceSummary.aiSummaryMs)}`);
|
|
69
|
+
}
|
|
70
|
+
lines.push(`Total: ${formatMs(input.performanceSummary.totalMs)}`);
|
|
71
|
+
}
|
|
51
72
|
if (input.ai) {
|
|
52
73
|
lines.push("");
|
|
53
74
|
lines.push(pc.magenta("AI mode"));
|
|
@@ -72,6 +93,9 @@ export function renderReport(input) {
|
|
|
72
93
|
if (result.scriptCommandPackages.length > 0) {
|
|
73
94
|
lines.push(`Script packages: ${result.scriptCommandPackages.join(", ")}`);
|
|
74
95
|
}
|
|
96
|
+
if (input.performance) {
|
|
97
|
+
lines.push(`Scan time: ${formatMs(result.performance.totalMs)}`);
|
|
98
|
+
}
|
|
75
99
|
if (findingCount === 0) {
|
|
76
100
|
lines.push(pc.green("No dependency issues found."));
|
|
77
101
|
}
|
|
@@ -108,6 +132,7 @@ export function renderReport(input) {
|
|
|
108
132
|
lines.push(pc.dim(`Include: ${input.include.join(", ") || "-"}`));
|
|
109
133
|
lines.push(pc.dim(`Exclude: ${input.exclude.join(", ") || "-"}`));
|
|
110
134
|
lines.push(pc.dim(`Trace: ${input.trace ?? "-"}`));
|
|
135
|
+
lines.push(pc.dim(`Performance: ${input.performance ? "enabled" : "disabled"}`));
|
|
111
136
|
if (input.rulesSummary) {
|
|
112
137
|
lines.push(pc.dim(`Ignore packages: ${input.rulesSummary.ignorePackages.join(", ") || "-"}`));
|
|
113
138
|
lines.push(pc.dim(`Allow unused dependencies: ${input.rulesSummary.allowUnusedDependencies.join(", ") || "-"}`));
|
|
@@ -122,6 +147,7 @@ function describeMode(input) {
|
|
|
122
147
|
const enabled = [
|
|
123
148
|
input.production ? "production" : null,
|
|
124
149
|
input.strict ? "strict" : null,
|
|
150
|
+
input.performance ? "performance" : null,
|
|
125
151
|
input.debug ? "debug" : null,
|
|
126
152
|
].filter(Boolean);
|
|
127
153
|
return enabled.join(", ") || "default";
|
|
@@ -135,4 +161,7 @@ function colorizeFindingTitle(type, title) {
|
|
|
135
161
|
}
|
|
136
162
|
return pc.yellow(title);
|
|
137
163
|
}
|
|
164
|
+
function formatMs(value) {
|
|
165
|
+
return `${value.toFixed(1)}ms`;
|
|
166
|
+
}
|
|
138
167
|
//# sourceMappingURL=reporters.js.map
|
package/dist/reporters.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporters.js","sourceRoot":"","sources":["../src/reporters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAK5B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"reporters.js","sourceRoot":"","sources":["../src/reporters.ts"],"names":[],"mappings":"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"}
|
package/dist/scan.d.ts
CHANGED
|
@@ -4,6 +4,14 @@ export interface FileScanResult {
|
|
|
4
4
|
imports: string[];
|
|
5
5
|
isProduction: boolean;
|
|
6
6
|
}
|
|
7
|
+
export interface ScanPerformance {
|
|
8
|
+
discoverInputsMs: number;
|
|
9
|
+
scriptParseMs: number;
|
|
10
|
+
mapFilesMs: number;
|
|
11
|
+
readFilesMs: number;
|
|
12
|
+
analysisMs: number;
|
|
13
|
+
totalMs: number;
|
|
14
|
+
}
|
|
7
15
|
export interface ScanResult {
|
|
8
16
|
rootDir: string;
|
|
9
17
|
packagePath: string;
|
|
@@ -16,6 +24,7 @@ export interface ScanResult {
|
|
|
16
24
|
unusedDependencies: string[];
|
|
17
25
|
unusedDevDependencies: string[];
|
|
18
26
|
misplacedDevDependencies: string[];
|
|
27
|
+
performance: ScanPerformance;
|
|
19
28
|
}
|
|
20
29
|
export interface ScanOptions {
|
|
21
30
|
production?: boolean;
|
package/dist/scan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CA6FjG"}
|
package/dist/scan.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
2
|
import { builtinModules } from "node:module";
|
|
3
|
+
import { performance as nodePerformance } from "node:perf_hooks";
|
|
3
4
|
import path from "node:path";
|
|
4
5
|
import { findSourceFiles } from "./fileFinder.js";
|
|
5
6
|
import { parseImports } from "./importParser.js";
|
|
@@ -7,18 +8,26 @@ import { readPackageMetadata } from "./packageReader.js";
|
|
|
7
8
|
import { parsePackageScripts } from "./scriptParser.js";
|
|
8
9
|
import { mapToSourcePath } from "./sourceMapper.js";
|
|
9
10
|
export async function scanProject(rootDir, options = {}) {
|
|
11
|
+
const totalStart = nodePerformance.now();
|
|
10
12
|
const absoluteRoot = path.resolve(rootDir);
|
|
13
|
+
const discoverInputsStart = nodePerformance.now();
|
|
11
14
|
const [files, packageMetadata] = await Promise.all([
|
|
12
15
|
findSourceFiles(absoluteRoot),
|
|
13
16
|
readPackageMetadata(absoluteRoot),
|
|
14
17
|
]);
|
|
18
|
+
const discoverInputsMs = nodePerformance.now() - discoverInputsStart;
|
|
19
|
+
const scriptParseStart = nodePerformance.now();
|
|
15
20
|
const scriptAnalysis = await parsePackageScripts(packageMetadata.packageDir, packageMetadata.scripts);
|
|
21
|
+
const scriptParseMs = nodePerformance.now() - scriptParseStart;
|
|
16
22
|
const allFiles = mergeFiles(files, scriptAnalysis.fileEntries);
|
|
17
23
|
const selectedFiles = options.production || options.strict
|
|
18
24
|
? allFiles.filter((filePath) => isProductionFilePath(absoluteRoot, filePath))
|
|
19
25
|
: allFiles;
|
|
26
|
+
const mapFilesStart = nodePerformance.now();
|
|
20
27
|
const mappedFiles = await Promise.all(selectedFiles.map((filePath) => mapToSourcePath(absoluteRoot, filePath)));
|
|
28
|
+
const mapFilesMs = nodePerformance.now() - mapFilesStart;
|
|
21
29
|
const dedupedFiles = mergeFiles([], mappedFiles);
|
|
30
|
+
const readFilesStart = nodePerformance.now();
|
|
22
31
|
const fileResults = await Promise.all(dedupedFiles.map(async (filePath) => {
|
|
23
32
|
const source = await readFile(filePath, "utf8");
|
|
24
33
|
const imports = parseImports(source).map((entry) => entry.specifier);
|
|
@@ -30,6 +39,8 @@ export async function scanProject(rootDir, options = {}) {
|
|
|
30
39
|
isProduction: isProductionFilePath(absoluteRoot, filePath),
|
|
31
40
|
};
|
|
32
41
|
}));
|
|
42
|
+
const readFilesMs = nodePerformance.now() - readFilesStart;
|
|
43
|
+
const analysisStart = nodePerformance.now();
|
|
33
44
|
const externalImports = collectExternalImports(fileResults, scriptAnalysis.commandPackages);
|
|
34
45
|
const packageTraces = collectPackageTraces(fileResults, scriptAnalysis.commandUsage);
|
|
35
46
|
const missingPackages = externalImports.filter((name) => !packageMetadata.allDependencies.has(name));
|
|
@@ -39,18 +50,28 @@ export async function scanProject(rootDir, options = {}) {
|
|
|
39
50
|
const misplacedDevDependencies = options.strict
|
|
40
51
|
? getMisplacedDevDependencies(fileResults, packageMetadata.devDependencies)
|
|
41
52
|
: [];
|
|
53
|
+
const scriptEntryFiles = await mapScriptEntryFiles(absoluteRoot, scriptAnalysis.fileEntries);
|
|
54
|
+
const analysisMs = nodePerformance.now() - analysisStart;
|
|
42
55
|
return {
|
|
43
56
|
rootDir: absoluteRoot,
|
|
44
57
|
packagePath: packageMetadata.packagePath,
|
|
45
58
|
files: fileResults,
|
|
46
59
|
externalImports,
|
|
47
60
|
scriptCommandPackages: scriptAnalysis.commandPackages,
|
|
48
|
-
scriptEntryFiles
|
|
61
|
+
scriptEntryFiles,
|
|
49
62
|
packageTraces,
|
|
50
63
|
missingPackages,
|
|
51
64
|
unusedDependencies,
|
|
52
65
|
unusedDevDependencies,
|
|
53
66
|
misplacedDevDependencies,
|
|
67
|
+
performance: {
|
|
68
|
+
discoverInputsMs: roundMs(discoverInputsMs),
|
|
69
|
+
scriptParseMs: roundMs(scriptParseMs),
|
|
70
|
+
mapFilesMs: roundMs(mapFilesMs),
|
|
71
|
+
readFilesMs: roundMs(readFilesMs),
|
|
72
|
+
analysisMs: roundMs(analysisMs),
|
|
73
|
+
totalMs: roundMs(nodePerformance.now() - totalStart),
|
|
74
|
+
},
|
|
54
75
|
};
|
|
55
76
|
}
|
|
56
77
|
function collectExternalImports(files, scriptPackages) {
|
|
@@ -179,4 +200,7 @@ function isProductionFilePath(rootDir, filePath) {
|
|
|
179
200
|
/\.spec\.[^.]+$/i.test(normalizedPath) ||
|
|
180
201
|
/\.stories\.[^.]+$/i.test(normalizedPath));
|
|
181
202
|
}
|
|
203
|
+
function roundMs(value) {
|
|
204
|
+
return Number(value.toFixed(1));
|
|
205
|
+
}
|
|
182
206
|
//# sourceMappingURL=scan.js.map
|
package/dist/scan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
|