oxlint-plugin-react-doctor 0.9.17 → 0.9.18-dev.3fd747e

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/core.d.ts CHANGED
@@ -1,2 +1,1154 @@
1
- import { C as CoreRuleMetadata, D as RuleSeverity, E as RuleFramework, F as Capability, I as CapabilityQuery, L as FRAMEWORK_TOKENS, M as FileScan, N as ScanFinding, P as ScannedFile, R as FrameworkToken, S as OxlintRuleSeverity, T as RuleExecution, _ as CrossFileProbeTrace, a as REACT_DOCTOR_RULES, b as EXTERNAL_RULES, c as REACT_NATIVE_DEPENDENCY_PREFIXES, d as shouldReadSecurityScanContent, f as resetFilesystemCaches, g as collectCrossFileDependencyProbes, h as UNBOUNDED_CROSS_FILE_RULE_IDS, i as REACT_DOCTOR_PROJECT_RULES, j as EsTreeNode, l as isReactNativeDependencyName, m as CROSS_FILE_DEPENDENCY_COLLECTORS, n as FRAMEWORK_SPECIFIC_RULE_KEYS, o as REACT_DOCTOR_RULE_REGISTRY, p as reactDoctorScanRules, r as REACT_DOCTOR_OPT_IN_PROJECT_RULE_IDS, s as REACT_NATIVE_DEPENDENCY_NAMES, t as ALL_REACT_DOCTOR_RULE_KEYS, u as classifySecurityScanFile, v as CROSS_FILE_RULE_IDS, w as Rule, x as REACT_COMPILER_RULES, y as MOTION_LIBRARY_PACKAGES } from "./core-C6Vno47R.js";
2
- export { ALL_REACT_DOCTOR_RULE_KEYS, CROSS_FILE_DEPENDENCY_COLLECTORS, CROSS_FILE_RULE_IDS, Capability, CapabilityQuery, CoreRuleMetadata, CrossFileProbeTrace, EXTERNAL_RULES, EsTreeNode, FRAMEWORK_SPECIFIC_RULE_KEYS, FRAMEWORK_TOKENS, FileScan, FrameworkToken, MOTION_LIBRARY_PACKAGES, OxlintRuleSeverity, REACT_COMPILER_RULES, REACT_DOCTOR_OPT_IN_PROJECT_RULE_IDS, REACT_DOCTOR_PROJECT_RULES, REACT_DOCTOR_RULES, REACT_DOCTOR_RULE_REGISTRY, reactDoctorScanRules as REACT_DOCTOR_SCAN_RULES, REACT_NATIVE_DEPENDENCY_NAMES, REACT_NATIVE_DEPENDENCY_PREFIXES, Rule, RuleExecution, RuleFramework, RuleSeverity, ScanFinding, ScannedFile, UNBOUNDED_CROSS_FILE_RULE_IDS, classifySecurityScanFile, collectCrossFileDependencyProbes, isReactNativeDependencyName, resetFilesystemCaches as resetManifestCaches, shouldReadSecurityScanContent };
1
+ import { A as FRAMEWORK_TOKENS, C as RuleContext, D as ScannedFile, E as ScanFinding, O as Capability, T as FileScan, _ as RuleExecution, a as shouldReadSecurityScanContent, b as RuleSeverity, c as UNBOUNDED_CROSS_FILE_RULE_IDS, d as CROSS_FILE_RULE_IDS, f as MOTION_LIBRARY_PACKAGES, g as Rule, h as OxlintRuleSeverity, i as classifySecurityScanFile, j as FrameworkToken, k as CapabilityQuery, l as collectCrossFileDependencyProbes, m as REACT_COMPILER_RULES, n as REACT_NATIVE_DEPENDENCY_PREFIXES, o as resetFilesystemCaches, p as EXTERNAL_RULES, r as isReactNativeDependencyName, s as CROSS_FILE_DEPENDENCY_COLLECTORS, t as REACT_NATIVE_DEPENDENCY_NAMES, u as CrossFileProbeTrace, v as RuleFramework, w as EsTreeNode, x as RuleVisitors } from "./react-native-dependency-names-HniFQ29a.js";
2
+
3
+ //#region src/plugin/utils/core-rule-metadata.d.ts
4
+ interface CoreRuleMetadata {
5
+ readonly diffScope?: Rule["diffScope"];
6
+ readonly id: string;
7
+ readonly title?: string;
8
+ readonly severity: RuleSeverity;
9
+ readonly recommendation?: string;
10
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
11
+ readonly category: string;
12
+ readonly framework: RuleFramework;
13
+ readonly requires?: ReadonlyArray<Capability>;
14
+ readonly disabledWhen?: ReadonlyArray<Capability>;
15
+ readonly tags?: ReadonlyArray<string>;
16
+ readonly defaultEnabled?: boolean;
17
+ readonly matchByOccurrence?: boolean;
18
+ readonly isScanRule: boolean;
19
+ readonly isProjectRule?: boolean;
20
+ }
21
+ interface CoreRuleRegistryEntry {
22
+ readonly key: string;
23
+ readonly id: string;
24
+ readonly source: "react-doctor";
25
+ readonly originallyExternal: boolean;
26
+ readonly rule: CoreRuleMetadata;
27
+ }
28
+ //#endregion
29
+ //#region src/plugin/security-scan-rule-registry.d.ts
30
+ declare const reactDoctorScanRules: readonly [{
31
+ readonly key: "react-doctor/active-static-asset";
32
+ readonly id: "active-static-asset";
33
+ readonly source: "react-doctor";
34
+ readonly originallyExternal: false;
35
+ readonly rule: {
36
+ readonly framework: "global";
37
+ readonly category: "Security";
38
+ readonly tags: readonly string[];
39
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
40
+ readonly id: string;
41
+ readonly title?: string;
42
+ readonly severity: RuleSeverity;
43
+ readonly requires?: ReadonlyArray<Capability>;
44
+ readonly minimumInkVersion?: string;
45
+ readonly disabledWhen?: ReadonlyArray<Capability>;
46
+ readonly matchByOccurrence?: boolean;
47
+ readonly defaultEnabled?: boolean;
48
+ readonly lifecycle?: "retired";
49
+ readonly execution?: RuleExecution;
50
+ readonly scan?: FileScan;
51
+ readonly committedFilesOnly?: boolean;
52
+ readonly recommendation?: string;
53
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
54
+ readonly create: (context: RuleContext) => RuleVisitors;
55
+ };
56
+ }, {
57
+ readonly key: "react-doctor/agent-tool-capability-risk";
58
+ readonly id: "agent-tool-capability-risk";
59
+ readonly source: "react-doctor";
60
+ readonly originallyExternal: false;
61
+ readonly rule: {
62
+ readonly framework: "global";
63
+ readonly category: "Security";
64
+ readonly tags: readonly string[];
65
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
66
+ readonly id: string;
67
+ readonly title?: string;
68
+ readonly severity: RuleSeverity;
69
+ readonly requires?: ReadonlyArray<Capability>;
70
+ readonly minimumInkVersion?: string;
71
+ readonly disabledWhen?: ReadonlyArray<Capability>;
72
+ readonly matchByOccurrence?: boolean;
73
+ readonly defaultEnabled?: boolean;
74
+ readonly lifecycle?: "retired";
75
+ readonly execution?: RuleExecution;
76
+ readonly scan?: FileScan;
77
+ readonly committedFilesOnly?: boolean;
78
+ readonly recommendation?: string;
79
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
80
+ readonly create: (context: RuleContext) => RuleVisitors;
81
+ };
82
+ }, {
83
+ readonly key: "react-doctor/artifact-baas-authority-surface";
84
+ readonly id: "artifact-baas-authority-surface";
85
+ readonly source: "react-doctor";
86
+ readonly originallyExternal: false;
87
+ readonly rule: {
88
+ readonly framework: "global";
89
+ readonly category: "Security";
90
+ readonly tags: readonly string[];
91
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
92
+ readonly id: string;
93
+ readonly title?: string;
94
+ readonly severity: RuleSeverity;
95
+ readonly requires?: ReadonlyArray<Capability>;
96
+ readonly minimumInkVersion?: string;
97
+ readonly disabledWhen?: ReadonlyArray<Capability>;
98
+ readonly matchByOccurrence?: boolean;
99
+ readonly defaultEnabled?: boolean;
100
+ readonly lifecycle?: "retired";
101
+ readonly execution?: RuleExecution;
102
+ readonly scan?: FileScan;
103
+ readonly committedFilesOnly?: boolean;
104
+ readonly recommendation?: string;
105
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
106
+ readonly create: (context: RuleContext) => RuleVisitors;
107
+ };
108
+ }, {
109
+ readonly key: "react-doctor/artifact-env-leak";
110
+ readonly id: "artifact-env-leak";
111
+ readonly source: "react-doctor";
112
+ readonly originallyExternal: false;
113
+ readonly rule: {
114
+ readonly framework: "global";
115
+ readonly category: "Security";
116
+ readonly tags: readonly string[];
117
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
118
+ readonly id: string;
119
+ readonly title?: string;
120
+ readonly severity: RuleSeverity;
121
+ readonly requires?: ReadonlyArray<Capability>;
122
+ readonly minimumInkVersion?: string;
123
+ readonly disabledWhen?: ReadonlyArray<Capability>;
124
+ readonly matchByOccurrence?: boolean;
125
+ readonly defaultEnabled?: boolean;
126
+ readonly lifecycle?: "retired";
127
+ readonly execution?: RuleExecution;
128
+ readonly scan?: FileScan;
129
+ readonly committedFilesOnly?: boolean;
130
+ readonly recommendation?: string;
131
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
132
+ readonly create: (context: RuleContext) => RuleVisitors;
133
+ };
134
+ }, {
135
+ readonly key: "react-doctor/artifact-secret-leak";
136
+ readonly id: "artifact-secret-leak";
137
+ readonly source: "react-doctor";
138
+ readonly originallyExternal: false;
139
+ readonly rule: {
140
+ readonly framework: "global";
141
+ readonly category: "Security";
142
+ readonly tags: readonly string[];
143
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
144
+ readonly id: string;
145
+ readonly title?: string;
146
+ readonly severity: RuleSeverity;
147
+ readonly requires?: ReadonlyArray<Capability>;
148
+ readonly minimumInkVersion?: string;
149
+ readonly disabledWhen?: ReadonlyArray<Capability>;
150
+ readonly matchByOccurrence?: boolean;
151
+ readonly defaultEnabled?: boolean;
152
+ readonly lifecycle?: "retired";
153
+ readonly execution?: RuleExecution;
154
+ readonly scan?: FileScan;
155
+ readonly committedFilesOnly?: boolean;
156
+ readonly recommendation?: string;
157
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
158
+ readonly create: (context: RuleContext) => RuleVisitors;
159
+ };
160
+ }, {
161
+ readonly key: "react-doctor/build-pipeline-secret-boundary";
162
+ readonly id: "build-pipeline-secret-boundary";
163
+ readonly source: "react-doctor";
164
+ readonly originallyExternal: false;
165
+ readonly rule: {
166
+ readonly framework: "global";
167
+ readonly category: "Security";
168
+ readonly tags: readonly string[];
169
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
170
+ readonly id: string;
171
+ readonly title?: string;
172
+ readonly severity: RuleSeverity;
173
+ readonly requires?: ReadonlyArray<Capability>;
174
+ readonly minimumInkVersion?: string;
175
+ readonly disabledWhen?: ReadonlyArray<Capability>;
176
+ readonly matchByOccurrence?: boolean;
177
+ readonly defaultEnabled?: boolean;
178
+ readonly lifecycle?: "retired";
179
+ readonly execution?: RuleExecution;
180
+ readonly scan?: FileScan;
181
+ readonly committedFilesOnly?: boolean;
182
+ readonly recommendation?: string;
183
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
184
+ readonly create: (context: RuleContext) => RuleVisitors;
185
+ };
186
+ }, {
187
+ readonly key: "react-doctor/clickjacking-redirect-risk";
188
+ readonly id: "clickjacking-redirect-risk";
189
+ readonly source: "react-doctor";
190
+ readonly originallyExternal: false;
191
+ readonly rule: {
192
+ readonly framework: "global";
193
+ readonly category: "Security";
194
+ readonly tags: readonly string[];
195
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
196
+ readonly id: string;
197
+ readonly title?: string;
198
+ readonly severity: RuleSeverity;
199
+ readonly requires?: ReadonlyArray<Capability>;
200
+ readonly minimumInkVersion?: string;
201
+ readonly disabledWhen?: ReadonlyArray<Capability>;
202
+ readonly matchByOccurrence?: boolean;
203
+ readonly defaultEnabled?: boolean;
204
+ readonly lifecycle?: "retired";
205
+ readonly execution?: RuleExecution;
206
+ readonly scan?: FileScan;
207
+ readonly committedFilesOnly?: boolean;
208
+ readonly recommendation?: string;
209
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
210
+ readonly create: (context: RuleContext) => RuleVisitors;
211
+ };
212
+ }, {
213
+ readonly key: "react-doctor/command-execution-input-risk";
214
+ readonly id: "command-execution-input-risk";
215
+ readonly source: "react-doctor";
216
+ readonly originallyExternal: false;
217
+ readonly rule: {
218
+ readonly framework: "global";
219
+ readonly category: "Security";
220
+ readonly tags: readonly string[];
221
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
222
+ readonly id: string;
223
+ readonly title?: string;
224
+ readonly severity: RuleSeverity;
225
+ readonly requires?: ReadonlyArray<Capability>;
226
+ readonly minimumInkVersion?: string;
227
+ readonly disabledWhen?: ReadonlyArray<Capability>;
228
+ readonly matchByOccurrence?: boolean;
229
+ readonly defaultEnabled?: boolean;
230
+ readonly lifecycle?: "retired";
231
+ readonly execution?: RuleExecution;
232
+ readonly scan?: FileScan;
233
+ readonly committedFilesOnly?: boolean;
234
+ readonly recommendation?: string;
235
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
236
+ readonly create: (context: RuleContext) => RuleVisitors;
237
+ };
238
+ }, {
239
+ readonly key: "react-doctor/cors-cookie-trust-risk";
240
+ readonly id: "cors-cookie-trust-risk";
241
+ readonly source: "react-doctor";
242
+ readonly originallyExternal: false;
243
+ readonly rule: {
244
+ readonly framework: "global";
245
+ readonly category: "Security";
246
+ readonly tags: readonly string[];
247
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
248
+ readonly id: string;
249
+ readonly title?: string;
250
+ readonly severity: RuleSeverity;
251
+ readonly requires?: ReadonlyArray<Capability>;
252
+ readonly minimumInkVersion?: string;
253
+ readonly disabledWhen?: ReadonlyArray<Capability>;
254
+ readonly matchByOccurrence?: boolean;
255
+ readonly defaultEnabled?: boolean;
256
+ readonly lifecycle?: "retired";
257
+ readonly execution?: RuleExecution;
258
+ readonly scan?: FileScan;
259
+ readonly committedFilesOnly?: boolean;
260
+ readonly recommendation?: string;
261
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
262
+ readonly create: (context: RuleContext) => RuleVisitors;
263
+ };
264
+ }, {
265
+ readonly key: "react-doctor/dangerous-html-sink";
266
+ readonly id: "dangerous-html-sink";
267
+ readonly source: "react-doctor";
268
+ readonly originallyExternal: false;
269
+ readonly rule: {
270
+ readonly framework: "global";
271
+ readonly category: "Security";
272
+ readonly tags: readonly string[];
273
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
274
+ readonly id: string;
275
+ readonly title?: string;
276
+ readonly severity: RuleSeverity;
277
+ readonly requires?: ReadonlyArray<Capability>;
278
+ readonly minimumInkVersion?: string;
279
+ readonly disabledWhen?: ReadonlyArray<Capability>;
280
+ readonly matchByOccurrence?: boolean;
281
+ readonly defaultEnabled?: boolean;
282
+ readonly lifecycle?: "retired";
283
+ readonly execution?: RuleExecution;
284
+ readonly scan?: FileScan;
285
+ readonly committedFilesOnly?: boolean;
286
+ readonly recommendation?: string;
287
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
288
+ readonly create: (context: RuleContext) => RuleVisitors;
289
+ };
290
+ }, {
291
+ readonly key: "react-doctor/firebase-client-owned-authz-field";
292
+ readonly id: "firebase-client-owned-authz-field";
293
+ readonly source: "react-doctor";
294
+ readonly originallyExternal: false;
295
+ readonly rule: {
296
+ readonly framework: "global";
297
+ readonly category: "Security";
298
+ readonly tags: readonly string[];
299
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
300
+ readonly id: string;
301
+ readonly title?: string;
302
+ readonly severity: RuleSeverity;
303
+ readonly requires?: ReadonlyArray<Capability>;
304
+ readonly minimumInkVersion?: string;
305
+ readonly disabledWhen?: ReadonlyArray<Capability>;
306
+ readonly matchByOccurrence?: boolean;
307
+ readonly defaultEnabled?: boolean;
308
+ readonly lifecycle?: "retired";
309
+ readonly execution?: RuleExecution;
310
+ readonly scan?: FileScan;
311
+ readonly committedFilesOnly?: boolean;
312
+ readonly recommendation?: string;
313
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
314
+ readonly create: (context: RuleContext) => RuleVisitors;
315
+ };
316
+ }, {
317
+ readonly key: "react-doctor/firebase-permissive-rules";
318
+ readonly id: "firebase-permissive-rules";
319
+ readonly source: "react-doctor";
320
+ readonly originallyExternal: false;
321
+ readonly rule: {
322
+ readonly framework: "global";
323
+ readonly category: "Security";
324
+ readonly tags: readonly string[];
325
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
326
+ readonly id: string;
327
+ readonly title?: string;
328
+ readonly severity: RuleSeverity;
329
+ readonly requires?: ReadonlyArray<Capability>;
330
+ readonly minimumInkVersion?: string;
331
+ readonly disabledWhen?: ReadonlyArray<Capability>;
332
+ readonly matchByOccurrence?: boolean;
333
+ readonly defaultEnabled?: boolean;
334
+ readonly lifecycle?: "retired";
335
+ readonly execution?: RuleExecution;
336
+ readonly scan?: FileScan;
337
+ readonly committedFilesOnly?: boolean;
338
+ readonly recommendation?: string;
339
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
340
+ readonly create: (context: RuleContext) => RuleVisitors;
341
+ };
342
+ }, {
343
+ readonly key: "react-doctor/firebase-query-filter-as-auth";
344
+ readonly id: "firebase-query-filter-as-auth";
345
+ readonly source: "react-doctor";
346
+ readonly originallyExternal: false;
347
+ readonly rule: {
348
+ readonly framework: "global";
349
+ readonly category: "Security";
350
+ readonly tags: readonly string[];
351
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
352
+ readonly id: string;
353
+ readonly title?: string;
354
+ readonly severity: RuleSeverity;
355
+ readonly requires?: ReadonlyArray<Capability>;
356
+ readonly minimumInkVersion?: string;
357
+ readonly disabledWhen?: ReadonlyArray<Capability>;
358
+ readonly matchByOccurrence?: boolean;
359
+ readonly defaultEnabled?: boolean;
360
+ readonly lifecycle?: "retired";
361
+ readonly execution?: RuleExecution;
362
+ readonly scan?: FileScan;
363
+ readonly committedFilesOnly?: boolean;
364
+ readonly recommendation?: string;
365
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
366
+ readonly create: (context: RuleContext) => RuleVisitors;
367
+ };
368
+ }, {
369
+ readonly key: "react-doctor/git-provider-url-injection-risk";
370
+ readonly id: "git-provider-url-injection-risk";
371
+ readonly source: "react-doctor";
372
+ readonly originallyExternal: false;
373
+ readonly rule: {
374
+ readonly framework: "global";
375
+ readonly category: "Security";
376
+ readonly tags: readonly string[];
377
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
378
+ readonly id: string;
379
+ readonly title?: string;
380
+ readonly severity: RuleSeverity;
381
+ readonly requires?: ReadonlyArray<Capability>;
382
+ readonly minimumInkVersion?: string;
383
+ readonly disabledWhen?: ReadonlyArray<Capability>;
384
+ readonly matchByOccurrence?: boolean;
385
+ readonly defaultEnabled?: boolean;
386
+ readonly lifecycle?: "retired";
387
+ readonly execution?: RuleExecution;
388
+ readonly scan?: FileScan;
389
+ readonly committedFilesOnly?: boolean;
390
+ readonly recommendation?: string;
391
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
392
+ readonly create: (context: RuleContext) => RuleVisitors;
393
+ };
394
+ }, {
395
+ readonly key: "react-doctor/import-metadata-execution-risk";
396
+ readonly id: "import-metadata-execution-risk";
397
+ readonly source: "react-doctor";
398
+ readonly originallyExternal: false;
399
+ readonly rule: {
400
+ readonly framework: "global";
401
+ readonly category: "Security";
402
+ readonly tags: readonly string[];
403
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
404
+ readonly id: string;
405
+ readonly title?: string;
406
+ readonly severity: RuleSeverity;
407
+ readonly requires?: ReadonlyArray<Capability>;
408
+ readonly minimumInkVersion?: string;
409
+ readonly disabledWhen?: ReadonlyArray<Capability>;
410
+ readonly matchByOccurrence?: boolean;
411
+ readonly defaultEnabled?: boolean;
412
+ readonly lifecycle?: "retired";
413
+ readonly execution?: RuleExecution;
414
+ readonly scan?: FileScan;
415
+ readonly committedFilesOnly?: boolean;
416
+ readonly recommendation?: string;
417
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
418
+ readonly create: (context: RuleContext) => RuleVisitors;
419
+ };
420
+ }, {
421
+ readonly key: "react-doctor/insecure-crypto-risk";
422
+ readonly id: "insecure-crypto-risk";
423
+ readonly source: "react-doctor";
424
+ readonly originallyExternal: false;
425
+ readonly rule: {
426
+ readonly framework: "global";
427
+ readonly category: "Security";
428
+ readonly tags: readonly string[];
429
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
430
+ readonly id: string;
431
+ readonly title?: string;
432
+ readonly severity: RuleSeverity;
433
+ readonly requires?: ReadonlyArray<Capability>;
434
+ readonly minimumInkVersion?: string;
435
+ readonly disabledWhen?: ReadonlyArray<Capability>;
436
+ readonly matchByOccurrence?: boolean;
437
+ readonly defaultEnabled?: boolean;
438
+ readonly lifecycle?: "retired";
439
+ readonly execution?: RuleExecution;
440
+ readonly scan?: FileScan;
441
+ readonly committedFilesOnly?: boolean;
442
+ readonly recommendation?: string;
443
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
444
+ readonly create: (context: RuleContext) => RuleVisitors;
445
+ };
446
+ }, {
447
+ readonly key: "react-doctor/insecure-session-cookie";
448
+ readonly id: "insecure-session-cookie";
449
+ readonly source: "react-doctor";
450
+ readonly originallyExternal: false;
451
+ readonly rule: {
452
+ readonly framework: "global";
453
+ readonly category: "Security";
454
+ readonly tags: readonly string[];
455
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
456
+ readonly id: string;
457
+ readonly title?: string;
458
+ readonly severity: RuleSeverity;
459
+ readonly requires?: ReadonlyArray<Capability>;
460
+ readonly minimumInkVersion?: string;
461
+ readonly disabledWhen?: ReadonlyArray<Capability>;
462
+ readonly matchByOccurrence?: boolean;
463
+ readonly defaultEnabled?: boolean;
464
+ readonly lifecycle?: "retired";
465
+ readonly execution?: RuleExecution;
466
+ readonly scan?: FileScan;
467
+ readonly committedFilesOnly?: boolean;
468
+ readonly recommendation?: string;
469
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
470
+ readonly create: (context: RuleContext) => RuleVisitors;
471
+ };
472
+ }, {
473
+ readonly key: "react-doctor/jwt-insecure-verification";
474
+ readonly id: "jwt-insecure-verification";
475
+ readonly source: "react-doctor";
476
+ readonly originallyExternal: false;
477
+ readonly rule: {
478
+ readonly framework: "global";
479
+ readonly category: "Security";
480
+ readonly tags: readonly string[];
481
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
482
+ readonly id: string;
483
+ readonly title?: string;
484
+ readonly severity: RuleSeverity;
485
+ readonly requires?: ReadonlyArray<Capability>;
486
+ readonly minimumInkVersion?: string;
487
+ readonly disabledWhen?: ReadonlyArray<Capability>;
488
+ readonly matchByOccurrence?: boolean;
489
+ readonly defaultEnabled?: boolean;
490
+ readonly lifecycle?: "retired";
491
+ readonly execution?: RuleExecution;
492
+ readonly scan?: FileScan;
493
+ readonly committedFilesOnly?: boolean;
494
+ readonly recommendation?: string;
495
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
496
+ readonly create: (context: RuleContext) => RuleVisitors;
497
+ };
498
+ }, {
499
+ readonly key: "react-doctor/key-lifecycle-risk";
500
+ readonly id: "key-lifecycle-risk";
501
+ readonly source: "react-doctor";
502
+ readonly originallyExternal: false;
503
+ readonly rule: {
504
+ readonly framework: "global";
505
+ readonly category: "Security";
506
+ readonly tags: readonly string[];
507
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
508
+ readonly id: string;
509
+ readonly title?: string;
510
+ readonly severity: RuleSeverity;
511
+ readonly requires?: ReadonlyArray<Capability>;
512
+ readonly minimumInkVersion?: string;
513
+ readonly disabledWhen?: ReadonlyArray<Capability>;
514
+ readonly matchByOccurrence?: boolean;
515
+ readonly defaultEnabled?: boolean;
516
+ readonly lifecycle?: "retired";
517
+ readonly execution?: RuleExecution;
518
+ readonly scan?: FileScan;
519
+ readonly committedFilesOnly?: boolean;
520
+ readonly recommendation?: string;
521
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
522
+ readonly create: (context: RuleContext) => RuleVisitors;
523
+ };
524
+ }, {
525
+ readonly key: "react-doctor/local-rpc-native-bridge-risk";
526
+ readonly id: "local-rpc-native-bridge-risk";
527
+ readonly source: "react-doctor";
528
+ readonly originallyExternal: false;
529
+ readonly rule: {
530
+ readonly framework: "global";
531
+ readonly category: "Security";
532
+ readonly tags: readonly string[];
533
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
534
+ readonly id: string;
535
+ readonly title?: string;
536
+ readonly severity: RuleSeverity;
537
+ readonly requires?: ReadonlyArray<Capability>;
538
+ readonly minimumInkVersion?: string;
539
+ readonly disabledWhen?: ReadonlyArray<Capability>;
540
+ readonly matchByOccurrence?: boolean;
541
+ readonly defaultEnabled?: boolean;
542
+ readonly lifecycle?: "retired";
543
+ readonly execution?: RuleExecution;
544
+ readonly scan?: FileScan;
545
+ readonly committedFilesOnly?: boolean;
546
+ readonly recommendation?: string;
547
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
548
+ readonly create: (context: RuleContext) => RuleVisitors;
549
+ };
550
+ }, {
551
+ readonly key: "react-doctor/mcp-tool-capability-risk";
552
+ readonly id: "mcp-tool-capability-risk";
553
+ readonly source: "react-doctor";
554
+ readonly originallyExternal: false;
555
+ readonly rule: {
556
+ readonly framework: "global";
557
+ readonly category: "Security";
558
+ readonly tags: readonly string[];
559
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
560
+ readonly id: string;
561
+ readonly title?: string;
562
+ readonly severity: RuleSeverity;
563
+ readonly requires?: ReadonlyArray<Capability>;
564
+ readonly minimumInkVersion?: string;
565
+ readonly disabledWhen?: ReadonlyArray<Capability>;
566
+ readonly matchByOccurrence?: boolean;
567
+ readonly defaultEnabled?: boolean;
568
+ readonly lifecycle?: "retired";
569
+ readonly execution?: RuleExecution;
570
+ readonly scan?: FileScan;
571
+ readonly committedFilesOnly?: boolean;
572
+ readonly recommendation?: string;
573
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
574
+ readonly create: (context: RuleContext) => RuleVisitors;
575
+ };
576
+ }, {
577
+ readonly key: "react-doctor/mdx-ssr-execution-risk";
578
+ readonly id: "mdx-ssr-execution-risk";
579
+ readonly source: "react-doctor";
580
+ readonly originallyExternal: false;
581
+ readonly rule: {
582
+ readonly framework: "global";
583
+ readonly category: "Security";
584
+ readonly tags: readonly string[];
585
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
586
+ readonly id: string;
587
+ readonly title?: string;
588
+ readonly severity: RuleSeverity;
589
+ readonly requires?: ReadonlyArray<Capability>;
590
+ readonly minimumInkVersion?: string;
591
+ readonly disabledWhen?: ReadonlyArray<Capability>;
592
+ readonly matchByOccurrence?: boolean;
593
+ readonly defaultEnabled?: boolean;
594
+ readonly lifecycle?: "retired";
595
+ readonly execution?: RuleExecution;
596
+ readonly scan?: FileScan;
597
+ readonly committedFilesOnly?: boolean;
598
+ readonly recommendation?: string;
599
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
600
+ readonly create: (context: RuleContext) => RuleVisitors;
601
+ };
602
+ }, {
603
+ readonly key: "react-doctor/nosql-injection-risk";
604
+ readonly id: "nosql-injection-risk";
605
+ readonly source: "react-doctor";
606
+ readonly originallyExternal: false;
607
+ readonly rule: {
608
+ readonly framework: "global";
609
+ readonly category: "Security";
610
+ readonly tags: readonly string[];
611
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
612
+ readonly id: string;
613
+ readonly title?: string;
614
+ readonly severity: RuleSeverity;
615
+ readonly requires?: ReadonlyArray<Capability>;
616
+ readonly minimumInkVersion?: string;
617
+ readonly disabledWhen?: ReadonlyArray<Capability>;
618
+ readonly matchByOccurrence?: boolean;
619
+ readonly defaultEnabled?: boolean;
620
+ readonly lifecycle?: "retired";
621
+ readonly execution?: RuleExecution;
622
+ readonly scan?: FileScan;
623
+ readonly committedFilesOnly?: boolean;
624
+ readonly recommendation?: string;
625
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
626
+ readonly create: (context: RuleContext) => RuleVisitors;
627
+ };
628
+ }, {
629
+ readonly key: "react-doctor/package-metadata-secret";
630
+ readonly id: "package-metadata-secret";
631
+ readonly source: "react-doctor";
632
+ readonly originallyExternal: false;
633
+ readonly rule: {
634
+ readonly framework: "global";
635
+ readonly category: "Security";
636
+ readonly tags: readonly string[];
637
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
638
+ readonly id: string;
639
+ readonly title?: string;
640
+ readonly severity: RuleSeverity;
641
+ readonly requires?: ReadonlyArray<Capability>;
642
+ readonly minimumInkVersion?: string;
643
+ readonly disabledWhen?: ReadonlyArray<Capability>;
644
+ readonly matchByOccurrence?: boolean;
645
+ readonly defaultEnabled?: boolean;
646
+ readonly lifecycle?: "retired";
647
+ readonly execution?: RuleExecution;
648
+ readonly scan?: FileScan;
649
+ readonly committedFilesOnly?: boolean;
650
+ readonly recommendation?: string;
651
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
652
+ readonly create: (context: RuleContext) => RuleVisitors;
653
+ };
654
+ }, {
655
+ readonly key: "react-doctor/path-traversal-risk";
656
+ readonly id: "path-traversal-risk";
657
+ readonly source: "react-doctor";
658
+ readonly originallyExternal: false;
659
+ readonly rule: {
660
+ readonly framework: "global";
661
+ readonly category: "Security";
662
+ readonly tags: readonly string[];
663
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
664
+ readonly id: string;
665
+ readonly title?: string;
666
+ readonly severity: RuleSeverity;
667
+ readonly requires?: ReadonlyArray<Capability>;
668
+ readonly minimumInkVersion?: string;
669
+ readonly disabledWhen?: ReadonlyArray<Capability>;
670
+ readonly matchByOccurrence?: boolean;
671
+ readonly defaultEnabled?: boolean;
672
+ readonly lifecycle?: "retired";
673
+ readonly execution?: RuleExecution;
674
+ readonly scan?: FileScan;
675
+ readonly committedFilesOnly?: boolean;
676
+ readonly recommendation?: string;
677
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
678
+ readonly create: (context: RuleContext) => RuleVisitors;
679
+ };
680
+ }, {
681
+ readonly key: "react-doctor/plugin-update-trust-risk";
682
+ readonly id: "plugin-update-trust-risk";
683
+ readonly source: "react-doctor";
684
+ readonly originallyExternal: false;
685
+ readonly rule: {
686
+ readonly framework: "global";
687
+ readonly category: "Security";
688
+ readonly tags: readonly string[];
689
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
690
+ readonly id: string;
691
+ readonly title?: string;
692
+ readonly severity: RuleSeverity;
693
+ readonly requires?: ReadonlyArray<Capability>;
694
+ readonly minimumInkVersion?: string;
695
+ readonly disabledWhen?: ReadonlyArray<Capability>;
696
+ readonly matchByOccurrence?: boolean;
697
+ readonly defaultEnabled?: boolean;
698
+ readonly lifecycle?: "retired";
699
+ readonly execution?: RuleExecution;
700
+ readonly scan?: FileScan;
701
+ readonly committedFilesOnly?: boolean;
702
+ readonly recommendation?: string;
703
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
704
+ readonly create: (context: RuleContext) => RuleVisitors;
705
+ };
706
+ }, {
707
+ readonly key: "react-doctor/postmessage-origin-risk";
708
+ readonly id: "postmessage-origin-risk";
709
+ readonly source: "react-doctor";
710
+ readonly originallyExternal: false;
711
+ readonly rule: {
712
+ readonly framework: "global";
713
+ readonly category: "Security";
714
+ readonly tags: readonly string[];
715
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
716
+ readonly id: string;
717
+ readonly title?: string;
718
+ readonly severity: RuleSeverity;
719
+ readonly requires?: ReadonlyArray<Capability>;
720
+ readonly minimumInkVersion?: string;
721
+ readonly disabledWhen?: ReadonlyArray<Capability>;
722
+ readonly matchByOccurrence?: boolean;
723
+ readonly defaultEnabled?: boolean;
724
+ readonly lifecycle?: "retired";
725
+ readonly execution?: RuleExecution;
726
+ readonly scan?: FileScan;
727
+ readonly committedFilesOnly?: boolean;
728
+ readonly recommendation?: string;
729
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
730
+ readonly create: (context: RuleContext) => RuleVisitors;
731
+ };
732
+ }, {
733
+ readonly key: "react-doctor/public-debug-artifact";
734
+ readonly id: "public-debug-artifact";
735
+ readonly source: "react-doctor";
736
+ readonly originallyExternal: false;
737
+ readonly rule: {
738
+ readonly framework: "global";
739
+ readonly category: "Security";
740
+ readonly tags: readonly string[];
741
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
742
+ readonly id: string;
743
+ readonly title?: string;
744
+ readonly severity: RuleSeverity;
745
+ readonly requires?: ReadonlyArray<Capability>;
746
+ readonly minimumInkVersion?: string;
747
+ readonly disabledWhen?: ReadonlyArray<Capability>;
748
+ readonly matchByOccurrence?: boolean;
749
+ readonly defaultEnabled?: boolean;
750
+ readonly lifecycle?: "retired";
751
+ readonly execution?: RuleExecution;
752
+ readonly scan?: FileScan;
753
+ readonly committedFilesOnly?: boolean;
754
+ readonly recommendation?: string;
755
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
756
+ readonly create: (context: RuleContext) => RuleVisitors;
757
+ };
758
+ }, {
759
+ readonly key: "react-doctor/public-env-secret-name";
760
+ readonly id: "public-env-secret-name";
761
+ readonly source: "react-doctor";
762
+ readonly originallyExternal: false;
763
+ readonly rule: {
764
+ readonly framework: "global";
765
+ readonly category: "Security";
766
+ readonly tags: readonly string[];
767
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
768
+ readonly id: string;
769
+ readonly title?: string;
770
+ readonly severity: RuleSeverity;
771
+ readonly requires?: ReadonlyArray<Capability>;
772
+ readonly minimumInkVersion?: string;
773
+ readonly disabledWhen?: ReadonlyArray<Capability>;
774
+ readonly matchByOccurrence?: boolean;
775
+ readonly defaultEnabled?: boolean;
776
+ readonly lifecycle?: "retired";
777
+ readonly execution?: RuleExecution;
778
+ readonly scan?: FileScan;
779
+ readonly committedFilesOnly?: boolean;
780
+ readonly recommendation?: string;
781
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
782
+ readonly create: (context: RuleContext) => RuleVisitors;
783
+ };
784
+ }, {
785
+ readonly key: "react-doctor/raw-sql-injection-risk";
786
+ readonly id: "raw-sql-injection-risk";
787
+ readonly source: "react-doctor";
788
+ readonly originallyExternal: false;
789
+ readonly rule: {
790
+ readonly framework: "global";
791
+ readonly category: "Security";
792
+ readonly tags: readonly string[];
793
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
794
+ readonly id: string;
795
+ readonly title?: string;
796
+ readonly severity: RuleSeverity;
797
+ readonly requires?: ReadonlyArray<Capability>;
798
+ readonly minimumInkVersion?: string;
799
+ readonly disabledWhen?: ReadonlyArray<Capability>;
800
+ readonly matchByOccurrence?: boolean;
801
+ readonly defaultEnabled?: boolean;
802
+ readonly lifecycle?: "retired";
803
+ readonly execution?: RuleExecution;
804
+ readonly scan?: FileScan;
805
+ readonly committedFilesOnly?: boolean;
806
+ readonly recommendation?: string;
807
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
808
+ readonly create: (context: RuleContext) => RuleVisitors;
809
+ };
810
+ }, {
811
+ readonly key: "react-doctor/repository-secret-file";
812
+ readonly id: "repository-secret-file";
813
+ readonly source: "react-doctor";
814
+ readonly originallyExternal: false;
815
+ readonly rule: {
816
+ readonly framework: "global";
817
+ readonly category: "Security";
818
+ readonly tags: readonly string[];
819
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
820
+ readonly id: string;
821
+ readonly title?: string;
822
+ readonly severity: RuleSeverity;
823
+ readonly requires?: ReadonlyArray<Capability>;
824
+ readonly minimumInkVersion?: string;
825
+ readonly disabledWhen?: ReadonlyArray<Capability>;
826
+ readonly matchByOccurrence?: boolean;
827
+ readonly defaultEnabled?: boolean;
828
+ readonly lifecycle?: "retired";
829
+ readonly execution?: RuleExecution;
830
+ readonly scan?: FileScan;
831
+ readonly committedFilesOnly?: boolean;
832
+ readonly recommendation?: string;
833
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
834
+ readonly create: (context: RuleContext) => RuleVisitors;
835
+ };
836
+ }, {
837
+ readonly key: "react-doctor/request-body-mass-assignment";
838
+ readonly id: "request-body-mass-assignment";
839
+ readonly source: "react-doctor";
840
+ readonly originallyExternal: false;
841
+ readonly rule: {
842
+ readonly framework: "global";
843
+ readonly category: "Security";
844
+ readonly tags: readonly string[];
845
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
846
+ readonly id: string;
847
+ readonly title?: string;
848
+ readonly severity: RuleSeverity;
849
+ readonly requires?: ReadonlyArray<Capability>;
850
+ readonly minimumInkVersion?: string;
851
+ readonly disabledWhen?: ReadonlyArray<Capability>;
852
+ readonly matchByOccurrence?: boolean;
853
+ readonly defaultEnabled?: boolean;
854
+ readonly lifecycle?: "retired";
855
+ readonly execution?: RuleExecution;
856
+ readonly scan?: FileScan;
857
+ readonly committedFilesOnly?: boolean;
858
+ readonly recommendation?: string;
859
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
860
+ readonly create: (context: RuleContext) => RuleVisitors;
861
+ };
862
+ }, {
863
+ readonly key: "react-doctor/secret-in-fallback";
864
+ readonly id: "secret-in-fallback";
865
+ readonly source: "react-doctor";
866
+ readonly originallyExternal: false;
867
+ readonly rule: {
868
+ readonly framework: "global";
869
+ readonly category: "Security";
870
+ readonly tags: readonly string[];
871
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
872
+ readonly id: string;
873
+ readonly title?: string;
874
+ readonly severity: RuleSeverity;
875
+ readonly requires?: ReadonlyArray<Capability>;
876
+ readonly minimumInkVersion?: string;
877
+ readonly disabledWhen?: ReadonlyArray<Capability>;
878
+ readonly matchByOccurrence?: boolean;
879
+ readonly defaultEnabled?: boolean;
880
+ readonly lifecycle?: "retired";
881
+ readonly execution?: RuleExecution;
882
+ readonly scan?: FileScan;
883
+ readonly committedFilesOnly?: boolean;
884
+ readonly recommendation?: string;
885
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
886
+ readonly create: (context: RuleContext) => RuleVisitors;
887
+ };
888
+ }, {
889
+ readonly key: "react-doctor/supabase-client-owned-authz-field";
890
+ readonly id: "supabase-client-owned-authz-field";
891
+ readonly source: "react-doctor";
892
+ readonly originallyExternal: false;
893
+ readonly rule: {
894
+ readonly framework: "global";
895
+ readonly category: "Security";
896
+ readonly tags: readonly string[];
897
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
898
+ readonly id: string;
899
+ readonly title?: string;
900
+ readonly severity: RuleSeverity;
901
+ readonly requires?: ReadonlyArray<Capability>;
902
+ readonly minimumInkVersion?: string;
903
+ readonly disabledWhen?: ReadonlyArray<Capability>;
904
+ readonly matchByOccurrence?: boolean;
905
+ readonly defaultEnabled?: boolean;
906
+ readonly lifecycle?: "retired";
907
+ readonly execution?: RuleExecution;
908
+ readonly scan?: FileScan;
909
+ readonly committedFilesOnly?: boolean;
910
+ readonly recommendation?: string;
911
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
912
+ readonly create: (context: RuleContext) => RuleVisitors;
913
+ };
914
+ }, {
915
+ readonly key: "react-doctor/supabase-rls-policy-risk";
916
+ readonly id: "supabase-rls-policy-risk";
917
+ readonly source: "react-doctor";
918
+ readonly originallyExternal: false;
919
+ readonly rule: {
920
+ readonly framework: "global";
921
+ readonly category: "Security";
922
+ readonly tags: readonly string[];
923
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
924
+ readonly id: string;
925
+ readonly title?: string;
926
+ readonly severity: RuleSeverity;
927
+ readonly requires?: ReadonlyArray<Capability>;
928
+ readonly minimumInkVersion?: string;
929
+ readonly disabledWhen?: ReadonlyArray<Capability>;
930
+ readonly matchByOccurrence?: boolean;
931
+ readonly defaultEnabled?: boolean;
932
+ readonly lifecycle?: "retired";
933
+ readonly execution?: RuleExecution;
934
+ readonly scan?: FileScan;
935
+ readonly committedFilesOnly?: boolean;
936
+ readonly recommendation?: string;
937
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
938
+ readonly create: (context: RuleContext) => RuleVisitors;
939
+ };
940
+ }, {
941
+ readonly key: "react-doctor/supabase-table-missing-rls";
942
+ readonly id: "supabase-table-missing-rls";
943
+ readonly source: "react-doctor";
944
+ readonly originallyExternal: false;
945
+ readonly rule: {
946
+ readonly framework: "global";
947
+ readonly category: "Security";
948
+ readonly tags: readonly string[];
949
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
950
+ readonly id: string;
951
+ readonly title?: string;
952
+ readonly severity: RuleSeverity;
953
+ readonly requires?: ReadonlyArray<Capability>;
954
+ readonly minimumInkVersion?: string;
955
+ readonly disabledWhen?: ReadonlyArray<Capability>;
956
+ readonly matchByOccurrence?: boolean;
957
+ readonly defaultEnabled?: boolean;
958
+ readonly lifecycle?: "retired";
959
+ readonly execution?: RuleExecution;
960
+ readonly scan?: FileScan;
961
+ readonly committedFilesOnly?: boolean;
962
+ readonly recommendation?: string;
963
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
964
+ readonly create: (context: RuleContext) => RuleVisitors;
965
+ };
966
+ }, {
967
+ readonly key: "react-doctor/svg-filter-clickjacking-risk";
968
+ readonly id: "svg-filter-clickjacking-risk";
969
+ readonly source: "react-doctor";
970
+ readonly originallyExternal: false;
971
+ readonly rule: {
972
+ readonly framework: "global";
973
+ readonly category: "Security";
974
+ readonly tags: readonly string[];
975
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
976
+ readonly id: string;
977
+ readonly title?: string;
978
+ readonly severity: RuleSeverity;
979
+ readonly requires?: ReadonlyArray<Capability>;
980
+ readonly minimumInkVersion?: string;
981
+ readonly disabledWhen?: ReadonlyArray<Capability>;
982
+ readonly matchByOccurrence?: boolean;
983
+ readonly defaultEnabled?: boolean;
984
+ readonly lifecycle?: "retired";
985
+ readonly execution?: RuleExecution;
986
+ readonly scan?: FileScan;
987
+ readonly committedFilesOnly?: boolean;
988
+ readonly recommendation?: string;
989
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
990
+ readonly create: (context: RuleContext) => RuleVisitors;
991
+ };
992
+ }, {
993
+ readonly key: "react-doctor/tenant-static-proxy-risk";
994
+ readonly id: "tenant-static-proxy-risk";
995
+ readonly source: "react-doctor";
996
+ readonly originallyExternal: false;
997
+ readonly rule: {
998
+ readonly framework: "global";
999
+ readonly category: "Security";
1000
+ readonly tags: readonly string[];
1001
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
1002
+ readonly id: string;
1003
+ readonly title?: string;
1004
+ readonly severity: RuleSeverity;
1005
+ readonly requires?: ReadonlyArray<Capability>;
1006
+ readonly minimumInkVersion?: string;
1007
+ readonly disabledWhen?: ReadonlyArray<Capability>;
1008
+ readonly matchByOccurrence?: boolean;
1009
+ readonly defaultEnabled?: boolean;
1010
+ readonly lifecycle?: "retired";
1011
+ readonly execution?: RuleExecution;
1012
+ readonly scan?: FileScan;
1013
+ readonly committedFilesOnly?: boolean;
1014
+ readonly recommendation?: string;
1015
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
1016
+ readonly create: (context: RuleContext) => RuleVisitors;
1017
+ };
1018
+ }, {
1019
+ readonly key: "react-doctor/unsafe-json-in-html";
1020
+ readonly id: "unsafe-json-in-html";
1021
+ readonly source: "react-doctor";
1022
+ readonly originallyExternal: false;
1023
+ readonly rule: {
1024
+ readonly framework: "global";
1025
+ readonly category: "Security";
1026
+ readonly tags: readonly string[];
1027
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
1028
+ readonly id: string;
1029
+ readonly title?: string;
1030
+ readonly severity: RuleSeverity;
1031
+ readonly requires?: ReadonlyArray<Capability>;
1032
+ readonly minimumInkVersion?: string;
1033
+ readonly disabledWhen?: ReadonlyArray<Capability>;
1034
+ readonly matchByOccurrence?: boolean;
1035
+ readonly defaultEnabled?: boolean;
1036
+ readonly lifecycle?: "retired";
1037
+ readonly execution?: RuleExecution;
1038
+ readonly scan?: FileScan;
1039
+ readonly committedFilesOnly?: boolean;
1040
+ readonly recommendation?: string;
1041
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
1042
+ readonly create: (context: RuleContext) => RuleVisitors;
1043
+ };
1044
+ }, {
1045
+ readonly key: "react-doctor/untrusted-redirect-following";
1046
+ readonly id: "untrusted-redirect-following";
1047
+ readonly source: "react-doctor";
1048
+ readonly originallyExternal: false;
1049
+ readonly rule: {
1050
+ readonly framework: "global";
1051
+ readonly category: "Security";
1052
+ readonly tags: readonly string[];
1053
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
1054
+ readonly id: string;
1055
+ readonly title?: string;
1056
+ readonly severity: RuleSeverity;
1057
+ readonly requires?: ReadonlyArray<Capability>;
1058
+ readonly minimumInkVersion?: string;
1059
+ readonly disabledWhen?: ReadonlyArray<Capability>;
1060
+ readonly matchByOccurrence?: boolean;
1061
+ readonly defaultEnabled?: boolean;
1062
+ readonly lifecycle?: "retired";
1063
+ readonly execution?: RuleExecution;
1064
+ readonly scan?: FileScan;
1065
+ readonly committedFilesOnly?: boolean;
1066
+ readonly recommendation?: string;
1067
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
1068
+ readonly create: (context: RuleContext) => RuleVisitors;
1069
+ };
1070
+ }, {
1071
+ readonly key: "react-doctor/url-prefilled-privileged-action";
1072
+ readonly id: "url-prefilled-privileged-action";
1073
+ readonly source: "react-doctor";
1074
+ readonly originallyExternal: false;
1075
+ readonly rule: {
1076
+ readonly framework: "global";
1077
+ readonly category: "Security";
1078
+ readonly tags: readonly string[];
1079
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
1080
+ readonly id: string;
1081
+ readonly title?: string;
1082
+ readonly severity: RuleSeverity;
1083
+ readonly requires?: ReadonlyArray<Capability>;
1084
+ readonly minimumInkVersion?: string;
1085
+ readonly disabledWhen?: ReadonlyArray<Capability>;
1086
+ readonly matchByOccurrence?: boolean;
1087
+ readonly defaultEnabled?: boolean;
1088
+ readonly lifecycle?: "retired";
1089
+ readonly execution?: RuleExecution;
1090
+ readonly scan?: FileScan;
1091
+ readonly committedFilesOnly?: boolean;
1092
+ readonly recommendation?: string;
1093
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
1094
+ readonly create: (context: RuleContext) => RuleVisitors;
1095
+ };
1096
+ }, {
1097
+ readonly key: "react-doctor/webhook-signature-risk";
1098
+ readonly id: "webhook-signature-risk";
1099
+ readonly source: "react-doctor";
1100
+ readonly originallyExternal: false;
1101
+ readonly rule: {
1102
+ readonly framework: "global";
1103
+ readonly category: "Security";
1104
+ readonly tags: readonly string[];
1105
+ readonly diffScope?: "line" | "jsx-element" | "function" | "file";
1106
+ readonly id: string;
1107
+ readonly title?: string;
1108
+ readonly severity: RuleSeverity;
1109
+ readonly requires?: ReadonlyArray<Capability>;
1110
+ readonly minimumInkVersion?: string;
1111
+ readonly disabledWhen?: ReadonlyArray<Capability>;
1112
+ readonly matchByOccurrence?: boolean;
1113
+ readonly defaultEnabled?: boolean;
1114
+ readonly lifecycle?: "retired";
1115
+ readonly execution?: RuleExecution;
1116
+ readonly scan?: FileScan;
1117
+ readonly committedFilesOnly?: boolean;
1118
+ readonly recommendation?: string;
1119
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
1120
+ readonly create: (context: RuleContext) => RuleVisitors;
1121
+ };
1122
+ }];
1123
+ //#endregion
1124
+ //#region src/plugin/utils/atomic-write-file.d.ts
1125
+ declare const atomicWriteFile: (filePath: string, contents: string) => void;
1126
+ //#endregion
1127
+ //#region src/plugin/utils/get-diagnostic-context-path.d.ts
1128
+ interface DiagnosticContextIdentity {
1129
+ readonly filename: string;
1130
+ readonly rule: string;
1131
+ readonly offset: number;
1132
+ readonly message: string;
1133
+ }
1134
+ interface DiagnosticContextPathInput extends DiagnosticContextIdentity {
1135
+ readonly directory: string;
1136
+ }
1137
+ declare const getDiagnosticContextPath: (input: DiagnosticContextPathInput) => string;
1138
+ //#endregion
1139
+ //#region src/plugin/utils/diagnostic-context-range.d.ts
1140
+ interface DiagnosticContextRange {
1141
+ readonly offset: number;
1142
+ readonly length: number;
1143
+ }
1144
+ //#endregion
1145
+ //#region src/core.d.ts
1146
+ declare const REACT_DOCTOR_RULES: readonly CoreRuleRegistryEntry[];
1147
+ declare const REACT_DOCTOR_PROJECT_RULES: CoreRuleRegistryEntry[];
1148
+ declare const REACT_DOCTOR_OPT_IN_PROJECT_RULE_IDS: ReadonlySet<string>;
1149
+ declare const REACT_DOCTOR_RULE_REGISTRY: Readonly<Record<string, CoreRuleMetadata>>;
1150
+ declare const ALL_REACT_DOCTOR_RULE_KEYS: ReadonlySet<string>;
1151
+ declare const FRAMEWORK_SPECIFIC_RULE_KEYS: ReadonlySet<string>;
1152
+ //#endregion
1153
+ export { ALL_REACT_DOCTOR_RULE_KEYS, CROSS_FILE_DEPENDENCY_COLLECTORS, CROSS_FILE_RULE_IDS, type Capability, type CapabilityQuery, type CoreRuleMetadata, type CrossFileProbeTrace, type DiagnosticContextIdentity, type DiagnosticContextRange, EXTERNAL_RULES, type EsTreeNode, FRAMEWORK_SPECIFIC_RULE_KEYS, FRAMEWORK_TOKENS, type FileScan, type FrameworkToken, MOTION_LIBRARY_PACKAGES, type OxlintRuleSeverity, REACT_COMPILER_RULES, REACT_DOCTOR_OPT_IN_PROJECT_RULE_IDS, REACT_DOCTOR_PROJECT_RULES, REACT_DOCTOR_RULES, REACT_DOCTOR_RULE_REGISTRY, reactDoctorScanRules as REACT_DOCTOR_SCAN_RULES, REACT_NATIVE_DEPENDENCY_NAMES, REACT_NATIVE_DEPENDENCY_PREFIXES, type Rule, type RuleExecution, type RuleFramework, type RuleSeverity, type ScanFinding, type ScannedFile, UNBOUNDED_CROSS_FILE_RULE_IDS, atomicWriteFile, classifySecurityScanFile, collectCrossFileDependencyProbes, getDiagnosticContextPath, isReactNativeDependencyName, resetFilesystemCaches as resetManifestCaches, shouldReadSecurityScanContent };
1154
+ //# sourceMappingURL=core.d.ts.map