Rocky_Mountain_Vending/.pnpm-store/v10/files/42/6196dcbee096f85314fe91969474c1a3336321198fe312f44eeb48c0d95de0b944d516f79c22385ec545e2c8cbd856e8184a081dbdd08ff09994f33905d274
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

103 lines
2.8 KiB
Text

/**
* @license
* Copyright 2018 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import * as Lantern from '../lib/lantern/lantern.js';
const throttling = Lantern.Simulation.Constants.throttling;
/**
* @type {Required<LH.SharedFlagsSettings['screenEmulation']>}
*/
const MOTOGPOWER_EMULATION_METRICS = {
mobile: true,
width: 412,
height: 823,
// This value has some interesting ramifications for image-size-responsive, see:
// https://github.com/GoogleChrome/lighthouse/issues/10741#issuecomment-626903508
deviceScaleFactor: 1.75,
disabled: false,
};
/**
* Desktop metrics adapted from emulated_devices/module.json
* @type {Required<LH.SharedFlagsSettings['screenEmulation']>}
*/
const DESKTOP_EMULATION_METRICS = {
mobile: false,
width: 1350,
height: 940,
deviceScaleFactor: 1,
disabled: false,
};
const screenEmulationMetrics = {
mobile: MOTOGPOWER_EMULATION_METRICS,
desktop: DESKTOP_EMULATION_METRICS,
};
const MOTOG4_USERAGENT = 'Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36'; // eslint-disable-line max-len
const DESKTOP_USERAGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36'; // eslint-disable-line max-len
const userAgents = {
mobile: MOTOG4_USERAGENT,
desktop: DESKTOP_USERAGENT,
};
/** @type {LH.Config.Settings} */
const defaultSettings = {
output: 'json',
maxWaitForFcp: 30 * 1000,
maxWaitForLoad: 45 * 1000,
pauseAfterFcpMs: 1000,
pauseAfterLoadMs: 1000,
networkQuietThresholdMs: 1000,
cpuQuietThresholdMs: 1000,
formFactor: 'mobile',
throttling: throttling.mobileSlow4G,
throttlingMethod: 'simulate',
screenEmulation: screenEmulationMetrics.mobile,
emulatedUserAgent: userAgents.mobile,
auditMode: false,
gatherMode: false,
clearStorageTypes: ['file_systems', 'shader_cache', 'service_workers', 'cache_storage'],
disableStorageReset: false,
debugNavigation: false,
channel: 'node',
usePassiveGathering: false,
disableFullPageScreenshot: false,
skipAboutBlank: false,
blankPage: 'about:blank',
ignoreStatusCode: false,
// the following settings have no defaults but we still want ensure that `key in settings`
// in config will work in a typechecked way
locale: 'en-US', // actual default determined by Config using lib/i18n
blockedUrlPatterns: null,
additionalTraceCategories: null,
extraHeaders: null,
precomputedLanternData: null,
onlyAudits: null,
onlyCategories: null,
skipAudits: null,
};
const nonSimulatedSettingsOverrides = {
pauseAfterFcpMs: 5250,
pauseAfterLoadMs: 5250,
networkQuietThresholdMs: 5250,
cpuQuietThresholdMs: 5250,
};
export {
throttling,
screenEmulationMetrics,
userAgents,
defaultSettings,
nonSimulatedSettingsOverrides,
};