screenwright 0.1.11 → 0.1.13

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 (55) hide show
  1. package/dist/src/commands/compose.d.ts.map +1 -1
  2. package/dist/src/commands/compose.js +8 -1
  3. package/dist/src/commands/compose.js.map +1 -1
  4. package/dist/src/commands/config.d.ts.map +1 -1
  5. package/dist/src/commands/config.js +56 -75
  6. package/dist/src/commands/config.js.map +1 -1
  7. package/dist/src/commands/init.d.ts.map +1 -1
  8. package/dist/src/commands/init.js +52 -23
  9. package/dist/src/commands/init.js.map +1 -1
  10. package/dist/src/commands/preview.d.ts.map +1 -1
  11. package/dist/src/commands/preview.js +8 -2
  12. package/dist/src/commands/preview.js.map +1 -1
  13. package/dist/src/composition/DemoVideo.d.ts.map +1 -1
  14. package/dist/src/composition/DemoVideo.js +17 -2
  15. package/dist/src/composition/DemoVideo.js.map +1 -1
  16. package/dist/src/composition/frame-lookup.d.ts +8 -0
  17. package/dist/src/composition/frame-lookup.d.ts.map +1 -0
  18. package/dist/src/composition/frame-lookup.js +26 -0
  19. package/dist/src/composition/frame-lookup.js.map +1 -0
  20. package/dist/src/composition/remotion-root.js +1 -1
  21. package/dist/src/composition/remotion-root.js.map +1 -1
  22. package/dist/src/composition/render.d.ts.map +1 -1
  23. package/dist/src/composition/render.js +6 -4
  24. package/dist/src/composition/render.js.map +1 -1
  25. package/dist/src/config/config-schema.d.ts +5 -2
  26. package/dist/src/config/config-schema.d.ts.map +1 -1
  27. package/dist/src/config/config-schema.js +1 -0
  28. package/dist/src/config/config-schema.js.map +1 -1
  29. package/dist/src/config/defaults.d.ts.map +1 -1
  30. package/dist/src/config/defaults.js +1 -0
  31. package/dist/src/config/defaults.js.map +1 -1
  32. package/dist/src/index.d.ts +1 -1
  33. package/dist/src/index.d.ts.map +1 -1
  34. package/dist/src/runtime/action-helpers.d.ts +2 -0
  35. package/dist/src/runtime/action-helpers.d.ts.map +1 -1
  36. package/dist/src/runtime/action-helpers.js +33 -13
  37. package/dist/src/runtime/action-helpers.js.map +1 -1
  38. package/dist/src/runtime/instrumented-page.d.ts +2 -1
  39. package/dist/src/runtime/instrumented-page.d.ts.map +1 -1
  40. package/dist/src/runtime/instrumented-page.js +51 -10
  41. package/dist/src/runtime/instrumented-page.js.map +1 -1
  42. package/dist/src/runtime/timeline-collector.d.ts +5 -1
  43. package/dist/src/runtime/timeline-collector.d.ts.map +1 -1
  44. package/dist/src/runtime/timeline-collector.js +13 -0
  45. package/dist/src/runtime/timeline-collector.js.map +1 -1
  46. package/dist/src/timeline/schema.d.ts +80 -26
  47. package/dist/src/timeline/schema.d.ts.map +1 -1
  48. package/dist/src/timeline/schema.js +7 -2
  49. package/dist/src/timeline/schema.js.map +1 -1
  50. package/dist/src/timeline/types.d.ts +6 -1
  51. package/dist/src/timeline/types.d.ts.map +1 -1
  52. package/dist/src/version.d.ts +1 -1
  53. package/dist/src/version.js +1 -1
  54. package/dist/tsconfig.tsbuildinfo +1 -1
  55. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/composition/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAU9C;;;;GAIG;AACH,SAAS,aAAa,CAAC,QAAkB;IACvC,OAAO;QACL,GAAG,QAAQ;QACX,QAAQ,EAAE;YACR,GAAG,QAAQ,CAAC,QAAQ;YACpB,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;SACjD;QACD,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC9B,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC1C,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;YACpD,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAmB;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAEvF,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC;QAC9B,UAAU;QACV,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC;QAC1C,QAAQ,EAAE,UAAU;QACpB,EAAE,EAAE,WAAW;QACf,UAAU,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE;KACzC,CAAC,CAAC;IAEH,MAAM,WAAW,CAAC;QAChB,WAAW;QACX,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,MAAM;QACb,cAAc,EAAE,IAAI,CAAC,UAAU;QAC/B,UAAU,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE;KACzC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/composition/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAU9C;;;;GAIG;AACH,SAAS,aAAa,CAAC,QAAkB;IACvC,MAAM,IAAI,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACtC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,4EAA4E;IAC5E,OAAO;QACL,GAAG,QAAQ;QACX,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC9B,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC1C,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;YACpD,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAmB;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAEvF,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC;QAC9B,UAAU;QACV,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC;QAC1C,QAAQ,EAAE,UAAU;QACpB,EAAE,EAAE,WAAW;QACf,UAAU,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE;KACzC,CAAC,CAAC;IAEH,MAAM,WAAW,CAAC;QAChB,WAAW;QACX,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,MAAM;QACb,cAAc,EAAE,IAAI,CAAC,UAAU;QAC/B,UAAU,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE;KACzC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC"}
@@ -20,6 +20,7 @@ export declare const configSchema: z.ZodObject<{
20
20
  ttsProvider: z.ZodDefault<z.ZodEnum<["piper", "openai"]>>;
21
21
  openaiVoice: z.ZodDefault<z.ZodEnum<["alloy", "ash", "ballad", "cedar", "coral", "echo", "fable", "marin", "nova", "onyx", "sage", "shimmer", "verse"]>>;
22
22
  pacing: z.ZodDefault<z.ZodEnum<["fast", "normal", "cinematic"]>>;
23
+ captureMode: z.ZodDefault<z.ZodEnum<["frames", "video"]>>;
23
24
  }, "strip", z.ZodTypeAny, {
24
25
  voice: string;
25
26
  resolution: {
@@ -31,8 +32,9 @@ export declare const configSchema: z.ZodObject<{
31
32
  colorScheme: "light" | "dark";
32
33
  timezoneId: string;
33
34
  ttsProvider: "piper" | "openai";
34
- openaiVoice: "nova" | "alloy" | "ash" | "ballad" | "cedar" | "coral" | "echo" | "fable" | "marin" | "onyx" | "sage" | "shimmer" | "verse";
35
+ openaiVoice: "alloy" | "ash" | "ballad" | "cedar" | "coral" | "echo" | "fable" | "marin" | "nova" | "onyx" | "sage" | "shimmer" | "verse";
35
36
  pacing: "normal" | "fast" | "cinematic";
37
+ captureMode: "frames" | "video";
36
38
  }, {
37
39
  voice?: string | undefined;
38
40
  resolution?: {
@@ -44,8 +46,9 @@ export declare const configSchema: z.ZodObject<{
44
46
  colorScheme?: "light" | "dark" | undefined;
45
47
  timezoneId?: string | undefined;
46
48
  ttsProvider?: "piper" | "openai" | undefined;
47
- openaiVoice?: "nova" | "alloy" | "ash" | "ballad" | "cedar" | "coral" | "echo" | "fable" | "marin" | "onyx" | "sage" | "shimmer" | "verse" | undefined;
49
+ openaiVoice?: "alloy" | "ash" | "ballad" | "cedar" | "coral" | "echo" | "fable" | "marin" | "nova" | "onyx" | "sage" | "shimmer" | "verse" | undefined;
48
50
  pacing?: "normal" | "fast" | "cinematic" | undefined;
51
+ captureMode?: "frames" | "video" | undefined;
49
52
  }>;
50
53
  export type ScreenwrightConfig = z.infer<typeof configSchema>;
51
54
  //# sourceMappingURL=config-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY,6HAGf,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAavB,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY,6HAGf,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcvB,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -16,5 +16,6 @@ export const configSchema = z.object({
16
16
  ttsProvider: z.enum(['piper', 'openai']).default('piper'),
17
17
  openaiVoice: z.enum(openaiVoices).default('nova'),
18
18
  pacing: z.enum(['fast', 'normal', 'cinematic']).default('normal'),
19
+ captureMode: z.enum(['frames', 'video']).default('frames'),
19
20
  });
20
21
  //# sourceMappingURL=config-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IAClD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;CACpD,CAAC;AAIX,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACpC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACzD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CAClE,CAAC,CAAC"}
1
+ {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IAClD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;CACpD,CAAC;AAIX,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACpC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACzD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CAC3D,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,eAAO,MAAM,aAAa,EAAE,kBAU3B,CAAC;AAEF,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAOlE"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,eAAO,MAAM,aAAa,EAAE,kBAW3B,CAAC;AAEF,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAOlE"}
@@ -8,6 +8,7 @@ export const defaultConfig = {
8
8
  ttsProvider: 'piper',
9
9
  openaiVoice: 'nova',
10
10
  pacing: 'normal',
11
+ captureMode: 'frames',
11
12
  };
12
13
  export function serializeConfig(config) {
13
14
  return `import type { ScreenwrightConfig } from 'screenwright';
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/config/defaults.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAuB;IAC/C,KAAK,EAAE,kBAAkB;IACzB,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IACxC,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,OAAO;IACpB,UAAU,EAAE,kBAAkB;IAC9B,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,MAA0B;IACxD,OAAO;;qCAE4B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;;;CAGnE,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/config/defaults.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAuB;IAC/C,KAAK,EAAE,kBAAkB;IACzB,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IACxC,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,OAAO;IACpB,UAAU,EAAE,kBAAkB;IAC9B,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,QAAQ;CACtB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,MAA0B;IACxD,OAAO;;qCAE4B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;;;CAGnE,CAAC;AACF,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export type { ScreenwrightHelpers, ActionOptions, Pacing, HelpersOptions } from './runtime/action-helpers.js';
2
2
  export { getPacingMultiplier, getNarrationOverlap } from './runtime/action-helpers.js';
3
3
  export type { ScenarioFn } from './runtime/instrumented-page.js';
4
- export type { Timeline, TimelineEvent, SceneEvent, ActionEvent, CursorTargetEvent, NarrationEvent, WaitEvent } from './timeline/types.js';
4
+ export type { Timeline, TimelineEvent, SceneEvent, ActionEvent, CursorTargetEvent, NarrationEvent, WaitEvent, FrameEntry } from './timeline/types.js';
5
5
  export type { ScreenwrightConfig, OpenaiVoice } from './config/config-schema.js';
6
6
  export { openaiVoices } from './config/config-schema.js';
7
7
  export { validateScenarioCode, extractScenarioCode } from './generator/scenario-generator.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC9G,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvF,YAAY,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC1I,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC9F,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC9G,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvF,YAAY,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtJ,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC9F,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC"}
@@ -18,6 +18,8 @@ export type Pacing = 'fast' | 'normal' | 'cinematic';
18
18
  export interface HelpersOptions {
19
19
  pacingMultiplier?: number;
20
20
  narrationOverlap?: number;
21
+ onFrame?: () => Promise<void>;
22
+ virtualTime?: boolean;
21
23
  }
22
24
  export declare function getPacingMultiplier(pacing: Pacing): number;
23
25
  export declare function getNarrationOverlap(pacing: Pacing): number;
@@ -1 +1 @@
1
- {"version":3,"file":"action-helpers.d.ts","sourceRoot":"","sources":["../../../src/runtime/action-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAeD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAOD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,SAAM,GAAG,MAAM,CAI5H;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,mBAAmB,CAuJlH"}
1
+ {"version":3,"file":"action-helpers.d.ts","sourceRoot":"","sources":["../../../src/runtime/action-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAgBD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAOD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,SAAM,GAAG,MAAM,CAI5H;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,mBAAmB,CAyKlH"}
@@ -4,16 +4,17 @@ const PAGE_LOAD_WAIT_MS = 600;
4
4
  const CHAR_TYPE_DELAY_MS = 30;
5
5
  const CURSOR_MOVE_MIN_MS = 200;
6
6
  const CURSOR_MOVE_MAX_MS = 800;
7
+ const SETTLE_MS = 150;
7
8
  const NARRATION_OVERLAP = {
8
- fast: 0.4,
9
- normal: 0.6,
9
+ fast: 0.15,
10
+ normal: 0.5,
10
11
  cinematic: 0.85,
11
12
  };
12
13
  export function getPacingMultiplier(pacing) {
13
14
  switch (pacing) {
14
- case 'fast': return 0.5;
15
- case 'normal': return 1.0;
16
- case 'cinematic': return 1.5;
15
+ case 'fast': return 0.15;
16
+ case 'normal': return 0.5;
17
+ case 'cinematic': return 1.0;
17
18
  }
18
19
  }
19
20
  export function getNarrationOverlap(pacing) {
@@ -31,17 +32,30 @@ export function calculateMoveDuration(fromX, fromY, toX, toY, pacingMultiplier =
31
32
  export function createHelpers(page, collector, opts) {
32
33
  const pm = opts?.pacingMultiplier ?? 1.0;
33
34
  const narrationOverlap = opts?.narrationOverlap ?? 0.6;
35
+ const onFrame = opts?.onFrame;
36
+ const virtual = opts?.virtualTime ?? false;
34
37
  let lastX = 640;
35
38
  let lastY = 360;
36
39
  function scaled(ms) {
37
40
  return Math.round(ms * pm);
38
41
  }
42
+ async function timedWait(ms, settle) {
43
+ if (virtual) {
44
+ collector.advance(ms);
45
+ const settleMs = settle ?? SETTLE_MS;
46
+ if (settleMs > 0)
47
+ await page.waitForTimeout(settleMs);
48
+ }
49
+ else {
50
+ await page.waitForTimeout(ms);
51
+ }
52
+ }
39
53
  async function emitNarration(text) {
40
54
  const estimatedMs = estimateNarrationMs(text);
41
55
  const actualWaitMs = Math.round(estimatedMs * narrationOverlap * pm);
42
56
  collector.emit({ type: 'narration', text });
43
57
  collector.emit({ type: 'wait', durationMs: actualWaitMs, reason: 'narration_sync' });
44
- await page.waitForTimeout(actualWaitMs);
58
+ await timedWait(actualWaitMs, 0);
45
59
  }
46
60
  async function moveCursorTo(toX, toY) {
47
61
  const moveDurationMs = calculateMoveDuration(lastX, lastY, toX, toY, pm);
@@ -52,7 +66,7 @@ export function createHelpers(page, collector, opts) {
52
66
  moveDurationMs,
53
67
  easing: 'bezier',
54
68
  });
55
- await page.waitForTimeout(moveDurationMs);
69
+ await timedWait(moveDurationMs, 0);
56
70
  lastX = toX;
57
71
  lastY = toY;
58
72
  }
@@ -80,9 +94,10 @@ export function createHelpers(page, collector, opts) {
80
94
  boundingBox: null,
81
95
  });
82
96
  await page.goto(url, { waitUntil: 'domcontentloaded' });
97
+ await onFrame?.();
83
98
  const waitMs = scaled(PAGE_LOAD_WAIT_MS);
84
99
  collector.emit({ type: 'wait', durationMs: waitMs, reason: 'page_load' });
85
- await page.waitForTimeout(waitMs);
100
+ await timedWait(waitMs);
86
101
  },
87
102
  async click(selector, actionOpts) {
88
103
  if (actionOpts?.narration)
@@ -99,7 +114,8 @@ export function createHelpers(page, collector, opts) {
99
114
  boundingBox: box ? { x: Math.round(box.x), y: Math.round(box.y), width: Math.round(box.width), height: Math.round(box.height) } : null,
100
115
  });
101
116
  await locator.click();
102
- await page.waitForTimeout(scaled(POST_ACTION_DELAY_MS));
117
+ await onFrame?.();
118
+ await timedWait(scaled(POST_ACTION_DELAY_MS));
103
119
  },
104
120
  async fill(selector, value, actionOpts) {
105
121
  if (actionOpts?.narration)
@@ -121,7 +137,8 @@ export function createHelpers(page, collector, opts) {
121
137
  for (const char of value) {
122
138
  await page.keyboard.type(char, { delay: charDelay });
123
139
  }
124
- await page.waitForTimeout(scaled(POST_ACTION_DELAY_MS));
140
+ await onFrame?.();
141
+ await timedWait(scaled(POST_ACTION_DELAY_MS));
125
142
  },
126
143
  async hover(selector, actionOpts) {
127
144
  if (actionOpts?.narration)
@@ -138,7 +155,8 @@ export function createHelpers(page, collector, opts) {
138
155
  boundingBox: box ? { x: Math.round(box.x), y: Math.round(box.y), width: Math.round(box.width), height: Math.round(box.height) } : null,
139
156
  });
140
157
  await locator.hover();
141
- await page.waitForTimeout(scaled(POST_ACTION_DELAY_MS));
158
+ await onFrame?.();
159
+ await timedWait(scaled(POST_ACTION_DELAY_MS));
142
160
  },
143
161
  async press(key, actionOpts) {
144
162
  if (actionOpts?.narration)
@@ -151,11 +169,13 @@ export function createHelpers(page, collector, opts) {
151
169
  boundingBox: null,
152
170
  });
153
171
  await page.keyboard.press(key);
154
- await page.waitForTimeout(scaled(POST_ACTION_DELAY_MS));
172
+ await onFrame?.();
173
+ await timedWait(scaled(POST_ACTION_DELAY_MS));
155
174
  },
156
175
  async wait(ms) {
157
176
  collector.emit({ type: 'wait', durationMs: ms, reason: 'pacing' });
158
- await page.waitForTimeout(ms);
177
+ await onFrame?.();
178
+ await timedWait(ms, 0);
159
179
  },
160
180
  async narrate(text) {
161
181
  await emitNarration(text);
@@ -1 +1 @@
1
- {"version":3,"file":"action-helpers.js","sourceRoot":"","sources":["../../../src/runtime/action-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-helpers.js","sourceRoot":"","sources":["../../../src/runtime/action-helpers.ts"],"names":[],"mappings":"AA4BA,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,MAAM,iBAAiB,GAA2B;IAChD,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,GAAG;IACX,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;QACzB,KAAK,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC;QAC1B,KAAK,WAAW,CAAC,CAAC,OAAO,GAAG,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,KAAa,EAAE,GAAW,EAAE,GAAW,EAAE,gBAAgB,GAAG,GAAG;IAClH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,gBAAgB,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAU,EAAE,SAA4B,EAAE,IAAqB;IAC3F,MAAM,EAAE,GAAG,IAAI,EAAE,gBAAgB,IAAI,GAAG,CAAC;IACzC,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,GAAG,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,EAAE,WAAW,IAAI,KAAK,CAAC;IAE3C,IAAI,KAAK,GAAG,GAAG,CAAC;IAChB,IAAI,KAAK,GAAG,GAAG,CAAC;IAEhB,SAAS,MAAM,CAAC,EAAU;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,UAAU,SAAS,CAAC,EAAU,EAAE,MAAe;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,SAAS,CAAC;YACrC,IAAI,QAAQ,GAAG,CAAC;gBAAE,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,IAAY;QACvC,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,gBAAgB,GAAG,EAAE,CAAC,CAAC;QACrE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAyB,EAAE,CAAC,CAAC;QAC9F,MAAM,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,GAAW;QAClD,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACzE,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;YAC1B,GAAG,EAAE,GAAG;YACR,cAAc;YACd,MAAM,EAAE,QAAiB;SAC1B,CAAC,CAAC;QACH,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACnC,KAAK,GAAG,GAAG,CAAC;QACZ,KAAK,GAAG,GAAG,CAAC;IACd,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,QAAgB;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/C,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;IACzF,CAAC;IAED,OAAO;QACL,IAAI;QAEJ,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW;YAC5B,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU;YAC5B,IAAI,UAAU,EAAE,SAAS;gBAAE,MAAM,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAErE,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,GAAG;gBACb,UAAU,EAAE,CAAC;gBACb,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACxD,MAAM,OAAO,EAAE,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACzC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAoB,EAAE,CAAC,CAAC;YACnF,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU;YAC9B,IAAI,UAAU,EAAE,SAAS;gBAAE,MAAM,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAErE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,OAAO;gBACf,QAAQ;gBACR,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;aACvI,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,OAAO,EAAE,EAAE,CAAC;YAClB,MAAM,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU;YACpC,IAAI,UAAU,EAAE,SAAS;gBAAE,MAAM,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAErE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YAEtB,MAAM,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC7C,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,MAAM;gBACd,QAAQ;gBACR,KAAK;gBACL,UAAU,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS;gBACpC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;aACvI,CAAC,CAAC;YAEH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,OAAO,EAAE,EAAE,CAAC;YAClB,MAAM,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU;YAC9B,IAAI,UAAU,EAAE,SAAS;gBAAE,MAAM,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAErE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,OAAO;gBACf,QAAQ;gBACR,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;aACvI,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,OAAO,EAAE,EAAE,CAAC;YAClB,MAAM,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU;YACzB,IAAI,UAAU,EAAE,SAAS;gBAAE,MAAM,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAErE,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,GAAG;gBACb,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,OAAO,EAAE,EAAE,CAAC;YAClB,MAAM,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE;YACX,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,QAAiB,EAAE,CAAC,CAAC;YAC5E,MAAM,OAAO,EAAE,EAAE,CAAC;YAClB,MAAM,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -12,10 +12,11 @@ export interface RunOptions {
12
12
  locale?: string;
13
13
  timezoneId?: string;
14
14
  pacing?: Pacing;
15
+ captureMode?: 'frames' | 'video';
15
16
  }
16
17
  export interface RunResult {
17
18
  timeline: Timeline;
18
- videoFile: string;
19
+ videoFile?: string;
19
20
  tempDir: string;
20
21
  }
21
22
  export declare function runScenario(scenario: ScenarioFn, opts: RunOptions): Promise<RunResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"instrumented-page.d.ts","sourceRoot":"","sources":["../../../src/runtime/instrumented-page.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAA2D,KAAK,mBAAmB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAErI,MAAM,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CA+D5F"}
1
+ {"version":3,"file":"instrumented-page.d.ts","sourceRoot":"","sources":["../../../src/runtime/instrumented-page.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAA2D,KAAK,mBAAmB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAErI,MAAM,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CA6G5F"}
@@ -1,5 +1,5 @@
1
1
  import { chromium } from 'playwright';
2
- import { mkdtemp, writeFile } from 'node:fs/promises';
2
+ import { mkdtemp, writeFile, mkdir } from 'node:fs/promises';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { join } from 'node:path';
5
5
  import { TimelineCollector } from './timeline-collector.js';
@@ -7,17 +7,21 @@ import { createHelpers, getPacingMultiplier, getNarrationOverlap } from './actio
7
7
  export async function runScenario(scenario, opts) {
8
8
  const viewport = opts.viewport ?? { width: 1280, height: 720 };
9
9
  const tempDir = await mkdtemp(join(tmpdir(), 'screenwright-'));
10
+ const captureMode = opts.captureMode ?? 'frames';
10
11
  const browser = await chromium.launch({
11
12
  args: ['--disable-gpu', '--font-render-hinting=none', '--disable-lcd-text'],
12
13
  });
13
- const context = await browser.newContext({
14
+ const contextOpts = {
14
15
  viewport,
15
16
  deviceScaleFactor: 1,
16
17
  colorScheme: opts.colorScheme ?? 'light',
17
18
  locale: opts.locale ?? 'en-US',
18
19
  timezoneId: opts.timezoneId ?? 'America/New_York',
19
- recordVideo: { dir: tempDir, size: viewport },
20
- });
20
+ };
21
+ if (captureMode === 'video') {
22
+ contextOpts.recordVideo = { dir: tempDir, size: viewport };
23
+ }
24
+ const context = await browser.newContext(contextOpts);
21
25
  // Hide the native cursor so only the Screenwright overlay cursor appears
22
26
  await context.addInitScript(`
23
27
  const s = document.createElement('style');
@@ -26,17 +30,53 @@ export async function runScenario(scenario, opts) {
26
30
  `);
27
31
  const page = await context.newPage();
28
32
  const collector = new TimelineCollector();
29
- collector.start();
30
33
  const pacing = opts.pacing ?? 'normal';
34
+ const pm = getPacingMultiplier(pacing);
35
+ const narrationOverlap = getNarrationOverlap(pacing);
36
+ let frameManifest;
37
+ let onFrame;
38
+ let virtualTime = false;
39
+ if (captureMode === 'frames') {
40
+ const framesDir = join(tempDir, 'frames');
41
+ await mkdir(framesDir, { recursive: true });
42
+ frameManifest = [];
43
+ let frameCounter = 0;
44
+ collector.enableVirtualTime();
45
+ virtualTime = true;
46
+ onFrame = async () => {
47
+ try {
48
+ frameCounter++;
49
+ const filename = `frame-${String(frameCounter).padStart(6, '0')}.jpg`;
50
+ const filePath = join(framesDir, filename);
51
+ await page.screenshot({ type: 'jpeg', quality: 90, path: filePath });
52
+ frameManifest.push({
53
+ timestampMs: collector.elapsed(),
54
+ file: `frames/${filename}`,
55
+ });
56
+ }
57
+ catch {
58
+ // Skip frame on failure, continue recording
59
+ }
60
+ };
61
+ }
62
+ collector.start();
31
63
  const sw = createHelpers(page, collector, {
32
- pacingMultiplier: getPacingMultiplier(pacing),
33
- narrationOverlap: getNarrationOverlap(pacing),
64
+ pacingMultiplier: pm,
65
+ narrationOverlap,
66
+ onFrame,
67
+ virtualTime,
34
68
  });
35
69
  await scenario(sw);
36
- // Close page to finalize video
70
+ // Capture one final frame after scenario completes
71
+ if (onFrame)
72
+ await onFrame();
73
+ // Close page to finalize video (only matters in video mode)
37
74
  await page.close();
38
- const video = page.video();
39
- const videoFile = video ? await video.path() : '';
75
+ let videoFile;
76
+ if (captureMode === 'video') {
77
+ const video = page.video();
78
+ videoFile = video ? await video.path() : undefined;
79
+ }
40
80
  const videoDurationMs = collector.getEvents().reduce((max, e) => {
41
81
  const ts = e.timestampMs + ('durationMs' in e ? (e.durationMs ?? 0) : 0);
42
82
  return Math.max(max, ts);
@@ -48,6 +88,7 @@ export async function runScenario(scenario, opts) {
48
88
  viewport,
49
89
  videoDurationMs,
50
90
  videoFile,
91
+ frameManifest,
51
92
  });
52
93
  const timelinePath = join(tempDir, 'timeline.json');
53
94
  await writeFile(timelinePath, JSON.stringify(timeline, null, 2));
@@ -1 +1 @@
1
- {"version":3,"file":"instrumented-page.js","sourceRoot":"","sources":["../../../src/runtime/instrumented-page.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instrumented-page.js","sourceRoot":"","sources":["../../../src/runtime/instrumented-page.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,12 @@ export declare class TimelineCollector {
9
9
  private events;
10
10
  private counter;
11
11
  private startTime;
12
+ private virtualMode;
13
+ private virtualTime;
12
14
  start(): void;
13
- private elapsed;
15
+ enableVirtualTime(): void;
16
+ advance(ms: number): void;
17
+ elapsed(): number;
14
18
  nextId(): string;
15
19
  emit(event: PartialEvent): string;
16
20
  getEvents(): readonly TimelineEvent[];
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-collector.d.ts","sourceRoot":"","sources":["../../../src/runtime/timeline-collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGtF,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAEhG,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,SAAS,CAAuB;IAExC,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,OAAO;IAKf,MAAM,IAAI,MAAM;IAIhB,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;IAQjC,SAAS,IAAI,SAAS,aAAa,EAAE;IAIrC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,QAAQ;CAc/C"}
1
+ {"version":3,"file":"timeline-collector.d.ts","sourceRoot":"","sources":["../../../src/runtime/timeline-collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGtF,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAEhG,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAK;IAExB,KAAK,IAAI,IAAI;IAIb,iBAAiB,IAAI,IAAI;IAKzB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKzB,OAAO,IAAI,MAAM;IAMjB,MAAM,IAAI,MAAM;IAIhB,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;IAQjC,SAAS,IAAI,SAAS,aAAa,EAAE;IAIrC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,QAAQ;CAc/C"}
@@ -3,12 +3,25 @@ export class TimelineCollector {
3
3
  events = [];
4
4
  counter = 0;
5
5
  startTime = null;
6
+ virtualMode = false;
7
+ virtualTime = 0;
6
8
  start() {
7
9
  this.startTime = performance.now();
8
10
  }
11
+ enableVirtualTime() {
12
+ this.virtualMode = true;
13
+ this.virtualTime = 0;
14
+ }
15
+ advance(ms) {
16
+ if (!this.virtualMode)
17
+ return;
18
+ this.virtualTime += ms;
19
+ }
9
20
  elapsed() {
10
21
  if (this.startTime === null)
11
22
  throw new Error('TimelineCollector not started');
23
+ if (this.virtualMode)
24
+ return Math.round(this.virtualTime);
12
25
  return Math.round(performance.now() - this.startTime);
13
26
  }
14
27
  nextId() {
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-collector.js","sourceRoot":"","sources":["../../../src/runtime/timeline-collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvD,MAAM,OAAO,iBAAiB;IACpB,MAAM,GAAoB,EAAE,CAAC;IAC7B,OAAO,GAAG,CAAC,CAAC;IACZ,SAAS,GAAkB,IAAI,CAAC;IAExC,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACrC,CAAC;IAEO,OAAO;QACb,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,MAAM;QACJ,OAAO,MAAM,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,KAAmB;QACtB,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,WAAW,EAAmB,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,QAA0B;QACjC,MAAM,QAAQ,GAAa;YACzB,OAAO,EAAE,CAAC;YACV,QAAQ;YACR,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;SACzB,CAAC;QAEF,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"timeline-collector.js","sourceRoot":"","sources":["../../../src/runtime/timeline-collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvD,MAAM,OAAO,iBAAiB;IACpB,MAAM,GAAoB,EAAE,CAAC;IAC7B,OAAO,GAAG,CAAC,CAAC;IACZ,SAAS,GAAkB,IAAI,CAAC;IAChC,WAAW,GAAG,KAAK,CAAC;IACpB,WAAW,GAAG,CAAC,CAAC;IAExB,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACrC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC9E,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,MAAM;QACJ,OAAO,MAAM,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,KAAmB;QACtB,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,WAAW,EAAmB,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,QAA0B;QACjC,MAAM,QAAQ,GAAa;YACzB,OAAO,EAAE,CAAC;YACV,QAAQ;YACR,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;SACzB,CAAC;QAEF,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}