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.
- package/dist/src/commands/compose.d.ts.map +1 -1
- package/dist/src/commands/compose.js +8 -1
- package/dist/src/commands/compose.js.map +1 -1
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +56 -75
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +52 -23
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/preview.d.ts.map +1 -1
- package/dist/src/commands/preview.js +8 -2
- package/dist/src/commands/preview.js.map +1 -1
- package/dist/src/composition/DemoVideo.d.ts.map +1 -1
- package/dist/src/composition/DemoVideo.js +17 -2
- package/dist/src/composition/DemoVideo.js.map +1 -1
- package/dist/src/composition/frame-lookup.d.ts +8 -0
- package/dist/src/composition/frame-lookup.d.ts.map +1 -0
- package/dist/src/composition/frame-lookup.js +26 -0
- package/dist/src/composition/frame-lookup.js.map +1 -0
- package/dist/src/composition/remotion-root.js +1 -1
- package/dist/src/composition/remotion-root.js.map +1 -1
- package/dist/src/composition/render.d.ts.map +1 -1
- package/dist/src/composition/render.js +6 -4
- package/dist/src/composition/render.js.map +1 -1
- package/dist/src/config/config-schema.d.ts +5 -2
- package/dist/src/config/config-schema.d.ts.map +1 -1
- package/dist/src/config/config-schema.js +1 -0
- package/dist/src/config/config-schema.js.map +1 -1
- package/dist/src/config/defaults.d.ts.map +1 -1
- package/dist/src/config/defaults.js +1 -0
- package/dist/src/config/defaults.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/runtime/action-helpers.d.ts +2 -0
- package/dist/src/runtime/action-helpers.d.ts.map +1 -1
- package/dist/src/runtime/action-helpers.js +33 -13
- package/dist/src/runtime/action-helpers.js.map +1 -1
- package/dist/src/runtime/instrumented-page.d.ts +2 -1
- package/dist/src/runtime/instrumented-page.d.ts.map +1 -1
- package/dist/src/runtime/instrumented-page.js +51 -10
- package/dist/src/runtime/instrumented-page.js.map +1 -1
- package/dist/src/runtime/timeline-collector.d.ts +5 -1
- package/dist/src/runtime/timeline-collector.d.ts.map +1 -1
- package/dist/src/runtime/timeline-collector.js +13 -0
- package/dist/src/runtime/timeline-collector.js.map +1 -1
- package/dist/src/timeline/schema.d.ts +80 -26
- package/dist/src/timeline/schema.d.ts.map +1 -1
- package/dist/src/timeline/schema.js +7 -2
- package/dist/src/timeline/schema.js.map +1 -1
- package/dist/src/timeline/types.d.ts +6 -1
- package/dist/src/timeline/types.d.ts.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- 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,
|
|
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: "
|
|
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?: "
|
|
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
|
|
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;
|
|
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,
|
|
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"}
|
|
@@ -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;
|
|
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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -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';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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.
|
|
9
|
-
normal: 0.
|
|
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.
|
|
15
|
-
case 'normal': return
|
|
16
|
-
case 'cinematic': return 1.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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":"
|
|
1
|
+
{"version":3,"file":"action-helpers.js","sourceRoot":"","sources":["../../../src/runtime/action-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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,
|
|
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
|
|
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
|
-
|
|
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:
|
|
33
|
-
narrationOverlap
|
|
64
|
+
pacingMultiplier: pm,
|
|
65
|
+
narrationOverlap,
|
|
66
|
+
onFrame,
|
|
67
|
+
virtualTime,
|
|
34
68
|
});
|
|
35
69
|
await scenario(sw);
|
|
36
|
-
//
|
|
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
|
-
|
|
39
|
-
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
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
|
-
|
|
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;
|
|
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;
|
|
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"}
|