@crvy/rprtr 0.2.3 → 0.3.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/CHANGELOG.md +41 -0
- package/README.md +33 -0
- package/dist/{chunk-HAFWYUNO.js → chunk-4YJL655E.js} +16 -4
- package/dist/{chunk-473CWZ4V.js → chunk-IFHYWPXG.js} +710 -281
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +57 -6
- package/dist/index.css +7 -0
- package/dist/index.js +152 -105
- package/dist/reporter-artifact-ops.d.ts +0 -2
- package/dist/reporter-artifact-ops.d.ts.map +1 -1
- package/dist/reporter.cjs +32 -38
- package/dist/reporter.d.ts +2 -1
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +27 -43
- package/dist/schemas/http.d.ts +2 -0
- package/dist/schemas/http.d.ts.map +1 -1
- package/dist/schemas.d.ts +14 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/server/app.d.ts +6 -0
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/artifact-routes.d.ts.map +1 -1
- package/dist/server/docker-launcher.d.ts +27 -0
- package/dist/server/docker-launcher.d.ts.map +1 -0
- package/dist/server/docker-support.d.ts +66 -0
- package/dist/server/docker-support.d.ts.map +1 -0
- package/dist/server/handlers.d.ts +1 -1
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/launcher-resolver.d.ts +23 -0
- package/dist/server/launcher-resolver.d.ts.map +1 -0
- package/dist/server/playwright-config.d.ts +6 -0
- package/dist/server/playwright-config.d.ts.map +1 -1
- package/dist/server/routes-context.d.ts +6 -1
- package/dist/server/routes-context.d.ts.map +1 -1
- package/dist/server/routes.d.ts +7 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/run-controller.d.ts +19 -19
- package/dist/server/run-controller.d.ts.map +1 -1
- package/dist/server/run-launcher.d.ts +45 -0
- package/dist/server/run-launcher.d.ts.map +1 -0
- package/dist/server/run-mode.d.ts +15 -0
- package/dist/server/run-mode.d.ts.map +1 -0
- package/dist/server/server-factories.d.ts +21 -0
- package/dist/server/server-factories.d.ts.map +1 -0
- package/dist/server.cjs +885 -446
- package/dist/server.js +2 -2
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,8 @@
|
|
|
1
1
|
export declare function resolvePlaywrightConfig(cwd: string): Promise<string | null>;
|
|
2
|
+
/**
|
|
3
|
+
* Resolves the config file for run-context seeding. A user-provided `--config` may be
|
|
4
|
+
* relative (e.g. `./playwright.config.ts`); resolving it against cwd keeps downstream
|
|
5
|
+
* container path-rewriting accurate and avoids a spurious "outside the project" warning.
|
|
6
|
+
*/
|
|
7
|
+
export declare function resolveSeedConfigFile(option: string | undefined, cwd: string): Promise<string | null>;
|
|
2
8
|
//# sourceMappingURL=playwright-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-config.d.ts","sourceRoot":"","sources":["../../src/server/playwright-config.ts"],"names":[],"mappings":"AAiBA,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASjF"}
|
|
1
|
+
{"version":3,"file":"playwright-config.d.ts","sourceRoot":"","sources":["../../src/server/playwright-config.ts"],"names":[],"mappings":"AAiBA,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASjF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAErG"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
+
import type { ContainerPathMapping } from './docker-support.ts';
|
|
1
2
|
import type { RoutesContext } from './routes.ts';
|
|
2
3
|
type ReportDataShape = RoutesContext['reportData'];
|
|
3
|
-
interface RoutesContextOptions {
|
|
4
|
+
export interface RoutesContextOptions {
|
|
4
5
|
outputDir?: string;
|
|
5
6
|
playwrightSnapshotDir?: string;
|
|
6
7
|
configDir?: string;
|
|
7
8
|
playwrightTestDir?: string;
|
|
8
9
|
playwrightSnapshotPathTemplate?: string;
|
|
9
10
|
playwrightToHaveScreenshotPathTemplate?: string;
|
|
11
|
+
runInfo?: {
|
|
12
|
+
mode: 'local' | 'docker';
|
|
13
|
+
};
|
|
14
|
+
containerPathMapping?: ContainerPathMapping;
|
|
10
15
|
}
|
|
11
16
|
export declare function createRoutesContext(reportData: ReportDataShape, staticDir: string, saveReport: () => Promise<void>, options: RoutesContextOptions): RoutesContext;
|
|
12
17
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes-context.d.ts","sourceRoot":"","sources":["../../src/server/routes-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,KAAK,eAAe,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA;AAElD,
|
|
1
|
+
{"version":3,"file":"routes-context.d.ts","sourceRoot":"","sources":["../../src/server/routes-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,KAAK,eAAe,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA;AAElD,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,sCAAsC,CAAC,EAAE,MAAM,CAAA;IAC/C,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE,CAAA;IACtC,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;CAC5C;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC/B,OAAO,EAAE,oBAAoB,GAC5B,aAAa,CAwBf"}
|
package/dist/server/routes.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TestData } from '../types.ts';
|
|
2
|
+
import type { ContainerPathMapping } from './docker-support.ts';
|
|
2
3
|
import type { RunController } from './run-controller.ts';
|
|
3
4
|
export interface RoutesContext {
|
|
4
5
|
reportData: {
|
|
@@ -17,11 +18,17 @@ export interface RoutesContext {
|
|
|
17
18
|
playwrightSnapshotDir?: string;
|
|
18
19
|
playwrightSnapshotPathTemplate?: string;
|
|
19
20
|
playwrightToHaveScreenshotPathTemplate?: string;
|
|
21
|
+
containerPathMapping?: ContainerPathMapping;
|
|
20
22
|
};
|
|
21
23
|
runContext?: {
|
|
22
24
|
configFile: string;
|
|
23
25
|
cwd: string;
|
|
26
|
+
rootDir?: string;
|
|
24
27
|
};
|
|
28
|
+
runInfo?: {
|
|
29
|
+
mode: 'local' | 'docker';
|
|
30
|
+
};
|
|
31
|
+
containerPathMapping?: ContainerPathMapping;
|
|
25
32
|
}
|
|
26
33
|
export { isPathWithinRoots, isWebSocketUpgradeRequest, LIVE_UPDATES_WEBSOCKET_PATH } from './utils.ts';
|
|
27
34
|
export declare function handleHttpRequest(ctx: RoutesContext, req: Request, runController: RunController): Promise<Response>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGxD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE;QACV,SAAS,EAAE,OAAO,CAAA;QAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC/B,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,eAAe,CAAC,EAAE;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAA;QAC9B,8BAA8B,CAAC,EAAE,MAAM,CAAA;QACvC,sCAAsC,CAAC,EAAE,MAAM,CAAA;QAC/C,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;KAC5C,CAAA;IACD,UAAU,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAClE,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE,CAAA;IACtC,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;CAC5C;AAED,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAyMtG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiDnH"}
|
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
import type { RunTestDescriptor } from '../schemas.ts';
|
|
2
2
|
import type { ClientWebSocketMessage } from '../types.ts';
|
|
3
|
+
import { type ContainerPathMapping } from './docker-support.ts';
|
|
4
|
+
import { type RunLauncher } from './run-launcher.ts';
|
|
5
|
+
export { resolvePlaywrightLaunch } from './run-launcher.ts';
|
|
6
|
+
export { buildTestListEntries } from './docker-support.ts';
|
|
7
|
+
export { resolvePlaywrightVersion } from './docker-support.ts';
|
|
3
8
|
export interface RunContext {
|
|
4
9
|
configFile: string;
|
|
5
10
|
cwd: string;
|
|
11
|
+
/** Playwright's rootDir — the base --test-list entries are matched against. */
|
|
12
|
+
rootDir?: string;
|
|
6
13
|
}
|
|
7
14
|
export interface RunFilters {
|
|
8
15
|
tests?: RunTestDescriptor[];
|
|
16
|
+
update?: boolean;
|
|
9
17
|
}
|
|
10
18
|
export type StartResult = {
|
|
11
19
|
ok: true;
|
|
12
20
|
} | {
|
|
13
21
|
ok: false;
|
|
14
|
-
reason: 'no-config' | 'already-running' | 'no-tests';
|
|
22
|
+
reason: 'no-config' | 'already-running' | 'no-tests' | 'docker-unavailable';
|
|
15
23
|
};
|
|
16
24
|
export type StopResult = {
|
|
17
25
|
ok: true;
|
|
@@ -34,6 +42,7 @@ export interface RunControllerDeps {
|
|
|
34
42
|
setReportRunning(running: boolean): void;
|
|
35
43
|
/** Records whether the in-progress run is filtered, so run-end can preserve unrelated tests. */
|
|
36
44
|
setRunFiltered?(filtered: boolean): void;
|
|
45
|
+
containerPathMapping?: ContainerPathMapping;
|
|
37
46
|
/** Flushes pending report writes on child exit so an interrupted run still persists. */
|
|
38
47
|
saveReport?: () => Promise<void>;
|
|
39
48
|
spawn: SpawnLike;
|
|
@@ -42,31 +51,15 @@ export interface RunControllerDeps {
|
|
|
42
51
|
clearTimeout: (handle: unknown) => void;
|
|
43
52
|
};
|
|
44
53
|
resolveReporter?: (cwd: string) => string | null;
|
|
45
|
-
/**
|
|
46
|
-
|
|
47
|
-
cmd: string;
|
|
48
|
-
args: string[];
|
|
49
|
-
};
|
|
54
|
+
/** Builds the launch command and environment for a run. */
|
|
55
|
+
launcher: RunLauncher;
|
|
50
56
|
/** Injectable seams for the version-gated `--test-list` path (Playwright >= 1.56). */
|
|
51
57
|
getPlaywrightVersion?: (cwd: string) => string | null;
|
|
52
58
|
writeTempFile?: (content: string) => string;
|
|
53
59
|
deleteTempFile?: (path: string) => void;
|
|
54
60
|
}
|
|
55
|
-
/**
|
|
56
|
-
* Resolves the `playwright` launch command for the project's package manager.
|
|
57
|
-
* `cwd` is reserved for future cwd-based detection (`package-manager-detector`'s
|
|
58
|
-
* `detect` is async in v1.x and cannot run in the synchronous `start()` path),
|
|
59
|
-
* so today detection uses the synchronous `getUserAgent()`, matching Creevey's
|
|
60
|
-
* spawn pattern. Falls back to `npx` when no agent is detectable.
|
|
61
|
-
*/
|
|
62
|
-
export declare function resolvePlaywrightLaunch(cwd: string, playwrightArgs: string[]): {
|
|
63
|
-
cmd: string;
|
|
64
|
-
args: string[];
|
|
65
|
-
};
|
|
66
61
|
/** `MAJOR.MINOR` threshold check using only leading digits; ignores pre-release suffixes. False for unparseable input. */
|
|
67
62
|
export declare function gteMinor(version: string, major: number, minor: number): boolean;
|
|
68
|
-
/** Builds `--test-list` lines mirroring `playwright test --list`: `[project] › file:line:column › title path`. */
|
|
69
|
-
export declare function buildTestListEntries(tests: RunTestDescriptor[]): string[];
|
|
70
63
|
export declare function resolveReporterDefault(cwd: string): string | null;
|
|
71
64
|
export declare class RunController {
|
|
72
65
|
private readonly deps;
|
|
@@ -77,8 +70,15 @@ export declare class RunController {
|
|
|
77
70
|
get isRunning(): boolean;
|
|
78
71
|
private supportsTestList;
|
|
79
72
|
private cleanupTempFile;
|
|
73
|
+
private buildPlaywrightArgs;
|
|
80
74
|
start(filters: RunFilters): StartResult;
|
|
81
75
|
stop(): StopResult;
|
|
76
|
+
prepareRun(): Promise<{
|
|
77
|
+
ok: true;
|
|
78
|
+
} | {
|
|
79
|
+
ok: false;
|
|
80
|
+
reason: 'docker-unavailable';
|
|
81
|
+
}>;
|
|
82
82
|
dispose(): void;
|
|
83
83
|
private handleChildExit;
|
|
84
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-controller.d.ts","sourceRoot":"","sources":["../../src/server/run-controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-controller.d.ts","sourceRoot":"","sources":["../../src/server/run-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { RunContext } from './run-controller.ts';
|
|
2
|
+
export interface LaunchSpec {
|
|
3
|
+
cmd: string;
|
|
4
|
+
args: string[];
|
|
5
|
+
env: Record<string, string | undefined>;
|
|
6
|
+
}
|
|
7
|
+
export interface LaunchParams {
|
|
8
|
+
ctx: RunContext;
|
|
9
|
+
playwrightArgs: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface RunLauncher {
|
|
12
|
+
readonly mode: 'local' | 'docker';
|
|
13
|
+
/** false once a docker probe/pull has failed; undefined for local or unprobed. */
|
|
14
|
+
readonly available?: boolean;
|
|
15
|
+
/** Docker: probe the daemon, resolve image and container command, pull if missing. */
|
|
16
|
+
prepare?(params: {
|
|
17
|
+
ctx: RunContext;
|
|
18
|
+
onProgress: (phase: string) => void;
|
|
19
|
+
}): Promise<void>;
|
|
20
|
+
launch(params: LaunchParams): LaunchSpec;
|
|
21
|
+
/** Docker: best-effort removal of the named container on the SIGKILL path. */
|
|
22
|
+
onForceKill?(): void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Resolves the `playwright` launch command for the project's package manager.
|
|
26
|
+
* `cwd` is reserved for future cwd-based detection (`package-manager-detector`'s
|
|
27
|
+
* `detect` is async in v1.x and cannot run in the synchronous `start()` path),
|
|
28
|
+
* so today detection uses the synchronous `getUserAgent()`, matching Creevey's
|
|
29
|
+
* spawn pattern. Falls back to `npx` when no agent is detectable.
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolvePlaywrightLaunch(cwd: string, playwrightArgs: string[]): {
|
|
32
|
+
cmd: string;
|
|
33
|
+
args: string[];
|
|
34
|
+
};
|
|
35
|
+
export declare function buildSpawnEnv(port: number, baseEnv?: Record<string, string | undefined>): Record<string, string | undefined>;
|
|
36
|
+
export interface LocalLauncherOptions {
|
|
37
|
+
port: number;
|
|
38
|
+
resolveLaunch?: (cwd: string, playwrightArgs: string[]) => {
|
|
39
|
+
cmd: string;
|
|
40
|
+
args: string[];
|
|
41
|
+
};
|
|
42
|
+
env?: Record<string, string | undefined>;
|
|
43
|
+
}
|
|
44
|
+
export declare function createLocalLauncher(options: LocalLauncherOptions): RunLauncher;
|
|
45
|
+
//# sourceMappingURL=run-launcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-launcher.d.ts","sourceRoot":"","sources":["../../src/server/run-launcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAErD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,UAAU,CAAA;IACf,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;IACjC,kFAAkF;IAClF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,sFAAsF;IACtF,OAAO,CAAC,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,UAAU,CAAC;QAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzF,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAAA;IACxC,8EAA8E;IAC9E,WAAW,CAAC,IAAI,IAAI,CAAA;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAK9G;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACxD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CASpC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;IAC1F,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CACzC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,WAAW,CAS9E"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type RunMode = 'local' | 'docker' | 'auto';
|
|
2
|
+
export type ResolvedRunMode = 'local' | 'docker';
|
|
3
|
+
export interface ResolveRunModeOptions {
|
|
4
|
+
runMode: RunMode;
|
|
5
|
+
isCI: boolean;
|
|
6
|
+
probeDocker: () => Promise<boolean>;
|
|
7
|
+
warn?: (message: string) => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Resolves the effective run mode. Explicit modes never probe; auto runs local
|
|
11
|
+
* on CI (the runner already is the pinned environment) and otherwise probes
|
|
12
|
+
* the docker daemon once, warning when it falls back to local.
|
|
13
|
+
*/
|
|
14
|
+
export declare function resolveRunMode(options: ResolveRunModeOptions): Promise<ResolvedRunMode>;
|
|
15
|
+
//# sourceMappingURL=run-mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-mode.d.ts","sourceRoot":"","sources":["../../src/server/run-mode.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;AACjD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEhD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACnC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACjC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAS7F"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { TestData } from '../types.ts';
|
|
2
|
+
import type { HandlerContext } from './handlers.ts';
|
|
3
|
+
import type { ReportPersistence } from './report-persistence.ts';
|
|
4
|
+
import type { RoutesContext } from './routes.ts';
|
|
5
|
+
import { RunController } from './run-controller.ts';
|
|
6
|
+
import type { RunLauncher } from './run-launcher.ts';
|
|
7
|
+
import type { RuntimeWebSocket } from './ws.ts';
|
|
8
|
+
interface ServerFactoryReportData {
|
|
9
|
+
isRunning: boolean;
|
|
10
|
+
tests: Record<string, TestData>;
|
|
11
|
+
browsers: string[];
|
|
12
|
+
isUpdateMode: boolean;
|
|
13
|
+
screenshotDir: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function createCloseHandler(persistence: ReportPersistence, runController: RunController): () => Promise<void>;
|
|
16
|
+
export declare function createRunControllerAndHandlers(routesContext: RoutesContext, wsClients: Set<RuntimeWebSocket>, reportData: ServerFactoryReportData, currentRunIds: Set<string>, port: number, persistence: ReportPersistence, launcher: RunLauncher): {
|
|
17
|
+
runController: RunController;
|
|
18
|
+
getHandlerContext: () => HandlerContext;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=server-factories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-factories.d.ts","sourceRoot":"","sources":["../../src/server/server-factories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,aAAa,EAAsD,MAAM,qBAAqB,CAAA;AACvG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,UAAU,uBAAuB;IAC/B,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;CACtB;AA6BD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAKpH;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,GAAG,CAAC,gBAAgB,CAAC,EAChC,UAAU,EAAE,uBAAuB,EACnC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAC1B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,WAAW,GACpB;IAAE,aAAa,EAAE,aAAa,CAAC;IAAC,iBAAiB,EAAE,MAAM,cAAc,CAAA;CAAE,CAyB3E"}
|