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>
131 lines
No EOL
5.3 KiB
Text
131 lines
No EOL
5.3 KiB
Text
export default FontSize;
|
|
export type NodeFontData = LH.Artifacts.FontSize["analyzedFailingNodesData"][0];
|
|
export type BackendIdsToFontData = Map<number, {
|
|
fontSize: number;
|
|
textLength: number;
|
|
}>;
|
|
declare class FontSize extends BaseGatherer {
|
|
/**
|
|
* @param {LH.Gatherer.ProtocolSession} session
|
|
* @param {Array<NodeFontData>} failingNodes
|
|
*/
|
|
static fetchFailingNodeSourceRules(session: LH.Gatherer.ProtocolSession, failingNodes: Array<NodeFontData>): Promise<{
|
|
analyzedFailingNodesData: {
|
|
nodeId: number;
|
|
fontSize: number;
|
|
textLength: number;
|
|
parentNode: {
|
|
backendNodeId: number;
|
|
attributes: string[];
|
|
nodeName: string;
|
|
parentNode?: {
|
|
backendNodeId: number;
|
|
attributes: string[];
|
|
nodeName: string;
|
|
};
|
|
};
|
|
cssRule?: {
|
|
type: "Regular" | "Inline" | "Attributes";
|
|
range?: {
|
|
startLine: number;
|
|
startColumn: number;
|
|
};
|
|
parentRule?: {
|
|
origin: import("devtools-protocol").Protocol.CSS.StyleSheetOrigin;
|
|
selectors: {
|
|
text: string;
|
|
}[];
|
|
};
|
|
styleSheetId?: string;
|
|
stylesheet?: import("devtools-protocol").Protocol.CSS.CSSStyleSheetHeader;
|
|
cssProperties?: Array<import("devtools-protocol").Protocol.CSS.CSSProperty>;
|
|
};
|
|
}[];
|
|
analyzedFailingTextLength: number;
|
|
}>;
|
|
/**
|
|
* Returns the TextNodes in a DOM Snapshot.
|
|
* Every entry is associated with a TextNode in the layout tree (not display: none).
|
|
* @param {LH.Crdp.DOMSnapshot.CaptureSnapshotResponse} snapshot
|
|
*/
|
|
getTextNodesInLayoutFromSnapshot(snapshot: LH.Crdp.DOMSnapshot.CaptureSnapshotResponse): {
|
|
nodeIndex: number;
|
|
backendNodeId: number;
|
|
fontSize: number;
|
|
visibility: string;
|
|
textLength: number;
|
|
parentNode: {
|
|
parentNode: {
|
|
backendNodeId: number;
|
|
attributes: string[];
|
|
nodeName: string;
|
|
} | undefined;
|
|
backendNodeId: number;
|
|
attributes: string[];
|
|
nodeName: string;
|
|
};
|
|
}[];
|
|
/**
|
|
* Get all the failing text nodes that don't meet the legible text threshold.
|
|
* @param {LH.Crdp.DOMSnapshot.CaptureSnapshotResponse} snapshot
|
|
*/
|
|
findFailingNodes(snapshot: LH.Crdp.DOMSnapshot.CaptureSnapshotResponse): {
|
|
totalTextLength: number;
|
|
failingTextLength: number;
|
|
failingNodes: {
|
|
nodeId: number;
|
|
fontSize: number;
|
|
textLength: number;
|
|
parentNode: {
|
|
backendNodeId: number;
|
|
attributes: string[];
|
|
nodeName: string;
|
|
parentNode?: {
|
|
backendNodeId: number;
|
|
attributes: string[];
|
|
nodeName: string;
|
|
};
|
|
};
|
|
cssRule?: {
|
|
type: "Regular" | "Inline" | "Attributes";
|
|
range?: {
|
|
startLine: number;
|
|
startColumn: number;
|
|
};
|
|
parentRule?: {
|
|
origin: import("devtools-protocol").Protocol.CSS.StyleSheetOrigin;
|
|
selectors: {
|
|
text: string;
|
|
}[];
|
|
};
|
|
styleSheetId?: string;
|
|
stylesheet?: import("devtools-protocol").Protocol.CSS.CSSStyleSheetHeader;
|
|
cssProperties?: Array<import("devtools-protocol").Protocol.CSS.CSSProperty>;
|
|
};
|
|
}[];
|
|
};
|
|
/**
|
|
* @param {LH.Gatherer.Context} passContext
|
|
* @return {Promise<LH.Artifacts.FontSize>} font-size analysis
|
|
*/
|
|
getArtifact(passContext: LH.Gatherer.Context): Promise<LH.Artifacts.FontSize>;
|
|
}
|
|
/**
|
|
* Returns the governing/winning CSS font-size rule for the set of styles given.
|
|
* This is roughly a stripped down version of the CSSMatchedStyle class in DevTools.
|
|
*
|
|
* @see https://cs.chromium.org/chromium/src/third_party/blink/renderer/devtools/front_end/sdk/CSSMatchedStyles.js?q=CSSMatchedStyles+f:devtools+-f:out&sq=package:chromium&dr=C&l=59-134
|
|
* @param {LH.Crdp.CSS.GetMatchedStylesForNodeResponse} matched CSS rules
|
|
* @return {NodeFontData['cssRule']|undefined}
|
|
*/
|
|
export function getEffectiveFontRule({ attributesStyle, inlineStyle, matchedCSSRules, inherited }: LH.Crdp.CSS.GetMatchedStylesForNodeResponse): NodeFontData["cssRule"] | undefined;
|
|
/**
|
|
* Finds the most specific directly matched CSS font-size rule from the list.
|
|
*
|
|
* @param {Array<LH.Crdp.CSS.RuleMatch>} matchedCSSRules
|
|
* @param {function(LH.Crdp.CSS.CSSStyle):boolean|string|undefined} isDeclarationOfInterest
|
|
* @return {NodeFontData['cssRule']|undefined}
|
|
*/
|
|
export function findMostSpecificMatchedCSSRule(matchedCSSRules: Array<LH.Crdp.CSS.RuleMatch> | undefined, isDeclarationOfInterest: (arg0: LH.Crdp.CSS.CSSStyle) => boolean | string | undefined): NodeFontData["cssRule"] | undefined;
|
|
import BaseGatherer from '../../base-gatherer.js';
|
|
//# sourceMappingURL=font-size.d.ts.map |