UNPKG

lighthouse

Version:

Automated auditing, performance metrics, and best practices for the web.

168 lines 6.4 kB
export type SnippetValue = import("../types/lhr/audit-details").default.SnippetValue; export class Util { static get RATINGS(): { PASS: { label: string; minScore: number; }; AVERAGE: { label: string; minScore: number; }; FAIL: { label: string; }; ERROR: { label: string; }; }; static get PASS_THRESHOLD(): number; static get MS_DISPLAY_VALUE(): string; /** * If LHR is older than 10.0 it will not have the `finalDisplayedUrl` property. * Old LHRs should have the `finalUrl` property which will work fine for the report. * * @param {LH.Result} lhr */ static getFinalDisplayedUrl(lhr: LH.Result): string; /** * If LHR is older than 10.0 it will not have the `mainDocumentUrl` property. * Old LHRs should have the `finalUrl` property which is the same as `mainDocumentUrl`. * * @param {LH.Result} lhr */ static getMainDocumentUrl(lhr: LH.Result): string | undefined; /** * @param {LH.Result} lhr * @return {LH.Result.FullPageScreenshot=} */ static getFullPageScreenshot(lhr: LH.Result): LH.Result.FullPageScreenshot | undefined; /** * Given the entity classification dataset and a URL, identify the entity. * @param {string} url * @param {LH.Result.Entities=} entities * @return {LH.Result.LhrEntity|string} */ static getEntityFromUrl(url: string, entities?: LH.Result.Entities | undefined): LH.Result.LhrEntity | string; /** * Split a string by markdown code spans (enclosed in `backticks`), splitting * into segments that were enclosed in backticks (marked as `isCode === true`) * and those that outside the backticks (`isCode === false`). * @param {string} text * @return {Array<{isCode: true, text: string}|{isCode: false, text: string}>} */ static splitMarkdownCodeSpans(text: string): Array<{ isCode: true; text: string; } | { isCode: false; text: string; }>; /** * Split a string on markdown links (e.g. [some link](https://...)) into * segments of plain text that weren't part of a link (marked as * `isLink === false`), and segments with text content and a URL that did make * up a link (marked as `isLink === true`). * @param {string} text * @return {Array<{isLink: true, text: string, linkHref: string}|{isLink: false, text: string}>} */ static splitMarkdownLink(text: string): Array<{ isLink: true; text: string; linkHref: string; } | { isLink: false; text: string; }>; /** * @param {string} string * @param {number} characterLimit * @param {string} ellipseSuffix */ static truncate(string: string, characterLimit: number, ellipseSuffix?: string): string; /** * @param {URL} parsedUrl * @param {{numPathParts?: number, preserveQuery?: boolean, preserveHost?: boolean}=} options * @return {string} */ static getURLDisplayName(parsedUrl: URL, options?: { numPathParts?: number; preserveQuery?: boolean; preserveHost?: boolean; } | undefined): string; /** * Returns the origin portion of a Chrome extension URL. * @param {string} url * @return {string} */ static getChromeExtensionOrigin(url: string): string; /** * Split a URL into a file, hostname and origin for easy display. * @param {string} url * @return {{file: string, hostname: string, origin: string}} */ static parseURL(url: string): { file: string; hostname: string; origin: string; }; /** * @param {string|URL} value * @return {!URL} */ static createOrReturnURL(value: string | URL): URL; /** * Gets the tld of a domain * This function is used only while rendering pre-10.0 LHRs. * * @param {string} hostname * @return {string} tld */ static getPseudoTld(hostname: string): string; /** * Returns a primary domain for provided hostname (e.g. www.example.com -> example.com). * As it doesn't consult the Public Suffix List, it can sometimes lose detail. * See the `listOfTlds` comment above for more. * This function is used only while rendering pre-10.0 LHRs. See UrlUtils.getRootDomain * for the current method that makes use of PSL. * @param {string|URL} url hostname or URL object * @return {string} */ static getPseudoRootDomain(url: string | URL): string; /** * Returns only lines that are near a message, or the first few lines if there are * no line messages. * @param {SnippetValue['lines']} lines * @param {SnippetValue['lineMessages']} lineMessages * @param {number} surroundingLineCount Number of lines to include before and after * the message. If this is e.g. 2 this function might return 5 lines. */ static filterRelevantLines(lines: SnippetValue["lines"], lineMessages: SnippetValue["lineMessages"], surroundingLineCount: number): { content: string; lineNumber: number; truncated?: boolean; }[]; /** * Computes a score between 0 and 1 based on the measured `value`. Score is determined by * considering a log-normal distribution governed by two control points (the 10th * percentile value and the median value) and represents the percentage of sites that are * greater than `value`. * * Score characteristics: * - within [0, 1] * - rounded to two digits * - value must meet or beat a controlPoint value to meet or exceed its percentile score: * - value > median will give a score < 0.5; value ≤ median will give a score ≥ 0.5. * - value > p10 will give a score < 0.9; value ≤ p10 will give a score ≥ 0.9. * - values < p10 will get a slight boost so a score of 1 is achievable by a * `value` other than those close to 0. Scores of > ~0.99524 end up rounded to 1. * @param {{median: number, p10: number}} controlPoints * @param {number} value * @return {number} */ static computeLogNormalScore(controlPoints: { median: number; p10: number; }, value: number): number; } //# sourceMappingURL=util.d.ts.map