Rocky_Mountain_Vending/.pnpm-store/v10/files/21/428e2b0c60af83bb003480617130a1e7ce6f2980bf054ad6e71b2cd488ec47922f2cf35d36fe1b7f213b00ab67e712dc1241e3dcda417bb66f8a8ea5e9ef9e
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

55 lines
1.8 KiB
Text

/**
* @license
* Copyright 2016 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import speedline from 'speedline-core';
import {makeComputedArtifact} from './computed-artifact.js';
import {LighthouseError} from '../lib/lh-error.js';
import {ProcessedTrace} from './processed-trace.js';
class Speedline {
/**
* @param {LH.Trace} trace
* @param {LH.Artifacts.ComputedContext} context
* @return {Promise<LH.Artifacts.Speedline>}
*/
static async compute_(trace, context) {
// speedline() may throw without a promise, so we resolve immediately
// to get in a promise chain.
return ProcessedTrace.request(trace, context).then(processedTrace => {
// Use a shallow copy of traceEvents so speedline can sort as it pleases.
// See https://github.com/GoogleChrome/lighthouse/issues/2333
const traceEvents = trace.traceEvents.slice();
// Force use of timeOrigin as reference point for speedline
// See https://github.com/GoogleChrome/lighthouse/issues/2095
const timeOrigin = processedTrace.timestamps.timeOrigin;
return speedline(traceEvents, {
timeOrigin,
fastMode: true,
include: 'speedIndex',
});
}).catch(err => {
if (/No screenshots found in trace/.test(err.message)) {
throw new LighthouseError(LighthouseError.errors.NO_SCREENSHOTS);
}
throw err;
}).then(speedline => {
if (speedline.frames.length === 0) {
throw new LighthouseError(LighthouseError.errors.NO_SPEEDLINE_FRAMES);
}
if (speedline.speedIndex === 0) {
throw new LighthouseError(LighthouseError.errors.SPEEDINDEX_OF_ZERO);
}
return speedline;
});
}
}
const SpeedlineComputed = makeComputedArtifact(Speedline, null);
export {SpeedlineComputed as Speedline};