@kb-labs/quality-entry 2.14.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.
Files changed (74) hide show
  1. package/README.md +120 -0
  2. package/dist/cli/commands/build-order.d.ts +16 -0
  3. package/dist/cli/commands/build-order.js +113 -0
  4. package/dist/cli/commands/build-order.js.map +1 -0
  5. package/dist/cli/commands/check-builds.d.ts +10 -0
  6. package/dist/cli/commands/check-builds.js +93 -0
  7. package/dist/cli/commands/check-builds.js.map +1 -0
  8. package/dist/cli/commands/check-tests.d.ts +10 -0
  9. package/dist/cli/commands/check-tests.js +114 -0
  10. package/dist/cli/commands/check-tests.js.map +1 -0
  11. package/dist/cli/commands/check-types.d.ts +10 -0
  12. package/dist/cli/commands/check-types.js +108 -0
  13. package/dist/cli/commands/check-types.js.map +1 -0
  14. package/dist/cli/commands/cycles.d.ts +17 -0
  15. package/dist/cli/commands/cycles.js +85 -0
  16. package/dist/cli/commands/cycles.js.map +1 -0
  17. package/dist/cli/commands/dead-code.d.ts +10 -0
  18. package/dist/cli/commands/dead-code.js +217 -0
  19. package/dist/cli/commands/dead-code.js.map +1 -0
  20. package/dist/cli/commands/fix-deps.d.ts +28 -0
  21. package/dist/cli/commands/fix-deps.js +389 -0
  22. package/dist/cli/commands/fix-deps.js.map +1 -0
  23. package/dist/cli/commands/flags.d.ts +344 -0
  24. package/dist/cli/commands/flags.js +298 -0
  25. package/dist/cli/commands/flags.js.map +1 -0
  26. package/dist/cli/commands/health.d.ts +10 -0
  27. package/dist/cli/commands/health.js +210 -0
  28. package/dist/cli/commands/health.js.map +1 -0
  29. package/dist/cli/commands/index.d.ts +14 -0
  30. package/dist/cli/commands/index.js +1747 -0
  31. package/dist/cli/commands/index.js.map +1 -0
  32. package/dist/cli/commands/stats.d.ts +10 -0
  33. package/dist/cli/commands/stats.js +282 -0
  34. package/dist/cli/commands/stats.js.map +1 -0
  35. package/dist/cli/commands/visualize.d.ts +26 -0
  36. package/dist/cli/commands/visualize.js +210 -0
  37. package/dist/cli/commands/visualize.js.map +1 -0
  38. package/dist/index.d.ts +2 -0
  39. package/dist/index.js +666 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/manifest.d.ts +168 -0
  42. package/dist/manifest.js +666 -0
  43. package/dist/manifest.js.map +1 -0
  44. package/dist/rest/handlers/build-order-handler.d.ts +17 -0
  45. package/dist/rest/handlers/build-order-handler.js +28 -0
  46. package/dist/rest/handlers/build-order-handler.js.map +1 -0
  47. package/dist/rest/handlers/builds-handler.d.ts +12 -0
  48. package/dist/rest/handlers/builds-handler.js +17 -0
  49. package/dist/rest/handlers/builds-handler.js.map +1 -0
  50. package/dist/rest/handlers/cycles-handler.d.ts +13 -0
  51. package/dist/rest/handlers/cycles-handler.js +23 -0
  52. package/dist/rest/handlers/cycles-handler.js.map +1 -0
  53. package/dist/rest/handlers/dependencies-handler.d.ts +14 -0
  54. package/dist/rest/handlers/dependencies-handler.js +19 -0
  55. package/dist/rest/handlers/dependencies-handler.js.map +1 -0
  56. package/dist/rest/handlers/graph-handler.d.ts +30 -0
  57. package/dist/rest/handlers/graph-handler.js +155 -0
  58. package/dist/rest/handlers/graph-handler.js.map +1 -0
  59. package/dist/rest/handlers/health-handler.d.ts +15 -0
  60. package/dist/rest/handlers/health-handler.js +19 -0
  61. package/dist/rest/handlers/health-handler.js.map +1 -0
  62. package/dist/rest/handlers/stale-handler.d.ts +30 -0
  63. package/dist/rest/handlers/stale-handler.js +20 -0
  64. package/dist/rest/handlers/stale-handler.js.map +1 -0
  65. package/dist/rest/handlers/stats-handler.d.ts +16 -0
  66. package/dist/rest/handlers/stats-handler.js +29 -0
  67. package/dist/rest/handlers/stats-handler.js.map +1 -0
  68. package/dist/rest/handlers/tests-handler.d.ts +14 -0
  69. package/dist/rest/handlers/tests-handler.js +19 -0
  70. package/dist/rest/handlers/tests-handler.js.map +1 -0
  71. package/dist/rest/handlers/types-handler.d.ts +12 -0
  72. package/dist/rest/handlers/types-handler.js +17 -0
  73. package/dist/rest/handlers/types-handler.js.map +1 -0
  74. package/package.json +98 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/rest/handlers/stats-handler.ts"],"names":[],"mappings":";;;;;AAsBA,IAAO,wBAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CACJ,GAAA,EACA,KAAA,EACwB;AACxB,IAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,KAAA,EAAO,aAAA,IAAiB,KAAA;AAGpD,IAAA,MAAM,KAAA,GAAQ,MAAM,cAAA,CAAe,GAAA,CAAI,GAAG,CAAA;AAG1C,IAAA,IAAI,MAAA;AACJ,IAAA,IAAI,KAAA;AAEJ,IAAA,IAAI,aAAA,EAAe;AACjB,MAAA,MAAM,YAAA,GAAe,MAAM,eAAA,CAAgB,GAAA,CAAI,GAAG,CAAA;AAClD,MAAA,MAAA,GAAS,YAAA,CAAa,KAAA;AACtB,MAAA,KAAA,GAAQ,YAAA,CAAa,KAAA;AAAA,IACvB;AAEA,IAAA,OAAO;AAAA,MACL,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,KAAK,KAAA,CAAM,GAAA;AAAA,MACX,MAAM,KAAA,CAAM,aAAA;AAAA,MACZ,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF,CAAC","file":"stats-handler.js","sourcesContent":["/**\n * POST /stats handler\n *\n * Get monorepo statistics: packages, LOC, size, health score.\n */\n\nimport { defineHandler, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { calculateStats } from '@kb-labs/quality-core/stats';\nimport { calculateHealth } from '@kb-labs/quality-core/health';\n\nexport type StatsRequest = {\n includeHealth?: boolean;\n};\n\nexport type StatsResponse = {\n packages: number;\n loc: number;\n size: string;\n health?: number;\n grade?: string;\n};\n\nexport default defineHandler({\n async execute(\n ctx: PluginContextV3,\n input: RestInput<StatsRequest, unknown>\n ): Promise<StatsResponse> {\n const includeHealth = input.query?.includeHealth ?? false;\n\n // Calculate stats\n const stats = await calculateStats(ctx.cwd);\n\n // Optionally calculate health\n let health: number | undefined;\n let grade: string | undefined;\n\n if (includeHealth) {\n const healthResult = await calculateHealth(ctx.cwd);\n health = healthResult.score;\n grade = healthResult.grade;\n }\n\n return {\n packages: stats.packages,\n loc: stats.loc,\n size: stats.sizeFormatted,\n health,\n grade,\n };\n },\n});\n"]}
@@ -0,0 +1,14 @@
1
+ import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
2
+ import { RestInput } from '@kb-labs/sdk';
3
+ import { TestRunResult } from '@kb-labs/quality-contracts';
4
+
5
+ type TestsRequest = {
6
+ package?: string;
7
+ timeout?: number;
8
+ withCoverage?: boolean;
9
+ coverageOnly?: boolean;
10
+ };
11
+ type TestsResponse = TestRunResult;
12
+ declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<TestsRequest, unknown, unknown>, TestRunResult>;
13
+
14
+ export { type TestsRequest, type TestsResponse, _default as default };
@@ -0,0 +1,19 @@
1
+ import { defineHandler } from '@kb-labs/sdk';
2
+ import { runTests } from '@kb-labs/quality-core/tests';
3
+
4
+ // src/rest/handlers/tests-handler.ts
5
+ var tests_handler_default = defineHandler({
6
+ async execute(ctx, input) {
7
+ const { package: packageFilter, timeout, withCoverage, coverageOnly } = input.query ?? {};
8
+ return runTests(ctx.cwd, {
9
+ packageFilter,
10
+ timeout: timeout || 6e4,
11
+ withCoverage: withCoverage ?? false,
12
+ coverageOnly: coverageOnly ?? false
13
+ });
14
+ }
15
+ });
16
+
17
+ export { tests_handler_default as default };
18
+ //# sourceMappingURL=tests-handler.js.map
19
+ //# sourceMappingURL=tests-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/rest/handlers/tests-handler.ts"],"names":[],"mappings":";;;;AAmBA,IAAO,wBAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CACJ,GAAA,EACA,KAAA,EACwB;AACxB,IAAA,MAAM,EAAE,SAAS,aAAA,EAAe,OAAA,EAAS,cAAc,YAAA,EAAa,GAAI,KAAA,CAAM,KAAA,IAAS,EAAC;AAExF,IAAA,OAAO,QAAA,CAAS,IAAI,GAAA,EAAK;AAAA,MACvB,aAAA;AAAA,MACA,SAAS,OAAA,IAAW,GAAA;AAAA,MACpB,cAAc,YAAA,IAAgB,KAAA;AAAA,MAC9B,cAAc,YAAA,IAAgB;AAAA,KAC/B,CAAA;AAAA,EACH;AACF,CAAC","file":"tests-handler.js","sourcesContent":["/**\n * GET /tests handler\n *\n * Test execution and coverage tracking across monorepo\n */\n\nimport { defineHandler, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { runTests } from '@kb-labs/quality-core/tests';\nimport type { TestRunResult } from '@kb-labs/quality-contracts';\n\nexport type TestsRequest = {\n package?: string;\n timeout?: number;\n withCoverage?: boolean;\n coverageOnly?: boolean;\n};\n\nexport type TestsResponse = TestRunResult;\n\nexport default defineHandler({\n async execute(\n ctx: PluginContextV3,\n input: RestInput<TestsRequest, unknown>\n ): Promise<TestsResponse> {\n const { package: packageFilter, timeout, withCoverage, coverageOnly } = input.query ?? {};\n\n return runTests(ctx.cwd, {\n packageFilter,\n timeout: timeout || 60000,\n withCoverage: withCoverage ?? false,\n coverageOnly: coverageOnly ?? false,\n });\n },\n});\n"]}
@@ -0,0 +1,12 @@
1
+ import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
2
+ import { RestInput } from '@kb-labs/sdk';
3
+ import { TypeAnalysisResult } from '@kb-labs/quality-contracts';
4
+
5
+ type TypesRequest = {
6
+ package?: string;
7
+ errorsOnly?: boolean;
8
+ };
9
+ type TypesResponse = TypeAnalysisResult;
10
+ declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<TypesRequest, unknown, unknown>, TypeAnalysisResult>;
11
+
12
+ export { type TypesRequest, type TypesResponse, _default as default };
@@ -0,0 +1,17 @@
1
+ import { defineHandler } from '@kb-labs/sdk';
2
+ import { analyzeTypes } from '@kb-labs/quality-core/types';
3
+
4
+ // src/rest/handlers/types-handler.ts
5
+ var types_handler_default = defineHandler({
6
+ async execute(ctx, input) {
7
+ const { package: packageFilter, errorsOnly } = input.query ?? {};
8
+ return analyzeTypes(ctx.cwd, {
9
+ packageFilter,
10
+ errorsOnly: errorsOnly ?? false
11
+ });
12
+ }
13
+ });
14
+
15
+ export { types_handler_default as default };
16
+ //# sourceMappingURL=types-handler.js.map
17
+ //# sourceMappingURL=types-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/rest/handlers/types-handler.ts"],"names":[],"mappings":";;;;AAiBA,IAAO,wBAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CACJ,GAAA,EACA,KAAA,EACwB;AACxB,IAAA,MAAM,EAAE,OAAA,EAAS,aAAA,EAAe,YAAW,GAAI,KAAA,CAAM,SAAS,EAAC;AAE/D,IAAA,OAAO,YAAA,CAAa,IAAI,GAAA,EAAK;AAAA,MAC3B,aAAA;AAAA,MACA,YAAY,UAAA,IAAc;AAAA,KAC3B,CAAA;AAAA,EACH;AACF,CAAC","file":"types-handler.js","sourcesContent":["/**\n * GET /types handler\n *\n * TypeScript type safety analysis across monorepo\n */\n\nimport { defineHandler, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { analyzeTypes } from '@kb-labs/quality-core/types';\nimport type { TypeAnalysisResult } from '@kb-labs/quality-contracts';\n\nexport type TypesRequest = {\n package?: string;\n errorsOnly?: boolean;\n};\n\nexport type TypesResponse = TypeAnalysisResult;\n\nexport default defineHandler({\n async execute(\n ctx: PluginContextV3,\n input: RestInput<TypesRequest, unknown>\n ): Promise<TypesResponse> {\n const { package: packageFilter, errorsOnly } = input.query ?? {};\n\n return analyzeTypes(ctx.cwd, {\n packageFilter,\n errorsOnly: errorsOnly ?? false,\n });\n },\n});\n"]}
package/package.json ADDED
@@ -0,0 +1,98 @@
1
+ {
2
+ "name": "@kb-labs/quality-entry",
3
+ "version": "2.14.0",
4
+ "type": "module",
5
+ "description": "Quality Plugin CLI commands for monorepo analysis, health checks, and automated fixes.",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ },
13
+ "./plugin-manifest": {
14
+ "import": "./dist/manifest.js",
15
+ "types": "./dist/manifest.d.ts"
16
+ },
17
+ "./dist/*": "./dist/*"
18
+ },
19
+ "kb": {
20
+ "manifest": "./dist/manifest.js"
21
+ },
22
+ "files": [
23
+ "dist",
24
+ "README.md",
25
+ "LICENSE"
26
+ ],
27
+ "sideEffects": false,
28
+ "dependencies": {
29
+ "zod": "latest",
30
+ "@kb-labs/plugin-contracts": "2.14.0",
31
+ "@kb-labs/quality-contracts": "2.14.0",
32
+ "@kb-labs/sdk": "1.6.6",
33
+ "@kb-labs/quality-core": "2.14.0"
34
+ },
35
+ "peerDependencies": {
36
+ "react": "^18.3.1",
37
+ "react-dom": "^18.3.1",
38
+ "antd": "^5.21.0",
39
+ "@ant-design/icons": "^5.4.0",
40
+ "@tanstack/react-query": "^5.0.0",
41
+ "react-router-dom": "^7.0.0"
42
+ },
43
+ "peerDependenciesMeta": {
44
+ "react": {
45
+ "optional": true
46
+ },
47
+ "react-dom": {
48
+ "optional": true
49
+ },
50
+ "antd": {
51
+ "optional": true
52
+ },
53
+ "@ant-design/icons": {
54
+ "optional": true
55
+ },
56
+ "@tanstack/react-query": {
57
+ "optional": true
58
+ },
59
+ "react-router-dom": {
60
+ "optional": true
61
+ }
62
+ },
63
+ "devDependencies": {
64
+ "@types/node": "^24.3.3",
65
+ "@types/react": "^18.3.8",
66
+ "@types/react-dom": "^18.3.0",
67
+ "react": "^18.3.1",
68
+ "react-dom": "^18.3.1",
69
+ "@rspack/cli": "^1.7.0",
70
+ "@rspack/core": "^1.7.0",
71
+ "globby": "^11.0.0",
72
+ "rimraf": "^6.0.1",
73
+ "tsup": "^8.5.0",
74
+ "typescript": "^5.6.3",
75
+ "vitest": "^3.2.4",
76
+ "@kb-labs/devkit": "2.14.0",
77
+ "@kb-labs/plugin-runtime": "2.14.0",
78
+ "@kb-labs/studio-plugin-tools": "2.14.0"
79
+ },
80
+ "engines": {
81
+ "node": ">=20.0.0",
82
+ "pnpm": ">=9.0.0"
83
+ },
84
+ "scripts": {
85
+ "pretype-check": "pnpm --filter @kb-labs/quality-entry build",
86
+ "clean": "rimraf dist",
87
+ "build": "tsup --config tsup.config.ts && pnpm run build:studio",
88
+ "build:cli": "tsup --config tsup.config.ts",
89
+ "build:studio": "rspack build --config rspack.studio.config.mjs",
90
+ "dev": "tsup --config tsup.config.ts --watch",
91
+ "dev:studio": "rspack serve --config rspack.studio.config.mjs",
92
+ "lint": "eslint src --ext .ts,.tsx",
93
+ "lint:fix": "eslint . --fix",
94
+ "type-check": "tsc --noEmit",
95
+ "test": "vitest run --passWithNoTests",
96
+ "test:watch": "vitest"
97
+ }
98
+ }