@scenetest/vite-plugin 0.10.1 → 0.12.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 (104) hide show
  1. package/README.md +6 -0
  2. package/dist/dashboard.d.ts +8 -2
  3. package/dist/dashboard.d.ts.map +1 -1
  4. package/dist/dashboard.js +25 -1210
  5. package/dist/dashboard.js.map +1 -1
  6. package/dist/event-hub.d.ts +5 -0
  7. package/dist/event-hub.d.ts.map +1 -1
  8. package/dist/event-hub.js +11 -0
  9. package/dist/event-hub.js.map +1 -1
  10. package/dist/index.d.ts +8 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +8 -6
  13. package/dist/index.js.map +1 -1
  14. package/dist/middleware.d.ts +2 -0
  15. package/dist/middleware.d.ts.map +1 -1
  16. package/dist/middleware.js +235 -71
  17. package/dist/middleware.js.map +1 -1
  18. package/dist/panels/observer/audio.d.ts +81 -0
  19. package/dist/panels/observer/audio.d.ts.map +1 -0
  20. package/dist/panels/observer/audio.js +296 -0
  21. package/dist/panels/observer/audio.js.map +1 -0
  22. package/dist/panels/observer/auto.d.ts +10 -0
  23. package/dist/panels/observer/auto.d.ts.map +1 -0
  24. package/dist/panels/observer/auto.js +11 -0
  25. package/dist/panels/observer/auto.js.map +1 -0
  26. package/dist/panels/observer/fs-viewer.d.ts +20 -0
  27. package/dist/panels/observer/fs-viewer.d.ts.map +1 -0
  28. package/dist/panels/observer/fs-viewer.js +536 -0
  29. package/dist/panels/observer/fs-viewer.js.map +1 -0
  30. package/dist/panels/observer/fullscreen.d.ts +24 -0
  31. package/dist/panels/observer/fullscreen.d.ts.map +1 -0
  32. package/dist/panels/observer/fullscreen.js +701 -0
  33. package/dist/panels/observer/fullscreen.js.map +1 -0
  34. package/dist/panels/observer/history.d.ts +41 -0
  35. package/dist/panels/observer/history.d.ts.map +1 -0
  36. package/dist/panels/observer/history.js +307 -0
  37. package/dist/panels/observer/history.js.map +1 -0
  38. package/dist/panels/observer/index.d.ts +33 -0
  39. package/dist/panels/observer/index.d.ts.map +1 -0
  40. package/dist/panels/observer/index.js +128 -0
  41. package/dist/panels/observer/index.js.map +1 -0
  42. package/dist/panels/observer/panel.d.ts +12 -0
  43. package/dist/panels/observer/panel.d.ts.map +1 -0
  44. package/dist/panels/observer/panel.js +461 -0
  45. package/dist/panels/observer/panel.js.map +1 -0
  46. package/dist/panels/observer/render.d.ts +109 -0
  47. package/dist/panels/observer/render.d.ts.map +1 -0
  48. package/dist/panels/observer/render.js +760 -0
  49. package/dist/panels/observer/render.js.map +1 -0
  50. package/dist/panels/observer/state.d.ts +57 -0
  51. package/dist/panels/observer/state.d.ts.map +1 -0
  52. package/dist/panels/observer/state.js +187 -0
  53. package/dist/panels/observer/state.js.map +1 -0
  54. package/dist/panels/observer/styles.d.ts +6 -0
  55. package/dist/panels/observer/styles.d.ts.map +1 -0
  56. package/dist/panels/observer/styles.js +1706 -0
  57. package/dist/panels/observer/styles.js.map +1 -0
  58. package/dist/panels/observer/types.d.ts +102 -0
  59. package/dist/panels/observer/types.d.ts.map +1 -0
  60. package/dist/panels/observer/types.js +5 -0
  61. package/dist/panels/observer/types.js.map +1 -0
  62. package/dist/panels/observer/utils.d.ts +45 -0
  63. package/dist/panels/observer/utils.d.ts.map +1 -0
  64. package/dist/panels/observer/utils.js +101 -0
  65. package/dist/panels/observer/utils.js.map +1 -0
  66. package/dist/panels/recorder/auto.d.ts +10 -0
  67. package/dist/panels/recorder/auto.d.ts.map +1 -0
  68. package/dist/panels/recorder/auto.js +11 -0
  69. package/dist/panels/recorder/auto.js.map +1 -0
  70. package/dist/panels/recorder/capture.d.ts +18 -0
  71. package/dist/panels/recorder/capture.d.ts.map +1 -0
  72. package/dist/panels/recorder/capture.js +218 -0
  73. package/dist/panels/recorder/capture.js.map +1 -0
  74. package/dist/panels/recorder/index.d.ts +41 -0
  75. package/dist/panels/recorder/index.d.ts.map +1 -0
  76. package/dist/panels/recorder/index.js +208 -0
  77. package/dist/panels/recorder/index.js.map +1 -0
  78. package/dist/panels/recorder/panel.d.ts +55 -0
  79. package/dist/panels/recorder/panel.d.ts.map +1 -0
  80. package/dist/panels/recorder/panel.js +284 -0
  81. package/dist/panels/recorder/panel.js.map +1 -0
  82. package/dist/panels/recorder/reverse-selector.d.ts +31 -0
  83. package/dist/panels/recorder/reverse-selector.d.ts.map +1 -0
  84. package/dist/panels/recorder/reverse-selector.js +116 -0
  85. package/dist/panels/recorder/reverse-selector.js.map +1 -0
  86. package/dist/panels/recorder/styles.d.ts +5 -0
  87. package/dist/panels/recorder/styles.d.ts.map +1 -0
  88. package/dist/panels/recorder/styles.js +300 -0
  89. package/dist/panels/recorder/styles.js.map +1 -0
  90. package/dist/panels/recorder/types.d.ts +51 -0
  91. package/dist/panels/recorder/types.d.ts.map +1 -0
  92. package/dist/panels/recorder/types.js +15 -0
  93. package/dist/panels/recorder/types.js.map +1 -0
  94. package/dist/strip.d.ts.map +1 -1
  95. package/dist/strip.js +6 -3
  96. package/dist/strip.js.map +1 -1
  97. package/dist/transform.d.ts.map +1 -1
  98. package/dist/transform.js +5 -2
  99. package/dist/transform.js.map +1 -1
  100. package/dist/virtual-module.d.ts +3 -2
  101. package/dist/virtual-module.d.ts.map +1 -1
  102. package/dist/virtual-module.js +4 -3
  103. package/dist/virtual-module.js.map +1 -1
  104. package/package.json +13 -5
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqsCD,CAAA;AACR,CAAC"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8BD,CAAA;AACR,CAAC"}
@@ -16,6 +16,11 @@ export declare class EventHub {
16
16
  private buffer;
17
17
  /** Register an SSE client connection. */
18
18
  addClient(res: ServerResponse): void;
19
+ /**
20
+ * Sink-compatible alias of `push()` so the hub can be handed to the
21
+ * `@scenetest/receiver` core as a `Sink` (which also uses `clear()`).
22
+ */
23
+ write(event: DashboardEvent): void;
19
24
  /** Broadcast an event to all connected clients and buffer it. */
20
25
  push(event: DashboardEvent): void;
21
26
  /** Clear the buffer (e.g., on new run). */
@@ -1 +1 @@
1
- {"version":3,"file":"event-hub.d.ts","sourceRoot":"","sources":["../src/event-hub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAE1C;;;;;;GAMG;AAEH,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAID,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,MAAM,CAAuB;IAErC,yCAAyC;IACzC,SAAS,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAwBpC,iEAAiE;IACjE,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAcjC,2CAA2C;IAC3C,KAAK,IAAI,IAAI;IAIb,IAAI,WAAW,IAAI,MAAM,CAExB;CACF"}
1
+ {"version":3,"file":"event-hub.d.ts","sourceRoot":"","sources":["../src/event-hub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAE1C;;;;;;GAMG;AAEH,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAID,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,MAAM,CAAuB;IAErC,yCAAyC;IACzC,SAAS,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IA4BpC;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAIlC,iEAAiE;IACjE,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAcjC,2CAA2C;IAC3C,KAAK,IAAI,IAAI;IAIb,IAAI,WAAW,IAAI,MAAM,CAExB;CACF"}
package/dist/event-hub.js CHANGED
@@ -13,6 +13,10 @@ export class EventHub {
13
13
  'Cache-Control': 'no-cache',
14
14
  Connection: 'keep-alive',
15
15
  });
16
+ // Node buffers the response head until the first body write, so with
17
+ // an empty buffer the EventSource would sit pending (no `open` event)
18
+ // until the first run produces an event. Flush immediately.
19
+ res.flushHeaders();
16
20
  // Send buffered events so late joiners catch up
17
21
  for (const event of this.buffer) {
18
22
  res.write(`data: ${JSON.stringify(event)}\n\n`);
@@ -23,6 +27,13 @@ export class EventHub {
23
27
  this.clients.delete(res);
24
28
  });
25
29
  }
30
+ /**
31
+ * Sink-compatible alias of `push()` so the hub can be handed to the
32
+ * `@scenetest/receiver` core as a `Sink` (which also uses `clear()`).
33
+ */
34
+ write(event) {
35
+ this.push(event);
36
+ }
26
37
  /** Broadcast an event to all connected clients and buffer it. */
27
38
  push(event) {
28
39
  // Buffer for late joiners
@@ -1 +1 @@
1
- {"version":3,"file":"event-hub.js","sourceRoot":"","sources":["../src/event-hub.ts"],"names":[],"mappings":"AAgBA,MAAM,eAAe,GAAG,IAAI,CAAA;AAE5B,MAAM,OAAO,QAAQ;IACX,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;IACnC,MAAM,GAAqB,EAAE,CAAA;IAErC,yCAAyC;IACzC,SAAS,CAAC,GAAmB;QAC3B,mEAAmE;QACnE,+DAA+D;QAC/D,+DAA+D;QAC/D,mEAAmE;QACnE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACjB,cAAc,EAAE,mBAAmB;YACnC,eAAe,EAAE,UAAU;YAC3B,UAAU,EAAE,YAAY;SACzB,CAAC,CAAA;QAEF,gDAAgD;QAChD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACjD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAErB,yBAAyB;QACzB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,iEAAiE;IACjE,IAAI,CAAC,KAAqB;QACxB,0BAA0B;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAA;QACnD,CAAC;QAED,uCAAuC;QACvC,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAA;QACjD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;IAClB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"event-hub.js","sourceRoot":"","sources":["../src/event-hub.ts"],"names":[],"mappings":"AAgBA,MAAM,eAAe,GAAG,IAAI,CAAA;AAE5B,MAAM,OAAO,QAAQ;IACX,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;IACnC,MAAM,GAAqB,EAAE,CAAA;IAErC,yCAAyC;IACzC,SAAS,CAAC,GAAmB;QAC3B,mEAAmE;QACnE,+DAA+D;QAC/D,+DAA+D;QAC/D,mEAAmE;QACnE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACjB,cAAc,EAAE,mBAAmB;YACnC,eAAe,EAAE,UAAU;YAC3B,UAAU,EAAE,YAAY;SACzB,CAAC,CAAA;QACF,qEAAqE;QACrE,sEAAsE;QACtE,4DAA4D;QAC5D,GAAG,CAAC,YAAY,EAAE,CAAA;QAElB,gDAAgD;QAChD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACjD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAErB,yBAAyB;QACzB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAqB;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClB,CAAC;IAED,iEAAiE;IACjE,IAAI,CAAC,KAAqB;QACxB,0BAA0B;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAA;QACnD,CAAC;QAED,uCAAuC;QACvC,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAA;QACjD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;IAClB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA;IAC1B,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -24,6 +24,14 @@ export interface ScenetestPluginOptions {
24
24
  * Defaults to false — opt-in via scenetest({ recorder: true }).
25
25
  */
26
26
  recorder?: boolean;
27
+ /**
28
+ * Maximum time in milliseconds a single serverCheck() server function may
29
+ * run in the dev server before it is reported as a failed check. The
30
+ * deadline is also handed to the server function as an AbortSignal
31
+ * (the `signal` helper) so well-behaved checks can stop early.
32
+ * Defaults to 5000.
33
+ */
34
+ serverCheckTimeout?: number;
27
35
  /**
28
36
  * Content Security Policy configuration for dev mode.
29
37
  * Adds CSP headers to protect against XSS and other injection attacks.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAA;AAkIjD,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IAEf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;;;OAMG;IACH,GAAG,CAAC,EACA,OAAO,GACP;QACE;;;WAGG;QACH,OAAO,CAAC,EAAE,OAAO,CAAA;QAEjB;;;;WAIG;QACH,UAAU,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;KACpC,CAAA;CACN;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAUD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,sBAA2B,GAAG,MAAM,CA8NtE;AAGD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAG3C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAEhD,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAA;AAmIjD,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IAEf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B;;;;;;OAMG;IACH,GAAG,CAAC,EACA,OAAO,GACP;QACE;;;WAGG;QACH,OAAO,CAAC,EAAE,OAAO,CAAA;QAEjB;;;;WAIG;QACH,UAAU,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;KACpC,CAAA;CACN;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAUD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,sBAA2B,GAAG,MAAM,CAiOtE;AAGD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAG3C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAEhD,eAAe,SAAS,CAAA"}
package/dist/index.js CHANGED
@@ -11,9 +11,10 @@ import { createScenetestMiddleware } from './middleware.js';
11
11
  // Virtual module IDs for injected dev panel scripts
12
12
  const OBSERVER_VIRTUAL_ID = '/@scenetest/observer.js';
13
13
  const RECORDER_VIRTUAL_ID = '/@scenetest/recorder.js';
14
- // The actual packages these resolve to
15
- const OBSERVER_MODULE = '@scenetest/checks-panel/auto';
16
- const RECORDER_MODULE = '@scenetest/scenes-panel/auto';
14
+ // The panel entry points these resolve to — self-referencing subpath exports
15
+ // of this package (the panel sources live in src/panels/)
16
+ const OBSERVER_MODULE = '@scenetest/vite-plugin/panels/observer';
17
+ const RECORDER_MODULE = '@scenetest/vite-plugin/panels/recorder';
17
18
  function resolveFromPlugin(specifier) {
18
19
  try {
19
20
  return fileURLToPath(import.meta.resolve(specifier));
@@ -180,7 +181,7 @@ export function scenetest(options = {}) {
180
181
  server.middlewares.use(createCspMiddleware(cspDirectives));
181
182
  }
182
183
  // Install the scenetest middleware for handling RPC requests
183
- server.middlewares.use(createScenetestMiddleware(server, root));
184
+ server.middlewares.use(createScenetestMiddleware(server, root, { serverCheckTimeout: options.serverCheckTimeout }));
184
185
  },
185
186
  resolveId(id) {
186
187
  if (id === VIRTUAL_MODULE_ID) {
@@ -190,8 +191,9 @@ export function scenetest(options = {}) {
190
191
  if (id === OBSERVER_VIRTUAL_ID || id === RECORDER_VIRTUAL_ID) {
191
192
  return id;
192
193
  }
193
- // Resolve panel packages for the consumer — handles pnpm strict hoisting
194
- // where transitive deps aren't directly accessible from the project root
194
+ // Resolve panel entries for the consumer — the panels ship inside this
195
+ // package, so a self-referencing resolve always finds them regardless of
196
+ // the consumer's hoisting setup
195
197
  if (id === OBSERVER_MODULE || id === RECORDER_MODULE) {
196
198
  return resolveFromPlugin(id);
197
199
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -21,5 +21,7 @@ export declare function failed(description: string, context?: Record<string, unk
21
21
  */
22
22
  export declare function createScenetestMiddleware(server: ViteDevServer, root: string, options?: {
23
23
  reportsDir?: string;
24
+ jsonl?: boolean | string;
25
+ serverCheckTimeout?: number;
24
26
  }): Connect.NextHandleFunction;
25
27
  //# sourceMappingURL=middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AA0IlD;;GAEG;AACH,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWvG;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACpC,OAAO,CAAC,kBAAkB,CAmT5B"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAkLlD;;GAEG;AACH,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWvG;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWnF;AAgDD;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3F,OAAO,CAAC,kBAAkB,CAqZ5B"}
@@ -1,10 +1,10 @@
1
- import { isEventShaped } from '@scenetest/protocol';
1
+ import { createReceiverApp, toNodeHandler, JsonlSink } from '@scenetest/receiver';
2
2
  import { AsyncLocalStorage } from 'async_hooks';
3
3
  import { spawn } from 'child_process';
4
4
  import fs from 'fs';
5
5
  import path from 'path';
6
6
  import { createRequire } from 'module';
7
- import { RESOLVED_VIRTUAL_MODULE_ID } from './virtual-module.js';
7
+ import { VIRTUAL_MODULE_ID } from './virtual-module.js';
8
8
  import { loadConfig } from './config.js';
9
9
  import { EventHub } from './event-hub.js';
10
10
  import { generateDashboardHtml } from './dashboard.js';
@@ -40,6 +40,39 @@ const VENDOR_MODULES = {
40
40
  * Returns an absolute path or null if the spec can't be resolved.
41
41
  */
42
42
  const vendorRequire = createRequire(import.meta.url);
43
+ /**
44
+ * Workspace packages whose built ESM the dashboard shell loads directly off
45
+ * disk. `/__scenetest/widget/<key>/<file>` serves files from the package's
46
+ * `dist` dir, so the widget's relative imports (`./store.js`) and its
47
+ * bare imports (resolved by the page's importmap) work without a build step.
48
+ */
49
+ const WIDGET_PACKAGES = {
50
+ dashboard: '@scenetest/dashboard',
51
+ protocol: '@scenetest/protocol',
52
+ };
53
+ const widgetDistCache = new Map();
54
+ /**
55
+ * Resolve a widget package's `dist` directory. We resolve its
56
+ * `package.json` (each exposes `"./package.json"`) rather than its entry,
57
+ * because the entry's `exports` map only carries an `import` condition and
58
+ * CJS `require.resolve` can't follow it.
59
+ */
60
+ function resolveWidgetDistDir(key) {
61
+ if (widgetDistCache.has(key))
62
+ return widgetDistCache.get(key) ?? null;
63
+ const pkg = WIDGET_PACKAGES[key];
64
+ let dir = null;
65
+ if (pkg) {
66
+ try {
67
+ dir = path.join(path.dirname(vendorRequire.resolve(`${pkg}/package.json`)), 'dist');
68
+ }
69
+ catch {
70
+ dir = null;
71
+ }
72
+ }
73
+ widgetDistCache.set(key, dir);
74
+ return dir;
75
+ }
43
76
  function resolveVendor(specifier) {
44
77
  // Split "preact/hooks" → ["preact", "./hooks"], "preact" → ["preact", "."]
45
78
  const slash = specifier.indexOf('/');
@@ -164,6 +197,40 @@ export function failed(description, context) {
164
197
  });
165
198
  }
166
199
  }
200
+ /**
201
+ * Default per-serverCheck() execution timeout (ms). Overridable via the
202
+ * middleware's `serverCheckTimeout` option (threaded from the plugin option
203
+ * of the same name).
204
+ */
205
+ const DEFAULT_SERVER_CHECK_TIMEOUT_MS = 5000;
206
+ /**
207
+ * Build the module loader used to evaluate the virtual assertions module and
208
+ * the user's scenetest config.
209
+ *
210
+ * On vite 6+ the Environments API is available: we create a server module
211
+ * runner against the `ssr` environment (once per middleware instance, reused
212
+ * across requests) and import through it. On vite 5 — or any vite build that
213
+ * doesn't export `createServerModuleRunner` — we fall back to the legacy
214
+ * `server.ssrLoadModule`, which the wide peer range still requires.
215
+ */
216
+ async function createServerModuleLoader(server) {
217
+ const ssrEnvironment = server.environments?.ssr;
218
+ if (ssrEnvironment) {
219
+ try {
220
+ // Dynamic import + existence check: on vite 5 the import succeeds but
221
+ // the export is absent, so we must not reference it statically.
222
+ const vite = (await import('vite'));
223
+ if (typeof vite.createServerModuleRunner === 'function') {
224
+ const runner = vite.createServerModuleRunner(ssrEnvironment, { hmr: false });
225
+ return (id) => runner.import(id);
226
+ }
227
+ }
228
+ catch {
229
+ // Fall through to ssrLoadModule
230
+ }
231
+ }
232
+ return (id) => server.ssrLoadModule(id);
233
+ }
167
234
  /**
168
235
  * Create the scenetest middleware for handling RPC requests.
169
236
  *
@@ -183,6 +250,29 @@ export function createScenetestMiddleware(server, root, options = {}) {
183
250
  // Where to look for past JSON run reports. Defaults to the same path the
184
251
  // CLI writes to. Resolved against the consumer's project root.
185
252
  const reportsDir = path.resolve(root, options.reportsDir ?? 'scenetest/.reports');
253
+ // Inbound CLI events go through the framework-agnostic receiver core
254
+ // (@scenetest/receiver). The EventHub doubles as a Sink: write() relays
255
+ // to the SSE clients, clear() resets the ring buffer on run:start.
256
+ // Serving the SSE stream itself stays here — that's a dev-transport
257
+ // concern, not the receiver's.
258
+ const sinks = [eventHub];
259
+ if (options.jsonl) {
260
+ const jsonlPath = typeof options.jsonl === 'string'
261
+ ? path.resolve(root, options.jsonl)
262
+ : path.join(reportsDir, 'events.jsonl');
263
+ sinks.push(new JsonlSink(jsonlPath));
264
+ }
265
+ const receiverHandler = toNodeHandler(createReceiverApp({ sinks }));
266
+ // Per-serverCheck() execution deadline for /__scenetest/run.
267
+ const serverCheckTimeoutMs = options.serverCheckTimeout ?? DEFAULT_SERVER_CHECK_TIMEOUT_MS;
268
+ // Module loader for serverFns + config: created lazily on the first RPC,
269
+ // then reused for every request (the module runner keeps its own cache).
270
+ let moduleLoaderPromise = null;
271
+ const getModuleLoader = () => {
272
+ if (!moduleLoaderPromise)
273
+ moduleLoaderPromise = createServerModuleLoader(server);
274
+ return moduleLoaderPromise;
275
+ };
186
276
  return async (req, res, next) => {
187
277
  // ── Preact app shell (index + runner) ───────────────────
188
278
  // Same HTML for /__scenetest (index) and /__scenetest/runner
@@ -227,6 +317,38 @@ export function createScenetestMiddleware(server, root, options = {}) {
227
317
  }
228
318
  return;
229
319
  }
320
+ // ── Dashboard widget ESM (@scenetest/dashboard + deps) ──
321
+ if (req.method === 'GET' && req.url?.startsWith('/__scenetest/widget/')) {
322
+ const rest = req.url.slice('/__scenetest/widget/'.length).split('?')[0];
323
+ const slash = rest.indexOf('/');
324
+ const key = slash === -1 ? rest : rest.slice(0, slash);
325
+ const relPath = slash === -1 ? '' : rest.slice(slash + 1);
326
+ const distDir = resolveWidgetDistDir(key);
327
+ if (!distDir || !relPath) {
328
+ res.statusCode = 404;
329
+ res.end('// Widget module not found');
330
+ return;
331
+ }
332
+ // Constrain to the package's dist dir — never serve outside it.
333
+ const target = path.resolve(distDir, relPath);
334
+ if (target !== distDir && !target.startsWith(distDir + path.sep)) {
335
+ res.statusCode = 403;
336
+ res.end('// Forbidden');
337
+ return;
338
+ }
339
+ try {
340
+ const code = fs.readFileSync(target, 'utf-8');
341
+ res.statusCode = 200;
342
+ res.setHeader('Content-Type', 'application/javascript; charset=utf-8');
343
+ res.setHeader('Cache-Control', 'no-cache');
344
+ res.end(code);
345
+ }
346
+ catch {
347
+ res.statusCode = 404;
348
+ res.end('// Widget module read failed');
349
+ }
350
+ return;
351
+ }
230
352
  // ── Dashboard page ──────────────────────────────────────
231
353
  if (req.method === 'GET' && req.url === '/__scenetest/dashboard') {
232
354
  res.statusCode = 200;
@@ -276,30 +398,13 @@ export function createScenetestMiddleware(server, root, options = {}) {
276
398
  return;
277
399
  }
278
400
  // ── Receive events from CLI runner ──────────────────────
401
+ // Delegated to the receiver core: envelope-only validation (relay
402
+ // semantics — event types newer than this plugin still fan out),
403
+ // sink clear() on run:start, always 200 so old CLIs never break.
279
404
  if (req.method === 'POST' && req.url === '/__scenetest/events') {
280
- let body = '';
281
- for await (const chunk of req) {
282
- body += chunk;
283
- }
284
- try {
285
- const event = JSON.parse(body);
286
- // The hub is a relay, not a consumer: require only the protocol
287
- // envelope so event types newer than this plugin still fan out
288
- // (a newer CLI paired with an older plugin is the normal case).
289
- if (isEventShaped(event)) {
290
- // Clear buffer on new run so the dashboard starts fresh
291
- if (event.type === 'run:start') {
292
- eventHub.clear();
293
- }
294
- eventHub.push(event);
295
- }
296
- }
297
- catch {
298
- // Ignore malformed events
299
- }
300
- res.statusCode = 200;
301
- res.setHeader('Content-Type', 'application/json');
302
- res.end('{"ok":true}');
405
+ // The receiver app mounts at its own root; strip the prefix.
406
+ req.url = '/events';
407
+ await receiverHandler(req, res);
303
408
  return;
304
409
  }
305
410
  // ── Replay endpoint ──────────────────────────────────────
@@ -395,62 +500,121 @@ export function createScenetestMiddleware(server, root, options = {}) {
395
500
  return;
396
501
  }
397
502
  const { id, title, data } = payload;
503
+ const errorDetail = (err) => (err instanceof Error ? err.message : String(err));
504
+ const failResult = (description, context) => ({
505
+ type: 'fail',
506
+ description,
507
+ result: false,
508
+ timestamp: Date.now(),
509
+ context,
510
+ });
511
+ // Always answer HTTP 200 with a well-formed AssertionRpcResponse:
512
+ // middleware-level failures surface as a normalized fail result so the
513
+ // observer panel shows a failed check instead of an opaque 500.
514
+ const respond = (response) => {
515
+ let body;
516
+ try {
517
+ body = JSON.stringify(response);
518
+ }
519
+ catch (err) {
520
+ // Non-serializable assertion context (circular refs, BigInt, …)
521
+ body = JSON.stringify({
522
+ success: true,
523
+ results: [failResult(`${title}: failed to serialize results`, { error: errorDetail(err) })],
524
+ });
525
+ }
526
+ res.statusCode = 200;
527
+ res.setHeader('Content-Type', 'application/json');
528
+ res.end(body);
529
+ };
530
+ // Load the virtual module containing all serverFns
531
+ let serverFn;
398
532
  try {
399
- // Load the virtual module containing all serverFns
400
- const virtualModule = await server.ssrLoadModule(RESOLVED_VIRTUAL_MODULE_ID);
533
+ const loadModule = await getModuleLoader();
534
+ const virtualModule = await loadModule(VIRTUAL_MODULE_ID);
401
535
  const assertions = virtualModule.assertions;
402
- // Get the serverFn for this ID
403
- const serverFn = assertions[id];
404
- if (!serverFn) {
405
- const response = {
406
- success: false,
407
- results: [],
408
- error: `No serverFn found for id: ${id}`,
409
- };
410
- res.statusCode = 200;
411
- res.setHeader('Content-Type', 'application/json');
412
- res.end(JSON.stringify(response));
413
- return;
414
- }
415
- // Load config to get server functions
416
- const config = await loadConfig(root, (id) => server.ssrLoadModule(id));
417
- const serverContext = (config.server || {});
418
- // Execute serverFn with AsyncLocalStorage for result collection
419
- const results = [];
420
- await assertionStorage.run(results, async () => {
536
+ serverFn = assertions[id];
537
+ }
538
+ catch (err) {
539
+ console.error('[vite-plugin-scenetest] Failed to load server assertions:', err);
540
+ respond({
541
+ success: true,
542
+ results: [failResult(`${title}: failed to load server assertions`, { error: errorDetail(err) })],
543
+ });
544
+ return;
545
+ }
546
+ if (!serverFn) {
547
+ respond({
548
+ success: true,
549
+ results: [failResult(`${title}: no serverCheck() registered for id ${id}`, { id })],
550
+ });
551
+ return;
552
+ }
553
+ const checkFn = serverFn;
554
+ // Load config to get server resources. loadConfig() swallows load errors
555
+ // (warn + empty config), so capture the underlying error here to surface
556
+ // it as a failed check instead of silently running the serverFn against
557
+ // an unexpectedly empty server context.
558
+ let serverContext;
559
+ try {
560
+ let configLoadFailed = false;
561
+ let configLoadError;
562
+ const loadModule = await getModuleLoader();
563
+ const config = await loadConfig(root, async (configId) => {
421
564
  try {
422
- // Pass the should/failed helpers directly to the serverFn
423
- await serverFn(serverContext, data, { should, failed });
565
+ return await loadModule(configId);
424
566
  }
425
567
  catch (err) {
426
- results.push({
427
- type: 'fail',
428
- description: `${title}: serverFn threw an error`,
429
- result: false,
430
- timestamp: Date.now(),
431
- context: { error: err instanceof Error ? err.message : String(err) },
432
- });
568
+ configLoadFailed = true;
569
+ configLoadError = err;
570
+ throw err;
433
571
  }
434
572
  });
435
- const response = {
436
- success: true,
437
- results,
438
- };
439
- res.statusCode = 200;
440
- res.setHeader('Content-Type', 'application/json');
441
- res.end(JSON.stringify(response));
573
+ if (configLoadFailed)
574
+ throw configLoadError;
575
+ serverContext = (config.server || {});
442
576
  }
443
577
  catch (err) {
444
- console.error('[vite-plugin-scenetest] Middleware error:', err);
445
- const response = {
446
- success: false,
447
- results: [],
448
- error: err instanceof Error ? err.message : String(err),
449
- };
450
- res.statusCode = 500;
451
- res.setHeader('Content-Type', 'application/json');
452
- res.end(JSON.stringify(response));
578
+ respond({
579
+ success: true,
580
+ results: [failResult(`${title}: failed to load scenetest config`, { error: errorDetail(err) })],
581
+ });
582
+ return;
583
+ }
584
+ // Execute the serverFn with AsyncLocalStorage for result collection.
585
+ // Each invocation gets an AbortSignal that fires at the deadline; since
586
+ // user code is free to ignore it, the invocation is also raced against
587
+ // the same deadline so the HTTP response always returns.
588
+ const results = [];
589
+ const signal = AbortSignal.timeout(serverCheckTimeoutMs);
590
+ let timedOut = false;
591
+ await assertionStorage.run(results, async () => {
592
+ let timer;
593
+ const deadline = new Promise((resolve) => {
594
+ timer = setTimeout(() => {
595
+ timedOut = true;
596
+ resolve();
597
+ }, serverCheckTimeoutMs);
598
+ });
599
+ // Pass the should/failed helpers (and the abort signal) to the serverFn
600
+ const invocation = Promise.resolve().then(() => checkFn(serverContext, data, { should, failed, signal }));
601
+ // A serverFn that rejects after the deadline must not crash the dev
602
+ // server with an unhandled rejection.
603
+ invocation.catch(() => { });
604
+ try {
605
+ await Promise.race([invocation, deadline]);
606
+ }
607
+ catch (err) {
608
+ results.push(failResult(`${title}: serverFn threw an error`, { error: errorDetail(err) }));
609
+ }
610
+ finally {
611
+ clearTimeout(timer);
612
+ }
613
+ });
614
+ if (timedOut) {
615
+ results.push(failResult(`${title}: serverCheck timed out after ${serverCheckTimeoutMs}ms`));
453
616
  }
617
+ respond({ success: true, results });
454
618
  };
455
619
  }
456
620
  function listRunReports(dir) {