@code-pushup/utils 0.101.1 → 0.103.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/utils",
3
- "version": "0.101.1",
3
+ "version": "0.103.0",
4
4
  "description": "Low-level utilities (helper functions, etc.) used by Code PushUp CLI",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/code-pushup/cli/tree/main/packages/utils#readme",
@@ -27,7 +27,7 @@
27
27
  "node": ">=17.0.0"
28
28
  },
29
29
  "dependencies": {
30
- "@code-pushup/models": "0.101.1",
30
+ "@code-pushup/models": "0.103.0",
31
31
  "ansis": "^3.3.0",
32
32
  "build-md": "^0.4.2",
33
33
  "bundle-require": "^5.1.0",
@@ -0,0 +1,44 @@
1
+ export type Microseconds = number;
2
+ export type Milliseconds = number;
3
+ /**
4
+ * Defines clock utilities for time conversions.
5
+ * Handles time origins in NodeJS and the Browser
6
+ * Provides process and thread IDs.
7
+ * @param init
8
+ */
9
+ export type EpochClockOptions = {
10
+ pid?: number;
11
+ tid?: number;
12
+ };
13
+ /**
14
+ * Creates epoch-based clock utility.
15
+ * Epoch time has been the time since January 1, 1970 (UNIX epoch).
16
+ * Date.now gives epoch time in milliseconds.
17
+ * performance.now() + performance.timeOrigin when available is used for higher precision.
18
+ */
19
+ export declare function epochClock(init?: EpochClockOptions): {
20
+ timeOriginMs: number;
21
+ pid: number;
22
+ tid: number;
23
+ epochNowUs: () => Microseconds;
24
+ msToUs: (ms: number) => Microseconds;
25
+ usToUs: (us: number) => Microseconds;
26
+ fromEpochMs: (ms: number) => Microseconds;
27
+ fromEpochUs: (us: number) => Microseconds;
28
+ fromPerfMs: (perfMs: Milliseconds) => Microseconds;
29
+ fromEntryStartTimeMs: (perfMs: Milliseconds) => Microseconds;
30
+ fromDateNowMs: (ms: number) => Microseconds;
31
+ };
32
+ export declare const defaultClock: {
33
+ timeOriginMs: number;
34
+ pid: number;
35
+ tid: number;
36
+ epochNowUs: () => Microseconds;
37
+ msToUs: (ms: number) => Microseconds;
38
+ usToUs: (us: number) => Microseconds;
39
+ fromEpochMs: (ms: number) => Microseconds;
40
+ fromEpochUs: (us: number) => Microseconds;
41
+ fromPerfMs: (perfMs: Milliseconds) => Microseconds;
42
+ fromEntryStartTimeMs: (perfMs: Milliseconds) => Microseconds;
43
+ fromDateNowMs: (ms: number) => Microseconds;
44
+ };
@@ -0,0 +1,36 @@
1
+ import process from 'node:process';
2
+ import { threadId } from 'node:worker_threads';
3
+ const msToUs = (ms) => Math.round(ms * 1000);
4
+ const usToUs = (us) => Math.round(us);
5
+ /**
6
+ * Creates epoch-based clock utility.
7
+ * Epoch time has been the time since January 1, 1970 (UNIX epoch).
8
+ * Date.now gives epoch time in milliseconds.
9
+ * performance.now() + performance.timeOrigin when available is used for higher precision.
10
+ */
11
+ export function epochClock(init = {}) {
12
+ const pid = init.pid ?? process.pid;
13
+ const tid = init.tid ?? threadId;
14
+ const timeOriginMs = performance.timeOrigin;
15
+ const epochNowUs = () => msToUs(timeOriginMs + performance.now());
16
+ const fromEpochUs = usToUs;
17
+ const fromEpochMs = msToUs;
18
+ const fromPerfMs = (perfMs) => msToUs(timeOriginMs + perfMs);
19
+ const fromEntryStartTimeMs = fromPerfMs;
20
+ const fromDateNowMs = fromEpochMs;
21
+ return {
22
+ timeOriginMs,
23
+ pid,
24
+ tid,
25
+ epochNowUs,
26
+ msToUs,
27
+ usToUs,
28
+ fromEpochMs,
29
+ fromEpochUs,
30
+ fromPerfMs,
31
+ fromEntryStartTimeMs,
32
+ fromDateNowMs,
33
+ };
34
+ }
35
+ export const defaultClock = epochClock();
36
+ //# sourceMappingURL=clock-epoch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock-epoch.js","sourceRoot":"","sources":["../../../src/lib/clock-epoch.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAK/C,MAAM,MAAM,GAAG,CAAC,EAAU,EAAgB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AACnE,MAAM,MAAM,GAAG,CAAC,EAAU,EAAgB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAa5D;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAA0B,EAAE;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC;IAEjC,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC;IAE5C,MAAM,UAAU,GAAG,GAAiB,EAAE,CACpC,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;IAE3C,MAAM,WAAW,GAAG,MAAM,CAAC;IAE3B,MAAM,WAAW,GAAG,MAAM,CAAC;IAE3B,MAAM,UAAU,GAAG,CAAC,MAAoB,EAAgB,EAAE,CACxD,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC;IAEhC,MAAM,oBAAoB,GAAG,UAAU,CAAC;IACxC,MAAM,aAAa,GAAG,WAAW,CAAC;IAElC,OAAO;QACL,YAAY;QACZ,GAAG;QACH,GAAG;QAEH,UAAU;QACV,MAAM;QACN,MAAM;QAEN,WAAW;QACX,WAAW;QACX,UAAU;QACV,oBAAoB;QACpB,aAAa;KACd,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,EAAE,CAAC"}
@@ -0,0 +1,21 @@
1
+ export declare const SIGNAL_EXIT_CODES: () => Record<SignalName, number>;
2
+ export declare const DEFAULT_FATAL_EXIT_CODE = 1;
3
+ export type SignalName = 'SIGINT' | 'SIGTERM' | 'SIGQUIT';
4
+ export type FatalKind = 'uncaughtException' | 'unhandledRejection';
5
+ export type CloseReason = {
6
+ kind: 'signal';
7
+ signal: SignalName;
8
+ } | {
9
+ kind: 'fatal';
10
+ fatal: FatalKind;
11
+ } | {
12
+ kind: 'exit';
13
+ };
14
+ export type ExitHandlerOptions = {
15
+ onExit?: (code: number, reason: CloseReason) => void;
16
+ onError?: (err: unknown, kind: FatalKind) => void;
17
+ exitOnFatal?: boolean;
18
+ exitOnSignal?: boolean;
19
+ fatalExitCode?: number;
20
+ };
21
+ export declare function installExitHandlers(options?: ExitHandlerOptions): void;
@@ -0,0 +1,64 @@
1
+ import os from 'node:os';
2
+ import process from 'node:process';
3
+ // POSIX shells convention: exit status = 128 + signal number
4
+ // https://www.gnu.org/software/bash/manual/html_node/Exit-Status.html#:~:text=When%20a%20command%20terminates%20on%20a%20fatal%20signal%20whose%20number%20is%20N%2C%20Bash%20uses%20the%20value%20128%2BN%20as%20the%20exit%20status.
5
+ const UNIX_SIGNAL_EXIT_CODE_OFFSET = 128;
6
+ const unixSignalExitCode = (signalNumber) => UNIX_SIGNAL_EXIT_CODE_OFFSET + signalNumber;
7
+ const SIGINT_CODE = 2;
8
+ const SIGTERM_CODE = 15;
9
+ const SIGQUIT_CODE = 3;
10
+ export const SIGNAL_EXIT_CODES = () => {
11
+ const isWindowsRuntime = os.platform() === 'win32';
12
+ return {
13
+ SIGINT: isWindowsRuntime ? SIGINT_CODE : unixSignalExitCode(SIGINT_CODE),
14
+ SIGTERM: unixSignalExitCode(SIGTERM_CODE),
15
+ SIGQUIT: unixSignalExitCode(SIGQUIT_CODE),
16
+ };
17
+ };
18
+ export const DEFAULT_FATAL_EXIT_CODE = 1;
19
+ export function installExitHandlers(options = {}) {
20
+ // eslint-disable-next-line functional/no-let
21
+ let closedReason;
22
+ const { onExit, onError, exitOnFatal, exitOnSignal, fatalExitCode = DEFAULT_FATAL_EXIT_CODE, } = options;
23
+ const close = (code, reason) => {
24
+ if (closedReason) {
25
+ return;
26
+ }
27
+ closedReason = reason;
28
+ onExit?.(code, reason);
29
+ };
30
+ process.on('uncaughtException', err => {
31
+ onError?.(err, 'uncaughtException');
32
+ if (exitOnFatal) {
33
+ close(fatalExitCode, {
34
+ kind: 'fatal',
35
+ fatal: 'uncaughtException',
36
+ });
37
+ }
38
+ });
39
+ process.on('unhandledRejection', reason => {
40
+ onError?.(reason, 'unhandledRejection');
41
+ if (exitOnFatal) {
42
+ close(fatalExitCode, {
43
+ kind: 'fatal',
44
+ fatal: 'unhandledRejection',
45
+ });
46
+ }
47
+ });
48
+ ['SIGINT', 'SIGTERM', 'SIGQUIT'].forEach(signal => {
49
+ process.on(signal, () => {
50
+ close(SIGNAL_EXIT_CODES()[signal], { kind: 'signal', signal });
51
+ if (exitOnSignal) {
52
+ // eslint-disable-next-line n/no-process-exit
53
+ process.exit(SIGNAL_EXIT_CODES()[signal]);
54
+ }
55
+ });
56
+ });
57
+ process.on('exit', code => {
58
+ if (closedReason) {
59
+ return;
60
+ }
61
+ close(code, { kind: 'exit' });
62
+ });
63
+ }
64
+ //# sourceMappingURL=exit-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-process.js","sourceRoot":"","sources":["../../../src/lib/exit-process.ts"],"names":[],"mappings":"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"}
package/src/lib/logger.js CHANGED
@@ -1,19 +1,14 @@
1
1
  /* eslint-disable max-lines, no-console, @typescript-eslint/class-methods-use-this */
2
2
  import ansis, {} from 'ansis';
3
- import os from 'node:os';
4
3
  import ora, {} from 'ora';
5
4
  import { formatCommandStatus } from './command.js';
6
5
  import { dateToUnixTimestamp } from './dates.js';
7
6
  import { isEnvVarEnabled } from './env.js';
8
7
  import { stringifyError } from './errors.js';
8
+ import { SIGNAL_EXIT_CODES } from './exit-process.js';
9
9
  import { formatDuration, indentLines, transformLines } from './formatting.js';
10
10
  import { settlePromise } from './promises.js';
11
11
  const HEX_RADIX = 16;
12
- const SIGINT_CODE = 2;
13
- // https://www.gnu.org/software/bash/manual/html_node/Exit-Status.html#:~:text=When%20a%20command%20terminates%20on%20a%20fatal%20signal%20whose%20number%20is%20N%2C%20Bash%20uses%20the%20value%20128%2BN%20as%20the%20exit%20status.
14
- const SIGNALS_CODE_OFFSET_UNIX = 128;
15
- const SIGINT_EXIT_CODE_UNIX = SIGNALS_CODE_OFFSET_UNIX + SIGINT_CODE;
16
- const SIGINT_EXIT_CODE_WINDOWS = SIGINT_CODE;
17
12
  /**
18
13
  * Rich logging implementation for Code PushUp CLI, plugins, etc.
19
14
  *
@@ -55,9 +50,7 @@ export class Logger {
55
50
  this.newline();
56
51
  this.error(ansis.bold('Cancelled by SIGINT'));
57
52
  // eslint-disable-next-line n/no-process-exit, unicorn/no-process-exit
58
- process.exit(os.platform() === 'win32'
59
- ? SIGINT_EXIT_CODE_WINDOWS
60
- : SIGINT_EXIT_CODE_UNIX);
53
+ process.exit(SIGNAL_EXIT_CODES().SIGINT);
61
54
  };
62
55
  /**
63
56
  * Logs an error to the console (red).
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/lib/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/lib/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type PerformanceEntry } from 'node:perf_hooks';
2
+ import type { Buffered, Encoder, Observer, Sink } from './sink-source.types.js';
3
+ export declare const DEFAULT_FLUSH_THRESHOLD = 20;
4
+ export type PerformanceObserverOptions<T> = {
5
+ sink: Sink<T, unknown>;
6
+ encode: (entry: PerformanceEntry) => T[];
7
+ buffered?: boolean;
8
+ flushThreshold?: number;
9
+ };
10
+ export declare class PerformanceObserverSink<T> implements Observer, Buffered, Encoder<PerformanceEntry, T[]> {
11
+ #private;
12
+ constructor(options: PerformanceObserverOptions<T>);
13
+ encode(entry: PerformanceEntry): T[];
14
+ subscribe(): void;
15
+ flush(): void;
16
+ unsubscribe(): void;
17
+ isSubscribed(): boolean;
18
+ }
@@ -0,0 +1,71 @@
1
+ import { PerformanceObserver, performance, } from 'node:perf_hooks';
2
+ const OBSERVED_TYPES = ['mark', 'measure'];
3
+ export const DEFAULT_FLUSH_THRESHOLD = 20;
4
+ export class PerformanceObserverSink {
5
+ #encode;
6
+ #buffered;
7
+ #flushThreshold;
8
+ #sink;
9
+ #observer;
10
+ #pendingCount = 0;
11
+ // "cursor" per type: how many we already wrote from the global buffer
12
+ #written;
13
+ constructor(options) {
14
+ const { encode, sink, buffered, flushThreshold } = options;
15
+ this.#encode = encode;
16
+ this.#written = new Map(OBSERVED_TYPES.map(t => [t, 0]));
17
+ this.#sink = sink;
18
+ this.#buffered = buffered ?? false;
19
+ this.#flushThreshold = flushThreshold ?? DEFAULT_FLUSH_THRESHOLD;
20
+ }
21
+ encode(entry) {
22
+ return this.#encode(entry);
23
+ }
24
+ subscribe() {
25
+ if (this.#observer) {
26
+ return;
27
+ }
28
+ // Only used to trigger the flush - it's not processing the entries, just counting them
29
+ this.#observer = new PerformanceObserver((list) => {
30
+ const batchCount = OBSERVED_TYPES.reduce((n, t) => n + list.getEntriesByType(t).length, 0);
31
+ this.#pendingCount += batchCount;
32
+ if (this.#pendingCount >= this.#flushThreshold) {
33
+ this.flush();
34
+ }
35
+ });
36
+ this.#observer.observe({
37
+ entryTypes: OBSERVED_TYPES,
38
+ buffered: this.#buffered,
39
+ });
40
+ }
41
+ flush() {
42
+ if (!this.#observer) {
43
+ return;
44
+ }
45
+ OBSERVED_TYPES.forEach(t => {
46
+ const written = this.#written.get(t) ?? 0;
47
+ const fresh = performance.getEntriesByType(t).slice(written);
48
+ try {
49
+ fresh
50
+ .flatMap(entry => this.encode(entry))
51
+ .forEach(item => this.#sink.write(item));
52
+ this.#written.set(t, written + fresh.length);
53
+ }
54
+ catch (error) {
55
+ throw new Error('PerformanceObserverSink failed to write items to sink.', { cause: error });
56
+ }
57
+ });
58
+ this.#pendingCount = 0;
59
+ }
60
+ unsubscribe() {
61
+ if (!this.#observer) {
62
+ return;
63
+ }
64
+ this.#observer?.disconnect();
65
+ this.#observer = undefined;
66
+ }
67
+ isSubscribed() {
68
+ return this.#observer !== undefined;
69
+ }
70
+ }
71
+ //# sourceMappingURL=performance-observer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-observer.js","sourceRoot":"","sources":["../../../src/lib/performance-observer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ export type Encoder<I, O> = {
2
+ encode: (input: I) => O;
3
+ };
4
+ export type Decoder<O, I> = {
5
+ decode: (output: O) => I;
6
+ };
7
+ export type Sink<I, O> = {
8
+ open: () => void;
9
+ write: (input: I) => void;
10
+ close: () => void;
11
+ isClosed: () => boolean;
12
+ } & Encoder<I, O>;
13
+ export type Buffered = {
14
+ flush: () => void;
15
+ };
16
+ export type BufferedSink<I, O> = Sink<I, O> & Buffered;
17
+ export type Source<I, O = unknown> = {
18
+ read?: () => O;
19
+ decode?: (input: I) => O;
20
+ };
21
+ export type Observer = {
22
+ subscribe: () => void;
23
+ unsubscribe: () => void;
24
+ isSubscribed: () => boolean;
25
+ };
26
+ export type Recoverable = {
27
+ recover: () => RecoverResult;
28
+ repack: () => void;
29
+ finalize: () => void;
30
+ };
31
+ export type RecoverResult<T = unknown> = {
32
+ records: T[];
33
+ errors: {
34
+ lineNo: number;
35
+ line: string;
36
+ error: Error;
37
+ }[];
38
+ partialTail: string | null;
39
+ };
40
+ export type RecoverOptions = {
41
+ keepInvalid?: boolean;
42
+ };
43
+ export type Output<I, O> = {} & BufferedSink<I, O>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sink-source.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sink-source.types.js","sourceRoot":"","sources":["../../../src/lib/sink-source.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ import type { DevToolsColor, DevToolsProperties, MarkOptionsWithDevtools, MarkerPayload, MeasureOptionsWithDevtools, TrackEntryPayload } from './user-timing-extensibility-api.type.js';
2
+ export declare function mergePropertiesWithOverwrite(baseProperties: DevToolsProperties | undefined, overrideProperties?: DevToolsProperties | undefined): [string, string | number | boolean | object | undefined][];
3
+ export declare function markerPayload(options?: Omit<MarkerPayload, 'dataType'>): {
4
+ color?: DevToolsColor;
5
+ tooltipText?: string;
6
+ properties?: DevToolsProperties;
7
+ dataType: "marker";
8
+ };
9
+ export declare function trackEntryPayload(options: Omit<TrackEntryPayload, 'dataType'>): {
10
+ color?: DevToolsColor | undefined;
11
+ tooltipText?: string | undefined;
12
+ properties?: DevToolsProperties | undefined;
13
+ trackGroup?: string | undefined;
14
+ dataType: "track-entry";
15
+ track: string;
16
+ };
17
+ export declare function markerErrorPayload<T extends DevToolsColor>(options?: Omit<MarkerPayload, 'dataType' | 'color'>): {
18
+ tooltipText?: string;
19
+ properties?: DevToolsProperties;
20
+ dataType: "marker";
21
+ color: T;
22
+ };
23
+ export declare function trackEntryErrorPayload<T extends string, C extends DevToolsColor>(options: Omit<TrackEntryPayload, 'color' | 'dataType'> & {
24
+ track: T;
25
+ color?: C;
26
+ }): {
27
+ tooltipText?: string | undefined;
28
+ properties?: DevToolsProperties | undefined;
29
+ trackGroup?: string | undefined;
30
+ dataType: "track-entry";
31
+ color: DevToolsColor;
32
+ track: T;
33
+ };
34
+ export declare function errorToDevToolsProperties(e: unknown): (["Error Type", string] | ["Error Message", string])[];
35
+ export declare function errorToEntryMeta(e: unknown, options?: {
36
+ tooltipText?: string;
37
+ properties?: DevToolsProperties;
38
+ }): {
39
+ tooltipText?: string | undefined;
40
+ properties: [string, string | number | boolean | object | undefined][];
41
+ };
42
+ export declare function errorToTrackEntryPayload<T extends string>(error: unknown, detail: Omit<TrackEntryPayload, 'color' | 'dataType'> & {
43
+ track: T;
44
+ }): {
45
+ tooltipText?: string | undefined;
46
+ properties: [string, string | number | boolean | object | undefined][];
47
+ track: T;
48
+ trackGroup?: string | undefined;
49
+ dataType: "track-entry";
50
+ color: "error";
51
+ };
52
+ export declare function errorToMarkerPayload(error: unknown, detail?: Omit<MarkerPayload, 'color' | 'dataType'>): {
53
+ tooltipText?: string | undefined;
54
+ properties: [string, string | number | boolean | object | undefined][];
55
+ dataType: "marker";
56
+ color: "error";
57
+ };
58
+ /**
59
+ * asOptions wraps a DevTools payload into the `detail` property of User Timing entry options.
60
+ *
61
+ * @example
62
+ * profiler.mark('mark', asOptions({
63
+ * dataType: 'marker',
64
+ * color: 'error',
65
+ * tooltipText: 'This is a marker',
66
+ * properties: [
67
+ * ['str', 'This is a detail property']
68
+ * ],
69
+ * }));
70
+ */
71
+ export declare function asOptions<T extends MarkerPayload>(devtools?: T | null): MarkOptionsWithDevtools<T>;
72
+ export declare function asOptions<T extends TrackEntryPayload>(devtools?: T | null): MeasureOptionsWithDevtools<T>;
@@ -0,0 +1,80 @@
1
+ const dataTypeTrackEntry = 'track-entry';
2
+ const dataTypeMarker = 'marker';
3
+ export function mergePropertiesWithOverwrite(baseProperties, overrideProperties) {
4
+ return [
5
+ ...new Map([...(baseProperties ?? []), ...(overrideProperties ?? [])]),
6
+ ];
7
+ }
8
+ export function markerPayload(options) {
9
+ return {
10
+ dataType: dataTypeMarker,
11
+ ...options,
12
+ };
13
+ }
14
+ export function trackEntryPayload(options) {
15
+ const { track, ...rest } = options;
16
+ return {
17
+ dataType: dataTypeTrackEntry,
18
+ track,
19
+ ...rest,
20
+ };
21
+ }
22
+ export function markerErrorPayload(options) {
23
+ return {
24
+ dataType: dataTypeMarker,
25
+ color: 'error',
26
+ ...options,
27
+ };
28
+ }
29
+ export function trackEntryErrorPayload(options) {
30
+ const { track, color = 'error', ...restOptions } = options;
31
+ return {
32
+ dataType: dataTypeTrackEntry,
33
+ color,
34
+ track,
35
+ ...restOptions,
36
+ };
37
+ }
38
+ export function errorToDevToolsProperties(e) {
39
+ const name = e instanceof Error ? e.name : 'UnknownError';
40
+ const message = e instanceof Error ? e.message : String(e);
41
+ return [
42
+ ['Error Type', name],
43
+ ['Error Message', message],
44
+ ];
45
+ }
46
+ export function errorToEntryMeta(e, options) {
47
+ const { properties, tooltipText } = options ?? {};
48
+ const props = mergePropertiesWithOverwrite(errorToDevToolsProperties(e), properties);
49
+ return {
50
+ properties: props,
51
+ ...(tooltipText ? { tooltipText } : {}),
52
+ };
53
+ }
54
+ export function errorToTrackEntryPayload(error, detail) {
55
+ const { properties, tooltipText, ...trackPayload } = detail;
56
+ return {
57
+ dataType: dataTypeTrackEntry,
58
+ color: 'error',
59
+ ...trackPayload,
60
+ ...errorToEntryMeta(error, {
61
+ properties,
62
+ tooltipText,
63
+ }),
64
+ };
65
+ }
66
+ export function errorToMarkerPayload(error, detail) {
67
+ const { properties, tooltipText } = detail ?? {};
68
+ return {
69
+ dataType: dataTypeMarker,
70
+ color: 'error',
71
+ ...errorToEntryMeta(error, {
72
+ properties,
73
+ tooltipText,
74
+ }),
75
+ };
76
+ }
77
+ export function asOptions(devtools) {
78
+ return devtools == null ? { detail: {} } : { detail: { devtools } };
79
+ }
80
+ //# sourceMappingURL=user-timing-extensibility-api-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-timing-extensibility-api-utils.js","sourceRoot":"","sources":["../../../src/lib/user-timing-extensibility-api-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ import type { MarkOptions, MeasureOptions } from 'node:perf_hooks';
2
+ /**
3
+ * Color options for feedback states in DevTools.
4
+ * Used for error and warning states on marker and track entries.
5
+ * @example
6
+ * - 'error' - red
7
+ * - 'warning' - yellow
8
+ */
9
+ export type DevToolsFeedbackColor = 'error' | 'warning';
10
+ /**
11
+ * Color options for action states in DevTools.
12
+ * Used for valid states on marker and track entries.
13
+ * @example
14
+ * - 'primary' - blue (default)
15
+ * - 'primary-dark' - dark blue
16
+ * - 'primary-light' - light blue
17
+ * - 'secondary' - purple
18
+ * - 'secondary-dark' - dark purple
19
+ * - 'secondary-light' - light purple
20
+ * - 'tertiary' - green
21
+ * - 'tertiary-dark' - dark green
22
+ * - 'tertiary-light' - light green
23
+ */
24
+ export type DevToolsActionColor = 'primary' | 'primary-dark' | 'primary-light' | 'secondary' | 'secondary-dark' | 'secondary-light' | 'tertiary' | 'tertiary-dark' | 'tertiary-light';
25
+ /**
26
+ * Union type of all available DevTools color options.
27
+ */
28
+ export type DevToolsColor = DevToolsFeedbackColor | DevToolsActionColor;
29
+ /**
30
+ * Array of key-value pairs for detailed DevTools properties.
31
+ */
32
+ export type DevToolsProperties = [
33
+ key: string,
34
+ value: string | number | boolean | object | undefined
35
+ ][];
36
+ /**
37
+ * EntryMeta is used to store metadata about a track entry.
38
+ * @property {string} [tooltipText] - Short description for tooltip on hover
39
+ * @property {DevToolsProperties} [properties] - Key-value pairs for detailed view on click.
40
+ * It provides better styling of values including features like automatic links rendering.
41
+ */
42
+ export type EntryMeta = {
43
+ tooltipText?: string;
44
+ properties?: DevToolsProperties;
45
+ };
46
+ /**
47
+ * Styling options for track entries in DevTools.
48
+ * @property {DevToolsColor} [color] - rendered color of background and border, defaults to "primary"
49
+ */
50
+ export type TrackStyle = {
51
+ color?: DevToolsColor;
52
+ };
53
+ /**
54
+ * Metadata for organizing track entries in DevTools.
55
+ * @property {string} track - Name of the custom track
56
+ * @property {string} [trackGroup] - Group for organizing tracks
57
+ */
58
+ export type TrackMeta = {
59
+ track: string;
60
+ trackGroup?: string;
61
+ };
62
+ /**
63
+ * Base type combining entry metadata and styling for DevTools tracks.
64
+ */
65
+ export type TrackBase = EntryMeta & TrackStyle;
66
+ /**
67
+ * Payload for track entries in DevTools Performance panel.
68
+ * @property {'track-entry'} [dataType] - Defaults to "track-entry"
69
+ *
70
+ * This type is visible in a custom track with name defined in `track` property.
71
+ */
72
+ export type TrackEntryPayload = {
73
+ dataType?: 'track-entry';
74
+ } & TrackBase & TrackMeta;
75
+ /**
76
+ * Payload for marker entries in DevTools Performance panel.
77
+ * @property {'marker'} dataType - Identifies as a marker
78
+ * This type is visible as a marker on top of all tracks and in addition creates a vertical line spanning all lanes in the performance palen.
79
+ */
80
+ export type MarkerPayload = {
81
+ dataType: 'marker';
82
+ } & TrackBase;
83
+ /**
84
+ * Utility type that forces a color property to be 'error'.
85
+ */
86
+ export type WithErrorColor<T extends {
87
+ color?: DevToolsColor;
88
+ }> = Omit<T, 'color'> & {
89
+ color: 'error';
90
+ };
91
+ /**
92
+ * Utility type that adds an optional devtools payload property.
93
+ */
94
+ export type WithDevToolsPayload<T extends TrackEntryPayload | MarkerPayload> = {
95
+ devtools?: T;
96
+ };
97
+ /**
98
+ * Extended MarkOptions that supports DevTools payload in detail.
99
+ * @example
100
+ * const options: MarkOptionsWithDevtools = {
101
+ * detail: {
102
+ * devtools: {
103
+ * dataType: 'marker',
104
+ * color: 'error',
105
+ * },
106
+ * },
107
+ * }
108
+ * profiler.mark('start-program', options);
109
+ */
110
+ export type MarkOptionsWithDevtools<T extends TrackEntryPayload | MarkerPayload> = {
111
+ detail?: WithDevToolsPayload<T>;
112
+ } & Omit<MarkOptions, 'detail'>;
113
+ /**
114
+ * Extended MeasureOptions that supports DevTools payload in detail.
115
+ * @example
116
+ * const options: MeasureOptionsWithDevtools = {
117
+ * detail: {
118
+ * devtools: {
119
+ * dataType: 'track-entry',
120
+ * color: 'primary',
121
+ * }
122
+ * }
123
+ * }
124
+ * profiler.measure('load-program', 'start-program', 'end-program', options);
125
+ */
126
+ export type MeasureOptionsWithDevtools<T extends TrackEntryPayload> = {
127
+ detail?: WithDevToolsPayload<T>;
128
+ } & Omit<MeasureOptions, 'detail'>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=user-timing-extensibility-api.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-timing-extensibility-api.type.js","sourceRoot":"","sources":["../../../src/lib/user-timing-extensibility-api.type.ts"],"names":[],"mappings":""}