diff options
| author | altaf-creator <dev@altafcreator.com> | 2025-11-09 11:15:19 +0800 |
|---|---|---|
| committer | altaf-creator <dev@altafcreator.com> | 2025-11-09 11:15:19 +0800 |
| commit | 8eff962cab608341a6f2fedc640a0e32d96f26e2 (patch) | |
| tree | 05534d1a720ddc3691d346c69b4972555820a061 /frontend-old/node_modules/web-vitals/dist/modules/types | |
pain
Diffstat (limited to 'frontend-old/node_modules/web-vitals/dist/modules/types')
16 files changed, 611 insertions, 0 deletions
diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/base.d.ts b/frontend-old/node_modules/web-vitals/dist/modules/types/base.d.ts new file mode 100644 index 0000000..944292b --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/base.d.ts @@ -0,0 +1,101 @@ +import type { CLSMetric, CLSMetricWithAttribution } from './cls.js'; +import type { FCPMetric, FCPMetricWithAttribution } from './fcp.js'; +import type { FIDMetric, FIDMetricWithAttribution } from './fid.js'; +import type { INPMetric, INPMetricWithAttribution } from './inp.js'; +import type { LCPMetric, LCPMetricWithAttribution } from './lcp.js'; +import type { TTFBMetric, TTFBMetricWithAttribution } from './ttfb.js'; +export interface Metric { + /** + * The name of the metric (in acronym form). + */ + name: 'CLS' | 'FCP' | 'FID' | 'INP' | 'LCP' | 'TTFB'; + /** + * The current value of the metric. + */ + value: number; + /** + * The rating as to whether the metric value is within the "good", + * "needs improvement", or "poor" thresholds of the metric. + */ + rating: 'good' | 'needs-improvement' | 'poor'; + /** + * The delta between the current value and the last-reported value. + * On the first report, `delta` and `value` will always be the same. + */ + delta: number; + /** + * A unique ID representing this particular metric instance. This ID can + * be used by an analytics tool to dedupe multiple values sent for the same + * metric instance, or to group multiple deltas together and calculate a + * total. It can also be used to differentiate multiple different metric + * instances sent from the same page, which can happen if the page is + * restored from the back/forward cache (in that case new metrics object + * get created). + */ + id: string; + /** + * Any performance entries relevant to the metric value calculation. + * The array may also be empty if the metric value was not based on any + * entries (e.g. a CLS value of 0 given no layout shifts). + */ + entries: PerformanceEntry[]; + /** + * The type of navigation. + * + * This will be the value returned by the Navigation Timing API (or + * `undefined` if the browser doesn't support that API), with the following + * exceptions: + * - 'back-forward-cache': for pages that are restored from the bfcache. + * - 'back_forward' is renamed to 'back-forward' for consistency. + * - 'prerender': for pages that were prerendered. + * - 'restore': for pages that were discarded by the browser and then + * restored by the user. + */ + navigationType: 'navigate' | 'reload' | 'back-forward' | 'back-forward-cache' | 'prerender' | 'restore'; +} +/** The union of supported metric types. */ +export type MetricType = CLSMetric | FCPMetric | FIDMetric | INPMetric | LCPMetric | TTFBMetric; +/** The union of supported metric attribution types. */ +export type MetricWithAttribution = CLSMetricWithAttribution | FCPMetricWithAttribution | FIDMetricWithAttribution | INPMetricWithAttribution | LCPMetricWithAttribution | TTFBMetricWithAttribution; +/** + * The thresholds of metric's "good", "needs improvement", and "poor" ratings. + * + * - Metric values up to and including [0] are rated "good" + * - Metric values up to and including [1] are rated "needs improvement" + * - Metric values above [1] are "poor" + * + * | Metric value | Rating | + * | --------------- | ------------------- | + * | ≦ [0] | "good" | + * | > [0] and ≦ [1] | "needs improvement" | + * | > [1] | "poor" | + */ +export type MetricRatingThresholds = [number, number]; +/** + * @deprecated Use metric-specific function types instead, such as: + * `(metric: LCPMetric) => void`. If a single callback type is needed for + * multiple metrics, use `(metric: MetricType) => void`. + */ +export interface ReportCallback { + (metric: MetricType): void; +} +export interface ReportOpts { + reportAllChanges?: boolean; + durationThreshold?: number; +} +/** + * The loading state of the document. Note: this value is similar to + * `document.readyState` but it subdivides the "interactive" state into the + * time before and after the DOMContentLoaded event fires. + * + * State descriptions: + * - `loading`: the initial document response has not yet been fully downloaded + * and parsed. This is equivalent to the corresponding `readyState` value. + * - `dom-interactive`: the document has been fully loaded and parsed, but + * scripts may not have yet finished loading and executing. + * - `dom-content-loaded`: the document is fully loaded and parsed, and all + * scripts (except `async` scripts) have loaded and finished executing. + * - `complete`: the document and all of its sub-resources have finished + * loading. This is equivalent to the corresponding `readyState` value. + */ +export type LoadState = 'loading' | 'dom-interactive' | 'dom-content-loaded' | 'complete'; diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/base.js b/frontend-old/node_modules/web-vitals/dist/modules/types/base.js new file mode 100644 index 0000000..e997715 --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/base.js @@ -0,0 +1,16 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export {}; diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/cls.d.ts b/frontend-old/node_modules/web-vitals/dist/modules/types/cls.d.ts new file mode 100644 index 0000000..f33cf17 --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/cls.d.ts @@ -0,0 +1,55 @@ +import type { LoadState, Metric } from './base.js'; +/** + * A CLS-specific version of the Metric object. + */ +export interface CLSMetric extends Metric { + name: 'CLS'; + entries: LayoutShift[]; +} +/** + * An object containing potentially-helpful debugging information that + * can be sent along with the CLS value for the current page visit in order + * to help identify issues happening to real-users in the field. + */ +export interface CLSAttribution { + /** + * A selector identifying the first element (in document order) that + * shifted when the single largest layout shift contributing to the page's + * CLS score occurred. + */ + largestShiftTarget?: string; + /** + * The time when the single largest layout shift contributing to the page's + * CLS score occurred. + */ + largestShiftTime?: DOMHighResTimeStamp; + /** + * The layout shift score of the single largest layout shift contributing to + * the page's CLS score. + */ + largestShiftValue?: number; + /** + * The `LayoutShiftEntry` representing the single largest layout shift + * contributing to the page's CLS score. (Useful when you need more than just + * `largestShiftTarget`, `largestShiftTime`, and `largestShiftValue`). + */ + largestShiftEntry?: LayoutShift; + /** + * The first element source (in document order) among the `sources` list + * of the `largestShiftEntry` object. (Also useful when you need more than + * just `largestShiftTarget`, `largestShiftTime`, and `largestShiftValue`). + */ + largestShiftSource?: LayoutShiftAttribution; + /** + * The loading state of the document at the time when the largest layout + * shift contribution to the page's CLS score occurred (see `LoadState` + * for details). + */ + loadState?: LoadState; +} +/** + * A CLS-specific version of the Metric object with attribution. + */ +export interface CLSMetricWithAttribution extends CLSMetric { + attribution: CLSAttribution; +} diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/cls.js b/frontend-old/node_modules/web-vitals/dist/modules/types/cls.js new file mode 100644 index 0000000..e997715 --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/cls.js @@ -0,0 +1,16 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export {}; diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/fcp.d.ts b/frontend-old/node_modules/web-vitals/dist/modules/types/fcp.d.ts new file mode 100644 index 0000000..fa4a6e2 --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/fcp.d.ts @@ -0,0 +1,46 @@ +import type { LoadState, Metric } from './base.js'; +/** + * An FCP-specific version of the Metric object. + */ +export interface FCPMetric extends Metric { + name: 'FCP'; + entries: PerformancePaintTiming[]; +} +/** + * An object containing potentially-helpful debugging information that + * can be sent along with the FCP value for the current page visit in order + * to help identify issues happening to real-users in the field. + */ +export interface FCPAttribution { + /** + * The time from when the user initiates loading the page until when the + * browser receives the first byte of the response (a.k.a. TTFB). + */ + timeToFirstByte: number; + /** + * The delta between TTFB and the first contentful paint (FCP). + */ + firstByteToFCP: number; + /** + * The loading state of the document at the time when FCP `occurred (see + * `LoadState` for details). Ideally, documents can paint before they finish + * loading (e.g. the `loading` or `dom-interactive` phases). + */ + loadState: LoadState; + /** + * The `PerformancePaintTiming` entry corresponding to FCP. + */ + fcpEntry?: PerformancePaintTiming; + /** + * The `navigation` entry of the current page, which is useful for diagnosing + * general page load issues. This can be used to access `serverTiming` for example: + * navigationEntry?.serverTiming + */ + navigationEntry?: PerformanceNavigationTiming; +} +/** + * An FCP-specific version of the Metric object with attribution. + */ +export interface FCPMetricWithAttribution extends FCPMetric { + attribution: FCPAttribution; +} diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/fcp.js b/frontend-old/node_modules/web-vitals/dist/modules/types/fcp.js new file mode 100644 index 0000000..e997715 --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/fcp.js @@ -0,0 +1,16 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export {}; diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/fid.d.ts b/frontend-old/node_modules/web-vitals/dist/modules/types/fid.d.ts new file mode 100644 index 0000000..25c5bd7 --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/fid.d.ts @@ -0,0 +1,46 @@ +import type { LoadState, Metric } from './base.js'; +/** + * An FID-specific version of the Metric object. + */ +export interface FIDMetric extends Metric { + name: 'FID'; + entries: PerformanceEventTiming[]; +} +/** + * An object containing potentially-helpful debugging information that + * can be sent along with the FID value for the current page visit in order + * to help identify issues happening to real-users in the field. + */ +export interface FIDAttribution { + /** + * A selector identifying the element that the user interacted with. This + * element will be the `target` of the `event` dispatched. + */ + eventTarget: string; + /** + * The time when the user interacted. This time will match the `timeStamp` + * value of the `event` dispatched. + */ + eventTime: number; + /** + * The `type` of the `event` dispatched from the user interaction. + */ + eventType: string; + /** + * The `PerformanceEventTiming` entry corresponding to FID. + */ + eventEntry: PerformanceEventTiming; + /** + * The loading state of the document at the time when the first interaction + * occurred (see `LoadState` for details). If the first interaction occurred + * while the document was loading and executing script (e.g. usually in the + * `dom-interactive` phase) it can result in long input delays. + */ + loadState: LoadState; +} +/** + * An FID-specific version of the Metric object with attribution. + */ +export interface FIDMetricWithAttribution extends FIDMetric { + attribution: FIDAttribution; +} diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/fid.js b/frontend-old/node_modules/web-vitals/dist/modules/types/fid.js new file mode 100644 index 0000000..e997715 --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/fid.js @@ -0,0 +1,16 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export {}; diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/inp.d.ts b/frontend-old/node_modules/web-vitals/dist/modules/types/inp.d.ts new file mode 100644 index 0000000..c60e86a --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/inp.d.ts @@ -0,0 +1,103 @@ +import type { LoadState, Metric } from './base.js'; +/** + * An INP-specific version of the Metric object. + */ +export interface INPMetric extends Metric { + name: 'INP'; + entries: PerformanceEventTiming[]; +} +/** + * An object containing potentially-helpful debugging information that + * can be sent along with the INP value for the current page visit in order + * to help identify issues happening to real-users in the field. + */ +export interface INPAttribution { + /** + * A selector identifying the element that the user first interacted with + * as part of the frame where the INP candidate interaction occurred. + * If this value is an empty string, that generally means the element was + * removed from the DOM after the interaction. + */ + interactionTarget: string; + /** + * A reference to the HTML element identified by `interactionTargetSelector`. + * NOTE: for attribution purpose, a selector identifying the element is + * typically more useful than the element itself. However, the element is + * also made available in case additional context is needed. + */ + interactionTargetElement: Node | undefined; + /** + * The time when the user first interacted during the frame where the INP + * candidate interaction occurred (if more than one interaction occurred + * within the frame, only the first time is reported). + */ + interactionTime: DOMHighResTimeStamp; + /** + * The best-guess timestamp of the next paint after the interaction. + * In general, this timestamp is the same as the `startTime + duration` of + * the event timing entry. However, since `duration` values are rounded to + * the nearest 8ms, it can sometimes appear that the paint occurred before + * processing ended (which cannot happen). This value clamps the paint time + * so it's always after `processingEnd` from the Event Timing API and + * `renderStart` from the Long Animation Frame API (where available). + * It also averages the duration values for all entries in the same + * animation frame, which should be closer to the "real" value. + */ + nextPaintTime: DOMHighResTimeStamp; + /** + * The type of interaction, based on the event type of the `event` entry + * that corresponds to the interaction (i.e. the first `event` entry + * containing an `interactionId` dispatched in a given animation frame). + * For "pointerdown", "pointerup", or "click" events this will be "pointer", + * and for "keydown" or "keyup" events this will be "keyboard". + */ + interactionType: 'pointer' | 'keyboard'; + /** + * An array of Event Timing entries that were processed within the same + * animation frame as the INP candidate interaction. + */ + processedEventEntries: PerformanceEventTiming[]; + /** + * If the browser supports the Long Animation Frame API, this array will + * include any `long-animation-frame` entries that intersect with the INP + * candidate interaction's `startTime` and the `processingEnd` time of the + * last event processed within that animation frame. If the browser does not + * support the Long Animation Frame API or no `long-animation-frame` entries + * are detect, this array will be empty. + */ + longAnimationFrameEntries: PerformanceLongAnimationFrameTiming[]; + /** + * The time from when the user interacted with the page until when the + * browser was first able to start processing event listeners for that + * interaction. This time captures the delay before event processing can + * begin due to the main thread being busy with other work. + */ + inputDelay: number; + /** + * The time from when the first event listener started running in response to + * the user interaction until when all event listener processing has finished. + */ + processingDuration: number; + /** + * The time from when the browser finished processing all event listeners for + * the user interaction until the next frame is presented on the screen and + * visible to the user. This time includes work on the main thread (such as + * `requestAnimationFrame()` callbacks, `ResizeObserver` and + * `IntersectionObserver` callbacks, and style/layout calculation) as well + * as off-main-thread work (such as compositor, GPU, and raster work). + */ + presentationDelay: number; + /** + * The loading state of the document at the time when the interaction + * corresponding to INP occurred (see `LoadState` for details). If the + * interaction occurred while the document was loading and executing script + * (e.g. usually in the `dom-interactive` phase) it can result in long delays. + */ + loadState: LoadState; +} +/** + * An INP-specific version of the Metric object with attribution. + */ +export interface INPMetricWithAttribution extends INPMetric { + attribution: INPAttribution; +} diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/inp.js b/frontend-old/node_modules/web-vitals/dist/modules/types/inp.js new file mode 100644 index 0000000..e997715 --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/inp.js @@ -0,0 +1,16 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export {}; diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/lcp.d.ts b/frontend-old/node_modules/web-vitals/dist/modules/types/lcp.d.ts new file mode 100644 index 0000000..2e960e9 --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/lcp.d.ts @@ -0,0 +1,69 @@ +import type { Metric } from './base.js'; +/** + * An LCP-specific version of the Metric object. + */ +export interface LCPMetric extends Metric { + name: 'LCP'; + entries: LargestContentfulPaint[]; +} +/** + * An object containing potentially-helpful debugging information that + * can be sent along with the LCP value for the current page visit in order + * to help identify issues happening to real-users in the field. + */ +export interface LCPAttribution { + /** + * The element corresponding to the largest contentful paint for the page. + */ + element?: string; + /** + * The URL (if applicable) of the LCP image resource. If the LCP element + * is a text node, this value will not be set. + */ + url?: string; + /** + * The time from when the user initiates loading the page until when the + * browser receives the first byte of the response (a.k.a. TTFB). See + * [Optimize LCP](https://web.dev/articles/optimize-lcp) for details. + */ + timeToFirstByte: number; + /** + * The delta between TTFB and when the browser starts loading the LCP + * resource (if there is one, otherwise 0). See [Optimize + * LCP](https://web.dev/articles/optimize-lcp) for details. + */ + resourceLoadDelay: number; + /** + * The total time it takes to load the LCP resource itself (if there is one, + * otherwise 0). See [Optimize LCP](https://web.dev/articles/optimize-lcp) for + * details. + */ + resourceLoadDuration: number; + /** + * The delta between when the LCP resource finishes loading until the LCP + * element is fully rendered. See [Optimize + * LCP](https://web.dev/articles/optimize-lcp) for details. + */ + elementRenderDelay: number; + /** + * The `navigation` entry of the current page, which is useful for diagnosing + * general page load issues. This can be used to access `serverTiming` for example: + * navigationEntry?.serverTiming + */ + navigationEntry?: PerformanceNavigationTiming; + /** + * The `resource` entry for the LCP resource (if applicable), which is useful + * for diagnosing resource load issues. + */ + lcpResourceEntry?: PerformanceResourceTiming; + /** + * The `LargestContentfulPaint` entry corresponding to LCP. + */ + lcpEntry?: LargestContentfulPaint; +} +/** + * An LCP-specific version of the Metric object with attribution. + */ +export interface LCPMetricWithAttribution extends LCPMetric { + attribution: LCPAttribution; +} diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/lcp.js b/frontend-old/node_modules/web-vitals/dist/modules/types/lcp.js new file mode 100644 index 0000000..e997715 --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/lcp.js @@ -0,0 +1,16 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export {}; diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/polyfills.d.ts b/frontend-old/node_modules/web-vitals/dist/modules/types/polyfills.d.ts new file mode 100644 index 0000000..e606728 --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/polyfills.d.ts @@ -0,0 +1,4 @@ +export type FirstInputPolyfillEntry = Omit<PerformanceEventTiming, 'processingEnd'>; +export interface FirstInputPolyfillCallback { + (entry: FirstInputPolyfillEntry): void; +} diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/polyfills.js b/frontend-old/node_modules/web-vitals/dist/modules/types/polyfills.js new file mode 100644 index 0000000..e997715 --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/polyfills.js @@ -0,0 +1,16 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export {}; diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/ttfb.d.ts b/frontend-old/node_modules/web-vitals/dist/modules/types/ttfb.d.ts new file mode 100644 index 0000000..485eeb6 --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/ttfb.d.ts @@ -0,0 +1,59 @@ +import type { Metric } from './base.js'; +/** + * A TTFB-specific version of the Metric object. + */ +export interface TTFBMetric extends Metric { + name: 'TTFB'; + entries: PerformanceNavigationTiming[]; +} +/** + * An object containing potentially-helpful debugging information that + * can be sent along with the TTFB value for the current page visit in order + * to help identify issues happening to real-users in the field. + * + * NOTE: these values are primarily useful for page loads not handled via + * service worker, as browsers differ in what they report when service worker + * is involved, see: https://github.com/w3c/navigation-timing/issues/199 + */ +export interface TTFBAttribution { + /** + * The total time from when the user initiates loading the page to when the + * page starts to handle the request. Large values here are typically due + * to HTTP redirects, though other browser processing contributes to this + * duration as well (so even without redirect it's generally not zero). + */ + waitingDuration: number; + /** + * The total time spent checking the HTTP cache for a match. For navigations + * handled via service worker, this duration usually includes service worker + * start-up time as well as time processing `fetch` event listeners, with + * some exceptions, see: https://github.com/w3c/navigation-timing/issues/199 + */ + cacheDuration: number; + /** + * The total time to resolve the DNS for the requested domain. + */ + dnsDuration: number; + /** + * The total time to create the connection to the requested domain. + */ + connectionDuration: number; + /** + * The total time from when the request was sent until the first byte of the + * response was received. This includes network time as well as server + * processing time. + */ + requestDuration: number; + /** + * The `navigation` entry of the current page, which is useful for diagnosing + * general page load issues. This can be used to access `serverTiming` for + * example: navigationEntry?.serverTiming + */ + navigationEntry?: PerformanceNavigationTiming; +} +/** + * A TTFB-specific version of the Metric object with attribution. + */ +export interface TTFBMetricWithAttribution extends TTFBMetric { + attribution: TTFBAttribution; +} diff --git a/frontend-old/node_modules/web-vitals/dist/modules/types/ttfb.js b/frontend-old/node_modules/web-vitals/dist/modules/types/ttfb.js new file mode 100644 index 0000000..e997715 --- /dev/null +++ b/frontend-old/node_modules/web-vitals/dist/modules/types/ttfb.js @@ -0,0 +1,16 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export {}; |
