@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,33 +1,13 @@
|
|
|
1
1
|
import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
|
|
2
|
+
import * as _kb_labs_qa_contracts from '@kb-labs/qa-contracts';
|
|
2
3
|
import { RestInput } from '@kb-labs/sdk';
|
|
3
4
|
|
|
4
|
-
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}>;
|
|
11
|
-
} | null;
|
|
12
|
-
baseline: {
|
|
13
|
-
git: {
|
|
14
|
-
commit: string;
|
|
15
|
-
branch: string;
|
|
16
|
-
};
|
|
17
|
-
timestamp: string;
|
|
18
|
-
results: Record<string, {
|
|
19
|
-
passed: number;
|
|
20
|
-
failed: number;
|
|
21
|
-
failedPackages: string[];
|
|
22
|
-
}>;
|
|
23
|
-
} | null;
|
|
24
|
-
hasDiff: boolean;
|
|
25
|
-
diff: Record<string, {
|
|
26
|
-
delta: number;
|
|
27
|
-
newFailures: string[];
|
|
28
|
-
fixed: string[];
|
|
29
|
-
stillFailing: string[];
|
|
30
|
-
}>;
|
|
5
|
+
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<unknown, unknown, unknown>, _kb_labs_qa_contracts.BaselineCheckDiff | {
|
|
6
|
+
error: "no-baseline";
|
|
7
|
+
} | {
|
|
8
|
+
error: "no-check";
|
|
9
|
+
} | {
|
|
10
|
+
error: "no-stats";
|
|
31
11
|
}>;
|
|
32
12
|
|
|
33
13
|
export { _default as default };
|
|
@@ -1,50 +1,24 @@
|
|
|
1
|
-
import { defineHandler } from '@kb-labs/sdk';
|
|
2
|
-
import {
|
|
1
|
+
import { defineHandler, useConfig, rethrowForRest } from '@kb-labs/sdk';
|
|
2
|
+
import { SnapshotStore, compareWithBaseline } from '@kb-labs/qa-core';
|
|
3
3
|
|
|
4
4
|
// src/rest/handlers/baseline-diff-handler.ts
|
|
5
5
|
var baseline_diff_handler_default = defineHandler({
|
|
6
|
-
async execute(ctx,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
};
|
|
6
|
+
async execute(ctx, input) {
|
|
7
|
+
try {
|
|
8
|
+
const config = await useConfig();
|
|
9
|
+
const store = new SnapshotStore(ctx.cwd, config?.historyMaxEntries);
|
|
10
|
+
const baseline = store.loadBaseline();
|
|
11
|
+
if (!baseline) return { error: "no-baseline" };
|
|
12
|
+
const latestCheck = store.latestCheck();
|
|
13
|
+
if (!latestCheck) return { error: "no-check" };
|
|
14
|
+
const latestStats = store.latestStats();
|
|
15
|
+
if (!latestStats) return { error: "no-stats" };
|
|
16
|
+
return compareWithBaseline(latestCheck.raw, latestStats.raw, baseline);
|
|
17
|
+
} catch (error) {
|
|
18
|
+
rethrowForRest(error);
|
|
20
19
|
}
|
|
21
|
-
const diff = compareWithBaseline(lastRun.results, baseline);
|
|
22
|
-
const hasDiff = Object.keys(diff).some((ct) => {
|
|
23
|
-
const d = diff[ct];
|
|
24
|
-
return d.newFailures.length > 0 || d.fixed.length > 0;
|
|
25
|
-
});
|
|
26
|
-
return {
|
|
27
|
-
hasDiff,
|
|
28
|
-
diff,
|
|
29
|
-
baseline,
|
|
30
|
-
current: {
|
|
31
|
-
timestamp: lastRun.timestamp,
|
|
32
|
-
summary: buildSummaryFromResults(lastRun.results)
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
20
|
}
|
|
36
21
|
});
|
|
37
|
-
function buildSummaryFromResults(results) {
|
|
38
|
-
const summary = {};
|
|
39
|
-
for (const ct of Object.keys(results)) {
|
|
40
|
-
const r = results[ct];
|
|
41
|
-
summary[ct] = {
|
|
42
|
-
passed: r?.passed.length ?? 0,
|
|
43
|
-
failed: r?.failed.length ?? 0
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
return summary;
|
|
47
|
-
}
|
|
48
22
|
|
|
49
23
|
export { baseline_diff_handler_default as default };
|
|
50
24
|
//# sourceMappingURL=baseline-diff-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/rest/handlers/baseline-diff-handler.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/baseline-diff-handler.ts"],"names":[],"mappings":";;;;AAIA,IAAO,gCAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,GAAA,EAAsB,KAAA,EAAkB;AACpD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,SAAA,EAA0B;AAC/C,MAAA,MAAM,QAAQ,IAAI,aAAA,CAAc,GAAA,CAAI,GAAA,EAAK,QAAQ,iBAAiB,CAAA;AAElE,MAAA,MAAM,QAAA,GAAW,MAAM,YAAA,EAAa;AACpC,MAAA,IAAI,CAAC,QAAA,EAAU,OAAO,EAAE,OAAO,aAAA,EAAuB;AAEtD,MAAA,MAAM,WAAA,GAAc,MAAM,WAAA,EAAY;AACtC,MAAA,IAAI,CAAC,WAAA,EAAa,OAAO,EAAE,OAAO,UAAA,EAAoB;AAEtD,MAAA,MAAM,WAAA,GAAc,MAAM,WAAA,EAAY;AACtC,MAAA,IAAI,CAAC,WAAA,EAAa,OAAO,EAAE,OAAO,UAAA,EAAoB;AAEtD,MAAA,OAAO,mBAAA,CAAoB,WAAA,CAAY,GAAA,EAAK,WAAA,CAAY,KAAK,QAAQ,CAAA;AAAA,IACvE,SAAS,KAAA,EAAO;AACd,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAAA,EACF;AACF,CAAC","file":"baseline-diff-handler.js","sourcesContent":["import { defineHandler, useConfig, rethrowForRest, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { SnapshotStore, compareWithBaseline } from '@kb-labs/qa-core';\nimport { type QAPluginConfig } from '@kb-labs/qa-contracts';\n\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput) {\n try {\n const config = await useConfig<QAPluginConfig>();\n const store = new SnapshotStore(ctx.cwd, config?.historyMaxEntries);\n\n const baseline = store.loadBaseline();\n if (!baseline) return { error: 'no-baseline' as const };\n\n const latestCheck = store.latestCheck();\n if (!latestCheck) return { error: 'no-check' as const };\n\n const latestStats = store.latestStats();\n if (!latestStats) return { error: 'no-stats' as const };\n\n return compareWithBaseline(latestCheck.raw, latestStats.raw, baseline);\n } catch (error) {\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -1,19 +1,9 @@
|
|
|
1
1
|
import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
|
|
2
|
+
import * as _kb_labs_qa_contracts from '@kb-labs/qa-contracts';
|
|
2
3
|
import { RestInput } from '@kb-labs/sdk';
|
|
3
4
|
|
|
4
|
-
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<
|
|
5
|
-
baseline:
|
|
6
|
-
git: {
|
|
7
|
-
commit: string;
|
|
8
|
-
branch: string;
|
|
9
|
-
};
|
|
10
|
-
timestamp: string;
|
|
11
|
-
results: Record<string, {
|
|
12
|
-
passed: number;
|
|
13
|
-
failed: number;
|
|
14
|
-
failedPackages: string[];
|
|
15
|
-
}>;
|
|
16
|
-
} | null;
|
|
5
|
+
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<unknown, unknown, unknown>, {
|
|
6
|
+
baseline: _kb_labs_qa_contracts.BaselineData | null;
|
|
17
7
|
}>;
|
|
18
8
|
|
|
19
9
|
export { _default as default };
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
import { defineHandler } from '@kb-labs/sdk';
|
|
2
|
-
import {
|
|
1
|
+
import { defineHandler, useConfig, rethrowForRest } from '@kb-labs/sdk';
|
|
2
|
+
import { SnapshotStore } from '@kb-labs/qa-core';
|
|
3
3
|
|
|
4
4
|
// src/rest/handlers/baseline-handler.ts
|
|
5
5
|
var baseline_handler_default = defineHandler({
|
|
6
|
-
async execute(ctx,
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
async execute(ctx, input) {
|
|
7
|
+
try {
|
|
8
|
+
const config = await useConfig();
|
|
9
|
+
const store = new SnapshotStore(ctx.cwd, config?.historyMaxEntries);
|
|
10
|
+
return { baseline: store.loadBaseline() };
|
|
11
|
+
} catch (error) {
|
|
12
|
+
rethrowForRest(error);
|
|
13
|
+
}
|
|
9
14
|
}
|
|
10
15
|
});
|
|
11
16
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/rest/handlers/baseline-handler.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/baseline-handler.ts"],"names":[],"mappings":";;;;AAIA,IAAO,2BAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,GAAA,EAAsB,KAAA,EAAkB;AACpD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,SAAA,EAA0B;AAC/C,MAAA,MAAM,QAAQ,IAAI,aAAA,CAAc,GAAA,CAAI,GAAA,EAAK,QAAQ,iBAAiB,CAAA;AAClE,MAAA,OAAO,EAAE,QAAA,EAAU,KAAA,CAAM,YAAA,EAAa,EAAE;AAAA,IAC1C,SAAS,KAAA,EAAO;AACd,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAAA,EACF;AACF,CAAC","file":"baseline-handler.js","sourcesContent":["import { defineHandler, useConfig, rethrowForRest, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { SnapshotStore } from '@kb-labs/qa-core';\nimport { type QAPluginConfig } from '@kb-labs/qa-contracts';\n\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput) {\n try {\n const config = await useConfig<QAPluginConfig>();\n const store = new SnapshotStore(ctx.cwd, config?.historyMaxEntries);\n return { baseline: store.loadBaseline() };\n } catch (error) {\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -1,20 +1,10 @@
|
|
|
1
1
|
import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
|
|
2
|
+
import * as _kb_labs_qa_contracts from '@kb-labs/qa-contracts';
|
|
2
3
|
import { RestInput } from '@kb-labs/sdk';
|
|
3
4
|
|
|
4
|
-
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<unknown,
|
|
5
|
-
baseline:
|
|
6
|
-
|
|
7
|
-
commit: string;
|
|
8
|
-
branch: string;
|
|
9
|
-
};
|
|
10
|
-
timestamp: string;
|
|
11
|
-
results: Record<string, {
|
|
12
|
-
passed: number;
|
|
13
|
-
failed: number;
|
|
14
|
-
failedPackages: string[];
|
|
15
|
-
}>;
|
|
16
|
-
};
|
|
17
|
-
success: boolean;
|
|
5
|
+
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<unknown, unknown, unknown>, {
|
|
6
|
+
baseline: _kb_labs_qa_contracts.BaselineData;
|
|
7
|
+
ok: boolean;
|
|
18
8
|
}>;
|
|
19
9
|
|
|
20
10
|
export { _default as default };
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import { defineHandler } from '@kb-labs/sdk';
|
|
2
|
-
import {
|
|
1
|
+
import { defineHandler, useConfig, rethrowForRest } from '@kb-labs/sdk';
|
|
2
|
+
import { resolveDevkitBin, DevkitAdapter, SnapshotStore, captureGit } from '@kb-labs/qa-core';
|
|
3
3
|
|
|
4
4
|
// src/rest/handlers/baseline-update-handler.ts
|
|
5
5
|
var baseline_update_handler_default = defineHandler({
|
|
6
|
-
async execute(ctx,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
async execute(ctx, input) {
|
|
7
|
+
try {
|
|
8
|
+
const config = await useConfig();
|
|
9
|
+
const cwd = ctx.cwd;
|
|
10
|
+
const binaryPath = resolveDevkitBin(cwd, config?.devkitPath);
|
|
11
|
+
const adapter = new DevkitAdapter({ binaryPath, cwd, shell: ctx.api.shell });
|
|
12
|
+
const store = new SnapshotStore(cwd, config?.historyMaxEntries);
|
|
13
|
+
const git = await captureGit(ctx.api.shell, cwd);
|
|
14
|
+
const [check, stats] = await Promise.all([adapter.check(), adapter.stats()]);
|
|
15
|
+
const baseline = store.saveBaseline(check, stats, git);
|
|
16
|
+
return { baseline, ok: true };
|
|
17
|
+
} catch (error) {
|
|
18
|
+
rethrowForRest(error);
|
|
11
19
|
}
|
|
12
|
-
const baseline = createBaselineFromResults(lastRun.results, rootDir);
|
|
13
|
-
saveBaseline(rootDir, baseline);
|
|
14
|
-
return {
|
|
15
|
-
success: true,
|
|
16
|
-
baseline
|
|
17
|
-
};
|
|
18
20
|
}
|
|
19
21
|
});
|
|
20
22
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/rest/handlers/baseline-update-handler.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/baseline-update-handler.ts"],"names":[],"mappings":";;;;AAIA,IAAO,kCAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,GAAA,EAAsB,KAAA,EAAkB;AACpD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,SAAA,EAA0B;AAC/C,MAAA,MAAM,MAAM,GAAA,CAAI,GAAA;AAEhB,MAAA,MAAM,UAAA,GAAa,gBAAA,CAAiB,GAAA,EAAK,MAAA,EAAQ,UAAU,CAAA;AAC3D,MAAA,MAAM,OAAA,GAAU,IAAI,aAAA,CAAc,EAAE,UAAA,EAAY,KAAK,KAAA,EAAO,GAAA,CAAI,GAAA,CAAI,KAAA,EAAO,CAAA;AAC3E,MAAA,MAAM,KAAA,GAAQ,IAAI,aAAA,CAAc,GAAA,EAAK,QAAQ,iBAAiB,CAAA;AAE9D,MAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAA,CAAI,GAAA,CAAI,OAAO,GAAG,CAAA;AAC/C,MAAA,MAAM,CAAC,KAAA,EAAO,KAAK,CAAA,GAAI,MAAM,OAAA,CAAQ,GAAA,CAAI,CAAC,OAAA,CAAQ,KAAA,EAAM,EAAG,OAAA,CAAQ,KAAA,EAAO,CAAC,CAAA;AAC3E,MAAA,MAAM,QAAA,GAAW,KAAA,CAAM,YAAA,CAAa,KAAA,EAAO,OAAO,GAAG,CAAA;AAErD,MAAA,OAAO,EAAE,QAAA,EAAU,EAAA,EAAI,IAAA,EAAK;AAAA,IAC9B,SAAS,KAAA,EAAO;AACd,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAAA,EACF;AACF,CAAC","file":"baseline-update-handler.js","sourcesContent":["import { defineHandler, useConfig, rethrowForRest, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { DevkitAdapter, SnapshotStore, resolveDevkitBin, captureGit } from '@kb-labs/qa-core';\nimport { type QAPluginConfig } from '@kb-labs/qa-contracts';\n\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput) {\n try {\n const config = await useConfig<QAPluginConfig>();\n const cwd = ctx.cwd;\n\n const binaryPath = resolveDevkitBin(cwd, config?.devkitPath);\n const adapter = new DevkitAdapter({ binaryPath, cwd, shell: ctx.api.shell });\n const store = new SnapshotStore(cwd, config?.historyMaxEntries);\n\n const git = await captureGit(ctx.api.shell, cwd);\n const [check, stats] = await Promise.all([adapter.check(), adapter.stats()]);\n const baseline = store.saveBaseline(check, stats, git);\n\n return { baseline, ok: true };\n } catch (error) {\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
|
|
2
|
+
import * as _kb_labs_qa_contracts from '@kb-labs/qa-contracts';
|
|
3
|
+
import { RestInput } from '@kb-labs/sdk';
|
|
4
|
+
|
|
5
|
+
interface CheckBody {
|
|
6
|
+
save?: boolean;
|
|
7
|
+
runContext?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<unknown, CheckBody, unknown>, {
|
|
10
|
+
snapshot: _kb_labs_qa_contracts.CheckSnapshot | null;
|
|
11
|
+
raw: _kb_labs_qa_contracts.DevkitCheckOutput;
|
|
12
|
+
ok: boolean;
|
|
13
|
+
}>;
|
|
14
|
+
|
|
15
|
+
export { _default as default };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { defineHandler, useConfig, rethrowForRest } from '@kb-labs/sdk';
|
|
2
|
+
import { resolveDevkitBin, DevkitAdapter, SnapshotStore, captureGit } from '@kb-labs/qa-core';
|
|
3
|
+
|
|
4
|
+
// src/rest/handlers/check-handler.ts
|
|
5
|
+
var check_handler_default = defineHandler({
|
|
6
|
+
async execute(ctx, input) {
|
|
7
|
+
try {
|
|
8
|
+
const { save = true, runContext } = input.body ?? {};
|
|
9
|
+
const config = await useConfig();
|
|
10
|
+
const cwd = ctx.cwd;
|
|
11
|
+
const binaryPath = resolveDevkitBin(cwd, config?.devkitPath);
|
|
12
|
+
const adapter = new DevkitAdapter({ binaryPath, cwd, shell: ctx.api.shell });
|
|
13
|
+
const store = new SnapshotStore(cwd, config?.historyMaxEntries);
|
|
14
|
+
const git = await captureGit(ctx.api.shell, cwd);
|
|
15
|
+
const start = Date.now();
|
|
16
|
+
const raw = await adapter.check();
|
|
17
|
+
const durationMs = Date.now() - start;
|
|
18
|
+
const snap = save ? store.saveCheck(raw, durationMs, git, runContext) : null;
|
|
19
|
+
return { snapshot: snap, raw, ok: raw.ok };
|
|
20
|
+
} catch (error) {
|
|
21
|
+
rethrowForRest(error);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
export { check_handler_default as default };
|
|
27
|
+
//# sourceMappingURL=check-handler.js.map
|
|
28
|
+
//# sourceMappingURL=check-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/check-handler.ts"],"names":[],"mappings":";;;;AASA,IAAO,wBAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,GAAA,EAAsB,KAAA,EAAsC;AACxE,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,IAAA,GAAO,IAAA,EAAM,YAAW,GAAI,KAAA,CAAM,QAAQ,EAAC;AACnD,MAAA,MAAM,MAAA,GAAS,MAAM,SAAA,EAA0B;AAC/C,MAAA,MAAM,MAAM,GAAA,CAAI,GAAA;AAEhB,MAAA,MAAM,UAAA,GAAa,gBAAA,CAAiB,GAAA,EAAK,MAAA,EAAQ,UAAU,CAAA;AAC3D,MAAA,MAAM,OAAA,GAAU,IAAI,aAAA,CAAc,EAAE,UAAA,EAAY,KAAK,KAAA,EAAO,GAAA,CAAI,GAAA,CAAI,KAAA,EAAO,CAAA;AAC3E,MAAA,MAAM,KAAA,GAAQ,IAAI,aAAA,CAAc,GAAA,EAAK,QAAQ,iBAAiB,CAAA;AAE9D,MAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAA,CAAI,GAAA,CAAI,OAAO,GAAG,CAAA;AAE/C,MAAA,MAAM,KAAA,GAAQ,KAAK,GAAA,EAAI;AACvB,MAAA,MAAM,GAAA,GAAM,MAAM,OAAA,CAAQ,KAAA,EAAM;AAChC,MAAA,MAAM,UAAA,GAAa,IAAA,CAAK,GAAA,EAAI,GAAI,KAAA;AAEhC,MAAA,MAAM,IAAA,GAAO,OAAO,KAAA,CAAM,SAAA,CAAU,KAAK,UAAA,EAAY,GAAA,EAAK,UAAU,CAAA,GAAI,IAAA;AACxE,MAAA,OAAO,EAAE,QAAA,EAAU,IAAA,EAAM,GAAA,EAAK,EAAA,EAAI,IAAI,EAAA,EAAG;AAAA,IAC3C,SAAS,KAAA,EAAO;AACd,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAAA,EACF;AACF,CAAC","file":"check-handler.js","sourcesContent":["import { defineHandler, useConfig, rethrowForRest, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { DevkitAdapter, SnapshotStore, resolveDevkitBin, captureGit } from '@kb-labs/qa-core';\nimport { type QAPluginConfig } from '@kb-labs/qa-contracts';\n\ninterface CheckBody {\n save?: boolean;\n runContext?: Record<string, unknown>;\n}\n\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput<unknown, CheckBody>) {\n try {\n const { save = true, runContext } = input.body ?? {};\n const config = await useConfig<QAPluginConfig>();\n const cwd = ctx.cwd;\n\n const binaryPath = resolveDevkitBin(cwd, config?.devkitPath);\n const adapter = new DevkitAdapter({ binaryPath, cwd, shell: ctx.api.shell });\n const store = new SnapshotStore(cwd, config?.historyMaxEntries);\n\n const git = await captureGit(ctx.api.shell, cwd);\n\n const start = Date.now();\n const raw = await adapter.check();\n const durationMs = Date.now() - start;\n\n const snap = save ? store.saveCheck(raw, durationMs, git, runContext) : null;\n return { snapshot: snap, raw, ok: raw.ok };\n } catch (error) {\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
|
|
2
|
+
import * as _kb_labs_qa_contracts from '@kb-labs/qa-contracts';
|
|
3
|
+
import { RestInput } from '@kb-labs/sdk';
|
|
4
|
+
|
|
5
|
+
interface GateBody {
|
|
6
|
+
save?: boolean;
|
|
7
|
+
}
|
|
8
|
+
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<unknown, GateBody, unknown>, {
|
|
9
|
+
raw: _kb_labs_qa_contracts.DevkitGateOutput;
|
|
10
|
+
ok: boolean;
|
|
11
|
+
}>;
|
|
12
|
+
|
|
13
|
+
export { _default as default };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { defineHandler, useConfig, rethrowForRest } from '@kb-labs/sdk';
|
|
2
|
+
import { resolveDevkitBin, DevkitAdapter, SnapshotStore, captureGit } from '@kb-labs/qa-core';
|
|
3
|
+
|
|
4
|
+
// src/rest/handlers/gate-handler.ts
|
|
5
|
+
var gate_handler_default = defineHandler({
|
|
6
|
+
async execute(ctx, input) {
|
|
7
|
+
try {
|
|
8
|
+
const { save = false } = input.body ?? {};
|
|
9
|
+
const config = await useConfig();
|
|
10
|
+
const cwd = ctx.cwd;
|
|
11
|
+
const binaryPath = resolveDevkitBin(cwd, config?.devkitPath);
|
|
12
|
+
const adapter = new DevkitAdapter({ binaryPath, cwd, shell: ctx.api.shell });
|
|
13
|
+
const store = new SnapshotStore(cwd, config?.historyMaxEntries);
|
|
14
|
+
const git = await captureGit(ctx.api.shell, cwd);
|
|
15
|
+
const start = Date.now();
|
|
16
|
+
const raw = await adapter.gate();
|
|
17
|
+
const durationMs = Date.now() - start;
|
|
18
|
+
if (save) store.saveGate(raw, durationMs, git);
|
|
19
|
+
return { raw, ok: raw.ok };
|
|
20
|
+
} catch (error) {
|
|
21
|
+
rethrowForRest(error);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
export { gate_handler_default as default };
|
|
27
|
+
//# sourceMappingURL=gate-handler.js.map
|
|
28
|
+
//# sourceMappingURL=gate-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/gate-handler.ts"],"names":[],"mappings":";;;;AAQA,IAAO,uBAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,GAAA,EAAsB,KAAA,EAAqC;AACvE,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,IAAA,GAAO,KAAA,EAAM,GAAI,KAAA,CAAM,QAAQ,EAAC;AACxC,MAAA,MAAM,MAAA,GAAS,MAAM,SAAA,EAA0B;AAC/C,MAAA,MAAM,MAAM,GAAA,CAAI,GAAA;AAEhB,MAAA,MAAM,UAAA,GAAa,gBAAA,CAAiB,GAAA,EAAK,MAAA,EAAQ,UAAU,CAAA;AAC3D,MAAA,MAAM,OAAA,GAAU,IAAI,aAAA,CAAc,EAAE,UAAA,EAAY,KAAK,KAAA,EAAO,GAAA,CAAI,GAAA,CAAI,KAAA,EAAO,CAAA;AAC3E,MAAA,MAAM,KAAA,GAAQ,IAAI,aAAA,CAAc,GAAA,EAAK,QAAQ,iBAAiB,CAAA;AAE9D,MAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAA,CAAI,GAAA,CAAI,OAAO,GAAG,CAAA;AAE/C,MAAA,MAAM,KAAA,GAAQ,KAAK,GAAA,EAAI;AACvB,MAAA,MAAM,GAAA,GAAM,MAAM,OAAA,CAAQ,IAAA,EAAK;AAC/B,MAAA,MAAM,UAAA,GAAa,IAAA,CAAK,GAAA,EAAI,GAAI,KAAA;AAEhC,MAAA,IAAI,IAAA,EAAM,KAAA,CAAM,QAAA,CAAS,GAAA,EAAK,YAAY,GAAG,CAAA;AAC7C,MAAA,OAAO,EAAE,GAAA,EAAK,EAAA,EAAI,GAAA,CAAI,EAAA,EAAG;AAAA,IAC3B,SAAS,KAAA,EAAO;AACd,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAAA,EACF;AACF,CAAC","file":"gate-handler.js","sourcesContent":["import { defineHandler, useConfig, rethrowForRest, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { DevkitAdapter, SnapshotStore, resolveDevkitBin, captureGit } from '@kb-labs/qa-core';\nimport { type QAPluginConfig } from '@kb-labs/qa-contracts';\n\ninterface GateBody {\n save?: boolean;\n}\n\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput<unknown, GateBody>) {\n try {\n const { save = false } = input.body ?? {};\n const config = await useConfig<QAPluginConfig>();\n const cwd = ctx.cwd;\n\n const binaryPath = resolveDevkitBin(cwd, config?.devkitPath);\n const adapter = new DevkitAdapter({ binaryPath, cwd, shell: ctx.api.shell });\n const store = new SnapshotStore(cwd, config?.historyMaxEntries);\n\n const git = await captureGit(ctx.api.shell, cwd);\n\n const start = Date.now();\n const raw = await adapter.gate();\n const durationMs = Date.now() - start;\n\n if (save) store.saveGate(raw, durationMs, git);\n return { raw, ok: raw.ok };\n } catch (error) {\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -1,24 +1,11 @@
|
|
|
1
1
|
import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
|
|
2
|
+
import * as _kb_labs_qa_contracts from '@kb-labs/qa-contracts';
|
|
2
3
|
import { RestInput } from '@kb-labs/sdk';
|
|
3
4
|
|
|
4
5
|
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<{
|
|
5
|
-
limit?:
|
|
6
|
+
limit?: string;
|
|
6
7
|
}, unknown, unknown>, {
|
|
7
|
-
|
|
8
|
-
status: "passed" | "failed";
|
|
9
|
-
git: {
|
|
10
|
-
commit: string;
|
|
11
|
-
branch: string;
|
|
12
|
-
message: string;
|
|
13
|
-
};
|
|
14
|
-
timestamp: string;
|
|
15
|
-
summary: Record<string, {
|
|
16
|
-
passed: number;
|
|
17
|
-
failed: number;
|
|
18
|
-
skipped: number;
|
|
19
|
-
}>;
|
|
20
|
-
failedPackages: Record<string, string[]>;
|
|
21
|
-
}[];
|
|
8
|
+
history: _kb_labs_qa_contracts.RunSnapshot[];
|
|
22
9
|
total: number;
|
|
23
10
|
}>;
|
|
24
11
|
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { defineHandler } from '@kb-labs/sdk';
|
|
2
|
-
import {
|
|
1
|
+
import { defineHandler, useConfig, rethrowForRest } from '@kb-labs/sdk';
|
|
2
|
+
import { SnapshotStore } from '@kb-labs/qa-core';
|
|
3
3
|
|
|
4
4
|
// src/rest/handlers/history-handler.ts
|
|
5
5
|
var history_handler_default = defineHandler({
|
|
6
6
|
async execute(ctx, input) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
try {
|
|
8
|
+
const config = await useConfig();
|
|
9
|
+
const store = new SnapshotStore(ctx.cwd, config?.historyMaxEntries);
|
|
10
|
+
const limit = Number(input.query?.limit) || 20;
|
|
11
|
+
const history = [...store.loadRunHistory()].reverse().slice(0, limit);
|
|
12
|
+
return { history, total: history.length };
|
|
13
|
+
} catch (error) {
|
|
14
|
+
rethrowForRest(error);
|
|
12
15
|
}
|
|
13
|
-
return {
|
|
14
|
-
entries,
|
|
15
|
-
total: allEntries.length
|
|
16
|
-
};
|
|
17
16
|
}
|
|
18
17
|
});
|
|
19
18
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/rest/handlers/history-handler.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/history-handler.ts"],"names":[],"mappings":";;;;AAIA,IAAO,0BAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,GAAA,EAAsB,KAAA,EAAsC;AACxE,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,SAAA,EAA0B;AAC/C,MAAA,MAAM,QAAQ,IAAI,aAAA,CAAc,GAAA,CAAI,GAAA,EAAK,QAAQ,iBAAiB,CAAA;AAElE,MAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,KAAA,CAAM,KAAA,EAAO,KAAK,CAAA,IAAK,EAAA;AAC5C,MAAA,MAAM,OAAA,GAAU,CAAC,GAAG,KAAA,CAAM,cAAA,EAAgB,CAAA,CAAE,OAAA,EAAQ,CAAE,KAAA,CAAM,CAAA,EAAG,KAAK,CAAA;AAEpE,MAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,OAAA,CAAQ,MAAA,EAAO;AAAA,IAC1C,SAAS,KAAA,EAAO;AACd,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAAA,EACF;AACF,CAAC","file":"history-handler.js","sourcesContent":["import { defineHandler, useConfig, rethrowForRest, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { SnapshotStore } from '@kb-labs/qa-core';\nimport { type QAPluginConfig } from '@kb-labs/qa-contracts';\n\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput<{ limit?: string }>) {\n try {\n const config = await useConfig<QAPluginConfig>();\n const store = new SnapshotStore(ctx.cwd, config?.historyMaxEntries);\n\n const limit = Number(input.query?.limit) || 20;\n const history = [...store.loadRunHistory()].reverse().slice(0, limit);\n\n return { history, total: history.length };\n } catch (error) {\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -1,26 +1,11 @@
|
|
|
1
1
|
import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
|
|
2
|
+
import * as _kb_labs_qa_contracts from '@kb-labs/qa-contracts';
|
|
2
3
|
import { RestInput } from '@kb-labs/sdk';
|
|
3
4
|
|
|
4
|
-
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
branch: string;
|
|
9
|
-
message: string;
|
|
10
|
-
};
|
|
11
|
-
checks: Record<string, "passed" | "failed" | "skipped">;
|
|
12
|
-
timestamp: string;
|
|
13
|
-
submoduleCommit?: string | undefined;
|
|
14
|
-
}[];
|
|
15
|
-
repo: string;
|
|
16
|
-
packageName: string;
|
|
17
|
-
flakyScore: number;
|
|
18
|
-
flakyChecks: string[];
|
|
19
|
-
currentStreak: {
|
|
20
|
-
status: "passing" | "failing";
|
|
21
|
-
count: number;
|
|
22
|
-
};
|
|
23
|
-
firstFailure?: string | undefined;
|
|
5
|
+
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<unknown, unknown, {
|
|
6
|
+
name?: string;
|
|
7
|
+
}>, _kb_labs_qa_contracts.PackageTimeline | {
|
|
8
|
+
error: string;
|
|
24
9
|
}>;
|
|
25
10
|
|
|
26
11
|
export { _default as default };
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
import { defineHandler } from '@kb-labs/sdk';
|
|
2
|
-
import {
|
|
1
|
+
import { defineHandler, useConfig, rethrowForRest } from '@kb-labs/sdk';
|
|
2
|
+
import { SnapshotStore, buildPackageTimeline } from '@kb-labs/qa-core';
|
|
3
3
|
|
|
4
4
|
// src/rest/handlers/package-timeline-handler.ts
|
|
5
5
|
var package_timeline_handler_default = defineHandler({
|
|
6
6
|
async execute(ctx, input) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
try {
|
|
8
|
+
const config = await useConfig();
|
|
9
|
+
const store = new SnapshotStore(ctx.cwd, config?.historyMaxEntries);
|
|
10
|
+
const packageName = input.params?.name;
|
|
11
|
+
if (!packageName) return { error: "Package name is required" };
|
|
12
|
+
const history = store.loadRunHistory();
|
|
13
|
+
return buildPackageTimeline(history, packageName);
|
|
14
|
+
} catch (error) {
|
|
15
|
+
rethrowForRest(error);
|
|
10
16
|
}
|
|
11
|
-
const history = loadHistory(ctx.cwd);
|
|
12
|
-
return getPackageTimeline(history, packageName);
|
|
13
17
|
}
|
|
14
18
|
});
|
|
15
19
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/rest/handlers/package-timeline-handler.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/package-timeline-handler.ts"],"names":[],"mappings":";;;;AAIA,IAAO,mCAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,GAAA,EAAsB,KAAA,EAAuD;AACzF,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,SAAA,EAA0B;AAC/C,MAAA,MAAM,QAAQ,IAAI,aAAA,CAAc,GAAA,CAAI,GAAA,EAAK,QAAQ,iBAAiB,CAAA;AAElE,MAAA,MAAM,WAAA,GAAc,MAAM,MAAA,EAAQ,IAAA;AAClC,MAAA,IAAI,CAAC,WAAA,EAAa,OAAO,EAAE,OAAO,0BAAA,EAA2B;AAE7D,MAAA,MAAM,OAAA,GAAU,MAAM,cAAA,EAAe;AACrC,MAAA,OAAO,oBAAA,CAAqB,SAAS,WAAW,CAAA;AAAA,IAClD,SAAS,KAAA,EAAO;AACd,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAAA,EACF;AACF,CAAC","file":"package-timeline-handler.js","sourcesContent":["import { defineHandler, useConfig, rethrowForRest, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { SnapshotStore, buildPackageTimeline } from '@kb-labs/qa-core';\nimport { type QAPluginConfig } from '@kb-labs/qa-contracts';\n\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput<unknown, unknown, { name?: string }>) {\n try {\n const config = await useConfig<QAPluginConfig>();\n const store = new SnapshotStore(ctx.cwd, config?.historyMaxEntries);\n\n const packageName = input.params?.name;\n if (!packageName) return { error: 'Package name is required' };\n\n const history = store.loadRunHistory();\n return buildPackageTimeline(history, packageName);\n } catch (error) {\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
|
|
2
|
+
import * as _kb_labs_qa_contracts from '@kb-labs/qa-contracts';
|
|
2
3
|
import { RestInput } from '@kb-labs/sdk';
|
|
3
4
|
|
|
4
|
-
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<
|
|
5
|
-
scope?: string | undefined;
|
|
6
|
-
}, unknown, unknown>, {
|
|
7
|
-
hasRegressions: boolean;
|
|
8
|
-
regressions: {
|
|
9
|
-
checkType: string;
|
|
10
|
-
delta: number;
|
|
11
|
-
newFailures: string[];
|
|
12
|
-
}[];
|
|
13
|
-
scope?: string | undefined;
|
|
14
|
-
}>;
|
|
5
|
+
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<unknown, unknown, unknown>, _kb_labs_qa_contracts.RegressionDetection>;
|
|
15
6
|
|
|
16
7
|
export { _default as default };
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import { defineHandler } from '@kb-labs/sdk';
|
|
2
|
-
import {
|
|
1
|
+
import { defineHandler, useConfig, rethrowForRest } from '@kb-labs/sdk';
|
|
2
|
+
import { SnapshotStore, detectRegressions } from '@kb-labs/qa-core';
|
|
3
3
|
|
|
4
4
|
// src/rest/handlers/regressions-handler.ts
|
|
5
5
|
var regressions_handler_default = defineHandler({
|
|
6
|
-
async execute(ctx,
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
async execute(ctx, input) {
|
|
7
|
+
try {
|
|
8
|
+
const config = await useConfig();
|
|
9
|
+
const store = new SnapshotStore(ctx.cwd, config?.historyMaxEntries);
|
|
10
|
+
const history = store.loadRunHistory();
|
|
11
|
+
return detectRegressions(history);
|
|
12
|
+
} catch (error) {
|
|
13
|
+
rethrowForRest(error);
|
|
14
|
+
}
|
|
9
15
|
}
|
|
10
16
|
});
|
|
11
17
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/rest/handlers/regressions-handler.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/regressions-handler.ts"],"names":[],"mappings":";;;;AAIA,IAAO,8BAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,GAAA,EAAsB,KAAA,EAAkB;AACpD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,SAAA,EAA0B;AAC/C,MAAA,MAAM,QAAQ,IAAI,aAAA,CAAc,GAAA,CAAI,GAAA,EAAK,QAAQ,iBAAiB,CAAA;AAClE,MAAA,MAAM,OAAA,GAAU,MAAM,cAAA,EAAe;AACrC,MAAA,OAAO,kBAAkB,OAAO,CAAA;AAAA,IAClC,SAAS,KAAA,EAAO;AACd,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAAA,EACF;AACF,CAAC","file":"regressions-handler.js","sourcesContent":["import { defineHandler, useConfig, rethrowForRest, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { SnapshotStore, detectRegressions } from '@kb-labs/qa-core';\nimport { type QAPluginConfig } from '@kb-labs/qa-contracts';\n\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput) {\n try {\n const config = await useConfig<QAPluginConfig>();\n const store = new SnapshotStore(ctx.cwd, config?.historyMaxEntries);\n const history = store.loadRunHistory();\n return detectRegressions(history);\n } catch (error) {\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -1,33 +1,16 @@
|
|
|
1
1
|
import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
|
|
2
|
+
import * as _kb_labs_qa_contracts from '@kb-labs/qa-contracts';
|
|
2
3
|
import { RestInput } from '@kb-labs/sdk';
|
|
3
4
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
branch: string;
|
|
14
|
-
message: string;
|
|
15
|
-
};
|
|
16
|
-
timestamp: string;
|
|
17
|
-
summary: Record<string, {
|
|
18
|
-
passed: number;
|
|
19
|
-
failed: number;
|
|
20
|
-
skipped: number;
|
|
21
|
-
}>;
|
|
22
|
-
failedPackages: Record<string, string[]>;
|
|
23
|
-
} | null;
|
|
24
|
-
results: Record<string, {
|
|
25
|
-
passed: string[];
|
|
26
|
-
failed: string[];
|
|
27
|
-
skipped: string[];
|
|
28
|
-
errors: Record<string, string>;
|
|
29
|
-
}>;
|
|
30
|
-
durationMs: number;
|
|
5
|
+
interface RunBody {
|
|
6
|
+
tasks?: string[];
|
|
7
|
+
save?: boolean;
|
|
8
|
+
runContext?: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<unknown, RunBody, unknown>, {
|
|
11
|
+
snapshot: _kb_labs_qa_contracts.RunSnapshot | null;
|
|
12
|
+
raw: _kb_labs_qa_contracts.DevkitRunOutput;
|
|
13
|
+
ok: boolean;
|
|
31
14
|
}>;
|
|
32
15
|
|
|
33
16
|
export { _default as default };
|