@healflow/playwright 0.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/dist/api-client.d.ts +9 -0
- package/dist/api-client.d.ts.map +1 -0
- package/dist/api-client.js +74 -0
- package/dist/api-client.js.map +1 -0
- package/dist/artifacts.d.ts +10 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +37 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/auto.d.ts +9 -0
- package/dist/auto.d.ts.map +1 -0
- package/dist/auto.js +51 -0
- package/dist/auto.js.map +1 -0
- package/dist/client-info.d.ts +7 -0
- package/dist/client-info.d.ts.map +1 -0
- package/dist/client-info.js +30 -0
- package/dist/client-info.js.map +1 -0
- package/dist/heal-store.d.ts +9 -0
- package/dist/heal-store.d.ts.map +1 -0
- package/dist/heal-store.js +105 -0
- package/dist/heal-store.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +706 -0
- package/dist/index.js.map +1 -0
- package/dist/list-reporter.d.ts +31 -0
- package/dist/list-reporter.d.ts.map +1 -0
- package/dist/list-reporter.js +23 -0
- package/dist/list-reporter.js.map +1 -0
- package/dist/register.d.ts +4 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +9 -0
- package/dist/register.js.map +1 -0
- package/dist/report-html.d.ts +7 -0
- package/dist/report-html.d.ts.map +1 -0
- package/dist/report-html.js +862 -0
- package/dist/report-html.js.map +1 -0
- package/dist/reporter.d.ts +34 -0
- package/dist/reporter.d.ts.map +1 -0
- package/dist/reporter.js +160 -0
- package/dist/reporter.js.map +1 -0
- package/dist/setup-global.d.ts +2 -0
- package/dist/setup-global.d.ts.map +1 -0
- package/dist/setup-global.js +10 -0
- package/dist/setup-global.js.map +1 -0
- package/dist/terminal.d.ts +16 -0
- package/dist/terminal.d.ts.map +1 -0
- package/dist/terminal.js +158 -0
- package/dist/terminal.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FixProposalRecord, RuntimeHealRecord } from '@healflow/shared';
|
|
2
|
+
export interface HealFlowApiClientOptions {
|
|
3
|
+
apiUrl: string;
|
|
4
|
+
organizationId: string;
|
|
5
|
+
repositoryId: string;
|
|
6
|
+
token?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function reportRuntimeHeal(options: HealFlowApiClientOptions, heal: RuntimeHealRecord, fix?: FixProposalRecord): void;
|
|
9
|
+
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE7E,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgCD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,iBAAiB,EACvB,GAAG,CAAC,EAAE,iBAAiB,GACtB,IAAI,CAyDN"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.reportRuntimeHeal = reportRuntimeHeal;
|
|
4
|
+
const shared_1 = require("@healflow/shared");
|
|
5
|
+
function buildHeaders(token) {
|
|
6
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
7
|
+
if (token)
|
|
8
|
+
headers.Authorization = `Bearer ${token}`;
|
|
9
|
+
return headers;
|
|
10
|
+
}
|
|
11
|
+
async function postJson(url, body, token) {
|
|
12
|
+
try {
|
|
13
|
+
const response = await fetch(url, {
|
|
14
|
+
method: 'POST',
|
|
15
|
+
headers: buildHeaders(token),
|
|
16
|
+
body: JSON.stringify(body),
|
|
17
|
+
signal: AbortSignal.timeout(10_000),
|
|
18
|
+
});
|
|
19
|
+
if (!response.ok) {
|
|
20
|
+
const detail = await response.text().catch(() => '');
|
|
21
|
+
console.warn(`[HealFlow] API ${url} responded ${response.status}${detail ? `: ${detail.slice(0, 120)}` : ''}`);
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
console.warn(`[HealFlow] API request failed: ${error instanceof Error ? error.message : 'unknown error'}`);
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function reportRuntimeHeal(options, heal, fix) {
|
|
32
|
+
if (!options.organizationId) {
|
|
33
|
+
console.warn('[HealFlow] organizationId missing — heal not synced to backend');
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (!options.repositoryId) {
|
|
37
|
+
console.warn('[HealFlow] repositoryId missing — heal not synced to backend (set in healflow.yml backend.repositoryId)');
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (!options.token) {
|
|
41
|
+
console.warn('[HealFlow] API token missing — heal not synced (set backend.token or HEALFLOW_TOKEN)');
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const base = options.apiUrl.replace(/\/$/, '');
|
|
45
|
+
void postJson(`${base}/api/v1/ingestion/failures`, {
|
|
46
|
+
organizationId: options.organizationId,
|
|
47
|
+
repositoryId: options.repositoryId,
|
|
48
|
+
source: shared_1.FailureSource.RUNTIME,
|
|
49
|
+
testFile: heal.testFile ?? 'runtime',
|
|
50
|
+
testTitle: heal.testTitle ?? 'runtime heal',
|
|
51
|
+
errorMessage: heal.rootCause ?? 'Runtime heal',
|
|
52
|
+
artifacts: [],
|
|
53
|
+
metadata: {
|
|
54
|
+
runtimeHealId: heal.id,
|
|
55
|
+
category: heal.category,
|
|
56
|
+
oldValue: heal.oldValue,
|
|
57
|
+
newValue: heal.newValue,
|
|
58
|
+
confidence: heal.confidence,
|
|
59
|
+
healedAt: heal.healedAt,
|
|
60
|
+
healType: 'runtime_proxy',
|
|
61
|
+
},
|
|
62
|
+
}, options.token);
|
|
63
|
+
if (fix) {
|
|
64
|
+
void postJson(`${base}/api/v1/ingestion/run-artifacts`, {
|
|
65
|
+
organizationId: options.organizationId,
|
|
66
|
+
repositoryId: options.repositoryId,
|
|
67
|
+
run: {
|
|
68
|
+
heals: [heal],
|
|
69
|
+
fixes: [fix],
|
|
70
|
+
},
|
|
71
|
+
}, options.token);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=api-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { HealFlowConfig, HealFlowRunArtifacts } from '@healflow/shared';
|
|
2
|
+
export declare function writeHealFlowArtifacts(options: {
|
|
3
|
+
cwd?: string;
|
|
4
|
+
config: HealFlowConfig;
|
|
5
|
+
status: string;
|
|
6
|
+
failureCount: number;
|
|
7
|
+
passedCount?: number;
|
|
8
|
+
durationMs?: number;
|
|
9
|
+
}): HealFlowRunArtifacts;
|
|
10
|
+
//# sourceMappingURL=artifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAI7E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,oBAAoB,CAmCvB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.writeHealFlowArtifacts = writeHealFlowArtifacts;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const heal_store_js_1 = require("./heal-store.js");
|
|
7
|
+
const report_html_js_1 = require("./report-html.js");
|
|
8
|
+
function writeHealFlowArtifacts(options) {
|
|
9
|
+
const cwd = options.cwd ?? process.cwd();
|
|
10
|
+
const dir = (0, node_path_1.join)(cwd, '.healflow');
|
|
11
|
+
(0, node_fs_1.mkdirSync)(dir, { recursive: true });
|
|
12
|
+
const heals = (0, heal_store_js_1.getRuntimeHeals)();
|
|
13
|
+
const fixes = (0, heal_store_js_1.getFixProposals)();
|
|
14
|
+
const completedAt = new Date().toISOString();
|
|
15
|
+
const artifacts = {
|
|
16
|
+
runId: completedAt,
|
|
17
|
+
startedAt: (0, heal_store_js_1.getRunStartedAt)(),
|
|
18
|
+
completedAt,
|
|
19
|
+
mode: options.config.mode ?? 'local',
|
|
20
|
+
status: options.status,
|
|
21
|
+
failureCount: options.failureCount,
|
|
22
|
+
healCount: heals.length,
|
|
23
|
+
passedCount: options.passedCount,
|
|
24
|
+
durationMs: options.durationMs,
|
|
25
|
+
heals,
|
|
26
|
+
fixes,
|
|
27
|
+
};
|
|
28
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(dir, 'run.json'), JSON.stringify(artifacts, null, 2));
|
|
29
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(dir, 'heals.json'), JSON.stringify({ heals }, null, 2));
|
|
30
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(dir, 'fixes.json'), JSON.stringify({ fixes }, null, 2));
|
|
31
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(dir, 'report.html'), (0, report_html_js_1.buildReportHtml)(artifacts, {
|
|
32
|
+
passedCount: options.passedCount,
|
|
33
|
+
durationMs: options.durationMs,
|
|
34
|
+
}));
|
|
35
|
+
return artifacts;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":";;AAMA,wDA0CC;AAhDD,qCAAmD;AACnD,yCAAiC;AAEjC,mDAAoF;AACpF,qDAAmD;AAEnD,SAAgB,sBAAsB,CAAC,OAOtC;IACC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,GAAG,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACnC,IAAA,mBAAS,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpC,MAAM,KAAK,GAAG,IAAA,+BAAe,GAAE,CAAC;IAChC,MAAM,KAAK,GAAG,IAAA,+BAAe,GAAE,CAAC;IAChC,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE7C,MAAM,SAAS,GAAyB;QACtC,KAAK,EAAE,WAAW;QAClB,SAAS,EAAE,IAAA,+BAAe,GAAE;QAC5B,WAAW;QACX,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,KAAK,CAAC,MAAM;QACvB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,KAAK;QACL,KAAK;KACN,CAAC;IAEF,IAAA,uBAAa,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,IAAA,uBAAa,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAA,uBAAa,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAA,uBAAa,EACX,IAAA,gBAAI,EAAC,GAAG,EAAE,aAAa,CAAC,EACxB,IAAA,gCAAe,EAAC,SAAS,EAAE;QACzB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CACH,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/auto.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PlaywrightTestConfig } from '@playwright/test';
|
|
2
|
+
export declare function configToPluginOptions(config?: import("@healflow/shared/config").HealFlowConfig): {
|
|
3
|
+
apiUrl: string | undefined;
|
|
4
|
+
organizationId: string | undefined;
|
|
5
|
+
repositoryId: string | undefined;
|
|
6
|
+
};
|
|
7
|
+
/** Wrap Playwright config with HealFlow reporter defaults (import in playwright.config.ts). */
|
|
8
|
+
export declare function withHealFlow<T extends PlaywrightTestConfig>(config: T): T;
|
|
9
|
+
//# sourceMappingURL=auto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../src/auto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,wBAAgB,qBAAqB,CAAC,MAAM,mDAAuB;;;;EAMlE;AAyBD,+FAA+F;AAC/F,wBAAgB,YAAY,CAAC,CAAC,SAAS,oBAAoB,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAezE"}
|
package/dist/auto.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.configToPluginOptions = configToPluginOptions;
|
|
4
|
+
exports.withHealFlow = withHealFlow;
|
|
5
|
+
const config_1 = require("@healflow/shared/config");
|
|
6
|
+
const register_js_1 = require("./register.js");
|
|
7
|
+
function configToPluginOptions(config = (0, config_1.loadHealFlowConfig)()) {
|
|
8
|
+
return {
|
|
9
|
+
apiUrl: config.backend?.url,
|
|
10
|
+
organizationId: config.backend?.organizationId,
|
|
11
|
+
repositoryId: config.backend?.repositoryId,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function mergeGlobalSetup(existing) {
|
|
15
|
+
const setupPath = '@healflow/playwright/setup-global';
|
|
16
|
+
if (!existing)
|
|
17
|
+
return setupPath;
|
|
18
|
+
if (typeof existing === 'string') {
|
|
19
|
+
return existing.includes('healflow') ? existing : [existing, setupPath];
|
|
20
|
+
}
|
|
21
|
+
if (Array.isArray(existing)) {
|
|
22
|
+
return existing.includes(setupPath) ? existing : [...existing, setupPath];
|
|
23
|
+
}
|
|
24
|
+
return setupPath;
|
|
25
|
+
}
|
|
26
|
+
function hasHealFlowReporter(reporter) {
|
|
27
|
+
const list = Array.isArray(reporter) ? reporter : reporter ? [reporter] : [];
|
|
28
|
+
return list.some((entry) => {
|
|
29
|
+
if (typeof entry === 'string')
|
|
30
|
+
return entry.includes('@healflow/playwright');
|
|
31
|
+
if (Array.isArray(entry))
|
|
32
|
+
return String(entry[0]).includes('@healflow/playwright');
|
|
33
|
+
return false;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/** Wrap Playwright config with HealFlow reporter defaults (import in playwright.config.ts). */
|
|
37
|
+
function withHealFlow(config) {
|
|
38
|
+
(0, register_js_1.registerHealFlow)();
|
|
39
|
+
configToPluginOptions();
|
|
40
|
+
const reporters = config.reporter ?? [];
|
|
41
|
+
const list = Array.isArray(reporters) ? [...reporters] : [reporters];
|
|
42
|
+
const nextReporters = hasHealFlowReporter(config.reporter)
|
|
43
|
+
? list
|
|
44
|
+
: [...list, ['@healflow/playwright']];
|
|
45
|
+
return {
|
|
46
|
+
...config,
|
|
47
|
+
reporter: nextReporters,
|
|
48
|
+
globalSetup: mergeGlobalSetup(config.globalSetup),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=auto.js.map
|
package/dist/auto.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto.js","sourceRoot":"","sources":["../src/auto.ts"],"names":[],"mappings":";;AAIA,sDAMC;AA0BD,oCAeC;AAlDD,oDAA6D;AAC7D,+CAAiD;AAEjD,SAAgB,qBAAqB,CAAC,MAAM,GAAG,IAAA,2BAAkB,GAAE;IACjE,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG;QAC3B,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,cAAc;QAC9C,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,QAA6C;IAE7C,MAAM,SAAS,GAAG,mCAAmC,CAAC;IACtD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,QAA0C;IACrE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACzB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QACnF,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+FAA+F;AAC/F,SAAgB,YAAY,CAAiC,MAAS;IACpE,IAAA,8BAAgB,GAAE,CAAC;IACnB,qBAAqB,EAAE,CAAC;IAExB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC;QACxD,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,sBAAsB,CAAU,CAAC,CAAC;IAEjD,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,aAA8B;QACxC,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC;KAClD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-info.d.ts","sourceRoot":"","sources":["../src/client-info.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAID,wBAAgB,qBAAqB,IAAI,kBAAkB,CAsB1D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getHealFlowClientInfo = getHealFlowClientInfo;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_module_1 = require("node:module");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const localRequire = (0, node_module_1.createRequire)(__filename);
|
|
8
|
+
const packageDir = (0, node_path_1.dirname)(__filename);
|
|
9
|
+
let cached;
|
|
10
|
+
function getHealFlowClientInfo() {
|
|
11
|
+
if (cached)
|
|
12
|
+
return cached;
|
|
13
|
+
const pkg = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(packageDir, '../package.json'), 'utf-8'));
|
|
14
|
+
let playwrightVersion;
|
|
15
|
+
try {
|
|
16
|
+
const pwPkgPath = localRequire.resolve('@playwright/test/package.json');
|
|
17
|
+
playwrightVersion = JSON.parse((0, node_fs_1.readFileSync)(pwPkgPath, 'utf-8'))
|
|
18
|
+
.version;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
// @playwright/test is a peer dependency and may be absent in some contexts.
|
|
22
|
+
}
|
|
23
|
+
cached = {
|
|
24
|
+
name: '@healflow/playwright',
|
|
25
|
+
version: pkg.version,
|
|
26
|
+
playwrightVersion,
|
|
27
|
+
};
|
|
28
|
+
return cached;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=client-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-info.js","sourceRoot":"","sources":["../src/client-info.ts"],"names":[],"mappings":";;AAeA,sDAsBC;AArCD,qCAAuC;AACvC,6CAA4C;AAC5C,yCAA0C;AAE1C,MAAM,YAAY,GAAG,IAAA,2BAAa,EAAC,UAAU,CAAC,CAAC;AAC/C,MAAM,UAAU,GAAG,IAAA,mBAAO,EAAC,UAAU,CAAC,CAAC;AAQvC,IAAI,MAAsC,CAAC;AAE3C,SAAgB,qBAAqB;IACnC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,IAAA,gBAAI,EAAC,UAAU,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAEhF,CAAC;IAEF,IAAI,iBAAqC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QACxE,iBAAiB,GAAI,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,SAAS,EAAE,OAAO,CAAC,CAAyB;aACtF,OAAO,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;IAC9E,CAAC;IAED,MAAM,GAAG;QACP,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,iBAAiB;KAClB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FixProposalRecord, RuntimeHealRecord } from '@healflow/shared';
|
|
2
|
+
export declare function startHealRun(): void;
|
|
3
|
+
export declare function recordRuntimeHeal(record: Omit<RuntimeHealRecord, 'id' | 'healedAt'>): RuntimeHealRecord;
|
|
4
|
+
export declare function recordFixProposal(record: Omit<FixProposalRecord, 'id'>): FixProposalRecord;
|
|
5
|
+
export declare function getRuntimeHeals(): RuntimeHealRecord[];
|
|
6
|
+
export declare function getFixProposals(): FixProposalRecord[];
|
|
7
|
+
export declare function getRunStartedAt(): string;
|
|
8
|
+
export declare function clearHealRun(): void;
|
|
9
|
+
//# sourceMappingURL=heal-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heal-store.d.ts","sourceRoot":"","sources":["../src/heal-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAuC7E,wBAAgB,YAAY,IAAI,IAAI,CAWnC;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,UAAU,CAAC,GACjD,iBAAiB,CASnB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,GAAG,iBAAiB,CAQ1F;AAED,wBAAgB,eAAe,IAAI,iBAAiB,EAAE,CAIrD;AAED,wBAAgB,eAAe,IAAI,iBAAiB,EAAE,CAIrD;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAUnC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.startHealRun = startHealRun;
|
|
4
|
+
exports.recordRuntimeHeal = recordRuntimeHeal;
|
|
5
|
+
exports.recordFixProposal = recordFixProposal;
|
|
6
|
+
exports.getRuntimeHeals = getRuntimeHeals;
|
|
7
|
+
exports.getFixProposals = getFixProposals;
|
|
8
|
+
exports.getRunStartedAt = getRunStartedAt;
|
|
9
|
+
exports.clearHealRun = clearHealRun;
|
|
10
|
+
const node_crypto_1 = require("node:crypto");
|
|
11
|
+
const node_fs_1 = require("node:fs");
|
|
12
|
+
const node_path_1 = require("node:path");
|
|
13
|
+
const heals = [];
|
|
14
|
+
const fixes = [];
|
|
15
|
+
let runStartedAt = null;
|
|
16
|
+
function healFlowDir() {
|
|
17
|
+
return (0, node_path_1.join)(process.cwd(), '.healflow');
|
|
18
|
+
}
|
|
19
|
+
function healsFilePath() {
|
|
20
|
+
return (0, node_path_1.join)(healFlowDir(), 'heals.ndjson');
|
|
21
|
+
}
|
|
22
|
+
function fixesFilePath() {
|
|
23
|
+
return (0, node_path_1.join)(healFlowDir(), 'fixes.ndjson');
|
|
24
|
+
}
|
|
25
|
+
function appendNdjson(path, entry) {
|
|
26
|
+
try {
|
|
27
|
+
(0, node_fs_1.mkdirSync)(healFlowDir(), { recursive: true });
|
|
28
|
+
(0, node_fs_1.appendFileSync)(path, `${JSON.stringify(entry)}\n`, 'utf8');
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// Best-effort — terminal output still shows heals
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function readNdjson(path) {
|
|
35
|
+
try {
|
|
36
|
+
const raw = (0, node_fs_1.readFileSync)(path, 'utf8');
|
|
37
|
+
return raw
|
|
38
|
+
.split('\n')
|
|
39
|
+
.filter(Boolean)
|
|
40
|
+
.map((line) => JSON.parse(line));
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function startHealRun() {
|
|
47
|
+
heals.length = 0;
|
|
48
|
+
fixes.length = 0;
|
|
49
|
+
runStartedAt = new Date().toISOString();
|
|
50
|
+
try {
|
|
51
|
+
(0, node_fs_1.mkdirSync)(healFlowDir(), { recursive: true });
|
|
52
|
+
(0, node_fs_1.writeFileSync)(healsFilePath(), '', 'utf8');
|
|
53
|
+
(0, node_fs_1.writeFileSync)(fixesFilePath(), '', 'utf8');
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// ignore
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function recordRuntimeHeal(record) {
|
|
60
|
+
const entry = {
|
|
61
|
+
...record,
|
|
62
|
+
id: (0, node_crypto_1.randomUUID)(),
|
|
63
|
+
healedAt: new Date().toISOString(),
|
|
64
|
+
};
|
|
65
|
+
heals.push(entry);
|
|
66
|
+
appendNdjson(healsFilePath(), entry);
|
|
67
|
+
return entry;
|
|
68
|
+
}
|
|
69
|
+
function recordFixProposal(record) {
|
|
70
|
+
const entry = {
|
|
71
|
+
...record,
|
|
72
|
+
id: (0, node_crypto_1.randomUUID)(),
|
|
73
|
+
};
|
|
74
|
+
fixes.push(entry);
|
|
75
|
+
appendNdjson(fixesFilePath(), entry);
|
|
76
|
+
return entry;
|
|
77
|
+
}
|
|
78
|
+
function getRuntimeHeals() {
|
|
79
|
+
const persisted = readNdjson(healsFilePath());
|
|
80
|
+
if (persisted.length > 0)
|
|
81
|
+
return persisted;
|
|
82
|
+
return [...heals];
|
|
83
|
+
}
|
|
84
|
+
function getFixProposals() {
|
|
85
|
+
const persisted = readNdjson(fixesFilePath());
|
|
86
|
+
if (persisted.length > 0)
|
|
87
|
+
return persisted;
|
|
88
|
+
return [...fixes];
|
|
89
|
+
}
|
|
90
|
+
function getRunStartedAt() {
|
|
91
|
+
return runStartedAt ?? new Date().toISOString();
|
|
92
|
+
}
|
|
93
|
+
function clearHealRun() {
|
|
94
|
+
heals.length = 0;
|
|
95
|
+
fixes.length = 0;
|
|
96
|
+
runStartedAt = null;
|
|
97
|
+
try {
|
|
98
|
+
(0, node_fs_1.unlinkSync)(healsFilePath());
|
|
99
|
+
(0, node_fs_1.unlinkSync)(fixesFilePath());
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// ignore
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=heal-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heal-store.js","sourceRoot":"","sources":["../src/heal-store.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Page, TestInfo } from '@playwright/test';
|
|
2
|
+
import { type HealFlowConfig } from '@healflow/shared';
|
|
3
|
+
export interface HealFlowPluginOptions {
|
|
4
|
+
autoHeal?: boolean;
|
|
5
|
+
maxAttempts?: number;
|
|
6
|
+
apiUrl?: string;
|
|
7
|
+
organizationId?: string;
|
|
8
|
+
repositoryId?: string;
|
|
9
|
+
config?: HealFlowConfig;
|
|
10
|
+
}
|
|
11
|
+
export interface HealContext {
|
|
12
|
+
attempts: number;
|
|
13
|
+
healedActions: string[];
|
|
14
|
+
testFile?: string;
|
|
15
|
+
testTitle?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function wrapPage(page: Page, options?: HealFlowPluginOptions, healContext?: HealContext): Page;
|
|
18
|
+
export declare function healflowFixture(options?: HealFlowPluginOptions): {
|
|
19
|
+
page: ({ page }: {
|
|
20
|
+
page: Page;
|
|
21
|
+
}, use: (p: Page) => Promise<void>, testInfo: TestInfo) => Promise<void>;
|
|
22
|
+
};
|
|
23
|
+
export { registerHealFlow } from './register.js';
|
|
24
|
+
export { withHealFlow, configToPluginOptions } from './auto.js';
|
|
25
|
+
export { healflowReporter } from './reporter.js';
|
|
26
|
+
export { default } from './reporter.js';
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAW,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAQL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAM1B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AA+FD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqpBD,wBAAgB,QAAQ,CACtB,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,qBAA0B,EACnC,WAAW,CAAC,EAAE,WAAW,GACxB,IAAI,CAgEN;AAED,wBAAgB,eAAe,CAAC,OAAO,GAAE,qBAA0B;qBAInD;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,OACnB,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,YACrB,QAAQ,KACjB,OAAO,CAAC,IAAI,CAAC;EAUnB;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
|