Rocky_Mountain_Vending/.pnpm-store/v10/files/f1/11349a34474c8479ebc70a94026553698c518558b6534b8d36d50c0d5bc8cdfa7a73e0d05d316ab5b9527a6c50abd2f8597f0fd627596275e8edd8bdf3b390
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

49 lines
No EOL
2 KiB
Text

// Copyright 2024 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import * as Core from '../core/core.js';
import * as Graph from '../graph/graph.js';
import { Metric, } from './Metric.js';
class MaxPotentialFID extends Metric {
static get coefficients() {
return {
intercept: 0,
optimistic: 0.5,
pessimistic: 0.5,
};
}
static getOptimisticGraph(dependencyGraph) {
return dependencyGraph;
}
static getPessimisticGraph(dependencyGraph) {
return dependencyGraph;
}
static getEstimateFromSimulation(simulation, extras) {
if (!extras.fcpResult) {
throw new Core.LanternError('missing fcpResult');
}
// Intentionally use the opposite FCP estimate, a more pessimistic FCP means that more tasks
// are excluded from the FID computation, so a higher FCP means lower FID for same work.
const fcpTimeInMs = extras.optimistic ? extras.fcpResult.pessimisticEstimate.timeInMs :
extras.fcpResult.optimisticEstimate.timeInMs;
const timings = MaxPotentialFID.getTimingsAfterFCP(simulation.nodeTimings, fcpTimeInMs);
return {
timeInMs: Math.max(...timings.map(timing => timing.duration), 16),
nodeTimings: simulation.nodeTimings,
};
}
static compute(data, extras) {
const fcpResult = extras?.fcpResult;
if (!fcpResult) {
throw new Core.LanternError('FCP is required to calculate the Max Potential FID metric');
}
return super.compute(data, extras);
}
static getTimingsAfterFCP(nodeTimings, fcpTimeInMs) {
return Array.from(nodeTimings.entries())
.filter(([node, timing]) => node.type === Graph.BaseNode.types.CPU && timing.endTime > fcpTimeInMs)
.map(([_, timing]) => timing);
}
}
export { MaxPotentialFID };
//# sourceMappingURL=MaxPotentialFID.js.map