oxlint-plugin-react-doctor 0.9.12-dev.4bf7aff → 0.9.12-dev.79d8007

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