Rocky_Mountain_Vending/.pnpm-store/v10/files/53/6b26f23d984510ebc7718a517f21f2ed73fbb5c7eddba901dcf859f31cc46539325d319b7db8f1ee7ecc462580f5c0a208c164bee985874f11ae5d56ce4e59
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

146 lines
4.6 KiB
Text

/* eslint-disable strict */
/**
* @license
* Copyright 2018 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import {Audit} from '../core/audits/audit.js';
import {SharedFlagsSettings, ConfigSettings} from './lhr/settings.js';
import Gatherer from './gatherer.js';
import {IcuMessage} from './lhr/i18n.js';
import Result from './lhr/lhr.js';
interface ClassOf<T> {
new (): T;
}
/**
* The Lighthouse Config format.
*/
interface Config {
extends?: 'lighthouse:default' | string;
settings?: SharedFlagsSettings;
artifacts?: Config.ArtifactJson[] | null;
audits?: Config.AuditJson[] | null;
categories?: Record<string, Config.CategoryJson> | null;
groups?: Record<string, Config.GroupJson> | null;
plugins?: Array<string>;
}
declare module Config {
/**
* The normalized and fully resolved config.
*/
interface ResolvedConfig {
settings: Settings;
artifacts: AnyArtifactDefn[] | null;
audits: AuditDefn[] | null;
categories: Record<string, Category> | null;
groups: Record<string, Group> | null;
}
interface ArtifactJson {
id: string;
gatherer: GathererJson;
}
type GathererJson = {
path: string;
} | {
implementation: ClassOf<Gatherer.GathererInstance>;
} | {
instance: Gatherer.GathererInstance;
} | Gatherer.GathererInstance | ClassOf<Gatherer.GathererInstance> | string;
interface CategoryJson {
title: string | IcuMessage;
auditRefs: AuditRefJson[];
description?: string | IcuMessage;
manualDescription?: string | IcuMessage;
supportedModes?: Gatherer.GatherMode[];
}
interface GroupJson {
title: string | IcuMessage;
description?: string | IcuMessage;
}
type AuditJson = {
path: string,
options?: {};
} | {
implementation: typeof Audit;
options?: {};
} | typeof Audit | string;
/**
* Reference to an audit member of a category and how its score should be
* weighted and how its results grouped with other members.
*/
interface AuditRefJson {
id: string;
weight: number;
group?: string;
acronym?: string;
}
type Settings = ConfigSettings;
interface ArtifactDefn<TDependencies extends Gatherer.DependencyKey = Gatherer.DependencyKey> {
id: string;
gatherer: GathererDefn<TDependencies>;
dependencies?: TDependencies extends Gatherer.DefaultDependenciesKey ?
undefined :
Record<Exclude<TDependencies, Gatherer.DefaultDependenciesKey>, {id: string}>;
}
type ArtifactDefnExpander<TDependencies extends Gatherer.DependencyKey> =
// Lack of brackets intentional here to convert to the union of all individual dependencies.
TDependencies extends Gatherer.DefaultDependenciesKey ?
ArtifactDefn<Gatherer.DefaultDependenciesKey> :
ArtifactDefn<TDependencies>
type AnyArtifactDefn = ArtifactDefnExpander<Gatherer.DefaultDependenciesKey>|ArtifactDefnExpander<Gatherer.DependencyKey>
interface GathererDefn<TDependencies extends Gatherer.DependencyKey = Gatherer.DependencyKey> {
implementation?: ClassOf<Gatherer.GathererInstance<TDependencies>>;
instance: Gatherer.GathererInstance<TDependencies>;
path?: string;
}
type GathererDefnExpander<TDependencies extends Gatherer.DependencyKey> =
// Lack of brackets intentional here to convert to the union of all individual dependencies.
TDependencies extends Gatherer.DefaultDependenciesKey ?
GathererDefn<Gatherer.DefaultDependenciesKey> :
GathererDefn<TDependencies>
type AnyGathererDefn = GathererDefnExpander<Gatherer.DefaultDependenciesKey>|GathererDefnExpander<Gatherer.DependencyKey>
interface AuditDefn {
implementation: typeof Audit;
path?: string;
options: {};
}
// TODO: For now, these are unchanged from JSON and Result versions. Need to harmonize.
interface AuditRef extends AuditRefJson {}
interface Category extends CategoryJson {
auditRefs: AuditRef[];
}
interface Group extends GroupJson {}
interface Plugin {
/** Optionally provide more audits to run in addition to those specified by the base config. */
audits?: Array<{path: string}>;
/** Provide a category to display the plugin results in the report. */
category: Config.Category;
/** Optionally provide more groups in addition to those specified by the base config. */
groups?: Record<string, Config.GroupJson>;
}
type Merge = {
<T extends Record<string, any>, U extends Record<string, any>>(base: T|null|undefined, extension: U, overwriteArrays?: boolean): T & U;
<T extends Array<any>, U extends Array<any>>(base: T|null|undefined, extension: T, overwriteArrays?: boolean): T & U;
}
}
export default Config;