summaryrefslogtreecommitdiff
path: root/frontend-old/node_modules/web-vitals/dist/modules/types
diff options
context:
space:
mode:
authoraltaf-creator <dev@altafcreator.com>2025-11-09 11:15:19 +0800
committeraltaf-creator <dev@altafcreator.com>2025-11-09 11:15:19 +0800
commit8eff962cab608341a6f2fedc640a0e32d96f26e2 (patch)
tree05534d1a720ddc3691d346c69b4972555820a061 /frontend-old/node_modules/web-vitals/dist/modules/types
pain
Diffstat (limited to 'frontend-old/node_modules/web-vitals/dist/modules/types')
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/base.d.ts101
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/base.js16
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/cls.d.ts55
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/cls.js16
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/fcp.d.ts46
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/fcp.js16
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/fid.d.ts46
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/fid.js16
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/inp.d.ts103
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/inp.js16
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/lcp.d.ts69
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/lcp.js16
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/polyfills.d.ts4
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/polyfills.js16
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/ttfb.d.ts59
-rw-r--r--frontend-old/node_modules/web-vitals/dist/modules/types/ttfb.js16
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 {};