@crvy/rprtr 0.2.4 → 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.
Files changed (49) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +33 -0
  3. package/dist/{chunk-HAFWYUNO.js → chunk-4YJL655E.js} +16 -4
  4. package/dist/{chunk-473CWZ4V.js → chunk-IFHYWPXG.js} +710 -281
  5. package/dist/cli.d.ts +5 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +24 -4
  8. package/dist/index.css +7 -0
  9. package/dist/index.js +152 -105
  10. package/dist/reporter-artifact-ops.d.ts +0 -2
  11. package/dist/reporter-artifact-ops.d.ts.map +1 -1
  12. package/dist/reporter.cjs +32 -38
  13. package/dist/reporter.d.ts +2 -1
  14. package/dist/reporter.d.ts.map +1 -1
  15. package/dist/reporter.js +27 -43
  16. package/dist/schemas/http.d.ts +2 -0
  17. package/dist/schemas/http.d.ts.map +1 -1
  18. package/dist/schemas.d.ts +14 -0
  19. package/dist/schemas.d.ts.map +1 -1
  20. package/dist/server/app.d.ts +6 -0
  21. package/dist/server/app.d.ts.map +1 -1
  22. package/dist/server/artifact-routes.d.ts.map +1 -1
  23. package/dist/server/docker-launcher.d.ts +27 -0
  24. package/dist/server/docker-launcher.d.ts.map +1 -0
  25. package/dist/server/docker-support.d.ts +66 -0
  26. package/dist/server/docker-support.d.ts.map +1 -0
  27. package/dist/server/handlers.d.ts +1 -1
  28. package/dist/server/handlers.d.ts.map +1 -1
  29. package/dist/server/launcher-resolver.d.ts +23 -0
  30. package/dist/server/launcher-resolver.d.ts.map +1 -0
  31. package/dist/server/playwright-config.d.ts +6 -0
  32. package/dist/server/playwright-config.d.ts.map +1 -1
  33. package/dist/server/routes-context.d.ts +6 -1
  34. package/dist/server/routes-context.d.ts.map +1 -1
  35. package/dist/server/routes.d.ts +7 -0
  36. package/dist/server/routes.d.ts.map +1 -1
  37. package/dist/server/run-controller.d.ts +19 -19
  38. package/dist/server/run-controller.d.ts.map +1 -1
  39. package/dist/server/run-launcher.d.ts +45 -0
  40. package/dist/server/run-launcher.d.ts.map +1 -0
  41. package/dist/server/run-mode.d.ts +15 -0
  42. package/dist/server/run-mode.d.ts.map +1 -0
  43. package/dist/server/server-factories.d.ts +21 -0
  44. package/dist/server/server-factories.d.ts.map +1 -0
  45. package/dist/server.cjs +885 -446
  46. package/dist/server.js +2 -2
  47. package/dist/types.d.ts +2 -0
  48. package/dist/types.d.ts.map +1 -1
  49. package/package.json +1 -1
package/dist/cli.d.ts CHANGED
@@ -1,12 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { type ServerOptions } from './server.ts';
3
+ import type { DockerOptions } from './server/docker-launcher.ts';
4
+ import type { RunMode } from './server/run-mode.ts';
3
5
  interface ResolvedCliOptions extends ServerOptions {
4
6
  port: number;
5
7
  screenshotDir: string;
6
8
  reportPath: string;
7
9
  outputDir: string;
10
+ runMode?: RunMode;
11
+ docker?: DockerOptions;
8
12
  }
9
- export declare const HELP_TEXT = "Usage: crvy-rprtr [artifact-dir] [options]\n\nStart the @crvy/rprtr visual regression report UI server.\n\nArguments:\n artifact-dir Directory of downloaded CI test artifacts. When set,\n --report-path defaults to <dir>/report.json and\n --screenshot-dir defaults to <dir>/screenshots.\n\nOptions:\n -p, --port <number> Server port (default: 3000)\n -s, --screenshot-dir <dir> Screenshot artifact directory (default: ./screenshots)\n -r, --report-path <path> Path to report.json (default: ./report.json)\n -o, --output-dir <dir> Playwright test output directory (default: ./test-results)\n -c, --config <path> Path to playwright.config.ts, used for approval routing\n -h, --help Show this help message\n";
13
+ export declare const HELP_TEXT = "Usage: crvy-rprtr [artifact-dir] [options]\n\nStart the @crvy/rprtr visual regression report UI server.\n\nArguments:\n artifact-dir Directory of downloaded CI test artifacts. When set,\n --report-path defaults to <dir>/report.json and\n --screenshot-dir defaults to <dir>/screenshots.\n\nOptions:\n -p, --port <number> Server port (default: 3000)\n -s, --screenshot-dir <dir> Screenshot artifact directory (default: ./screenshots)\n -r, --report-path <path> Path to report.json (default: ./report.json)\n -o, --output-dir <dir> Playwright test output directory (default: ./test-results)\n -c, --config <path> Path to playwright.config.ts, used for approval routing\n --run-mode <mode> Test run backend: local, docker, or auto (default: auto)\n --docker-image <image> Docker image for docker mode (default: official Playwright image matching the installed @playwright/test version)\n --docker-platform <platform> Container platform: linux/amd64 or linux/arm64 (default: host architecture)\n -h, --help Show this help message\n";
10
14
  export declare function printHelp(): void;
11
15
  export declare function wantsHelp(args: string[]): boolean;
12
16
  export declare function resolveCliOptions(args: string[]): ResolvedCliOptions;
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAKA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAO7D,UAAU,kBAAmB,SAAQ,aAAa;IAChD,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,SAAS,00BAgBrB,CAAA;AAED,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAEjD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,kBAAkB,CA8BpE"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAKA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAOnD,UAAU,kBAAmB,SAAQ,aAAa;IAChD,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,aAAa,CAAA;CACvB;AAED,eAAO,MAAM,SAAS,oqCAmBrB,CAAA;AAED,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAEjD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAgDpE"}
package/dist/cli.js CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  startServer
4
- } from "./chunk-473CWZ4V.js";
5
- import "./chunk-HAFWYUNO.js";
4
+ } from "./chunk-IFHYWPXG.js";
5
+ import "./chunk-4YJL655E.js";
6
6
 
7
7
  // src/cli.ts
8
8
  import { join } from "path";
@@ -47,6 +47,9 @@ Options:
47
47
  -r, --report-path <path> Path to report.json (default: ./report.json)
48
48
  -o, --output-dir <dir> Playwright test output directory (default: ./test-results)
49
49
  -c, --config <path> Path to playwright.config.ts, used for approval routing
50
+ --run-mode <mode> Test run backend: local, docker, or auto (default: auto)
51
+ --docker-image <image> Docker image for docker mode (default: official Playwright image matching the installed @playwright/test version)
52
+ --docker-platform <platform> Container platform: linux/amd64 or linux/arm64 (default: host architecture)
50
53
  -h, --help Show this help message
51
54
  `;
52
55
  function printHelp() {
@@ -64,7 +67,10 @@ function resolveCliOptions(args) {
64
67
  "screenshot-dir": { type: "string", short: "s" },
65
68
  "report-path": { type: "string", short: "r" },
66
69
  "output-dir": { type: "string", short: "o" },
67
- config: { type: "string", short: "c" }
70
+ config: { type: "string", short: "c" },
71
+ "run-mode": { type: "string" },
72
+ "docker-image": { type: "string" },
73
+ "docker-platform": { type: "string" }
68
74
  }
69
75
  });
70
76
  if (positionals.length > 1) {
@@ -73,12 +79,26 @@ function resolveCliOptions(args) {
73
79
  const artifactDir = positionals[0];
74
80
  const reportPath = values["report-path"] ?? (artifactDir === void 0 ? DEFAULT_REPORT_PATH : join(artifactDir, "report.json"));
75
81
  const screenshotDir = values["screenshot-dir"] ?? (artifactDir === void 0 ? DEFAULT_SCREENSHOT_DIR : join(artifactDir, "screenshots"));
82
+ const runMode = values["run-mode"];
83
+ if (runMode !== void 0 && runMode !== "local" && runMode !== "docker" && runMode !== "auto") {
84
+ throw new TypeError(`Invalid --run-mode: ${runMode} (expected local, docker, or auto)`);
85
+ }
86
+ const dockerPlatform = values["docker-platform"];
87
+ if (dockerPlatform !== void 0 && dockerPlatform !== "linux/amd64" && dockerPlatform !== "linux/arm64") {
88
+ throw new TypeError(`Invalid --docker-platform: ${dockerPlatform} (expected linux/amd64 or linux/arm64)`);
89
+ }
90
+ const docker = {};
91
+ if (values["docker-image"] !== void 0) docker.image = values["docker-image"];
92
+ if (dockerPlatform !== void 0) docker.platform = dockerPlatform;
93
+ const hasDockerOptions = values["docker-image"] !== void 0 || dockerPlatform !== void 0;
76
94
  return {
77
95
  port: parseInt(values.port ?? `${DEFAULT_PORT}`, 10),
78
96
  screenshotDir,
79
97
  reportPath,
80
98
  outputDir: values["output-dir"] ?? DEFAULT_OUTPUT_DIR,
81
- playwrightConfig: values.config
99
+ playwrightConfig: values.config,
100
+ ...runMode === void 0 ? {} : { runMode },
101
+ ...hasDockerOptions ? { docker } : {}
82
102
  };
83
103
  }
84
104
  if (isDirectExecution(import.meta.url)) {
package/dist/index.css CHANGED
@@ -305,6 +305,9 @@
305
305
  .mr-3 {
306
306
  margin-right: calc(var(--spacing) * 3);
307
307
  }
308
+ .mb-1 {
309
+ margin-bottom: calc(var(--spacing) * 1);
310
+ }
308
311
  .mb-2 {
309
312
  margin-bottom: calc(var(--spacing) * 2);
310
313
  }
@@ -841,6 +844,10 @@
841
844
  .outline-accent {
842
845
  outline-color: var(--color-accent);
843
846
  }
847
+ .grayscale {
848
+ --tw-grayscale: grayscale(100%);
849
+ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
850
+ }
844
851
  .invert {
845
852
  --tw-invert: invert(100%);
846
853
  filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);