@code-pushup/lighthouse-plugin 0.80.1 → 0.81.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-pushup/lighthouse-plugin",
3
- "version": "0.80.1",
3
+ "version": "0.81.0",
4
4
  "license": "MIT",
5
5
  "description": "Code PushUp plugin for measuring web performance and quality with Lighthouse 🔥",
6
6
  "homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-lighthouse#readme",
@@ -36,8 +36,8 @@
36
36
  },
37
37
  "type": "module",
38
38
  "dependencies": {
39
- "@code-pushup/models": "0.80.1",
40
- "@code-pushup/utils": "0.80.1",
39
+ "@code-pushup/models": "0.81.0",
40
+ "@code-pushup/utils": "0.81.0",
41
41
  "ansis": "^3.3.0",
42
42
  "chrome-launcher": "^1.1.1",
43
43
  "lighthouse": "^12.0.0",
@@ -1,5 +1,5 @@
1
1
  import { bold } from 'ansis';
2
- import { formatBytes, formatDuration, html, truncateText, ui, } from '@code-pushup/utils';
2
+ import { formatBytes, formatDuration, html, roundDecimals, truncateText, ui, } from '@code-pushup/utils';
3
3
  export function trimSlice(item, maxLength = 0) {
4
4
  const str = String(item).trim();
5
5
  return maxLength > 0 ? str.slice(0, maxLength) : str;
@@ -41,17 +41,14 @@ export function formatTableItemPropertyValue(itemValue, itemValueFormat) {
41
41
  return html.link(url);
42
42
  case 'timespanMs':
43
43
  case 'ms':
44
- return formatDuration(Number(parsedItemValue));
44
+ return formatDuration(Number(parsedItemValue), 3);
45
45
  case 'node':
46
46
  return parseNodeValue(itemValue);
47
47
  case 'source-location':
48
48
  return truncateText(String(parsedItemValue), 200);
49
49
  case 'numeric':
50
50
  const num = Number(parsedItemValue);
51
- if (num.toFixed(3).toString().endsWith('.000')) {
52
- return String(num);
53
- }
54
- return String(num.toFixed(3));
51
+ return roundDecimals(num, 3).toString();
55
52
  case 'text':
56
53
  return truncateText(String(parsedItemValue), 500);
57
54
  case 'multi': // @TODO
@@ -1 +1 @@
1
- {"version":3,"file":"item-value.js","sourceRoot":"","sources":["../../../../../src/lib/runner/details/item-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAG7B,OAAO,EACL,WAAW,EACX,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,EAAE,GACH,MAAM,oBAAoB,CAAC;AAc5B,MAAM,UAAU,SAAS,CAAC,IAAyB,EAAE,SAAS,GAAG,CAAC;IAChE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAwB;IACrD,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IACrC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,4BAA4B,CAC1C,SAA6B,EAC7B,eAAuC;IAEvC,OAAO;IACP,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,mBAAmB;IACnB,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,OAAO,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAE/D,wDAAwD;IACxD,QAAQ,eAAe,EAAE,CAAC;QACxB,KAAK,OAAO;YACV,OAAO,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;QAC9C,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,eAAyB,CAAC,CAAC,CAAC;QACzD,KAAK,MAAM;YACT,MAAM,IAAI,GAAG,eAAoC,CAAC;YAClD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,KAAK,KAAK;YACR,MAAM,GAAG,GAAG,eAAyB,CAAC;YACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,KAAK,YAAY,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;QACjD,KAAK,MAAM;YACT,OAAO,cAAc,CAAC,SAA8B,CAAC,CAAC;QACxD,KAAK,iBAAiB;YACpB,OAAO,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,KAAK,SAAS;YACZ,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,KAAK,MAAM;YACT,OAAO,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,KAAK,OAAO,EAAE,QAAQ;YACpB,oDAAoD;YACpD,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACpE,OAAO,EAAE,CAAC;QACZ,KAAK,WAAW,EAAE,QAAQ;YACxB,oDAAoD;YACpD,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;YACxE,OAAO,EAAE,CAAC;IACd,CAAC;IACD,uDAAuD;IAEvD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAqB;IAErB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,gBAAgB,CAAC;QAChC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,2BAA2B,CACzC,SAA6B;IAE7B,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,mBAAmB;IACnB,IACE,OAAO,SAAS,KAAK,QAAQ;QAC7B,OAAO,SAAS,KAAK,QAAQ;QAC7B,OAAO,SAAS,KAAK,SAAS,EAC9B,CAAC;QACD,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,gBAAgB;IAChB,MAAM,WAAW,GAAG,SAA4B,CAAC;IACjD,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;IAC7B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;QACnD,KAAK,MAAM;YACT,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC;QACrC,KAAK,MAAM;YACT,OAAO,WAAW,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;QACnD,KAAK,iBAAiB;YACpB,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;YAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,KAAK,UAAU;YACb,oDAAoD;YACpD,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;YACtE,OAAO,EAAE,CAAC;QACZ,KAAK,WAAW;YACd,oDAAoD;YACpD,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE;gBACrE,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;IACd,CAAC;IACD,aAAa;IACb,OAAO,oBAAoB,CAAC,WAA8B,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"item-value.js","sourceRoot":"","sources":["../../../../../src/lib/runner/details/item-value.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@ import path from 'node:path';
3
3
  import { ensureDirectoryExists, ui } from '@code-pushup/utils';
4
4
  import { orderSlug, shouldExpandForUrls } from '../processing.js';
5
5
  import { DEFAULT_CLI_FLAGS } from './constants.js';
6
- import { enrichFlags, getConfig, normalizeAuditOutputs, toAuditOutputs, } from './utils.js';
6
+ import { enrichFlags, getConfig, normalizeAuditOutputs, toAuditOutputs, withLocalTmpDir, } from './utils.js';
7
7
  export function createRunnerFunction(urls, flags = DEFAULT_CLI_FLAGS) {
8
- return async () => {
8
+ return withLocalTmpDir(async () => {
9
9
  const config = await getConfig(flags);
10
10
  const normalizationFlags = enrichFlags(flags);
11
11
  const isSingleUrl = !shouldExpandForUrls(urls.length);
@@ -35,7 +35,7 @@ export function createRunnerFunction(urls, flags = DEFAULT_CLI_FLAGS) {
35
35
  : 'Lighthouse failed to produce results for all URLs.');
36
36
  }
37
37
  return normalizeAuditOutputs(allResults, normalizationFlags);
38
- };
38
+ });
39
39
  }
40
40
  async function runLighthouseForUrl(url, flags, config) {
41
41
  if (flags.outputPath) {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../src/lib/runner/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../src/lib/runner/runner.ts"],"names":[],"mappings":"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"}
@@ -18,3 +18,12 @@ export declare function determineAndSetLogLevel({ verbose, quiet, }?: {
18
18
  export type ConfigOptions = Partial<Pick<LighthouseCliFlags, 'configPath' | 'preset'>>;
19
19
  export declare function getConfig(options?: ConfigOptions): Promise<Config | undefined>;
20
20
  export declare function enrichFlags(flags: LighthouseCliFlags, urlIndex?: number): LighthouseOptions;
21
+ /**
22
+ * Wraps Lighthouse runner with `TEMP` directory override for Windows, to prevent permissions error on cleanup.
23
+ *
24
+ * `Runtime error encountered: EPERM, Permission denied: \\?\C:\Users\RUNNER~1\AppData\Local\Temp\lighthouse.57724617 '\\?\C:\Users\RUNNER~1\AppData\Local\Temp\lighthouse.57724617'`
25
+ *
26
+ * @param fn Async function which runs Lighthouse.
27
+ * @returns Wrapped function which overrides `TEMP` environment variable, before cleaning up afterwards.
28
+ */
29
+ export declare function withLocalTmpDir<T>(fn: () => Promise<T>): () => Promise<T>;
@@ -3,7 +3,10 @@ import log from 'lighthouse-logger';
3
3
  import desktopConfig from 'lighthouse/core/config/desktop-config.js';
4
4
  import experimentalConfig from 'lighthouse/core/config/experimental-config.js';
5
5
  import perfConfig from 'lighthouse/core/config/perf-config.js';
6
- import { formatReportScore, importModule, readJsonFile, ui, } from '@code-pushup/utils';
6
+ import os from 'node:os';
7
+ import path from 'node:path';
8
+ import { formatReportScore, importModule, pluginWorkDir, readJsonFile, ui, } from '@code-pushup/utils';
9
+ import { LIGHTHOUSE_PLUGIN_SLUG } from '../constants.js';
7
10
  import { logUnsupportedDetails, toAuditDetails } from './details/details.js';
8
11
  export function normalizeAuditOutputs(auditOutputs, flags = { skipAudits: [] }) {
9
12
  const toSkip = new Set(flags.skipAudits ?? []);
@@ -107,4 +110,27 @@ export function enrichFlags(flags, urlIndex) {
107
110
  outputPath: urlSpecificOutputPath,
108
111
  };
109
112
  }
113
+ /**
114
+ * Wraps Lighthouse runner with `TEMP` directory override for Windows, to prevent permissions error on cleanup.
115
+ *
116
+ * `Runtime error encountered: EPERM, Permission denied: \\?\C:\Users\RUNNER~1\AppData\Local\Temp\lighthouse.57724617 '\\?\C:\Users\RUNNER~1\AppData\Local\Temp\lighthouse.57724617'`
117
+ *
118
+ * @param fn Async function which runs Lighthouse.
119
+ * @returns Wrapped function which overrides `TEMP` environment variable, before cleaning up afterwards.
120
+ */
121
+ export function withLocalTmpDir(fn) {
122
+ if (os.platform() !== 'win32') {
123
+ return fn;
124
+ }
125
+ return async () => {
126
+ const originalTmpDir = process.env['TEMP'];
127
+ process.env['TEMP'] = path.join(pluginWorkDir(LIGHTHOUSE_PLUGIN_SLUG), 'tmp');
128
+ try {
129
+ return await fn();
130
+ }
131
+ finally {
132
+ process.env['TEMP'] = originalTmpDir;
133
+ }
134
+ };
135
+ }
110
136
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/runner/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/runner/utils.ts"],"names":[],"mappings":"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"}