fallow 3.30.0 → 3.32.0
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/README.md +18 -13
- package/capabilities.json +402 -177
- package/issue-registry.json +241 -166
- package/package.json +14 -13
- package/schema.json +89 -6
- package/skills/fallow/SKILL.md +30 -9
- package/skills/fallow/references/cli-reference.md +103 -44
- package/skills/fallow/references/gotchas.md +45 -13
- package/skills/fallow/references/issue-types.md +4 -2
- package/skills/fallow/references/mcp.md +48 -6
- package/skills/fallow/references/node-bindings.md +9 -3
- package/skills/fallow/references/patterns.md +37 -12
- package/skills/fallow-setup/SKILL.md +50 -0
- package/skills/fallow-setup/agents/openai.yaml +4 -0
- package/skills/fallow-setup/references/ci-gate.md +61 -0
- package/skills/fallow-setup/references/configure-and-install.md +56 -0
- package/skills/fallow-setup/references/tooling-detection.md +44 -0
- package/types/output-contract.d.ts +1044 -35
package/capabilities.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fallow",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.32.0",
|
|
4
4
|
"manifest_version": "1",
|
|
5
5
|
"description": "Codebase analyzer for TypeScript/JavaScript: unused code, circular dependencies, code duplication, complexity hotspots, and architecture boundary violations",
|
|
6
6
|
"global_flags": [
|
|
@@ -100,6 +100,16 @@
|
|
|
100
100
|
"required": false,
|
|
101
101
|
"description": "Only report issues in files changed since this git ref (e.g., main, HEAD~5)"
|
|
102
102
|
},
|
|
103
|
+
{
|
|
104
|
+
"name": "--no-package-baselines",
|
|
105
|
+
"type": "bool",
|
|
106
|
+
"required": false,
|
|
107
|
+
"description": "Ignore the per-package refs of `workspaces.changedSince` for this run",
|
|
108
|
+
"possible_values": [
|
|
109
|
+
"true",
|
|
110
|
+
"false"
|
|
111
|
+
]
|
|
112
|
+
},
|
|
103
113
|
{
|
|
104
114
|
"name": "--diff-file",
|
|
105
115
|
"type": "string",
|
|
@@ -231,6 +241,12 @@
|
|
|
231
241
|
"section"
|
|
232
242
|
]
|
|
233
243
|
},
|
|
244
|
+
{
|
|
245
|
+
"name": "--group",
|
|
246
|
+
"type": "string",
|
|
247
|
+
"required": false,
|
|
248
|
+
"description": "Keep only the matching groups of a `--group-by` health run. Accepts exact group keys, glob patterns, and `!`-prefixed negations. Values can be comma-separated or repeated. Project-level sections are not filtered. Supported by `fallow health` only"
|
|
249
|
+
},
|
|
234
250
|
{
|
|
235
251
|
"name": "--performance",
|
|
236
252
|
"type": "bool",
|
|
@@ -330,6 +346,22 @@
|
|
|
330
346
|
"false"
|
|
331
347
|
]
|
|
332
348
|
},
|
|
349
|
+
{
|
|
350
|
+
"name": "--fail-on-baseline-growth",
|
|
351
|
+
"type": "bool",
|
|
352
|
+
"required": false,
|
|
353
|
+
"description": "Exit with code 1 if a loaded baseline has a key that the same file at the base ref does not have",
|
|
354
|
+
"possible_values": [
|
|
355
|
+
"true",
|
|
356
|
+
"false"
|
|
357
|
+
]
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"name": "--baseline-base",
|
|
361
|
+
"type": "string",
|
|
362
|
+
"required": false,
|
|
363
|
+
"description": "The git ref that --fail-on-baseline-growth compares the baseline with"
|
|
364
|
+
},
|
|
333
365
|
{
|
|
334
366
|
"name": "--fail-on-parse-error",
|
|
335
367
|
"type": "bool",
|
|
@@ -467,6 +499,26 @@
|
|
|
467
499
|
"false"
|
|
468
500
|
]
|
|
469
501
|
},
|
|
502
|
+
{
|
|
503
|
+
"name": "--dupes-ignore-symlinks",
|
|
504
|
+
"type": "bool",
|
|
505
|
+
"required": false,
|
|
506
|
+
"description": "Omit clone instances whose path is a symlink, or lies under a symlinked directory, in combined mode",
|
|
507
|
+
"possible_values": [
|
|
508
|
+
"true",
|
|
509
|
+
"false"
|
|
510
|
+
]
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"name": "--dupes-no-ignore-symlinks",
|
|
514
|
+
"type": "bool",
|
|
515
|
+
"required": false,
|
|
516
|
+
"description": "Report symlinked clone instances in combined mode (opt out of a config `duplicates.ignoreSymlinks: true`)",
|
|
517
|
+
"possible_values": [
|
|
518
|
+
"true",
|
|
519
|
+
"false"
|
|
520
|
+
]
|
|
521
|
+
},
|
|
470
522
|
{
|
|
471
523
|
"name": "--score",
|
|
472
524
|
"type": "bool",
|
|
@@ -487,6 +539,12 @@
|
|
|
487
539
|
"false"
|
|
488
540
|
]
|
|
489
541
|
},
|
|
542
|
+
{
|
|
543
|
+
"name": "--trend-from",
|
|
544
|
+
"type": "string",
|
|
545
|
+
"required": false,
|
|
546
|
+
"description": "Compare current health metrics against this snapshot file in combined mode. Implies --trend and --score"
|
|
547
|
+
},
|
|
490
548
|
{
|
|
491
549
|
"name": "--save-snapshot",
|
|
492
550
|
"type": "string",
|
|
@@ -689,6 +747,16 @@
|
|
|
689
747
|
"false"
|
|
690
748
|
]
|
|
691
749
|
},
|
|
750
|
+
{
|
|
751
|
+
"name": "--absent-component-props",
|
|
752
|
+
"type": "bool",
|
|
753
|
+
"required": false,
|
|
754
|
+
"description": "Review optional props omitted by known reachable callers (enables this rule)",
|
|
755
|
+
"possible_values": [
|
|
756
|
+
"true",
|
|
757
|
+
"false"
|
|
758
|
+
]
|
|
759
|
+
},
|
|
692
760
|
{
|
|
693
761
|
"name": "--unused-component-emits",
|
|
694
762
|
"type": "bool",
|
|
@@ -799,6 +867,16 @@
|
|
|
799
867
|
"false"
|
|
800
868
|
]
|
|
801
869
|
},
|
|
870
|
+
{
|
|
871
|
+
"name": "--package-cycles",
|
|
872
|
+
"type": "bool",
|
|
873
|
+
"required": false,
|
|
874
|
+
"description": "Only report dependency cycles between workspace packages",
|
|
875
|
+
"possible_values": [
|
|
876
|
+
"true",
|
|
877
|
+
"false"
|
|
878
|
+
]
|
|
879
|
+
},
|
|
802
880
|
{
|
|
803
881
|
"name": "--boundary-violations",
|
|
804
882
|
"type": "bool",
|
|
@@ -931,6 +1009,12 @@
|
|
|
931
1009
|
"required": false,
|
|
932
1010
|
"description": "Only report issues in the specified file(s). Accepts multiple values. The full project graph is still built, but only issues in matching files are reported. Useful for lint-staged pre-commit hooks"
|
|
933
1011
|
},
|
|
1012
|
+
{
|
|
1013
|
+
"name": "--finding-id",
|
|
1014
|
+
"type": "string",
|
|
1015
|
+
"required": false,
|
|
1016
|
+
"description": "Only report the findings with these `finding_id` values. Repeat the flag or pass a comma-separated list. Ids stay the same under every filter. The JSON output adds `finding_id_query`: a missing id means \"resolved\" only when `conclusive` is true"
|
|
1017
|
+
},
|
|
934
1018
|
{
|
|
935
1019
|
"name": "path",
|
|
936
1020
|
"type": "string",
|
|
@@ -1439,6 +1523,26 @@
|
|
|
1439
1523
|
"false"
|
|
1440
1524
|
]
|
|
1441
1525
|
},
|
|
1526
|
+
{
|
|
1527
|
+
"name": "--ignore-symlinks",
|
|
1528
|
+
"type": "bool",
|
|
1529
|
+
"required": false,
|
|
1530
|
+
"description": "Omit clone instances whose path is a symlink, or lies under a symlinked directory. A clone group with fewer than two remaining instances is not reported. Without this flag, JSON output marks these instances with `is_symlink: true`",
|
|
1531
|
+
"possible_values": [
|
|
1532
|
+
"true",
|
|
1533
|
+
"false"
|
|
1534
|
+
]
|
|
1535
|
+
},
|
|
1536
|
+
{
|
|
1537
|
+
"name": "--no-ignore-symlinks",
|
|
1538
|
+
"type": "bool",
|
|
1539
|
+
"required": false,
|
|
1540
|
+
"description": "Report symlinked clone instances (opt out of a config `duplicates.ignoreSymlinks: true`)",
|
|
1541
|
+
"possible_values": [
|
|
1542
|
+
"true",
|
|
1543
|
+
"false"
|
|
1544
|
+
]
|
|
1545
|
+
},
|
|
1442
1546
|
{
|
|
1443
1547
|
"name": "--top",
|
|
1444
1548
|
"type": "string",
|
|
@@ -1688,6 +1792,12 @@
|
|
|
1688
1792
|
"false"
|
|
1689
1793
|
]
|
|
1690
1794
|
},
|
|
1795
|
+
{
|
|
1796
|
+
"name": "--trend-from",
|
|
1797
|
+
"type": "string",
|
|
1798
|
+
"required": false,
|
|
1799
|
+
"description": "Compare current metrics against this snapshot file instead of the newest file in `.fallow/snapshots/`. Use it to restore a baseline from external storage in CI. With --group-by, groups are compared by key when the snapshot holds the same grouping. Implies --trend"
|
|
1800
|
+
},
|
|
1691
1801
|
{
|
|
1692
1802
|
"name": "--coverage",
|
|
1693
1803
|
"type": "string",
|
|
@@ -2152,7 +2262,7 @@
|
|
|
2152
2262
|
},
|
|
2153
2263
|
{
|
|
2154
2264
|
"name": "report",
|
|
2155
|
-
"description": "Render a saved `--format json` results file in another format without re-running analysis (analyze once, then render every CI surface from the same file). Supports GitHub annotations/summary, CodeClimate, SARIF, and GitHub/GitLab PR-comment and review formats",
|
|
2265
|
+
"description": "Render a saved `--format json` results file in another format without re-running analysis (analyze once, then render every CI surface from the same file). Supports GitHub annotations/summary, CodeClimate, SARIF, markdown, and GitHub/GitLab PR-comment and review formats",
|
|
2156
2266
|
"flags": [
|
|
2157
2267
|
{
|
|
2158
2268
|
"name": "--from",
|
|
@@ -2368,7 +2478,7 @@
|
|
|
2368
2478
|
"note": null,
|
|
2369
2479
|
"license": "free",
|
|
2370
2480
|
"license_note": null,
|
|
2371
|
-
"docs_url": "https://
|
|
2481
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-files"
|
|
2372
2482
|
},
|
|
2373
2483
|
{
|
|
2374
2484
|
"id": "unused-export",
|
|
@@ -2405,7 +2515,7 @@
|
|
|
2405
2515
|
"note": null,
|
|
2406
2516
|
"license": "free",
|
|
2407
2517
|
"license_note": null,
|
|
2408
|
-
"docs_url": "https://
|
|
2518
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-exports"
|
|
2409
2519
|
},
|
|
2410
2520
|
{
|
|
2411
2521
|
"id": "unused-type",
|
|
@@ -2439,7 +2549,7 @@
|
|
|
2439
2549
|
"note": null,
|
|
2440
2550
|
"license": "free",
|
|
2441
2551
|
"license_note": null,
|
|
2442
|
-
"docs_url": "https://
|
|
2552
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-types"
|
|
2443
2553
|
},
|
|
2444
2554
|
{
|
|
2445
2555
|
"id": "private-type-leak",
|
|
@@ -2476,7 +2586,7 @@
|
|
|
2476
2586
|
"note": "Opt-in API hygiene check; the rule defaults to off",
|
|
2477
2587
|
"license": "free",
|
|
2478
2588
|
"license_note": null,
|
|
2479
|
-
"docs_url": "https://
|
|
2589
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#private-type-leaks"
|
|
2480
2590
|
},
|
|
2481
2591
|
{
|
|
2482
2592
|
"id": "deprecated-export-in-use",
|
|
@@ -2513,7 +2623,7 @@
|
|
|
2513
2623
|
"note": "Opt-in migration sweep; the rule defaults to off",
|
|
2514
2624
|
"license": "free",
|
|
2515
2625
|
"license_note": null,
|
|
2516
|
-
"docs_url": "https://
|
|
2626
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#deprecated-exports-in-use"
|
|
2517
2627
|
},
|
|
2518
2628
|
{
|
|
2519
2629
|
"id": "unused-dependency",
|
|
@@ -2550,7 +2660,7 @@
|
|
|
2550
2660
|
"note": "--unused-deps controls unused-dependency, unused-dev-dependency, unused-optional-dependency, type-only-dependency, and test-only-dependency",
|
|
2551
2661
|
"license": "free",
|
|
2552
2662
|
"license_note": null,
|
|
2553
|
-
"docs_url": "https://
|
|
2663
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-dependencies"
|
|
2554
2664
|
},
|
|
2555
2665
|
{
|
|
2556
2666
|
"id": "unused-dev-dependency",
|
|
@@ -2590,7 +2700,7 @@
|
|
|
2590
2700
|
"note": "--unused-deps controls unused-dependency, unused-dev-dependency, unused-optional-dependency, type-only-dependency, and test-only-dependency",
|
|
2591
2701
|
"license": "free",
|
|
2592
2702
|
"license_note": null,
|
|
2593
|
-
"docs_url": "https://
|
|
2703
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-devdependencies"
|
|
2594
2704
|
},
|
|
2595
2705
|
{
|
|
2596
2706
|
"id": "unused-optional-dependency",
|
|
@@ -2630,7 +2740,7 @@
|
|
|
2630
2740
|
"note": "--unused-deps controls unused-dependency, unused-dev-dependency, unused-optional-dependency, type-only-dependency, and test-only-dependency",
|
|
2631
2741
|
"license": "free",
|
|
2632
2742
|
"license_note": null,
|
|
2633
|
-
"docs_url": "https://
|
|
2743
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-optionaldependencies"
|
|
2634
2744
|
},
|
|
2635
2745
|
{
|
|
2636
2746
|
"id": "type-only-dependency",
|
|
@@ -2667,7 +2777,7 @@
|
|
|
2667
2777
|
"note": "Only reported in --production mode; --unused-deps scopes it together with the other dependency kinds",
|
|
2668
2778
|
"license": "free",
|
|
2669
2779
|
"license_note": null,
|
|
2670
|
-
"docs_url": "https://
|
|
2780
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#type-only-dependencies"
|
|
2671
2781
|
},
|
|
2672
2782
|
{
|
|
2673
2783
|
"id": "test-only-dependency",
|
|
@@ -2704,7 +2814,7 @@
|
|
|
2704
2814
|
"note": "Not reported in --production mode (test files are excluded there); --unused-deps scopes it together with the other dependency kinds",
|
|
2705
2815
|
"license": "free",
|
|
2706
2816
|
"license_note": null,
|
|
2707
|
-
"docs_url": "https://
|
|
2817
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#test-only-dependencies"
|
|
2708
2818
|
},
|
|
2709
2819
|
{
|
|
2710
2820
|
"id": "dev-dependency-in-production",
|
|
@@ -2741,7 +2851,7 @@
|
|
|
2741
2851
|
"note": null,
|
|
2742
2852
|
"license": "free",
|
|
2743
2853
|
"license_note": null,
|
|
2744
|
-
"docs_url": "https://
|
|
2854
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#dev-dependencies-in-production"
|
|
2745
2855
|
},
|
|
2746
2856
|
{
|
|
2747
2857
|
"id": "unused-enum-member",
|
|
@@ -2778,7 +2888,7 @@
|
|
|
2778
2888
|
"note": null,
|
|
2779
2889
|
"license": "free",
|
|
2780
2890
|
"license_note": null,
|
|
2781
|
-
"docs_url": "https://
|
|
2891
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-enum-members"
|
|
2782
2892
|
},
|
|
2783
2893
|
{
|
|
2784
2894
|
"id": "unused-class-member",
|
|
@@ -2815,7 +2925,7 @@
|
|
|
2815
2925
|
"note": null,
|
|
2816
2926
|
"license": "free",
|
|
2817
2927
|
"license_note": null,
|
|
2818
|
-
"docs_url": "https://
|
|
2928
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-class-members"
|
|
2819
2929
|
},
|
|
2820
2930
|
{
|
|
2821
2931
|
"id": "unused-store-member",
|
|
@@ -2854,7 +2964,7 @@
|
|
|
2854
2964
|
"note": null,
|
|
2855
2965
|
"license": "free",
|
|
2856
2966
|
"license_note": null,
|
|
2857
|
-
"docs_url": "https://
|
|
2967
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-store-members"
|
|
2858
2968
|
},
|
|
2859
2969
|
{
|
|
2860
2970
|
"id": "unresolved-import",
|
|
@@ -2891,7 +3001,7 @@
|
|
|
2891
3001
|
"note": null,
|
|
2892
3002
|
"license": "free",
|
|
2893
3003
|
"license_note": null,
|
|
2894
|
-
"docs_url": "https://
|
|
3004
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unresolved-imports"
|
|
2895
3005
|
},
|
|
2896
3006
|
{
|
|
2897
3007
|
"id": "unlisted-dependency",
|
|
@@ -2928,7 +3038,7 @@
|
|
|
2928
3038
|
"note": null,
|
|
2929
3039
|
"license": "free",
|
|
2930
3040
|
"license_note": null,
|
|
2931
|
-
"docs_url": "https://
|
|
3041
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unlisted-dependencies"
|
|
2932
3042
|
},
|
|
2933
3043
|
{
|
|
2934
3044
|
"id": "duplicate-export",
|
|
@@ -2965,7 +3075,7 @@
|
|
|
2965
3075
|
"note": "fallow fix can add an ignoreExports rule to the fallow config instead of editing source",
|
|
2966
3076
|
"license": "free",
|
|
2967
3077
|
"license_note": null,
|
|
2968
|
-
"docs_url": "https://
|
|
3078
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#duplicate-exports"
|
|
2969
3079
|
},
|
|
2970
3080
|
{
|
|
2971
3081
|
"id": "circular-dependency",
|
|
@@ -3004,7 +3114,7 @@
|
|
|
3004
3114
|
"note": null,
|
|
3005
3115
|
"license": "free",
|
|
3006
3116
|
"license_note": null,
|
|
3007
|
-
"docs_url": "https://
|
|
3117
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#circular-dependencies"
|
|
3008
3118
|
},
|
|
3009
3119
|
{
|
|
3010
3120
|
"id": "re-export-cycle",
|
|
@@ -3045,7 +3155,46 @@
|
|
|
3045
3155
|
"note": null,
|
|
3046
3156
|
"license": "free",
|
|
3047
3157
|
"license_note": null,
|
|
3048
|
-
"docs_url": "https://
|
|
3158
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#re-export-cycles"
|
|
3159
|
+
},
|
|
3160
|
+
{
|
|
3161
|
+
"id": "package-cycle",
|
|
3162
|
+
"rule_id": "fallow/package-cycle",
|
|
3163
|
+
"command": "dead-code",
|
|
3164
|
+
"category": "Architecture",
|
|
3165
|
+
"description": "Two or more workspace packages import each other in a loop",
|
|
3166
|
+
"label": "Package Cycles",
|
|
3167
|
+
"config_key": "package-cycle",
|
|
3168
|
+
"registry_index": 20,
|
|
3169
|
+
"aliases": [
|
|
3170
|
+
"package-cycles"
|
|
3171
|
+
],
|
|
3172
|
+
"lsp": true,
|
|
3173
|
+
"filter_flag": "--package-cycles",
|
|
3174
|
+
"result_key": "package_cycles",
|
|
3175
|
+
"summary_label": "Package cycles",
|
|
3176
|
+
"summary_docs_anchor": "package-cycles",
|
|
3177
|
+
"sarif_rule_ids": [
|
|
3178
|
+
"fallow/package-cycle"
|
|
3179
|
+
],
|
|
3180
|
+
"codeclimate_check_names": [
|
|
3181
|
+
"fallow/package-cycle"
|
|
3182
|
+
],
|
|
3183
|
+
"ts_alias": {
|
|
3184
|
+
"name": "PackageCycle",
|
|
3185
|
+
"parent": "PackageCycleFinding"
|
|
3186
|
+
},
|
|
3187
|
+
"counts_in_total": true,
|
|
3188
|
+
"fixable": false,
|
|
3189
|
+
"suppressible": true,
|
|
3190
|
+
"suppress_comment": "// fallow-ignore-next-line package-cycle",
|
|
3191
|
+
"default_severity": "warn",
|
|
3192
|
+
"opt_in": false,
|
|
3193
|
+
"frameworks": [],
|
|
3194
|
+
"note": "Requires a workspace with two or more packages",
|
|
3195
|
+
"license": "free",
|
|
3196
|
+
"license_note": null,
|
|
3197
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#package-cycles"
|
|
3049
3198
|
},
|
|
3050
3199
|
{
|
|
3051
3200
|
"id": "boundary-violation",
|
|
@@ -3055,7 +3204,7 @@
|
|
|
3055
3204
|
"description": "Import crosses a configured architecture boundary",
|
|
3056
3205
|
"label": "Boundary Violations",
|
|
3057
3206
|
"config_key": "boundary-violation",
|
|
3058
|
-
"registry_index":
|
|
3207
|
+
"registry_index": 21,
|
|
3059
3208
|
"aliases": [],
|
|
3060
3209
|
"lsp": true,
|
|
3061
3210
|
"filter_flag": "--boundary-violations",
|
|
@@ -3082,7 +3231,7 @@
|
|
|
3082
3231
|
"note": "Requires configured boundary zones (boundaries config)",
|
|
3083
3232
|
"license": "free",
|
|
3084
3233
|
"license_note": null,
|
|
3085
|
-
"docs_url": "https://
|
|
3234
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#boundary-violations"
|
|
3086
3235
|
},
|
|
3087
3236
|
{
|
|
3088
3237
|
"id": "boundary-coverage",
|
|
@@ -3092,7 +3241,7 @@
|
|
|
3092
3241
|
"description": "Source file matches no configured architecture boundary zone",
|
|
3093
3242
|
"label": "Boundary Coverage",
|
|
3094
3243
|
"config_key": "boundary-violation",
|
|
3095
|
-
"registry_index":
|
|
3244
|
+
"registry_index": 22,
|
|
3096
3245
|
"aliases": [
|
|
3097
3246
|
"boundary-coverage-violations"
|
|
3098
3247
|
],
|
|
@@ -3118,7 +3267,7 @@
|
|
|
3118
3267
|
"note": "Requires boundaries.coverage.requireAllFiles",
|
|
3119
3268
|
"license": "free",
|
|
3120
3269
|
"license_note": null,
|
|
3121
|
-
"docs_url": "https://
|
|
3270
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#boundary-violations"
|
|
3122
3271
|
},
|
|
3123
3272
|
{
|
|
3124
3273
|
"id": "boundary-call-violation",
|
|
@@ -3128,7 +3277,7 @@
|
|
|
3128
3277
|
"description": "Zoned file calls a callee its zone forbids",
|
|
3129
3278
|
"label": "Boundary Call Violations",
|
|
3130
3279
|
"config_key": "boundary-violation",
|
|
3131
|
-
"registry_index":
|
|
3280
|
+
"registry_index": 23,
|
|
3132
3281
|
"aliases": [
|
|
3133
3282
|
"boundary-calls",
|
|
3134
3283
|
"boundary-call-violations"
|
|
@@ -3155,17 +3304,17 @@
|
|
|
3155
3304
|
"note": "Requires boundaries.calls.forbidden patterns",
|
|
3156
3305
|
"license": "free",
|
|
3157
3306
|
"license_note": null,
|
|
3158
|
-
"docs_url": "https://
|
|
3307
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#boundary-violations"
|
|
3159
3308
|
},
|
|
3160
3309
|
{
|
|
3161
3310
|
"id": "policy-violation",
|
|
3162
3311
|
"rule_id": "fallow/policy-violation",
|
|
3163
3312
|
"command": "dead-code",
|
|
3164
3313
|
"category": "Policy",
|
|
3165
|
-
"description": "
|
|
3314
|
+
"description": "Usage violates a configured rule-pack policy",
|
|
3166
3315
|
"label": "Policy Violations",
|
|
3167
3316
|
"config_key": "policy-violation",
|
|
3168
|
-
"registry_index":
|
|
3317
|
+
"registry_index": 24,
|
|
3169
3318
|
"aliases": [
|
|
3170
3319
|
"policy-violations"
|
|
3171
3320
|
],
|
|
@@ -3191,7 +3340,7 @@
|
|
|
3191
3340
|
"note": "Requires a configured rule pack (rulePacks config)",
|
|
3192
3341
|
"license": "free",
|
|
3193
3342
|
"license_note": null,
|
|
3194
|
-
"docs_url": "https://
|
|
3343
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#policy-violations"
|
|
3195
3344
|
},
|
|
3196
3345
|
{
|
|
3197
3346
|
"id": "stale-suppression",
|
|
@@ -3201,7 +3350,7 @@
|
|
|
3201
3350
|
"description": "Suppression comment or tag no longer matches any issue",
|
|
3202
3351
|
"label": "Stale Suppressions",
|
|
3203
3352
|
"config_key": "stale-suppressions",
|
|
3204
|
-
"registry_index":
|
|
3353
|
+
"registry_index": 40,
|
|
3205
3354
|
"aliases": [],
|
|
3206
3355
|
"lsp": true,
|
|
3207
3356
|
"filter_flag": "--stale-suppressions",
|
|
@@ -3227,7 +3376,7 @@
|
|
|
3227
3376
|
"note": "Fix by removing the stale suppression marker itself",
|
|
3228
3377
|
"license": "free",
|
|
3229
3378
|
"license_note": null,
|
|
3230
|
-
"docs_url": "https://
|
|
3379
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#stale-suppressions"
|
|
3231
3380
|
},
|
|
3232
3381
|
{
|
|
3233
3382
|
"id": "missing-suppression-reason",
|
|
@@ -3237,7 +3386,7 @@
|
|
|
3237
3386
|
"description": "Suppression comment omits a required reason",
|
|
3238
3387
|
"label": "Missing Suppression Reasons",
|
|
3239
3388
|
"config_key": "require-suppression-reason",
|
|
3240
|
-
"registry_index":
|
|
3389
|
+
"registry_index": 41,
|
|
3241
3390
|
"aliases": [
|
|
3242
3391
|
"missing-suppression-reasons"
|
|
3243
3392
|
],
|
|
@@ -3259,7 +3408,7 @@
|
|
|
3259
3408
|
"note": null,
|
|
3260
3409
|
"license": "free",
|
|
3261
3410
|
"license_note": null,
|
|
3262
|
-
"docs_url": "https://
|
|
3411
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#stale-suppressions"
|
|
3263
3412
|
},
|
|
3264
3413
|
{
|
|
3265
3414
|
"id": "unused-catalog-entry",
|
|
@@ -3269,7 +3418,7 @@
|
|
|
3269
3418
|
"description": "Catalog entry not referenced by any workspace package",
|
|
3270
3419
|
"label": "Unused Catalog Entries",
|
|
3271
3420
|
"config_key": "unused-catalog-entries",
|
|
3272
|
-
"registry_index":
|
|
3421
|
+
"registry_index": 42,
|
|
3273
3422
|
"aliases": [
|
|
3274
3423
|
"catalog",
|
|
3275
3424
|
"unused-catalog-entries"
|
|
@@ -3299,7 +3448,7 @@
|
|
|
3299
3448
|
"note": null,
|
|
3300
3449
|
"license": "free",
|
|
3301
3450
|
"license_note": null,
|
|
3302
|
-
"docs_url": "https://
|
|
3451
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-catalog-entries"
|
|
3303
3452
|
},
|
|
3304
3453
|
{
|
|
3305
3454
|
"id": "empty-catalog-group",
|
|
@@ -3309,7 +3458,7 @@
|
|
|
3309
3458
|
"description": "Named catalog group has no entries",
|
|
3310
3459
|
"label": "Empty Catalog Groups",
|
|
3311
3460
|
"config_key": "empty-catalog-groups",
|
|
3312
|
-
"registry_index":
|
|
3461
|
+
"registry_index": 43,
|
|
3313
3462
|
"aliases": [
|
|
3314
3463
|
"empty-catalog",
|
|
3315
3464
|
"empty-catalog-groups"
|
|
@@ -3339,7 +3488,7 @@
|
|
|
3339
3488
|
"note": null,
|
|
3340
3489
|
"license": "free",
|
|
3341
3490
|
"license_note": null,
|
|
3342
|
-
"docs_url": "https://
|
|
3491
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#empty-catalog-groups"
|
|
3343
3492
|
},
|
|
3344
3493
|
{
|
|
3345
3494
|
"id": "unresolved-catalog-reference",
|
|
@@ -3349,7 +3498,7 @@
|
|
|
3349
3498
|
"description": "package.json references a catalog that does not declare the package",
|
|
3350
3499
|
"label": "Unresolved Catalog References",
|
|
3351
3500
|
"config_key": "unresolved-catalog-references",
|
|
3352
|
-
"registry_index":
|
|
3501
|
+
"registry_index": 44,
|
|
3353
3502
|
"aliases": [
|
|
3354
3503
|
"unresolved-catalog",
|
|
3355
3504
|
"unresolved-catalog-references"
|
|
@@ -3379,7 +3528,7 @@
|
|
|
3379
3528
|
"note": null,
|
|
3380
3529
|
"license": "free",
|
|
3381
3530
|
"license_note": null,
|
|
3382
|
-
"docs_url": "https://
|
|
3531
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unresolved-catalog-references"
|
|
3383
3532
|
},
|
|
3384
3533
|
{
|
|
3385
3534
|
"id": "unused-dependency-override",
|
|
@@ -3389,7 +3538,7 @@
|
|
|
3389
3538
|
"description": "Package-manager override target is not declared or resolved",
|
|
3390
3539
|
"label": "Unused Dependency Overrides",
|
|
3391
3540
|
"config_key": "unused-dependency-overrides",
|
|
3392
|
-
"registry_index":
|
|
3541
|
+
"registry_index": 45,
|
|
3393
3542
|
"aliases": [
|
|
3394
3543
|
"unused-dependency-overrides",
|
|
3395
3544
|
"unused-override",
|
|
@@ -3420,7 +3569,7 @@
|
|
|
3420
3569
|
"note": null,
|
|
3421
3570
|
"license": "free",
|
|
3422
3571
|
"license_note": null,
|
|
3423
|
-
"docs_url": "https://
|
|
3572
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-dependency-overrides"
|
|
3424
3573
|
},
|
|
3425
3574
|
{
|
|
3426
3575
|
"id": "misconfigured-dependency-override",
|
|
@@ -3430,7 +3579,7 @@
|
|
|
3430
3579
|
"description": "Package-manager override has an unparsable key or value",
|
|
3431
3580
|
"label": "Misconfigured Dependency Overrides",
|
|
3432
3581
|
"config_key": "misconfigured-dependency-overrides",
|
|
3433
|
-
"registry_index":
|
|
3582
|
+
"registry_index": 46,
|
|
3434
3583
|
"aliases": [
|
|
3435
3584
|
"misconfigured-dependency-overrides",
|
|
3436
3585
|
"misconfigured-override",
|
|
@@ -3461,7 +3610,7 @@
|
|
|
3461
3610
|
"note": null,
|
|
3462
3611
|
"license": "free",
|
|
3463
3612
|
"license_note": null,
|
|
3464
|
-
"docs_url": "https://
|
|
3613
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#misconfigured-dependency-overrides"
|
|
3465
3614
|
},
|
|
3466
3615
|
{
|
|
3467
3616
|
"id": "invalid-client-export",
|
|
@@ -3471,7 +3620,7 @@
|
|
|
3471
3620
|
"description": "\"use client\" file exports a server-only / route-config name",
|
|
3472
3621
|
"label": "Invalid Client Exports",
|
|
3473
3622
|
"config_key": "invalid-client-export",
|
|
3474
|
-
"registry_index":
|
|
3623
|
+
"registry_index": 25,
|
|
3475
3624
|
"aliases": [
|
|
3476
3625
|
"invalid-client-exports"
|
|
3477
3626
|
],
|
|
@@ -3499,7 +3648,7 @@
|
|
|
3499
3648
|
"note": "Requires the project to declare next",
|
|
3500
3649
|
"license": "free",
|
|
3501
3650
|
"license_note": null,
|
|
3502
|
-
"docs_url": "https://
|
|
3651
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#invalid-client-exports"
|
|
3503
3652
|
},
|
|
3504
3653
|
{
|
|
3505
3654
|
"id": "mixed-client-server-barrel",
|
|
@@ -3509,7 +3658,7 @@
|
|
|
3509
3658
|
"description": "Barrel re-exports both a \"use client\" module and a server-only module",
|
|
3510
3659
|
"label": "Mixed Client/Server Barrels",
|
|
3511
3660
|
"config_key": "mixed-client-server-barrel",
|
|
3512
|
-
"registry_index":
|
|
3661
|
+
"registry_index": 26,
|
|
3513
3662
|
"aliases": [
|
|
3514
3663
|
"mixed-client-server-barrels"
|
|
3515
3664
|
],
|
|
@@ -3535,7 +3684,7 @@
|
|
|
3535
3684
|
"note": "Requires the project to declare next",
|
|
3536
3685
|
"license": "free",
|
|
3537
3686
|
"license_note": null,
|
|
3538
|
-
"docs_url": "https://
|
|
3687
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#mixed-client-server-barrels"
|
|
3539
3688
|
},
|
|
3540
3689
|
{
|
|
3541
3690
|
"id": "misplaced-directive",
|
|
@@ -3545,7 +3694,7 @@
|
|
|
3545
3694
|
"description": "\"use client\" / \"use server\" directive is not in the leading position and is ignored",
|
|
3546
3695
|
"label": "Misplaced Directives",
|
|
3547
3696
|
"config_key": "misplaced-directive",
|
|
3548
|
-
"registry_index":
|
|
3697
|
+
"registry_index": 27,
|
|
3549
3698
|
"aliases": [
|
|
3550
3699
|
"misplaced-directives"
|
|
3551
3700
|
],
|
|
@@ -3571,7 +3720,7 @@
|
|
|
3571
3720
|
"note": "Requires the project to declare next",
|
|
3572
3721
|
"license": "free",
|
|
3573
3722
|
"license_note": null,
|
|
3574
|
-
"docs_url": "https://
|
|
3723
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#misplaced-directives"
|
|
3575
3724
|
},
|
|
3576
3725
|
{
|
|
3577
3726
|
"id": "unprovided-inject",
|
|
@@ -3581,7 +3730,7 @@
|
|
|
3581
3730
|
"description": "inject() / getContext() reads a key that no provide() / setContext() supplies",
|
|
3582
3731
|
"label": "Unprovided Injects",
|
|
3583
3732
|
"config_key": "unprovided-injects",
|
|
3584
|
-
"registry_index":
|
|
3733
|
+
"registry_index": 28,
|
|
3585
3734
|
"aliases": [
|
|
3586
3735
|
"unprovided-injects"
|
|
3587
3736
|
],
|
|
@@ -3589,7 +3738,7 @@
|
|
|
3589
3738
|
"filter_flag": "--unprovided-injects",
|
|
3590
3739
|
"result_key": "unprovided_injects",
|
|
3591
3740
|
"summary_label": "Unprovided injects",
|
|
3592
|
-
"summary_docs_anchor": "unprovided-
|
|
3741
|
+
"summary_docs_anchor": "unprovided-injects",
|
|
3593
3742
|
"sarif_rule_ids": [
|
|
3594
3743
|
"fallow/unprovided-inject"
|
|
3595
3744
|
],
|
|
@@ -3607,7 +3756,7 @@
|
|
|
3607
3756
|
"note": null,
|
|
3608
3757
|
"license": "free",
|
|
3609
3758
|
"license_note": null,
|
|
3610
|
-
"docs_url": "https://
|
|
3759
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unprovided-injects"
|
|
3611
3760
|
},
|
|
3612
3761
|
{
|
|
3613
3762
|
"id": "unrendered-component",
|
|
@@ -3617,7 +3766,7 @@
|
|
|
3617
3766
|
"description": "A Vue / Svelte component is reachable through a barrel but rendered nowhere",
|
|
3618
3767
|
"label": "Unrendered Components",
|
|
3619
3768
|
"config_key": "unrendered-components",
|
|
3620
|
-
"registry_index":
|
|
3769
|
+
"registry_index": 29,
|
|
3621
3770
|
"aliases": [
|
|
3622
3771
|
"unrendered-components"
|
|
3623
3772
|
],
|
|
@@ -3625,7 +3774,7 @@
|
|
|
3625
3774
|
"filter_flag": "--unrendered-components",
|
|
3626
3775
|
"result_key": "unrendered_components",
|
|
3627
3776
|
"summary_label": "Unrendered components",
|
|
3628
|
-
"summary_docs_anchor": "unrendered-
|
|
3777
|
+
"summary_docs_anchor": "unrendered-components",
|
|
3629
3778
|
"sarif_rule_ids": [
|
|
3630
3779
|
"fallow/unrendered-component"
|
|
3631
3780
|
],
|
|
@@ -3643,7 +3792,43 @@
|
|
|
3643
3792
|
"note": null,
|
|
3644
3793
|
"license": "free",
|
|
3645
3794
|
"license_note": null,
|
|
3646
|
-
"docs_url": "https://
|
|
3795
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unrendered-components"
|
|
3796
|
+
},
|
|
3797
|
+
{
|
|
3798
|
+
"id": "absent-component-prop",
|
|
3799
|
+
"rule_id": "fallow/absent-component-prop",
|
|
3800
|
+
"command": "dead-code",
|
|
3801
|
+
"category": "Dead code",
|
|
3802
|
+
"description": "Known reachable callers omit an optional prop consumed inside its component",
|
|
3803
|
+
"label": "Absent Optional Component Props",
|
|
3804
|
+
"config_key": "absent-component-props",
|
|
3805
|
+
"registry_index": 31,
|
|
3806
|
+
"aliases": [
|
|
3807
|
+
"absent-component-props"
|
|
3808
|
+
],
|
|
3809
|
+
"lsp": true,
|
|
3810
|
+
"filter_flag": "--absent-component-props",
|
|
3811
|
+
"result_key": "absent_component_props",
|
|
3812
|
+
"summary_label": "Absent optional component props",
|
|
3813
|
+
"summary_docs_anchor": "absent-component-props",
|
|
3814
|
+
"sarif_rule_ids": [
|
|
3815
|
+
"fallow/absent-component-prop"
|
|
3816
|
+
],
|
|
3817
|
+
"codeclimate_check_names": [
|
|
3818
|
+
"fallow/absent-component-prop"
|
|
3819
|
+
],
|
|
3820
|
+
"ts_alias": null,
|
|
3821
|
+
"counts_in_total": true,
|
|
3822
|
+
"fixable": false,
|
|
3823
|
+
"suppressible": true,
|
|
3824
|
+
"suppress_comment": "// fallow-ignore-next-line absent-component-prop",
|
|
3825
|
+
"default_severity": "off",
|
|
3826
|
+
"opt_in": true,
|
|
3827
|
+
"frameworks": [],
|
|
3828
|
+
"note": "Opt-in manual review candidate; defaults to off. Inspect caller evidence and defaults before changing the component. No automatic fix.",
|
|
3829
|
+
"license": "free",
|
|
3830
|
+
"license_note": null,
|
|
3831
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#absent-component-props"
|
|
3647
3832
|
},
|
|
3648
3833
|
{
|
|
3649
3834
|
"id": "unused-component-prop",
|
|
@@ -3653,7 +3838,7 @@
|
|
|
3653
3838
|
"description": "A Vue, Svelte, or React component prop is referenced nowhere in its own component",
|
|
3654
3839
|
"label": "Unused Component Props",
|
|
3655
3840
|
"config_key": "unused-component-props",
|
|
3656
|
-
"registry_index":
|
|
3841
|
+
"registry_index": 30,
|
|
3657
3842
|
"aliases": [
|
|
3658
3843
|
"unused-component-props"
|
|
3659
3844
|
],
|
|
@@ -3661,7 +3846,7 @@
|
|
|
3661
3846
|
"filter_flag": "--unused-component-props",
|
|
3662
3847
|
"result_key": "unused_component_props",
|
|
3663
3848
|
"summary_label": "Unused component props",
|
|
3664
|
-
"summary_docs_anchor": "unused-component-
|
|
3849
|
+
"summary_docs_anchor": "unused-component-props",
|
|
3665
3850
|
"sarif_rule_ids": [
|
|
3666
3851
|
"fallow/unused-component-prop"
|
|
3667
3852
|
],
|
|
@@ -3679,7 +3864,7 @@
|
|
|
3679
3864
|
"note": null,
|
|
3680
3865
|
"license": "free",
|
|
3681
3866
|
"license_note": null,
|
|
3682
|
-
"docs_url": "https://
|
|
3867
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-component-props"
|
|
3683
3868
|
},
|
|
3684
3869
|
{
|
|
3685
3870
|
"id": "unused-component-emit",
|
|
@@ -3689,7 +3874,7 @@
|
|
|
3689
3874
|
"description": "A Vue <script setup> defineEmits event is emitted nowhere in its own component",
|
|
3690
3875
|
"label": "Unused Component Emits",
|
|
3691
3876
|
"config_key": "unused-component-emits",
|
|
3692
|
-
"registry_index":
|
|
3877
|
+
"registry_index": 32,
|
|
3693
3878
|
"aliases": [
|
|
3694
3879
|
"unused-component-emits"
|
|
3695
3880
|
],
|
|
@@ -3697,7 +3882,7 @@
|
|
|
3697
3882
|
"filter_flag": "--unused-component-emits",
|
|
3698
3883
|
"result_key": "unused_component_emits",
|
|
3699
3884
|
"summary_label": "Unused component emits",
|
|
3700
|
-
"summary_docs_anchor": "unused-component-
|
|
3885
|
+
"summary_docs_anchor": "unused-component-emits",
|
|
3701
3886
|
"sarif_rule_ids": [
|
|
3702
3887
|
"fallow/unused-component-emit"
|
|
3703
3888
|
],
|
|
@@ -3715,7 +3900,7 @@
|
|
|
3715
3900
|
"note": null,
|
|
3716
3901
|
"license": "free",
|
|
3717
3902
|
"license_note": null,
|
|
3718
|
-
"docs_url": "https://
|
|
3903
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-component-emits"
|
|
3719
3904
|
},
|
|
3720
3905
|
{
|
|
3721
3906
|
"id": "unused-component-input",
|
|
@@ -3725,7 +3910,7 @@
|
|
|
3725
3910
|
"description": "An Angular @Input() / signal input() / model() input is read nowhere in its own component",
|
|
3726
3911
|
"label": "Unused Component Inputs",
|
|
3727
3912
|
"config_key": "unused-component-inputs",
|
|
3728
|
-
"registry_index":
|
|
3913
|
+
"registry_index": 33,
|
|
3729
3914
|
"aliases": [
|
|
3730
3915
|
"unused-component-inputs"
|
|
3731
3916
|
],
|
|
@@ -3733,7 +3918,7 @@
|
|
|
3733
3918
|
"filter_flag": "--unused-component-inputs",
|
|
3734
3919
|
"result_key": "unused_component_inputs",
|
|
3735
3920
|
"summary_label": "Unused component inputs",
|
|
3736
|
-
"summary_docs_anchor": "unused-component-
|
|
3921
|
+
"summary_docs_anchor": "unused-component-inputs",
|
|
3737
3922
|
"sarif_rule_ids": [
|
|
3738
3923
|
"fallow/unused-component-input"
|
|
3739
3924
|
],
|
|
@@ -3751,7 +3936,7 @@
|
|
|
3751
3936
|
"note": null,
|
|
3752
3937
|
"license": "free",
|
|
3753
3938
|
"license_note": null,
|
|
3754
|
-
"docs_url": "https://
|
|
3939
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-component-inputs"
|
|
3755
3940
|
},
|
|
3756
3941
|
{
|
|
3757
3942
|
"id": "unused-component-output",
|
|
@@ -3761,7 +3946,7 @@
|
|
|
3761
3946
|
"description": "An Angular @Output() / signal output() output is emitted nowhere in its own component",
|
|
3762
3947
|
"label": "Unused Component Outputs",
|
|
3763
3948
|
"config_key": "unused-component-outputs",
|
|
3764
|
-
"registry_index":
|
|
3949
|
+
"registry_index": 34,
|
|
3765
3950
|
"aliases": [
|
|
3766
3951
|
"unused-component-outputs"
|
|
3767
3952
|
],
|
|
@@ -3769,7 +3954,7 @@
|
|
|
3769
3954
|
"filter_flag": "--unused-component-outputs",
|
|
3770
3955
|
"result_key": "unused_component_outputs",
|
|
3771
3956
|
"summary_label": "Unused component outputs",
|
|
3772
|
-
"summary_docs_anchor": "unused-component-
|
|
3957
|
+
"summary_docs_anchor": "unused-component-outputs",
|
|
3773
3958
|
"sarif_rule_ids": [
|
|
3774
3959
|
"fallow/unused-component-output"
|
|
3775
3960
|
],
|
|
@@ -3787,7 +3972,7 @@
|
|
|
3787
3972
|
"note": null,
|
|
3788
3973
|
"license": "free",
|
|
3789
3974
|
"license_note": null,
|
|
3790
|
-
"docs_url": "https://
|
|
3975
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-component-outputs"
|
|
3791
3976
|
},
|
|
3792
3977
|
{
|
|
3793
3978
|
"id": "unused-svelte-event",
|
|
@@ -3797,7 +3982,7 @@
|
|
|
3797
3982
|
"description": "A Svelte component dispatches a createEventDispatcher event whose name is listened to nowhere in the project",
|
|
3798
3983
|
"label": "Unused Svelte Events",
|
|
3799
3984
|
"config_key": "unused-svelte-events",
|
|
3800
|
-
"registry_index":
|
|
3985
|
+
"registry_index": 35,
|
|
3801
3986
|
"aliases": [
|
|
3802
3987
|
"unused-svelte-events"
|
|
3803
3988
|
],
|
|
@@ -3805,7 +3990,7 @@
|
|
|
3805
3990
|
"filter_flag": "--unused-svelte-events",
|
|
3806
3991
|
"result_key": "unused_svelte_events",
|
|
3807
3992
|
"summary_label": "Unused Svelte events",
|
|
3808
|
-
"summary_docs_anchor": "unused-svelte-
|
|
3993
|
+
"summary_docs_anchor": "unused-svelte-events",
|
|
3809
3994
|
"sarif_rule_ids": [
|
|
3810
3995
|
"fallow/unused-svelte-event"
|
|
3811
3996
|
],
|
|
@@ -3823,7 +4008,7 @@
|
|
|
3823
4008
|
"note": null,
|
|
3824
4009
|
"license": "free",
|
|
3825
4010
|
"license_note": null,
|
|
3826
|
-
"docs_url": "https://
|
|
4011
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-svelte-events"
|
|
3827
4012
|
},
|
|
3828
4013
|
{
|
|
3829
4014
|
"id": "unused-server-action",
|
|
@@ -3833,7 +4018,7 @@
|
|
|
3833
4018
|
"description": "A Next.js Server Action exported from a \"use server\" file is referenced by no code in the project",
|
|
3834
4019
|
"label": "Unused Server Actions",
|
|
3835
4020
|
"config_key": "unused-server-actions",
|
|
3836
|
-
"registry_index":
|
|
4021
|
+
"registry_index": 36,
|
|
3837
4022
|
"aliases": [
|
|
3838
4023
|
"unused-server-actions"
|
|
3839
4024
|
],
|
|
@@ -3841,7 +4026,7 @@
|
|
|
3841
4026
|
"filter_flag": "--unused-server-actions",
|
|
3842
4027
|
"result_key": "unused_server_actions",
|
|
3843
4028
|
"summary_label": "Unused server actions",
|
|
3844
|
-
"summary_docs_anchor": "unused-server-
|
|
4029
|
+
"summary_docs_anchor": "unused-server-actions",
|
|
3845
4030
|
"sarif_rule_ids": [
|
|
3846
4031
|
"fallow/unused-server-action"
|
|
3847
4032
|
],
|
|
@@ -3859,7 +4044,7 @@
|
|
|
3859
4044
|
"note": null,
|
|
3860
4045
|
"license": "free",
|
|
3861
4046
|
"license_note": null,
|
|
3862
|
-
"docs_url": "https://
|
|
4047
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-server-actions"
|
|
3863
4048
|
},
|
|
3864
4049
|
{
|
|
3865
4050
|
"id": "unused-load-data-key",
|
|
@@ -3869,7 +4054,7 @@
|
|
|
3869
4054
|
"description": "A SvelteKit load() return-object key is read by no consumer",
|
|
3870
4055
|
"label": "Unused Load Data Keys",
|
|
3871
4056
|
"config_key": "unused-load-data-keys",
|
|
3872
|
-
"registry_index":
|
|
4057
|
+
"registry_index": 37,
|
|
3873
4058
|
"aliases": [
|
|
3874
4059
|
"unused-load-data-keys"
|
|
3875
4060
|
],
|
|
@@ -3877,7 +4062,7 @@
|
|
|
3877
4062
|
"filter_flag": "--unused-load-data-keys",
|
|
3878
4063
|
"result_key": "unused_load_data_keys",
|
|
3879
4064
|
"summary_label": "Unused load data keys",
|
|
3880
|
-
"summary_docs_anchor": "unused-load-data-
|
|
4065
|
+
"summary_docs_anchor": "unused-load-data-keys",
|
|
3881
4066
|
"sarif_rule_ids": [
|
|
3882
4067
|
"fallow/unused-load-data-key"
|
|
3883
4068
|
],
|
|
@@ -3895,7 +4080,7 @@
|
|
|
3895
4080
|
"note": null,
|
|
3896
4081
|
"license": "free",
|
|
3897
4082
|
"license_note": null,
|
|
3898
|
-
"docs_url": "https://
|
|
4083
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-load-data-keys"
|
|
3899
4084
|
},
|
|
3900
4085
|
{
|
|
3901
4086
|
"id": "prop-drilling",
|
|
@@ -3905,9 +4090,9 @@
|
|
|
3905
4090
|
"description": "A React/Preact prop is forwarded unchanged through 3+ pass-through components to a distant consumer",
|
|
3906
4091
|
"label": "Prop Drilling",
|
|
3907
4092
|
"config_key": "prop-drilling",
|
|
3908
|
-
"registry_index":
|
|
4093
|
+
"registry_index": 52,
|
|
3909
4094
|
"aliases": [],
|
|
3910
|
-
"lsp":
|
|
4095
|
+
"lsp": true,
|
|
3911
4096
|
"filter_flag": null,
|
|
3912
4097
|
"result_key": "prop_drilling_chains",
|
|
3913
4098
|
"summary_label": "Prop drilling",
|
|
@@ -3927,7 +4112,7 @@
|
|
|
3927
4112
|
"note": "Opt-in: set rules.prop-drilling to warn or error to enable. Defaults to off.",
|
|
3928
4113
|
"license": "free",
|
|
3929
4114
|
"license_note": null,
|
|
3930
|
-
"docs_url": "https://
|
|
4115
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#prop-drilling"
|
|
3931
4116
|
},
|
|
3932
4117
|
{
|
|
3933
4118
|
"id": "thin-wrapper",
|
|
@@ -3937,11 +4122,11 @@
|
|
|
3937
4122
|
"description": "A React/Preact component whose whole body is a single spread-forwarded child render (a candidate for inlining)",
|
|
3938
4123
|
"label": "Thin Wrappers",
|
|
3939
4124
|
"config_key": "thin-wrapper",
|
|
3940
|
-
"registry_index":
|
|
4125
|
+
"registry_index": 53,
|
|
3941
4126
|
"aliases": [
|
|
3942
4127
|
"thin-wrappers"
|
|
3943
4128
|
],
|
|
3944
|
-
"lsp":
|
|
4129
|
+
"lsp": true,
|
|
3945
4130
|
"filter_flag": null,
|
|
3946
4131
|
"result_key": "thin_wrappers",
|
|
3947
4132
|
"summary_label": "Thin wrappers",
|
|
@@ -3961,7 +4146,7 @@
|
|
|
3961
4146
|
"note": "Opt-in: set rules.thin-wrapper to warn or error to enable. Defaults to off.",
|
|
3962
4147
|
"license": "free",
|
|
3963
4148
|
"license_note": null,
|
|
3964
|
-
"docs_url": "https://
|
|
4149
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#thin-wrapper"
|
|
3965
4150
|
},
|
|
3966
4151
|
{
|
|
3967
4152
|
"id": "duplicate-prop-shape",
|
|
@@ -3971,11 +4156,11 @@
|
|
|
3971
4156
|
"description": "Three or more React/Preact components across two or more files declare an identical prop-name set (a missing shared Props type)",
|
|
3972
4157
|
"label": "Duplicate Prop Shapes",
|
|
3973
4158
|
"config_key": "duplicate-prop-shape",
|
|
3974
|
-
"registry_index":
|
|
4159
|
+
"registry_index": 54,
|
|
3975
4160
|
"aliases": [
|
|
3976
4161
|
"duplicate-prop-shapes"
|
|
3977
4162
|
],
|
|
3978
|
-
"lsp":
|
|
4163
|
+
"lsp": true,
|
|
3979
4164
|
"filter_flag": null,
|
|
3980
4165
|
"result_key": "duplicate_prop_shapes",
|
|
3981
4166
|
"summary_label": "Duplicate prop shapes",
|
|
@@ -3995,7 +4180,7 @@
|
|
|
3995
4180
|
"note": "Opt-in: set rules.duplicate-prop-shape to warn or error to enable. Defaults to off.",
|
|
3996
4181
|
"license": "free",
|
|
3997
4182
|
"license_note": null,
|
|
3998
|
-
"docs_url": "https://
|
|
4183
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#duplicate-prop-shape"
|
|
3999
4184
|
},
|
|
4000
4185
|
{
|
|
4001
4186
|
"id": "route-collision",
|
|
@@ -4005,7 +4190,7 @@
|
|
|
4005
4190
|
"description": "Two or more Next.js App Router route files resolve to the same URL",
|
|
4006
4191
|
"label": "Route Collisions",
|
|
4007
4192
|
"config_key": "route-collision",
|
|
4008
|
-
"registry_index":
|
|
4193
|
+
"registry_index": 38,
|
|
4009
4194
|
"aliases": [
|
|
4010
4195
|
"route-collisions"
|
|
4011
4196
|
],
|
|
@@ -4033,7 +4218,7 @@
|
|
|
4033
4218
|
"note": null,
|
|
4034
4219
|
"license": "free",
|
|
4035
4220
|
"license_note": null,
|
|
4036
|
-
"docs_url": "https://
|
|
4221
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#route-collisions"
|
|
4037
4222
|
},
|
|
4038
4223
|
{
|
|
4039
4224
|
"id": "dynamic-segment-name-conflict",
|
|
@@ -4043,7 +4228,7 @@
|
|
|
4043
4228
|
"description": "Sibling Next.js dynamic route segments use different slug names at the same position",
|
|
4044
4229
|
"label": "Dynamic Segment Conflicts",
|
|
4045
4230
|
"config_key": "dynamic-segment-name-conflict",
|
|
4046
|
-
"registry_index":
|
|
4231
|
+
"registry_index": 39,
|
|
4047
4232
|
"aliases": [
|
|
4048
4233
|
"dynamic-segment-name-conflicts"
|
|
4049
4234
|
],
|
|
@@ -4071,7 +4256,7 @@
|
|
|
4071
4256
|
"note": null,
|
|
4072
4257
|
"license": "free",
|
|
4073
4258
|
"license_note": null,
|
|
4074
|
-
"docs_url": "https://
|
|
4259
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#dynamic-segment-name-conflicts"
|
|
4075
4260
|
},
|
|
4076
4261
|
{
|
|
4077
4262
|
"id": "high-cyclomatic-complexity",
|
|
@@ -4101,7 +4286,7 @@
|
|
|
4101
4286
|
"note": null,
|
|
4102
4287
|
"license": "free",
|
|
4103
4288
|
"license_note": null,
|
|
4104
|
-
"docs_url": "https://
|
|
4289
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#cyclomatic-complexity"
|
|
4105
4290
|
},
|
|
4106
4291
|
{
|
|
4107
4292
|
"id": "high-cognitive-complexity",
|
|
@@ -4131,7 +4316,7 @@
|
|
|
4131
4316
|
"note": null,
|
|
4132
4317
|
"license": "free",
|
|
4133
4318
|
"license_note": null,
|
|
4134
|
-
"docs_url": "https://
|
|
4319
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#cognitive-complexity"
|
|
4135
4320
|
},
|
|
4136
4321
|
{
|
|
4137
4322
|
"id": "high-complexity",
|
|
@@ -4161,7 +4346,7 @@
|
|
|
4161
4346
|
"note": null,
|
|
4162
4347
|
"license": "free",
|
|
4163
4348
|
"license_note": null,
|
|
4164
|
-
"docs_url": "https://
|
|
4349
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#complexity-metrics"
|
|
4165
4350
|
},
|
|
4166
4351
|
{
|
|
4167
4352
|
"id": "high-crap-score",
|
|
@@ -4191,7 +4376,7 @@
|
|
|
4191
4376
|
"note": null,
|
|
4192
4377
|
"license": "free",
|
|
4193
4378
|
"license_note": null,
|
|
4194
|
-
"docs_url": "https://
|
|
4379
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#crap-score"
|
|
4195
4380
|
},
|
|
4196
4381
|
{
|
|
4197
4382
|
"id": "refactoring-target",
|
|
@@ -4221,7 +4406,7 @@
|
|
|
4221
4406
|
"note": null,
|
|
4222
4407
|
"license": "free",
|
|
4223
4408
|
"license_note": null,
|
|
4224
|
-
"docs_url": "https://
|
|
4409
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#refactoring-targets"
|
|
4225
4410
|
},
|
|
4226
4411
|
{
|
|
4227
4412
|
"id": "css-token-drift",
|
|
@@ -4231,7 +4416,7 @@
|
|
|
4231
4416
|
"description": "CSS or CSS-in-JS hardcoded styling value bypasses the design token system",
|
|
4232
4417
|
"label": "CSS Token Drift",
|
|
4233
4418
|
"config_key": "css-token-drift",
|
|
4234
|
-
"registry_index":
|
|
4419
|
+
"registry_index": 55,
|
|
4235
4420
|
"aliases": [],
|
|
4236
4421
|
"lsp": false,
|
|
4237
4422
|
"filter_flag": null,
|
|
@@ -4251,7 +4436,7 @@
|
|
|
4251
4436
|
"note": null,
|
|
4252
4437
|
"license": "free",
|
|
4253
4438
|
"license_note": null,
|
|
4254
|
-
"docs_url": "https://
|
|
4439
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#css-token-drift"
|
|
4255
4440
|
},
|
|
4256
4441
|
{
|
|
4257
4442
|
"id": "css-duplicate-block",
|
|
@@ -4261,7 +4446,7 @@
|
|
|
4261
4446
|
"description": "CSS or CSS-in-JS declaration block is duplicated across rules",
|
|
4262
4447
|
"label": "CSS Duplicate Block",
|
|
4263
4448
|
"config_key": "css-duplicate-block",
|
|
4264
|
-
"registry_index":
|
|
4449
|
+
"registry_index": 56,
|
|
4265
4450
|
"aliases": [],
|
|
4266
4451
|
"lsp": false,
|
|
4267
4452
|
"filter_flag": null,
|
|
@@ -4281,7 +4466,7 @@
|
|
|
4281
4466
|
"note": null,
|
|
4282
4467
|
"license": "free",
|
|
4283
4468
|
"license_note": null,
|
|
4284
|
-
"docs_url": "https://
|
|
4469
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#css-duplicate-block"
|
|
4285
4470
|
},
|
|
4286
4471
|
{
|
|
4287
4472
|
"id": "css-selector-complexity",
|
|
@@ -4291,7 +4476,7 @@
|
|
|
4291
4476
|
"description": "CSS selector, nesting, or important usage is structurally complex",
|
|
4292
4477
|
"label": "CSS Selector Complexity",
|
|
4293
4478
|
"config_key": "css-selector-complexity",
|
|
4294
|
-
"registry_index":
|
|
4479
|
+
"registry_index": 57,
|
|
4295
4480
|
"aliases": [],
|
|
4296
4481
|
"lsp": false,
|
|
4297
4482
|
"filter_flag": null,
|
|
@@ -4311,7 +4496,7 @@
|
|
|
4311
4496
|
"note": null,
|
|
4312
4497
|
"license": "free",
|
|
4313
4498
|
"license_note": null,
|
|
4314
|
-
"docs_url": "https://
|
|
4499
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#css-selector-complexity"
|
|
4315
4500
|
},
|
|
4316
4501
|
{
|
|
4317
4502
|
"id": "css-dead-surface",
|
|
@@ -4321,7 +4506,7 @@
|
|
|
4321
4506
|
"description": "CSS or CSS-in-JS surface appears unused",
|
|
4322
4507
|
"label": "CSS Dead Surface",
|
|
4323
4508
|
"config_key": "css-dead-surface",
|
|
4324
|
-
"registry_index":
|
|
4509
|
+
"registry_index": 58,
|
|
4325
4510
|
"aliases": [],
|
|
4326
4511
|
"lsp": false,
|
|
4327
4512
|
"filter_flag": null,
|
|
@@ -4341,7 +4526,7 @@
|
|
|
4341
4526
|
"note": null,
|
|
4342
4527
|
"license": "free",
|
|
4343
4528
|
"license_note": null,
|
|
4344
|
-
"docs_url": "https://
|
|
4529
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#css-dead-surface"
|
|
4345
4530
|
},
|
|
4346
4531
|
{
|
|
4347
4532
|
"id": "css-broken-reference",
|
|
@@ -4351,7 +4536,7 @@
|
|
|
4351
4536
|
"description": "CSS or CSS-in-JS reference resolves to no stylesheet definition",
|
|
4352
4537
|
"label": "CSS Broken Reference",
|
|
4353
4538
|
"config_key": "css-broken-reference",
|
|
4354
|
-
"registry_index":
|
|
4539
|
+
"registry_index": 59,
|
|
4355
4540
|
"aliases": [],
|
|
4356
4541
|
"lsp": false,
|
|
4357
4542
|
"filter_flag": null,
|
|
@@ -4371,7 +4556,7 @@
|
|
|
4371
4556
|
"note": null,
|
|
4372
4557
|
"license": "free",
|
|
4373
4558
|
"license_note": null,
|
|
4374
|
-
"docs_url": "https://
|
|
4559
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#css-broken-reference"
|
|
4375
4560
|
},
|
|
4376
4561
|
{
|
|
4377
4562
|
"id": "untested-file",
|
|
@@ -4401,7 +4586,7 @@
|
|
|
4401
4586
|
"note": null,
|
|
4402
4587
|
"license": "free",
|
|
4403
4588
|
"license_note": null,
|
|
4404
|
-
"docs_url": "https://
|
|
4589
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-gaps"
|
|
4405
4590
|
},
|
|
4406
4591
|
{
|
|
4407
4592
|
"id": "untested-export",
|
|
@@ -4431,7 +4616,7 @@
|
|
|
4431
4616
|
"note": null,
|
|
4432
4617
|
"license": "free",
|
|
4433
4618
|
"license_note": null,
|
|
4434
|
-
"docs_url": "https://
|
|
4619
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-gaps"
|
|
4435
4620
|
},
|
|
4436
4621
|
{
|
|
4437
4622
|
"id": "runtime-safe-to-delete",
|
|
@@ -4461,7 +4646,7 @@
|
|
|
4461
4646
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
4462
4647
|
"license": "freemium",
|
|
4463
4648
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4464
|
-
"docs_url": "https://
|
|
4649
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
|
|
4465
4650
|
},
|
|
4466
4651
|
{
|
|
4467
4652
|
"id": "runtime-review-required",
|
|
@@ -4491,7 +4676,7 @@
|
|
|
4491
4676
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
4492
4677
|
"license": "freemium",
|
|
4493
4678
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4494
|
-
"docs_url": "https://
|
|
4679
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
|
|
4495
4680
|
},
|
|
4496
4681
|
{
|
|
4497
4682
|
"id": "runtime-low-traffic",
|
|
@@ -4521,7 +4706,7 @@
|
|
|
4521
4706
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
4522
4707
|
"license": "freemium",
|
|
4523
4708
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4524
|
-
"docs_url": "https://
|
|
4709
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
|
|
4525
4710
|
},
|
|
4526
4711
|
{
|
|
4527
4712
|
"id": "runtime-coverage-unavailable",
|
|
@@ -4551,7 +4736,7 @@
|
|
|
4551
4736
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
4552
4737
|
"license": "freemium",
|
|
4553
4738
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4554
|
-
"docs_url": "https://
|
|
4739
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
|
|
4555
4740
|
},
|
|
4556
4741
|
{
|
|
4557
4742
|
"id": "runtime-coverage",
|
|
@@ -4581,7 +4766,7 @@
|
|
|
4581
4766
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
4582
4767
|
"license": "freemium",
|
|
4583
4768
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4584
|
-
"docs_url": "https://
|
|
4769
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
|
|
4585
4770
|
},
|
|
4586
4771
|
{
|
|
4587
4772
|
"id": "coverage-intelligence-risky-change",
|
|
@@ -4611,7 +4796,7 @@
|
|
|
4611
4796
|
"note": "Produced by fallow coverage analyze",
|
|
4612
4797
|
"license": "freemium",
|
|
4613
4798
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4614
|
-
"docs_url": "https://
|
|
4799
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-intelligence"
|
|
4615
4800
|
},
|
|
4616
4801
|
{
|
|
4617
4802
|
"id": "coverage-intelligence-delete",
|
|
@@ -4641,7 +4826,7 @@
|
|
|
4641
4826
|
"note": "Produced by fallow coverage analyze",
|
|
4642
4827
|
"license": "freemium",
|
|
4643
4828
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4644
|
-
"docs_url": "https://
|
|
4829
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-intelligence"
|
|
4645
4830
|
},
|
|
4646
4831
|
{
|
|
4647
4832
|
"id": "coverage-intelligence-review",
|
|
@@ -4671,7 +4856,7 @@
|
|
|
4671
4856
|
"note": "Produced by fallow coverage analyze",
|
|
4672
4857
|
"license": "freemium",
|
|
4673
4858
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4674
|
-
"docs_url": "https://
|
|
4859
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-intelligence"
|
|
4675
4860
|
},
|
|
4676
4861
|
{
|
|
4677
4862
|
"id": "coverage-intelligence-refactor",
|
|
@@ -4701,7 +4886,7 @@
|
|
|
4701
4886
|
"note": "Produced by fallow coverage analyze",
|
|
4702
4887
|
"license": "freemium",
|
|
4703
4888
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4704
|
-
"docs_url": "https://
|
|
4889
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-intelligence"
|
|
4705
4890
|
},
|
|
4706
4891
|
{
|
|
4707
4892
|
"id": "code-duplication",
|
|
@@ -4731,7 +4916,7 @@
|
|
|
4731
4916
|
"note": "Reported by fallow dupes (and bare fallow / fallow audit)",
|
|
4732
4917
|
"license": "free",
|
|
4733
4918
|
"license_note": null,
|
|
4734
|
-
"docs_url": "https://
|
|
4919
|
+
"docs_url": "https://fallow.tools/docs/explanations/duplication/#clone-groups"
|
|
4735
4920
|
},
|
|
4736
4921
|
{
|
|
4737
4922
|
"id": "feature-flag",
|
|
@@ -4741,7 +4926,7 @@
|
|
|
4741
4926
|
"description": "Detected feature flag pattern",
|
|
4742
4927
|
"label": "Feature Flags",
|
|
4743
4928
|
"config_key": "feature-flags",
|
|
4744
|
-
"registry_index":
|
|
4929
|
+
"registry_index": 50,
|
|
4745
4930
|
"aliases": [],
|
|
4746
4931
|
"lsp": false,
|
|
4747
4932
|
"filter_flag": null,
|
|
@@ -4761,7 +4946,7 @@
|
|
|
4761
4946
|
"note": "Reported by fallow flags",
|
|
4762
4947
|
"license": "free",
|
|
4763
4948
|
"license_note": null,
|
|
4764
|
-
"docs_url": "https://
|
|
4949
|
+
"docs_url": "https://fallow.tools/docs/cli/flags/"
|
|
4765
4950
|
},
|
|
4766
4951
|
{
|
|
4767
4952
|
"id": "flag-retirement-candidate",
|
|
@@ -4791,7 +4976,7 @@
|
|
|
4791
4976
|
"note": null,
|
|
4792
4977
|
"license": "free",
|
|
4793
4978
|
"license_note": null,
|
|
4794
|
-
"docs_url": "https://
|
|
4979
|
+
"docs_url": "https://fallow.tools/docs/cli/flags/#retirement-report"
|
|
4795
4980
|
},
|
|
4796
4981
|
{
|
|
4797
4982
|
"id": "tainted-sink",
|
|
@@ -4821,7 +5006,7 @@
|
|
|
4821
5006
|
"note": null,
|
|
4822
5007
|
"license": "free",
|
|
4823
5008
|
"license_note": null,
|
|
4824
|
-
"docs_url": "https://
|
|
5009
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
4825
5010
|
},
|
|
4826
5011
|
{
|
|
4827
5012
|
"id": "client-server-leak",
|
|
@@ -4851,7 +5036,7 @@
|
|
|
4851
5036
|
"note": null,
|
|
4852
5037
|
"license": "free",
|
|
4853
5038
|
"license_note": null,
|
|
4854
|
-
"docs_url": "https://
|
|
5039
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
4855
5040
|
},
|
|
4856
5041
|
{
|
|
4857
5042
|
"id": "hardcoded-secret",
|
|
@@ -4881,7 +5066,7 @@
|
|
|
4881
5066
|
"note": "Include-required category: enable via security.categories.include",
|
|
4882
5067
|
"license": "free",
|
|
4883
5068
|
"license_note": null,
|
|
4884
|
-
"docs_url": "https://
|
|
5069
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
4885
5070
|
},
|
|
4886
5071
|
{
|
|
4887
5072
|
"id": "dangerous-html",
|
|
@@ -4911,7 +5096,7 @@
|
|
|
4911
5096
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4912
5097
|
"license": "free",
|
|
4913
5098
|
"license_note": null,
|
|
4914
|
-
"docs_url": "https://
|
|
5099
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
4915
5100
|
},
|
|
4916
5101
|
{
|
|
4917
5102
|
"id": "template-escape-bypass",
|
|
@@ -4941,7 +5126,7 @@
|
|
|
4941
5126
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4942
5127
|
"license": "free",
|
|
4943
5128
|
"license_note": null,
|
|
4944
|
-
"docs_url": "https://
|
|
5129
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
4945
5130
|
},
|
|
4946
5131
|
{
|
|
4947
5132
|
"id": "command-injection",
|
|
@@ -4971,7 +5156,7 @@
|
|
|
4971
5156
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4972
5157
|
"license": "free",
|
|
4973
5158
|
"license_note": null,
|
|
4974
|
-
"docs_url": "https://
|
|
5159
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
4975
5160
|
},
|
|
4976
5161
|
{
|
|
4977
5162
|
"id": "code-injection",
|
|
@@ -5001,7 +5186,7 @@
|
|
|
5001
5186
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5002
5187
|
"license": "free",
|
|
5003
5188
|
"license_note": null,
|
|
5004
|
-
"docs_url": "https://
|
|
5189
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5005
5190
|
},
|
|
5006
5191
|
{
|
|
5007
5192
|
"id": "dynamic-regex",
|
|
@@ -5031,7 +5216,7 @@
|
|
|
5031
5216
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5032
5217
|
"license": "free",
|
|
5033
5218
|
"license_note": null,
|
|
5034
|
-
"docs_url": "https://
|
|
5219
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5035
5220
|
},
|
|
5036
5221
|
{
|
|
5037
5222
|
"id": "redos-regex",
|
|
@@ -5061,7 +5246,7 @@
|
|
|
5061
5246
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5062
5247
|
"license": "free",
|
|
5063
5248
|
"license_note": null,
|
|
5064
|
-
"docs_url": "https://
|
|
5249
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5065
5250
|
},
|
|
5066
5251
|
{
|
|
5067
5252
|
"id": "resource-amplification",
|
|
@@ -5091,7 +5276,7 @@
|
|
|
5091
5276
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5092
5277
|
"license": "free",
|
|
5093
5278
|
"license_note": null,
|
|
5094
|
-
"docs_url": "https://
|
|
5279
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5095
5280
|
},
|
|
5096
5281
|
{
|
|
5097
5282
|
"id": "dynamic-module-load",
|
|
@@ -5121,7 +5306,7 @@
|
|
|
5121
5306
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5122
5307
|
"license": "free",
|
|
5123
5308
|
"license_note": null,
|
|
5124
|
-
"docs_url": "https://
|
|
5309
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5125
5310
|
},
|
|
5126
5311
|
{
|
|
5127
5312
|
"id": "sql-injection",
|
|
@@ -5151,7 +5336,7 @@
|
|
|
5151
5336
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5152
5337
|
"license": "free",
|
|
5153
5338
|
"license_note": null,
|
|
5154
|
-
"docs_url": "https://
|
|
5339
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5155
5340
|
},
|
|
5156
5341
|
{
|
|
5157
5342
|
"id": "ssrf",
|
|
@@ -5181,7 +5366,7 @@
|
|
|
5181
5366
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5182
5367
|
"license": "free",
|
|
5183
5368
|
"license_note": null,
|
|
5184
|
-
"docs_url": "https://
|
|
5369
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5185
5370
|
},
|
|
5186
5371
|
{
|
|
5187
5372
|
"id": "secret-to-network",
|
|
@@ -5211,7 +5396,7 @@
|
|
|
5211
5396
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5212
5397
|
"license": "free",
|
|
5213
5398
|
"license_note": null,
|
|
5214
|
-
"docs_url": "https://
|
|
5399
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5215
5400
|
},
|
|
5216
5401
|
{
|
|
5217
5402
|
"id": "path-traversal",
|
|
@@ -5241,7 +5426,7 @@
|
|
|
5241
5426
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5242
5427
|
"license": "free",
|
|
5243
5428
|
"license_note": null,
|
|
5244
|
-
"docs_url": "https://
|
|
5429
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5245
5430
|
},
|
|
5246
5431
|
{
|
|
5247
5432
|
"id": "header-injection",
|
|
@@ -5271,7 +5456,7 @@
|
|
|
5271
5456
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5272
5457
|
"license": "free",
|
|
5273
5458
|
"license_note": null,
|
|
5274
|
-
"docs_url": "https://
|
|
5459
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5275
5460
|
},
|
|
5276
5461
|
{
|
|
5277
5462
|
"id": "open-redirect",
|
|
@@ -5301,7 +5486,7 @@
|
|
|
5301
5486
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5302
5487
|
"license": "free",
|
|
5303
5488
|
"license_note": null,
|
|
5304
|
-
"docs_url": "https://
|
|
5489
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5305
5490
|
},
|
|
5306
5491
|
{
|
|
5307
5492
|
"id": "postmessage-wildcard-origin",
|
|
@@ -5331,7 +5516,7 @@
|
|
|
5331
5516
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5332
5517
|
"license": "free",
|
|
5333
5518
|
"license_note": null,
|
|
5334
|
-
"docs_url": "https://
|
|
5519
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5335
5520
|
},
|
|
5336
5521
|
{
|
|
5337
5522
|
"id": "tls-validation-disabled",
|
|
@@ -5361,7 +5546,7 @@
|
|
|
5361
5546
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5362
5547
|
"license": "free",
|
|
5363
5548
|
"license_note": null,
|
|
5364
|
-
"docs_url": "https://
|
|
5549
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5365
5550
|
},
|
|
5366
5551
|
{
|
|
5367
5552
|
"id": "cleartext-transport",
|
|
@@ -5391,7 +5576,7 @@
|
|
|
5391
5576
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5392
5577
|
"license": "free",
|
|
5393
5578
|
"license_note": null,
|
|
5394
|
-
"docs_url": "https://
|
|
5579
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5395
5580
|
},
|
|
5396
5581
|
{
|
|
5397
5582
|
"id": "electron-unsafe-webpreferences",
|
|
@@ -5421,7 +5606,7 @@
|
|
|
5421
5606
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5422
5607
|
"license": "free",
|
|
5423
5608
|
"license_note": null,
|
|
5424
|
-
"docs_url": "https://
|
|
5609
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5425
5610
|
},
|
|
5426
5611
|
{
|
|
5427
5612
|
"id": "world-writable-permission",
|
|
@@ -5451,7 +5636,7 @@
|
|
|
5451
5636
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5452
5637
|
"license": "free",
|
|
5453
5638
|
"license_note": null,
|
|
5454
|
-
"docs_url": "https://
|
|
5639
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5455
5640
|
},
|
|
5456
5641
|
{
|
|
5457
5642
|
"id": "insecure-temp-file",
|
|
@@ -5481,7 +5666,7 @@
|
|
|
5481
5666
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5482
5667
|
"license": "free",
|
|
5483
5668
|
"license_note": null,
|
|
5484
|
-
"docs_url": "https://
|
|
5669
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5485
5670
|
},
|
|
5486
5671
|
{
|
|
5487
5672
|
"id": "mysql-multiple-statements",
|
|
@@ -5511,7 +5696,7 @@
|
|
|
5511
5696
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5512
5697
|
"license": "free",
|
|
5513
5698
|
"license_note": null,
|
|
5514
|
-
"docs_url": "https://
|
|
5699
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5515
5700
|
},
|
|
5516
5701
|
{
|
|
5517
5702
|
"id": "permissive-cors",
|
|
@@ -5541,7 +5726,7 @@
|
|
|
5541
5726
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5542
5727
|
"license": "free",
|
|
5543
5728
|
"license_note": null,
|
|
5544
|
-
"docs_url": "https://
|
|
5729
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5545
5730
|
},
|
|
5546
5731
|
{
|
|
5547
5732
|
"id": "insecure-cookie",
|
|
@@ -5571,7 +5756,7 @@
|
|
|
5571
5756
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5572
5757
|
"license": "free",
|
|
5573
5758
|
"license_note": null,
|
|
5574
|
-
"docs_url": "https://
|
|
5759
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5575
5760
|
},
|
|
5576
5761
|
{
|
|
5577
5762
|
"id": "mass-assignment",
|
|
@@ -5601,7 +5786,7 @@
|
|
|
5601
5786
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5602
5787
|
"license": "free",
|
|
5603
5788
|
"license_note": null,
|
|
5604
|
-
"docs_url": "https://
|
|
5789
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5605
5790
|
},
|
|
5606
5791
|
{
|
|
5607
5792
|
"id": "weak-crypto",
|
|
@@ -5631,7 +5816,7 @@
|
|
|
5631
5816
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5632
5817
|
"license": "free",
|
|
5633
5818
|
"license_note": null,
|
|
5634
|
-
"docs_url": "https://
|
|
5819
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5635
5820
|
},
|
|
5636
5821
|
{
|
|
5637
5822
|
"id": "insecure-randomness",
|
|
@@ -5661,7 +5846,7 @@
|
|
|
5661
5846
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5662
5847
|
"license": "free",
|
|
5663
5848
|
"license_note": null,
|
|
5664
|
-
"docs_url": "https://
|
|
5849
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5665
5850
|
},
|
|
5666
5851
|
{
|
|
5667
5852
|
"id": "jwt-alg-none",
|
|
@@ -5691,7 +5876,7 @@
|
|
|
5691
5876
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5692
5877
|
"license": "free",
|
|
5693
5878
|
"license_note": null,
|
|
5694
|
-
"docs_url": "https://
|
|
5879
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5695
5880
|
},
|
|
5696
5881
|
{
|
|
5697
5882
|
"id": "jwt-verify-missing-algorithms",
|
|
@@ -5721,7 +5906,7 @@
|
|
|
5721
5906
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5722
5907
|
"license": "free",
|
|
5723
5908
|
"license_note": null,
|
|
5724
|
-
"docs_url": "https://
|
|
5909
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5725
5910
|
},
|
|
5726
5911
|
{
|
|
5727
5912
|
"id": "deprecated-cipher",
|
|
@@ -5751,7 +5936,7 @@
|
|
|
5751
5936
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5752
5937
|
"license": "free",
|
|
5753
5938
|
"license_note": null,
|
|
5754
|
-
"docs_url": "https://
|
|
5939
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5755
5940
|
},
|
|
5756
5941
|
{
|
|
5757
5942
|
"id": "unsafe-buffer-alloc",
|
|
@@ -5781,7 +5966,7 @@
|
|
|
5781
5966
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5782
5967
|
"license": "free",
|
|
5783
5968
|
"license_note": null,
|
|
5784
|
-
"docs_url": "https://
|
|
5969
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5785
5970
|
},
|
|
5786
5971
|
{
|
|
5787
5972
|
"id": "unsafe-deserialization",
|
|
@@ -5811,7 +5996,7 @@
|
|
|
5811
5996
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5812
5997
|
"license": "free",
|
|
5813
5998
|
"license_note": null,
|
|
5814
|
-
"docs_url": "https://
|
|
5999
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5815
6000
|
},
|
|
5816
6001
|
{
|
|
5817
6002
|
"id": "angular-trusted-html",
|
|
@@ -5841,7 +6026,7 @@
|
|
|
5841
6026
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5842
6027
|
"license": "free",
|
|
5843
6028
|
"license_note": null,
|
|
5844
|
-
"docs_url": "https://
|
|
6029
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5845
6030
|
},
|
|
5846
6031
|
{
|
|
5847
6032
|
"id": "nextjs-open-redirect",
|
|
@@ -5871,7 +6056,7 @@
|
|
|
5871
6056
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5872
6057
|
"license": "free",
|
|
5873
6058
|
"license_note": null,
|
|
5874
|
-
"docs_url": "https://
|
|
6059
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5875
6060
|
},
|
|
5876
6061
|
{
|
|
5877
6062
|
"id": "dom-document-write",
|
|
@@ -5901,7 +6086,7 @@
|
|
|
5901
6086
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5902
6087
|
"license": "free",
|
|
5903
6088
|
"license_note": null,
|
|
5904
|
-
"docs_url": "https://
|
|
6089
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5905
6090
|
},
|
|
5906
6091
|
{
|
|
5907
6092
|
"id": "jquery-html",
|
|
@@ -5931,7 +6116,7 @@
|
|
|
5931
6116
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5932
6117
|
"license": "free",
|
|
5933
6118
|
"license_note": null,
|
|
5934
|
-
"docs_url": "https://
|
|
6119
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5935
6120
|
},
|
|
5936
6121
|
{
|
|
5937
6122
|
"id": "route-send-file",
|
|
@@ -5961,7 +6146,7 @@
|
|
|
5961
6146
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5962
6147
|
"license": "free",
|
|
5963
6148
|
"license_note": null,
|
|
5964
|
-
"docs_url": "https://
|
|
6149
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5965
6150
|
},
|
|
5966
6151
|
{
|
|
5967
6152
|
"id": "webview-injection",
|
|
@@ -5991,7 +6176,7 @@
|
|
|
5991
6176
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5992
6177
|
"license": "free",
|
|
5993
6178
|
"license_note": null,
|
|
5994
|
-
"docs_url": "https://
|
|
6179
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5995
6180
|
},
|
|
5996
6181
|
{
|
|
5997
6182
|
"id": "prototype-pollution",
|
|
@@ -6021,7 +6206,7 @@
|
|
|
6021
6206
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6022
6207
|
"license": "free",
|
|
6023
6208
|
"license_note": null,
|
|
6024
|
-
"docs_url": "https://
|
|
6209
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6025
6210
|
},
|
|
6026
6211
|
{
|
|
6027
6212
|
"id": "zip-slip",
|
|
@@ -6051,7 +6236,7 @@
|
|
|
6051
6236
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6052
6237
|
"license": "free",
|
|
6053
6238
|
"license_note": null,
|
|
6054
|
-
"docs_url": "https://
|
|
6239
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6055
6240
|
},
|
|
6056
6241
|
{
|
|
6057
6242
|
"id": "nosql-injection",
|
|
@@ -6081,7 +6266,7 @@
|
|
|
6081
6266
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6082
6267
|
"license": "free",
|
|
6083
6268
|
"license_note": null,
|
|
6084
|
-
"docs_url": "https://
|
|
6269
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6085
6270
|
},
|
|
6086
6271
|
{
|
|
6087
6272
|
"id": "ssti",
|
|
@@ -6111,7 +6296,7 @@
|
|
|
6111
6296
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6112
6297
|
"license": "free",
|
|
6113
6298
|
"license_note": null,
|
|
6114
|
-
"docs_url": "https://
|
|
6299
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6115
6300
|
},
|
|
6116
6301
|
{
|
|
6117
6302
|
"id": "xxe",
|
|
@@ -6141,7 +6326,7 @@
|
|
|
6141
6326
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6142
6327
|
"license": "free",
|
|
6143
6328
|
"license_note": null,
|
|
6144
|
-
"docs_url": "https://
|
|
6329
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6145
6330
|
},
|
|
6146
6331
|
{
|
|
6147
6332
|
"id": "secret-pii-log",
|
|
@@ -6171,7 +6356,7 @@
|
|
|
6171
6356
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6172
6357
|
"license": "free",
|
|
6173
6358
|
"license_note": null,
|
|
6174
|
-
"docs_url": "https://
|
|
6359
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6175
6360
|
},
|
|
6176
6361
|
{
|
|
6177
6362
|
"id": "xpath-injection",
|
|
@@ -6201,7 +6386,7 @@
|
|
|
6201
6386
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6202
6387
|
"license": "free",
|
|
6203
6388
|
"license_note": null,
|
|
6204
|
-
"docs_url": "https://
|
|
6389
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6205
6390
|
},
|
|
6206
6391
|
{
|
|
6207
6392
|
"id": "llm-call-injection",
|
|
@@ -6231,7 +6416,7 @@
|
|
|
6231
6416
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6232
6417
|
"license": "free",
|
|
6233
6418
|
"license_note": null,
|
|
6234
|
-
"docs_url": "https://
|
|
6419
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6235
6420
|
}
|
|
6236
6421
|
],
|
|
6237
6422
|
"suppression_comments": {
|
|
@@ -6290,6 +6475,7 @@
|
|
|
6290
6475
|
"FALLOW_API_RETRY_DELAY": "Floor delay in seconds between HTTP retry attempts (default 2); a server-supplied Retry-After overrides it on 429 responses.",
|
|
6291
6476
|
"FALLOW_CACHE_DIR": "Directory for fallow's persistent analysis cache. Relative paths resolve from the project root and override cache.dir.",
|
|
6292
6477
|
"FALLOW_CACHE_MAX_SIZE": "Extraction cache size cap in megabytes (default 256). Wins over the cache.maxSizeMb config field.",
|
|
6478
|
+
"FALLOW_PACKAGE_BASELINES": "Set to false, 0, no or off to ignore workspaces.changedSince for every run of the process, like --no-package-baselines.",
|
|
6293
6479
|
"FALLOW_EXTENDS_TIMEOUT_SECS": "Timeout in seconds for fetching https:// configs referenced via the extends field (default 5).",
|
|
6294
6480
|
"FALLOW_COVERAGE": "Path to Istanbul coverage data (coverage-final.json) or raw V8 coverage (a NODE_V8_COVERAGE directory or one V8 JSON file) for accurate per-function CRAP scores. CLI --coverage flag overrides this; it wins over the health.coverage config field. Honored by the health, bare fallow, audit, and viz CLI commands and by the MCP audit and check_health tools on both their typed route and their CLI fallback, where the explicit coverage parameter overrides it. Viz reads it through the same precedence and has no coverage flag of its own.",
|
|
6295
6481
|
"FALLOW_COVERAGE_ROOT": "Absolute coverage-data path prefix for rebasing Istanbul paths in CI or containers. CLI --coverage-root flag overrides this; it wins over the health.coverageRoot config field. Honored by the health, bare fallow, audit, and viz CLI commands and by the MCP audit and check_health tools on both their typed route and their CLI fallback, where the explicit coverage_root parameter overrides it. Viz reads it through the same precedence and has no coverage flag of its own.",
|
|
@@ -6301,17 +6487,18 @@
|
|
|
6301
6487
|
"FALLOW_AUDIT_CACHE_MAX_AGE_DAYS": "GC threshold in days for reusable audit base-snapshot caches (default 30; 0 disables the sweep).",
|
|
6302
6488
|
"FALLOW_IMPACT_STORE_MAX_AGE_DAYS": "GC threshold in days for per-project fallow impact stores; a recorded run reclaims stores older than this (unset/0 keeps every store forever).",
|
|
6303
6489
|
"FALLOW_ROOT": "Project root used by the review-github/review-gitlab renderers to read source for suggestion blocks. Set it alongside --root when rendering review formats outside the bundled CI integrations.",
|
|
6304
|
-
"FALLOW_LICENSE": "License JWT (full string) for the paid
|
|
6490
|
+
"FALLOW_LICENSE": "License JWT (full string) for Fallow Cloud, the paid product; intended for shared CI runners.",
|
|
6305
6491
|
"FALLOW_LICENSE_PATH": "File path containing the license JWT.",
|
|
6306
6492
|
"FALLOW_LICENSE_SKEW_TOLERANCE_SECONDS": "Clock-skew tolerance applied to the license JWT's iat claim (default 86400).",
|
|
6307
6493
|
"FALLOW_COV_BIN": "Explicit path override for the fallow-cov runtime-coverage sidecar binary.",
|
|
6308
6494
|
"FALLOW_COV_BINARY_PATH": "Secondary explicit path override for the fallow-cov sidecar, checked after FALLOW_COV_BIN (air-gapped installs, distro-packaged sidecars, shared Docker images).",
|
|
6309
6495
|
"FALLOW_RUNTIME_COVERAGE_SOURCE": "Set to cloud to select cloud runtime coverage in fallow coverage analyze without passing --cloud.",
|
|
6310
6496
|
"FALLOW_REPO": "owner/repo fallback for fallow coverage analyze --cloud when --repo is not passed (otherwise parsed from the git origin remote).",
|
|
6311
|
-
"FALLOW_API_URL": "Base URL override for
|
|
6312
|
-
"FALLOW_API_KEY": "
|
|
6313
|
-
"FALLOW_CA_BUNDLE": "Path to a PEM certificate bundle for
|
|
6497
|
+
"FALLOW_API_URL": "Base URL override for Fallow Cloud API calls (license refresh, trial, coverage uploads).",
|
|
6498
|
+
"FALLOW_API_KEY": "Fallow Cloud bearer token for coverage upload commands, and the fallback bearer for fallow license refresh when the stored license JWT is missing or too stale.",
|
|
6499
|
+
"FALLOW_CA_BUNDLE": "Path to a PEM certificate bundle for Fallow Cloud and provider HTTP calls (replaces the default WebPKI roots).",
|
|
6314
6500
|
"FALLOW_UPDATE_CHECK": "Set to off/0/false to disable the human-TTY upgrade nudge and its background version check.",
|
|
6501
|
+
"FALLOW_CLAUDE_CODE_HINT": "Set to off/0/false/no/disabled to suppress the one-line Claude Code plugin hint on stderr. Fallow writes the hint only inside a Claude Code session (CLAUDECODE or CLAUDE_CODE_CHILD_SESSION), for human output without --quiet, outside CI, and when no Fallow plugin or skill is set up for the project. Default on.",
|
|
6315
6502
|
"FALLOW_SUGGESTIONS": "Set to off/0/false/no/disabled to suppress the next_steps[] array of read-only follow-up commands in JSON output (and the human Next: line). Useful for CI consumers that snapshot-diff raw --format json output. Default on.",
|
|
6316
6503
|
"FALLOW_TELEMETRY": "Opt-in telemetry mode: off, on, or inspect (print the payload to stderr without sending). Telemetry is off by default.",
|
|
6317
6504
|
"FALLOW_TELEMETRY_DISABLED": "Admin/fleet kill switch: truthy values hard-disable telemetry and refuse fallow telemetry enable.",
|
|
@@ -6820,7 +7007,7 @@
|
|
|
6820
7007
|
{
|
|
6821
7008
|
"name": "analyze",
|
|
6822
7009
|
"kind": "analysis",
|
|
6823
|
-
"description": "Full dead-code analysis: unused files, exports, types, dependencies, circular dependencies, and boundary violations",
|
|
7010
|
+
"description": "Full dead-code analysis: unused files, exports, types, dependencies, circular dependencies, and boundary violations, each with a stable finding_id",
|
|
6824
7011
|
"cli_command": "fallow dead-code --format json --quiet",
|
|
6825
7012
|
"key_params": [
|
|
6826
7013
|
"issue_types",
|
|
@@ -6838,7 +7025,7 @@
|
|
|
6838
7025
|
{
|
|
6839
7026
|
"name": "check_changed",
|
|
6840
7027
|
"kind": "analysis",
|
|
6841
|
-
"description": "Incremental dead-code analysis scoped to files changed since a git ref (ideal for PR review)",
|
|
7028
|
+
"description": "Incremental dead-code analysis scoped to files changed since a git ref (ideal for PR review); findings keep their finding_id",
|
|
6842
7029
|
"cli_command": "fallow dead-code --changed-since <ref> --format json --quiet",
|
|
6843
7030
|
"key_params": [
|
|
6844
7031
|
"since",
|
|
@@ -7041,7 +7228,7 @@
|
|
|
7041
7228
|
{
|
|
7042
7229
|
"name": "get_cloud_runtime_context",
|
|
7043
7230
|
"kind": "runtime-coverage",
|
|
7044
|
-
"description": "Runtime coverage pulled from
|
|
7231
|
+
"description": "Runtime coverage pulled from Fallow Cloud for a repository, merged into the same runtime_coverage block the local runtime-coverage tools return",
|
|
7045
7232
|
"cli_command": "fallow coverage analyze --cloud --repo <owner/repo> --format json --quiet",
|
|
7046
7233
|
"key_params": [
|
|
7047
7234
|
"repo",
|
|
@@ -7051,7 +7238,40 @@
|
|
|
7051
7238
|
"top"
|
|
7052
7239
|
],
|
|
7053
7240
|
"license": "freemium",
|
|
7054
|
-
"license_note": "Reading runtime coverage from
|
|
7241
|
+
"license_note": "Reading runtime coverage from Fallow Cloud needs a FALLOW_API_KEY for an org on the Team tier; the cloud refuses the request otherwise. No local license is involved.",
|
|
7242
|
+
"read_only": true,
|
|
7243
|
+
"code_mode_alias": null
|
|
7244
|
+
},
|
|
7245
|
+
{
|
|
7246
|
+
"name": "get_cloud_review_packet",
|
|
7247
|
+
"kind": "runtime-coverage",
|
|
7248
|
+
"description": "Production facts of a few changed files or functions, read from fallow cloud without the full runtime-context pull",
|
|
7249
|
+
"cli_command": "fallow coverage review-packet --repo <owner/repo> --file <path> --format json --quiet",
|
|
7250
|
+
"key_params": [
|
|
7251
|
+
"repo",
|
|
7252
|
+
"files",
|
|
7253
|
+
"functions",
|
|
7254
|
+
"period_days",
|
|
7255
|
+
"project_id"
|
|
7256
|
+
],
|
|
7257
|
+
"license": "freemium",
|
|
7258
|
+
"license_note": "Reading runtime coverage from Fallow Cloud needs a FALLOW_API_KEY for an org on the Team tier; the cloud refuses the request otherwise. No local license is involved.",
|
|
7259
|
+
"read_only": true,
|
|
7260
|
+
"code_mode_alias": null
|
|
7261
|
+
},
|
|
7262
|
+
{
|
|
7263
|
+
"name": "get_cloud_deployment_changes",
|
|
7264
|
+
"kind": "runtime-coverage",
|
|
7265
|
+
"description": "How production behavior changed between two deployments, read from the fallow cloud change report",
|
|
7266
|
+
"cli_command": "fallow coverage deployment-changes --repo <owner/repo> --sha <sha> --format json --quiet",
|
|
7267
|
+
"key_params": [
|
|
7268
|
+
"repo",
|
|
7269
|
+
"sha",
|
|
7270
|
+
"base",
|
|
7271
|
+
"change"
|
|
7272
|
+
],
|
|
7273
|
+
"license": "freemium",
|
|
7274
|
+
"license_note": "Reading runtime coverage from Fallow Cloud needs a FALLOW_API_KEY for an org on the Team tier; the cloud refuses the request otherwise. No local license is involved.",
|
|
7055
7275
|
"read_only": true,
|
|
7056
7276
|
"code_mode_alias": null
|
|
7057
7277
|
},
|
|
@@ -7454,7 +7674,7 @@
|
|
|
7454
7674
|
]
|
|
7455
7675
|
},
|
|
7456
7676
|
"plugins": {
|
|
7457
|
-
"count":
|
|
7677
|
+
"count": 133,
|
|
7458
7678
|
"note": "Built-in framework plugins, auto-activated when their enabler dependency is present; run fallow list --plugins for the set active in a specific project",
|
|
7459
7679
|
"names": [
|
|
7460
7680
|
"nextjs",
|
|
@@ -7474,6 +7694,7 @@
|
|
|
7474
7694
|
"expo-router",
|
|
7475
7695
|
"firebase",
|
|
7476
7696
|
"nestjs",
|
|
7697
|
+
"nestjs-trpc",
|
|
7477
7698
|
"adonis",
|
|
7478
7699
|
"docusaurus",
|
|
7479
7700
|
"gatsby",
|
|
@@ -7481,6 +7702,7 @@
|
|
|
7481
7702
|
"nitro",
|
|
7482
7703
|
"capacitor",
|
|
7483
7704
|
"ionic",
|
|
7705
|
+
"kibana",
|
|
7484
7706
|
"sanity",
|
|
7485
7707
|
"supabase",
|
|
7486
7708
|
"vitepress",
|
|
@@ -7493,6 +7715,7 @@
|
|
|
7493
7715
|
"convex",
|
|
7494
7716
|
"lit",
|
|
7495
7717
|
"lexical",
|
|
7718
|
+
"ag-ui",
|
|
7496
7719
|
"obsidian",
|
|
7497
7720
|
"content-collections",
|
|
7498
7721
|
"contentlayer",
|
|
@@ -7500,6 +7723,7 @@
|
|
|
7500
7723
|
"mintlify",
|
|
7501
7724
|
"velite",
|
|
7502
7725
|
"ember",
|
|
7726
|
+
"eve",
|
|
7503
7727
|
"vite",
|
|
7504
7728
|
"vscode",
|
|
7505
7729
|
"webpack",
|
|
@@ -7555,6 +7779,7 @@
|
|
|
7555
7779
|
"commitizen",
|
|
7556
7780
|
"commit-and-tag-version",
|
|
7557
7781
|
"semantic-release",
|
|
7782
|
+
"release-it",
|
|
7558
7783
|
"danger",
|
|
7559
7784
|
"hardhat",
|
|
7560
7785
|
"vercel",
|