sourceverity 1.0.1 → 1.0.3
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/analysis/controlFlow.d.ts +5 -0
- package/dist/analysis/controlFlow.d.ts.map +1 -1
- package/dist/analysis/controlFlow.js +2388 -74
- package/dist/analysis/controlFlow.js.map +1 -1
- package/dist/analysis/frameworks.d.ts.map +1 -1
- package/dist/analysis/frameworks.js +136 -12
- package/dist/analysis/frameworks.js.map +1 -1
- package/dist/analysis/functions.d.ts.map +1 -1
- package/dist/analysis/functions.js +95 -19
- package/dist/analysis/functions.js.map +1 -1
- package/dist/analysis/promiseFlow.d.ts.map +1 -1
- package/dist/analysis/promiseFlow.js +85 -11
- package/dist/analysis/promiseFlow.js.map +1 -1
- package/dist/baseline/manager.js +1 -1
- package/dist/baseline/manager.js.map +1 -1
- package/dist/baseline/types.d.ts +1 -1
- package/dist/baseline/types.d.ts.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +4 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/core/paths.d.ts +0 -4
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/paths.js +0 -6
- package/dist/core/paths.js.map +1 -1
- package/dist/core/version.d.ts +9 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core/version.js +51 -0
- package/dist/core/version.js.map +1 -0
- package/dist/engine/runner.d.ts +6 -1
- package/dist/engine/runner.d.ts.map +1 -1
- package/dist/engine/runner.js +37 -20
- package/dist/engine/runner.js.map +1 -1
- package/dist/engine/symbols.d.ts +17 -4
- package/dist/engine/symbols.d.ts.map +1 -1
- package/dist/engine/symbols.js +267 -34
- package/dist/engine/symbols.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/reporters/agent.d.ts +1 -1
- package/dist/reporters/agent.d.ts.map +1 -1
- package/dist/reporters/agent.js +2 -1
- package/dist/reporters/agent.js.map +1 -1
- package/dist/reporters/sarif.d.ts +2 -0
- package/dist/reporters/sarif.d.ts.map +1 -1
- package/dist/reporters/sarif.js +38 -8
- package/dist/reporters/sarif.js.map +1 -1
- package/dist/reporters/terminal.d.ts.map +1 -1
- package/dist/reporters/terminal.js +2 -1
- package/dist/reporters/terminal.js.map +1 -1
- package/dist/rules/async/floatingPromise.d.ts.map +1 -1
- package/dist/rules/async/floatingPromise.js +4 -2
- package/dist/rules/async/floatingPromise.js.map +1 -1
- package/dist/rules/browser/eventListenerCleanup.d.ts.map +1 -1
- package/dist/rules/browser/eventListenerCleanup.js +2 -9
- package/dist/rules/browser/eventListenerCleanup.js.map +1 -1
- package/dist/rules/browser/observerCleanup.d.ts.map +1 -1
- package/dist/rules/browser/observerCleanup.js +2 -9
- package/dist/rules/browser/observerCleanup.js.map +1 -1
- package/dist/rules/browser/timerCleanup.d.ts.map +1 -1
- package/dist/rules/browser/timerCleanup.js +194 -27
- package/dist/rules/browser/timerCleanup.js.map +1 -1
- package/dist/rules/network/fetchStatusUnchecked.d.ts.map +1 -1
- package/dist/rules/network/fetchStatusUnchecked.js +245 -46
- package/dist/rules/network/fetchStatusUnchecked.js.map +1 -1
- package/dist/rules/react/asyncEffectCallback.d.ts.map +1 -1
- package/dist/rules/react/asyncEffectCallback.js +2 -9
- package/dist/rules/react/asyncEffectCallback.js.map +1 -1
- package/dist/rules/react/derivedStateEffect.d.ts.map +1 -1
- package/dist/rules/react/derivedStateEffect.js +2 -9
- package/dist/rules/react/derivedStateEffect.js.map +1 -1
- package/dist/rules/react/missingEffectCleanup.d.ts.map +1 -1
- package/dist/rules/react/missingEffectCleanup.js +102 -10
- package/dist/rules/react/missingEffectCleanup.js.map +1 -1
- package/dist/rules/typescript/uncheckedIndexAccess.d.ts.map +1 -1
- package/dist/rules/typescript/uncheckedIndexAccess.js +55 -0
- package/dist/rules/typescript/uncheckedIndexAccess.js.map +1 -1
- package/dist/rules/typescript/unsafeUnvalidatedAssertion.d.ts.map +1 -1
- package/dist/rules/typescript/unsafeUnvalidatedAssertion.js +58 -21
- package/dist/rules/typescript/unsafeUnvalidatedAssertion.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAmB,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAiB,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
package/dist/core/paths.d.ts
CHANGED
|
@@ -3,8 +3,4 @@
|
|
|
3
3
|
* Ensures consistent output across Windows and POSIX systems.
|
|
4
4
|
*/
|
|
5
5
|
export declare function normalizePath(filePath: string, relativeTo?: string): string;
|
|
6
|
-
/**
|
|
7
|
-
* Determines whether a file path has an accepted TypeScript or JavaScript extension.
|
|
8
|
-
*/
|
|
9
|
-
export declare function isSourceFile(filePath: string): boolean;
|
|
10
6
|
//# sourceMappingURL=paths.d.ts.map
|
package/dist/core/paths.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/core/paths.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAsB3E
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/core/paths.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAsB3E"}
|
package/dist/core/paths.js
CHANGED
|
@@ -21,10 +21,4 @@ export function normalizePath(filePath, relativeTo) {
|
|
|
21
21
|
normalized = normalized.replace(/\/{2,}/g, "/");
|
|
22
22
|
return normalized;
|
|
23
23
|
}
|
|
24
|
-
/**
|
|
25
|
-
* Determines whether a file path has an accepted TypeScript or JavaScript extension.
|
|
26
|
-
*/
|
|
27
|
-
export function isSourceFile(filePath) {
|
|
28
|
-
return /\.(?:[cm]?[jt]sx?|json)$/i.test(filePath);
|
|
29
|
-
}
|
|
30
24
|
//# sourceMappingURL=paths.js.map
|
package/dist/core/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/core/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,UAAmB;IACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,IAAI,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,uDAAuD;IACvD,IAAI,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE9C,iCAAiC;IACjC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,8BAA8B;IAC9B,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAEhD,OAAO,UAAU,CAAC;AACpB,CAAC
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/core/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,UAAmB;IACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,IAAI,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,uDAAuD;IACvD,IAAI,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE9C,iCAAiC;IACjC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,8BAA8B;IAC9B,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAEhD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authoritative runtime version of SourceVerity.
|
|
3
|
+
*/
|
|
4
|
+
export declare const SOURCEVERITY_VERSION: string;
|
|
5
|
+
/**
|
|
6
|
+
* Returns the authoritative runtime version of SourceVerity.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getSourceVerityVersion(): string;
|
|
9
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/core/version.ts"],"names":[],"mappings":"AA8CA;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAgC,CAAC;AAEpE;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
/**
|
|
5
|
+
* Resolves the authoritative SourceVerity package version by locating and reading
|
|
6
|
+
* SourceVerity's package.json relative to this module's location.
|
|
7
|
+
*
|
|
8
|
+
* This guarantees reliable, deterministic version resolution across development,
|
|
9
|
+
* compiled distribution, npm tarball, npx, npm link, and programmatic ESM imports
|
|
10
|
+
* without depending on process.cwd() or searching upward from analyzed repositories.
|
|
11
|
+
*/
|
|
12
|
+
function resolvePackageVersion() {
|
|
13
|
+
let currentDir = path.dirname(fileURLToPath(import.meta.url));
|
|
14
|
+
while (true) {
|
|
15
|
+
const candidatePath = path.join(currentDir, "package.json");
|
|
16
|
+
try {
|
|
17
|
+
if (fs.existsSync(candidatePath)) {
|
|
18
|
+
const raw = fs.readFileSync(candidatePath, "utf-8");
|
|
19
|
+
const parsed = JSON.parse(raw);
|
|
20
|
+
if (typeof parsed === "object" &&
|
|
21
|
+
parsed !== null &&
|
|
22
|
+
"name" in parsed &&
|
|
23
|
+
"version" in parsed &&
|
|
24
|
+
parsed.name === "sourceverity" &&
|
|
25
|
+
typeof parsed.version === "string") {
|
|
26
|
+
return parsed.version;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// Continue searching parent directories if candidate is unreadable or malformed
|
|
32
|
+
}
|
|
33
|
+
const parentDir = path.dirname(currentDir);
|
|
34
|
+
if (parentDir === currentDir) {
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
currentDir = parentDir;
|
|
38
|
+
}
|
|
39
|
+
throw new Error("Unable to locate authoritative SourceVerity package.json");
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Authoritative runtime version of SourceVerity.
|
|
43
|
+
*/
|
|
44
|
+
export const SOURCEVERITY_VERSION = resolvePackageVersion();
|
|
45
|
+
/**
|
|
46
|
+
* Returns the authoritative runtime version of SourceVerity.
|
|
47
|
+
*/
|
|
48
|
+
export function getSourceVerityVersion() {
|
|
49
|
+
return SOURCEVERITY_VERSION;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/core/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;;;GAOG;AACH,SAAS,qBAAqB;IAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9D,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxC,IACE,OAAO,MAAM,KAAK,QAAQ;oBAC1B,MAAM,KAAK,IAAI;oBACf,MAAM,IAAI,MAAM;oBAChB,SAAS,IAAI,MAAM;oBACnB,MAAM,CAAC,IAAI,KAAK,cAAc;oBAC9B,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAClC,CAAC;oBACD,OAAO,MAAM,CAAC,OAAO,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gFAAgF;QAClF,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM;QACR,CAAC;QACD,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAW,qBAAqB,EAAE,CAAC;AAEpE;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}
|
package/dist/engine/runner.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../rules/index.js";
|
|
2
|
-
import type { AuditResult, Rule } from "../core/types.js";
|
|
2
|
+
import type { Finding, AuditResult, AuditSummary, Rule } from "../core/types.js";
|
|
3
3
|
export interface RunAuditOptions {
|
|
4
4
|
readonly targetDir: string;
|
|
5
5
|
readonly minConfidence?: "high" | "medium" | "low" | undefined;
|
|
@@ -11,4 +11,9 @@ export interface RunAuditOptions {
|
|
|
11
11
|
* Executes a full SourceVerity audit across the target repository.
|
|
12
12
|
*/
|
|
13
13
|
export declare function runAudit(options: RunAuditOptions): Promise<AuditResult>;
|
|
14
|
+
/**
|
|
15
|
+
* Derives a consistent, authoritative AuditSummary from an effective list of findings
|
|
16
|
+
* while preserving repository-level scan statistics (filesAnalyzed, projectsCount).
|
|
17
|
+
*/
|
|
18
|
+
export declare function computeAuditSummary(findings: readonly Finding[], filesAnalyzed: number, projectsCount: number): AuditSummary;
|
|
14
19
|
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/engine/runner.ts"],"names":[],"mappings":"AAWA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/engine/runner.ts"],"names":[],"mappings":"AAWA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,OAAO,EAIP,WAAW,EACX,YAAY,EAEZ,IAAI,EACL,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CACvD;AAcD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CA4I7E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACpB,YAAY,CA4Bd"}
|
package/dist/engine/runner.js
CHANGED
|
@@ -93,8 +93,18 @@ export async function runAudit(options) {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
// 4.
|
|
97
|
-
const
|
|
96
|
+
// 4. Deduplicate findings across multi-project programs by exact semantic identity
|
|
97
|
+
const seenFindingKeys = new Set();
|
|
98
|
+
const deduplicatedFindings = [];
|
|
99
|
+
for (const f of rawFindings) {
|
|
100
|
+
const key = `${f.file}:${f.range.start.line}:${f.range.start.column}:${f.range.end.line}:${f.range.end.column}:${f.ruleId}:${f.fingerprint}`;
|
|
101
|
+
if (!seenFindingKeys.has(key)) {
|
|
102
|
+
seenFindingKeys.add(key);
|
|
103
|
+
deduplicatedFindings.push(f);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// 5. Sort findings strictly and deterministically
|
|
107
|
+
const sortedFindings = deduplicatedFindings.sort((a, b) => {
|
|
98
108
|
// 1. File path ASC
|
|
99
109
|
const fileCmp = a.file.localeCompare(b.file);
|
|
100
110
|
if (fileCmp !== 0)
|
|
@@ -118,14 +128,34 @@ export async function runAudit(options) {
|
|
|
118
128
|
// 6. Fingerprint ASC
|
|
119
129
|
return a.fingerprint.localeCompare(b.fingerprint);
|
|
120
130
|
});
|
|
121
|
-
//
|
|
131
|
+
// 6. Build authoritative summary
|
|
132
|
+
const summary = computeAuditSummary(sortedFindings, analyzedFiles.size, repoContext.packages.length || 1);
|
|
133
|
+
const repositorySummary = {
|
|
134
|
+
typescriptVersion: tsInst?.version,
|
|
135
|
+
reactVersion: repoContext.reactVersion,
|
|
136
|
+
packageManager: repoContext.packageManager,
|
|
137
|
+
projectCount: repoContext.packages.length || 1,
|
|
138
|
+
workspaceType: repoContext.workspaceType,
|
|
139
|
+
};
|
|
140
|
+
return {
|
|
141
|
+
findings: sortedFindings,
|
|
142
|
+
summary,
|
|
143
|
+
repository: repositorySummary,
|
|
144
|
+
skippedSemanticRules: skippedSemanticRules.length > 0 ? skippedSemanticRules : undefined,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Derives a consistent, authoritative AuditSummary from an effective list of findings
|
|
149
|
+
* while preserving repository-level scan statistics (filesAnalyzed, projectsCount).
|
|
150
|
+
*/
|
|
151
|
+
export function computeAuditSummary(findings, filesAnalyzed, projectsCount) {
|
|
122
152
|
let errors = 0;
|
|
123
153
|
let warnings = 0;
|
|
124
154
|
let info = 0;
|
|
125
155
|
let highConfidence = 0;
|
|
126
156
|
let mediumConfidence = 0;
|
|
127
157
|
let lowConfidence = 0;
|
|
128
|
-
for (const f of
|
|
158
|
+
for (const f of findings) {
|
|
129
159
|
if (f.severity === "error")
|
|
130
160
|
errors++;
|
|
131
161
|
else if (f.severity === "warning")
|
|
@@ -139,28 +169,15 @@ export async function runAudit(options) {
|
|
|
139
169
|
else if (f.confidence === "low")
|
|
140
170
|
lowConfidence++;
|
|
141
171
|
}
|
|
142
|
-
|
|
172
|
+
return {
|
|
143
173
|
errors,
|
|
144
174
|
warnings,
|
|
145
175
|
info,
|
|
146
176
|
highConfidence,
|
|
147
177
|
mediumConfidence,
|
|
148
178
|
lowConfidence,
|
|
149
|
-
filesAnalyzed
|
|
150
|
-
projectsCount
|
|
151
|
-
};
|
|
152
|
-
const repositorySummary = {
|
|
153
|
-
typescriptVersion: tsInst?.version,
|
|
154
|
-
reactVersion: repoContext.reactVersion,
|
|
155
|
-
packageManager: repoContext.packageManager,
|
|
156
|
-
projectCount: repoContext.packages.length || 1,
|
|
157
|
-
workspaceType: repoContext.workspaceType,
|
|
158
|
-
};
|
|
159
|
-
return {
|
|
160
|
-
findings: sortedFindings,
|
|
161
|
-
summary,
|
|
162
|
-
repository: repositorySummary,
|
|
163
|
-
skippedSemanticRules: skippedSemanticRules.length > 0 ? skippedSemanticRules : undefined,
|
|
179
|
+
filesAnalyzed,
|
|
180
|
+
projectsCount,
|
|
164
181
|
};
|
|
165
182
|
}
|
|
166
183
|
//# sourceMappingURL=runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/engine/runner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/engine/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/symbols.d.ts
CHANGED
|
@@ -37,10 +37,23 @@ export declare function isDOMEventTarget(node: tsType.Node, checker: tsType.Type
|
|
|
37
37
|
* declared in standard TypeScript DOM definitions.
|
|
38
38
|
*/
|
|
39
39
|
export declare function isDOMAbortController(node: tsType.Node, checker: tsType.TypeChecker | undefined, ts: typeof tsType): boolean;
|
|
40
|
+
export declare function resolveReactHook(node: tsType.Node, checker: tsType.TypeChecker, hookName: string): boolean;
|
|
41
|
+
export declare function isReactSymbol(symbol: tsType.Symbol): boolean;
|
|
40
42
|
/**
|
|
41
|
-
* Resolves whether a
|
|
42
|
-
*
|
|
43
|
-
*
|
|
43
|
+
* Resolves whether a CallExpression is an authentic React lifecycle hook call (useEffect or useLayoutEffect).
|
|
44
|
+
* When TypeChecker is available, uses semantic symbol resolution only.
|
|
45
|
+
* When TypeChecker is unavailable, falls back to syntactic identification.
|
|
44
46
|
*/
|
|
45
|
-
export declare function
|
|
47
|
+
export declare function isReactLifecycleHookCall(node: tsType.CallExpression, ts: typeof tsType, checker?: tsType.TypeChecker | undefined): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Helper to identify whether a declaration originates from a standard HTTP Response library
|
|
50
|
+
* (DOM lib.dom.d.ts, undici, node-fetch, Cloudflare Workers, Node.js @types/node).
|
|
51
|
+
*/
|
|
52
|
+
export declare function isStandardResponseDeclaration(decl: tsType.Declaration): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Verifies that a PropertyAccessExpression with method name .json() originates
|
|
55
|
+
* from an authentic standard fetch Response object (e.g. DOM Response, undici, node-fetch, Cloudflare Worker),
|
|
56
|
+
* and does not contain conflicting user-defined declaration origin (e.g. declaration merging or local class/interface).
|
|
57
|
+
*/
|
|
58
|
+
export declare function isFetchResponseMethod(callTarget: tsType.PropertyAccessExpression, checker: tsType.TypeChecker | undefined, ts: typeof tsType): boolean;
|
|
46
59
|
//# sourceMappingURL=symbols.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/engine/symbols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,WAAW,CAiBhG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,GAAG,OAAO,CA2CzG;AAID;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,GAAG,OAAO,CAiBjG;AA4CD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAuCvG;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,OAAO,EAAE,MAAM,CAAC,WAAW,GAAG,SAAS,EACvC,EAAE,EAAE,OAAO,MAAM,GAChB,OAAO,CAgCT;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,OAAO,EAAE,MAAM,CAAC,WAAW,GAAG,SAAS,EACvC,EAAE,EAAE,OAAO,MAAM,GAChB,OAAO,CA0BT;AAED;;;;GAIG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/engine/symbols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,WAAW,CAiBhG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,GAAG,OAAO,CA2CzG;AAID;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,GAAG,OAAO,CAiBjG;AA4CD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAuCvG;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,OAAO,EAAE,MAAM,CAAC,WAAW,GAAG,SAAS,EACvC,EAAE,EAAE,OAAO,MAAM,GAChB,OAAO,CAgCT;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,OAAO,EAAE,MAAM,CAAC,WAAW,GAAG,SAAS,EACvC,EAAE,EAAE,OAAO,MAAM,GAChB,OAAO,CA0BT;AA0GD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAyE1G;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAiC5D;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,CAAC,cAAc,EAC3B,EAAE,EAAE,OAAO,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,SAAS,GACvC,OAAO,CAsBT;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,GAAG,OAAO,CAc/E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,CAAC,wBAAwB,EAC3C,OAAO,EAAE,MAAM,CAAC,WAAW,GAAG,SAAS,EACvC,EAAE,EAAE,OAAO,MAAM,GAChB,OAAO,CAoFT"}
|