@crvy/rprtr 0.1.4 → 0.2.2

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 (41) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +8 -7
  3. package/dist/{chunk-WRMHUY5A.js → chunk-HAFWYUNO.js} +181 -130
  4. package/dist/{chunk-KLGJSEKV.js → chunk-RFZGJSL3.js} +439 -127
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +6 -4
  7. package/dist/index.css +26 -0
  8. package/dist/index.js +297 -76
  9. package/dist/offline-reports.d.ts +4 -0
  10. package/dist/offline-reports.d.ts.map +1 -1
  11. package/dist/report-state.d.ts +3 -1
  12. package/dist/report-state.d.ts.map +1 -1
  13. package/dist/reporter-utils.d.ts +0 -1
  14. package/dist/reporter-utils.d.ts.map +1 -1
  15. package/dist/reporter.cjs +186 -134
  16. package/dist/reporter.d.ts +1 -1
  17. package/dist/reporter.d.ts.map +1 -1
  18. package/dist/reporter.js +8 -6
  19. package/dist/schemas/http.d.ts +44 -0
  20. package/dist/schemas/http.d.ts.map +1 -0
  21. package/dist/schemas.d.ts +25 -6
  22. package/dist/schemas.d.ts.map +1 -1
  23. package/dist/server/app.d.ts +6 -0
  24. package/dist/server/app.d.ts.map +1 -1
  25. package/dist/server/handlers.d.ts +3 -0
  26. package/dist/server/handlers.d.ts.map +1 -1
  27. package/dist/server/playwright-config.d.ts +2 -0
  28. package/dist/server/playwright-config.d.ts.map +1 -0
  29. package/dist/server/routes-context.d.ts +13 -0
  30. package/dist/server/routes-context.d.ts.map +1 -0
  31. package/dist/server/routes.d.ts +6 -1
  32. package/dist/server/routes.d.ts.map +1 -1
  33. package/dist/server/run-controller.d.ts +85 -0
  34. package/dist/server/run-controller.d.ts.map +1 -0
  35. package/dist/server/run-routes.d.ts +3 -0
  36. package/dist/server/run-routes.d.ts.map +1 -0
  37. package/dist/server.cjs +633 -273
  38. package/dist/server.js +2 -2
  39. package/dist/types.d.ts +6 -0
  40. package/dist/types.d.ts.map +1 -1
  41. package/package.json +6 -5
package/dist/schemas.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  import { z } from 'zod';
2
+ export * from './schemas/http.ts';
2
3
  export declare const LocationSchema: z.ZodObject<{
3
4
  file: z.ZodString;
4
5
  line: z.ZodNumber;
6
+ column: z.ZodOptional<z.ZodNumber>;
5
7
  }, z.core.$strip>;
6
8
  export type Location = z.infer<typeof LocationSchema>;
7
9
  export declare const VisualSourceSchema: z.ZodEnum<{
@@ -147,6 +149,7 @@ export declare const TestDataSchema: z.ZodObject<{
147
149
  location: z.ZodOptional<z.ZodObject<{
148
150
  file: z.ZodString;
149
151
  line: z.ZodNumber;
152
+ column: z.ZodOptional<z.ZodNumber>;
150
153
  }, z.core.$strip>>;
151
154
  }, z.core.$strip>;
152
155
  export type TestData = z.infer<typeof TestDataSchema>;
@@ -208,6 +211,7 @@ export declare const CrvyRprtrTestSchema: z.ZodObject<{
208
211
  location: z.ZodOptional<z.ZodObject<{
209
212
  file: z.ZodString;
210
213
  line: z.ZodNumber;
214
+ column: z.ZodOptional<z.ZodNumber>;
211
215
  }, z.core.$strip>>;
212
216
  checked: z.ZodBoolean;
213
217
  }, z.core.$strip>;
@@ -294,6 +298,7 @@ export declare const WebSocketMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
294
298
  location: z.ZodOptional<z.ZodObject<{
295
299
  file: z.ZodString;
296
300
  line: z.ZodNumber;
301
+ column: z.ZodOptional<z.ZodNumber>;
297
302
  }, z.core.$strip>>;
298
303
  }, z.core.$strip>;
299
304
  }, z.core.$strip>, z.ZodObject<{
@@ -356,6 +361,7 @@ export declare const WebSocketMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
356
361
  location: z.ZodOptional<z.ZodObject<{
357
362
  file: z.ZodString;
358
363
  line: z.ZodNumber;
364
+ column: z.ZodOptional<z.ZodNumber>;
359
365
  }, z.core.$strip>>;
360
366
  }, z.core.$strip>;
361
367
  }, z.core.$strip>, z.ZodObject<{
@@ -429,6 +435,7 @@ export declare const WebSocketMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
429
435
  location: z.ZodOptional<z.ZodObject<{
430
436
  file: z.ZodString;
431
437
  line: z.ZodNumber;
438
+ column: z.ZodOptional<z.ZodNumber>;
432
439
  }, z.core.$strip>>;
433
440
  }, z.core.$strip>>;
434
441
  isUpdateMode: z.ZodOptional<z.ZodBoolean>;
@@ -436,6 +443,11 @@ export declare const WebSocketMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
436
443
  }, z.core.$strip>, z.ZodObject<{
437
444
  type: z.ZodLiteral<"approve">;
438
445
  data: z.ZodUnknown;
446
+ }, z.core.$strip>, z.ZodObject<{
447
+ type: z.ZodLiteral<"run-status">;
448
+ data: z.ZodObject<{
449
+ running: z.ZodBoolean;
450
+ }, z.core.$strip>;
439
451
  }, z.core.$strip>], "type">;
440
452
  export type WebSocketMessage = z.infer<typeof WebSocketMessageSchema>;
441
453
  export declare const TestBeginDataSchema: z.ZodObject<{
@@ -447,6 +459,7 @@ export declare const TestBeginDataSchema: z.ZodObject<{
447
459
  location: z.ZodObject<{
448
460
  file: z.ZodString;
449
461
  line: z.ZodNumber;
462
+ column: z.ZodOptional<z.ZodNumber>;
450
463
  }, z.core.$strip>;
451
464
  }, z.core.$strip>;
452
465
  export type TestBeginData = z.infer<typeof TestBeginDataSchema>;
@@ -491,6 +504,8 @@ export declare const RegisterDataSchema: z.ZodObject<{
491
504
  playwrightTestDir: z.ZodOptional<z.ZodString>;
492
505
  playwrightSnapshotPathTemplate: z.ZodOptional<z.ZodString>;
493
506
  playwrightToHaveScreenshotPathTemplate: z.ZodOptional<z.ZodString>;
507
+ configFile: z.ZodOptional<z.ZodString>;
508
+ cwd: z.ZodOptional<z.ZodString>;
494
509
  }, z.core.$strip>;
495
510
  export type RegisterData = z.infer<typeof RegisterDataSchema>;
496
511
  export declare const ReportDataSchema: z.ZodObject<{
@@ -553,6 +568,7 @@ export declare const ReportDataSchema: z.ZodObject<{
553
568
  location: z.ZodOptional<z.ZodObject<{
554
569
  file: z.ZodString;
555
570
  line: z.ZodNumber;
571
+ column: z.ZodOptional<z.ZodNumber>;
556
572
  }, z.core.$strip>>;
557
573
  }, z.core.$strip>>;
558
574
  browsers: z.ZodArray<z.ZodString>;
@@ -619,6 +635,7 @@ export declare const LoadedReportDataSchema: z.ZodObject<{
619
635
  location: z.ZodOptional<z.ZodObject<{
620
636
  file: z.ZodString;
621
637
  line: z.ZodNumber;
638
+ column: z.ZodOptional<z.ZodNumber>;
622
639
  }, z.core.$strip>>;
623
640
  }, z.core.$strip>>>;
624
641
  isUpdateMode: z.ZodOptional<z.ZodBoolean>;
@@ -651,12 +668,6 @@ export declare const OfflineReportSchema: z.ZodObject<{
651
668
  }, z.core.$strip>>;
652
669
  }, z.core.$strip>;
653
670
  export type OfflineReport = z.infer<typeof OfflineReportSchema>;
654
- export declare const ApproveRequestBodySchema: z.ZodObject<{
655
- id: z.ZodString;
656
- retry: z.ZodNumber;
657
- image: z.ZodString;
658
- }, z.core.$strip>;
659
- export type ApproveRequestBody = z.infer<typeof ApproveRequestBodySchema>;
660
671
  export declare const ReportApiResponseSchema: z.ZodObject<{
661
672
  tests: z.ZodRecord<z.ZodString, z.ZodObject<{
662
673
  id: z.ZodString;
@@ -716,9 +727,12 @@ export declare const ReportApiResponseSchema: z.ZodObject<{
716
727
  location: z.ZodOptional<z.ZodObject<{
717
728
  file: z.ZodString;
718
729
  line: z.ZodNumber;
730
+ column: z.ZodOptional<z.ZodNumber>;
719
731
  }, z.core.$strip>>;
720
732
  }, z.core.$strip>>;
721
733
  isUpdateMode: z.ZodOptional<z.ZodBoolean>;
734
+ isRunning: z.ZodOptional<z.ZodBoolean>;
735
+ runEnabled: z.ZodOptional<z.ZodBoolean>;
722
736
  }, z.core.$strip>;
723
737
  export type ReportApiResponse = z.infer<typeof ReportApiResponseSchema>;
724
738
  export declare const ClientBootstrapDataSchema: z.ZodObject<{
@@ -781,13 +795,18 @@ export declare const ClientBootstrapDataSchema: z.ZodObject<{
781
795
  location: z.ZodOptional<z.ZodObject<{
782
796
  file: z.ZodString;
783
797
  line: z.ZodNumber;
798
+ column: z.ZodOptional<z.ZodNumber>;
784
799
  }, z.core.$strip>>;
785
800
  }, z.core.$strip>>;
801
+ isRunning: z.ZodOptional<z.ZodBoolean>;
802
+ runEnabled: z.ZodOptional<z.ZodBoolean>;
786
803
  isUpdateMode: z.ZodBoolean;
787
804
  }, z.core.$strip>;
788
805
  liveUpdates: z.ZodBoolean;
789
806
  approvalEnabled: z.ZodBoolean;
790
807
  approvalMessage: z.ZodOptional<z.ZodString>;
808
+ runEnabled: z.ZodOptional<z.ZodBoolean>;
809
+ isRunning: z.ZodOptional<z.ZodBoolean>;
791
810
  }, z.core.$strip>;
792
811
  export type ClientBootstrapData = z.infer<typeof ClientBootstrapDataSchema>;
793
812
  export declare const ImagesViewModeSchema: z.ZodEnum<{
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,12 @@ export interface ServerOptions {
5
5
  reportPath?: string;
6
6
  /** Absolute path to the built web UI assets directory, or its parent directory */
7
7
  staticDir?: string;
8
+ /**
9
+ * Playwright config path used to seed run support before any reporter
10
+ * registers. When omitted, the server discovers `playwright.config.*` in the
11
+ * working directory. A registering reporter always overrides this.
12
+ */
13
+ playwrightConfig?: string;
8
14
  configDir?: string;
9
15
  /**
10
16
  * Playwright's outputDir (test-results), where failure artifacts are written. Used as a root in
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAI/C,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,sCAAsC,CAAC,EAAE,MAAM,CAAA;CAChD;AAUD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAChC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClD,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D;AAsMD,wBAAsB,eAAe,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CAmCrF"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,sCAAsC,CAAC,EAAE,MAAM,CAAA;CAChD;AAUD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAChC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClD,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D;AAqKD,wBAAsB,eAAe,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CA8CrF"}
@@ -2,6 +2,7 @@ import type { RegisterData, TestBeginData, TestEndData } from '../schemas.ts';
2
2
  import type { TestData } from '../types.ts';
3
3
  import { type ApprovalRouting } from './artifact-routes.ts';
4
4
  import type { RoutesContext } from './routes.ts';
5
+ import type { RunController } from './run-controller.ts';
5
6
  import type { RuntimeWebSocket } from './ws.ts';
6
7
  export interface HandlerContext {
7
8
  reportData: {
@@ -13,9 +14,11 @@ export interface HandlerContext {
13
14
  };
14
15
  wsClients: Set<RuntimeWebSocket>;
15
16
  currentRunIds: Set<string>;
17
+ isFilteredRun: boolean;
16
18
  saveReport: () => Promise<void>;
17
19
  approvalRouting?: ApprovalRouting;
18
20
  routesContext: RoutesContext;
21
+ runController: RunController;
19
22
  }
20
23
  export declare function handleTestBegin(ctx: HandlerContext, data: TestBeginData): void;
21
24
  export declare function handleTestEnd(ctx: HandlerContext, data: TestEndData): void;
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/server/handlers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC7E,OAAO,KAAK,EAA0B,QAAQ,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EAA+B,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,WAAW,cAAc;IAC7B,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,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAChC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,aAAa,EAAE,aAAa,CAAA;CAC7B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAM9E;AAwBD,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAiB1E;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;CAAE,GAChD,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAgB,aAAa,IAAI,IAAI,CAIpC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAWpD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAqC5E"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/server/handlers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC7E,OAAO,KAAK,EAA0B,QAAQ,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EAA+B,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,WAAW,cAAc;IAC7B,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,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAChC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAG1B,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,aAAa,EAAE,aAAa,CAAA;IAC5B,aAAa,EAAE,aAAa,CAAA;CAC7B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAM9E;AAwBD,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAiB1E;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;CAAE,GAChD,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAgB,aAAa,IAAI,IAAI,CAIpC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAWpD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAyC5E"}
@@ -0,0 +1,2 @@
1
+ export declare function resolvePlaywrightConfig(cwd: string): Promise<string | null>;
2
+ //# sourceMappingURL=playwright-config.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,13 @@
1
+ import type { RoutesContext } from './routes.ts';
2
+ type ReportDataShape = RoutesContext['reportData'];
3
+ interface RoutesContextOptions {
4
+ outputDir?: string;
5
+ playwrightSnapshotDir?: string;
6
+ configDir?: string;
7
+ playwrightTestDir?: string;
8
+ playwrightSnapshotPathTemplate?: string;
9
+ playwrightToHaveScreenshotPathTemplate?: string;
10
+ }
11
+ export declare function createRoutesContext(reportData: ReportDataShape, staticDir: string, saveReport: () => Promise<void>, options: RoutesContextOptions): RoutesContext;
12
+ export {};
13
+ //# sourceMappingURL=routes-context.d.ts.map
@@ -0,0 +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,UAAU,oBAAoB;IAC5B,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;CAChD;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,CAqBf"}
@@ -1,4 +1,5 @@
1
1
  import type { TestData } from '../types.ts';
2
+ import type { RunController } from './run-controller.ts';
2
3
  export interface RoutesContext {
3
4
  reportData: {
4
5
  isRunning: boolean;
@@ -17,7 +18,11 @@ export interface RoutesContext {
17
18
  playwrightSnapshotPathTemplate?: string;
18
19
  playwrightToHaveScreenshotPathTemplate?: string;
19
20
  };
21
+ runContext?: {
22
+ configFile: string;
23
+ cwd: string;
24
+ };
20
25
  }
21
26
  export { isPathWithinRoots, isWebSocketUpgradeRequest, LIVE_UPDATES_WEBSOCKET_PATH } from './utils.ts';
22
- export declare function handleHttpRequest(ctx: RoutesContext, req: Request): Promise<Response>;
27
+ export declare function handleHttpRequest(ctx: RoutesContext, req: Request, runController: RunController): Promise<Response>;
23
28
  //# sourceMappingURL=routes.d.ts.map
@@ -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;AAI3C,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;KAChD,CAAA;CACF;AAED,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAqMtG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CA6CrF"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAG3C,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;KAChD,CAAA;IACD,UAAU,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CACjD;AAED,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAwMtG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiDnH"}
@@ -0,0 +1,85 @@
1
+ import type { RunTestDescriptor } from '../schemas.ts';
2
+ import type { ClientWebSocketMessage } from '../types.ts';
3
+ export interface RunContext {
4
+ configFile: string;
5
+ cwd: string;
6
+ }
7
+ export interface RunFilters {
8
+ tests?: RunTestDescriptor[];
9
+ }
10
+ export type StartResult = {
11
+ ok: true;
12
+ } | {
13
+ ok: false;
14
+ reason: 'no-config' | 'already-running' | 'no-tests';
15
+ };
16
+ export type StopResult = {
17
+ ok: true;
18
+ } | {
19
+ ok: false;
20
+ reason: 'not-running';
21
+ };
22
+ export interface ChildProcessLike {
23
+ on(event: 'exit', cb: (code: number | null) => void): void;
24
+ on(event: 'error', cb: (err: Error) => void): void;
25
+ kill(signal: string): void;
26
+ }
27
+ export interface SpawnLike {
28
+ (cmd: string, args: string[], opts: Record<string, unknown>): ChildProcessLike;
29
+ }
30
+ export interface RunControllerDeps {
31
+ getRunContext(): RunContext | null;
32
+ port: number;
33
+ broadcast(message: ClientWebSocketMessage): void;
34
+ setReportRunning(running: boolean): void;
35
+ /** Records whether the in-progress run is filtered, so run-end can preserve unrelated tests. */
36
+ setRunFiltered?(filtered: boolean): void;
37
+ spawn: SpawnLike;
38
+ timers: {
39
+ setTimeout: (fn: () => void, ms?: number) => unknown;
40
+ clearTimeout: (handle: unknown) => void;
41
+ };
42
+ resolveReporter?: (cwd: string) => string | null;
43
+ /** Resolves the package-manager-aware command used to launch `playwright`. Falls back to `npx`. */
44
+ resolveLaunch?: (cwd: string, playwrightArgs: string[]) => {
45
+ cmd: string;
46
+ args: string[];
47
+ };
48
+ /** Injectable seams for the version-gated `--test-list` path (Playwright >= 1.56). */
49
+ getPlaywrightVersion?: (cwd: string) => string | null;
50
+ writeTempFile?: (content: string) => string;
51
+ deleteTempFile?: (path: string) => void;
52
+ }
53
+ /**
54
+ * Resolves the `playwright` launch command for the project's package manager.
55
+ * `cwd` is reserved for future cwd-based detection (`package-manager-detector`'s
56
+ * `detect` is async in v1.x and cannot run in the synchronous `start()` path),
57
+ * so today detection uses the synchronous `getUserAgent()`, matching Creevey's
58
+ * spawn pattern. Falls back to `npx` when no agent is detectable.
59
+ */
60
+ export declare function resolvePlaywrightLaunch(cwd: string, playwrightArgs: string[]): {
61
+ cmd: string;
62
+ args: string[];
63
+ };
64
+ /** `MAJOR.MINOR` threshold check using only leading digits; ignores pre-release suffixes. False for unparseable input. */
65
+ export declare function gteMinor(version: string, major: number, minor: number): boolean;
66
+ /** Builds `--test-list` lines mirroring `playwright test --list`: `[project] › file:line:column › title path`. */
67
+ export declare function buildTestListEntries(tests: RunTestDescriptor[]): string[];
68
+ export declare function resolveReporterDefault(cwd: string): string | null;
69
+ export declare class RunController {
70
+ private readonly deps;
71
+ private child;
72
+ private sigkillTimer;
73
+ private testListPath;
74
+ constructor(deps: RunControllerDeps);
75
+ get isRunning(): boolean;
76
+ private supportsTestList;
77
+ private cleanupTempFile;
78
+ start(filters: RunFilters): StartResult;
79
+ stop(): StopResult;
80
+ dispose(): void;
81
+ private handleChildExit;
82
+ }
83
+ export declare function createRealSpawn(): SpawnLike;
84
+ export declare function createRealTimers(): RunControllerDeps['timers'];
85
+ //# sourceMappingURL=run-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-controller.d.ts","sourceRoot":"","sources":["../../src/server/run-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { RunController } from './run-controller.ts';
2
+ export declare function handleRunRoutes(pathname: string, method: string, runController: RunController, req: Request): Promise<Response> | null;
3
+ //# sourceMappingURL=run-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-routes.d.ts","sourceRoot":"","sources":["../../src/server/run-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAU1B"}