stopslop 0.2.0 → 1.1.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/package.json CHANGED
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "name": "stopslop",
3
- "version": "0.2.0",
4
- "description": "Detects AI-agent slop that linters miss: over-complex functions, god modules/classes, dumped responsibilities.",
3
+ "version": "1.1.0",
4
+ "description": "Static analysis for AI-generated JavaScript and TypeScript: find cognitive complexity, god classes/modules, duplicate code, dead code and orphan features.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
7
9
  "repository": {
8
10
  "type": "git",
9
11
  "url": "git+https://github.com/BaryshevRS/stopslop.git"
@@ -18,12 +20,20 @@
18
20
  "exports": {
19
21
  ".": {
20
22
  "types": "./dist/index.d.ts",
21
- "import": "./dist/index.js"
23
+ "import": "./dist/index.js",
24
+ "default": "./dist/index.js"
22
25
  },
23
- "./schema.json": "./schema.json"
26
+ "./schema.json": "./schema.json",
27
+ "./package.json": "./package.json"
24
28
  },
25
29
  "files": [
26
- "dist",
30
+ "dist/**/*",
31
+ "docs/**/*.md",
32
+ "README.md",
33
+ "COMPATIBILITY.md",
34
+ "LICENSE",
35
+ "llms.txt",
36
+ "context7.json",
27
37
  "schema.json"
28
38
  ],
29
39
  "engines": {
@@ -40,8 +50,9 @@
40
50
  "test": "vitest run",
41
51
  "test:watch": "vitest",
42
52
  "test:package": "node scripts/package-smoke.mjs",
53
+ "check:clones": "clone-alert --minimum-tokens 100 --files src --format text --fail-on-violation",
43
54
  "audit:prod": "pnpm audit --prod",
44
- "ci:check": "pnpm test && pnpm typecheck && pnpm build",
55
+ "ci:check": "pnpm test && pnpm typecheck && pnpm check:clones && pnpm build",
45
56
  "release:check": "pnpm ci:check && pnpm audit:prod && pnpm test:package",
46
57
  "prepublishOnly": "pnpm release:check",
47
58
  "calibrate": "tsx scripts/calibrate.ts",
@@ -56,7 +67,7 @@
56
67
  },
57
68
  "dependencies": {
58
69
  "clone-alert": "^1.1.3",
59
- "knip": "6.31.0",
70
+ "knip": "6.39.0",
60
71
  "oxc-parser": "^0.139.0",
61
72
  "picocolors": "^1.1.1"
62
73
  },
@@ -74,12 +85,41 @@
74
85
  },
75
86
  "keywords": [
76
87
  "ai",
88
+ "ai-code",
89
+ "ai-generated-code",
90
+ "ai-code-quality",
91
+ "ai-slop",
77
92
  "slop",
93
+ "slop-detector",
94
+ "vibe-coding",
95
+ "static-analysis",
96
+ "code-analysis",
97
+ "code-quality",
78
98
  "code-smell",
99
+ "technical-debt",
100
+ "javascript",
101
+ "typescript",
102
+ "jsx",
103
+ "tsx",
104
+ "cli",
105
+ "lint",
106
+ "ci",
107
+ "quality-gate",
108
+ "code-scanning",
109
+ "github-actions",
110
+ "sarif",
111
+ "baseline",
79
112
  "god-class",
80
113
  "god-module",
81
114
  "cognitive-complexity",
82
115
  "lcom",
83
- "static-analysis"
116
+ "cohesion",
117
+ "duplicate-code",
118
+ "copy-paste-detector",
119
+ "dead-code",
120
+ "unused-code",
121
+ "orphan-code",
122
+ "monorepo",
123
+ "code-review"
84
124
  ]
85
125
  }
package/schema.json CHANGED
@@ -343,6 +343,9 @@
343
343
  "ignoreBinaries": {
344
344
  "$ref": "#/definitions/knip/definitions/ignoreBinaries"
345
345
  },
346
+ "ignoreGlobalBinaries": {
347
+ "$ref": "#/definitions/knip/definitions/ignoreGlobalBinaries"
348
+ },
346
349
  "ignoreDependencies": {
347
350
  "$ref": "#/definitions/knip/definitions/ignoreDependencies"
348
351
  },
@@ -513,6 +516,21 @@
513
516
  }
514
517
  }
515
518
  },
519
+ "preprocessor": {
520
+ "title": "Preprocess the results before providing them to the reporter(s)",
521
+ "oneOf": [
522
+ {
523
+ "type": "string"
524
+ },
525
+ {
526
+ "$ref": "#/definitions/knip/definitions/list"
527
+ }
528
+ ]
529
+ },
530
+ "preprocessorOptions": {
531
+ "title": "Extra options to pass to the preprocessor",
532
+ "type": "object"
533
+ },
516
534
  "treatConfigHintsAsErrors": {
517
535
  "title": "Exit with non-zero code (1) if there are any configuration hints",
518
536
  "type": "boolean"
@@ -539,6 +557,12 @@
539
557
  ],
540
558
  "$ref": "#/definitions/knip/definitions/list"
541
559
  },
560
+ "ignoreGlobalBinaries": {
561
+ "title": "Ignore common global binaries",
562
+ "description": "Set to false to report required binaries otherwise excluded by Knip's default list. Explicit ignoreBinaries entries still apply.",
563
+ "type": "boolean",
564
+ "default": true
565
+ },
542
566
  "ignoreDependencies": {
543
567
  "title": "Dependencies to exclude from the report (regex allowed)",
544
568
  "examples": [
@@ -710,6 +734,9 @@
710
734
  "ignoreBinaries": {
711
735
  "$ref": "#/definitions/knip/definitions/ignoreBinaries"
712
736
  },
737
+ "ignoreGlobalBinaries": {
738
+ "$ref": "#/definitions/knip/definitions/ignoreGlobalBinaries"
739
+ },
713
740
  "ignoreDependencies": {
714
741
  "$ref": "#/definitions/knip/definitions/ignoreDependencies"
715
742
  },
@@ -811,6 +838,10 @@
811
838
  "title": "biome plugin configuration (https://knip.dev/reference/plugins/biome)",
812
839
  "$ref": "#/definitions/knip/definitions/plugin"
813
840
  },
841
+ "borp": {
842
+ "title": "borp plugin configuration (https://knip.dev/reference/plugins/borp)",
843
+ "$ref": "#/definitions/knip/definitions/plugin"
844
+ },
814
845
  "bumpp": {
815
846
  "title": "bumpp plugin configuration (https://knip.dev/reference/plugins/bumpp)",
816
847
  "$ref": "#/definitions/knip/definitions/plugin"
@@ -1027,6 +1058,10 @@
1027
1058
  "title": "metro plugin configuration (https://knip.dev/reference/plugins/metro)",
1028
1059
  "$ref": "#/definitions/knip/definitions/plugin"
1029
1060
  },
1061
+ "mise": {
1062
+ "title": "mise plugin configuration (https://knip.dev/reference/plugins/mise)",
1063
+ "$ref": "#/definitions/knip/definitions/plugin"
1064
+ },
1030
1065
  "mocha": {
1031
1066
  "title": "Mocha plugin configuration (https://knip.dev/reference/plugins/mocha)",
1032
1067
  "$ref": "#/definitions/knip/definitions/plugin"
@@ -1167,6 +1202,10 @@
1167
1202
  "title": "PostCSS plugin configuration (https://knip.dev/reference/plugins/postcss)",
1168
1203
  "$ref": "#/definitions/knip/definitions/plugin"
1169
1204
  },
1205
+ "pre-commit": {
1206
+ "title": "pre-commit plugin configuration (https://knip.dev/reference/plugins/pre-commit)",
1207
+ "$ref": "#/definitions/knip/definitions/plugin"
1208
+ },
1170
1209
  "preconstruct": {
1171
1210
  "title": "preconstruct plugin configuration (https://knip.dev/reference/plugins/preconstruct)",
1172
1211
  "$ref": "#/definitions/knip/definitions/plugin"
@@ -1187,6 +1226,10 @@
1187
1226
  "title": "qwik plugin configuration (https://knip.dev/reference/plugins/qwik)",
1188
1227
  "$ref": "#/definitions/knip/definitions/plugin"
1189
1228
  },
1229
+ "railway": {
1230
+ "title": "railway plugin configuration (https://knip.dev/reference/plugins/railway)",
1231
+ "$ref": "#/definitions/knip/definitions/plugin"
1232
+ },
1190
1233
  "react-cosmos": {
1191
1234
  "title": "react-cosmos plugin configuration (https://knip.dev/reference/plugins/react-cosmos)",
1192
1235
  "$ref": "#/definitions/knip/definitions/plugin"
@@ -1339,6 +1382,10 @@
1339
1382
  "title": "temporal plugin configuration (https://knip.dev/reference/plugins/temporal)",
1340
1383
  "$ref": "#/definitions/knip/definitions/plugin"
1341
1384
  },
1385
+ "textlint": {
1386
+ "title": "textlint plugin configuration (https://knip.dev/reference/plugins/textlint)",
1387
+ "$ref": "#/definitions/knip/definitions/plugin"
1388
+ },
1342
1389
  "travis": {
1343
1390
  "title": "travis plugin configuration (https://knip.dev/reference/plugins/travis)",
1344
1391
  "$ref": "#/definitions/knip/definitions/plugin"
@@ -1347,6 +1394,10 @@
1347
1394
  "title": "ts-node plugin configuration (https://knip.dev/reference/plugins/ts-node)",
1348
1395
  "$ref": "#/definitions/knip/definitions/plugin"
1349
1396
  },
1397
+ "tsd": {
1398
+ "title": "tsd plugin configuration (https://knip.dev/reference/plugins/tsd)",
1399
+ "$ref": "#/definitions/knip/definitions/plugin"
1400
+ },
1350
1401
  "tsdown": {
1351
1402
  "title": "tsdown plugin configuration (https://knip.dev/reference/plugins/tsdown)",
1352
1403
  "$ref": "#/definitions/knip/definitions/plugin"
@@ -1359,6 +1410,10 @@
1359
1410
  "title": "tsx plugin configuration (https://knip.dev/reference/plugins/tsx)",
1360
1411
  "$ref": "#/definitions/knip/definitions/plugin"
1361
1412
  },
1413
+ "turbo": {
1414
+ "title": "turbo plugin configuration (https://knip.dev/reference/plugins/turbo)",
1415
+ "$ref": "#/definitions/knip/definitions/plugin"
1416
+ },
1362
1417
  "typedoc": {
1363
1418
  "title": "typedoc plugin configuration (https://knip.dev/reference/plugins/typedoc)",
1364
1419
  "$ref": "#/definitions/knip/definitions/plugin"
@@ -1367,6 +1422,10 @@
1367
1422
  "title": "TypeScript plugin configuration (https://knip.dev/reference/plugins/typescript)",
1368
1423
  "$ref": "#/definitions/knip/definitions/plugin"
1369
1424
  },
1425
+ "typescript-content-mapper": {
1426
+ "title": "typescript-content-mapper plugin configuration (https://knip.dev/reference/plugins/typescript-content-mapper)",
1427
+ "$ref": "#/definitions/knip/definitions/plugin"
1428
+ },
1370
1429
  "unbuild": {
1371
1430
  "title": "unbuild plugin configuration (https://knip.dev/reference/plugins/unbuild)",
1372
1431
  "$ref": "#/definitions/knip/definitions/plugin"
@@ -1399,6 +1458,10 @@
1399
1458
  "title": "unplugin-vue-router plugin configuration (https://knip.dev/reference/plugins/unplugin-vue-router)",
1400
1459
  "$ref": "#/definitions/knip/definitions/plugin"
1401
1460
  },
1461
+ "varlock": {
1462
+ "title": "varlock plugin configuration (https://knip.dev/reference/plugins/varlock)",
1463
+ "$ref": "#/definitions/knip/definitions/plugin"
1464
+ },
1402
1465
  "vercel": {
1403
1466
  "title": "vercel plugin configuration (https://knip.dev/reference/plugins/vercel)",
1404
1467
  "$ref": "#/definitions/knip/definitions/plugin"