fallow 3.31.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 +17 -10
- package/capabilities.json +267 -157
- package/issue-registry.json +190 -154
- package/package.json +12 -12
- package/schema.json +31 -1
- package/skills/fallow/SKILL.md +29 -9
- package/skills/fallow/references/cli-reference.md +83 -38
- package/skills/fallow/references/gotchas.md +21 -13
- package/skills/fallow/references/issue-types.md +3 -2
- package/skills/fallow/references/mcp.md +17 -5
- 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 +352 -24
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": [
|
|
@@ -241,6 +241,12 @@
|
|
|
241
241
|
"section"
|
|
242
242
|
]
|
|
243
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
|
+
},
|
|
244
250
|
{
|
|
245
251
|
"name": "--performance",
|
|
246
252
|
"type": "bool",
|
|
@@ -493,6 +499,26 @@
|
|
|
493
499
|
"false"
|
|
494
500
|
]
|
|
495
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
|
+
},
|
|
496
522
|
{
|
|
497
523
|
"name": "--score",
|
|
498
524
|
"type": "bool",
|
|
@@ -513,6 +539,12 @@
|
|
|
513
539
|
"false"
|
|
514
540
|
]
|
|
515
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
|
+
},
|
|
516
548
|
{
|
|
517
549
|
"name": "--save-snapshot",
|
|
518
550
|
"type": "string",
|
|
@@ -715,6 +747,16 @@
|
|
|
715
747
|
"false"
|
|
716
748
|
]
|
|
717
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
|
+
},
|
|
718
760
|
{
|
|
719
761
|
"name": "--unused-component-emits",
|
|
720
762
|
"type": "bool",
|
|
@@ -1481,6 +1523,26 @@
|
|
|
1481
1523
|
"false"
|
|
1482
1524
|
]
|
|
1483
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
|
+
},
|
|
1484
1546
|
{
|
|
1485
1547
|
"name": "--top",
|
|
1486
1548
|
"type": "string",
|
|
@@ -1730,6 +1792,12 @@
|
|
|
1730
1792
|
"false"
|
|
1731
1793
|
]
|
|
1732
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
|
+
},
|
|
1733
1801
|
{
|
|
1734
1802
|
"name": "--coverage",
|
|
1735
1803
|
"type": "string",
|
|
@@ -2194,7 +2262,7 @@
|
|
|
2194
2262
|
},
|
|
2195
2263
|
{
|
|
2196
2264
|
"name": "report",
|
|
2197
|
-
"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",
|
|
2198
2266
|
"flags": [
|
|
2199
2267
|
{
|
|
2200
2268
|
"name": "--from",
|
|
@@ -2410,7 +2478,7 @@
|
|
|
2410
2478
|
"note": null,
|
|
2411
2479
|
"license": "free",
|
|
2412
2480
|
"license_note": null,
|
|
2413
|
-
"docs_url": "https://
|
|
2481
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-files"
|
|
2414
2482
|
},
|
|
2415
2483
|
{
|
|
2416
2484
|
"id": "unused-export",
|
|
@@ -2447,7 +2515,7 @@
|
|
|
2447
2515
|
"note": null,
|
|
2448
2516
|
"license": "free",
|
|
2449
2517
|
"license_note": null,
|
|
2450
|
-
"docs_url": "https://
|
|
2518
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-exports"
|
|
2451
2519
|
},
|
|
2452
2520
|
{
|
|
2453
2521
|
"id": "unused-type",
|
|
@@ -2481,7 +2549,7 @@
|
|
|
2481
2549
|
"note": null,
|
|
2482
2550
|
"license": "free",
|
|
2483
2551
|
"license_note": null,
|
|
2484
|
-
"docs_url": "https://
|
|
2552
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-types"
|
|
2485
2553
|
},
|
|
2486
2554
|
{
|
|
2487
2555
|
"id": "private-type-leak",
|
|
@@ -2518,7 +2586,7 @@
|
|
|
2518
2586
|
"note": "Opt-in API hygiene check; the rule defaults to off",
|
|
2519
2587
|
"license": "free",
|
|
2520
2588
|
"license_note": null,
|
|
2521
|
-
"docs_url": "https://
|
|
2589
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#private-type-leaks"
|
|
2522
2590
|
},
|
|
2523
2591
|
{
|
|
2524
2592
|
"id": "deprecated-export-in-use",
|
|
@@ -2555,7 +2623,7 @@
|
|
|
2555
2623
|
"note": "Opt-in migration sweep; the rule defaults to off",
|
|
2556
2624
|
"license": "free",
|
|
2557
2625
|
"license_note": null,
|
|
2558
|
-
"docs_url": "https://
|
|
2626
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#deprecated-exports-in-use"
|
|
2559
2627
|
},
|
|
2560
2628
|
{
|
|
2561
2629
|
"id": "unused-dependency",
|
|
@@ -2592,7 +2660,7 @@
|
|
|
2592
2660
|
"note": "--unused-deps controls unused-dependency, unused-dev-dependency, unused-optional-dependency, type-only-dependency, and test-only-dependency",
|
|
2593
2661
|
"license": "free",
|
|
2594
2662
|
"license_note": null,
|
|
2595
|
-
"docs_url": "https://
|
|
2663
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-dependencies"
|
|
2596
2664
|
},
|
|
2597
2665
|
{
|
|
2598
2666
|
"id": "unused-dev-dependency",
|
|
@@ -2632,7 +2700,7 @@
|
|
|
2632
2700
|
"note": "--unused-deps controls unused-dependency, unused-dev-dependency, unused-optional-dependency, type-only-dependency, and test-only-dependency",
|
|
2633
2701
|
"license": "free",
|
|
2634
2702
|
"license_note": null,
|
|
2635
|
-
"docs_url": "https://
|
|
2703
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-devdependencies"
|
|
2636
2704
|
},
|
|
2637
2705
|
{
|
|
2638
2706
|
"id": "unused-optional-dependency",
|
|
@@ -2672,7 +2740,7 @@
|
|
|
2672
2740
|
"note": "--unused-deps controls unused-dependency, unused-dev-dependency, unused-optional-dependency, type-only-dependency, and test-only-dependency",
|
|
2673
2741
|
"license": "free",
|
|
2674
2742
|
"license_note": null,
|
|
2675
|
-
"docs_url": "https://
|
|
2743
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-optionaldependencies"
|
|
2676
2744
|
},
|
|
2677
2745
|
{
|
|
2678
2746
|
"id": "type-only-dependency",
|
|
@@ -2709,7 +2777,7 @@
|
|
|
2709
2777
|
"note": "Only reported in --production mode; --unused-deps scopes it together with the other dependency kinds",
|
|
2710
2778
|
"license": "free",
|
|
2711
2779
|
"license_note": null,
|
|
2712
|
-
"docs_url": "https://
|
|
2780
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#type-only-dependencies"
|
|
2713
2781
|
},
|
|
2714
2782
|
{
|
|
2715
2783
|
"id": "test-only-dependency",
|
|
@@ -2746,7 +2814,7 @@
|
|
|
2746
2814
|
"note": "Not reported in --production mode (test files are excluded there); --unused-deps scopes it together with the other dependency kinds",
|
|
2747
2815
|
"license": "free",
|
|
2748
2816
|
"license_note": null,
|
|
2749
|
-
"docs_url": "https://
|
|
2817
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#test-only-dependencies"
|
|
2750
2818
|
},
|
|
2751
2819
|
{
|
|
2752
2820
|
"id": "dev-dependency-in-production",
|
|
@@ -2783,7 +2851,7 @@
|
|
|
2783
2851
|
"note": null,
|
|
2784
2852
|
"license": "free",
|
|
2785
2853
|
"license_note": null,
|
|
2786
|
-
"docs_url": "https://
|
|
2854
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#dev-dependencies-in-production"
|
|
2787
2855
|
},
|
|
2788
2856
|
{
|
|
2789
2857
|
"id": "unused-enum-member",
|
|
@@ -2820,7 +2888,7 @@
|
|
|
2820
2888
|
"note": null,
|
|
2821
2889
|
"license": "free",
|
|
2822
2890
|
"license_note": null,
|
|
2823
|
-
"docs_url": "https://
|
|
2891
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-enum-members"
|
|
2824
2892
|
},
|
|
2825
2893
|
{
|
|
2826
2894
|
"id": "unused-class-member",
|
|
@@ -2857,7 +2925,7 @@
|
|
|
2857
2925
|
"note": null,
|
|
2858
2926
|
"license": "free",
|
|
2859
2927
|
"license_note": null,
|
|
2860
|
-
"docs_url": "https://
|
|
2928
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-class-members"
|
|
2861
2929
|
},
|
|
2862
2930
|
{
|
|
2863
2931
|
"id": "unused-store-member",
|
|
@@ -2896,7 +2964,7 @@
|
|
|
2896
2964
|
"note": null,
|
|
2897
2965
|
"license": "free",
|
|
2898
2966
|
"license_note": null,
|
|
2899
|
-
"docs_url": "https://
|
|
2967
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-store-members"
|
|
2900
2968
|
},
|
|
2901
2969
|
{
|
|
2902
2970
|
"id": "unresolved-import",
|
|
@@ -2933,7 +3001,7 @@
|
|
|
2933
3001
|
"note": null,
|
|
2934
3002
|
"license": "free",
|
|
2935
3003
|
"license_note": null,
|
|
2936
|
-
"docs_url": "https://
|
|
3004
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unresolved-imports"
|
|
2937
3005
|
},
|
|
2938
3006
|
{
|
|
2939
3007
|
"id": "unlisted-dependency",
|
|
@@ -2970,7 +3038,7 @@
|
|
|
2970
3038
|
"note": null,
|
|
2971
3039
|
"license": "free",
|
|
2972
3040
|
"license_note": null,
|
|
2973
|
-
"docs_url": "https://
|
|
3041
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unlisted-dependencies"
|
|
2974
3042
|
},
|
|
2975
3043
|
{
|
|
2976
3044
|
"id": "duplicate-export",
|
|
@@ -3007,7 +3075,7 @@
|
|
|
3007
3075
|
"note": "fallow fix can add an ignoreExports rule to the fallow config instead of editing source",
|
|
3008
3076
|
"license": "free",
|
|
3009
3077
|
"license_note": null,
|
|
3010
|
-
"docs_url": "https://
|
|
3078
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#duplicate-exports"
|
|
3011
3079
|
},
|
|
3012
3080
|
{
|
|
3013
3081
|
"id": "circular-dependency",
|
|
@@ -3046,7 +3114,7 @@
|
|
|
3046
3114
|
"note": null,
|
|
3047
3115
|
"license": "free",
|
|
3048
3116
|
"license_note": null,
|
|
3049
|
-
"docs_url": "https://
|
|
3117
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#circular-dependencies"
|
|
3050
3118
|
},
|
|
3051
3119
|
{
|
|
3052
3120
|
"id": "re-export-cycle",
|
|
@@ -3087,7 +3155,7 @@
|
|
|
3087
3155
|
"note": null,
|
|
3088
3156
|
"license": "free",
|
|
3089
3157
|
"license_note": null,
|
|
3090
|
-
"docs_url": "https://
|
|
3158
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#re-export-cycles"
|
|
3091
3159
|
},
|
|
3092
3160
|
{
|
|
3093
3161
|
"id": "package-cycle",
|
|
@@ -3126,7 +3194,7 @@
|
|
|
3126
3194
|
"note": "Requires a workspace with two or more packages",
|
|
3127
3195
|
"license": "free",
|
|
3128
3196
|
"license_note": null,
|
|
3129
|
-
"docs_url": "https://
|
|
3197
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#package-cycles"
|
|
3130
3198
|
},
|
|
3131
3199
|
{
|
|
3132
3200
|
"id": "boundary-violation",
|
|
@@ -3163,7 +3231,7 @@
|
|
|
3163
3231
|
"note": "Requires configured boundary zones (boundaries config)",
|
|
3164
3232
|
"license": "free",
|
|
3165
3233
|
"license_note": null,
|
|
3166
|
-
"docs_url": "https://
|
|
3234
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#boundary-violations"
|
|
3167
3235
|
},
|
|
3168
3236
|
{
|
|
3169
3237
|
"id": "boundary-coverage",
|
|
@@ -3199,7 +3267,7 @@
|
|
|
3199
3267
|
"note": "Requires boundaries.coverage.requireAllFiles",
|
|
3200
3268
|
"license": "free",
|
|
3201
3269
|
"license_note": null,
|
|
3202
|
-
"docs_url": "https://
|
|
3270
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#boundary-violations"
|
|
3203
3271
|
},
|
|
3204
3272
|
{
|
|
3205
3273
|
"id": "boundary-call-violation",
|
|
@@ -3236,14 +3304,14 @@
|
|
|
3236
3304
|
"note": "Requires boundaries.calls.forbidden patterns",
|
|
3237
3305
|
"license": "free",
|
|
3238
3306
|
"license_note": null,
|
|
3239
|
-
"docs_url": "https://
|
|
3307
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#boundary-violations"
|
|
3240
3308
|
},
|
|
3241
3309
|
{
|
|
3242
3310
|
"id": "policy-violation",
|
|
3243
3311
|
"rule_id": "fallow/policy-violation",
|
|
3244
3312
|
"command": "dead-code",
|
|
3245
3313
|
"category": "Policy",
|
|
3246
|
-
"description": "
|
|
3314
|
+
"description": "Usage violates a configured rule-pack policy",
|
|
3247
3315
|
"label": "Policy Violations",
|
|
3248
3316
|
"config_key": "policy-violation",
|
|
3249
3317
|
"registry_index": 24,
|
|
@@ -3272,7 +3340,7 @@
|
|
|
3272
3340
|
"note": "Requires a configured rule pack (rulePacks config)",
|
|
3273
3341
|
"license": "free",
|
|
3274
3342
|
"license_note": null,
|
|
3275
|
-
"docs_url": "https://
|
|
3343
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#policy-violations"
|
|
3276
3344
|
},
|
|
3277
3345
|
{
|
|
3278
3346
|
"id": "stale-suppression",
|
|
@@ -3282,7 +3350,7 @@
|
|
|
3282
3350
|
"description": "Suppression comment or tag no longer matches any issue",
|
|
3283
3351
|
"label": "Stale Suppressions",
|
|
3284
3352
|
"config_key": "stale-suppressions",
|
|
3285
|
-
"registry_index":
|
|
3353
|
+
"registry_index": 40,
|
|
3286
3354
|
"aliases": [],
|
|
3287
3355
|
"lsp": true,
|
|
3288
3356
|
"filter_flag": "--stale-suppressions",
|
|
@@ -3308,7 +3376,7 @@
|
|
|
3308
3376
|
"note": "Fix by removing the stale suppression marker itself",
|
|
3309
3377
|
"license": "free",
|
|
3310
3378
|
"license_note": null,
|
|
3311
|
-
"docs_url": "https://
|
|
3379
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#stale-suppressions"
|
|
3312
3380
|
},
|
|
3313
3381
|
{
|
|
3314
3382
|
"id": "missing-suppression-reason",
|
|
@@ -3318,7 +3386,7 @@
|
|
|
3318
3386
|
"description": "Suppression comment omits a required reason",
|
|
3319
3387
|
"label": "Missing Suppression Reasons",
|
|
3320
3388
|
"config_key": "require-suppression-reason",
|
|
3321
|
-
"registry_index":
|
|
3389
|
+
"registry_index": 41,
|
|
3322
3390
|
"aliases": [
|
|
3323
3391
|
"missing-suppression-reasons"
|
|
3324
3392
|
],
|
|
@@ -3340,7 +3408,7 @@
|
|
|
3340
3408
|
"note": null,
|
|
3341
3409
|
"license": "free",
|
|
3342
3410
|
"license_note": null,
|
|
3343
|
-
"docs_url": "https://
|
|
3411
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#stale-suppressions"
|
|
3344
3412
|
},
|
|
3345
3413
|
{
|
|
3346
3414
|
"id": "unused-catalog-entry",
|
|
@@ -3350,7 +3418,7 @@
|
|
|
3350
3418
|
"description": "Catalog entry not referenced by any workspace package",
|
|
3351
3419
|
"label": "Unused Catalog Entries",
|
|
3352
3420
|
"config_key": "unused-catalog-entries",
|
|
3353
|
-
"registry_index":
|
|
3421
|
+
"registry_index": 42,
|
|
3354
3422
|
"aliases": [
|
|
3355
3423
|
"catalog",
|
|
3356
3424
|
"unused-catalog-entries"
|
|
@@ -3380,7 +3448,7 @@
|
|
|
3380
3448
|
"note": null,
|
|
3381
3449
|
"license": "free",
|
|
3382
3450
|
"license_note": null,
|
|
3383
|
-
"docs_url": "https://
|
|
3451
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-catalog-entries"
|
|
3384
3452
|
},
|
|
3385
3453
|
{
|
|
3386
3454
|
"id": "empty-catalog-group",
|
|
@@ -3390,7 +3458,7 @@
|
|
|
3390
3458
|
"description": "Named catalog group has no entries",
|
|
3391
3459
|
"label": "Empty Catalog Groups",
|
|
3392
3460
|
"config_key": "empty-catalog-groups",
|
|
3393
|
-
"registry_index":
|
|
3461
|
+
"registry_index": 43,
|
|
3394
3462
|
"aliases": [
|
|
3395
3463
|
"empty-catalog",
|
|
3396
3464
|
"empty-catalog-groups"
|
|
@@ -3420,7 +3488,7 @@
|
|
|
3420
3488
|
"note": null,
|
|
3421
3489
|
"license": "free",
|
|
3422
3490
|
"license_note": null,
|
|
3423
|
-
"docs_url": "https://
|
|
3491
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#empty-catalog-groups"
|
|
3424
3492
|
},
|
|
3425
3493
|
{
|
|
3426
3494
|
"id": "unresolved-catalog-reference",
|
|
@@ -3430,7 +3498,7 @@
|
|
|
3430
3498
|
"description": "package.json references a catalog that does not declare the package",
|
|
3431
3499
|
"label": "Unresolved Catalog References",
|
|
3432
3500
|
"config_key": "unresolved-catalog-references",
|
|
3433
|
-
"registry_index":
|
|
3501
|
+
"registry_index": 44,
|
|
3434
3502
|
"aliases": [
|
|
3435
3503
|
"unresolved-catalog",
|
|
3436
3504
|
"unresolved-catalog-references"
|
|
@@ -3460,7 +3528,7 @@
|
|
|
3460
3528
|
"note": null,
|
|
3461
3529
|
"license": "free",
|
|
3462
3530
|
"license_note": null,
|
|
3463
|
-
"docs_url": "https://
|
|
3531
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unresolved-catalog-references"
|
|
3464
3532
|
},
|
|
3465
3533
|
{
|
|
3466
3534
|
"id": "unused-dependency-override",
|
|
@@ -3470,7 +3538,7 @@
|
|
|
3470
3538
|
"description": "Package-manager override target is not declared or resolved",
|
|
3471
3539
|
"label": "Unused Dependency Overrides",
|
|
3472
3540
|
"config_key": "unused-dependency-overrides",
|
|
3473
|
-
"registry_index":
|
|
3541
|
+
"registry_index": 45,
|
|
3474
3542
|
"aliases": [
|
|
3475
3543
|
"unused-dependency-overrides",
|
|
3476
3544
|
"unused-override",
|
|
@@ -3501,7 +3569,7 @@
|
|
|
3501
3569
|
"note": null,
|
|
3502
3570
|
"license": "free",
|
|
3503
3571
|
"license_note": null,
|
|
3504
|
-
"docs_url": "https://
|
|
3572
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-dependency-overrides"
|
|
3505
3573
|
},
|
|
3506
3574
|
{
|
|
3507
3575
|
"id": "misconfigured-dependency-override",
|
|
@@ -3511,7 +3579,7 @@
|
|
|
3511
3579
|
"description": "Package-manager override has an unparsable key or value",
|
|
3512
3580
|
"label": "Misconfigured Dependency Overrides",
|
|
3513
3581
|
"config_key": "misconfigured-dependency-overrides",
|
|
3514
|
-
"registry_index":
|
|
3582
|
+
"registry_index": 46,
|
|
3515
3583
|
"aliases": [
|
|
3516
3584
|
"misconfigured-dependency-overrides",
|
|
3517
3585
|
"misconfigured-override",
|
|
@@ -3542,7 +3610,7 @@
|
|
|
3542
3610
|
"note": null,
|
|
3543
3611
|
"license": "free",
|
|
3544
3612
|
"license_note": null,
|
|
3545
|
-
"docs_url": "https://
|
|
3613
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#misconfigured-dependency-overrides"
|
|
3546
3614
|
},
|
|
3547
3615
|
{
|
|
3548
3616
|
"id": "invalid-client-export",
|
|
@@ -3580,7 +3648,7 @@
|
|
|
3580
3648
|
"note": "Requires the project to declare next",
|
|
3581
3649
|
"license": "free",
|
|
3582
3650
|
"license_note": null,
|
|
3583
|
-
"docs_url": "https://
|
|
3651
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#invalid-client-exports"
|
|
3584
3652
|
},
|
|
3585
3653
|
{
|
|
3586
3654
|
"id": "mixed-client-server-barrel",
|
|
@@ -3616,7 +3684,7 @@
|
|
|
3616
3684
|
"note": "Requires the project to declare next",
|
|
3617
3685
|
"license": "free",
|
|
3618
3686
|
"license_note": null,
|
|
3619
|
-
"docs_url": "https://
|
|
3687
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#mixed-client-server-barrels"
|
|
3620
3688
|
},
|
|
3621
3689
|
{
|
|
3622
3690
|
"id": "misplaced-directive",
|
|
@@ -3652,7 +3720,7 @@
|
|
|
3652
3720
|
"note": "Requires the project to declare next",
|
|
3653
3721
|
"license": "free",
|
|
3654
3722
|
"license_note": null,
|
|
3655
|
-
"docs_url": "https://
|
|
3723
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#misplaced-directives"
|
|
3656
3724
|
},
|
|
3657
3725
|
{
|
|
3658
3726
|
"id": "unprovided-inject",
|
|
@@ -3670,7 +3738,7 @@
|
|
|
3670
3738
|
"filter_flag": "--unprovided-injects",
|
|
3671
3739
|
"result_key": "unprovided_injects",
|
|
3672
3740
|
"summary_label": "Unprovided injects",
|
|
3673
|
-
"summary_docs_anchor": "unprovided-
|
|
3741
|
+
"summary_docs_anchor": "unprovided-injects",
|
|
3674
3742
|
"sarif_rule_ids": [
|
|
3675
3743
|
"fallow/unprovided-inject"
|
|
3676
3744
|
],
|
|
@@ -3688,7 +3756,7 @@
|
|
|
3688
3756
|
"note": null,
|
|
3689
3757
|
"license": "free",
|
|
3690
3758
|
"license_note": null,
|
|
3691
|
-
"docs_url": "https://
|
|
3759
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unprovided-injects"
|
|
3692
3760
|
},
|
|
3693
3761
|
{
|
|
3694
3762
|
"id": "unrendered-component",
|
|
@@ -3706,7 +3774,7 @@
|
|
|
3706
3774
|
"filter_flag": "--unrendered-components",
|
|
3707
3775
|
"result_key": "unrendered_components",
|
|
3708
3776
|
"summary_label": "Unrendered components",
|
|
3709
|
-
"summary_docs_anchor": "unrendered-
|
|
3777
|
+
"summary_docs_anchor": "unrendered-components",
|
|
3710
3778
|
"sarif_rule_ids": [
|
|
3711
3779
|
"fallow/unrendered-component"
|
|
3712
3780
|
],
|
|
@@ -3724,7 +3792,43 @@
|
|
|
3724
3792
|
"note": null,
|
|
3725
3793
|
"license": "free",
|
|
3726
3794
|
"license_note": null,
|
|
3727
|
-
"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"
|
|
3728
3832
|
},
|
|
3729
3833
|
{
|
|
3730
3834
|
"id": "unused-component-prop",
|
|
@@ -3742,7 +3846,7 @@
|
|
|
3742
3846
|
"filter_flag": "--unused-component-props",
|
|
3743
3847
|
"result_key": "unused_component_props",
|
|
3744
3848
|
"summary_label": "Unused component props",
|
|
3745
|
-
"summary_docs_anchor": "unused-component-
|
|
3849
|
+
"summary_docs_anchor": "unused-component-props",
|
|
3746
3850
|
"sarif_rule_ids": [
|
|
3747
3851
|
"fallow/unused-component-prop"
|
|
3748
3852
|
],
|
|
@@ -3760,7 +3864,7 @@
|
|
|
3760
3864
|
"note": null,
|
|
3761
3865
|
"license": "free",
|
|
3762
3866
|
"license_note": null,
|
|
3763
|
-
"docs_url": "https://
|
|
3867
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-component-props"
|
|
3764
3868
|
},
|
|
3765
3869
|
{
|
|
3766
3870
|
"id": "unused-component-emit",
|
|
@@ -3770,7 +3874,7 @@
|
|
|
3770
3874
|
"description": "A Vue <script setup> defineEmits event is emitted nowhere in its own component",
|
|
3771
3875
|
"label": "Unused Component Emits",
|
|
3772
3876
|
"config_key": "unused-component-emits",
|
|
3773
|
-
"registry_index":
|
|
3877
|
+
"registry_index": 32,
|
|
3774
3878
|
"aliases": [
|
|
3775
3879
|
"unused-component-emits"
|
|
3776
3880
|
],
|
|
@@ -3778,7 +3882,7 @@
|
|
|
3778
3882
|
"filter_flag": "--unused-component-emits",
|
|
3779
3883
|
"result_key": "unused_component_emits",
|
|
3780
3884
|
"summary_label": "Unused component emits",
|
|
3781
|
-
"summary_docs_anchor": "unused-component-
|
|
3885
|
+
"summary_docs_anchor": "unused-component-emits",
|
|
3782
3886
|
"sarif_rule_ids": [
|
|
3783
3887
|
"fallow/unused-component-emit"
|
|
3784
3888
|
],
|
|
@@ -3796,7 +3900,7 @@
|
|
|
3796
3900
|
"note": null,
|
|
3797
3901
|
"license": "free",
|
|
3798
3902
|
"license_note": null,
|
|
3799
|
-
"docs_url": "https://
|
|
3903
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-component-emits"
|
|
3800
3904
|
},
|
|
3801
3905
|
{
|
|
3802
3906
|
"id": "unused-component-input",
|
|
@@ -3806,7 +3910,7 @@
|
|
|
3806
3910
|
"description": "An Angular @Input() / signal input() / model() input is read nowhere in its own component",
|
|
3807
3911
|
"label": "Unused Component Inputs",
|
|
3808
3912
|
"config_key": "unused-component-inputs",
|
|
3809
|
-
"registry_index":
|
|
3913
|
+
"registry_index": 33,
|
|
3810
3914
|
"aliases": [
|
|
3811
3915
|
"unused-component-inputs"
|
|
3812
3916
|
],
|
|
@@ -3814,7 +3918,7 @@
|
|
|
3814
3918
|
"filter_flag": "--unused-component-inputs",
|
|
3815
3919
|
"result_key": "unused_component_inputs",
|
|
3816
3920
|
"summary_label": "Unused component inputs",
|
|
3817
|
-
"summary_docs_anchor": "unused-component-
|
|
3921
|
+
"summary_docs_anchor": "unused-component-inputs",
|
|
3818
3922
|
"sarif_rule_ids": [
|
|
3819
3923
|
"fallow/unused-component-input"
|
|
3820
3924
|
],
|
|
@@ -3832,7 +3936,7 @@
|
|
|
3832
3936
|
"note": null,
|
|
3833
3937
|
"license": "free",
|
|
3834
3938
|
"license_note": null,
|
|
3835
|
-
"docs_url": "https://
|
|
3939
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-component-inputs"
|
|
3836
3940
|
},
|
|
3837
3941
|
{
|
|
3838
3942
|
"id": "unused-component-output",
|
|
@@ -3842,7 +3946,7 @@
|
|
|
3842
3946
|
"description": "An Angular @Output() / signal output() output is emitted nowhere in its own component",
|
|
3843
3947
|
"label": "Unused Component Outputs",
|
|
3844
3948
|
"config_key": "unused-component-outputs",
|
|
3845
|
-
"registry_index":
|
|
3949
|
+
"registry_index": 34,
|
|
3846
3950
|
"aliases": [
|
|
3847
3951
|
"unused-component-outputs"
|
|
3848
3952
|
],
|
|
@@ -3850,7 +3954,7 @@
|
|
|
3850
3954
|
"filter_flag": "--unused-component-outputs",
|
|
3851
3955
|
"result_key": "unused_component_outputs",
|
|
3852
3956
|
"summary_label": "Unused component outputs",
|
|
3853
|
-
"summary_docs_anchor": "unused-component-
|
|
3957
|
+
"summary_docs_anchor": "unused-component-outputs",
|
|
3854
3958
|
"sarif_rule_ids": [
|
|
3855
3959
|
"fallow/unused-component-output"
|
|
3856
3960
|
],
|
|
@@ -3868,7 +3972,7 @@
|
|
|
3868
3972
|
"note": null,
|
|
3869
3973
|
"license": "free",
|
|
3870
3974
|
"license_note": null,
|
|
3871
|
-
"docs_url": "https://
|
|
3975
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-component-outputs"
|
|
3872
3976
|
},
|
|
3873
3977
|
{
|
|
3874
3978
|
"id": "unused-svelte-event",
|
|
@@ -3878,7 +3982,7 @@
|
|
|
3878
3982
|
"description": "A Svelte component dispatches a createEventDispatcher event whose name is listened to nowhere in the project",
|
|
3879
3983
|
"label": "Unused Svelte Events",
|
|
3880
3984
|
"config_key": "unused-svelte-events",
|
|
3881
|
-
"registry_index":
|
|
3985
|
+
"registry_index": 35,
|
|
3882
3986
|
"aliases": [
|
|
3883
3987
|
"unused-svelte-events"
|
|
3884
3988
|
],
|
|
@@ -3886,7 +3990,7 @@
|
|
|
3886
3990
|
"filter_flag": "--unused-svelte-events",
|
|
3887
3991
|
"result_key": "unused_svelte_events",
|
|
3888
3992
|
"summary_label": "Unused Svelte events",
|
|
3889
|
-
"summary_docs_anchor": "unused-svelte-
|
|
3993
|
+
"summary_docs_anchor": "unused-svelte-events",
|
|
3890
3994
|
"sarif_rule_ids": [
|
|
3891
3995
|
"fallow/unused-svelte-event"
|
|
3892
3996
|
],
|
|
@@ -3904,7 +4008,7 @@
|
|
|
3904
4008
|
"note": null,
|
|
3905
4009
|
"license": "free",
|
|
3906
4010
|
"license_note": null,
|
|
3907
|
-
"docs_url": "https://
|
|
4011
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-svelte-events"
|
|
3908
4012
|
},
|
|
3909
4013
|
{
|
|
3910
4014
|
"id": "unused-server-action",
|
|
@@ -3914,7 +4018,7 @@
|
|
|
3914
4018
|
"description": "A Next.js Server Action exported from a \"use server\" file is referenced by no code in the project",
|
|
3915
4019
|
"label": "Unused Server Actions",
|
|
3916
4020
|
"config_key": "unused-server-actions",
|
|
3917
|
-
"registry_index":
|
|
4021
|
+
"registry_index": 36,
|
|
3918
4022
|
"aliases": [
|
|
3919
4023
|
"unused-server-actions"
|
|
3920
4024
|
],
|
|
@@ -3922,7 +4026,7 @@
|
|
|
3922
4026
|
"filter_flag": "--unused-server-actions",
|
|
3923
4027
|
"result_key": "unused_server_actions",
|
|
3924
4028
|
"summary_label": "Unused server actions",
|
|
3925
|
-
"summary_docs_anchor": "unused-server-
|
|
4029
|
+
"summary_docs_anchor": "unused-server-actions",
|
|
3926
4030
|
"sarif_rule_ids": [
|
|
3927
4031
|
"fallow/unused-server-action"
|
|
3928
4032
|
],
|
|
@@ -3940,7 +4044,7 @@
|
|
|
3940
4044
|
"note": null,
|
|
3941
4045
|
"license": "free",
|
|
3942
4046
|
"license_note": null,
|
|
3943
|
-
"docs_url": "https://
|
|
4047
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-server-actions"
|
|
3944
4048
|
},
|
|
3945
4049
|
{
|
|
3946
4050
|
"id": "unused-load-data-key",
|
|
@@ -3950,7 +4054,7 @@
|
|
|
3950
4054
|
"description": "A SvelteKit load() return-object key is read by no consumer",
|
|
3951
4055
|
"label": "Unused Load Data Keys",
|
|
3952
4056
|
"config_key": "unused-load-data-keys",
|
|
3953
|
-
"registry_index":
|
|
4057
|
+
"registry_index": 37,
|
|
3954
4058
|
"aliases": [
|
|
3955
4059
|
"unused-load-data-keys"
|
|
3956
4060
|
],
|
|
@@ -3958,7 +4062,7 @@
|
|
|
3958
4062
|
"filter_flag": "--unused-load-data-keys",
|
|
3959
4063
|
"result_key": "unused_load_data_keys",
|
|
3960
4064
|
"summary_label": "Unused load data keys",
|
|
3961
|
-
"summary_docs_anchor": "unused-load-data-
|
|
4065
|
+
"summary_docs_anchor": "unused-load-data-keys",
|
|
3962
4066
|
"sarif_rule_ids": [
|
|
3963
4067
|
"fallow/unused-load-data-key"
|
|
3964
4068
|
],
|
|
@@ -3976,7 +4080,7 @@
|
|
|
3976
4080
|
"note": null,
|
|
3977
4081
|
"license": "free",
|
|
3978
4082
|
"license_note": null,
|
|
3979
|
-
"docs_url": "https://
|
|
4083
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-load-data-keys"
|
|
3980
4084
|
},
|
|
3981
4085
|
{
|
|
3982
4086
|
"id": "prop-drilling",
|
|
@@ -3986,7 +4090,7 @@
|
|
|
3986
4090
|
"description": "A React/Preact prop is forwarded unchanged through 3+ pass-through components to a distant consumer",
|
|
3987
4091
|
"label": "Prop Drilling",
|
|
3988
4092
|
"config_key": "prop-drilling",
|
|
3989
|
-
"registry_index":
|
|
4093
|
+
"registry_index": 52,
|
|
3990
4094
|
"aliases": [],
|
|
3991
4095
|
"lsp": true,
|
|
3992
4096
|
"filter_flag": null,
|
|
@@ -4008,7 +4112,7 @@
|
|
|
4008
4112
|
"note": "Opt-in: set rules.prop-drilling to warn or error to enable. Defaults to off.",
|
|
4009
4113
|
"license": "free",
|
|
4010
4114
|
"license_note": null,
|
|
4011
|
-
"docs_url": "https://
|
|
4115
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#prop-drilling"
|
|
4012
4116
|
},
|
|
4013
4117
|
{
|
|
4014
4118
|
"id": "thin-wrapper",
|
|
@@ -4018,7 +4122,7 @@
|
|
|
4018
4122
|
"description": "A React/Preact component whose whole body is a single spread-forwarded child render (a candidate for inlining)",
|
|
4019
4123
|
"label": "Thin Wrappers",
|
|
4020
4124
|
"config_key": "thin-wrapper",
|
|
4021
|
-
"registry_index":
|
|
4125
|
+
"registry_index": 53,
|
|
4022
4126
|
"aliases": [
|
|
4023
4127
|
"thin-wrappers"
|
|
4024
4128
|
],
|
|
@@ -4042,7 +4146,7 @@
|
|
|
4042
4146
|
"note": "Opt-in: set rules.thin-wrapper to warn or error to enable. Defaults to off.",
|
|
4043
4147
|
"license": "free",
|
|
4044
4148
|
"license_note": null,
|
|
4045
|
-
"docs_url": "https://
|
|
4149
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#thin-wrapper"
|
|
4046
4150
|
},
|
|
4047
4151
|
{
|
|
4048
4152
|
"id": "duplicate-prop-shape",
|
|
@@ -4052,7 +4156,7 @@
|
|
|
4052
4156
|
"description": "Three or more React/Preact components across two or more files declare an identical prop-name set (a missing shared Props type)",
|
|
4053
4157
|
"label": "Duplicate Prop Shapes",
|
|
4054
4158
|
"config_key": "duplicate-prop-shape",
|
|
4055
|
-
"registry_index":
|
|
4159
|
+
"registry_index": 54,
|
|
4056
4160
|
"aliases": [
|
|
4057
4161
|
"duplicate-prop-shapes"
|
|
4058
4162
|
],
|
|
@@ -4076,7 +4180,7 @@
|
|
|
4076
4180
|
"note": "Opt-in: set rules.duplicate-prop-shape to warn or error to enable. Defaults to off.",
|
|
4077
4181
|
"license": "free",
|
|
4078
4182
|
"license_note": null,
|
|
4079
|
-
"docs_url": "https://
|
|
4183
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#duplicate-prop-shape"
|
|
4080
4184
|
},
|
|
4081
4185
|
{
|
|
4082
4186
|
"id": "route-collision",
|
|
@@ -4086,7 +4190,7 @@
|
|
|
4086
4190
|
"description": "Two or more Next.js App Router route files resolve to the same URL",
|
|
4087
4191
|
"label": "Route Collisions",
|
|
4088
4192
|
"config_key": "route-collision",
|
|
4089
|
-
"registry_index":
|
|
4193
|
+
"registry_index": 38,
|
|
4090
4194
|
"aliases": [
|
|
4091
4195
|
"route-collisions"
|
|
4092
4196
|
],
|
|
@@ -4114,7 +4218,7 @@
|
|
|
4114
4218
|
"note": null,
|
|
4115
4219
|
"license": "free",
|
|
4116
4220
|
"license_note": null,
|
|
4117
|
-
"docs_url": "https://
|
|
4221
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#route-collisions"
|
|
4118
4222
|
},
|
|
4119
4223
|
{
|
|
4120
4224
|
"id": "dynamic-segment-name-conflict",
|
|
@@ -4124,7 +4228,7 @@
|
|
|
4124
4228
|
"description": "Sibling Next.js dynamic route segments use different slug names at the same position",
|
|
4125
4229
|
"label": "Dynamic Segment Conflicts",
|
|
4126
4230
|
"config_key": "dynamic-segment-name-conflict",
|
|
4127
|
-
"registry_index":
|
|
4231
|
+
"registry_index": 39,
|
|
4128
4232
|
"aliases": [
|
|
4129
4233
|
"dynamic-segment-name-conflicts"
|
|
4130
4234
|
],
|
|
@@ -4152,7 +4256,7 @@
|
|
|
4152
4256
|
"note": null,
|
|
4153
4257
|
"license": "free",
|
|
4154
4258
|
"license_note": null,
|
|
4155
|
-
"docs_url": "https://
|
|
4259
|
+
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#dynamic-segment-name-conflicts"
|
|
4156
4260
|
},
|
|
4157
4261
|
{
|
|
4158
4262
|
"id": "high-cyclomatic-complexity",
|
|
@@ -4182,7 +4286,7 @@
|
|
|
4182
4286
|
"note": null,
|
|
4183
4287
|
"license": "free",
|
|
4184
4288
|
"license_note": null,
|
|
4185
|
-
"docs_url": "https://
|
|
4289
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#cyclomatic-complexity"
|
|
4186
4290
|
},
|
|
4187
4291
|
{
|
|
4188
4292
|
"id": "high-cognitive-complexity",
|
|
@@ -4212,7 +4316,7 @@
|
|
|
4212
4316
|
"note": null,
|
|
4213
4317
|
"license": "free",
|
|
4214
4318
|
"license_note": null,
|
|
4215
|
-
"docs_url": "https://
|
|
4319
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#cognitive-complexity"
|
|
4216
4320
|
},
|
|
4217
4321
|
{
|
|
4218
4322
|
"id": "high-complexity",
|
|
@@ -4242,7 +4346,7 @@
|
|
|
4242
4346
|
"note": null,
|
|
4243
4347
|
"license": "free",
|
|
4244
4348
|
"license_note": null,
|
|
4245
|
-
"docs_url": "https://
|
|
4349
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#complexity-metrics"
|
|
4246
4350
|
},
|
|
4247
4351
|
{
|
|
4248
4352
|
"id": "high-crap-score",
|
|
@@ -4272,7 +4376,7 @@
|
|
|
4272
4376
|
"note": null,
|
|
4273
4377
|
"license": "free",
|
|
4274
4378
|
"license_note": null,
|
|
4275
|
-
"docs_url": "https://
|
|
4379
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#crap-score"
|
|
4276
4380
|
},
|
|
4277
4381
|
{
|
|
4278
4382
|
"id": "refactoring-target",
|
|
@@ -4302,7 +4406,7 @@
|
|
|
4302
4406
|
"note": null,
|
|
4303
4407
|
"license": "free",
|
|
4304
4408
|
"license_note": null,
|
|
4305
|
-
"docs_url": "https://
|
|
4409
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#refactoring-targets"
|
|
4306
4410
|
},
|
|
4307
4411
|
{
|
|
4308
4412
|
"id": "css-token-drift",
|
|
@@ -4312,7 +4416,7 @@
|
|
|
4312
4416
|
"description": "CSS or CSS-in-JS hardcoded styling value bypasses the design token system",
|
|
4313
4417
|
"label": "CSS Token Drift",
|
|
4314
4418
|
"config_key": "css-token-drift",
|
|
4315
|
-
"registry_index":
|
|
4419
|
+
"registry_index": 55,
|
|
4316
4420
|
"aliases": [],
|
|
4317
4421
|
"lsp": false,
|
|
4318
4422
|
"filter_flag": null,
|
|
@@ -4332,7 +4436,7 @@
|
|
|
4332
4436
|
"note": null,
|
|
4333
4437
|
"license": "free",
|
|
4334
4438
|
"license_note": null,
|
|
4335
|
-
"docs_url": "https://
|
|
4439
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#css-token-drift"
|
|
4336
4440
|
},
|
|
4337
4441
|
{
|
|
4338
4442
|
"id": "css-duplicate-block",
|
|
@@ -4342,7 +4446,7 @@
|
|
|
4342
4446
|
"description": "CSS or CSS-in-JS declaration block is duplicated across rules",
|
|
4343
4447
|
"label": "CSS Duplicate Block",
|
|
4344
4448
|
"config_key": "css-duplicate-block",
|
|
4345
|
-
"registry_index":
|
|
4449
|
+
"registry_index": 56,
|
|
4346
4450
|
"aliases": [],
|
|
4347
4451
|
"lsp": false,
|
|
4348
4452
|
"filter_flag": null,
|
|
@@ -4362,7 +4466,7 @@
|
|
|
4362
4466
|
"note": null,
|
|
4363
4467
|
"license": "free",
|
|
4364
4468
|
"license_note": null,
|
|
4365
|
-
"docs_url": "https://
|
|
4469
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#css-duplicate-block"
|
|
4366
4470
|
},
|
|
4367
4471
|
{
|
|
4368
4472
|
"id": "css-selector-complexity",
|
|
@@ -4372,7 +4476,7 @@
|
|
|
4372
4476
|
"description": "CSS selector, nesting, or important usage is structurally complex",
|
|
4373
4477
|
"label": "CSS Selector Complexity",
|
|
4374
4478
|
"config_key": "css-selector-complexity",
|
|
4375
|
-
"registry_index":
|
|
4479
|
+
"registry_index": 57,
|
|
4376
4480
|
"aliases": [],
|
|
4377
4481
|
"lsp": false,
|
|
4378
4482
|
"filter_flag": null,
|
|
@@ -4392,7 +4496,7 @@
|
|
|
4392
4496
|
"note": null,
|
|
4393
4497
|
"license": "free",
|
|
4394
4498
|
"license_note": null,
|
|
4395
|
-
"docs_url": "https://
|
|
4499
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#css-selector-complexity"
|
|
4396
4500
|
},
|
|
4397
4501
|
{
|
|
4398
4502
|
"id": "css-dead-surface",
|
|
@@ -4402,7 +4506,7 @@
|
|
|
4402
4506
|
"description": "CSS or CSS-in-JS surface appears unused",
|
|
4403
4507
|
"label": "CSS Dead Surface",
|
|
4404
4508
|
"config_key": "css-dead-surface",
|
|
4405
|
-
"registry_index":
|
|
4509
|
+
"registry_index": 58,
|
|
4406
4510
|
"aliases": [],
|
|
4407
4511
|
"lsp": false,
|
|
4408
4512
|
"filter_flag": null,
|
|
@@ -4422,7 +4526,7 @@
|
|
|
4422
4526
|
"note": null,
|
|
4423
4527
|
"license": "free",
|
|
4424
4528
|
"license_note": null,
|
|
4425
|
-
"docs_url": "https://
|
|
4529
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#css-dead-surface"
|
|
4426
4530
|
},
|
|
4427
4531
|
{
|
|
4428
4532
|
"id": "css-broken-reference",
|
|
@@ -4432,7 +4536,7 @@
|
|
|
4432
4536
|
"description": "CSS or CSS-in-JS reference resolves to no stylesheet definition",
|
|
4433
4537
|
"label": "CSS Broken Reference",
|
|
4434
4538
|
"config_key": "css-broken-reference",
|
|
4435
|
-
"registry_index":
|
|
4539
|
+
"registry_index": 59,
|
|
4436
4540
|
"aliases": [],
|
|
4437
4541
|
"lsp": false,
|
|
4438
4542
|
"filter_flag": null,
|
|
@@ -4452,7 +4556,7 @@
|
|
|
4452
4556
|
"note": null,
|
|
4453
4557
|
"license": "free",
|
|
4454
4558
|
"license_note": null,
|
|
4455
|
-
"docs_url": "https://
|
|
4559
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#css-broken-reference"
|
|
4456
4560
|
},
|
|
4457
4561
|
{
|
|
4458
4562
|
"id": "untested-file",
|
|
@@ -4482,7 +4586,7 @@
|
|
|
4482
4586
|
"note": null,
|
|
4483
4587
|
"license": "free",
|
|
4484
4588
|
"license_note": null,
|
|
4485
|
-
"docs_url": "https://
|
|
4589
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-gaps"
|
|
4486
4590
|
},
|
|
4487
4591
|
{
|
|
4488
4592
|
"id": "untested-export",
|
|
@@ -4512,7 +4616,7 @@
|
|
|
4512
4616
|
"note": null,
|
|
4513
4617
|
"license": "free",
|
|
4514
4618
|
"license_note": null,
|
|
4515
|
-
"docs_url": "https://
|
|
4619
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-gaps"
|
|
4516
4620
|
},
|
|
4517
4621
|
{
|
|
4518
4622
|
"id": "runtime-safe-to-delete",
|
|
@@ -4542,7 +4646,7 @@
|
|
|
4542
4646
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
4543
4647
|
"license": "freemium",
|
|
4544
4648
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4545
|
-
"docs_url": "https://
|
|
4649
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
|
|
4546
4650
|
},
|
|
4547
4651
|
{
|
|
4548
4652
|
"id": "runtime-review-required",
|
|
@@ -4572,7 +4676,7 @@
|
|
|
4572
4676
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
4573
4677
|
"license": "freemium",
|
|
4574
4678
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4575
|
-
"docs_url": "https://
|
|
4679
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
|
|
4576
4680
|
},
|
|
4577
4681
|
{
|
|
4578
4682
|
"id": "runtime-low-traffic",
|
|
@@ -4602,7 +4706,7 @@
|
|
|
4602
4706
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
4603
4707
|
"license": "freemium",
|
|
4604
4708
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4605
|
-
"docs_url": "https://
|
|
4709
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
|
|
4606
4710
|
},
|
|
4607
4711
|
{
|
|
4608
4712
|
"id": "runtime-coverage-unavailable",
|
|
@@ -4632,7 +4736,7 @@
|
|
|
4632
4736
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
4633
4737
|
"license": "freemium",
|
|
4634
4738
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4635
|
-
"docs_url": "https://
|
|
4739
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
|
|
4636
4740
|
},
|
|
4637
4741
|
{
|
|
4638
4742
|
"id": "runtime-coverage",
|
|
@@ -4662,7 +4766,7 @@
|
|
|
4662
4766
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
4663
4767
|
"license": "freemium",
|
|
4664
4768
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4665
|
-
"docs_url": "https://
|
|
4769
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
|
|
4666
4770
|
},
|
|
4667
4771
|
{
|
|
4668
4772
|
"id": "coverage-intelligence-risky-change",
|
|
@@ -4692,7 +4796,7 @@
|
|
|
4692
4796
|
"note": "Produced by fallow coverage analyze",
|
|
4693
4797
|
"license": "freemium",
|
|
4694
4798
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4695
|
-
"docs_url": "https://
|
|
4799
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-intelligence"
|
|
4696
4800
|
},
|
|
4697
4801
|
{
|
|
4698
4802
|
"id": "coverage-intelligence-delete",
|
|
@@ -4722,7 +4826,7 @@
|
|
|
4722
4826
|
"note": "Produced by fallow coverage analyze",
|
|
4723
4827
|
"license": "freemium",
|
|
4724
4828
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4725
|
-
"docs_url": "https://
|
|
4829
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-intelligence"
|
|
4726
4830
|
},
|
|
4727
4831
|
{
|
|
4728
4832
|
"id": "coverage-intelligence-review",
|
|
@@ -4752,7 +4856,7 @@
|
|
|
4752
4856
|
"note": "Produced by fallow coverage analyze",
|
|
4753
4857
|
"license": "freemium",
|
|
4754
4858
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4755
|
-
"docs_url": "https://
|
|
4859
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-intelligence"
|
|
4756
4860
|
},
|
|
4757
4861
|
{
|
|
4758
4862
|
"id": "coverage-intelligence-refactor",
|
|
@@ -4782,7 +4886,7 @@
|
|
|
4782
4886
|
"note": "Produced by fallow coverage analyze",
|
|
4783
4887
|
"license": "freemium",
|
|
4784
4888
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
4785
|
-
"docs_url": "https://
|
|
4889
|
+
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-intelligence"
|
|
4786
4890
|
},
|
|
4787
4891
|
{
|
|
4788
4892
|
"id": "code-duplication",
|
|
@@ -4812,7 +4916,7 @@
|
|
|
4812
4916
|
"note": "Reported by fallow dupes (and bare fallow / fallow audit)",
|
|
4813
4917
|
"license": "free",
|
|
4814
4918
|
"license_note": null,
|
|
4815
|
-
"docs_url": "https://
|
|
4919
|
+
"docs_url": "https://fallow.tools/docs/explanations/duplication/#clone-groups"
|
|
4816
4920
|
},
|
|
4817
4921
|
{
|
|
4818
4922
|
"id": "feature-flag",
|
|
@@ -4822,7 +4926,7 @@
|
|
|
4822
4926
|
"description": "Detected feature flag pattern",
|
|
4823
4927
|
"label": "Feature Flags",
|
|
4824
4928
|
"config_key": "feature-flags",
|
|
4825
|
-
"registry_index":
|
|
4929
|
+
"registry_index": 50,
|
|
4826
4930
|
"aliases": [],
|
|
4827
4931
|
"lsp": false,
|
|
4828
4932
|
"filter_flag": null,
|
|
@@ -4842,7 +4946,7 @@
|
|
|
4842
4946
|
"note": "Reported by fallow flags",
|
|
4843
4947
|
"license": "free",
|
|
4844
4948
|
"license_note": null,
|
|
4845
|
-
"docs_url": "https://
|
|
4949
|
+
"docs_url": "https://fallow.tools/docs/cli/flags/"
|
|
4846
4950
|
},
|
|
4847
4951
|
{
|
|
4848
4952
|
"id": "flag-retirement-candidate",
|
|
@@ -4872,7 +4976,7 @@
|
|
|
4872
4976
|
"note": null,
|
|
4873
4977
|
"license": "free",
|
|
4874
4978
|
"license_note": null,
|
|
4875
|
-
"docs_url": "https://
|
|
4979
|
+
"docs_url": "https://fallow.tools/docs/cli/flags/#retirement-report"
|
|
4876
4980
|
},
|
|
4877
4981
|
{
|
|
4878
4982
|
"id": "tainted-sink",
|
|
@@ -4902,7 +5006,7 @@
|
|
|
4902
5006
|
"note": null,
|
|
4903
5007
|
"license": "free",
|
|
4904
5008
|
"license_note": null,
|
|
4905
|
-
"docs_url": "https://
|
|
5009
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
4906
5010
|
},
|
|
4907
5011
|
{
|
|
4908
5012
|
"id": "client-server-leak",
|
|
@@ -4932,7 +5036,7 @@
|
|
|
4932
5036
|
"note": null,
|
|
4933
5037
|
"license": "free",
|
|
4934
5038
|
"license_note": null,
|
|
4935
|
-
"docs_url": "https://
|
|
5039
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
4936
5040
|
},
|
|
4937
5041
|
{
|
|
4938
5042
|
"id": "hardcoded-secret",
|
|
@@ -4962,7 +5066,7 @@
|
|
|
4962
5066
|
"note": "Include-required category: enable via security.categories.include",
|
|
4963
5067
|
"license": "free",
|
|
4964
5068
|
"license_note": null,
|
|
4965
|
-
"docs_url": "https://
|
|
5069
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
4966
5070
|
},
|
|
4967
5071
|
{
|
|
4968
5072
|
"id": "dangerous-html",
|
|
@@ -4992,7 +5096,7 @@
|
|
|
4992
5096
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4993
5097
|
"license": "free",
|
|
4994
5098
|
"license_note": null,
|
|
4995
|
-
"docs_url": "https://
|
|
5099
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
4996
5100
|
},
|
|
4997
5101
|
{
|
|
4998
5102
|
"id": "template-escape-bypass",
|
|
@@ -5022,7 +5126,7 @@
|
|
|
5022
5126
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5023
5127
|
"license": "free",
|
|
5024
5128
|
"license_note": null,
|
|
5025
|
-
"docs_url": "https://
|
|
5129
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5026
5130
|
},
|
|
5027
5131
|
{
|
|
5028
5132
|
"id": "command-injection",
|
|
@@ -5052,7 +5156,7 @@
|
|
|
5052
5156
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5053
5157
|
"license": "free",
|
|
5054
5158
|
"license_note": null,
|
|
5055
|
-
"docs_url": "https://
|
|
5159
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5056
5160
|
},
|
|
5057
5161
|
{
|
|
5058
5162
|
"id": "code-injection",
|
|
@@ -5082,7 +5186,7 @@
|
|
|
5082
5186
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5083
5187
|
"license": "free",
|
|
5084
5188
|
"license_note": null,
|
|
5085
|
-
"docs_url": "https://
|
|
5189
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5086
5190
|
},
|
|
5087
5191
|
{
|
|
5088
5192
|
"id": "dynamic-regex",
|
|
@@ -5112,7 +5216,7 @@
|
|
|
5112
5216
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5113
5217
|
"license": "free",
|
|
5114
5218
|
"license_note": null,
|
|
5115
|
-
"docs_url": "https://
|
|
5219
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5116
5220
|
},
|
|
5117
5221
|
{
|
|
5118
5222
|
"id": "redos-regex",
|
|
@@ -5142,7 +5246,7 @@
|
|
|
5142
5246
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5143
5247
|
"license": "free",
|
|
5144
5248
|
"license_note": null,
|
|
5145
|
-
"docs_url": "https://
|
|
5249
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5146
5250
|
},
|
|
5147
5251
|
{
|
|
5148
5252
|
"id": "resource-amplification",
|
|
@@ -5172,7 +5276,7 @@
|
|
|
5172
5276
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5173
5277
|
"license": "free",
|
|
5174
5278
|
"license_note": null,
|
|
5175
|
-
"docs_url": "https://
|
|
5279
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5176
5280
|
},
|
|
5177
5281
|
{
|
|
5178
5282
|
"id": "dynamic-module-load",
|
|
@@ -5202,7 +5306,7 @@
|
|
|
5202
5306
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5203
5307
|
"license": "free",
|
|
5204
5308
|
"license_note": null,
|
|
5205
|
-
"docs_url": "https://
|
|
5309
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5206
5310
|
},
|
|
5207
5311
|
{
|
|
5208
5312
|
"id": "sql-injection",
|
|
@@ -5232,7 +5336,7 @@
|
|
|
5232
5336
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5233
5337
|
"license": "free",
|
|
5234
5338
|
"license_note": null,
|
|
5235
|
-
"docs_url": "https://
|
|
5339
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5236
5340
|
},
|
|
5237
5341
|
{
|
|
5238
5342
|
"id": "ssrf",
|
|
@@ -5262,7 +5366,7 @@
|
|
|
5262
5366
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5263
5367
|
"license": "free",
|
|
5264
5368
|
"license_note": null,
|
|
5265
|
-
"docs_url": "https://
|
|
5369
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5266
5370
|
},
|
|
5267
5371
|
{
|
|
5268
5372
|
"id": "secret-to-network",
|
|
@@ -5292,7 +5396,7 @@
|
|
|
5292
5396
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5293
5397
|
"license": "free",
|
|
5294
5398
|
"license_note": null,
|
|
5295
|
-
"docs_url": "https://
|
|
5399
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5296
5400
|
},
|
|
5297
5401
|
{
|
|
5298
5402
|
"id": "path-traversal",
|
|
@@ -5322,7 +5426,7 @@
|
|
|
5322
5426
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5323
5427
|
"license": "free",
|
|
5324
5428
|
"license_note": null,
|
|
5325
|
-
"docs_url": "https://
|
|
5429
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5326
5430
|
},
|
|
5327
5431
|
{
|
|
5328
5432
|
"id": "header-injection",
|
|
@@ -5352,7 +5456,7 @@
|
|
|
5352
5456
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5353
5457
|
"license": "free",
|
|
5354
5458
|
"license_note": null,
|
|
5355
|
-
"docs_url": "https://
|
|
5459
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5356
5460
|
},
|
|
5357
5461
|
{
|
|
5358
5462
|
"id": "open-redirect",
|
|
@@ -5382,7 +5486,7 @@
|
|
|
5382
5486
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5383
5487
|
"license": "free",
|
|
5384
5488
|
"license_note": null,
|
|
5385
|
-
"docs_url": "https://
|
|
5489
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5386
5490
|
},
|
|
5387
5491
|
{
|
|
5388
5492
|
"id": "postmessage-wildcard-origin",
|
|
@@ -5412,7 +5516,7 @@
|
|
|
5412
5516
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5413
5517
|
"license": "free",
|
|
5414
5518
|
"license_note": null,
|
|
5415
|
-
"docs_url": "https://
|
|
5519
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5416
5520
|
},
|
|
5417
5521
|
{
|
|
5418
5522
|
"id": "tls-validation-disabled",
|
|
@@ -5442,7 +5546,7 @@
|
|
|
5442
5546
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5443
5547
|
"license": "free",
|
|
5444
5548
|
"license_note": null,
|
|
5445
|
-
"docs_url": "https://
|
|
5549
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5446
5550
|
},
|
|
5447
5551
|
{
|
|
5448
5552
|
"id": "cleartext-transport",
|
|
@@ -5472,7 +5576,7 @@
|
|
|
5472
5576
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5473
5577
|
"license": "free",
|
|
5474
5578
|
"license_note": null,
|
|
5475
|
-
"docs_url": "https://
|
|
5579
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5476
5580
|
},
|
|
5477
5581
|
{
|
|
5478
5582
|
"id": "electron-unsafe-webpreferences",
|
|
@@ -5502,7 +5606,7 @@
|
|
|
5502
5606
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5503
5607
|
"license": "free",
|
|
5504
5608
|
"license_note": null,
|
|
5505
|
-
"docs_url": "https://
|
|
5609
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5506
5610
|
},
|
|
5507
5611
|
{
|
|
5508
5612
|
"id": "world-writable-permission",
|
|
@@ -5532,7 +5636,7 @@
|
|
|
5532
5636
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5533
5637
|
"license": "free",
|
|
5534
5638
|
"license_note": null,
|
|
5535
|
-
"docs_url": "https://
|
|
5639
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5536
5640
|
},
|
|
5537
5641
|
{
|
|
5538
5642
|
"id": "insecure-temp-file",
|
|
@@ -5562,7 +5666,7 @@
|
|
|
5562
5666
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5563
5667
|
"license": "free",
|
|
5564
5668
|
"license_note": null,
|
|
5565
|
-
"docs_url": "https://
|
|
5669
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5566
5670
|
},
|
|
5567
5671
|
{
|
|
5568
5672
|
"id": "mysql-multiple-statements",
|
|
@@ -5592,7 +5696,7 @@
|
|
|
5592
5696
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5593
5697
|
"license": "free",
|
|
5594
5698
|
"license_note": null,
|
|
5595
|
-
"docs_url": "https://
|
|
5699
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5596
5700
|
},
|
|
5597
5701
|
{
|
|
5598
5702
|
"id": "permissive-cors",
|
|
@@ -5622,7 +5726,7 @@
|
|
|
5622
5726
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5623
5727
|
"license": "free",
|
|
5624
5728
|
"license_note": null,
|
|
5625
|
-
"docs_url": "https://
|
|
5729
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5626
5730
|
},
|
|
5627
5731
|
{
|
|
5628
5732
|
"id": "insecure-cookie",
|
|
@@ -5652,7 +5756,7 @@
|
|
|
5652
5756
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5653
5757
|
"license": "free",
|
|
5654
5758
|
"license_note": null,
|
|
5655
|
-
"docs_url": "https://
|
|
5759
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5656
5760
|
},
|
|
5657
5761
|
{
|
|
5658
5762
|
"id": "mass-assignment",
|
|
@@ -5682,7 +5786,7 @@
|
|
|
5682
5786
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5683
5787
|
"license": "free",
|
|
5684
5788
|
"license_note": null,
|
|
5685
|
-
"docs_url": "https://
|
|
5789
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5686
5790
|
},
|
|
5687
5791
|
{
|
|
5688
5792
|
"id": "weak-crypto",
|
|
@@ -5712,7 +5816,7 @@
|
|
|
5712
5816
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5713
5817
|
"license": "free",
|
|
5714
5818
|
"license_note": null,
|
|
5715
|
-
"docs_url": "https://
|
|
5819
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5716
5820
|
},
|
|
5717
5821
|
{
|
|
5718
5822
|
"id": "insecure-randomness",
|
|
@@ -5742,7 +5846,7 @@
|
|
|
5742
5846
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5743
5847
|
"license": "free",
|
|
5744
5848
|
"license_note": null,
|
|
5745
|
-
"docs_url": "https://
|
|
5849
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5746
5850
|
},
|
|
5747
5851
|
{
|
|
5748
5852
|
"id": "jwt-alg-none",
|
|
@@ -5772,7 +5876,7 @@
|
|
|
5772
5876
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5773
5877
|
"license": "free",
|
|
5774
5878
|
"license_note": null,
|
|
5775
|
-
"docs_url": "https://
|
|
5879
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5776
5880
|
},
|
|
5777
5881
|
{
|
|
5778
5882
|
"id": "jwt-verify-missing-algorithms",
|
|
@@ -5802,7 +5906,7 @@
|
|
|
5802
5906
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5803
5907
|
"license": "free",
|
|
5804
5908
|
"license_note": null,
|
|
5805
|
-
"docs_url": "https://
|
|
5909
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5806
5910
|
},
|
|
5807
5911
|
{
|
|
5808
5912
|
"id": "deprecated-cipher",
|
|
@@ -5832,7 +5936,7 @@
|
|
|
5832
5936
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5833
5937
|
"license": "free",
|
|
5834
5938
|
"license_note": null,
|
|
5835
|
-
"docs_url": "https://
|
|
5939
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5836
5940
|
},
|
|
5837
5941
|
{
|
|
5838
5942
|
"id": "unsafe-buffer-alloc",
|
|
@@ -5862,7 +5966,7 @@
|
|
|
5862
5966
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5863
5967
|
"license": "free",
|
|
5864
5968
|
"license_note": null,
|
|
5865
|
-
"docs_url": "https://
|
|
5969
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5866
5970
|
},
|
|
5867
5971
|
{
|
|
5868
5972
|
"id": "unsafe-deserialization",
|
|
@@ -5892,7 +5996,7 @@
|
|
|
5892
5996
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5893
5997
|
"license": "free",
|
|
5894
5998
|
"license_note": null,
|
|
5895
|
-
"docs_url": "https://
|
|
5999
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5896
6000
|
},
|
|
5897
6001
|
{
|
|
5898
6002
|
"id": "angular-trusted-html",
|
|
@@ -5922,7 +6026,7 @@
|
|
|
5922
6026
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5923
6027
|
"license": "free",
|
|
5924
6028
|
"license_note": null,
|
|
5925
|
-
"docs_url": "https://
|
|
6029
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5926
6030
|
},
|
|
5927
6031
|
{
|
|
5928
6032
|
"id": "nextjs-open-redirect",
|
|
@@ -5952,7 +6056,7 @@
|
|
|
5952
6056
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5953
6057
|
"license": "free",
|
|
5954
6058
|
"license_note": null,
|
|
5955
|
-
"docs_url": "https://
|
|
6059
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5956
6060
|
},
|
|
5957
6061
|
{
|
|
5958
6062
|
"id": "dom-document-write",
|
|
@@ -5982,7 +6086,7 @@
|
|
|
5982
6086
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5983
6087
|
"license": "free",
|
|
5984
6088
|
"license_note": null,
|
|
5985
|
-
"docs_url": "https://
|
|
6089
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
5986
6090
|
},
|
|
5987
6091
|
{
|
|
5988
6092
|
"id": "jquery-html",
|
|
@@ -6012,7 +6116,7 @@
|
|
|
6012
6116
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6013
6117
|
"license": "free",
|
|
6014
6118
|
"license_note": null,
|
|
6015
|
-
"docs_url": "https://
|
|
6119
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6016
6120
|
},
|
|
6017
6121
|
{
|
|
6018
6122
|
"id": "route-send-file",
|
|
@@ -6042,7 +6146,7 @@
|
|
|
6042
6146
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6043
6147
|
"license": "free",
|
|
6044
6148
|
"license_note": null,
|
|
6045
|
-
"docs_url": "https://
|
|
6149
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6046
6150
|
},
|
|
6047
6151
|
{
|
|
6048
6152
|
"id": "webview-injection",
|
|
@@ -6072,7 +6176,7 @@
|
|
|
6072
6176
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6073
6177
|
"license": "free",
|
|
6074
6178
|
"license_note": null,
|
|
6075
|
-
"docs_url": "https://
|
|
6179
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6076
6180
|
},
|
|
6077
6181
|
{
|
|
6078
6182
|
"id": "prototype-pollution",
|
|
@@ -6102,7 +6206,7 @@
|
|
|
6102
6206
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6103
6207
|
"license": "free",
|
|
6104
6208
|
"license_note": null,
|
|
6105
|
-
"docs_url": "https://
|
|
6209
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6106
6210
|
},
|
|
6107
6211
|
{
|
|
6108
6212
|
"id": "zip-slip",
|
|
@@ -6132,7 +6236,7 @@
|
|
|
6132
6236
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6133
6237
|
"license": "free",
|
|
6134
6238
|
"license_note": null,
|
|
6135
|
-
"docs_url": "https://
|
|
6239
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6136
6240
|
},
|
|
6137
6241
|
{
|
|
6138
6242
|
"id": "nosql-injection",
|
|
@@ -6162,7 +6266,7 @@
|
|
|
6162
6266
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6163
6267
|
"license": "free",
|
|
6164
6268
|
"license_note": null,
|
|
6165
|
-
"docs_url": "https://
|
|
6269
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6166
6270
|
},
|
|
6167
6271
|
{
|
|
6168
6272
|
"id": "ssti",
|
|
@@ -6192,7 +6296,7 @@
|
|
|
6192
6296
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6193
6297
|
"license": "free",
|
|
6194
6298
|
"license_note": null,
|
|
6195
|
-
"docs_url": "https://
|
|
6299
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6196
6300
|
},
|
|
6197
6301
|
{
|
|
6198
6302
|
"id": "xxe",
|
|
@@ -6222,7 +6326,7 @@
|
|
|
6222
6326
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6223
6327
|
"license": "free",
|
|
6224
6328
|
"license_note": null,
|
|
6225
|
-
"docs_url": "https://
|
|
6329
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6226
6330
|
},
|
|
6227
6331
|
{
|
|
6228
6332
|
"id": "secret-pii-log",
|
|
@@ -6252,7 +6356,7 @@
|
|
|
6252
6356
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6253
6357
|
"license": "free",
|
|
6254
6358
|
"license_note": null,
|
|
6255
|
-
"docs_url": "https://
|
|
6359
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6256
6360
|
},
|
|
6257
6361
|
{
|
|
6258
6362
|
"id": "xpath-injection",
|
|
@@ -6282,7 +6386,7 @@
|
|
|
6282
6386
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6283
6387
|
"license": "free",
|
|
6284
6388
|
"license_note": null,
|
|
6285
|
-
"docs_url": "https://
|
|
6389
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6286
6390
|
},
|
|
6287
6391
|
{
|
|
6288
6392
|
"id": "llm-call-injection",
|
|
@@ -6312,7 +6416,7 @@
|
|
|
6312
6416
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
6313
6417
|
"license": "free",
|
|
6314
6418
|
"license_note": null,
|
|
6315
|
-
"docs_url": "https://
|
|
6419
|
+
"docs_url": "https://fallow.tools/docs/cli/security/"
|
|
6316
6420
|
}
|
|
6317
6421
|
],
|
|
6318
6422
|
"suppression_comments": {
|
|
@@ -6394,6 +6498,7 @@
|
|
|
6394
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.",
|
|
6395
6499
|
"FALLOW_CA_BUNDLE": "Path to a PEM certificate bundle for Fallow Cloud and provider HTTP calls (replaces the default WebPKI roots).",
|
|
6396
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.",
|
|
6397
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.",
|
|
6398
6503
|
"FALLOW_TELEMETRY": "Opt-in telemetry mode: off, on, or inspect (print the payload to stderr without sending). Telemetry is off by default.",
|
|
6399
6504
|
"FALLOW_TELEMETRY_DISABLED": "Admin/fleet kill switch: truthy values hard-disable telemetry and refuse fallow telemetry enable.",
|
|
@@ -7569,7 +7674,7 @@
|
|
|
7569
7674
|
]
|
|
7570
7675
|
},
|
|
7571
7676
|
"plugins": {
|
|
7572
|
-
"count":
|
|
7677
|
+
"count": 133,
|
|
7573
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",
|
|
7574
7679
|
"names": [
|
|
7575
7680
|
"nextjs",
|
|
@@ -7589,6 +7694,7 @@
|
|
|
7589
7694
|
"expo-router",
|
|
7590
7695
|
"firebase",
|
|
7591
7696
|
"nestjs",
|
|
7697
|
+
"nestjs-trpc",
|
|
7592
7698
|
"adonis",
|
|
7593
7699
|
"docusaurus",
|
|
7594
7700
|
"gatsby",
|
|
@@ -7596,6 +7702,7 @@
|
|
|
7596
7702
|
"nitro",
|
|
7597
7703
|
"capacitor",
|
|
7598
7704
|
"ionic",
|
|
7705
|
+
"kibana",
|
|
7599
7706
|
"sanity",
|
|
7600
7707
|
"supabase",
|
|
7601
7708
|
"vitepress",
|
|
@@ -7608,6 +7715,7 @@
|
|
|
7608
7715
|
"convex",
|
|
7609
7716
|
"lit",
|
|
7610
7717
|
"lexical",
|
|
7718
|
+
"ag-ui",
|
|
7611
7719
|
"obsidian",
|
|
7612
7720
|
"content-collections",
|
|
7613
7721
|
"contentlayer",
|
|
@@ -7615,6 +7723,7 @@
|
|
|
7615
7723
|
"mintlify",
|
|
7616
7724
|
"velite",
|
|
7617
7725
|
"ember",
|
|
7726
|
+
"eve",
|
|
7618
7727
|
"vite",
|
|
7619
7728
|
"vscode",
|
|
7620
7729
|
"webpack",
|
|
@@ -7670,6 +7779,7 @@
|
|
|
7670
7779
|
"commitizen",
|
|
7671
7780
|
"commit-and-tag-version",
|
|
7672
7781
|
"semantic-release",
|
|
7782
|
+
"release-it",
|
|
7673
7783
|
"danger",
|
|
7674
7784
|
"hardhat",
|
|
7675
7785
|
"vercel",
|