fallow 3.2.0 → 3.4.2
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 +11 -1
- package/capabilities.json +944 -3
- package/issue-registry.json +357 -0
- package/package.json +10 -10
- package/schema.json +132 -1
- package/scripts/platform-package.js +1 -1
- package/scripts/platform-package.test.js +3 -3
- package/scripts/run-binary.js +15 -1
- package/scripts/run-binary.test.js +17 -0
- package/skills/fallow/SKILL.md +23 -51
- package/skills/fallow/references/cli-reference.md +24 -11
- package/skills/fallow/references/mcp.md +64 -0
- package/types/output-contract.d.ts +458 -6
package/capabilities.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fallow",
|
|
3
|
-
"version": "3.2
|
|
3
|
+
"version": "3.4.2",
|
|
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": [
|
|
@@ -18,6 +18,16 @@
|
|
|
18
18
|
"description": "Path to config file (.fallowrc.json, .fallowrc.jsonc, fallow.toml, or .fallow.toml)",
|
|
19
19
|
"short": "-c"
|
|
20
20
|
},
|
|
21
|
+
{
|
|
22
|
+
"name": "--allow-remote-extends",
|
|
23
|
+
"type": "bool",
|
|
24
|
+
"required": false,
|
|
25
|
+
"description": "Allow trusted config files to extend HTTPS URLs",
|
|
26
|
+
"possible_values": [
|
|
27
|
+
"true",
|
|
28
|
+
"false"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
21
31
|
{
|
|
22
32
|
"name": "--format",
|
|
23
33
|
"type": "string",
|
|
@@ -36,7 +46,9 @@
|
|
|
36
46
|
"pr-comment-gitlab",
|
|
37
47
|
"review-github",
|
|
38
48
|
"review-gitlab",
|
|
39
|
-
"badge"
|
|
49
|
+
"badge",
|
|
50
|
+
"github-annotations",
|
|
51
|
+
"github-summary"
|
|
40
52
|
]
|
|
41
53
|
},
|
|
42
54
|
{
|
|
@@ -266,6 +278,12 @@
|
|
|
266
278
|
"description": "Write the report to a file instead of stdout, for any --format (no ANSI codes). Useful on large projects where the terminal scrollback truncates the top. Progress and the confirmation stay on stderr",
|
|
267
279
|
"short": "-o"
|
|
268
280
|
},
|
|
281
|
+
{
|
|
282
|
+
"name": "--report-path-prefix",
|
|
283
|
+
"type": "string",
|
|
284
|
+
"required": false,
|
|
285
|
+
"description": "Prefix prepended to every path in the CI-facing formats (`github-annotations`, `github-summary`, `codeclimate`, `review-github`, `review-gitlab`). CI platforms address files by repository-root-relative path, so when the analyzed project lives in a subdirectory (e.g. `packages/app/`), paths need that offset. fallow detects the offset via the git toplevel automatically; this flag overrides the detection. Pass an empty string to disable rebasing and emit paths relative to `--root`"
|
|
286
|
+
},
|
|
269
287
|
{
|
|
270
288
|
"name": "--fail-on-regression",
|
|
271
289
|
"type": "bool",
|
|
@@ -985,6 +1003,11 @@
|
|
|
985
1003
|
"description": "Print the JSON Schema for external plugin files",
|
|
986
1004
|
"flags": []
|
|
987
1005
|
},
|
|
1006
|
+
{
|
|
1007
|
+
"name": "plugin-check",
|
|
1008
|
+
"description": "Dry-run external plugins: report what each activated and seeded",
|
|
1009
|
+
"flags": []
|
|
1010
|
+
},
|
|
988
1011
|
{
|
|
989
1012
|
"name": "rule-pack-schema",
|
|
990
1013
|
"description": "Print the JSON Schema for rule pack files",
|
|
@@ -1023,6 +1046,11 @@
|
|
|
1023
1046
|
}
|
|
1024
1047
|
]
|
|
1025
1048
|
},
|
|
1049
|
+
{
|
|
1050
|
+
"name": "recommend",
|
|
1051
|
+
"description": "Recommend a project-tailored config for an agent to author",
|
|
1052
|
+
"flags": []
|
|
1053
|
+
},
|
|
1026
1054
|
{
|
|
1027
1055
|
"name": "list",
|
|
1028
1056
|
"description": "List discovered entry points, files, plugins, boundaries, and workspaces",
|
|
@@ -1438,6 +1466,18 @@
|
|
|
1438
1466
|
}
|
|
1439
1467
|
]
|
|
1440
1468
|
},
|
|
1469
|
+
{
|
|
1470
|
+
"name": "suppressions",
|
|
1471
|
+
"description": "List active fallow-ignore suppression markers (read-only inventory)",
|
|
1472
|
+
"flags": [
|
|
1473
|
+
{
|
|
1474
|
+
"name": "--file",
|
|
1475
|
+
"type": "string",
|
|
1476
|
+
"required": false,
|
|
1477
|
+
"description": "Only list suppressions in the specified files. Accepts multiple values"
|
|
1478
|
+
}
|
|
1479
|
+
]
|
|
1480
|
+
},
|
|
1441
1481
|
{
|
|
1442
1482
|
"name": "explain",
|
|
1443
1483
|
"description": "Explain one fallow issue type without running an analysis",
|
|
@@ -1743,6 +1783,18 @@
|
|
|
1743
1783
|
}
|
|
1744
1784
|
]
|
|
1745
1785
|
},
|
|
1786
|
+
{
|
|
1787
|
+
"name": "report",
|
|
1788
|
+
"description": "Render a saved `--format json` results file in another format without re-running analysis (analyze once, render annotations and the job summary from the same file). v1 renders the GitHub-native formats only: `--format github-annotations` or `--format github-summary`",
|
|
1789
|
+
"flags": [
|
|
1790
|
+
{
|
|
1791
|
+
"name": "--from",
|
|
1792
|
+
"type": "string",
|
|
1793
|
+
"required": true,
|
|
1794
|
+
"description": "Path to a fallow JSON results file produced by `--format json` (dead-code, dupes, health, audit, security, or bare combined)"
|
|
1795
|
+
}
|
|
1796
|
+
]
|
|
1797
|
+
},
|
|
1746
1798
|
{
|
|
1747
1799
|
"name": "schema",
|
|
1748
1800
|
"description": "Dump fallow's capability manifest (CLI commands and flags, issue types, MCP tools, framework plugins, env vars) as machine-readable JSON for agent introspection. Always JSON, regardless of --format",
|
|
@@ -1909,6 +1961,9 @@
|
|
|
1909
1961
|
"fixable": false,
|
|
1910
1962
|
"suppressible": true,
|
|
1911
1963
|
"suppress_comment": "// fallow-ignore-file unused-file",
|
|
1964
|
+
"default_severity": "error",
|
|
1965
|
+
"opt_in": false,
|
|
1966
|
+
"frameworks": [],
|
|
1912
1967
|
"note": null,
|
|
1913
1968
|
"license": "free",
|
|
1914
1969
|
"license_note": null,
|
|
@@ -1943,6 +1998,9 @@
|
|
|
1943
1998
|
"fixable": true,
|
|
1944
1999
|
"suppressible": true,
|
|
1945
2000
|
"suppress_comment": "// fallow-ignore-next-line unused-export",
|
|
2001
|
+
"default_severity": "error",
|
|
2002
|
+
"opt_in": false,
|
|
2003
|
+
"frameworks": [],
|
|
1946
2004
|
"note": null,
|
|
1947
2005
|
"license": "free",
|
|
1948
2006
|
"license_note": null,
|
|
@@ -1974,6 +2032,9 @@
|
|
|
1974
2032
|
"fixable": false,
|
|
1975
2033
|
"suppressible": true,
|
|
1976
2034
|
"suppress_comment": "// fallow-ignore-next-line unused-type",
|
|
2035
|
+
"default_severity": "error",
|
|
2036
|
+
"opt_in": false,
|
|
2037
|
+
"frameworks": [],
|
|
1977
2038
|
"note": null,
|
|
1978
2039
|
"license": "free",
|
|
1979
2040
|
"license_note": null,
|
|
@@ -2008,6 +2069,9 @@
|
|
|
2008
2069
|
"fixable": false,
|
|
2009
2070
|
"suppressible": true,
|
|
2010
2071
|
"suppress_comment": "// fallow-ignore-next-line private-type-leak",
|
|
2072
|
+
"default_severity": "off",
|
|
2073
|
+
"opt_in": true,
|
|
2074
|
+
"frameworks": [],
|
|
2011
2075
|
"note": "Opt-in API hygiene check; the rule defaults to off",
|
|
2012
2076
|
"license": "free",
|
|
2013
2077
|
"license_note": null,
|
|
@@ -2042,6 +2106,9 @@
|
|
|
2042
2106
|
"fixable": true,
|
|
2043
2107
|
"suppressible": false,
|
|
2044
2108
|
"suppress_comment": null,
|
|
2109
|
+
"default_severity": "error",
|
|
2110
|
+
"opt_in": false,
|
|
2111
|
+
"frameworks": [],
|
|
2045
2112
|
"note": "--unused-deps controls unused-dependency, unused-dev-dependency, unused-optional-dependency, type-only-dependency, and test-only-dependency",
|
|
2046
2113
|
"license": "free",
|
|
2047
2114
|
"license_note": null,
|
|
@@ -2079,6 +2146,9 @@
|
|
|
2079
2146
|
"fixable": true,
|
|
2080
2147
|
"suppressible": false,
|
|
2081
2148
|
"suppress_comment": null,
|
|
2149
|
+
"default_severity": "warn",
|
|
2150
|
+
"opt_in": false,
|
|
2151
|
+
"frameworks": [],
|
|
2082
2152
|
"note": "--unused-deps controls unused-dependency, unused-dev-dependency, unused-optional-dependency, type-only-dependency, and test-only-dependency",
|
|
2083
2153
|
"license": "free",
|
|
2084
2154
|
"license_note": null,
|
|
@@ -2116,6 +2186,9 @@
|
|
|
2116
2186
|
"fixable": true,
|
|
2117
2187
|
"suppressible": false,
|
|
2118
2188
|
"suppress_comment": null,
|
|
2189
|
+
"default_severity": "warn",
|
|
2190
|
+
"opt_in": false,
|
|
2191
|
+
"frameworks": [],
|
|
2119
2192
|
"note": "--unused-deps controls unused-dependency, unused-dev-dependency, unused-optional-dependency, type-only-dependency, and test-only-dependency",
|
|
2120
2193
|
"license": "free",
|
|
2121
2194
|
"license_note": null,
|
|
@@ -2150,6 +2223,9 @@
|
|
|
2150
2223
|
"fixable": false,
|
|
2151
2224
|
"suppressible": false,
|
|
2152
2225
|
"suppress_comment": null,
|
|
2226
|
+
"default_severity": "warn",
|
|
2227
|
+
"opt_in": false,
|
|
2228
|
+
"frameworks": [],
|
|
2153
2229
|
"note": "Only reported in --production mode; --unused-deps scopes it together with the other dependency kinds",
|
|
2154
2230
|
"license": "free",
|
|
2155
2231
|
"license_note": null,
|
|
@@ -2184,6 +2260,9 @@
|
|
|
2184
2260
|
"fixable": false,
|
|
2185
2261
|
"suppressible": false,
|
|
2186
2262
|
"suppress_comment": null,
|
|
2263
|
+
"default_severity": "warn",
|
|
2264
|
+
"opt_in": false,
|
|
2265
|
+
"frameworks": [],
|
|
2187
2266
|
"note": "Not reported in --production mode (test files are excluded there); --unused-deps scopes it together with the other dependency kinds",
|
|
2188
2267
|
"license": "free",
|
|
2189
2268
|
"license_note": null,
|
|
@@ -2218,6 +2297,9 @@
|
|
|
2218
2297
|
"fixable": false,
|
|
2219
2298
|
"suppressible": false,
|
|
2220
2299
|
"suppress_comment": null,
|
|
2300
|
+
"default_severity": "warn",
|
|
2301
|
+
"opt_in": false,
|
|
2302
|
+
"frameworks": [],
|
|
2221
2303
|
"note": null,
|
|
2222
2304
|
"license": "free",
|
|
2223
2305
|
"license_note": null,
|
|
@@ -2252,6 +2334,9 @@
|
|
|
2252
2334
|
"fixable": true,
|
|
2253
2335
|
"suppressible": true,
|
|
2254
2336
|
"suppress_comment": "// fallow-ignore-next-line unused-enum-member",
|
|
2337
|
+
"default_severity": "error",
|
|
2338
|
+
"opt_in": false,
|
|
2339
|
+
"frameworks": [],
|
|
2255
2340
|
"note": null,
|
|
2256
2341
|
"license": "free",
|
|
2257
2342
|
"license_note": null,
|
|
@@ -2286,6 +2371,9 @@
|
|
|
2286
2371
|
"fixable": false,
|
|
2287
2372
|
"suppressible": true,
|
|
2288
2373
|
"suppress_comment": "// fallow-ignore-next-line unused-class-member",
|
|
2374
|
+
"default_severity": "error",
|
|
2375
|
+
"opt_in": false,
|
|
2376
|
+
"frameworks": [],
|
|
2289
2377
|
"note": null,
|
|
2290
2378
|
"license": "free",
|
|
2291
2379
|
"license_note": null,
|
|
@@ -2322,6 +2410,9 @@
|
|
|
2322
2410
|
"fixable": false,
|
|
2323
2411
|
"suppressible": true,
|
|
2324
2412
|
"suppress_comment": "// fallow-ignore-next-line unused-store-member",
|
|
2413
|
+
"default_severity": "warn",
|
|
2414
|
+
"opt_in": false,
|
|
2415
|
+
"frameworks": [],
|
|
2325
2416
|
"note": null,
|
|
2326
2417
|
"license": "free",
|
|
2327
2418
|
"license_note": null,
|
|
@@ -2356,6 +2447,9 @@
|
|
|
2356
2447
|
"fixable": false,
|
|
2357
2448
|
"suppressible": true,
|
|
2358
2449
|
"suppress_comment": "// fallow-ignore-next-line unresolved-import",
|
|
2450
|
+
"default_severity": "error",
|
|
2451
|
+
"opt_in": false,
|
|
2452
|
+
"frameworks": [],
|
|
2359
2453
|
"note": null,
|
|
2360
2454
|
"license": "free",
|
|
2361
2455
|
"license_note": null,
|
|
@@ -2390,6 +2484,9 @@
|
|
|
2390
2484
|
"fixable": false,
|
|
2391
2485
|
"suppressible": false,
|
|
2392
2486
|
"suppress_comment": null,
|
|
2487
|
+
"default_severity": "error",
|
|
2488
|
+
"opt_in": false,
|
|
2489
|
+
"frameworks": [],
|
|
2393
2490
|
"note": null,
|
|
2394
2491
|
"license": "free",
|
|
2395
2492
|
"license_note": null,
|
|
@@ -2424,6 +2521,9 @@
|
|
|
2424
2521
|
"fixable": false,
|
|
2425
2522
|
"suppressible": true,
|
|
2426
2523
|
"suppress_comment": "// fallow-ignore-file duplicate-export",
|
|
2524
|
+
"default_severity": "error",
|
|
2525
|
+
"opt_in": false,
|
|
2526
|
+
"frameworks": [],
|
|
2427
2527
|
"note": "fallow fix can add an ignoreExports rule to the fallow config instead of editing source",
|
|
2428
2528
|
"license": "free",
|
|
2429
2529
|
"license_note": null,
|
|
@@ -2460,6 +2560,9 @@
|
|
|
2460
2560
|
"fixable": false,
|
|
2461
2561
|
"suppressible": true,
|
|
2462
2562
|
"suppress_comment": "// fallow-ignore-next-line circular-dependency",
|
|
2563
|
+
"default_severity": "error",
|
|
2564
|
+
"opt_in": false,
|
|
2565
|
+
"frameworks": [],
|
|
2463
2566
|
"note": null,
|
|
2464
2567
|
"license": "free",
|
|
2465
2568
|
"license_note": null,
|
|
@@ -2498,6 +2601,9 @@
|
|
|
2498
2601
|
"fixable": false,
|
|
2499
2602
|
"suppressible": true,
|
|
2500
2603
|
"suppress_comment": "// fallow-ignore-file re-export-cycle",
|
|
2604
|
+
"default_severity": "warn",
|
|
2605
|
+
"opt_in": false,
|
|
2606
|
+
"frameworks": [],
|
|
2501
2607
|
"note": null,
|
|
2502
2608
|
"license": "free",
|
|
2503
2609
|
"license_note": null,
|
|
@@ -2532,6 +2638,9 @@
|
|
|
2532
2638
|
"fixable": false,
|
|
2533
2639
|
"suppressible": true,
|
|
2534
2640
|
"suppress_comment": "// fallow-ignore-next-line boundary-violation",
|
|
2641
|
+
"default_severity": "error",
|
|
2642
|
+
"opt_in": false,
|
|
2643
|
+
"frameworks": [],
|
|
2535
2644
|
"note": "Requires configured boundary zones (boundaries config)",
|
|
2536
2645
|
"license": "free",
|
|
2537
2646
|
"license_note": null,
|
|
@@ -2565,6 +2674,9 @@
|
|
|
2565
2674
|
"fixable": false,
|
|
2566
2675
|
"suppressible": true,
|
|
2567
2676
|
"suppress_comment": "// fallow-ignore-file boundary-violation",
|
|
2677
|
+
"default_severity": "error",
|
|
2678
|
+
"opt_in": false,
|
|
2679
|
+
"frameworks": [],
|
|
2568
2680
|
"note": "Requires boundaries.coverage.requireAllFiles",
|
|
2569
2681
|
"license": "free",
|
|
2570
2682
|
"license_note": null,
|
|
@@ -2599,6 +2711,9 @@
|
|
|
2599
2711
|
"fixable": false,
|
|
2600
2712
|
"suppressible": true,
|
|
2601
2713
|
"suppress_comment": "// fallow-ignore-next-line boundary-call-violation",
|
|
2714
|
+
"default_severity": "error",
|
|
2715
|
+
"opt_in": false,
|
|
2716
|
+
"frameworks": [],
|
|
2602
2717
|
"note": "Requires boundaries.calls.forbidden patterns",
|
|
2603
2718
|
"license": "free",
|
|
2604
2719
|
"license_note": null,
|
|
@@ -2632,6 +2747,9 @@
|
|
|
2632
2747
|
"fixable": false,
|
|
2633
2748
|
"suppressible": true,
|
|
2634
2749
|
"suppress_comment": "// fallow-ignore-next-line policy-violation",
|
|
2750
|
+
"default_severity": "warn",
|
|
2751
|
+
"opt_in": false,
|
|
2752
|
+
"frameworks": [],
|
|
2635
2753
|
"note": "Requires a configured rule pack (rulePacks config)",
|
|
2636
2754
|
"license": "free",
|
|
2637
2755
|
"license_note": null,
|
|
@@ -2665,6 +2783,9 @@
|
|
|
2665
2783
|
"fixable": false,
|
|
2666
2784
|
"suppressible": false,
|
|
2667
2785
|
"suppress_comment": null,
|
|
2786
|
+
"default_severity": "warn",
|
|
2787
|
+
"opt_in": false,
|
|
2788
|
+
"frameworks": [],
|
|
2668
2789
|
"note": "Fix by removing the stale suppression marker itself",
|
|
2669
2790
|
"license": "free",
|
|
2670
2791
|
"license_note": null,
|
|
@@ -2694,6 +2815,9 @@
|
|
|
2694
2815
|
"fixable": false,
|
|
2695
2816
|
"suppressible": false,
|
|
2696
2817
|
"suppress_comment": null,
|
|
2818
|
+
"default_severity": "off",
|
|
2819
|
+
"opt_in": true,
|
|
2820
|
+
"frameworks": [],
|
|
2697
2821
|
"note": null,
|
|
2698
2822
|
"license": "free",
|
|
2699
2823
|
"license_note": null,
|
|
@@ -2731,6 +2855,9 @@
|
|
|
2731
2855
|
"fixable": true,
|
|
2732
2856
|
"suppressible": false,
|
|
2733
2857
|
"suppress_comment": null,
|
|
2858
|
+
"default_severity": "warn",
|
|
2859
|
+
"opt_in": false,
|
|
2860
|
+
"frameworks": [],
|
|
2734
2861
|
"note": null,
|
|
2735
2862
|
"license": "free",
|
|
2736
2863
|
"license_note": null,
|
|
@@ -2768,6 +2895,9 @@
|
|
|
2768
2895
|
"fixable": false,
|
|
2769
2896
|
"suppressible": false,
|
|
2770
2897
|
"suppress_comment": null,
|
|
2898
|
+
"default_severity": "warn",
|
|
2899
|
+
"opt_in": false,
|
|
2900
|
+
"frameworks": [],
|
|
2771
2901
|
"note": null,
|
|
2772
2902
|
"license": "free",
|
|
2773
2903
|
"license_note": null,
|
|
@@ -2805,6 +2935,9 @@
|
|
|
2805
2935
|
"fixable": false,
|
|
2806
2936
|
"suppressible": false,
|
|
2807
2937
|
"suppress_comment": null,
|
|
2938
|
+
"default_severity": "error",
|
|
2939
|
+
"opt_in": false,
|
|
2940
|
+
"frameworks": [],
|
|
2808
2941
|
"note": null,
|
|
2809
2942
|
"license": "free",
|
|
2810
2943
|
"license_note": null,
|
|
@@ -2843,6 +2976,9 @@
|
|
|
2843
2976
|
"fixable": false,
|
|
2844
2977
|
"suppressible": false,
|
|
2845
2978
|
"suppress_comment": null,
|
|
2979
|
+
"default_severity": "warn",
|
|
2980
|
+
"opt_in": false,
|
|
2981
|
+
"frameworks": [],
|
|
2846
2982
|
"note": null,
|
|
2847
2983
|
"license": "free",
|
|
2848
2984
|
"license_note": null,
|
|
@@ -2881,6 +3017,9 @@
|
|
|
2881
3017
|
"fixable": false,
|
|
2882
3018
|
"suppressible": false,
|
|
2883
3019
|
"suppress_comment": null,
|
|
3020
|
+
"default_severity": "error",
|
|
3021
|
+
"opt_in": false,
|
|
3022
|
+
"frameworks": [],
|
|
2884
3023
|
"note": null,
|
|
2885
3024
|
"license": "free",
|
|
2886
3025
|
"license_note": null,
|
|
@@ -2914,6 +3053,11 @@
|
|
|
2914
3053
|
"fixable": false,
|
|
2915
3054
|
"suppressible": true,
|
|
2916
3055
|
"suppress_comment": "// fallow-ignore-next-line invalid-client-export",
|
|
3056
|
+
"default_severity": "warn",
|
|
3057
|
+
"opt_in": false,
|
|
3058
|
+
"frameworks": [
|
|
3059
|
+
"next"
|
|
3060
|
+
],
|
|
2917
3061
|
"note": "Requires the project to declare next",
|
|
2918
3062
|
"license": "free",
|
|
2919
3063
|
"license_note": null,
|
|
@@ -2947,6 +3091,9 @@
|
|
|
2947
3091
|
"fixable": false,
|
|
2948
3092
|
"suppressible": true,
|
|
2949
3093
|
"suppress_comment": "// fallow-ignore-next-line mixed-client-server-barrel",
|
|
3094
|
+
"default_severity": "warn",
|
|
3095
|
+
"opt_in": false,
|
|
3096
|
+
"frameworks": [],
|
|
2950
3097
|
"note": "Requires the project to declare next",
|
|
2951
3098
|
"license": "free",
|
|
2952
3099
|
"license_note": null,
|
|
@@ -2980,6 +3127,9 @@
|
|
|
2980
3127
|
"fixable": false,
|
|
2981
3128
|
"suppressible": true,
|
|
2982
3129
|
"suppress_comment": "// fallow-ignore-next-line misplaced-directive",
|
|
3130
|
+
"default_severity": "warn",
|
|
3131
|
+
"opt_in": false,
|
|
3132
|
+
"frameworks": [],
|
|
2983
3133
|
"note": "Requires the project to declare next",
|
|
2984
3134
|
"license": "free",
|
|
2985
3135
|
"license_note": null,
|
|
@@ -3013,6 +3163,9 @@
|
|
|
3013
3163
|
"fixable": false,
|
|
3014
3164
|
"suppressible": true,
|
|
3015
3165
|
"suppress_comment": "// fallow-ignore-next-line unprovided-inject",
|
|
3166
|
+
"default_severity": "warn",
|
|
3167
|
+
"opt_in": false,
|
|
3168
|
+
"frameworks": [],
|
|
3016
3169
|
"note": null,
|
|
3017
3170
|
"license": "free",
|
|
3018
3171
|
"license_note": null,
|
|
@@ -3046,6 +3199,9 @@
|
|
|
3046
3199
|
"fixable": false,
|
|
3047
3200
|
"suppressible": true,
|
|
3048
3201
|
"suppress_comment": "// fallow-ignore-next-line unrendered-component",
|
|
3202
|
+
"default_severity": "warn",
|
|
3203
|
+
"opt_in": false,
|
|
3204
|
+
"frameworks": [],
|
|
3049
3205
|
"note": null,
|
|
3050
3206
|
"license": "free",
|
|
3051
3207
|
"license_note": null,
|
|
@@ -3079,6 +3235,9 @@
|
|
|
3079
3235
|
"fixable": false,
|
|
3080
3236
|
"suppressible": true,
|
|
3081
3237
|
"suppress_comment": "// fallow-ignore-next-line unused-component-prop",
|
|
3238
|
+
"default_severity": "warn",
|
|
3239
|
+
"opt_in": false,
|
|
3240
|
+
"frameworks": [],
|
|
3082
3241
|
"note": null,
|
|
3083
3242
|
"license": "free",
|
|
3084
3243
|
"license_note": null,
|
|
@@ -3112,6 +3271,9 @@
|
|
|
3112
3271
|
"fixable": false,
|
|
3113
3272
|
"suppressible": true,
|
|
3114
3273
|
"suppress_comment": "// fallow-ignore-next-line unused-component-emit",
|
|
3274
|
+
"default_severity": "warn",
|
|
3275
|
+
"opt_in": false,
|
|
3276
|
+
"frameworks": [],
|
|
3115
3277
|
"note": null,
|
|
3116
3278
|
"license": "free",
|
|
3117
3279
|
"license_note": null,
|
|
@@ -3145,6 +3307,9 @@
|
|
|
3145
3307
|
"fixable": false,
|
|
3146
3308
|
"suppressible": true,
|
|
3147
3309
|
"suppress_comment": "// fallow-ignore-next-line unused-component-input",
|
|
3310
|
+
"default_severity": "warn",
|
|
3311
|
+
"opt_in": false,
|
|
3312
|
+
"frameworks": [],
|
|
3148
3313
|
"note": null,
|
|
3149
3314
|
"license": "free",
|
|
3150
3315
|
"license_note": null,
|
|
@@ -3178,6 +3343,9 @@
|
|
|
3178
3343
|
"fixable": false,
|
|
3179
3344
|
"suppressible": true,
|
|
3180
3345
|
"suppress_comment": "// fallow-ignore-next-line unused-component-output",
|
|
3346
|
+
"default_severity": "warn",
|
|
3347
|
+
"opt_in": false,
|
|
3348
|
+
"frameworks": [],
|
|
3181
3349
|
"note": null,
|
|
3182
3350
|
"license": "free",
|
|
3183
3351
|
"license_note": null,
|
|
@@ -3211,6 +3379,9 @@
|
|
|
3211
3379
|
"fixable": false,
|
|
3212
3380
|
"suppressible": true,
|
|
3213
3381
|
"suppress_comment": "// fallow-ignore-next-line unused-svelte-event",
|
|
3382
|
+
"default_severity": "warn",
|
|
3383
|
+
"opt_in": false,
|
|
3384
|
+
"frameworks": [],
|
|
3214
3385
|
"note": null,
|
|
3215
3386
|
"license": "free",
|
|
3216
3387
|
"license_note": null,
|
|
@@ -3244,6 +3415,9 @@
|
|
|
3244
3415
|
"fixable": false,
|
|
3245
3416
|
"suppressible": true,
|
|
3246
3417
|
"suppress_comment": "// fallow-ignore-next-line unused-server-action",
|
|
3418
|
+
"default_severity": "warn",
|
|
3419
|
+
"opt_in": false,
|
|
3420
|
+
"frameworks": [],
|
|
3247
3421
|
"note": null,
|
|
3248
3422
|
"license": "free",
|
|
3249
3423
|
"license_note": null,
|
|
@@ -3277,6 +3451,9 @@
|
|
|
3277
3451
|
"fixable": false,
|
|
3278
3452
|
"suppressible": true,
|
|
3279
3453
|
"suppress_comment": "// fallow-ignore-next-line unused-load-data-key",
|
|
3454
|
+
"default_severity": "warn",
|
|
3455
|
+
"opt_in": false,
|
|
3456
|
+
"frameworks": [],
|
|
3280
3457
|
"note": null,
|
|
3281
3458
|
"license": "free",
|
|
3282
3459
|
"license_note": null,
|
|
@@ -3306,6 +3483,9 @@
|
|
|
3306
3483
|
"fixable": false,
|
|
3307
3484
|
"suppressible": true,
|
|
3308
3485
|
"suppress_comment": "// fallow-ignore-next-line prop-drilling",
|
|
3486
|
+
"default_severity": "off",
|
|
3487
|
+
"opt_in": true,
|
|
3488
|
+
"frameworks": [],
|
|
3309
3489
|
"note": "Opt-in: set rules.prop-drilling to warn or error to enable. Defaults to off.",
|
|
3310
3490
|
"license": "free",
|
|
3311
3491
|
"license_note": null,
|
|
@@ -3337,6 +3517,9 @@
|
|
|
3337
3517
|
"fixable": false,
|
|
3338
3518
|
"suppressible": true,
|
|
3339
3519
|
"suppress_comment": "// fallow-ignore-next-line thin-wrapper",
|
|
3520
|
+
"default_severity": "off",
|
|
3521
|
+
"opt_in": true,
|
|
3522
|
+
"frameworks": [],
|
|
3340
3523
|
"note": "Opt-in: set rules.thin-wrapper to warn or error to enable. Defaults to off.",
|
|
3341
3524
|
"license": "free",
|
|
3342
3525
|
"license_note": null,
|
|
@@ -3368,6 +3551,9 @@
|
|
|
3368
3551
|
"fixable": false,
|
|
3369
3552
|
"suppressible": true,
|
|
3370
3553
|
"suppress_comment": "// fallow-ignore-next-line duplicate-prop-shape",
|
|
3554
|
+
"default_severity": "off",
|
|
3555
|
+
"opt_in": true,
|
|
3556
|
+
"frameworks": [],
|
|
3371
3557
|
"note": "Opt-in: set rules.duplicate-prop-shape to warn or error to enable. Defaults to off.",
|
|
3372
3558
|
"license": "free",
|
|
3373
3559
|
"license_note": null,
|
|
@@ -3401,6 +3587,11 @@
|
|
|
3401
3587
|
"fixable": false,
|
|
3402
3588
|
"suppressible": true,
|
|
3403
3589
|
"suppress_comment": "// fallow-ignore-file route-collision",
|
|
3590
|
+
"default_severity": "error",
|
|
3591
|
+
"opt_in": false,
|
|
3592
|
+
"frameworks": [
|
|
3593
|
+
"next"
|
|
3594
|
+
],
|
|
3404
3595
|
"note": null,
|
|
3405
3596
|
"license": "free",
|
|
3406
3597
|
"license_note": null,
|
|
@@ -3434,6 +3625,11 @@
|
|
|
3434
3625
|
"fixable": false,
|
|
3435
3626
|
"suppressible": true,
|
|
3436
3627
|
"suppress_comment": "// fallow-ignore-file dynamic-segment-name-conflict",
|
|
3628
|
+
"default_severity": "error",
|
|
3629
|
+
"opt_in": false,
|
|
3630
|
+
"frameworks": [
|
|
3631
|
+
"next"
|
|
3632
|
+
],
|
|
3437
3633
|
"note": null,
|
|
3438
3634
|
"license": "free",
|
|
3439
3635
|
"license_note": null,
|
|
@@ -3461,6 +3657,9 @@
|
|
|
3461
3657
|
"fixable": false,
|
|
3462
3658
|
"suppressible": true,
|
|
3463
3659
|
"suppress_comment": "// fallow-ignore-next-line complexity",
|
|
3660
|
+
"default_severity": null,
|
|
3661
|
+
"opt_in": null,
|
|
3662
|
+
"frameworks": [],
|
|
3464
3663
|
"note": null,
|
|
3465
3664
|
"license": "free",
|
|
3466
3665
|
"license_note": null,
|
|
@@ -3488,6 +3687,9 @@
|
|
|
3488
3687
|
"fixable": false,
|
|
3489
3688
|
"suppressible": true,
|
|
3490
3689
|
"suppress_comment": "// fallow-ignore-next-line complexity",
|
|
3690
|
+
"default_severity": null,
|
|
3691
|
+
"opt_in": null,
|
|
3692
|
+
"frameworks": [],
|
|
3491
3693
|
"note": null,
|
|
3492
3694
|
"license": "free",
|
|
3493
3695
|
"license_note": null,
|
|
@@ -3515,6 +3717,9 @@
|
|
|
3515
3717
|
"fixable": false,
|
|
3516
3718
|
"suppressible": true,
|
|
3517
3719
|
"suppress_comment": "// fallow-ignore-next-line complexity",
|
|
3720
|
+
"default_severity": null,
|
|
3721
|
+
"opt_in": null,
|
|
3722
|
+
"frameworks": [],
|
|
3518
3723
|
"note": null,
|
|
3519
3724
|
"license": "free",
|
|
3520
3725
|
"license_note": null,
|
|
@@ -3542,6 +3747,9 @@
|
|
|
3542
3747
|
"fixable": false,
|
|
3543
3748
|
"suppressible": true,
|
|
3544
3749
|
"suppress_comment": "// fallow-ignore-next-line complexity",
|
|
3750
|
+
"default_severity": null,
|
|
3751
|
+
"opt_in": null,
|
|
3752
|
+
"frameworks": [],
|
|
3545
3753
|
"note": null,
|
|
3546
3754
|
"license": "free",
|
|
3547
3755
|
"license_note": null,
|
|
@@ -3569,6 +3777,9 @@
|
|
|
3569
3777
|
"fixable": false,
|
|
3570
3778
|
"suppressible": false,
|
|
3571
3779
|
"suppress_comment": null,
|
|
3780
|
+
"default_severity": null,
|
|
3781
|
+
"opt_in": null,
|
|
3782
|
+
"frameworks": [],
|
|
3572
3783
|
"note": null,
|
|
3573
3784
|
"license": "free",
|
|
3574
3785
|
"license_note": null,
|
|
@@ -3596,6 +3807,9 @@
|
|
|
3596
3807
|
"fixable": false,
|
|
3597
3808
|
"suppressible": true,
|
|
3598
3809
|
"suppress_comment": "// fallow-ignore-next-line css-token-drift",
|
|
3810
|
+
"default_severity": "warn",
|
|
3811
|
+
"opt_in": false,
|
|
3812
|
+
"frameworks": [],
|
|
3599
3813
|
"note": null,
|
|
3600
3814
|
"license": "free",
|
|
3601
3815
|
"license_note": null,
|
|
@@ -3623,6 +3837,9 @@
|
|
|
3623
3837
|
"fixable": false,
|
|
3624
3838
|
"suppressible": true,
|
|
3625
3839
|
"suppress_comment": "// fallow-ignore-next-line css-duplicate-block",
|
|
3840
|
+
"default_severity": "warn",
|
|
3841
|
+
"opt_in": false,
|
|
3842
|
+
"frameworks": [],
|
|
3626
3843
|
"note": null,
|
|
3627
3844
|
"license": "free",
|
|
3628
3845
|
"license_note": null,
|
|
@@ -3650,6 +3867,9 @@
|
|
|
3650
3867
|
"fixable": false,
|
|
3651
3868
|
"suppressible": true,
|
|
3652
3869
|
"suppress_comment": "// fallow-ignore-next-line css-selector-complexity",
|
|
3870
|
+
"default_severity": "warn",
|
|
3871
|
+
"opt_in": false,
|
|
3872
|
+
"frameworks": [],
|
|
3653
3873
|
"note": null,
|
|
3654
3874
|
"license": "free",
|
|
3655
3875
|
"license_note": null,
|
|
@@ -3677,6 +3897,9 @@
|
|
|
3677
3897
|
"fixable": false,
|
|
3678
3898
|
"suppressible": true,
|
|
3679
3899
|
"suppress_comment": "// fallow-ignore-next-line css-dead-surface",
|
|
3900
|
+
"default_severity": "warn",
|
|
3901
|
+
"opt_in": false,
|
|
3902
|
+
"frameworks": [],
|
|
3680
3903
|
"note": null,
|
|
3681
3904
|
"license": "free",
|
|
3682
3905
|
"license_note": null,
|
|
@@ -3704,6 +3927,9 @@
|
|
|
3704
3927
|
"fixable": false,
|
|
3705
3928
|
"suppressible": true,
|
|
3706
3929
|
"suppress_comment": "// fallow-ignore-next-line css-broken-reference",
|
|
3930
|
+
"default_severity": "warn",
|
|
3931
|
+
"opt_in": false,
|
|
3932
|
+
"frameworks": [],
|
|
3707
3933
|
"note": null,
|
|
3708
3934
|
"license": "free",
|
|
3709
3935
|
"license_note": null,
|
|
@@ -3731,6 +3957,9 @@
|
|
|
3731
3957
|
"fixable": false,
|
|
3732
3958
|
"suppressible": true,
|
|
3733
3959
|
"suppress_comment": "// fallow-ignore-file coverage-gaps",
|
|
3960
|
+
"default_severity": "off",
|
|
3961
|
+
"opt_in": true,
|
|
3962
|
+
"frameworks": [],
|
|
3734
3963
|
"note": null,
|
|
3735
3964
|
"license": "free",
|
|
3736
3965
|
"license_note": null,
|
|
@@ -3758,6 +3987,9 @@
|
|
|
3758
3987
|
"fixable": false,
|
|
3759
3988
|
"suppressible": true,
|
|
3760
3989
|
"suppress_comment": "// fallow-ignore-file coverage-gaps",
|
|
3990
|
+
"default_severity": "off",
|
|
3991
|
+
"opt_in": true,
|
|
3992
|
+
"frameworks": [],
|
|
3761
3993
|
"note": null,
|
|
3762
3994
|
"license": "free",
|
|
3763
3995
|
"license_note": null,
|
|
@@ -3785,6 +4017,9 @@
|
|
|
3785
4017
|
"fixable": false,
|
|
3786
4018
|
"suppressible": false,
|
|
3787
4019
|
"suppress_comment": null,
|
|
4020
|
+
"default_severity": null,
|
|
4021
|
+
"opt_in": null,
|
|
4022
|
+
"frameworks": [],
|
|
3788
4023
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
3789
4024
|
"license": "freemium",
|
|
3790
4025
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
@@ -3812,6 +4047,9 @@
|
|
|
3812
4047
|
"fixable": false,
|
|
3813
4048
|
"suppressible": false,
|
|
3814
4049
|
"suppress_comment": null,
|
|
4050
|
+
"default_severity": null,
|
|
4051
|
+
"opt_in": null,
|
|
4052
|
+
"frameworks": [],
|
|
3815
4053
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
3816
4054
|
"license": "freemium",
|
|
3817
4055
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
@@ -3839,6 +4077,9 @@
|
|
|
3839
4077
|
"fixable": false,
|
|
3840
4078
|
"suppressible": false,
|
|
3841
4079
|
"suppress_comment": null,
|
|
4080
|
+
"default_severity": null,
|
|
4081
|
+
"opt_in": null,
|
|
4082
|
+
"frameworks": [],
|
|
3842
4083
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
3843
4084
|
"license": "freemium",
|
|
3844
4085
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
@@ -3866,6 +4107,9 @@
|
|
|
3866
4107
|
"fixable": false,
|
|
3867
4108
|
"suppressible": false,
|
|
3868
4109
|
"suppress_comment": null,
|
|
4110
|
+
"default_severity": null,
|
|
4111
|
+
"opt_in": null,
|
|
4112
|
+
"frameworks": [],
|
|
3869
4113
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
3870
4114
|
"license": "freemium",
|
|
3871
4115
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
@@ -3893,6 +4137,9 @@
|
|
|
3893
4137
|
"fixable": false,
|
|
3894
4138
|
"suppressible": false,
|
|
3895
4139
|
"suppress_comment": null,
|
|
4140
|
+
"default_severity": null,
|
|
4141
|
+
"opt_in": null,
|
|
4142
|
+
"frameworks": [],
|
|
3896
4143
|
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
|
|
3897
4144
|
"license": "freemium",
|
|
3898
4145
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
@@ -3920,6 +4167,9 @@
|
|
|
3920
4167
|
"fixable": false,
|
|
3921
4168
|
"suppressible": false,
|
|
3922
4169
|
"suppress_comment": null,
|
|
4170
|
+
"default_severity": null,
|
|
4171
|
+
"opt_in": null,
|
|
4172
|
+
"frameworks": [],
|
|
3923
4173
|
"note": "Produced by fallow coverage analyze",
|
|
3924
4174
|
"license": "freemium",
|
|
3925
4175
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
@@ -3947,6 +4197,9 @@
|
|
|
3947
4197
|
"fixable": false,
|
|
3948
4198
|
"suppressible": false,
|
|
3949
4199
|
"suppress_comment": null,
|
|
4200
|
+
"default_severity": null,
|
|
4201
|
+
"opt_in": null,
|
|
4202
|
+
"frameworks": [],
|
|
3950
4203
|
"note": "Produced by fallow coverage analyze",
|
|
3951
4204
|
"license": "freemium",
|
|
3952
4205
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
@@ -3974,6 +4227,9 @@
|
|
|
3974
4227
|
"fixable": false,
|
|
3975
4228
|
"suppressible": false,
|
|
3976
4229
|
"suppress_comment": null,
|
|
4230
|
+
"default_severity": null,
|
|
4231
|
+
"opt_in": null,
|
|
4232
|
+
"frameworks": [],
|
|
3977
4233
|
"note": "Produced by fallow coverage analyze",
|
|
3978
4234
|
"license": "freemium",
|
|
3979
4235
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
@@ -4001,6 +4257,9 @@
|
|
|
4001
4257
|
"fixable": false,
|
|
4002
4258
|
"suppressible": false,
|
|
4003
4259
|
"suppress_comment": null,
|
|
4260
|
+
"default_severity": null,
|
|
4261
|
+
"opt_in": null,
|
|
4262
|
+
"frameworks": [],
|
|
4004
4263
|
"note": "Produced by fallow coverage analyze",
|
|
4005
4264
|
"license": "freemium",
|
|
4006
4265
|
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
|
|
@@ -4028,6 +4287,9 @@
|
|
|
4028
4287
|
"fixable": false,
|
|
4029
4288
|
"suppressible": true,
|
|
4030
4289
|
"suppress_comment": "// fallow-ignore-next-line code-duplication",
|
|
4290
|
+
"default_severity": null,
|
|
4291
|
+
"opt_in": null,
|
|
4292
|
+
"frameworks": [],
|
|
4031
4293
|
"note": "Reported by fallow dupes (and bare fallow / fallow audit)",
|
|
4032
4294
|
"license": "free",
|
|
4033
4295
|
"license_note": null,
|
|
@@ -4055,6 +4317,9 @@
|
|
|
4055
4317
|
"fixable": false,
|
|
4056
4318
|
"suppressible": true,
|
|
4057
4319
|
"suppress_comment": "// fallow-ignore-next-line feature-flag",
|
|
4320
|
+
"default_severity": "off",
|
|
4321
|
+
"opt_in": true,
|
|
4322
|
+
"frameworks": [],
|
|
4058
4323
|
"note": "Reported by fallow flags",
|
|
4059
4324
|
"license": "free",
|
|
4060
4325
|
"license_note": null,
|
|
@@ -4082,6 +4347,9 @@
|
|
|
4082
4347
|
"fixable": false,
|
|
4083
4348
|
"suppressible": true,
|
|
4084
4349
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4350
|
+
"default_severity": "off",
|
|
4351
|
+
"opt_in": true,
|
|
4352
|
+
"frameworks": [],
|
|
4085
4353
|
"note": null,
|
|
4086
4354
|
"license": "free",
|
|
4087
4355
|
"license_note": null,
|
|
@@ -4109,6 +4377,9 @@
|
|
|
4109
4377
|
"fixable": false,
|
|
4110
4378
|
"suppressible": true,
|
|
4111
4379
|
"suppress_comment": "// fallow-ignore-file security-client-server-leak",
|
|
4380
|
+
"default_severity": "off",
|
|
4381
|
+
"opt_in": true,
|
|
4382
|
+
"frameworks": [],
|
|
4112
4383
|
"note": null,
|
|
4113
4384
|
"license": "free",
|
|
4114
4385
|
"license_note": null,
|
|
@@ -4136,6 +4407,9 @@
|
|
|
4136
4407
|
"fixable": false,
|
|
4137
4408
|
"suppressible": true,
|
|
4138
4409
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4410
|
+
"default_severity": "off",
|
|
4411
|
+
"opt_in": true,
|
|
4412
|
+
"frameworks": [],
|
|
4139
4413
|
"note": "Include-required category: enable via security.categories.include",
|
|
4140
4414
|
"license": "free",
|
|
4141
4415
|
"license_note": null,
|
|
@@ -4163,6 +4437,9 @@
|
|
|
4163
4437
|
"fixable": false,
|
|
4164
4438
|
"suppressible": true,
|
|
4165
4439
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4440
|
+
"default_severity": "off",
|
|
4441
|
+
"opt_in": true,
|
|
4442
|
+
"frameworks": [],
|
|
4166
4443
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4167
4444
|
"license": "free",
|
|
4168
4445
|
"license_note": null,
|
|
@@ -4190,6 +4467,9 @@
|
|
|
4190
4467
|
"fixable": false,
|
|
4191
4468
|
"suppressible": true,
|
|
4192
4469
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4470
|
+
"default_severity": "off",
|
|
4471
|
+
"opt_in": true,
|
|
4472
|
+
"frameworks": [],
|
|
4193
4473
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4194
4474
|
"license": "free",
|
|
4195
4475
|
"license_note": null,
|
|
@@ -4217,6 +4497,9 @@
|
|
|
4217
4497
|
"fixable": false,
|
|
4218
4498
|
"suppressible": true,
|
|
4219
4499
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4500
|
+
"default_severity": "off",
|
|
4501
|
+
"opt_in": true,
|
|
4502
|
+
"frameworks": [],
|
|
4220
4503
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4221
4504
|
"license": "free",
|
|
4222
4505
|
"license_note": null,
|
|
@@ -4244,6 +4527,9 @@
|
|
|
4244
4527
|
"fixable": false,
|
|
4245
4528
|
"suppressible": true,
|
|
4246
4529
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4530
|
+
"default_severity": "off",
|
|
4531
|
+
"opt_in": true,
|
|
4532
|
+
"frameworks": [],
|
|
4247
4533
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4248
4534
|
"license": "free",
|
|
4249
4535
|
"license_note": null,
|
|
@@ -4271,6 +4557,9 @@
|
|
|
4271
4557
|
"fixable": false,
|
|
4272
4558
|
"suppressible": true,
|
|
4273
4559
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4560
|
+
"default_severity": "off",
|
|
4561
|
+
"opt_in": true,
|
|
4562
|
+
"frameworks": [],
|
|
4274
4563
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4275
4564
|
"license": "free",
|
|
4276
4565
|
"license_note": null,
|
|
@@ -4298,6 +4587,9 @@
|
|
|
4298
4587
|
"fixable": false,
|
|
4299
4588
|
"suppressible": true,
|
|
4300
4589
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4590
|
+
"default_severity": "off",
|
|
4591
|
+
"opt_in": true,
|
|
4592
|
+
"frameworks": [],
|
|
4301
4593
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4302
4594
|
"license": "free",
|
|
4303
4595
|
"license_note": null,
|
|
@@ -4325,6 +4617,9 @@
|
|
|
4325
4617
|
"fixable": false,
|
|
4326
4618
|
"suppressible": true,
|
|
4327
4619
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4620
|
+
"default_severity": "off",
|
|
4621
|
+
"opt_in": true,
|
|
4622
|
+
"frameworks": [],
|
|
4328
4623
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4329
4624
|
"license": "free",
|
|
4330
4625
|
"license_note": null,
|
|
@@ -4352,6 +4647,9 @@
|
|
|
4352
4647
|
"fixable": false,
|
|
4353
4648
|
"suppressible": true,
|
|
4354
4649
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4650
|
+
"default_severity": "off",
|
|
4651
|
+
"opt_in": true,
|
|
4652
|
+
"frameworks": [],
|
|
4355
4653
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4356
4654
|
"license": "free",
|
|
4357
4655
|
"license_note": null,
|
|
@@ -4379,6 +4677,9 @@
|
|
|
4379
4677
|
"fixable": false,
|
|
4380
4678
|
"suppressible": true,
|
|
4381
4679
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4680
|
+
"default_severity": "off",
|
|
4681
|
+
"opt_in": true,
|
|
4682
|
+
"frameworks": [],
|
|
4382
4683
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4383
4684
|
"license": "free",
|
|
4384
4685
|
"license_note": null,
|
|
@@ -4406,6 +4707,9 @@
|
|
|
4406
4707
|
"fixable": false,
|
|
4407
4708
|
"suppressible": true,
|
|
4408
4709
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4710
|
+
"default_severity": "off",
|
|
4711
|
+
"opt_in": true,
|
|
4712
|
+
"frameworks": [],
|
|
4409
4713
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4410
4714
|
"license": "free",
|
|
4411
4715
|
"license_note": null,
|
|
@@ -4433,6 +4737,9 @@
|
|
|
4433
4737
|
"fixable": false,
|
|
4434
4738
|
"suppressible": true,
|
|
4435
4739
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4740
|
+
"default_severity": "off",
|
|
4741
|
+
"opt_in": true,
|
|
4742
|
+
"frameworks": [],
|
|
4436
4743
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4437
4744
|
"license": "free",
|
|
4438
4745
|
"license_note": null,
|
|
@@ -4460,6 +4767,9 @@
|
|
|
4460
4767
|
"fixable": false,
|
|
4461
4768
|
"suppressible": true,
|
|
4462
4769
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4770
|
+
"default_severity": "off",
|
|
4771
|
+
"opt_in": true,
|
|
4772
|
+
"frameworks": [],
|
|
4463
4773
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4464
4774
|
"license": "free",
|
|
4465
4775
|
"license_note": null,
|
|
@@ -4487,6 +4797,9 @@
|
|
|
4487
4797
|
"fixable": false,
|
|
4488
4798
|
"suppressible": true,
|
|
4489
4799
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4800
|
+
"default_severity": "off",
|
|
4801
|
+
"opt_in": true,
|
|
4802
|
+
"frameworks": [],
|
|
4490
4803
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4491
4804
|
"license": "free",
|
|
4492
4805
|
"license_note": null,
|
|
@@ -4514,6 +4827,9 @@
|
|
|
4514
4827
|
"fixable": false,
|
|
4515
4828
|
"suppressible": true,
|
|
4516
4829
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4830
|
+
"default_severity": "off",
|
|
4831
|
+
"opt_in": true,
|
|
4832
|
+
"frameworks": [],
|
|
4517
4833
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4518
4834
|
"license": "free",
|
|
4519
4835
|
"license_note": null,
|
|
@@ -4541,6 +4857,9 @@
|
|
|
4541
4857
|
"fixable": false,
|
|
4542
4858
|
"suppressible": true,
|
|
4543
4859
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4860
|
+
"default_severity": "off",
|
|
4861
|
+
"opt_in": true,
|
|
4862
|
+
"frameworks": [],
|
|
4544
4863
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4545
4864
|
"license": "free",
|
|
4546
4865
|
"license_note": null,
|
|
@@ -4568,6 +4887,9 @@
|
|
|
4568
4887
|
"fixable": false,
|
|
4569
4888
|
"suppressible": true,
|
|
4570
4889
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4890
|
+
"default_severity": "off",
|
|
4891
|
+
"opt_in": true,
|
|
4892
|
+
"frameworks": [],
|
|
4571
4893
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4572
4894
|
"license": "free",
|
|
4573
4895
|
"license_note": null,
|
|
@@ -4595,6 +4917,9 @@
|
|
|
4595
4917
|
"fixable": false,
|
|
4596
4918
|
"suppressible": true,
|
|
4597
4919
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4920
|
+
"default_severity": "off",
|
|
4921
|
+
"opt_in": true,
|
|
4922
|
+
"frameworks": [],
|
|
4598
4923
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4599
4924
|
"license": "free",
|
|
4600
4925
|
"license_note": null,
|
|
@@ -4622,6 +4947,9 @@
|
|
|
4622
4947
|
"fixable": false,
|
|
4623
4948
|
"suppressible": true,
|
|
4624
4949
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4950
|
+
"default_severity": "off",
|
|
4951
|
+
"opt_in": true,
|
|
4952
|
+
"frameworks": [],
|
|
4625
4953
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4626
4954
|
"license": "free",
|
|
4627
4955
|
"license_note": null,
|
|
@@ -4649,6 +4977,9 @@
|
|
|
4649
4977
|
"fixable": false,
|
|
4650
4978
|
"suppressible": true,
|
|
4651
4979
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
4980
|
+
"default_severity": "off",
|
|
4981
|
+
"opt_in": true,
|
|
4982
|
+
"frameworks": [],
|
|
4652
4983
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4653
4984
|
"license": "free",
|
|
4654
4985
|
"license_note": null,
|
|
@@ -4676,6 +5007,9 @@
|
|
|
4676
5007
|
"fixable": false,
|
|
4677
5008
|
"suppressible": true,
|
|
4678
5009
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5010
|
+
"default_severity": "off",
|
|
5011
|
+
"opt_in": true,
|
|
5012
|
+
"frameworks": [],
|
|
4679
5013
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4680
5014
|
"license": "free",
|
|
4681
5015
|
"license_note": null,
|
|
@@ -4703,6 +5037,9 @@
|
|
|
4703
5037
|
"fixable": false,
|
|
4704
5038
|
"suppressible": true,
|
|
4705
5039
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5040
|
+
"default_severity": "off",
|
|
5041
|
+
"opt_in": true,
|
|
5042
|
+
"frameworks": [],
|
|
4706
5043
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4707
5044
|
"license": "free",
|
|
4708
5045
|
"license_note": null,
|
|
@@ -4730,6 +5067,9 @@
|
|
|
4730
5067
|
"fixable": false,
|
|
4731
5068
|
"suppressible": true,
|
|
4732
5069
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5070
|
+
"default_severity": "off",
|
|
5071
|
+
"opt_in": true,
|
|
5072
|
+
"frameworks": [],
|
|
4733
5073
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4734
5074
|
"license": "free",
|
|
4735
5075
|
"license_note": null,
|
|
@@ -4757,6 +5097,9 @@
|
|
|
4757
5097
|
"fixable": false,
|
|
4758
5098
|
"suppressible": true,
|
|
4759
5099
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5100
|
+
"default_severity": "off",
|
|
5101
|
+
"opt_in": true,
|
|
5102
|
+
"frameworks": [],
|
|
4760
5103
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4761
5104
|
"license": "free",
|
|
4762
5105
|
"license_note": null,
|
|
@@ -4784,6 +5127,9 @@
|
|
|
4784
5127
|
"fixable": false,
|
|
4785
5128
|
"suppressible": true,
|
|
4786
5129
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5130
|
+
"default_severity": "off",
|
|
5131
|
+
"opt_in": true,
|
|
5132
|
+
"frameworks": [],
|
|
4787
5133
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4788
5134
|
"license": "free",
|
|
4789
5135
|
"license_note": null,
|
|
@@ -4811,6 +5157,9 @@
|
|
|
4811
5157
|
"fixable": false,
|
|
4812
5158
|
"suppressible": true,
|
|
4813
5159
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5160
|
+
"default_severity": "off",
|
|
5161
|
+
"opt_in": true,
|
|
5162
|
+
"frameworks": [],
|
|
4814
5163
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4815
5164
|
"license": "free",
|
|
4816
5165
|
"license_note": null,
|
|
@@ -4838,6 +5187,9 @@
|
|
|
4838
5187
|
"fixable": false,
|
|
4839
5188
|
"suppressible": true,
|
|
4840
5189
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5190
|
+
"default_severity": "off",
|
|
5191
|
+
"opt_in": true,
|
|
5192
|
+
"frameworks": [],
|
|
4841
5193
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4842
5194
|
"license": "free",
|
|
4843
5195
|
"license_note": null,
|
|
@@ -4865,6 +5217,9 @@
|
|
|
4865
5217
|
"fixable": false,
|
|
4866
5218
|
"suppressible": true,
|
|
4867
5219
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5220
|
+
"default_severity": "off",
|
|
5221
|
+
"opt_in": true,
|
|
5222
|
+
"frameworks": [],
|
|
4868
5223
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4869
5224
|
"license": "free",
|
|
4870
5225
|
"license_note": null,
|
|
@@ -4892,6 +5247,9 @@
|
|
|
4892
5247
|
"fixable": false,
|
|
4893
5248
|
"suppressible": true,
|
|
4894
5249
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5250
|
+
"default_severity": "off",
|
|
5251
|
+
"opt_in": true,
|
|
5252
|
+
"frameworks": [],
|
|
4895
5253
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4896
5254
|
"license": "free",
|
|
4897
5255
|
"license_note": null,
|
|
@@ -4919,6 +5277,9 @@
|
|
|
4919
5277
|
"fixable": false,
|
|
4920
5278
|
"suppressible": true,
|
|
4921
5279
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5280
|
+
"default_severity": "off",
|
|
5281
|
+
"opt_in": true,
|
|
5282
|
+
"frameworks": [],
|
|
4922
5283
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4923
5284
|
"license": "free",
|
|
4924
5285
|
"license_note": null,
|
|
@@ -4946,6 +5307,9 @@
|
|
|
4946
5307
|
"fixable": false,
|
|
4947
5308
|
"suppressible": true,
|
|
4948
5309
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5310
|
+
"default_severity": "off",
|
|
5311
|
+
"opt_in": true,
|
|
5312
|
+
"frameworks": [],
|
|
4949
5313
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4950
5314
|
"license": "free",
|
|
4951
5315
|
"license_note": null,
|
|
@@ -4973,6 +5337,9 @@
|
|
|
4973
5337
|
"fixable": false,
|
|
4974
5338
|
"suppressible": true,
|
|
4975
5339
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5340
|
+
"default_severity": "off",
|
|
5341
|
+
"opt_in": true,
|
|
5342
|
+
"frameworks": [],
|
|
4976
5343
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
4977
5344
|
"license": "free",
|
|
4978
5345
|
"license_note": null,
|
|
@@ -5000,6 +5367,9 @@
|
|
|
5000
5367
|
"fixable": false,
|
|
5001
5368
|
"suppressible": true,
|
|
5002
5369
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5370
|
+
"default_severity": "off",
|
|
5371
|
+
"opt_in": true,
|
|
5372
|
+
"frameworks": [],
|
|
5003
5373
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5004
5374
|
"license": "free",
|
|
5005
5375
|
"license_note": null,
|
|
@@ -5027,6 +5397,9 @@
|
|
|
5027
5397
|
"fixable": false,
|
|
5028
5398
|
"suppressible": true,
|
|
5029
5399
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5400
|
+
"default_severity": "off",
|
|
5401
|
+
"opt_in": true,
|
|
5402
|
+
"frameworks": [],
|
|
5030
5403
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5031
5404
|
"license": "free",
|
|
5032
5405
|
"license_note": null,
|
|
@@ -5054,6 +5427,9 @@
|
|
|
5054
5427
|
"fixable": false,
|
|
5055
5428
|
"suppressible": true,
|
|
5056
5429
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5430
|
+
"default_severity": "off",
|
|
5431
|
+
"opt_in": true,
|
|
5432
|
+
"frameworks": [],
|
|
5057
5433
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5058
5434
|
"license": "free",
|
|
5059
5435
|
"license_note": null,
|
|
@@ -5081,6 +5457,9 @@
|
|
|
5081
5457
|
"fixable": false,
|
|
5082
5458
|
"suppressible": true,
|
|
5083
5459
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5460
|
+
"default_severity": "off",
|
|
5461
|
+
"opt_in": true,
|
|
5462
|
+
"frameworks": [],
|
|
5084
5463
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5085
5464
|
"license": "free",
|
|
5086
5465
|
"license_note": null,
|
|
@@ -5108,6 +5487,9 @@
|
|
|
5108
5487
|
"fixable": false,
|
|
5109
5488
|
"suppressible": true,
|
|
5110
5489
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5490
|
+
"default_severity": "off",
|
|
5491
|
+
"opt_in": true,
|
|
5492
|
+
"frameworks": [],
|
|
5111
5493
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5112
5494
|
"license": "free",
|
|
5113
5495
|
"license_note": null,
|
|
@@ -5135,6 +5517,9 @@
|
|
|
5135
5517
|
"fixable": false,
|
|
5136
5518
|
"suppressible": true,
|
|
5137
5519
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5520
|
+
"default_severity": "off",
|
|
5521
|
+
"opt_in": true,
|
|
5522
|
+
"frameworks": [],
|
|
5138
5523
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5139
5524
|
"license": "free",
|
|
5140
5525
|
"license_note": null,
|
|
@@ -5162,6 +5547,9 @@
|
|
|
5162
5547
|
"fixable": false,
|
|
5163
5548
|
"suppressible": true,
|
|
5164
5549
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5550
|
+
"default_severity": "off",
|
|
5551
|
+
"opt_in": true,
|
|
5552
|
+
"frameworks": [],
|
|
5165
5553
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5166
5554
|
"license": "free",
|
|
5167
5555
|
"license_note": null,
|
|
@@ -5189,6 +5577,9 @@
|
|
|
5189
5577
|
"fixable": false,
|
|
5190
5578
|
"suppressible": true,
|
|
5191
5579
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5580
|
+
"default_severity": "off",
|
|
5581
|
+
"opt_in": true,
|
|
5582
|
+
"frameworks": [],
|
|
5192
5583
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5193
5584
|
"license": "free",
|
|
5194
5585
|
"license_note": null,
|
|
@@ -5216,6 +5607,9 @@
|
|
|
5216
5607
|
"fixable": false,
|
|
5217
5608
|
"suppressible": true,
|
|
5218
5609
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5610
|
+
"default_severity": "off",
|
|
5611
|
+
"opt_in": true,
|
|
5612
|
+
"frameworks": [],
|
|
5219
5613
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5220
5614
|
"license": "free",
|
|
5221
5615
|
"license_note": null,
|
|
@@ -5243,6 +5637,9 @@
|
|
|
5243
5637
|
"fixable": false,
|
|
5244
5638
|
"suppressible": true,
|
|
5245
5639
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5640
|
+
"default_severity": "off",
|
|
5641
|
+
"opt_in": true,
|
|
5642
|
+
"frameworks": [],
|
|
5246
5643
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5247
5644
|
"license": "free",
|
|
5248
5645
|
"license_note": null,
|
|
@@ -5270,6 +5667,9 @@
|
|
|
5270
5667
|
"fixable": false,
|
|
5271
5668
|
"suppressible": true,
|
|
5272
5669
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5670
|
+
"default_severity": "off",
|
|
5671
|
+
"opt_in": true,
|
|
5672
|
+
"frameworks": [],
|
|
5273
5673
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5274
5674
|
"license": "free",
|
|
5275
5675
|
"license_note": null,
|
|
@@ -5297,6 +5697,9 @@
|
|
|
5297
5697
|
"fixable": false,
|
|
5298
5698
|
"suppressible": true,
|
|
5299
5699
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5700
|
+
"default_severity": "off",
|
|
5701
|
+
"opt_in": true,
|
|
5702
|
+
"frameworks": [],
|
|
5300
5703
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5301
5704
|
"license": "free",
|
|
5302
5705
|
"license_note": null,
|
|
@@ -5324,6 +5727,9 @@
|
|
|
5324
5727
|
"fixable": false,
|
|
5325
5728
|
"suppressible": true,
|
|
5326
5729
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5730
|
+
"default_severity": "off",
|
|
5731
|
+
"opt_in": true,
|
|
5732
|
+
"frameworks": [],
|
|
5327
5733
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5328
5734
|
"license": "free",
|
|
5329
5735
|
"license_note": null,
|
|
@@ -5351,6 +5757,9 @@
|
|
|
5351
5757
|
"fixable": false,
|
|
5352
5758
|
"suppressible": true,
|
|
5353
5759
|
"suppress_comment": "// fallow-ignore-next-line security-sink",
|
|
5760
|
+
"default_severity": "off",
|
|
5761
|
+
"opt_in": true,
|
|
5762
|
+
"frameworks": [],
|
|
5354
5763
|
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
|
|
5355
5764
|
"license": "free",
|
|
5356
5765
|
"license_note": null,
|
|
@@ -5434,14 +5843,481 @@
|
|
|
5434
5843
|
"warn",
|
|
5435
5844
|
"off"
|
|
5436
5845
|
],
|
|
5846
|
+
"field_notes": {
|
|
5847
|
+
"default_severity": "The rule's severity under zero config (error/warn/off). null means the finding is not gated by a rules.* severity (a metric or command-driven finding, or a security-catalogue row).",
|
|
5848
|
+
"opt_in": "true when the rule defaults to off and reports nothing until enabled. Enabling an opt_in rule blindly is the most common way to flood a repo with findings, so treat true as a deliberate decision.",
|
|
5849
|
+
"frameworks": "Non-empty ONLY when the rule's DETECTOR self-gates on that framework (it does nothing unless the framework is declared). An EMPTY array does NOT mean the rule is framework-agnostic: many rules are framework-relevant (see the description) yet fire on any matching syntax, so never disable a rule solely because frameworks is empty.",
|
|
5850
|
+
"config_key": "The canonical key under `rules` in the config file, i.e. rules.<config_key>. The `id` is an accepted alias. null for findings that are not configured via a rules.* severity."
|
|
5851
|
+
},
|
|
5852
|
+
"related_schemas": {
|
|
5853
|
+
"note": "This manifest lists RULES, capabilities, presets, and the taste catalog. To author a config FILE you also need its shape, which is a separate schema.",
|
|
5854
|
+
"config_schema_command": "fallow config-schema",
|
|
5855
|
+
"config_schema_note": "Full JSON Schema of the config file: every top-level key (rules, entry, ignorePatterns, workspaces, boundaries, duplicates, health, security, rulePacks, production, cache, ...) and its shape. entry and ignorePatterns are how you declare entry points and exclusions; fallow also auto-honors package.json exports/main/module for library public APIs.",
|
|
5856
|
+
"rule_pack_schema_command": "fallow rule-pack-schema",
|
|
5857
|
+
"rule_pack_schema_note": "JSON Schema for a declarative rule pack referenced from rulePacks.",
|
|
5858
|
+
"plugin_schema_command": "fallow plugin-schema",
|
|
5859
|
+
"plugin_schema_note": "JSON Schema for a user-authored external plugin (fallow-plugin-*.jsonc). Teach fallow about an unsupported framework declaratively: detection, entryPoints, alwaysUsed, usedExports, usedClassMembers, and manifestEntries (derive entry points from per-package manifest files).",
|
|
5860
|
+
"plugin_check_command": "fallow plugin-check",
|
|
5861
|
+
"plugin_check_note": "Read-only dry-run of your external plugins: reports which activated, which manifests each manifestEntries rule matched, what it seeded (with path-exists), and typed warnings (manifests-matched-none, when-excluded-all, field-path-unresolved, entries-empty, manifest-parse-failed, entry-outside-root, seeded-paths-missing). Run it after authoring a fallow-plugin-*.jsonc to verify it before a full analysis.",
|
|
5862
|
+
"config_files": [
|
|
5863
|
+
".fallowrc.json",
|
|
5864
|
+
".fallowrc.jsonc",
|
|
5865
|
+
"fallow.toml",
|
|
5866
|
+
".fallow.toml"
|
|
5867
|
+
]
|
|
5868
|
+
},
|
|
5869
|
+
"boundary_presets": [
|
|
5870
|
+
{
|
|
5871
|
+
"name": "layered",
|
|
5872
|
+
"description": "Classic layers: presentation depends on application depends on domain; infrastructure depends on domain and application.",
|
|
5873
|
+
"config": "boundaries.preset: \"layered\""
|
|
5874
|
+
},
|
|
5875
|
+
{
|
|
5876
|
+
"name": "hexagonal",
|
|
5877
|
+
"description": "Ports and adapters: adapters depend on ports, ports depend on the domain; the domain depends on nothing outward.",
|
|
5878
|
+
"config": "boundaries.preset: \"hexagonal\""
|
|
5879
|
+
},
|
|
5880
|
+
{
|
|
5881
|
+
"name": "feature-sliced",
|
|
5882
|
+
"description": "Feature-Sliced Design: app, pages, widgets, features, entities, shared; each layer may only import from the layers below it.",
|
|
5883
|
+
"config": "boundaries.preset: \"feature-sliced\""
|
|
5884
|
+
},
|
|
5885
|
+
{
|
|
5886
|
+
"name": "bulletproof",
|
|
5887
|
+
"description": "Bulletproof React: app and features depend on shared and server; features stay isolated from each other.",
|
|
5888
|
+
"config": "boundaries.preset: \"bulletproof\""
|
|
5889
|
+
}
|
|
5890
|
+
],
|
|
5891
|
+
"taste_choices": [
|
|
5892
|
+
{
|
|
5893
|
+
"id": "ci-strictness",
|
|
5894
|
+
"header": "CI gate",
|
|
5895
|
+
"prompt": "Should the cleanup rules that default to warn (unused dev/optional dependencies, component-level dead code, styling drift) fail CI, or stay advisory?",
|
|
5896
|
+
"tier": "taste",
|
|
5897
|
+
"first_run": true,
|
|
5898
|
+
"framework_gated": false,
|
|
5899
|
+
"config_paths": [
|
|
5900
|
+
"rules.unused-dev-dependencies",
|
|
5901
|
+
"rules.unused-optional-dependencies",
|
|
5902
|
+
"rules.stale-suppressions"
|
|
5903
|
+
],
|
|
5904
|
+
"default_summary": "These rules default to warn: reported, never failing CI. The structural rules (unused files/exports/deps, circular deps, unresolved imports, boundary violations) already default to error.",
|
|
5905
|
+
"options": [
|
|
5906
|
+
{
|
|
5907
|
+
"label": "Advisory",
|
|
5908
|
+
"effect": "Keep the warn-default rules at warn.",
|
|
5909
|
+
"tradeoff": "Cleanup drift is visible but never blocks a merge; the team addresses it on its own cadence."
|
|
5910
|
+
},
|
|
5911
|
+
{
|
|
5912
|
+
"label": "Strict",
|
|
5913
|
+
"effect": "Promote the warn-default cleanup rules to error.",
|
|
5914
|
+
"tradeoff": "A PR that adds unused dev deps or dead component surface fails CI; noisier on legacy code, tighter on new code."
|
|
5915
|
+
}
|
|
5916
|
+
]
|
|
5917
|
+
},
|
|
5918
|
+
{
|
|
5919
|
+
"id": "private-type-leak",
|
|
5920
|
+
"header": "API hygiene",
|
|
5921
|
+
"prompt": "Enable the opt-in private-type-leak check, which flags exported signatures that reference a same-file private type (a break for consumers)?",
|
|
5922
|
+
"tier": "taste",
|
|
5923
|
+
"first_run": true,
|
|
5924
|
+
"framework_gated": false,
|
|
5925
|
+
"config_paths": [
|
|
5926
|
+
"rules.private-type-leaks"
|
|
5927
|
+
],
|
|
5928
|
+
"default_summary": "Off by default: it is a lower-confidence API-hygiene check, so fallow does not enable it unless you opt in.",
|
|
5929
|
+
"options": [
|
|
5930
|
+
{
|
|
5931
|
+
"label": "Keep off",
|
|
5932
|
+
"effect": "Leave private-type-leak disabled.",
|
|
5933
|
+
"tradeoff": "No API-hygiene findings; a leaked private type in a public signature goes unflagged."
|
|
5934
|
+
},
|
|
5935
|
+
{
|
|
5936
|
+
"label": "Enable (warn)",
|
|
5937
|
+
"effect": "Set rules.private-type-leaks to warn.",
|
|
5938
|
+
"tradeoff": "Catches public signatures that reference private types; can be noisy on libraries with intentional internal-type re-use."
|
|
5939
|
+
}
|
|
5940
|
+
]
|
|
5941
|
+
},
|
|
5942
|
+
{
|
|
5943
|
+
"id": "dupes-sensitivity",
|
|
5944
|
+
"header": "Dupes",
|
|
5945
|
+
"prompt": "Code-duplication sensitivity (how large and how repeated a clone must be before it is reported).",
|
|
5946
|
+
"tier": "default",
|
|
5947
|
+
"first_run": false,
|
|
5948
|
+
"framework_gated": false,
|
|
5949
|
+
"config_paths": [
|
|
5950
|
+
"duplicates.mode",
|
|
5951
|
+
"duplicates.minTokens",
|
|
5952
|
+
"duplicates.minOccurrences"
|
|
5953
|
+
],
|
|
5954
|
+
"default_summary": "mild mode, minTokens 50, minOccurrences 2: reports moderately sized clones that appear at least twice. Raise minOccurrences to 3 to focus on widespread duplication only. Note: `fallow init`'s starter config seeds minOccurrences at 3 to hide pair-only noise on a first run, so its output is intentionally stricter than this zero-config default of 2.",
|
|
5955
|
+
"options": []
|
|
5956
|
+
},
|
|
5957
|
+
{
|
|
5958
|
+
"id": "complexity-ceilings",
|
|
5959
|
+
"header": "Complexity",
|
|
5960
|
+
"prompt": "Function complexity ceilings used by fallow health.",
|
|
5961
|
+
"tier": "default",
|
|
5962
|
+
"first_run": false,
|
|
5963
|
+
"framework_gated": false,
|
|
5964
|
+
"config_paths": [
|
|
5965
|
+
"health.maxCyclomaticComplexity",
|
|
5966
|
+
"health.maxCognitiveComplexity",
|
|
5967
|
+
"health.maxCrapThreshold",
|
|
5968
|
+
"health.maxUnitSize"
|
|
5969
|
+
],
|
|
5970
|
+
"default_summary": "cyclomatic 20, cognitive 15, CRAP 30, unit size 60 lines. These are SIG-aligned; raise them for an established codebase that would otherwise report a large existing backlog.",
|
|
5971
|
+
"options": []
|
|
5972
|
+
},
|
|
5973
|
+
{
|
|
5974
|
+
"id": "styling-drift",
|
|
5975
|
+
"header": "Styling",
|
|
5976
|
+
"prompt": "Design-system styling-drift strictness (hardcoded values where a token exists, duplicate blocks, selector complexity).",
|
|
5977
|
+
"tier": "default",
|
|
5978
|
+
"first_run": false,
|
|
5979
|
+
"framework_gated": false,
|
|
5980
|
+
"config_paths": [
|
|
5981
|
+
"rules.css-token-drift",
|
|
5982
|
+
"rules.css-duplicate-block",
|
|
5983
|
+
"rules.css-selector-complexity"
|
|
5984
|
+
],
|
|
5985
|
+
"default_summary": "All css-* rules default to warn (advisory, verdict-neutral). Promote to error only once the design system is stable enough that drift should block a merge.",
|
|
5986
|
+
"options": []
|
|
5987
|
+
},
|
|
5988
|
+
{
|
|
5989
|
+
"id": "react-health-signals",
|
|
5990
|
+
"header": "React heur",
|
|
5991
|
+
"prompt": "React/Preact structural health signals (prop-drilling, thin-wrapper, duplicate-prop-shape).",
|
|
5992
|
+
"tier": "default",
|
|
5993
|
+
"first_run": false,
|
|
5994
|
+
"framework_gated": true,
|
|
5995
|
+
"config_paths": [
|
|
5996
|
+
"rules.prop-drilling",
|
|
5997
|
+
"rules.thin-wrapper",
|
|
5998
|
+
"rules.duplicate-prop-shape"
|
|
5999
|
+
],
|
|
6000
|
+
"default_summary": "Off by default: opinion-heavy heuristics that are noisy on established component trees. Enable per-rule (warn) only if the team wants refactor pressure on component structure.",
|
|
6001
|
+
"options": []
|
|
6002
|
+
},
|
|
6003
|
+
{
|
|
6004
|
+
"id": "coverage-gaps",
|
|
6005
|
+
"header": "Cov gaps",
|
|
6006
|
+
"prompt": "Coverage-gap detection (runtime files/exports with no test dependency path).",
|
|
6007
|
+
"tier": "default",
|
|
6008
|
+
"first_run": false,
|
|
6009
|
+
"framework_gated": false,
|
|
6010
|
+
"config_paths": [
|
|
6011
|
+
"rules.coverage-gaps"
|
|
6012
|
+
],
|
|
6013
|
+
"default_summary": "Off by default and most useful once runtime coverage data is available. Not surfaced on a first run because a cold project rarely has the inputs it needs.",
|
|
6014
|
+
"options": []
|
|
6015
|
+
},
|
|
6016
|
+
{
|
|
6017
|
+
"id": "security",
|
|
6018
|
+
"header": "Security",
|
|
6019
|
+
"prompt": "Opt-in security candidate detection (client/server secret leaks, tainted sinks). Surfaced by the separate fallow security command.",
|
|
6020
|
+
"tier": "default",
|
|
6021
|
+
"first_run": false,
|
|
6022
|
+
"framework_gated": false,
|
|
6023
|
+
"config_paths": [
|
|
6024
|
+
"rules.security-client-server-leak",
|
|
6025
|
+
"rules.security-sink"
|
|
6026
|
+
],
|
|
6027
|
+
"default_summary": "Off by default: candidates are unverified and high-noise, so enabling security is a deliberate decision, not a first-run default. Run fallow security to explore candidates without changing config.",
|
|
6028
|
+
"options": []
|
|
6029
|
+
}
|
|
6030
|
+
],
|
|
6031
|
+
"security_categories": {
|
|
6032
|
+
"note": "Valid ids for security.categories.include / exclude. include-required categories (hardcoded-secret, secret-to-network) run only when explicitly listed in categories.include; all others are admitted by default unless an include list restricts to a whitelist.",
|
|
6033
|
+
"categories": [
|
|
6034
|
+
{
|
|
6035
|
+
"id": "angular-trusted-html",
|
|
6036
|
+
"title": "Angular bypassSecurityTrust sink",
|
|
6037
|
+
"cwe": 79,
|
|
6038
|
+
"include_required": false
|
|
6039
|
+
},
|
|
6040
|
+
{
|
|
6041
|
+
"id": "cleartext-transport",
|
|
6042
|
+
"title": "Cleartext transport URL",
|
|
6043
|
+
"cwe": 319,
|
|
6044
|
+
"include_required": false
|
|
6045
|
+
},
|
|
6046
|
+
{
|
|
6047
|
+
"id": "code-injection",
|
|
6048
|
+
"title": "Code injection sink",
|
|
6049
|
+
"cwe": 94,
|
|
6050
|
+
"include_required": false
|
|
6051
|
+
},
|
|
6052
|
+
{
|
|
6053
|
+
"id": "command-injection",
|
|
6054
|
+
"title": "OS command injection sink",
|
|
6055
|
+
"cwe": 78,
|
|
6056
|
+
"include_required": false
|
|
6057
|
+
},
|
|
6058
|
+
{
|
|
6059
|
+
"id": "dangerous-html",
|
|
6060
|
+
"title": "Dangerous HTML sink",
|
|
6061
|
+
"cwe": 79,
|
|
6062
|
+
"include_required": false
|
|
6063
|
+
},
|
|
6064
|
+
{
|
|
6065
|
+
"id": "deprecated-cipher",
|
|
6066
|
+
"title": "Deprecated cipher constructor",
|
|
6067
|
+
"cwe": 327,
|
|
6068
|
+
"include_required": false
|
|
6069
|
+
},
|
|
6070
|
+
{
|
|
6071
|
+
"id": "dom-document-write",
|
|
6072
|
+
"title": "DOM document.write sink",
|
|
6073
|
+
"cwe": 79,
|
|
6074
|
+
"include_required": false
|
|
6075
|
+
},
|
|
6076
|
+
{
|
|
6077
|
+
"id": "dynamic-module-load",
|
|
6078
|
+
"title": "Dynamic module load sink",
|
|
6079
|
+
"cwe": 95,
|
|
6080
|
+
"include_required": false
|
|
6081
|
+
},
|
|
6082
|
+
{
|
|
6083
|
+
"id": "dynamic-regex",
|
|
6084
|
+
"title": "Dynamic regular expression sink",
|
|
6085
|
+
"cwe": 1333,
|
|
6086
|
+
"include_required": false
|
|
6087
|
+
},
|
|
6088
|
+
{
|
|
6089
|
+
"id": "electron-unsafe-webpreferences",
|
|
6090
|
+
"title": "Unsafe Electron BrowserWindow preferences",
|
|
6091
|
+
"cwe": 1188,
|
|
6092
|
+
"include_required": false
|
|
6093
|
+
},
|
|
6094
|
+
{
|
|
6095
|
+
"id": "hardcoded-secret",
|
|
6096
|
+
"title": "Hardcoded secret candidate",
|
|
6097
|
+
"cwe": null,
|
|
6098
|
+
"include_required": true
|
|
6099
|
+
},
|
|
6100
|
+
{
|
|
6101
|
+
"id": "header-injection",
|
|
6102
|
+
"title": "HTTP response header injection sink",
|
|
6103
|
+
"cwe": 113,
|
|
6104
|
+
"include_required": false
|
|
6105
|
+
},
|
|
6106
|
+
{
|
|
6107
|
+
"id": "insecure-cookie",
|
|
6108
|
+
"title": "Insecure cookie options",
|
|
6109
|
+
"cwe": 614,
|
|
6110
|
+
"include_required": false
|
|
6111
|
+
},
|
|
6112
|
+
{
|
|
6113
|
+
"id": "insecure-randomness",
|
|
6114
|
+
"title": "Insecure randomness sink",
|
|
6115
|
+
"cwe": 338,
|
|
6116
|
+
"include_required": false
|
|
6117
|
+
},
|
|
6118
|
+
{
|
|
6119
|
+
"id": "insecure-temp-file",
|
|
6120
|
+
"title": "Predictable temporary file path",
|
|
6121
|
+
"cwe": 377,
|
|
6122
|
+
"include_required": false
|
|
6123
|
+
},
|
|
6124
|
+
{
|
|
6125
|
+
"id": "jquery-html",
|
|
6126
|
+
"title": "jQuery .html() sink",
|
|
6127
|
+
"cwe": 79,
|
|
6128
|
+
"include_required": false
|
|
6129
|
+
},
|
|
6130
|
+
{
|
|
6131
|
+
"id": "jwt-alg-none",
|
|
6132
|
+
"title": "JWT alg none",
|
|
6133
|
+
"cwe": 347,
|
|
6134
|
+
"include_required": false
|
|
6135
|
+
},
|
|
6136
|
+
{
|
|
6137
|
+
"id": "jwt-verify-missing-algorithms",
|
|
6138
|
+
"title": "JWT verify missing algorithms allowlist",
|
|
6139
|
+
"cwe": 347,
|
|
6140
|
+
"include_required": false
|
|
6141
|
+
},
|
|
6142
|
+
{
|
|
6143
|
+
"id": "llm-call-injection",
|
|
6144
|
+
"title": "Untrusted input reaches an LLM call",
|
|
6145
|
+
"cwe": 1427,
|
|
6146
|
+
"include_required": false
|
|
6147
|
+
},
|
|
6148
|
+
{
|
|
6149
|
+
"id": "mass-assignment",
|
|
6150
|
+
"title": "Mass assignment sink",
|
|
6151
|
+
"cwe": 915,
|
|
6152
|
+
"include_required": false
|
|
6153
|
+
},
|
|
6154
|
+
{
|
|
6155
|
+
"id": "mysql-multiple-statements",
|
|
6156
|
+
"title": "MySQL multiple statements enabled",
|
|
6157
|
+
"cwe": 89,
|
|
6158
|
+
"include_required": false
|
|
6159
|
+
},
|
|
6160
|
+
{
|
|
6161
|
+
"id": "nextjs-open-redirect",
|
|
6162
|
+
"title": "Next.js open redirect sink",
|
|
6163
|
+
"cwe": 601,
|
|
6164
|
+
"include_required": false
|
|
6165
|
+
},
|
|
6166
|
+
{
|
|
6167
|
+
"id": "nosql-injection",
|
|
6168
|
+
"title": "NoSQL injection sink",
|
|
6169
|
+
"cwe": 943,
|
|
6170
|
+
"include_required": false
|
|
6171
|
+
},
|
|
6172
|
+
{
|
|
6173
|
+
"id": "open-redirect",
|
|
6174
|
+
"title": "Open redirect sink",
|
|
6175
|
+
"cwe": 601,
|
|
6176
|
+
"include_required": false
|
|
6177
|
+
},
|
|
6178
|
+
{
|
|
6179
|
+
"id": "path-traversal",
|
|
6180
|
+
"title": "Path traversal sink",
|
|
6181
|
+
"cwe": 22,
|
|
6182
|
+
"include_required": false
|
|
6183
|
+
},
|
|
6184
|
+
{
|
|
6185
|
+
"id": "permissive-cors",
|
|
6186
|
+
"title": "Permissive CORS policy",
|
|
6187
|
+
"cwe": 942,
|
|
6188
|
+
"include_required": false
|
|
6189
|
+
},
|
|
6190
|
+
{
|
|
6191
|
+
"id": "postmessage-wildcard-origin",
|
|
6192
|
+
"title": "Wildcard postMessage target origin",
|
|
6193
|
+
"cwe": 346,
|
|
6194
|
+
"include_required": false
|
|
6195
|
+
},
|
|
6196
|
+
{
|
|
6197
|
+
"id": "prototype-pollution",
|
|
6198
|
+
"title": "Prototype pollution sink",
|
|
6199
|
+
"cwe": 1321,
|
|
6200
|
+
"include_required": false
|
|
6201
|
+
},
|
|
6202
|
+
{
|
|
6203
|
+
"id": "redos-regex",
|
|
6204
|
+
"title": "ReDoS regex sink",
|
|
6205
|
+
"cwe": 1333,
|
|
6206
|
+
"include_required": false
|
|
6207
|
+
},
|
|
6208
|
+
{
|
|
6209
|
+
"id": "resource-amplification",
|
|
6210
|
+
"title": "Resource amplification sink",
|
|
6211
|
+
"cwe": 400,
|
|
6212
|
+
"include_required": false
|
|
6213
|
+
},
|
|
6214
|
+
{
|
|
6215
|
+
"id": "route-send-file",
|
|
6216
|
+
"title": "Route file-send path traversal sink",
|
|
6217
|
+
"cwe": 22,
|
|
6218
|
+
"include_required": false
|
|
6219
|
+
},
|
|
6220
|
+
{
|
|
6221
|
+
"id": "secret-pii-log",
|
|
6222
|
+
"title": "Secret or PII logged",
|
|
6223
|
+
"cwe": 532,
|
|
6224
|
+
"include_required": false
|
|
6225
|
+
},
|
|
6226
|
+
{
|
|
6227
|
+
"id": "secret-to-network",
|
|
6228
|
+
"title": "Secret reaches a network request",
|
|
6229
|
+
"cwe": 201,
|
|
6230
|
+
"include_required": true
|
|
6231
|
+
},
|
|
6232
|
+
{
|
|
6233
|
+
"id": "sql-injection",
|
|
6234
|
+
"title": "SQL injection sink",
|
|
6235
|
+
"cwe": 89,
|
|
6236
|
+
"include_required": false
|
|
6237
|
+
},
|
|
6238
|
+
{
|
|
6239
|
+
"id": "ssrf",
|
|
6240
|
+
"title": "Server-side request forgery sink",
|
|
6241
|
+
"cwe": 918,
|
|
6242
|
+
"include_required": false
|
|
6243
|
+
},
|
|
6244
|
+
{
|
|
6245
|
+
"id": "ssti",
|
|
6246
|
+
"title": "Server-side template injection sink",
|
|
6247
|
+
"cwe": 1336,
|
|
6248
|
+
"include_required": false
|
|
6249
|
+
},
|
|
6250
|
+
{
|
|
6251
|
+
"id": "template-escape-bypass",
|
|
6252
|
+
"title": "Template escape bypass sink",
|
|
6253
|
+
"cwe": 79,
|
|
6254
|
+
"include_required": false
|
|
6255
|
+
},
|
|
6256
|
+
{
|
|
6257
|
+
"id": "tls-validation-disabled",
|
|
6258
|
+
"title": "TLS validation disabled",
|
|
6259
|
+
"cwe": 295,
|
|
6260
|
+
"include_required": false
|
|
6261
|
+
},
|
|
6262
|
+
{
|
|
6263
|
+
"id": "unsafe-buffer-alloc",
|
|
6264
|
+
"title": "Unsafe Buffer allocation sink",
|
|
6265
|
+
"cwe": 1188,
|
|
6266
|
+
"include_required": false
|
|
6267
|
+
},
|
|
6268
|
+
{
|
|
6269
|
+
"id": "unsafe-deserialization",
|
|
6270
|
+
"title": "Unsafe deserialization sink",
|
|
6271
|
+
"cwe": 502,
|
|
6272
|
+
"include_required": false
|
|
6273
|
+
},
|
|
6274
|
+
{
|
|
6275
|
+
"id": "weak-crypto",
|
|
6276
|
+
"title": "Runtime-selectable crypto algorithm",
|
|
6277
|
+
"cwe": 327,
|
|
6278
|
+
"include_required": false
|
|
6279
|
+
},
|
|
6280
|
+
{
|
|
6281
|
+
"id": "webview-injection",
|
|
6282
|
+
"title": "WebView injected-script sink",
|
|
6283
|
+
"cwe": 94,
|
|
6284
|
+
"include_required": false
|
|
6285
|
+
},
|
|
6286
|
+
{
|
|
6287
|
+
"id": "world-writable-permission",
|
|
6288
|
+
"title": "World-writable chmod mode",
|
|
6289
|
+
"cwe": 732,
|
|
6290
|
+
"include_required": false
|
|
6291
|
+
},
|
|
6292
|
+
{
|
|
6293
|
+
"id": "xpath-injection",
|
|
6294
|
+
"title": "XPath injection sink",
|
|
6295
|
+
"cwe": 643,
|
|
6296
|
+
"include_required": false
|
|
6297
|
+
},
|
|
6298
|
+
{
|
|
6299
|
+
"id": "xxe",
|
|
6300
|
+
"title": "XML external entity (XXE) sink",
|
|
6301
|
+
"cwe": 611,
|
|
6302
|
+
"include_required": false
|
|
6303
|
+
},
|
|
6304
|
+
{
|
|
6305
|
+
"id": "zip-slip",
|
|
6306
|
+
"title": "Archive path-traversal (zip-slip) sink",
|
|
6307
|
+
"cwe": 22,
|
|
6308
|
+
"include_required": false
|
|
6309
|
+
}
|
|
6310
|
+
]
|
|
6311
|
+
},
|
|
5437
6312
|
"mcp_tools": {
|
|
5438
6313
|
"server": "fallow-mcp",
|
|
5439
|
-
"note": "key_params is a curated subset; the live MCP input schemas (list_tools) are authoritative for the full parameter list",
|
|
6314
|
+
"note": "key_params is a curated subset; the live MCP input schemas (list_tools) are authoritative for the full parameter list. cli_command is the nearest CLI fallback, not a full MCP input-schema projection",
|
|
5440
6315
|
"tools": [
|
|
5441
6316
|
{
|
|
5442
6317
|
"name": "code_execute",
|
|
5443
6318
|
"kind": "composition",
|
|
5444
6319
|
"description": "Run a bounded read-only JavaScript snippet that composes fallow's analysis tools inside a sandbox (Code Mode meta-tool, not a plain analysis call)",
|
|
6320
|
+
"cli_command": null,
|
|
5445
6321
|
"key_params": [
|
|
5446
6322
|
"code",
|
|
5447
6323
|
"timeout_ms",
|
|
@@ -5455,6 +6331,7 @@
|
|
|
5455
6331
|
"name": "analyze",
|
|
5456
6332
|
"kind": "analysis",
|
|
5457
6333
|
"description": "Full dead-code analysis: unused files, exports, types, dependencies, circular dependencies, and boundary violations",
|
|
6334
|
+
"cli_command": "fallow dead-code --format json --quiet",
|
|
5458
6335
|
"key_params": [
|
|
5459
6336
|
"issue_types",
|
|
5460
6337
|
"production",
|
|
@@ -5471,6 +6348,7 @@
|
|
|
5471
6348
|
"name": "check_changed",
|
|
5472
6349
|
"kind": "analysis",
|
|
5473
6350
|
"description": "Incremental dead-code analysis scoped to files changed since a git ref (ideal for PR review)",
|
|
6351
|
+
"cli_command": "fallow dead-code --changed-since <ref> --format json --quiet",
|
|
5474
6352
|
"key_params": [
|
|
5475
6353
|
"since",
|
|
5476
6354
|
"baseline",
|
|
@@ -5484,6 +6362,7 @@
|
|
|
5484
6362
|
"name": "security_candidates",
|
|
5485
6363
|
"kind": "analysis",
|
|
5486
6364
|
"description": "Unverified local security candidates (tainted sinks) for downstream agent verification",
|
|
6365
|
+
"cli_command": "fallow security --format json --quiet",
|
|
5487
6366
|
"key_params": [
|
|
5488
6367
|
"gate",
|
|
5489
6368
|
"surface",
|
|
@@ -5498,6 +6377,7 @@
|
|
|
5498
6377
|
"name": "inspect_target",
|
|
5499
6378
|
"kind": "analysis",
|
|
5500
6379
|
"description": "One evidence bundle for a file or exported symbol: trace, dead-code actions, duplication, complexity, and security candidates",
|
|
6380
|
+
"cli_command": "fallow inspect --format json --quiet",
|
|
5501
6381
|
"key_params": [
|
|
5502
6382
|
"target",
|
|
5503
6383
|
"production"
|
|
@@ -5510,6 +6390,7 @@
|
|
|
5510
6390
|
"name": "guard",
|
|
5511
6391
|
"kind": "introspection",
|
|
5512
6392
|
"description": "Report the architecture rules that apply to given files before editing them: boundary zone, allowed import zones, forbidden calls, and rule-pack policies",
|
|
6393
|
+
"cli_command": "fallow guard <file> --format json --quiet",
|
|
5513
6394
|
"key_params": [
|
|
5514
6395
|
"files"
|
|
5515
6396
|
],
|
|
@@ -5521,6 +6402,7 @@
|
|
|
5521
6402
|
"name": "find_dupes",
|
|
5522
6403
|
"kind": "analysis",
|
|
5523
6404
|
"description": "Code duplication detection with clone groups and refactoring suggestions",
|
|
6405
|
+
"cli_command": "fallow dupes --format json --quiet",
|
|
5524
6406
|
"key_params": [
|
|
5525
6407
|
"mode",
|
|
5526
6408
|
"min_tokens",
|
|
@@ -5536,6 +6418,7 @@
|
|
|
5536
6418
|
"name": "check_health",
|
|
5537
6419
|
"kind": "analysis",
|
|
5538
6420
|
"description": "Complexity, styling health, hotspots, ownership, refactoring targets, coverage gaps, and CSS/CSS-in-JS candidates",
|
|
6421
|
+
"cli_command": "fallow health --format json --quiet",
|
|
5539
6422
|
"key_params": [
|
|
5540
6423
|
"score",
|
|
5541
6424
|
"css",
|
|
@@ -5555,6 +6438,7 @@
|
|
|
5555
6438
|
"name": "check_runtime_coverage",
|
|
5556
6439
|
"kind": "runtime-coverage",
|
|
5557
6440
|
"description": "Merge V8 or Istanbul runtime coverage into the health report (hot paths, cold paths, verdicts)",
|
|
6441
|
+
"cli_command": "fallow health --runtime-coverage <path> --format json --quiet",
|
|
5558
6442
|
"key_params": [
|
|
5559
6443
|
"coverage",
|
|
5560
6444
|
"min_invocations_hot",
|
|
@@ -5570,6 +6454,7 @@
|
|
|
5570
6454
|
"name": "get_hot_paths",
|
|
5571
6455
|
"kind": "runtime-coverage",
|
|
5572
6456
|
"description": "Production hot paths from runtime coverage, sorted by invocation volume",
|
|
6457
|
+
"cli_command": "fallow health --runtime-coverage <path> --format json --quiet",
|
|
5573
6458
|
"key_params": [
|
|
5574
6459
|
"coverage",
|
|
5575
6460
|
"top",
|
|
@@ -5583,6 +6468,7 @@
|
|
|
5583
6468
|
"name": "get_blast_radius",
|
|
5584
6469
|
"kind": "runtime-coverage",
|
|
5585
6470
|
"description": "Blast-radius context (caller counts, risk bands) from runtime coverage; augments review only, never gates safe_to_delete (three-state tracking issues that verdict)",
|
|
6471
|
+
"cli_command": "fallow health --runtime-coverage <path> --format json --quiet",
|
|
5586
6472
|
"key_params": [
|
|
5587
6473
|
"coverage",
|
|
5588
6474
|
"group_by"
|
|
@@ -5595,6 +6481,7 @@
|
|
|
5595
6481
|
"name": "get_importance",
|
|
5596
6482
|
"kind": "runtime-coverage",
|
|
5597
6483
|
"description": "Production-importance scores (0-100) combining invocations, complexity, and ownership; augments review only, never gates safe_to_delete (three-state tracking issues that verdict)",
|
|
6484
|
+
"cli_command": "fallow health --runtime-coverage <path> --format json --quiet",
|
|
5598
6485
|
"key_params": [
|
|
5599
6486
|
"coverage",
|
|
5600
6487
|
"group_by"
|
|
@@ -5607,6 +6494,7 @@
|
|
|
5607
6494
|
"name": "get_cleanup_candidates",
|
|
5608
6495
|
"kind": "runtime-coverage",
|
|
5609
6496
|
"description": "Cleanup candidates with safe_to_delete, review_required, and low_traffic verdicts from runtime coverage",
|
|
6497
|
+
"cli_command": "fallow health --runtime-coverage <path> --format json --quiet",
|
|
5610
6498
|
"key_params": [
|
|
5611
6499
|
"coverage",
|
|
5612
6500
|
"group_by"
|
|
@@ -5619,6 +6507,7 @@
|
|
|
5619
6507
|
"name": "get_token_blast_radius",
|
|
5620
6508
|
"kind": "analysis",
|
|
5621
6509
|
"description": "Design-token blast radius for Tailwind v4 @theme tokens AND CSS-in-JS defineVars/createTheme-family token definitions: per token, a consumer_count (static lower bound) and a capped located consumers[] sample tagged theme-var/css-var/utility/apply (Tailwind) or js-member (CSS-in-JS cross-module member access); descriptive context for sizing a token change, never a deletion gate",
|
|
6510
|
+
"cli_command": "fallow health --css --format json --quiet",
|
|
5622
6511
|
"key_params": [],
|
|
5623
6512
|
"license": "free",
|
|
5624
6513
|
"license_note": null,
|
|
@@ -5628,6 +6517,7 @@
|
|
|
5628
6517
|
"name": "audit",
|
|
5629
6518
|
"kind": "analysis",
|
|
5630
6519
|
"description": "Combined dead-code, complexity, duplication, and styling audit for changed files with a pass/warn/fail verdict",
|
|
6520
|
+
"cli_command": "fallow audit --format json --quiet",
|
|
5631
6521
|
"key_params": [
|
|
5632
6522
|
"gate",
|
|
5633
6523
|
"base",
|
|
@@ -5644,6 +6534,7 @@
|
|
|
5644
6534
|
"name": "decision_surface",
|
|
5645
6535
|
"kind": "analysis",
|
|
5646
6536
|
"description": "Surface the few consequential structural decisions a change embeds (coupling, public API, dependency), each as a judgment question with the routed expert; ranked, capped, and signal_id-anchored",
|
|
6537
|
+
"cli_command": "fallow decision-surface --format json --quiet",
|
|
5647
6538
|
"key_params": [
|
|
5648
6539
|
"base",
|
|
5649
6540
|
"max_decisions",
|
|
@@ -5657,6 +6548,7 @@
|
|
|
5657
6548
|
"name": "fallow_explain",
|
|
5658
6549
|
"kind": "introspection",
|
|
5659
6550
|
"description": "Explain one issue type (rationale, examples, fix guidance) without running an analysis",
|
|
6551
|
+
"cli_command": "fallow explain <issue-type> --format json --quiet",
|
|
5660
6552
|
"key_params": [
|
|
5661
6553
|
"issue_type"
|
|
5662
6554
|
],
|
|
@@ -5668,6 +6560,7 @@
|
|
|
5668
6560
|
"name": "fix_preview",
|
|
5669
6561
|
"kind": "fix",
|
|
5670
6562
|
"description": "Dry-run auto-fix preview; shows what would change without modifying files",
|
|
6563
|
+
"cli_command": "fallow fix --dry-run --format json --quiet",
|
|
5671
6564
|
"key_params": [
|
|
5672
6565
|
"no_create_config"
|
|
5673
6566
|
],
|
|
@@ -5679,6 +6572,7 @@
|
|
|
5679
6572
|
"name": "fix_apply",
|
|
5680
6573
|
"kind": "fix",
|
|
5681
6574
|
"description": "Apply auto-fixes: removes unused exports, dependencies, and enum members (mutates files)",
|
|
6575
|
+
"cli_command": "fallow fix --yes --format json --quiet",
|
|
5682
6576
|
"key_params": [
|
|
5683
6577
|
"no_create_config"
|
|
5684
6578
|
],
|
|
@@ -5690,6 +6584,7 @@
|
|
|
5690
6584
|
"name": "project_info",
|
|
5691
6585
|
"kind": "introspection",
|
|
5692
6586
|
"description": "Project metadata: active framework plugins, discovered files, entry points, and boundary zones",
|
|
6587
|
+
"cli_command": "fallow list --files --entry-points --plugins --format json --quiet",
|
|
5693
6588
|
"key_params": [
|
|
5694
6589
|
"entry_points",
|
|
5695
6590
|
"files",
|
|
@@ -5700,10 +6595,23 @@
|
|
|
5700
6595
|
"license_note": null,
|
|
5701
6596
|
"read_only": true
|
|
5702
6597
|
},
|
|
6598
|
+
{
|
|
6599
|
+
"name": "recommend",
|
|
6600
|
+
"kind": "introspection",
|
|
6601
|
+
"description": "Recommend a project-tailored config from framework/workspace/tooling detection: a loader-validated proposed_config and three-valued auto/default/taste decisions for cold-start onboarding",
|
|
6602
|
+
"cli_command": "fallow recommend --format json --quiet",
|
|
6603
|
+
"key_params": [
|
|
6604
|
+
"root"
|
|
6605
|
+
],
|
|
6606
|
+
"license": "free",
|
|
6607
|
+
"license_note": null,
|
|
6608
|
+
"read_only": true
|
|
6609
|
+
},
|
|
5703
6610
|
{
|
|
5704
6611
|
"name": "list_boundaries",
|
|
5705
6612
|
"kind": "introspection",
|
|
5706
6613
|
"description": "List architecture boundary zones and access rules",
|
|
6614
|
+
"cli_command": "fallow list --boundaries --format json --quiet",
|
|
5707
6615
|
"key_params": [],
|
|
5708
6616
|
"license": "free",
|
|
5709
6617
|
"license_note": null,
|
|
@@ -5713,6 +6621,7 @@
|
|
|
5713
6621
|
"name": "feature_flags",
|
|
5714
6622
|
"kind": "analysis",
|
|
5715
6623
|
"description": "Detect feature flag patterns (environment variables, SDK calls, config objects)",
|
|
6624
|
+
"cli_command": "fallow flags --format json --quiet",
|
|
5716
6625
|
"key_params": [
|
|
5717
6626
|
"workspace",
|
|
5718
6627
|
"production"
|
|
@@ -5721,10 +6630,25 @@
|
|
|
5721
6630
|
"license_note": null,
|
|
5722
6631
|
"read_only": true
|
|
5723
6632
|
},
|
|
6633
|
+
{
|
|
6634
|
+
"name": "list_suppressions",
|
|
6635
|
+
"kind": "analysis",
|
|
6636
|
+
"description": "List active fallow-ignore suppression markers grouped per file (line, kind, level, reason, and a stale cross-reference); a read-only governance inventory that always exits 0",
|
|
6637
|
+
"cli_command": "fallow suppressions --format json --quiet",
|
|
6638
|
+
"key_params": [
|
|
6639
|
+
"workspace",
|
|
6640
|
+
"changed_since",
|
|
6641
|
+
"file"
|
|
6642
|
+
],
|
|
6643
|
+
"license": "free",
|
|
6644
|
+
"license_note": null,
|
|
6645
|
+
"read_only": true
|
|
6646
|
+
},
|
|
5724
6647
|
{
|
|
5725
6648
|
"name": "impact",
|
|
5726
6649
|
"kind": "introspection",
|
|
5727
6650
|
"description": "Read the local Fallow Impact value-tracking report (per-project history in the user config dir, never in the repo; local-dev only)",
|
|
6651
|
+
"cli_command": "fallow impact --format json --quiet",
|
|
5728
6652
|
"key_params": [
|
|
5729
6653
|
"root"
|
|
5730
6654
|
],
|
|
@@ -5736,6 +6660,7 @@
|
|
|
5736
6660
|
"name": "impact_all",
|
|
5737
6661
|
"kind": "introspection",
|
|
5738
6662
|
"description": "Roll every tracked fallow project on this machine into one cross-repo value report (hashed keys plus basename labels, never paths; local-dev only)",
|
|
6663
|
+
"cli_command": "fallow impact --all --format json --quiet",
|
|
5739
6664
|
"key_params": [
|
|
5740
6665
|
"sort",
|
|
5741
6666
|
"limit"
|
|
@@ -5748,6 +6673,7 @@
|
|
|
5748
6673
|
"name": "trace_export",
|
|
5749
6674
|
"kind": "trace",
|
|
5750
6675
|
"description": "Trace why an export is used or unused, including re-export chains and entry-point status",
|
|
6676
|
+
"cli_command": "fallow dead-code --trace <file:export> --format json --quiet",
|
|
5751
6677
|
"key_params": [
|
|
5752
6678
|
"file",
|
|
5753
6679
|
"export_name"
|
|
@@ -5760,6 +6686,7 @@
|
|
|
5760
6686
|
"name": "trace_file",
|
|
5761
6687
|
"kind": "trace",
|
|
5762
6688
|
"description": "Trace all module-graph edges for a file (imports, exports, importers, re-exports)",
|
|
6689
|
+
"cli_command": "fallow dead-code --trace-file <file> --format json --quiet",
|
|
5763
6690
|
"key_params": [
|
|
5764
6691
|
"file"
|
|
5765
6692
|
],
|
|
@@ -5767,10 +6694,23 @@
|
|
|
5767
6694
|
"license_note": null,
|
|
5768
6695
|
"read_only": true
|
|
5769
6696
|
},
|
|
6697
|
+
{
|
|
6698
|
+
"name": "impact_closure",
|
|
6699
|
+
"kind": "trace",
|
|
6700
|
+
"description": "Trace the transitive affected-but-not-in-diff set and coordination gaps for one file",
|
|
6701
|
+
"cli_command": "fallow dead-code --impact-closure <path> --format json --quiet",
|
|
6702
|
+
"key_params": [
|
|
6703
|
+
"path"
|
|
6704
|
+
],
|
|
6705
|
+
"license": "free",
|
|
6706
|
+
"license_note": null,
|
|
6707
|
+
"read_only": true
|
|
6708
|
+
},
|
|
5770
6709
|
{
|
|
5771
6710
|
"name": "trace_dependency",
|
|
5772
6711
|
"kind": "trace",
|
|
5773
6712
|
"description": "Trace where a dependency is imported and whether scripts or CI use it",
|
|
6713
|
+
"cli_command": "fallow dead-code --trace-dependency <package> --format json --quiet",
|
|
5774
6714
|
"key_params": [
|
|
5775
6715
|
"package_name"
|
|
5776
6716
|
],
|
|
@@ -5782,6 +6722,7 @@
|
|
|
5782
6722
|
"name": "trace_clone",
|
|
5783
6723
|
"kind": "trace",
|
|
5784
6724
|
"description": "Deep-dive a duplicate-code clone group by location or fingerprint",
|
|
6725
|
+
"cli_command": "fallow dupes --trace <file:line> --format json --quiet",
|
|
5785
6726
|
"key_params": [
|
|
5786
6727
|
"file",
|
|
5787
6728
|
"line",
|