@kb-labs/qa-entry 2.93.0 → 2.96.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/dist/cli/commands/baseline-diff.d.ts +14 -0
- package/dist/cli/commands/baseline-diff.js +40 -0
- package/dist/cli/commands/baseline-diff.js.map +1 -0
- package/dist/cli/commands/baseline-status.d.ts +10 -5
- package/dist/cli/commands/baseline-status.js +14 -17
- package/dist/cli/commands/baseline-status.js.map +1 -1
- package/dist/cli/commands/baseline-update.d.ts +10 -5
- package/dist/cli/commands/baseline-update.js +26 -18
- package/dist/cli/commands/baseline-update.js.map +1 -1
- package/dist/cli/commands/flags.d.ts +117 -132
- package/dist/cli/commands/flags.js +65 -79
- package/dist/cli/commands/flags.js.map +1 -1
- package/dist/cli/commands/qa-check.d.ts +13 -34
- package/dist/cli/commands/qa-check.js +26 -106
- package/dist/cli/commands/qa-check.js.map +1 -1
- package/dist/cli/commands/qa-gate.d.ts +19 -0
- package/dist/cli/commands/qa-gate.js +36 -0
- package/dist/cli/commands/qa-gate.js.map +1 -0
- package/dist/cli/commands/qa-history.d.ts +15 -5
- package/dist/cli/commands/qa-history.js +13 -24
- package/dist/cli/commands/qa-history.js.map +1 -1
- package/dist/cli/commands/qa-regressions.d.ts +10 -5
- package/dist/cli/commands/qa-regressions.js +15 -18
- package/dist/cli/commands/qa-regressions.js.map +1 -1
- package/dist/cli/commands/qa-run.d.ts +18 -11
- package/dist/cli/commands/qa-run.js +28 -141
- package/dist/cli/commands/qa-run.js.map +1 -1
- package/dist/cli/commands/qa-stats.d.ts +19 -0
- package/dist/cli/commands/qa-stats.js +43 -0
- package/dist/cli/commands/qa-stats.js.map +1 -0
- package/dist/cli/commands/qa-trends.d.ts +15 -5
- package/dist/cli/commands/qa-trends.js +15 -18
- package/dist/cli/commands/qa-trends.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +143 -291
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts +74 -106
- package/dist/manifest.js +143 -291
- package/dist/manifest.js.map +1 -1
- package/dist/rest/handlers/baseline-diff-handler.d.ts +7 -27
- package/dist/rest/handlers/baseline-diff-handler.js +15 -41
- package/dist/rest/handlers/baseline-diff-handler.js.map +1 -1
- package/dist/rest/handlers/baseline-handler.d.ts +3 -13
- package/dist/rest/handlers/baseline-handler.js +10 -5
- package/dist/rest/handlers/baseline-handler.js.map +1 -1
- package/dist/rest/handlers/baseline-update-handler.d.ts +4 -14
- package/dist/rest/handlers/baseline-update-handler.js +15 -13
- package/dist/rest/handlers/baseline-update-handler.js.map +1 -1
- package/dist/rest/handlers/check-handler.d.ts +15 -0
- package/dist/rest/handlers/check-handler.js +28 -0
- package/dist/rest/handlers/check-handler.js.map +1 -0
- package/dist/rest/handlers/gate-handler.d.ts +13 -0
- package/dist/rest/handlers/gate-handler.js +28 -0
- package/dist/rest/handlers/gate-handler.js.map +1 -0
- package/dist/rest/handlers/history-handler.d.ts +3 -16
- package/dist/rest/handlers/history-handler.js +10 -11
- package/dist/rest/handlers/history-handler.js.map +1 -1
- package/dist/rest/handlers/package-timeline-handler.d.ts +5 -20
- package/dist/rest/handlers/package-timeline-handler.js +11 -7
- package/dist/rest/handlers/package-timeline-handler.js.map +1 -1
- package/dist/rest/handlers/regressions-handler.d.ts +2 -11
- package/dist/rest/handlers/regressions-handler.js +11 -5
- package/dist/rest/handlers/regressions-handler.js.map +1 -1
- package/dist/rest/handlers/run-handler.d.ts +10 -27
- package/dist/rest/handlers/run-handler.js +18 -63
- package/dist/rest/handlers/run-handler.js.map +1 -1
- package/dist/rest/handlers/{error-groups-handler.d.ts → stats-handler.d.ts} +5 -9
- package/dist/rest/handlers/stats-handler.js +21 -0
- package/dist/rest/handlers/stats-handler.js.map +1 -0
- package/dist/rest/handlers/summary-handler.d.ts +7 -20
- package/dist/rest/handlers/summary-handler.js +16 -26
- package/dist/rest/handlers/summary-handler.js.map +1 -1
- package/dist/rest/handlers/tasks-handler.d.ts +9 -0
- package/dist/rest/handlers/tasks-handler.js +38 -0
- package/dist/rest/handlers/tasks-handler.js.map +1 -0
- package/dist/rest/handlers/trends-handler.d.ts +4 -43
- package/dist/rest/handlers/trends-handler.js +11 -18
- package/dist/rest/handlers/trends-handler.js.map +1 -1
- package/dist/widgets/117.js +24 -1
- package/dist/widgets/{919.js → 215.js} +1 -1
- package/dist/widgets/370.js +1 -1
- package/dist/widgets/{805.js → 46.js} +92 -92
- package/dist/widgets/50.js +1 -1
- package/dist/widgets/62.js +96 -0
- package/dist/widgets/648.js +1 -0
- package/dist/widgets/669.js +1 -1
- package/dist/widgets/775.js +1 -1
- package/dist/widgets/78.js +1 -0
- package/dist/widgets/823.js +1 -0
- package/dist/widgets/968.js +2 -2
- package/dist/widgets/__federation_expose_QADashboard.js +1 -1
- package/dist/widgets/mf-manifest.json +32 -31
- package/dist/widgets/mf-stats.json +32 -31
- package/dist/widgets/remoteEntry.js +2 -2
- package/package.json +12 -9
- package/dist/cli/commands/qa-save.d.ts +0 -10
- package/dist/cli/commands/qa-save.js +0 -69
- package/dist/cli/commands/qa-save.js.map +0 -1
- package/dist/rest/handlers/details-handler.d.ts +0 -61
- package/dist/rest/handlers/details-handler.js +0 -70
- package/dist/rest/handlers/details-handler.js.map +0 -1
- package/dist/rest/handlers/error-groups-handler.js +0 -17
- package/dist/rest/handlers/error-groups-handler.js.map +0 -1
- package/dist/rest/handlers/latest-handler.d.ts +0 -22
- package/dist/rest/handlers/latest-handler.js +0 -17
- package/dist/rest/handlers/latest-handler.js.map +0 -1
- package/dist/rest/handlers/run-check-handler.d.ts +0 -20
- package/dist/rest/handlers/run-check-handler.js +0 -58
- package/dist/rest/handlers/run-check-handler.js.map +0 -1
- package/dist/widgets/418.js +0 -38
- package/dist/widgets/451.js +0 -1
- package/dist/widgets/694.js +0 -1
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
|
|
2
|
-
import { RestInput } from '@kb-labs/sdk';
|
|
3
|
-
|
|
4
|
-
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<{}, unknown, unknown>, {
|
|
5
|
-
git: {
|
|
6
|
-
commit: string;
|
|
7
|
-
branch: string;
|
|
8
|
-
message: string;
|
|
9
|
-
} | null;
|
|
10
|
-
checks: Record<string, {
|
|
11
|
-
passed: {
|
|
12
|
-
status: "passed" | "failed" | "skipped";
|
|
13
|
-
name: string;
|
|
14
|
-
repo: string;
|
|
15
|
-
error?: string | undefined;
|
|
16
|
-
submodule?: {
|
|
17
|
-
commit: string;
|
|
18
|
-
branch: string;
|
|
19
|
-
dirty: boolean;
|
|
20
|
-
message: string;
|
|
21
|
-
name: string;
|
|
22
|
-
} | undefined;
|
|
23
|
-
}[];
|
|
24
|
-
failed: {
|
|
25
|
-
status: "passed" | "failed" | "skipped";
|
|
26
|
-
name: string;
|
|
27
|
-
repo: string;
|
|
28
|
-
error?: string | undefined;
|
|
29
|
-
submodule?: {
|
|
30
|
-
commit: string;
|
|
31
|
-
branch: string;
|
|
32
|
-
dirty: boolean;
|
|
33
|
-
message: string;
|
|
34
|
-
name: string;
|
|
35
|
-
} | undefined;
|
|
36
|
-
}[];
|
|
37
|
-
skipped: {
|
|
38
|
-
status: "passed" | "failed" | "skipped";
|
|
39
|
-
name: string;
|
|
40
|
-
repo: string;
|
|
41
|
-
error?: string | undefined;
|
|
42
|
-
submodule?: {
|
|
43
|
-
commit: string;
|
|
44
|
-
branch: string;
|
|
45
|
-
dirty: boolean;
|
|
46
|
-
message: string;
|
|
47
|
-
name: string;
|
|
48
|
-
} | undefined;
|
|
49
|
-
}[];
|
|
50
|
-
}>;
|
|
51
|
-
timestamp: string | null;
|
|
52
|
-
submodules?: Record<string, {
|
|
53
|
-
commit: string;
|
|
54
|
-
branch: string;
|
|
55
|
-
dirty: boolean;
|
|
56
|
-
message: string;
|
|
57
|
-
name: string;
|
|
58
|
-
}> | undefined;
|
|
59
|
-
}>;
|
|
60
|
-
|
|
61
|
-
export { _default as default };
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { defineHandler } from '@kb-labs/sdk';
|
|
2
|
-
import { loadLastRun } from '@kb-labs/qa-core';
|
|
3
|
-
|
|
4
|
-
// src/rest/handlers/details-handler.ts
|
|
5
|
-
var details_handler_default = defineHandler({
|
|
6
|
-
async execute(ctx, _input) {
|
|
7
|
-
const lastRun = loadLastRun(ctx.cwd);
|
|
8
|
-
if (!lastRun) {
|
|
9
|
-
return {
|
|
10
|
-
timestamp: null,
|
|
11
|
-
git: null,
|
|
12
|
-
checks: {}
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
const { results, packages, submodules, timestamp } = lastRun;
|
|
16
|
-
const pkgMap = new Map(packages.map((p) => [p.name, p]));
|
|
17
|
-
let git = null;
|
|
18
|
-
try {
|
|
19
|
-
const { execSync } = await import('child_process');
|
|
20
|
-
const commit = execSync("git rev-parse --short HEAD", { cwd: ctx.cwd, encoding: "utf-8" }).trim();
|
|
21
|
-
const branch = execSync("git rev-parse --abbrev-ref HEAD", { cwd: ctx.cwd, encoding: "utf-8" }).trim();
|
|
22
|
-
const message = execSync("git log -1 --format=%s", { cwd: ctx.cwd, encoding: "utf-8" }).trim();
|
|
23
|
-
git = { commit, branch, message };
|
|
24
|
-
} catch {
|
|
25
|
-
}
|
|
26
|
-
const checks = {};
|
|
27
|
-
for (const ct of Object.keys(results)) {
|
|
28
|
-
const checkResult = results[ct];
|
|
29
|
-
const passed = checkResult.passed.map((name) => {
|
|
30
|
-
const pkg = pkgMap.get(name);
|
|
31
|
-
return {
|
|
32
|
-
name,
|
|
33
|
-
repo: pkg?.repo ?? "unknown",
|
|
34
|
-
status: "passed",
|
|
35
|
-
submodule: pkg?.submodule
|
|
36
|
-
};
|
|
37
|
-
});
|
|
38
|
-
const failed = checkResult.failed.map((name) => {
|
|
39
|
-
const pkg = pkgMap.get(name);
|
|
40
|
-
return {
|
|
41
|
-
name,
|
|
42
|
-
repo: pkg?.repo ?? "unknown",
|
|
43
|
-
status: "failed",
|
|
44
|
-
error: checkResult.errors[name],
|
|
45
|
-
submodule: pkg?.submodule
|
|
46
|
-
};
|
|
47
|
-
});
|
|
48
|
-
const skipped = checkResult.skipped.map((name) => {
|
|
49
|
-
const pkg = pkgMap.get(name);
|
|
50
|
-
return {
|
|
51
|
-
name,
|
|
52
|
-
repo: pkg?.repo ?? "unknown",
|
|
53
|
-
status: "skipped",
|
|
54
|
-
submodule: pkg?.submodule
|
|
55
|
-
};
|
|
56
|
-
});
|
|
57
|
-
checks[ct] = { passed, failed, skipped };
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
timestamp,
|
|
61
|
-
git,
|
|
62
|
-
submodules,
|
|
63
|
-
checks
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
export { details_handler_default as default };
|
|
69
|
-
//# sourceMappingURL=details-handler.js.map
|
|
70
|
-
//# sourceMappingURL=details-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/rest/handlers/details-handler.ts"],"names":[],"mappings":"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","file":"details-handler.js","sourcesContent":["/**\n * GET /details handler\n *\n * Returns per-package details with error text from the last QA run.\n * Data comes from last-run.json (saved by qa-orchestrator after each run).\n */\n\nimport { defineHandler, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { loadLastRun } from '@kb-labs/qa-core';\nimport type { QADetailsRequest, QADetailsResponse } from '@kb-labs/qa-contracts';\n\nexport default defineHandler({\n async execute(\n ctx: PluginContextV3,\n _input: RestInput<QADetailsRequest, unknown>,\n ): Promise<QADetailsResponse> {\n const lastRun = loadLastRun(ctx.cwd);\n\n if (!lastRun) {\n // No last run data — return empty structure\n return {\n timestamp: null,\n git: null,\n checks: {} as QADetailsResponse['checks'],\n };\n }\n\n const { results, packages, submodules, timestamp } = lastRun;\n\n // Build a lookup: package name → package metadata\n const pkgMap = new Map(packages.map((p) => [p.name, p]));\n\n // Get git info from the latest history entry (last-run doesn't store git directly)\n // We'll use execSync to get current git info as a fallback\n let git: QADetailsResponse['git'] = null;\n try {\n const { execSync } = await import('node:child_process');\n const commit = execSync('git rev-parse --short HEAD', { cwd: ctx.cwd, encoding: 'utf-8' }).trim();\n const branch = execSync('git rev-parse --abbrev-ref HEAD', { cwd: ctx.cwd, encoding: 'utf-8' }).trim();\n const message = execSync('git log -1 --format=%s', { cwd: ctx.cwd, encoding: 'utf-8' }).trim();\n git = { commit, branch, message };\n } catch {\n // git not available\n }\n\n const checks: QADetailsResponse['checks'] = {} as QADetailsResponse['checks'];\n\n for (const ct of Object.keys(results)) {\n const checkResult = results[ct]!;\n const passed = checkResult.passed.map((name) => {\n const pkg = pkgMap.get(name);\n return {\n name,\n repo: pkg?.repo ?? 'unknown',\n status: 'passed' as const,\n submodule: pkg?.submodule,\n };\n });\n const failed = checkResult.failed.map((name) => {\n const pkg = pkgMap.get(name);\n return {\n name,\n repo: pkg?.repo ?? 'unknown',\n status: 'failed' as const,\n error: checkResult.errors[name],\n submodule: pkg?.submodule,\n };\n });\n const skipped = checkResult.skipped.map((name) => {\n const pkg = pkgMap.get(name);\n return {\n name,\n repo: pkg?.repo ?? 'unknown',\n status: 'skipped' as const,\n submodule: pkg?.submodule,\n };\n });\n\n checks[ct] = { passed, failed, skipped };\n }\n\n return {\n timestamp,\n git,\n submodules,\n checks,\n };\n },\n});\n"]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { defineHandler } from '@kb-labs/sdk';
|
|
2
|
-
import { loadLastRun, groupErrors } from '@kb-labs/qa-core';
|
|
3
|
-
|
|
4
|
-
// src/rest/handlers/error-groups-handler.ts
|
|
5
|
-
var error_groups_handler_default = defineHandler({
|
|
6
|
-
async execute(ctx, _input) {
|
|
7
|
-
const lastRun = loadLastRun(ctx.cwd);
|
|
8
|
-
if (!lastRun) {
|
|
9
|
-
return { groups: [], ungrouped: 0 };
|
|
10
|
-
}
|
|
11
|
-
return groupErrors(lastRun.results);
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
export { error_groups_handler_default as default };
|
|
16
|
-
//# sourceMappingURL=error-groups-handler.js.map
|
|
17
|
-
//# sourceMappingURL=error-groups-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/rest/handlers/error-groups-handler.ts"],"names":[],"mappings":";;;;AAWA,IAAO,+BAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CACJ,GAAA,EACA,MAAA,EACgC;AAChC,IAAA,MAAM,OAAA,GAAU,WAAA,CAAY,GAAA,CAAI,GAAG,CAAA;AAEnC,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,EAAE,MAAA,EAAQ,EAAC,EAAG,WAAW,CAAA,EAAE;AAAA,IACpC;AAEA,IAAA,OAAO,WAAA,CAAY,QAAQ,OAAO,CAAA;AAAA,EACpC;AACF,CAAC","file":"error-groups-handler.js","sourcesContent":["/**\n * GET /errors/groups handler\n *\n * Groups errors from the last QA run by pattern (ESLint rule, TS code, etc.).\n * Helps identify the most impactful errors to fix first.\n */\n\nimport { defineHandler, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { loadLastRun, groupErrors } from '@kb-labs/qa-core';\nimport type { QAErrorGroupsRequest, QAErrorGroupsResponse } from '@kb-labs/qa-contracts';\n\nexport default defineHandler({\n async execute(\n ctx: PluginContextV3,\n _input: RestInput<QAErrorGroupsRequest, unknown>,\n ): Promise<QAErrorGroupsResponse> {\n const lastRun = loadLastRun(ctx.cwd);\n\n if (!lastRun) {\n return { groups: [], ungrouped: 0 };\n }\n\n return groupErrors(lastRun.results);\n },\n});\n"]}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
|
|
2
|
-
import { RestInput } from '@kb-labs/sdk';
|
|
3
|
-
|
|
4
|
-
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<{}, unknown, unknown>, {
|
|
5
|
-
entry: {
|
|
6
|
-
status: "passed" | "failed";
|
|
7
|
-
git: {
|
|
8
|
-
commit: string;
|
|
9
|
-
branch: string;
|
|
10
|
-
message: string;
|
|
11
|
-
};
|
|
12
|
-
timestamp: string;
|
|
13
|
-
summary: Record<string, {
|
|
14
|
-
passed: number;
|
|
15
|
-
failed: number;
|
|
16
|
-
skipped: number;
|
|
17
|
-
}>;
|
|
18
|
-
failedPackages: Record<string, string[]>;
|
|
19
|
-
} | null;
|
|
20
|
-
}>;
|
|
21
|
-
|
|
22
|
-
export { _default as default };
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { defineHandler } from '@kb-labs/sdk';
|
|
2
|
-
import { loadHistory } from '@kb-labs/qa-core';
|
|
3
|
-
|
|
4
|
-
// src/rest/handlers/latest-handler.ts
|
|
5
|
-
var latest_handler_default = defineHandler({
|
|
6
|
-
async execute(ctx, _input) {
|
|
7
|
-
const history = loadHistory(ctx.cwd);
|
|
8
|
-
if (history.length === 0) {
|
|
9
|
-
return { entry: null };
|
|
10
|
-
}
|
|
11
|
-
return { entry: history[history.length - 1] };
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
export { latest_handler_default as default };
|
|
16
|
-
//# sourceMappingURL=latest-handler.js.map
|
|
17
|
-
//# sourceMappingURL=latest-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/rest/handlers/latest-handler.ts"],"names":[],"mappings":";;;;AAUA,IAAO,yBAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CACJ,GAAA,EACA,MAAA,EAC2B;AAC3B,IAAA,MAAM,OAAA,GAAU,WAAA,CAAY,GAAA,CAAI,GAAG,CAAA;AAEnC,IAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,MAAA,OAAO,EAAE,OAAO,IAAA,EAAK;AAAA,IACvB;AAEA,IAAA,OAAO,EAAE,KAAA,EAAO,OAAA,CAAQ,OAAA,CAAQ,MAAA,GAAS,CAAC,CAAA,EAAG;AAAA,EAC/C;AACF,CAAC","file":"latest-handler.js","sourcesContent":["/**\n * GET /latest handler\n *\n * Returns the most recent QA run from history.\n */\n\nimport { defineHandler, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { loadHistory } from '@kb-labs/qa-core';\nimport type { QALatestRequest, QALatestResponse } from '@kb-labs/qa-contracts';\n\nexport default defineHandler({\n async execute(\n ctx: PluginContextV3,\n _input: RestInput<QALatestRequest, unknown>,\n ): Promise<QALatestResponse> {\n const history = loadHistory(ctx.cwd);\n\n if (history.length === 0) {\n return { entry: null };\n }\n\n return { entry: history[history.length - 1]! };\n },\n});\n"]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
|
|
2
|
-
import { RestInput } from '@kb-labs/sdk';
|
|
3
|
-
|
|
4
|
-
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<unknown, {
|
|
5
|
-
checkType: string;
|
|
6
|
-
repo?: string | undefined;
|
|
7
|
-
package?: string | undefined;
|
|
8
|
-
}, unknown>, {
|
|
9
|
-
status: "passed" | "failed";
|
|
10
|
-
checkType: string;
|
|
11
|
-
durationMs: number;
|
|
12
|
-
result: {
|
|
13
|
-
passed: string[];
|
|
14
|
-
failed: string[];
|
|
15
|
-
skipped: string[];
|
|
16
|
-
errors: Record<string, string>;
|
|
17
|
-
};
|
|
18
|
-
}>;
|
|
19
|
-
|
|
20
|
-
export { _default as default };
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { defineHandler } from '@kb-labs/sdk';
|
|
2
|
-
import { getWorkspacePackages, runTestCheck, runTypeCheck, runLintCheck } from '@kb-labs/qa-core';
|
|
3
|
-
|
|
4
|
-
// src/rest/handlers/run-check-handler.ts
|
|
5
|
-
var run_check_handler_default = defineHandler({
|
|
6
|
-
async execute(ctx, input) {
|
|
7
|
-
const rootDir = ctx.cwd;
|
|
8
|
-
const startTime = Date.now();
|
|
9
|
-
const body = input.body;
|
|
10
|
-
const { checkType, repo, package: packageFilter } = body;
|
|
11
|
-
let packages = getWorkspacePackages(rootDir);
|
|
12
|
-
if (repo) {
|
|
13
|
-
packages = packages.filter((p) => p.repo === repo);
|
|
14
|
-
}
|
|
15
|
-
if (packageFilter) {
|
|
16
|
-
packages = packages.filter((p) => p.name === packageFilter || p.name.includes(packageFilter));
|
|
17
|
-
}
|
|
18
|
-
let result;
|
|
19
|
-
switch (checkType) {
|
|
20
|
-
case "lint":
|
|
21
|
-
result = runLintCheck({ rootDir, packages });
|
|
22
|
-
break;
|
|
23
|
-
case "typeCheck":
|
|
24
|
-
result = runTypeCheck({ rootDir, packages });
|
|
25
|
-
break;
|
|
26
|
-
case "test":
|
|
27
|
-
result = runTestCheck({ rootDir, packages });
|
|
28
|
-
break;
|
|
29
|
-
default:
|
|
30
|
-
result = { passed: [], failed: [], skipped: [], errors: {} };
|
|
31
|
-
}
|
|
32
|
-
const hasFailed = result.failed.length > 0;
|
|
33
|
-
const durationMs = Date.now() - startTime;
|
|
34
|
-
const analytics = ctx.platform.analytics;
|
|
35
|
-
if (analytics) {
|
|
36
|
-
await analytics.track("qa.check.completed", {
|
|
37
|
-
checkType,
|
|
38
|
-
status: hasFailed ? "failed" : "passed",
|
|
39
|
-
passed: result.passed.length,
|
|
40
|
-
failed: result.failed.length,
|
|
41
|
-
skipped: result.skipped.length,
|
|
42
|
-
durationMs,
|
|
43
|
-
repo: repo || void 0,
|
|
44
|
-
package: packageFilter || void 0
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
return {
|
|
48
|
-
checkType,
|
|
49
|
-
status: hasFailed ? "failed" : "passed",
|
|
50
|
-
result,
|
|
51
|
-
durationMs
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
export { run_check_handler_default as default };
|
|
57
|
-
//# sourceMappingURL=run-check-handler.js.map
|
|
58
|
-
//# sourceMappingURL=run-check-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/rest/handlers/run-check-handler.ts"],"names":[],"mappings":";;;;AAYA,IAAO,4BAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CACJ,GAAA,EACA,KAAA,EAC6B;AAC7B,IAAA,MAAM,UAAU,GAAA,CAAI,GAAA;AACpB,IAAA,MAAM,SAAA,GAAY,KAAK,GAAA,EAAI;AAC3B,IAAA,MAAM,OAAO,KAAA,CAAM,IAAA;AAEnB,IAAA,MAAM,EAAE,SAAA,EAAW,IAAA,EAAM,OAAA,EAAS,eAAc,GAAI,IAAA;AAGpD,IAAA,IAAI,QAAA,GAAW,qBAAqB,OAAO,CAAA;AAG3C,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,QAAA,GAAW,SAAS,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,IAAI,CAAA;AAAA,IACnD;AAGA,IAAA,IAAI,aAAA,EAAe;AACjB,MAAA,QAAA,GAAW,QAAA,CAAS,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,KAAS,aAAA,IAAiB,CAAA,CAAE,IAAA,CAAK,QAAA,CAAS,aAAa,CAAC,CAAA;AAAA,IAC9F;AAGA,IAAA,IAAI,MAAA;AACJ,IAAA,QAAQ,SAAA;AAAW,MACjB,KAAK,MAAA;AACH,QAAA,MAAA,GAAS,YAAA,CAAa,EAAE,OAAA,EAAS,QAAA,EAAU,CAAA;AAC3C,QAAA;AAAA,MACF,KAAK,WAAA;AACH,QAAA,MAAA,GAAS,YAAA,CAAa,EAAE,OAAA,EAAS,QAAA,EAAU,CAAA;AAC3C,QAAA;AAAA,MACF,KAAK,MAAA;AACH,QAAA,MAAA,GAAS,YAAA,CAAa,EAAE,OAAA,EAAS,QAAA,EAAU,CAAA;AAC3C,QAAA;AAAA,MACF;AACE,QAAA,MAAA,GAAS,EAAE,MAAA,EAAQ,EAAC,EAAG,MAAA,EAAQ,EAAC,EAAG,OAAA,EAAS,EAAC,EAAG,MAAA,EAAQ,EAAC,EAAE;AAAA;AAG/D,IAAA,MAAM,SAAA,GAAY,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAA;AACzC,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,GAAA,EAAI,GAAI,SAAA;AAGhC,IAAA,MAAM,SAAA,GAAY,IAAI,QAAA,CAAS,SAAA;AAC/B,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,MAAM,SAAA,CAAU,MAAM,oBAAA,EAAsB;AAAA,QAC1C,SAAA;AAAA,QACA,MAAA,EAAQ,YAAY,QAAA,GAAW,QAAA;AAAA,QAC/B,MAAA,EAAQ,OAAO,MAAA,CAAO,MAAA;AAAA,QACtB,MAAA,EAAQ,OAAO,MAAA,CAAO,MAAA;AAAA,QACtB,OAAA,EAAS,OAAO,OAAA,CAAQ,MAAA;AAAA,QACxB,UAAA;AAAA,QACA,MAAM,IAAA,IAAQ,MAAA;AAAA,QACd,SAAS,aAAA,IAAiB;AAAA,OAC3B,CAAA;AAAA,IACH;AAEA,IAAA,OAAO;AAAA,MACL,SAAA;AAAA,MACA,MAAA,EAAQ,YAAY,QAAA,GAAW,QAAA;AAAA,MAC/B,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF,CAAC","file":"run-check-handler.js","sourcesContent":["/**\n * POST /run/check handler\n *\n * Runs a single check type (lint, typeCheck, or test) with optional filtering\n * by repo or package name. Useful for quick re-checks from the UI.\n */\n\nimport { defineHandler, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { getWorkspacePackages, runLintCheck, runTypeCheck, runTestCheck } from '@kb-labs/qa-core';\nimport type { QARunCheckRequest, QARunCheckResponse } from '@kb-labs/qa-contracts';\nimport type { CheckResult } from '@kb-labs/qa-contracts';\n\nexport default defineHandler({\n async execute(\n ctx: PluginContextV3,\n input: RestInput<unknown, QARunCheckRequest>,\n ): Promise<QARunCheckResponse> {\n const rootDir = ctx.cwd;\n const startTime = Date.now();\n const body = input.body!;\n\n const { checkType, repo, package: packageFilter } = body;\n\n // Discover workspace packages\n let packages = getWorkspacePackages(rootDir);\n\n // Filter by repo if specified\n if (repo) {\n packages = packages.filter((p) => p.repo === repo);\n }\n\n // Filter by package name if specified\n if (packageFilter) {\n packages = packages.filter((p) => p.name === packageFilter || p.name.includes(packageFilter));\n }\n\n // Run the specified check\n let result: CheckResult;\n switch (checkType) {\n case 'lint':\n result = runLintCheck({ rootDir, packages });\n break;\n case 'typeCheck':\n result = runTypeCheck({ rootDir, packages });\n break;\n case 'test':\n result = runTestCheck({ rootDir, packages });\n break;\n default:\n result = { passed: [], failed: [], skipped: [], errors: {} };\n }\n\n const hasFailed = result.failed.length > 0;\n const durationMs = Date.now() - startTime;\n\n // Track analytics event\n const analytics = ctx.platform.analytics;\n if (analytics) {\n await analytics.track('qa.check.completed', {\n checkType,\n status: hasFailed ? 'failed' : 'passed',\n passed: result.passed.length,\n failed: result.failed.length,\n skipped: result.skipped.length,\n durationMs,\n repo: repo || undefined,\n package: packageFilter || undefined,\n });\n }\n\n return {\n checkType,\n status: hasFailed ? 'failed' : 'passed',\n result,\n durationMs,\n };\n },\n});\n"]}
|