@hapergg/harness-comet-cli 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/bin/harness-comet.js +7 -0
- package/dist/commands/comet.d.ts +8 -0
- package/dist/commands/comet.d.ts.map +1 -0
- package/dist/commands/comet.js +500 -0
- package/dist/commands/comet.js.map +1 -0
- package/dist/commands/create.d.ts +16 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +69 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/impact.d.ts +8 -0
- package/dist/commands/impact.d.ts.map +1 -0
- package/dist/commands/impact.js +108 -0
- package/dist/commands/impact.js.map +1 -0
- package/dist/commands/init.d.ts +19 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +249 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/dev-bin.d.ts +2 -0
- package/dist/dev-bin.d.ts.map +1 -0
- package/dist/dev-bin.js +6 -0
- package/dist/dev-bin.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +393 -0
- package/dist/index.js.map +1 -0
- package/dist/package-info.d.ts +6 -0
- package/dist/package-info.d.ts.map +1 -0
- package/dist/package-info.js +6 -0
- package/dist/package-info.js.map +1 -0
- package/dist/templates/incident.d.ts +3 -0
- package/dist/templates/incident.d.ts.map +1 -0
- package/dist/templates/incident.js +26 -0
- package/dist/templates/incident.js.map +1 -0
- package/dist/templates/playwright-mode.d.ts +12 -0
- package/dist/templates/playwright-mode.d.ts.map +1 -0
- package/dist/templates/playwright-mode.js +225 -0
- package/dist/templates/playwright-mode.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"impact.d.ts","sourceRoot":"","sources":["../../src/commands/impact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,EAC5F,UAAU,EAAE,MAAM,aAAa,GAC9B,IAAI,CAoDN"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
export function registerImpactCommands(program, withErrors, getOptions) {
|
|
2
|
+
const impact = program.command("impact").description("Harness impact mode helpers for Comet changes");
|
|
3
|
+
impact
|
|
4
|
+
.command("set")
|
|
5
|
+
.requiredOption("--change <change>", "change id")
|
|
6
|
+
.requiredOption("--reason <text>", "impact reason")
|
|
7
|
+
.option("--mode <full|maintain|off>", "impact mode for runtime projects")
|
|
8
|
+
.option("--action <none|verify-existing|update-or-create>", "impact action for playwright projects")
|
|
9
|
+
.option("--confirmed-by <user|agent>", "playwright impact confirmation source")
|
|
10
|
+
.action(withErrors(async (commandOptions) => {
|
|
11
|
+
const options = getOptions();
|
|
12
|
+
const adapter = await loadCometAdapter();
|
|
13
|
+
const root = options.root ?? process.cwd();
|
|
14
|
+
const mode = await adapter.resolveHarnessCometProjectMode(root);
|
|
15
|
+
const report = mode === "playwright"
|
|
16
|
+
? await writePlaywrightImpact(adapter, root, commandOptions)
|
|
17
|
+
: await writeRuntimeImpact(adapter, root, commandOptions);
|
|
18
|
+
const payload = { change: commandOptions.change, path: report.path, impact: report.impact };
|
|
19
|
+
if (options.json) {
|
|
20
|
+
process.stdout.write(`${JSON.stringify(payload, null, 2)}\n`);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
process.stdout.write(formatImpactReport(commandOptions.change, report.path, report.impact));
|
|
24
|
+
}));
|
|
25
|
+
impact
|
|
26
|
+
.command("show")
|
|
27
|
+
.requiredOption("--change <change>", "change id")
|
|
28
|
+
.action(withErrors(async (commandOptions) => {
|
|
29
|
+
const options = getOptions();
|
|
30
|
+
const adapter = await loadCometAdapter();
|
|
31
|
+
const root = options.root ?? process.cwd();
|
|
32
|
+
const mode = await adapter.resolveHarnessCometProjectMode(root);
|
|
33
|
+
const report = mode === "playwright"
|
|
34
|
+
? await adapter.readPlaywrightHarnessImpact(root, commandOptions.change)
|
|
35
|
+
: await adapter.readHarnessImpact(root, commandOptions.change);
|
|
36
|
+
const payload = { change: commandOptions.change, path: report.path, impact: report.impact };
|
|
37
|
+
if (options.json) {
|
|
38
|
+
process.stdout.write(`${JSON.stringify(payload, null, 2)}\n`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
process.stdout.write(formatImpactReport(commandOptions.change, report.path, report.impact));
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
function formatImpactReport(change, filePath, impact) {
|
|
45
|
+
if ("reviewedTests" in impact) {
|
|
46
|
+
const lines = [
|
|
47
|
+
`CHANGE ${change}`,
|
|
48
|
+
`FILE ${filePath}`,
|
|
49
|
+
`ACTION ${impact.action}`,
|
|
50
|
+
`REASON ${impact.reason}`,
|
|
51
|
+
`CONFIRMED_BY ${impact.confirmedBy}`,
|
|
52
|
+
`CONFIRMED_AT ${impact.confirmedAt ?? "-"}`,
|
|
53
|
+
"REVIEWED_TESTS",
|
|
54
|
+
...(impact.reviewedTests.length > 0 ? impact.reviewedTests.map((test) => `- ${test}`) : ["- -"])
|
|
55
|
+
];
|
|
56
|
+
return `${lines.join("\n")}\n`;
|
|
57
|
+
}
|
|
58
|
+
const lines = [
|
|
59
|
+
`CHANGE ${change}`,
|
|
60
|
+
`FILE ${filePath}`,
|
|
61
|
+
`MODE ${impact.mode}`,
|
|
62
|
+
`REASON ${impact.reason}`,
|
|
63
|
+
`AFFECTED ${impact.affectedCapabilities.join(",") || "-"}`,
|
|
64
|
+
`CANDIDATES ${impact.existingAssetCandidates.join(",") || "-"}`,
|
|
65
|
+
`DECISIONS ${impact.assetDecisions.join(",") || "-"}`
|
|
66
|
+
];
|
|
67
|
+
return `${lines.join("\n")}\n`;
|
|
68
|
+
}
|
|
69
|
+
async function loadCometAdapter() {
|
|
70
|
+
try {
|
|
71
|
+
const adapter = await import("@hapergg/harness-comet-comet-adapter");
|
|
72
|
+
if ("readHarnessImpact" in adapter &&
|
|
73
|
+
"writeHarnessImpact" in adapter &&
|
|
74
|
+
"readPlaywrightHarnessImpact" in adapter &&
|
|
75
|
+
"writePlaywrightHarnessImpact" in adapter &&
|
|
76
|
+
"resolveHarnessCometProjectMode" in adapter &&
|
|
77
|
+
"seedHarnessImpact" in adapter &&
|
|
78
|
+
"seedHarnessDesign" in adapter) {
|
|
79
|
+
return adapter;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// Fall back to local source in workspace dev/test flows.
|
|
84
|
+
}
|
|
85
|
+
const sourceModuleUrl = new URL("../../../comet-adapter/src/index.ts", import.meta.url);
|
|
86
|
+
return await import(sourceModuleUrl.href);
|
|
87
|
+
}
|
|
88
|
+
async function writeRuntimeImpact(adapter, root, commandOptions) {
|
|
89
|
+
if (!commandOptions.mode) {
|
|
90
|
+
throw new Error("Runtime projects require --mode <full|maintain|off>");
|
|
91
|
+
}
|
|
92
|
+
return adapter.writeHarnessImpact(root, commandOptions.change, {
|
|
93
|
+
mode: commandOptions.mode,
|
|
94
|
+
reason: commandOptions.reason
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
async function writePlaywrightImpact(adapter, root, commandOptions) {
|
|
98
|
+
if (!commandOptions.action) {
|
|
99
|
+
throw new Error("Playwright projects require --action <none|verify-existing|update-or-create>");
|
|
100
|
+
}
|
|
101
|
+
return adapter.writePlaywrightHarnessImpact(root, commandOptions.change, {
|
|
102
|
+
action: commandOptions.action,
|
|
103
|
+
reason: commandOptions.reason,
|
|
104
|
+
confirmedBy: commandOptions.confirmedBy === "agent" ? "agent" : "user",
|
|
105
|
+
confirmedAt: new Date().toISOString()
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=impact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"impact.js","sourceRoot":"","sources":["../../src/commands/impact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface InitHarnessOptions {
|
|
2
|
+
root: string;
|
|
3
|
+
mode: "runtime" | "playwright";
|
|
4
|
+
adapter: string;
|
|
5
|
+
testDir?: string;
|
|
6
|
+
install?: boolean;
|
|
7
|
+
installBrowsers?: boolean;
|
|
8
|
+
overwriteConfig?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface InitHarnessResult {
|
|
11
|
+
ok: true;
|
|
12
|
+
created: string[];
|
|
13
|
+
skipped: string[];
|
|
14
|
+
installedDependencies?: boolean;
|
|
15
|
+
installedBrowsers?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function initHarnessProject(options: InitHarnessOptions): Promise<InitHarnessResult>;
|
|
18
|
+
export declare function scenarioTemplate(adapter: string): string;
|
|
19
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,YAAY,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAKhG;AAwMD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkDxD"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { HarnessError } from "@hapergg/harness-comet-core";
|
|
4
|
+
import { playwrightAcceptanceCriteriaTemplate, playwrightAttachmentsTemplate, playwrightAuthoringGuideTemplate, playwrightConfigTemplate, playwrightExampleSpecTemplate, playwrightFixturesTemplate, playwrightHarnessCometConfigTemplate, playwrightIncidentGuideTemplate, playwrightIncidentReadmeTemplate, playwrightMockApiTemplate, testingReadmeTemplate } from "../templates/playwright-mode.js";
|
|
5
|
+
import { HARNESS_COMET_ADAPTER_MEMORY_PACKAGE, HARNESS_COMET_ADAPTER_PLAYWRIGHT_PACKAGE, HARNESS_COMET_PLAYWRIGHT_DEPENDENCY, HARNESS_COMET_PLAYWRIGHT_PACKAGE } from "../package-info.js";
|
|
6
|
+
export async function initHarnessProject(options) {
|
|
7
|
+
if (options.mode === "playwright") {
|
|
8
|
+
return initPlaywrightModeProject(options);
|
|
9
|
+
}
|
|
10
|
+
return initRuntimeModeProject(options);
|
|
11
|
+
}
|
|
12
|
+
async function initRuntimeModeProject(options) {
|
|
13
|
+
const root = path.resolve(options.root);
|
|
14
|
+
const created = [];
|
|
15
|
+
const skipped = [];
|
|
16
|
+
await fs.mkdir(path.join(root, "harness", "scenarios"), { recursive: true });
|
|
17
|
+
await fs.mkdir(path.join(root, "harness", "fixtures", "example-empty"), { recursive: true });
|
|
18
|
+
await fs.mkdir(path.join(root, "harness", "adapters"), { recursive: true });
|
|
19
|
+
await fs.mkdir(path.join(root, "harness", "oracles"), { recursive: true });
|
|
20
|
+
await writeFileSafe(path.join(root, "harness-comet.config.ts"), runtimeConfigTemplate(options.adapter), Boolean(options.overwriteConfig), "harness-comet.config.ts", created, skipped);
|
|
21
|
+
await writeFileSafe(path.join(root, "harness", "fixtures", "example-empty", "fixture.yaml"), "schemaVersion: 1\nid: example-empty\ninline: {}\nsource: synthetic\ncontainsSensitiveData: false\nbusiness:\n purpose: example-empty-state\n scope: shared\n consumers:\n - example-smoke\n", false, "harness/fixtures/example-empty/fixture.yaml", created, skipped);
|
|
22
|
+
await writeFileSafe(path.join(root, "harness", "scenarios", "example-smoke.scenario.yaml"), scenarioTemplate(options.adapter), false, "harness/scenarios/example-smoke.scenario.yaml", created, skipped);
|
|
23
|
+
return { ok: true, created, skipped };
|
|
24
|
+
}
|
|
25
|
+
async function initPlaywrightModeProject(options) {
|
|
26
|
+
const root = path.resolve(options.root);
|
|
27
|
+
const created = [];
|
|
28
|
+
const skipped = [];
|
|
29
|
+
const testDir = options.testDir ?? "tests";
|
|
30
|
+
await fs.mkdir(path.join(root, testDir, "journeys"), { recursive: true });
|
|
31
|
+
await fs.mkdir(path.join(root, testDir, "incidents"), { recursive: true });
|
|
32
|
+
await fs.mkdir(path.join(root, testDir, "data"), { recursive: true });
|
|
33
|
+
await fs.mkdir(path.join(root, testDir, "support"), { recursive: true });
|
|
34
|
+
await fs.mkdir(path.join(root, "docs", "testing"), { recursive: true });
|
|
35
|
+
await writeFileSafe(path.join(root, "harness-comet.config.ts"), playwrightHarnessCometConfigTemplate(testDir), Boolean(options.overwriteConfig), "harness-comet.config.ts", created, skipped);
|
|
36
|
+
await writeFileSafe(path.join(root, "playwright.config.ts"), playwrightConfigTemplate(testDir), false, "playwright.config.ts", created, skipped);
|
|
37
|
+
await writeFileSafe(path.join(root, testDir, "journeys", "example-save-flow.spec.ts"), playwrightExampleSpecTemplate(), false, `${normalizePath(testDir)}/journeys/example-save-flow.spec.ts`, created, skipped);
|
|
38
|
+
await writeFileSafe(path.join(root, testDir, "incidents", "README.md"), playwrightIncidentReadmeTemplate(), false, `${normalizePath(testDir)}/incidents/README.md`, created, skipped);
|
|
39
|
+
await writeFileSafe(path.join(root, testDir, "data", "example-input.json"), `${JSON.stringify({ id: "annotation-1", label: "Lot A", comment: "Saved by harness" }, null, 2)}\n`, false, `${normalizePath(testDir)}/data/example-input.json`, created, skipped);
|
|
40
|
+
await writeFileSafe(path.join(root, testDir, "data", "example-expected-payload.json"), `${JSON.stringify({ id: "annotation-1", label: "Lot A", comment: "Saved by harness" }, null, 2)}\n`, false, `${normalizePath(testDir)}/data/example-expected-payload.json`, created, skipped);
|
|
41
|
+
await writeFileSafe(path.join(root, testDir, "support", "mock-api.ts"), playwrightMockApiTemplate(), false, `${normalizePath(testDir)}/support/mock-api.ts`, created, skipped);
|
|
42
|
+
await writeFileSafe(path.join(root, testDir, "support", "attachments.ts"), playwrightAttachmentsTemplate(), false, `${normalizePath(testDir)}/support/attachments.ts`, created, skipped);
|
|
43
|
+
await writeFileSafe(path.join(root, testDir, "fixtures.ts"), playwrightFixturesTemplate(), false, `${normalizePath(testDir)}/fixtures.ts`, created, skipped);
|
|
44
|
+
await writeFileSafe(path.join(root, "docs", "testing", "README.md"), testingReadmeTemplate(), false, "docs/testing/README.md", created, skipped);
|
|
45
|
+
await writeFileSafe(path.join(root, "docs", "testing", "authoring-guide.md"), playwrightAuthoringGuideTemplate(), false, "docs/testing/authoring-guide.md", created, skipped);
|
|
46
|
+
await writeFileSafe(path.join(root, "docs", "testing", "incident-guide.md"), playwrightIncidentGuideTemplate(), false, "docs/testing/incident-guide.md", created, skipped);
|
|
47
|
+
await writeFileSafe(path.join(root, "docs", "testing", "acceptance-criteria.md"), playwrightAcceptanceCriteriaTemplate(), false, "docs/testing/acceptance-criteria.md", created, skipped);
|
|
48
|
+
await ensurePlaywrightPackageJson(root);
|
|
49
|
+
const install = options.install ?? true;
|
|
50
|
+
const installBrowsers = options.installBrowsers ?? true;
|
|
51
|
+
const installedDependencies = install ? await installProjectDependencies(root) : false;
|
|
52
|
+
const installedBrowsers = install && installBrowsers ? await installPlaywrightBrowsers(root) : false;
|
|
53
|
+
return { ok: true, created, skipped, installedDependencies, installedBrowsers };
|
|
54
|
+
}
|
|
55
|
+
function runtimeConfigTemplate(adapter) {
|
|
56
|
+
const defaultAdapter = adapter === "playwright" ? "playwright" : "memory";
|
|
57
|
+
const entry = defaultAdapter === "playwright"
|
|
58
|
+
? HARNESS_COMET_ADAPTER_PLAYWRIGHT_PACKAGE
|
|
59
|
+
: HARNESS_COMET_ADAPTER_MEMORY_PACKAGE;
|
|
60
|
+
return `export default {
|
|
61
|
+
schemaVersion: 1,
|
|
62
|
+
mode: "runtime",
|
|
63
|
+
paths: {
|
|
64
|
+
scenarios: "harness/scenarios",
|
|
65
|
+
fixtures: "harness/fixtures",
|
|
66
|
+
adapters: "harness/adapters",
|
|
67
|
+
oracles: "harness/oracles"
|
|
68
|
+
},
|
|
69
|
+
adapter: {
|
|
70
|
+
default: "${defaultAdapter}",
|
|
71
|
+
entries: {
|
|
72
|
+
${defaultAdapter}: "${entry}"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
runtime: {
|
|
76
|
+
scenarioTimeoutMs: 60000,
|
|
77
|
+
stepTimeoutMs: 15000,
|
|
78
|
+
assertionTimeoutMs: 10000,
|
|
79
|
+
workers: 1,
|
|
80
|
+
failFast: false
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
`;
|
|
84
|
+
}
|
|
85
|
+
export function scenarioTemplate(adapter) {
|
|
86
|
+
if (adapter === "playwright") {
|
|
87
|
+
return `schemaVersion: 1
|
|
88
|
+
id: example-smoke
|
|
89
|
+
title: Example smoke
|
|
90
|
+
adapter: playwright
|
|
91
|
+
tags: [smoke]
|
|
92
|
+
business:
|
|
93
|
+
component: example-page
|
|
94
|
+
capability: render-static-message
|
|
95
|
+
behavior: show-hello-harness
|
|
96
|
+
contract: example-page-static-message
|
|
97
|
+
status: active
|
|
98
|
+
fixtureRefs: [example-empty]
|
|
99
|
+
steps:
|
|
100
|
+
- action: page.goto
|
|
101
|
+
input:
|
|
102
|
+
url: "data:text/html,<title>Harness</title><main data-testid='message'>Hello Harness</main>"
|
|
103
|
+
assertions:
|
|
104
|
+
- inspect: page.text
|
|
105
|
+
input:
|
|
106
|
+
selector: "[data-testid=message]"
|
|
107
|
+
oracle: value.contains
|
|
108
|
+
expected: "Hello Harness"
|
|
109
|
+
`;
|
|
110
|
+
}
|
|
111
|
+
return `schemaVersion: 1
|
|
112
|
+
id: example-smoke
|
|
113
|
+
title: Example smoke
|
|
114
|
+
adapter: memory
|
|
115
|
+
tags: [smoke]
|
|
116
|
+
business:
|
|
117
|
+
component: example-memory
|
|
118
|
+
capability: store-message
|
|
119
|
+
behavior: write-and-read-message
|
|
120
|
+
contract: example-memory-message-roundtrip
|
|
121
|
+
status: active
|
|
122
|
+
fixtureRefs: [example-empty]
|
|
123
|
+
steps:
|
|
124
|
+
- action: memory.set
|
|
125
|
+
input:
|
|
126
|
+
key: message
|
|
127
|
+
value: Hello Harness
|
|
128
|
+
assertions:
|
|
129
|
+
- inspect: memory.get
|
|
130
|
+
input:
|
|
131
|
+
key: message
|
|
132
|
+
oracle: value.equals
|
|
133
|
+
expected: Hello Harness
|
|
134
|
+
`;
|
|
135
|
+
}
|
|
136
|
+
async function ensurePlaywrightPackageJson(root) {
|
|
137
|
+
const packagePath = path.join(root, "package.json");
|
|
138
|
+
let pkg;
|
|
139
|
+
try {
|
|
140
|
+
pkg = JSON.parse(await fs.readFile(packagePath, "utf8"));
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
pkg = { private: true };
|
|
144
|
+
}
|
|
145
|
+
const devDependencies = (pkg.devDependencies ?? {}) || {};
|
|
146
|
+
if (!devDependencies["@playwright/test"]) {
|
|
147
|
+
devDependencies["@playwright/test"] = "^1.60.0";
|
|
148
|
+
}
|
|
149
|
+
if (!devDependencies[HARNESS_COMET_PLAYWRIGHT_PACKAGE]) {
|
|
150
|
+
devDependencies[HARNESS_COMET_PLAYWRIGHT_PACKAGE] = HARNESS_COMET_PLAYWRIGHT_DEPENDENCY;
|
|
151
|
+
}
|
|
152
|
+
pkg.private ??= true;
|
|
153
|
+
pkg.devDependencies = sortObject(devDependencies);
|
|
154
|
+
delete pkg.peerDependencies;
|
|
155
|
+
await fs.writeFile(packagePath, `${JSON.stringify(pkg, null, 2)}\n`, "utf8");
|
|
156
|
+
}
|
|
157
|
+
async function installProjectDependencies(root) {
|
|
158
|
+
const manager = await detectPackageManager(root);
|
|
159
|
+
const { execa } = await import("execa");
|
|
160
|
+
const command = manager === "yarn" ? "yarn" : manager === "npm" ? "npm" : "pnpm";
|
|
161
|
+
const args = ["install"];
|
|
162
|
+
try {
|
|
163
|
+
await execa(command, args, { cwd: root, stdio: "inherit" });
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
throw new HarnessError({
|
|
168
|
+
code: "PLAYWRIGHT_DEPENDENCY_INSTALL_FAILED",
|
|
169
|
+
category: "environment",
|
|
170
|
+
message: "Initialized harness assets, but dependency installation failed",
|
|
171
|
+
hint: `Run: ${formatCommand(command, args)}`,
|
|
172
|
+
context: {
|
|
173
|
+
root,
|
|
174
|
+
command: formatCommand(command, args),
|
|
175
|
+
cause: error instanceof Error ? error.message : String(error)
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
async function installPlaywrightBrowsers(root) {
|
|
181
|
+
const manager = await detectPackageManager(root);
|
|
182
|
+
const { execa } = await import("execa");
|
|
183
|
+
const command = manager === "yarn" ? "yarn" : manager === "npm" ? "npm" : "pnpm";
|
|
184
|
+
const args = manager === "yarn"
|
|
185
|
+
? ["playwright", "install", "chromium"]
|
|
186
|
+
: ["exec", "playwright", "install", "chromium"];
|
|
187
|
+
try {
|
|
188
|
+
await execa(command, args, { cwd: root, stdio: "inherit" });
|
|
189
|
+
return true;
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
throw new HarnessError({
|
|
193
|
+
code: "PLAYWRIGHT_BROWSER_INSTALL_FAILED",
|
|
194
|
+
category: "environment",
|
|
195
|
+
message: "Initialized harness assets and dependencies, but Chromium installation failed",
|
|
196
|
+
hint: "Run: pnpm exec playwright install chromium",
|
|
197
|
+
context: {
|
|
198
|
+
root,
|
|
199
|
+
command: formatCommand(command, args),
|
|
200
|
+
cause: error instanceof Error ? error.message : String(error)
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
async function detectPackageManager(root) {
|
|
206
|
+
const resolve = await loadDetectPackageManager();
|
|
207
|
+
return resolve(root);
|
|
208
|
+
}
|
|
209
|
+
async function loadDetectPackageManager() {
|
|
210
|
+
try {
|
|
211
|
+
const core = await import("@hapergg/harness-comet-core");
|
|
212
|
+
if ("detectPackageManager" in core) {
|
|
213
|
+
return core.detectPackageManager;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
// Fall back to local source during workspace development.
|
|
218
|
+
}
|
|
219
|
+
const sourceModuleUrl = new URL("../../../core/src/package-manager.ts", import.meta.url);
|
|
220
|
+
const source = await import(sourceModuleUrl.href);
|
|
221
|
+
return source.detectPackageManager;
|
|
222
|
+
}
|
|
223
|
+
function sortObject(input) {
|
|
224
|
+
return Object.fromEntries(Object.entries(input).sort(([left], [right]) => left.localeCompare(right)));
|
|
225
|
+
}
|
|
226
|
+
function formatCommand(command, args) {
|
|
227
|
+
return [command, ...args].join(" ");
|
|
228
|
+
}
|
|
229
|
+
function normalizePath(value) {
|
|
230
|
+
return value.split(path.sep).join("/");
|
|
231
|
+
}
|
|
232
|
+
async function writeFileSafe(file, content, overwrite, relativePath, created, skipped) {
|
|
233
|
+
try {
|
|
234
|
+
if (!overwrite)
|
|
235
|
+
await fs.access(file);
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
await fs.writeFile(file, content, "utf8");
|
|
239
|
+
created.push(relativePath);
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
if (overwrite) {
|
|
243
|
+
await fs.writeFile(file, content, "utf8");
|
|
244
|
+
created.push(relativePath);
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
skipped.push(relativePath);
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-bin.d.ts","sourceRoot":"","sources":["../src/dev-bin.ts"],"names":[],"mappings":""}
|
package/dist/dev-bin.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-bin.js","sourceRoot":"","sources":["../src/dev-bin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpF,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BpC,wBAAsB,IAAI,CAAC,IAAI,WAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAS7D;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE;IAAE,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GAAG,OAAO,CA4G5F"}
|