browsertime 27.1.0 → 27.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/bin/browsertime.js +1 -1
  3. package/bin/browsertimeWebPageReplay.js +1 -1
  4. package/lib/chrome/webdriver/chromium.js +13 -0
  5. package/lib/core/engine/command/measure.js +4 -5
  6. package/lib/core/engine/commands.js +14 -26
  7. package/lib/core/engine/context.js +4 -9
  8. package/lib/core/engine/index.js +6 -2
  9. package/lib/core/seleniumRunner.js +1 -2
  10. package/lib/safari/safariInspectorClient.js +0 -1
  11. package/lib/screenshot/index.js +1 -1
  12. package/lib/support/browserScript.js +2 -4
  13. package/lib/support/cli.js +41 -20
  14. package/lib/support/har/index.js +1 -2
  15. package/lib/support/helpTopics.js +174 -0
  16. package/lib/support/util.js +46 -0
  17. package/lib/video/postprocessing/finetune/addTextToVideo.js +1 -1
  18. package/package.json +16 -15
  19. package/scripting.d.ts +21 -0
  20. package/types/android/index.d.ts +2 -2
  21. package/types/android/index.d.ts.map +1 -1
  22. package/types/core/engine/command/measure.d.ts +6 -6
  23. package/types/core/engine/command/measure.d.ts.map +1 -1
  24. package/types/core/engine/command/simpleperf.d.ts +1 -1
  25. package/types/core/engine/command/simpleperf.d.ts.map +1 -1
  26. package/types/core/engine/commands.d.ts +51 -48
  27. package/types/core/engine/commands.d.ts.map +1 -1
  28. package/types/core/engine/context.d.ts +9 -8
  29. package/types/core/engine/context.d.ts.map +1 -1
  30. package/types/support/tcpdump.d.ts +1 -1
  31. package/types/support/tcpdump.d.ts.map +1 -1
  32. package/types/support/util.d.ts +5 -0
  33. package/types/support/util.d.ts.map +1 -1
  34. package/types/video/postprocessing/finetune/addTextToVideo.d.ts +1 -1
  35. package/types/video/postprocessing/finetune/addTextToVideo.d.ts.map +1 -1
  36. package/types/video/postprocessing/finetune/convertFps.d.ts +1 -1
  37. package/types/video/postprocessing/finetune/convertFps.d.ts.map +1 -1
  38. package/types/video/postprocessing/finetune/removeOrange.d.ts +1 -1
  39. package/types/video/postprocessing/finetune/removeOrange.d.ts.map +1 -1
  40. package/types/video/postprocessing/visualmetrics/visualMetrics.d.ts +1 -1
  41. package/types/video/postprocessing/visualmetrics/visualMetrics.d.ts.map +1 -1
  42. package/types/video/screenRecording/desktop/convert.d.ts +1 -1
  43. package/types/video/screenRecording/desktop/convert.d.ts.map +1 -1
  44. package/types/video/screenRecording/desktop/desktopRecorder.d.ts +2 -2
  45. package/types/video/screenRecording/desktop/ffmpegRecorder.d.ts +1 -1
  46. package/types/video/screenRecording/desktop/osx/getSPDisplaysDataType.d.ts +1 -1
  47. package/types/video/screenRecording/desktop/osx/getSPDisplaysDataType.d.ts.map +1 -1
  48. package/types/video/screenRecording/desktop/osx/getScreen.d.ts +1 -1
  49. package/types/video/screenRecording/desktop/osx/getScreen.d.ts.map +1 -1
  50. package/types/video/screenRecording/iosSimulator/convertToMp4.d.ts +1 -1
  51. package/types/video/screenRecording/iosSimulator/convertToMp4.d.ts.map +1 -1
  52. package/types/video/screenRecording/iosSimulator/recorder.d.ts +2 -6
  53. package/types/video/screenRecording/iosSimulator/recorder.d.ts.map +1 -1
  54. package/types/scripting.d.ts +0 -2
@@ -0,0 +1,174 @@
1
+ /*eslint no-console: 0*/
2
+
3
+ // Help-topic dispatch for the Browsertime CLI.
4
+ //
5
+ // Browsertime declares ~250 options in one big yargs chain, with each
6
+ // option carrying an inline `group: '<topic>'` field. The unfiltered
7
+ // --help dump is overwhelming; this module lets users say:
8
+ //
9
+ // browsertime --help -> curated set of common options
10
+ // browsertime --help <topic> -> only that topic
11
+ // browsertime --help-all -> the full historical dump
12
+ //
13
+ // We intercept the yargs instance's .option() call to capture each
14
+ // key's topic from the inline `group` field, so the cli.js chain
15
+ // doesn't have to change shape.
16
+
17
+ // Curated set of "everyday" options the default --help should show.
18
+ // Keep this list short -- anything missing is one --help <topic> away.
19
+ const COMMON_KEYS = new Set([
20
+ // common everyday flags
21
+ 'browser',
22
+ 'b',
23
+ 'iterations',
24
+ 'n',
25
+ 'video',
26
+ 'visualMetrics',
27
+ 'speedIndex',
28
+ 'docker',
29
+ 'preURL',
30
+ 'headless',
31
+ 'connectivity.profile',
32
+ 'c',
33
+ 'connectivity.engine',
34
+ 'mobile',
35
+ 'resultDir',
36
+ 'cpu',
37
+ // meta
38
+ 'config',
39
+ 'help',
40
+ 'h',
41
+ 'verbose',
42
+ 'v',
43
+ 'version',
44
+ 'V'
45
+ ]);
46
+
47
+ // Meta-flags that always stay visible regardless of mode.
48
+ const ALWAYS_KEEP = new Set([
49
+ 'help',
50
+ 'h',
51
+ 'version',
52
+ 'V',
53
+ 'config',
54
+ 'verbose',
55
+ 'v'
56
+ ]);
57
+
58
+ const DOCS_URL = 'https://www.sitespeed.io/documentation/browsertime/';
59
+
60
+ // Parse the raw arg list, detect help intent, and return a cleaned arg
61
+ // list with `--help-all` / `--help <topic>` collapsed to a plain
62
+ // `--help` so yargs still triggers its normal help+exit flow.
63
+ //
64
+ // Returns { mode, topic, args } where mode is one of:
65
+ // 'none' -> no --help passed
66
+ // 'default' -> plain --help, show the curated common subset
67
+ // 'topic' -> --help <topic>, show only that topic
68
+ // 'all' -> --help-all (or --help all), show everything
69
+ export function classifyHelp(rawArgs) {
70
+ const cleaned = [];
71
+ let mode = 'none';
72
+ let topic;
73
+ for (let i = 0; i < rawArgs.length; i++) {
74
+ const a = rawArgs[i];
75
+ if (a === '--help-all') {
76
+ mode = 'all';
77
+ cleaned.push('--help');
78
+ continue;
79
+ }
80
+ if (a === '--help' || a === '-h' || a === '--help=true') {
81
+ const next = rawArgs[i + 1];
82
+ if (next && !next.startsWith('-')) {
83
+ if (next === 'all') {
84
+ mode = 'all';
85
+ i++;
86
+ } else {
87
+ mode = 'topic';
88
+ topic = next;
89
+ i++;
90
+ }
91
+ } else if (mode === 'none') {
92
+ mode = 'default';
93
+ }
94
+ cleaned.push('--help');
95
+ continue;
96
+ }
97
+ cleaned.push(a);
98
+ }
99
+ return { mode, topic, args: cleaned };
100
+ }
101
+
102
+ // Wrap a yargs instance so every subsequent .option(key, def) call also
103
+ // records `key` under `def.group` in the returned Map. Browsertime's
104
+ // option chain already carries inline `group: '<topic>'` annotations,
105
+ // so no chain edits are needed.
106
+ export function captureTopics(yargsInstance) {
107
+ const topicKeys = new Map();
108
+ const originalOption = yargsInstance.option.bind(yargsInstance);
109
+ yargsInstance.option = function (key, def) {
110
+ if (def && def.group) {
111
+ const list = topicKeys.get(def.group) || [];
112
+ list.push(key);
113
+ topicKeys.set(def.group, list);
114
+ }
115
+ return originalOption(key, def);
116
+ };
117
+ return topicKeys;
118
+ }
119
+
120
+ // Build the epilog (footer) shown under --help, varying by mode.
121
+ export function buildEpilog(mode, topic, topicNames) {
122
+ if (mode === 'all' || mode === 'none') {
123
+ return `Read the docs at ${DOCS_URL}`;
124
+ }
125
+ if (mode === 'topic') {
126
+ return [
127
+ `Showing only the "${topic}" options.`,
128
+ `Run with --help-all for the full reference, or --help to see common options.`,
129
+ `Read the docs at ${DOCS_URL}`
130
+ ].join('\n');
131
+ }
132
+ // default
133
+ const topics = topicNames.join(', ');
134
+ return [
135
+ 'Topics (use `browsertime --help <topic>`):',
136
+ ' ' + topics,
137
+ '',
138
+ 'Run with --help-all to see every option, or read the docs at ' + DOCS_URL
139
+ ].join('\n');
140
+ }
141
+
142
+ // Apply the topic filter by calling yargs.hide() on every key not in
143
+ // the set we want to display. Returns true if filtering was applied.
144
+ export function applyHelpFilter(yargsInstance, mode, topic, topicKeys) {
145
+ if (mode === 'none' || mode === 'all') return false;
146
+
147
+ let keep;
148
+ if (mode === 'topic') {
149
+ if (!topicKeys.has(topic)) {
150
+ console.error(`Unknown help topic: ${topic}`);
151
+ console.error('Available topics: ' + [...topicKeys.keys()].join(', '));
152
+ // CLI dispatch: bailing out here is intentional (deliberate "no
153
+ // such topic" exit code), not an error to bubble up the stack.
154
+ // eslint-disable-next-line unicorn/no-process-exit
155
+ process.exit(2);
156
+ }
157
+ // Topic mode = just the topic. No COMMON_KEYS floor here -- topic
158
+ // views should focus on the topic, not re-render common stuff
159
+ // that's one --help away.
160
+ keep = new Set(topicKeys.get(topic));
161
+ } else {
162
+ // default
163
+ keep = COMMON_KEYS;
164
+ }
165
+
166
+ const allKeys = Object.keys(yargsInstance.getOptions().key);
167
+ for (const k of allKeys) {
168
+ if (ALWAYS_KEEP.has(k)) continue;
169
+ if (!keep.has(k)) {
170
+ yargsInstance.hide(k);
171
+ }
172
+ }
173
+ return true;
174
+ }
@@ -388,3 +388,49 @@ export function getProperty(object, path, defaultValue) {
388
388
 
389
389
  return result === undefined ? defaultValue : result;
390
390
  }
391
+
392
+ function isPlainObject(value) {
393
+ if (value === null || typeof value !== 'object') return false;
394
+ const proto = Object.getPrototypeOf(value);
395
+ return proto === Object.prototype || proto === null;
396
+ }
397
+
398
+ function canMergeInto(value) {
399
+ return value !== null && typeof value === 'object';
400
+ }
401
+
402
+ function mergeInto(target, source) {
403
+ for (const key of Object.keys(source)) {
404
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
405
+ continue;
406
+ }
407
+ const sourceValue = source[key];
408
+ const targetValue = target[key];
409
+ if (Array.isArray(sourceValue)) {
410
+ const into = Array.isArray(targetValue) ? targetValue : [];
411
+ mergeInto(into, sourceValue);
412
+ target[key] = into;
413
+ } else if (isPlainObject(sourceValue)) {
414
+ const into = canMergeInto(targetValue) ? targetValue : {};
415
+ mergeInto(into, sourceValue);
416
+ target[key] = into;
417
+ } else if (sourceValue === undefined) {
418
+ if (!(key in target)) target[key] = undefined;
419
+ } else {
420
+ target[key] = sourceValue;
421
+ }
422
+ }
423
+ }
424
+
425
+ /**
426
+ * A replacement for lodash.merge(target, ...sources).
427
+ *
428
+ */
429
+ export function merge(target, ...sources) {
430
+ if (target === undefined || target === null) return target;
431
+ for (const source of sources) {
432
+ if (source === undefined || source === null) continue;
433
+ mergeInto(target, source);
434
+ }
435
+ return target;
436
+ }
@@ -45,7 +45,7 @@ export async function addTextToVideo(
45
45
 
46
46
  arguments_.push(
47
47
  '-vf',
48
- `drawtext=${fontFile}x=w/2-(tw/2): y=H-h/10:fontcolor=white:fontsize=h/${fontSize}:box=1:boxcolor=0x000000AA:text='%{pts\\:hms}'${allTimingMetrics}`,
48
+ String.raw`drawtext=${fontFile}x=w/2-(tw/2): y=H-h/10:fontcolor=white:fontsize=h/${fontSize}:box=1:boxcolor=0x000000AA:text='%{pts\:hms}'${allTimingMetrics}`,
49
49
  '-y',
50
50
  outputFile
51
51
  );
package/package.json CHANGED
@@ -1,24 +1,23 @@
1
1
  {
2
2
  "name": "browsertime",
3
3
  "description": "Get performance metrics from your web page using Browsertime.",
4
- "version": "27.1.0",
4
+ "version": "27.3.0",
5
5
  "bin": "./bin/browsertime.js",
6
6
  "type": "module",
7
- "types": "./types/scripting.d.ts",
7
+ "types": "./scripting.d.ts",
8
8
  "dependencies": {
9
9
  "@devicefarmer/adbkit": "3.3.8",
10
- "@sitespeed.io/chromedriver": "143.0.7499",
11
- "@sitespeed.io/edgedriver": "143.0.3650",
12
- "@sitespeed.io/geckodriver": "0.36.0",
13
- "@sitespeed.io/log": "1.0.0",
10
+ "@sitespeed.io/chromedriver": "148.0.7778",
11
+ "@sitespeed.io/edgedriver": "148.0.3967",
12
+ "@sitespeed.io/geckodriver": "0.36.1",
13
+ "@sitespeed.io/log": "2.0.0",
14
14
  "@sitespeed.io/throttle": "6.0.0",
15
- "chrome-har": "1.3.0",
16
- "chrome-remote-interface": "0.33.3",
15
+ "chrome-har": "1.3.1",
16
+ "chrome-remote-interface": "0.34.0",
17
17
  "execa": "9.6.1",
18
18
  "fast-stats": "0.0.7",
19
19
  "ff-test-bidi-har-export": "0.0.22",
20
- "lodash.merge": "4.6.2",
21
- "selenium-webdriver": "4.43.0",
20
+ "selenium-webdriver": "4.44.0",
22
21
  "yargs": "18.0.0"
23
22
  },
24
23
  "optionalDependencies": {
@@ -26,13 +25,14 @@
26
25
  "usb-power-profiling": "1.6.0"
27
26
  },
28
27
  "devDependencies": {
28
+ "@eslint/js": "10.0.1",
29
29
  "@types/selenium-webdriver": "4.35.5",
30
30
  "ava": "6.4.1",
31
31
  "clean-jsdoc-theme": "4.3.2",
32
- "eslint": "9.37.0",
32
+ "eslint": "10.4.0",
33
33
  "eslint-config-prettier": "10.1.8",
34
34
  "eslint-plugin-prettier": "5.5.5",
35
- "eslint-plugin-unicorn": "61.0.2",
35
+ "eslint-plugin-unicorn": "64.0.0",
36
36
  "jsdoc": "4.0.5",
37
37
  "prettier": "3.8.3",
38
38
  "serve": "14.2.6",
@@ -55,13 +55,14 @@
55
55
  "index.js",
56
56
  "lib",
57
57
  "package.json",
58
+ "scripting.d.ts",
58
59
  "vendor",
59
60
  "types"
60
61
  ],
61
62
  "exports": {
62
63
  ".": {
63
- "import": "./index.js",
64
- "types": "./types/scripting.d.ts"
64
+ "types": "./scripting.d.ts",
65
+ "import": "./index.js"
65
66
  }
66
67
  },
67
68
  "scripts": {
@@ -72,7 +73,7 @@
72
73
  "lint:fix": "eslint . --fix",
73
74
  "tsc": "tsc",
74
75
  "jsdoc": "jsdoc --configure jsdoc/jsdoc.json",
75
- "prepublishOnly": "npm run lint && npm run tsc"
76
+ "prepublishOnly": "npm run lint && npm run tsc && npx -y publint"
76
77
  },
77
78
  "author": "Peter Hedenskog",
78
79
  "contributors": [
package/scripting.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ import type { Context } from './types/core/engine/context.js';
2
+ import type { Commands } from './types/core/engine/commands.js';
3
+
4
+ export { Context as BrowsertimeContext } from './types/core/engine/context.js';
5
+ export { Commands as BrowsertimeCommands } from './types/core/engine/commands.js';
6
+
7
+ /**
8
+ * Signature of a Browsertime user script. Annotate the default export of
9
+ * your script with this type to get full IntelliSense on `context` and
10
+ * `commands`.
11
+ *
12
+ * @example
13
+ * /** @type {import('browsertime').BrowsertimeScript} *\/
14
+ * export default async function (context, commands) {
15
+ * await commands.measure.start('https://example.org');
16
+ * }
17
+ */
18
+ export type BrowsertimeScript = (
19
+ context: Context,
20
+ commands: Commands
21
+ ) => Promise<unknown>;
@@ -33,7 +33,7 @@ export class Android {
33
33
  }>;
34
34
  pullNetLog(destination: any): Promise<any>;
35
35
  addDevtoolsFw(): Promise<any>;
36
- removeDevtoolsFw(): Promise<(import("execa/types/return/result.js").CommonResult<false, {}> & import("execa/types/return/result.js").OmitErrorIfReject<unknown>)[]>;
36
+ removeDevtoolsFw(): Promise<any>;
37
37
  startVideo(): Promise<any>;
38
38
  ping(address: any): Promise<boolean>;
39
39
  clickPowerButton(): Promise<any>;
@@ -41,7 +41,7 @@ export class Android {
41
41
  closeAppNotRespondingPopup(): Promise<any>;
42
42
  pressHomeButton(): Promise<any>;
43
43
  stopVideo(): Promise<any>;
44
- getPhoneState(): Promise<string>;
44
+ getPhoneState(): Promise<any>;
45
45
  pullVideo(destinationPath: any): Promise<any>;
46
46
  removeVideo(): Promise<any>;
47
47
  pidof(packageName: any): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/android/index.js"],"names":[],"mappings":"AAqlBA,2DAWC;AAjlBD;IACE,0BAwBC;IAfC,YAAgC;IAEhC,QAIC;IACD,UAAgC;IAGhC,6BAA6B;IAC7B,yBAA2B;IAC3B,eAAgC;IAKlC,uBAgBC;IALC,YAA4C;IAG1C,YAAoE;IAIxE,wCAEC;IAED,8CAIC;IAED,6CAIC;IAED,2CAUC;IAED,mEAYC;IAED,iEAGC;IAED,mEAcC;IAED,uCAEC;IAED,0CAGC;IAED,4CAMC;IAED,4CAMC;IAED,uBAGC;IAED,kCAOC;IAED;;;;;;;OAuBC;IAED,2CAKC;IAED,8BAKC;IAED,oKAuBC;IAED,2BAIC;IAED,qCAGC;IAED,iCAGC;IAED,wBASC;IAED,2CAOC;IAED,gCAEC;IAED,0BAIC;IAED,iCAGC;IAED,8CAIC;IAED,4BAEC;IAED,sCAYC;IAED,mDAsBC;IAED,gDA+CC;IAED;;;;;;;OAqDC;IAED,4DAQC;IAED,mCAcC;IAED,kCAQC;IAED,iCAIC;IAED;;;;OAGC;IAED;;;OAEC;IAED,6GAaC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/android/index.js"],"names":[],"mappings":"AAqlBA,2DAWC;AAjlBD;IACE,0BAwBC;IAfC,YAAgC;IAEhC,QAIC;IACD,UAAgC;IAGhC,6BAA6B;IAC7B,yBAA2B;IAC3B,eAAgC;IAKlC,uBAgBC;IALC,YAA4C;IAG1C,YAAoE;IAIxE,wCAEC;IAED,8CAIC;IAED,6CAIC;IAED,2CAUC;IAED,mEAYC;IAED,iEAGC;IAED,mEAcC;IAED,uCAEC;IAED,0CAGC;IAED,4CAMC;IAED,4CAMC;IAED,uBAGC;IAED,kCAOC;IAED;;;;;;;OAuBC;IAED,2CAKC;IAED,8BAKC;IAED,iCAuBC;IAED,2BAIC;IAED,qCAGC;IAED,iCAGC;IAED,wBASC;IAED,2CAOC;IAED,gCAEC;IAED,0BAIC;IAED,8BAGC;IAED,8CAIC;IAED,4BAEC;IAED,sCAYC;IAED,mDAsBC;IAED,gDA+CC;IAED;;;;;;;OAqDC;IAED,4DAQC;IAED,mCAcC;IAED,kCAQC;IAED,iCAIC;IAED;;;;OAGC;IAED;;;OAEC;IAED,6GAaC;CACF"}
@@ -144,10 +144,10 @@ export class Measure {
144
144
  *
145
145
  * @async
146
146
  * @param {string} errorMessage - The message about the error. This will end up on the HTML report for sitespeed.io so give it a good message so you know what's gone wrong.
147
- * @returns {Promise} A promise that resolves when the stop process has completed.
147
+ * @returns {Promise<void>} A promise that resolves when the stop process has completed.
148
148
  * @since 21.2.0
149
149
  */
150
- stopAsError(errorMessage: string): Promise<any>;
150
+ stopAsError(errorMessage: string): Promise<void>;
151
151
  /**
152
152
  * @private
153
153
  */
@@ -161,10 +161,10 @@ export class Measure {
161
161
  * @async
162
162
  * @param {string} alias - The friendly name for this measurement.
163
163
  * @param {string} selector - The CSS selector of the element to click.
164
- * @returns {Promise} A promise that resolves with the collected metrics data.
164
+ * @returns {Promise<unknown>} A promise that resolves with the collected metrics data.
165
165
  * @throws {Error} Throws an error if the element is not found or the measurement fails.
166
166
  */
167
- clickAndMeasure(alias: string, selector: string): Promise<any>;
167
+ clickAndMeasure(alias: string, selector: string): Promise<unknown>;
168
168
  /**
169
169
  * Stops the measurement process, collects metrics, and handles any post-measurement tasks.
170
170
  * It finalizes the URL being tested, manages any URL-specific metadata, stops any ongoing video recordings,
@@ -173,9 +173,9 @@ export class Measure {
173
173
  * @async
174
174
  * @param {string} testedStartUrl - The URL that was initially tested. If not provided, it will be obtained from the browser.
175
175
  * @throws {Error} Throws an error if there are issues in stopping the measurement or collecting data.
176
- * @returns {Promise} A promise that resolves with the collected metrics data.
176
+ * @returns {Promise<unknown>} A promise that resolves with the collected metrics data.
177
177
  */
178
- stop(testedStartUrl: string): Promise<any>;
178
+ stop(testedStartUrl: string): Promise<unknown>;
179
179
  /**
180
180
  * Adds a custom metric to the current measurement result.
181
181
  * The metric will be attached to the latest tested page, meaming
@@ -1 +1 @@
1
- {"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../../../../lib/core/engine/command/measure.js"],"names":[],"mappings":"AA6BA;;;;;;GAMG;AACH;IACE;;;;;;;;;;;;;;OAgGC;IAjFC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,0BAA0C;IAC1C;;OAEG;IACH,cAAkB;IAClB;;OAEG;IACH,eAAoB;IACpB;;OAEG;IACH,uBAAoC;IACpC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,uBAAoC;IACpC;;OAEG;IACH,0BAA0C;IAC1C;;OAEG;IACH,+BAAoD;IACpD;;OAEG;IACH,uBAAoC;IACpC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,8BAA8B;IAC9B;;OAEG;IACH,6BAA6B;IAC7B;;OAEG;IACH,uBAA2B;IAC3B;;OAEG;IACH,mBAAoB;IACpB;;OAEG;IACH,gBAA6D;IAC7D;;OAEG;IACH,qBAKC;IACD;;OAEG;IACH,oBAIC;IAGH;;;OAGG;IACH,eAyBC;IAED;;;OAGG;IACH,iBAQC;IAED;;;;;;;;;;;;OAYG;IACH,kBAmBC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,kBALW,MAAM,kBACN,MAAM,GAEJ,OAAO,CAAC,IAAI,CAAC,CA2FzB;IAED;;;;;;;;OAQG;IACH,0BAJW,MAAM,gBAiBhB;IAED;;OAEG;IACH,iBAEC;IADC,YAAmB;IAGrB;;;;;;;;;;OAUG;IACH,uBALW,MAAM,YACN,MAAM,gBAQhB;IAED;;;;;;;;;OASG;IACH,qBAJW,MAAM,gBAyEhB;IAED;;;;;;;;OAQG;IACH,UAJW,MAAM,SACN,GAAC,QAWX;IAED;;;;;;;;;OASG;IACH,6BAOC;IAED;;OAEG;IACH,sBAYC;IAED;;OAEG;IACH,6BAQC;IAED;;OAEG;IACH,+BAaC;IAED;;OAEG;IACH,2BAkBC;IAED;;OAEG;IACH,mCAqBC;IAED;;OAEG;IACH,2BAIC;IAED;;OAEG;IACH,iBA2BC;CACF"}
1
+ {"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../../../../lib/core/engine/command/measure.js"],"names":[],"mappings":"AA4BA;;;;;;GAMG;AACH;IACE;;;;;;;;;;;;;;OAgGC;IAjFC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,0BAA0C;IAC1C;;OAEG;IACH,cAAkB;IAClB;;OAEG;IACH,eAAoB;IACpB;;OAEG;IACH,uBAAoC;IACpC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,uBAAoC;IACpC;;OAEG;IACH,0BAA0C;IAC1C;;OAEG;IACH,+BAAoD;IACpD;;OAEG;IACH,uBAAoC;IACpC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,8BAA8B;IAC9B;;OAEG;IACH,6BAA6B;IAC7B;;OAEG;IACH,uBAA2B;IAC3B;;OAEG;IACH,mBAAoB;IACpB;;OAEG;IACH,gBAA6D;IAC7D;;OAEG;IACH,qBAKC;IACD;;OAEG;IACH,oBAIC;IAGH;;;OAGG;IACH,eAyBC;IAED;;;OAGG;IACH,iBAQC;IAED;;;;;;;;;;;;OAYG;IACH,kBAmBC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,kBALW,MAAM,kBACN,MAAM,GAEJ,OAAO,CAAC,IAAI,CAAC,CA2FzB;IAED;;;;;;;;OAQG;IACH,0BAJW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAgBzB;IAED;;OAEG;IACH,iBAEC;IADC,YAAmB;IAGrB;;;;;;;;;;OAUG;IACH,uBALW,MAAM,YACN,MAAM,GACJ,OAAO,CAAC,OAAO,CAAC,CAO5B;IAED;;;;;;;;;OASG;IACH,qBAJW,MAAM,GAEJ,OAAO,CAAC,OAAO,CAAC,CAuE5B;IAED;;;;;;;;OAQG;IACH,UAJW,MAAM,SACN,GAAC,QAWX;IAED;;;;;;;;;OASG;IACH,6BAOC;IAED;;OAEG;IACH,sBAYC;IAED;;OAEG;IACH,6BAQC;IAED;;OAEG;IACH,+BAaC;IAED;;OAEG;IACH,2BAkBC;IAED;;OAEG;IACH,mCAqBC;IAED;;OAEG;IACH,2BAIC;IAED;;OAEG;IACH,iBA2BC;CACF"}
@@ -30,7 +30,7 @@ export class SimplePerfProfiler {
30
30
  start(profilerOptions?: any[], recordOptions?: string, dirName?: string): Promise<void>;
31
31
  profilerOptions: any[];
32
32
  dataDir: any;
33
- simpleperfProcess: import("execa").ResultPromise<{}>;
33
+ simpleperfProcess: any;
34
34
  /**
35
35
  * Stop Simpleperf profiling.
36
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"simpleperf.d.ts","sourceRoot":"","sources":["../../../../lib/core/engine/command/simpleperf.js"],"names":[],"mappings":"AA0CA;IACE,yEAqBC;IApBC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,uBAAoC;IACpC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,cAAkB;IAClB;;OAEG;IACH,gBAAoB;IAGtB;;;;;;OAMG;IAEH,0EAJa,OAAO,CAAC,IAAI,CAAC,CA6EzB;IA1DC,uBAAsC;IAUlC,aAAkE;IAwBtE,qDAAyC;IA0B3C;;;;;;;OAOG;IACH,QAJa,OAAO,CAAC,IAAI,CAAC,CA8CzB;CACF"}
1
+ {"version":3,"file":"simpleperf.d.ts","sourceRoot":"","sources":["../../../../lib/core/engine/command/simpleperf.js"],"names":[],"mappings":"AA0CA;IACE,yEAqBC;IApBC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,uBAAoC;IACpC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,cAAkB;IAClB;;OAEG;IACH,gBAAoB;IAGtB;;;;;;OAMG;IAEH,0EAJa,OAAO,CAAC,IAAI,CAAC,CA6EzB;IA1DC,uBAAsC;IAUlC,aAAkE;IAwBtE,uBAAyC;IA0B3C;;;;;;;OAOG;IACH,QAJa,OAAO,CAAC,IAAI,CAAC,CA8CzB;CACF"}