sourceverity 1.0.2 → 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.
Files changed (67) hide show
  1. package/dist/analysis/controlFlow.d.ts +5 -0
  2. package/dist/analysis/controlFlow.d.ts.map +1 -1
  3. package/dist/analysis/controlFlow.js +501 -45
  4. package/dist/analysis/controlFlow.js.map +1 -1
  5. package/dist/analysis/frameworks.d.ts.map +1 -1
  6. package/dist/analysis/frameworks.js +84 -12
  7. package/dist/analysis/frameworks.js.map +1 -1
  8. package/dist/analysis/functions.d.ts.map +1 -1
  9. package/dist/analysis/functions.js +52 -8
  10. package/dist/analysis/functions.js.map +1 -1
  11. package/dist/analysis/promiseFlow.d.ts.map +1 -1
  12. package/dist/analysis/promiseFlow.js +85 -11
  13. package/dist/analysis/promiseFlow.js.map +1 -1
  14. package/dist/baseline/manager.js +1 -1
  15. package/dist/baseline/manager.js.map +1 -1
  16. package/dist/baseline/types.d.ts +1 -1
  17. package/dist/baseline/types.d.ts.map +1 -1
  18. package/dist/cli/main.d.ts.map +1 -1
  19. package/dist/cli/main.js +2 -1
  20. package/dist/cli/main.js.map +1 -1
  21. package/dist/core/paths.d.ts +0 -4
  22. package/dist/core/paths.d.ts.map +1 -1
  23. package/dist/core/paths.js +0 -6
  24. package/dist/core/paths.js.map +1 -1
  25. package/dist/engine/runner.d.ts +6 -1
  26. package/dist/engine/runner.d.ts.map +1 -1
  27. package/dist/engine/runner.js +37 -20
  28. package/dist/engine/runner.js.map +1 -1
  29. package/dist/engine/symbols.d.ts +17 -4
  30. package/dist/engine/symbols.d.ts.map +1 -1
  31. package/dist/engine/symbols.js +267 -34
  32. package/dist/engine/symbols.js.map +1 -1
  33. package/dist/reporters/sarif.d.ts +2 -0
  34. package/dist/reporters/sarif.d.ts.map +1 -1
  35. package/dist/reporters/sarif.js +36 -7
  36. package/dist/reporters/sarif.js.map +1 -1
  37. package/dist/rules/async/floatingPromise.d.ts.map +1 -1
  38. package/dist/rules/async/floatingPromise.js +4 -2
  39. package/dist/rules/async/floatingPromise.js.map +1 -1
  40. package/dist/rules/browser/eventListenerCleanup.d.ts.map +1 -1
  41. package/dist/rules/browser/eventListenerCleanup.js +2 -9
  42. package/dist/rules/browser/eventListenerCleanup.js.map +1 -1
  43. package/dist/rules/browser/observerCleanup.d.ts.map +1 -1
  44. package/dist/rules/browser/observerCleanup.js +2 -9
  45. package/dist/rules/browser/observerCleanup.js.map +1 -1
  46. package/dist/rules/browser/timerCleanup.d.ts.map +1 -1
  47. package/dist/rules/browser/timerCleanup.js +2 -9
  48. package/dist/rules/browser/timerCleanup.js.map +1 -1
  49. package/dist/rules/network/fetchStatusUnchecked.d.ts.map +1 -1
  50. package/dist/rules/network/fetchStatusUnchecked.js +245 -46
  51. package/dist/rules/network/fetchStatusUnchecked.js.map +1 -1
  52. package/dist/rules/react/asyncEffectCallback.d.ts.map +1 -1
  53. package/dist/rules/react/asyncEffectCallback.js +2 -9
  54. package/dist/rules/react/asyncEffectCallback.js.map +1 -1
  55. package/dist/rules/react/derivedStateEffect.d.ts.map +1 -1
  56. package/dist/rules/react/derivedStateEffect.js +2 -9
  57. package/dist/rules/react/derivedStateEffect.js.map +1 -1
  58. package/dist/rules/react/missingEffectCleanup.d.ts.map +1 -1
  59. package/dist/rules/react/missingEffectCleanup.js +102 -10
  60. package/dist/rules/react/missingEffectCleanup.js.map +1 -1
  61. package/dist/rules/typescript/uncheckedIndexAccess.d.ts.map +1 -1
  62. package/dist/rules/typescript/uncheckedIndexAccess.js +55 -0
  63. package/dist/rules/typescript/uncheckedIndexAccess.js.map +1 -1
  64. package/dist/rules/typescript/unsafeUnvalidatedAssertion.d.ts.map +1 -1
  65. package/dist/rules/typescript/unsafeUnvalidatedAssertion.js +9 -4
  66. package/dist/rules/typescript/unsafeUnvalidatedAssertion.js.map +1 -1
  67. package/package.json +1 -1
@@ -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,EAKV,WAAW,EAGX,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,CAuJ7E"}
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"}
@@ -93,8 +93,18 @@ export async function runAudit(options) {
93
93
  }
94
94
  }
95
95
  }
96
- // 4. Sort findings strictly and deterministically
97
- const sortedFindings = [...rawFindings].sort((a, b) => {
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
- // 5. Build summary
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 sortedFindings) {
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
- const summary = {
172
+ return {
143
173
  errors,
144
174
  warnings,
145
175
  info,
146
176
  highConfidence,
147
177
  mediumConfidence,
148
178
  lowConfidence,
149
- filesAnalyzed: analyzedFiles.size,
150
- projectsCount: repoContext.packages.length || 1,
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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"}
@@ -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 function/call node corresponds to a standard React hook
42
- * (e.g. useEffect, useState, useMemo), supporting direct imports, namespace imports,
43
- * and aliased imports originating from React or @types/react.
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 resolveReactHook(node: tsType.Node, checker: tsType.TypeChecker, hookName: string): boolean;
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,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CA0C1G"}
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"}
@@ -220,59 +220,292 @@ export function isDOMAbortController(node, checker, ts) {
220
220
  return false;
221
221
  }
222
222
  }
223
- /**
224
- * Resolves whether a function/call node corresponds to a standard React hook
225
- * (e.g. useEffect, useState, useMemo), supporting direct imports, namespace imports,
226
- * and aliased imports originating from React or @types/react.
227
- */
228
- export function resolveReactHook(node, checker, hookName) {
229
- let targetIdentifier;
230
- // Case 1: React.useEffect(...) property access
231
- if ("expression" in node && node.expression && typeof node.expression === "object") {
232
- const callExpr = node.expression;
233
- if ("name" in callExpr && "expression" in callExpr) {
234
- const propName = callExpr.name;
235
- if (propName && typeof propName === "object" && "text" in propName && propName.text === hookName) {
236
- targetIdentifier = propName;
223
+ function isPropertyAccessLike(node) {
224
+ return ("name" in node &&
225
+ "expression" in node &&
226
+ node.name !== undefined &&
227
+ node.expression !== undefined &&
228
+ typeof node.name === "object" &&
229
+ node.name !== null &&
230
+ !("arguments" in node));
231
+ }
232
+ function isReactImportDeclaration(decl) {
233
+ const fileName = decl.getSourceFile().fileName.replace(/\\/g, "/");
234
+ if (fileName.includes("react/index.d.ts") ||
235
+ fileName.includes("@types/react/") ||
236
+ fileName.includes("react.d.ts") ||
237
+ (fileName.includes("/react/") && fileName.endsWith(".d.ts"))) {
238
+ return true;
239
+ }
240
+ let current = decl;
241
+ while (current) {
242
+ if ("moduleSpecifier" in current &&
243
+ current.moduleSpecifier &&
244
+ typeof current.moduleSpecifier === "object" &&
245
+ "text" in current.moduleSpecifier &&
246
+ (current.moduleSpecifier.text === "react" ||
247
+ current.moduleSpecifier.text === "react-dom")) {
248
+ return true;
249
+ }
250
+ current = current.parent;
251
+ }
252
+ return false;
253
+ }
254
+ function getReactExportName(symbol, checker) {
255
+ // 1. If symbol is an alias, try resolving the target symbol first
256
+ if ((symbol.flags & 2097152) !== 0) {
257
+ try {
258
+ const aliased = checker.getAliasedSymbol(symbol);
259
+ if (aliased && aliased !== symbol && isReactSymbol(aliased)) {
260
+ return aliased.name;
237
261
  }
238
262
  }
239
- else {
240
- targetIdentifier = callExpr;
263
+ catch {
264
+ // ignore
241
265
  }
242
266
  }
243
- else {
244
- targetIdentifier = node;
267
+ // 2. Check declarations for ImportSpecifier where module is react
268
+ const declarations = symbol.getDeclarations();
269
+ if (declarations && declarations.length > 0) {
270
+ for (const decl of declarations) {
271
+ if (isReactImportDeclaration(decl)) {
272
+ if ("propertyName" in decl && decl.propertyName && typeof decl.propertyName === "object" && "text" in decl.propertyName) {
273
+ const propIdent = decl.propertyName;
274
+ if (typeof propIdent.text === "string") {
275
+ return propIdent.text;
276
+ }
277
+ }
278
+ if ("name" in decl && decl.name && typeof decl.name === "object" && "text" in decl.name) {
279
+ const nameIdent = decl.name;
280
+ if (typeof nameIdent.text === "string") {
281
+ return nameIdent.text;
282
+ }
283
+ }
284
+ }
285
+ }
245
286
  }
246
- if (!targetIdentifier) {
247
- return false;
287
+ // 3. Direct React symbol declaration
288
+ if (isReactSymbol(symbol)) {
289
+ return symbol.name;
248
290
  }
249
- const symbol = checker.getSymbolAtLocation(targetIdentifier);
250
- if (!symbol) {
291
+ return undefined;
292
+ }
293
+ export function resolveReactHook(node, checker, hookName) {
294
+ if (!node || !checker)
251
295
  return false;
296
+ let current = node;
297
+ // If CallExpression, inspect its callee
298
+ if ("arguments" in current && "expression" in current && current.expression) {
299
+ current = current.expression;
252
300
  }
253
- if (symbol.name === hookName && isReactSymbol(symbol)) {
254
- return true;
301
+ // Unwrap parentheses, non-null assertions, type assertions, and sequence expressions
302
+ while (current) {
303
+ if (isPropertyAccessLike(current)) {
304
+ break;
305
+ }
306
+ if ("expression" in current && current.expression) {
307
+ current = current.expression;
308
+ }
309
+ else if ("right" in current && "operatorToken" in current && current.right) {
310
+ current = current.right;
311
+ }
312
+ else {
313
+ break;
314
+ }
255
315
  }
256
- // Check alias symbol if aliased (import { useEffect as myEffect })
257
- try {
258
- const aliased = checker.getAliasedSymbol(symbol);
259
- if (aliased && aliased.name === hookName && isReactSymbol(aliased)) {
260
- return true;
316
+ if (!current)
317
+ return false;
318
+ // Case 1: Property access on React namespace (e.g. React.useEffect, React.useCallback)
319
+ if (isPropertyAccessLike(current)) {
320
+ const propName = current.name;
321
+ const propText = propName.text;
322
+ // If the accessed property name does not match the requested hookName, it cannot match
323
+ if (propText !== hookName) {
324
+ return false;
261
325
  }
326
+ // Verify that either the receiver expression or the property symbol originates from React
327
+ const receiverExpr = current.expression;
328
+ const receiverSymbol = checker.getSymbolAtLocation(receiverExpr);
329
+ if (receiverSymbol) {
330
+ if (isReactSymbol(receiverSymbol)) {
331
+ return true;
332
+ }
333
+ if ((receiverSymbol.flags & 2097152) !== 0) {
334
+ try {
335
+ const aliased = checker.getAliasedSymbol(receiverSymbol);
336
+ if (aliased && isReactSymbol(aliased)) {
337
+ return true;
338
+ }
339
+ }
340
+ catch {
341
+ // ignore
342
+ }
343
+ }
344
+ }
345
+ const propSymbol = checker.getSymbolAtLocation(propName) ?? checker.getSymbolAtLocation(current);
346
+ if (propSymbol) {
347
+ const exportName = getReactExportName(propSymbol, checker);
348
+ if (exportName === hookName) {
349
+ return true;
350
+ }
351
+ }
352
+ return false;
262
353
  }
263
- catch {
264
- // Not an aliased symbol
354
+ // Case 2: Identifier or direct symbol (e.g. useEffect, useCallback, or aliased import like cb / effect)
355
+ const symbol = checker.getSymbolAtLocation(current);
356
+ if (!symbol) {
357
+ return false;
265
358
  }
266
- return false;
359
+ const exportName = getReactExportName(symbol, checker);
360
+ return exportName === hookName;
267
361
  }
268
- function isReactSymbol(symbol) {
362
+ export function isReactSymbol(symbol) {
269
363
  const declarations = symbol.getDeclarations();
270
364
  if (!declarations || declarations.length === 0) {
271
365
  return false;
272
366
  }
273
367
  return declarations.some((decl) => {
274
368
  const fileName = decl.getSourceFile().fileName.replace(/\\/g, "/");
275
- return fileName.includes("react/index.d.ts") || fileName.includes("@types/react/") || fileName.includes("react.d.ts");
369
+ if (fileName.includes("react/index.d.ts") ||
370
+ fileName.includes("@types/react/") ||
371
+ fileName.includes("react.d.ts") ||
372
+ (fileName.includes("/react/") && fileName.endsWith(".d.ts"))) {
373
+ return true;
374
+ }
375
+ let current = decl;
376
+ while (current) {
377
+ if ("moduleSpecifier" in current &&
378
+ current.moduleSpecifier &&
379
+ typeof current.moduleSpecifier === "object" &&
380
+ "text" in current.moduleSpecifier &&
381
+ (current.moduleSpecifier.text === "react" || current.moduleSpecifier.text === "react-dom")) {
382
+ return true;
383
+ }
384
+ current = current.parent;
385
+ }
386
+ return false;
276
387
  });
277
388
  }
389
+ /**
390
+ * Resolves whether a CallExpression is an authentic React lifecycle hook call (useEffect or useLayoutEffect).
391
+ * When TypeChecker is available, uses semantic symbol resolution only.
392
+ * When TypeChecker is unavailable, falls back to syntactic identification.
393
+ */
394
+ export function isReactLifecycleHookCall(node, ts, checker) {
395
+ if (checker) {
396
+ return resolveReactHook(node, checker, "useEffect") || resolveReactHook(node, checker, "useLayoutEffect");
397
+ }
398
+ // Syntactic fallback ONLY when TypeChecker is genuinely unavailable
399
+ let callee = node.expression;
400
+ while (ts.isParenthesizedExpression(callee)) {
401
+ callee = callee.expression;
402
+ }
403
+ if (ts.isIdentifier(callee)) {
404
+ return callee.text === "useEffect" || callee.text === "useLayoutEffect";
405
+ }
406
+ if (ts.isPropertyAccessExpression(callee)) {
407
+ if (ts.isIdentifier(callee.name) && (callee.name.text === "useEffect" || callee.name.text === "useLayoutEffect")) {
408
+ if (ts.isIdentifier(callee.expression) && (callee.expression.text === "React" || callee.expression.text === "ReactCurrentDispatcher")) {
409
+ return true;
410
+ }
411
+ }
412
+ }
413
+ return false;
414
+ }
415
+ /**
416
+ * Helper to identify whether a declaration originates from a standard HTTP Response library
417
+ * (DOM lib.dom.d.ts, undici, node-fetch, Cloudflare Workers, Node.js @types/node).
418
+ */
419
+ export function isStandardResponseDeclaration(decl) {
420
+ const fileName = decl.getSourceFile().fileName.toLowerCase().replace(/\\/g, "/");
421
+ return (fileName.includes("lib.dom.d.ts") ||
422
+ fileName.includes("lib.dom.iterable.d.ts") ||
423
+ fileName.includes("lib.webworker.d.ts") ||
424
+ fileName.includes("typescript/lib/") ||
425
+ fileName.includes("@types/node/") ||
426
+ fileName.includes("undici-types/") ||
427
+ fileName.includes("node_modules/undici/") ||
428
+ fileName.includes("node-fetch/") ||
429
+ fileName.includes("@types/node-fetch/") ||
430
+ fileName.includes("@cloudflare/workers-types/"));
431
+ }
432
+ /**
433
+ * Verifies that a PropertyAccessExpression with method name .json() originates
434
+ * from an authentic standard fetch Response object (e.g. DOM Response, undici, node-fetch, Cloudflare Worker),
435
+ * and does not contain conflicting user-defined declaration origin (e.g. declaration merging or local class/interface).
436
+ */
437
+ export function isFetchResponseMethod(callTarget, checker, ts) {
438
+ if (callTarget.name.text !== "json") {
439
+ return false;
440
+ }
441
+ if (checker) {
442
+ try {
443
+ const receiverType = checker.getTypeAtLocation(callTarget.expression);
444
+ const typesToCheck = receiverType.isUnion()
445
+ ? receiverType.types.filter((t) => !(t.flags &
446
+ (ts.TypeFlags.Null |
447
+ ts.TypeFlags.Undefined |
448
+ ts.TypeFlags.Void)))
449
+ : [receiverType];
450
+ if (typesToCheck.length === 0)
451
+ return false;
452
+ for (const type of typesToCheck) {
453
+ const jsonProp = checker.getPropertyOfType(type, "json");
454
+ if (!jsonProp)
455
+ return false;
456
+ const jsonDecls = jsonProp.getDeclarations();
457
+ if (!jsonDecls || jsonDecls.length === 0)
458
+ return false;
459
+ // Must NOT contain any user-defined declaration (e.g. local method or declaration merging)
460
+ const hasUserDefinedJson = jsonDecls.some((d) => !isStandardResponseDeclaration(d));
461
+ if (hasUserDefinedJson) {
462
+ return false;
463
+ }
464
+ // Must have verified standard Response origin
465
+ const hasStandardJson = jsonDecls.some(isStandardResponseDeclaration);
466
+ if (!hasStandardJson) {
467
+ return false;
468
+ }
469
+ // Also verify the receiver type's symbol declarations to ensure the type itself has no local/custom declaration
470
+ const typeSymbol = type.getSymbol() ?? type.aliasSymbol;
471
+ if (typeSymbol) {
472
+ const typeDecls = typeSymbol.getDeclarations();
473
+ if (typeDecls && typeDecls.length > 0) {
474
+ const hasUserDefinedType = typeDecls.some((d) => !isStandardResponseDeclaration(d));
475
+ if (hasUserDefinedType) {
476
+ return false;
477
+ }
478
+ const hasStandardType = typeDecls.some(isStandardResponseDeclaration);
479
+ if (!hasStandardType) {
480
+ return false;
481
+ }
482
+ }
483
+ }
484
+ }
485
+ return true;
486
+ }
487
+ catch {
488
+ return false;
489
+ }
490
+ }
491
+ // Syntactic fallback when TypeChecker is unavailable:
492
+ // Only accept expressions commonly named response/res or direct fetch calls
493
+ let receiver = callTarget.expression;
494
+ while (ts.isParenthesizedExpression(receiver) || ts.isAwaitExpression(receiver)) {
495
+ receiver = receiver.expression;
496
+ }
497
+ if (ts.isIdentifier(receiver)) {
498
+ return receiver.text === "response" || receiver.text === "res";
499
+ }
500
+ if (ts.isCallExpression(receiver)) {
501
+ let callee = receiver.expression;
502
+ while (ts.isParenthesizedExpression(callee)) {
503
+ callee = callee.expression;
504
+ }
505
+ if (ts.isIdentifier(callee) && callee.text === "fetch") {
506
+ return true;
507
+ }
508
+ }
509
+ return false;
510
+ }
278
511
  //# sourceMappingURL=symbols.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/engine/symbols.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/engine/symbols.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import type { AuditResult } from "../core/types.js";
2
+ import "../rules/index.js";
2
3
  /**
3
4
  * Formats AuditResult as standard SARIF 2.1.0 log format for GitHub Code Scanning.
5
+ * Populates driver.rules from the authoritative rule registry with descriptions and default configurations.
4
6
  */
5
7
  export declare function renderSarifReport(result: AuditResult): string;
6
8
  //# sourceMappingURL=sarif.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sarif.d.ts","sourceRoot":"","sources":["../../src/reporters/sarif.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CA4D7D"}
1
+ {"version":3,"file":"sarif.d.ts","sourceRoot":"","sources":["../../src/reporters/sarif.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,mBAAmB,CAAC;AAS3B;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CA0F7D"}
@@ -1,12 +1,44 @@
1
1
  import { SOURCEVERITY_VERSION } from "../core/version.js";
2
+ import { globalRuleRegistry } from "../engine/registry.js";
3
+ import "../rules/index.js";
2
4
  /**
3
5
  * Formats AuditResult as standard SARIF 2.1.0 log format for GitHub Code Scanning.
6
+ * Populates driver.rules from the authoritative rule registry with descriptions and default configurations.
4
7
  */
5
8
  export function renderSarifReport(result) {
6
- const ruleMap = new Map();
9
+ const allRules = globalRuleRegistry.getAll();
10
+ const rulesMap = new Map();
11
+ for (const r of allRules) {
12
+ const defaultLevel = r.meta.defaultSeverity === "error"
13
+ ? "error"
14
+ : r.meta.defaultSeverity === "warning"
15
+ ? "warning"
16
+ : "note";
17
+ rulesMap.set(r.meta.id, {
18
+ id: r.meta.id,
19
+ name: r.meta.id,
20
+ shortDescription: {
21
+ text: r.meta.description,
22
+ },
23
+ defaultConfiguration: {
24
+ level: defaultLevel,
25
+ },
26
+ });
27
+ }
28
+ // Ensure any custom rule present in findings is also represented
7
29
  for (const f of result.findings) {
8
- if (!ruleMap.has(f.ruleId)) {
9
- ruleMap.set(f.ruleId, { id: f.ruleId, name: f.ruleId });
30
+ if (!rulesMap.has(f.ruleId)) {
31
+ const defaultLevel = f.severity === "error" ? "error" : f.severity === "warning" ? "warning" : "note";
32
+ rulesMap.set(f.ruleId, {
33
+ id: f.ruleId,
34
+ name: f.ruleId,
35
+ shortDescription: {
36
+ text: f.ruleId,
37
+ },
38
+ defaultConfiguration: {
39
+ level: defaultLevel,
40
+ },
41
+ });
10
42
  }
11
43
  }
12
44
  const sarifResults = result.findings.map((f) => {
@@ -46,10 +78,7 @@ export function renderSarifReport(result) {
46
78
  driver: {
47
79
  name: "sourceverity",
48
80
  version: SOURCEVERITY_VERSION,
49
- rules: Array.from(ruleMap.values()).map((r) => ({
50
- id: r.id,
51
- name: r.name,
52
- })),
81
+ rules: Array.from(rulesMap.values()),
53
82
  },
54
83
  },
55
84
  results: sarifResults,