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.
- package/dist/analysis/controlFlow.d.ts +5 -0
- package/dist/analysis/controlFlow.d.ts.map +1 -1
- package/dist/analysis/controlFlow.js +501 -45
- package/dist/analysis/controlFlow.js.map +1 -1
- package/dist/analysis/frameworks.d.ts.map +1 -1
- package/dist/analysis/frameworks.js +84 -12
- package/dist/analysis/frameworks.js.map +1 -1
- package/dist/analysis/functions.d.ts.map +1 -1
- package/dist/analysis/functions.js +52 -8
- 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 +2 -1
- 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/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/reporters/sarif.d.ts +2 -0
- package/dist/reporters/sarif.d.ts.map +1 -1
- package/dist/reporters/sarif.js +36 -7
- package/dist/reporters/sarif.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 +2 -9
- 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 +9 -4
- package/dist/rules/typescript/unsafeUnvalidatedAssertion.js.map +1 -1
- package/package.json +1 -1
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":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,mBAAmB,CAAC;AAoB3B,MAAM,cAAc,GAA6B;IAC/C,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,MAAM,iBAAiB,GAA+B;IACpD,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC;CACP,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,QAAQ,CAAC;IACxD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC5D,kDAAkD;IAClD,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEjF,yCAAyC;IACzC,MAAM,MAAM,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACxD,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAE1C,MAAM,WAAW,GAAc,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,IAAI,kBAAkB,CAAC,MAAM,EAAE,CAAC;IAChE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,IAAI,MAAM,EAAE,CAAC;QACX,qDAAqD;QACrD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAE5E,KAAK,MAAM,WAAW,IAAI,eAAe,EAAE,CAAC;YAC1C,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,iBAAiB,GAAG,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACrE,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5D,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;wBACtD,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAC/B,MAAM,YAAY,GAAG,uBAAuB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAEtD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oBAC9B,MAAM,OAAO,GAAG,iBAAiB,CAAC;wBAChC,EAAE,EAAE,MAAM,CAAC,EAAE;wBACb,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,UAAU,EAAE,EAAE;wBACd,WAAW;wBACX,WAAW,EAAE,WAAW,CAAC,WAAW;wBACpC,aAAa,CAAC,KAAmB;4BAC/B,MAAM,WAAW,GACf,KAAK,CAAC,WAAW;gCACjB,kBAAkB,CAAC;oCACjB,MAAM,EAAE,KAAK,CAAC,MAAM;oCACpB,QAAQ,EAAE,KAAK,CAAC,IAAI;oCACpB,UAAU,EAAE,KAAK,CAAC,OAAO;oCACzB,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CACpB,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAC1F,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CACvF;iCACF,CAAC,CAAC;4BAEL,MAAM,eAAe,GAAY;gCAC/B,GAAG,KAAK;gCACR,WAAW;gCACX,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC;6BAChD,CAAC;4BACF,iCAAiC;4BACjC,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,CAAC;gCACxD,iDAAiD;gCACjD,IAAI,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,kBAAkB,EAAE,CAAC;oCACxE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gCACpC,CAAC;4BACH,CAAC;wBACH,CAAC;qBACF,CAAC,CAAC;oBAEH,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,gEAAgE;QAChE,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACtC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED,mFAAmF;IACnF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,oBAAoB,GAAc,EAAE,CAAC;IAE3C,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7I,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACzB,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxD,mBAAmB;QACnB,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAElC,cAAc;QACd,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QACxD,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAElC,gBAAgB;QAChB,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3D,IAAI,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QAEhC,uCAAuC;QACvC,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvE,IAAI,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QAEhC,iBAAiB;QACjB,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAElC,qBAAqB;QACrB,OAAO,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,MAAM,OAAO,GAAG,mBAAmB,CACjC,cAAc,EACd,aAAa,CAAC,IAAI,EAClB,WAAW,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CACjC,CAAC;IACF,MAAM,iBAAiB,GAAsB;QAC3C,iBAAiB,EAAE,MAAM,EAAE,OAAO;QAClC,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,cAAc,EAAE,WAAW,CAAC,cAAc;QAC1C,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC;QAC9C,aAAa,EAAE,WAAW,CAAC,aAAa;KACzC,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,cAAc;QACxB,OAAO;QACP,UAAU,EAAE,iBAAiB;QAC7B,oBAAoB,EAAE,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS;KACzF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAA4B,EAC5B,aAAqB,EACrB,aAAqB;IAErB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO;YAAE,MAAM,EAAE,CAAC;aAChC,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;YAAE,QAAQ,EAAE,CAAC;aACzC,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM;YAAE,IAAI,EAAE,CAAC;QAEvC,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM;YAAE,cAAc,EAAE,CAAC;aACzC,IAAI,CAAC,CAAC,UAAU,KAAK,QAAQ;YAAE,gBAAgB,EAAE,CAAC;aAClD,IAAI,CAAC,CAAC,UAAU,KAAK,KAAK;YAAE,aAAa,EAAE,CAAC;IACnD,CAAC;IAED,OAAO;QACL,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,cAAc;QACd,gBAAgB;QAChB,aAAa;QACb,aAAa;QACb,aAAa;KACd,CAAC;AACJ,CAAC"}
|
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"}
|
package/dist/engine/symbols.js
CHANGED
|
@@ -220,59 +220,292 @@ export function isDOMAbortController(node, checker, ts) {
|
|
|
220
220
|
return false;
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
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
|
-
|
|
240
|
-
|
|
263
|
+
catch {
|
|
264
|
+
// ignore
|
|
241
265
|
}
|
|
242
266
|
}
|
|
243
|
-
|
|
244
|
-
|
|
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
|
-
|
|
247
|
-
|
|
287
|
+
// 3. Direct React symbol declaration
|
|
288
|
+
if (isReactSymbol(symbol)) {
|
|
289
|
+
return symbol.name;
|
|
248
290
|
}
|
|
249
|
-
|
|
250
|
-
|
|
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
|
-
|
|
254
|
-
|
|
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
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
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
|
-
|
|
264
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAGA;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAiB,EAAE,UAA6B;IACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAE7B,MAAM,QAAQ,GAAG,UAAU,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,UAAU,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;IAEhE,OAAO;QACL,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC;YACvB,MAAM,EAAE,QAAQ,CAAC,SAAS,GAAG,CAAC;SAC/B;QACD,GAAG,EAAE;YACH,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC;YACrB,MAAM,EAAE,MAAM,CAAC,SAAS,GAAG,CAAC;SAC7B;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAA6B,EAAE,OAA2B;IAC9F,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC;IACpD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;QAC5B,IACE,OAAO,KAAK,2BAA2B;YACvC,OAAO,KAAK,mBAAmB;YAC/B,OAAO,KAAK,cAAc,EAC1B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QACvC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACnE,IACE,QAAQ,CAAC,QAAQ,CAAC,8BAA8B,CAAC;oBACjD,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAAC;oBAC1C,QAAQ,CAAC,QAAQ,CAAC,0BAA0B,CAAC;oBAC7C,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAC9C,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IACnH,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAEzE,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,IAAI,WAAW,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC;QACtG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAqD,CAAC;AAE5F;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAA6B,EAAE,OAA2B;IACtF,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,IAAI,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,IAAI,OAAO,EAAwB,CAAC;QACnD,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAiB,EAAE,OAA2B;IAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC;IACpD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;QAC3E,IAAI,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mHAAmH;IACnH,IAAI,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,OAAO,CAAC,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACvE,MAAM,UAAU,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAChD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;gBAC/C,IAAI,OAAO,EAAE,CAAC;oBACZ,4FAA4F;oBAC5F,MAAM,mBAAmB,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;oBACjG,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBACzB,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAiB,EAAE,OAA2B,EAAE,UAAkB;IAC5F,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAC9C,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0GAA0G;IAC1G,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACjF,MAAM,QAAQ,GACZ,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;YACjC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YACvC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACvC,OAAO,CAAC,QAAQ,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACjF,OAAO,CACL,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;YACjC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YACvC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CACrC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAiB,EACjB,OAAuC,EACvC,EAAiB;IAEjB,IACE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;QACrB,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,EAClF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACjF,IAAI,CAAC,oBAAoB;YAAE,OAAO,KAAK,CAAC;QAExC,MAAM,KAAK,GAAG,oBAAoB,CAAC,eAAe,EAAE,CAAC;QACrD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAE/C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACjF,OAAO,CACL,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;gBACjC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAAC;gBAC1C,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBACvC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CACrC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAiB,EACjB,OAAuC,EACvC,EAAiB;IAEjB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAE5C,MAAM,KAAK,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAE/C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACjF,OAAO,CACL,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;gBACjC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAAC;gBAC1C,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBACvC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CACrC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAiB,EAAE,OAA2B,EAAE,QAAgB;IAC/F,IAAI,gBAAyC,CAAC;IAE9C,+CAA+C;IAC/C,IAAI,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,IAAI,MAAM,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjG,gBAAgB,GAAG,QAAkC,CAAC;YACxD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,gBAAgB,GAAG,QAAkC,CAAC;QACxD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,gBAAgB,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mEAAmE;IACnE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,MAAqB;IAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAC9C,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnE,OAAO,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACxH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
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
|
|
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"}
|
package/dist/reporters/sarif.js
CHANGED
|
@@ -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
|
|
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 (!
|
|
9
|
-
|
|
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(
|
|
50
|
-
id: r.id,
|
|
51
|
-
name: r.name,
|
|
52
|
-
})),
|
|
81
|
+
rules: Array.from(rulesMap.values()),
|
|
53
82
|
},
|
|
54
83
|
},
|
|
55
84
|
results: sarifResults,
|