LibAcc: 0.7647=52/68, ProjAcc: 1.0000=0/0, Missing: 174


Module: lib/utils/messages

const 𝓟1{GREEN}: [miss]𝓛[ty]10051{String} = 𝓛8743{String};
const 𝓟2{YELLOW}: [miss]𝓛[ty]10051{String} = 𝓛8743{String};
const 𝓟3{RED}: [miss]𝓛[ty]10051{String} = 𝓛8743{String};
const 𝓟4{RESET}: [miss]𝓛[ty]10051{String} = 𝓛8743{String};
const 𝓟5{BOLD}: [miss]𝓛[ty]10051{String} = 𝓛8743{String};
function 𝓟6{$Lambda35} (𝓟7{str}: 𝓛[ty]10051{String}): (𝓟8: [miss]𝓛[ty]10051{String})
{
return 𝓟8 = 𝓛12554{$Template}(𝓟1{GREEN},𝓟7{str},𝓟4{RESET})
}
const 𝓟9{greenify}: [miss]𝓛[ty]8696{Function} = 𝓟6{$Lambda35};
function 𝓟10{$Lambda36} (𝓟11{str}: 𝓛[ty]10051{String}): (𝓟12: [miss]𝓛[ty]10051{String})
{
return 𝓟12 = 𝓛12554{$Template}(𝓟3{RED},𝓟11{str},𝓟4{RESET})
}
const 𝓟13{redify}: [miss]𝓛[ty]8696{Function} = 𝓟10{$Lambda36};
function 𝓟14{$Lambda37} (𝓟15{str}: 𝓛[ty]10051{String}): (𝓟16: [miss]𝓛[ty]10051{String})
{
return 𝓟16 = 𝓛12554{$Template}(𝓟2{YELLOW},𝓟15{str},𝓟4{RESET})
}
const 𝓟17{yellowify}: [miss]𝓛[ty]8696{Function} = 𝓟14{$Lambda37};
function 𝓟18{$Lambda38} (𝓟19{str}: 𝓛[ty]10051{String}): (𝓟20: [miss]𝓛[ty]10051{String})
{
return 𝓟20 = 𝓛12554{$Template}(𝓟5{BOLD},𝓟19{str},𝓟4{RESET})
}
const 𝓟21{boldify}: [miss]𝓛[ty]8696{Function} = 𝓟18{$Lambda38};
function 𝓟22{$Lambda39} (𝓟23{messageType}: 𝓛[ty]10051{String},𝓟24{args}: 𝓛[ty]8670{Array}): (𝓟25: [miss]𝓛[ty]10051{String})
{
𝓛12549{$Switch}(𝓟23{messageType})
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛12554{$Template}(𝓟24{args}.access(𝓛8745{Number}))
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛12554{$Template}(𝓟24{args}.access(𝓛8745{Number}))
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛12554{$Template}(𝓟24{args}.access(𝓛8745{Number}))
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛12554{$Template}(𝓟24{args}.access(𝓛8745{Number}))
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛12554{$Template}(𝓟24{args}.access(𝓛8745{Number}))
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛12554{$Template}(𝓟24{args}.access(𝓛8745{Number}).PlusToken(𝓛8745{Number}),𝓟24{args}.access(𝓛8745{Number}))
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛12554{$Template}(𝓟24{args}.access(𝓛8745{Number}).PlusToken(𝓛8745{Number}),𝓟24{args}.access(𝓛8745{Number}),𝓟24{args}.access(𝓛8745{Number}))
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛12554{$Template}(𝓟24{args}.access(𝓛8745{Number}))
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛12554{$Template}(𝓟24{args}.access(𝓛8745{Number}))
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛12554{$Template}(𝓟24{args}.access(𝓛8745{Number}))
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛12554{$Template}(𝓟24{args}.access(𝓛8745{Number}))
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛12554{$Template}(𝓟24{args}.access(𝓛8745{Number}))
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛12554{$Template}(𝓟24{args}.access(𝓛8745{Number}))
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛12561{$Case}(𝓛8743{String})
return 𝓟25 = 𝓛8743{String}
𝓛8749{Error}.CONSTRUCTOR(𝓛12554{$Template}(𝓟23{messageType}))
}
const 𝓟26{getMessage}: [miss]𝓛[ty]8696{Function} = 𝓟22{$Lambda39};
function 𝓟27{$Lambda40} (𝓟28{assertionLevel}: 𝓛[ty]10051{String},𝓟29{messageType}: 𝓛[ty]10051{String},𝓟30{expectedValue}: (𝓛[ty]10051{String} ≠ 𝓛[ty]8655{Number}),𝓟31{actualValue}: (𝓛[ty]10051{String} ≠ 𝓛[ty]8655{Number})): (𝓟32: [miss]𝓛[ty]10051{String})
{
const 𝓟33{message}: [miss]𝓛[ty]10051{String} = 𝓟45{getMessageWithPrefix}(𝓟28{assertionLevel},𝓟29{messageType});
const 𝓟34{colorizer}: [miss]𝓛[ty]8696{Function} = (𝓟28{assertionLevel}.EqualsEqualsEqualsToken(𝓛8743{String}) ? 𝓟13{redify} : 𝓟17{yellowify};
const 𝓟35{expectedStr}: [miss]𝓛[ty]10051{String} = 𝓟21{boldify}(𝓛12554{$Template}(𝓟30{expectedValue}));
const 𝓟36{actualStr}: [miss]𝓛[ty]10051{String} = 𝓟21{boldify}(𝓟34{colorizer}(𝓛12554{$Template}(𝓟31{actualValue})));
return 𝓟32 = 𝓛12554{$Template}(𝓟33{message},𝓟35{expectedStr},𝓟36{actualStr})
}
const 𝓟37{getAssertionMessage}: [miss]𝓛[ty]8696{Function} = 𝓟27{$Lambda40};
function 𝓟38{$Lambda41} (𝓟39{assertionLevel}: 𝓛[ty]10051{String},𝓟40{messageType}: 𝓛[ty]10051{String},𝓟41{args}: 𝓛[ty]8670{Array}): (𝓟42: [miss]𝓛[ty]10051{String})
{
let 𝓟43{prefix};
const 𝓟44{message}: [miss]𝓛[ty]10051{String} = 𝓟26{getMessage}(𝓟40{messageType},𝓛12551{$Spread}(𝓟41{args}));
𝓛12549{$Switch}(𝓟39{assertionLevel})
𝓛12561{$Case}(𝓛8743{String})
𝓟43{prefix}𝓟51{getErrorPrefix}();
𝓛12561{$Case}(𝓛8743{String})
𝓟43{prefix}𝓟54{getWarningPrefix}();
𝓛12561{$Case}(𝓛8743{String})
𝓟43{prefix}𝓟57{getSuccessPrefix}();
𝓛8749{Error}.CONSTRUCTOR(𝓟26{getMessage}(𝓟40{messageType},𝓟39{assertionLevel}))
return 𝓟42 = 𝓛12554{$Template}(𝓟43{prefix},𝓟44{message},𝓟4{RESET})
}
const 𝓟45{getMessageWithPrefix}: [miss]𝓛[ty]8696{Function} = 𝓟38{$Lambda41};
const 𝓟46{GREEN_CHECK}: [miss]𝓛[ty]10051{String} = 𝓟9{greenify}(𝓛8743{String});
const 𝓟47{YELLOW_FLAG}: [miss]𝓛[ty]10051{String} = 𝓟17{yellowify}(𝓛8743{String});
const 𝓟48{RED_X}: [miss]𝓛[ty]10051{String} = 𝓟13{redify}(𝓛8743{String});
function 𝓟49{$Lambda42} (): (𝓟50: [miss]𝓛[ty]10051{String})
{
return 𝓟50 = 𝓛12554{$Template}(𝓟48{RED_X},𝓟3{RED})
}
const 𝓟51{getErrorPrefix}: [miss]𝓛[ty]8696{Function} = 𝓟49{$Lambda42};
function 𝓟52{$Lambda43} (): (𝓟53: [miss]𝓛[ty]10051{String})
{
return 𝓟53 = 𝓛12554{$Template}(𝓟47{YELLOW_FLAG},𝓟2{YELLOW})
}
const 𝓟54{getWarningPrefix}: [miss]𝓛[ty]8696{Function} = 𝓟52{$Lambda43};
function 𝓟55{$Lambda44} (): (𝓟56: [miss]𝓛[ty]10051{String})
{
return 𝓟56 = 𝓛12554{$Template}(𝓟46{GREEN_CHECK},𝓟1{GREEN})
}
const 𝓟57{getSuccessPrefix}: [miss]𝓛[ty]8696{Function} = 𝓟55{$Lambda44};
𝓛10099{exports}{getMessage: 𝓟26{getMessage},getAssertionMessage: 𝓟37{getAssertionMessage},getMessageWithPrefix: 𝓟45{getMessageWithPrefix}};

Module: lib/sheets/gsheets

const 𝓟58{google} = 𝓛10097{require}(𝓛8743{String});
const 𝓟59{promisify} = 𝓛10097{require}(𝓛8743{String});
const 𝓟60{getMessage} = 𝓛10097{require}(𝓛8743{String}).getMessage;
function 𝓟61{$Async_getRange} (𝓟62{auth}: [OOV]𝓟[ty]1351{Oauth2Client},𝓟63{range}: (𝓛[ty]10051{String} ≠ 𝓛[ty]8655{Number}),𝓟64{spreadsheetId}: 𝓛[ty]10051{String}): (𝓟65: 𝓛[ty]8654{Promise})
{
{
const 𝓟66{sheets} = 𝓟58{google}.sheets(𝓛8743{String});
const 𝓟67{response} = 𝓛12547{$Await}(𝓟59{promisify}(𝓟66{sheets}.spreadsheets.values.get)({auth: 𝓟62{auth},spreadsheetId: 𝓟64{spreadsheetId},range: 𝓟63{range}}));
return 𝓟65 = 𝓟67{response}.values
}
}
function 𝓟68{$Lambda30} (𝓟69{values}: 𝓛[ty]8670{Array}): (𝓟70: [OOV]any)
{
let 𝓟71{newValues}: [miss]𝓛[ty]8670{Array} = 𝓟69{values}.slice();
function 𝓟72{$Lambda31} (𝓟73{result}: [OOV]any,𝓟74{value}: [OOV]any): (𝓟75: [OOV]any)
{
return 𝓟75 = 𝓟73{result}.concat(𝓟74{value}.slice(𝓛8745{Number}).join(𝓛8743{String})).concat(𝓛8743{String})
}
return 𝓟70 = 𝓟71{newValues}.reduce(𝓟72{$Lambda31},𝓛8757{Array}()).join(𝓛8743{String})
}
const 𝓟76{formatValues}: [miss]𝓛[ty]8696{Function} = 𝓟68{$Lambda30};
function 𝓟77{$Async_appendResults} (𝓟78{auth}: [OOV]𝓟[ty]1351{Oauth2Client},𝓟79{valuesToAppend}: (𝓛[ty]8696{Function} ≠ 𝓛[ty]8670{Array}),𝓟80{options}: [OOV]𝓟[ty]1349{GSheetsAppendResultsOptions}): (𝓟81: 𝓛[ty]8654{Promise})
{
{
const 𝓟82{sheets} = 𝓟58{google}.sheets(𝓛8743{String});
const 𝓟83{values} = 𝓛8741{Object}.assign(𝓛8757{Array}(),𝓟79{valuesToAppend});
𝓛1{<UNKNOWN>}(𝓟60{getMessage}(𝓛8743{String},𝓟76{formatValues}(𝓟79{valuesToAppend})))
const 𝓟84{response} = 𝓛12547{$Await}(𝓟59{promisify}(𝓟82{sheets}.spreadsheets.values.append)({auth: 𝓟78{auth},spreadsheetId: 𝓟80{options}.spreadsheetId,valueInputOption: 𝓛8743{String},resource: {values: 𝓟83{values}},range: 𝓛12554{$Template}(𝓟80{options}.tableName)}));
const 𝓟85{rangeValues}: (𝓛[ty]8666{Boolean} ≠ 𝓛[ty]8670{Array}) = 𝓛12547{$Await}(𝓛1{<UNKNOWN>}(𝓟78{auth},𝓟84{response}.updates.updatedRange,𝓟80{options}.spreadsheetId));
𝓛1{<UNKNOWN>}(𝓟60{getMessage}(𝓛8743{String},𝓟76{formatValues}(𝓟85{rangeValues})))
}
}

Module: lib/sheets/index

const 𝓟86{GoogleOauth} = 𝓛10097{require}(𝓛8743{String});
const 𝓟87{getMessage} = 𝓛10097{require}(𝓛8743{String}).getMessage;
const 𝓟88{metricsIds} = 𝓛10097{require}(𝓛8743{String}).ids;
const 𝓟89{SHEET_TYPES}: [miss]𝓛[ty]8642{Object} = {'GOOGLE_SHEETS': 𝓛8743{String}};
function 𝓟90{CONSTRUCTOR} (𝓟91{config}: [OOV]𝓟[ty]1342{SheetsConfig},𝓟92{clientSecret}: [OOV]𝓟[ty]1358{AuthorizeCredentials}): (𝓟[ty]96{Sheets})
{
const 𝓟[ty]96{Sheets};
const 𝓟[ty]96{Sheets};
𝓟[ty]96{Sheets}.config𝓟91{config};
𝓟[ty]96{Sheets}.clientSecret𝓟92{clientSecret};
𝓟[ty]96{Sheets}.validateOptions(𝓟91{config},𝓟92{clientSecret})
}
class 𝓟[ty]96{Sheets}{
𝓟98{config}: [OOV]𝓟[ty]1342{SheetsConfig};
𝓟99{clientSecret}: [OOV]𝓟[ty]1358{AuthorizeCredentials};
function 𝓟100{validateOptions} (𝓟101{config}: [OOV]𝓟[ty]1342{SheetsConfig},𝓟102{clientSecret}: [OOV]𝓟[ty]1358{AuthorizeCredentials}): (𝓟103: [miss]𝓛[ty]10033{Void})
{
if (𝓛12548{ExclamationToken}(𝓟101{config}).BarBarToken(𝓛12548{ExclamationToken}(𝓛8741{Object}.keys(𝓟101{config}).length)))
{
𝓛8749{Error}.CONSTRUCTOR(𝓟87{getMessage}(𝓛8743{String}))
}
const 𝓟104{sheetType}: [miss]𝓛[ty]10051{String} = 𝓟101{config}.type;
if (𝓛12548{ExclamationToken}(𝓛8741{Object}.keys(𝓟89{SHEET_TYPES}).includes(𝓟104{sheetType})))
{
𝓛8749{Error}.CONSTRUCTOR(𝓟87{getMessage}(𝓛8743{String},𝓟104{sheetType}))
}
𝓛12549{$Switch}(𝓟104{sheetType})
𝓛12561{$Case}(𝓟89{SHEET_TYPES}.GOOGLE_SHEETS)
if (𝓛12548{ExclamationToken}(𝓟101{config}.options.spreadsheetId).BarBarToken(𝓛12548{ExclamationToken}(𝓟101{config}.options.tableName)).BarBarToken(𝓛12548{ExclamationToken}(𝓟102{clientSecret})))
{
𝓛8749{Error}.CONSTRUCTOR(𝓟87{getMessage}(𝓛8743{String}))
}
𝓛8749{Error}.CONSTRUCTOR(𝓟87{getMessage}(𝓛8743{String}))
}
function 𝓟105{appendResults} (𝓟106{results}: (𝓛[ty]10051{String} ≠ 𝓛[ty]8670{Array})): (𝓟107: [miss]𝓛[ty]8654{Promise})
{
𝓛12549{$Switch}(𝓟[ty]96{Sheets}.config.type)
𝓛12561{$Case}(𝓟89{SHEET_TYPES}.GOOGLE_SHEETS)
return 𝓟107 = 𝓟[ty]96{Sheets}.appendResultsToGSheets(𝓟106{results})
}
function 𝓟108{$Async_appendResultsToGSheets} (𝓟109{results}: 𝓛[ty]8670{Array}): (𝓟110: [miss]𝓛[ty]8654{Promise})
{
let 𝓟111{valuesToAppend}: 𝓛[ty]8670{Array} = 𝓛8757{Array}();
function 𝓟112{$Lambda32} (𝓟113{data}): (𝓟114: [miss]𝓛[ty]10033{Void})
{
function 𝓟115{$Lambda33} (𝓟116{key}: 𝓛[ty]10051{String}): (𝓟117: [miss]𝓛[ty]8655{Number})
{
function 𝓟118{$Lambda34} (𝓟119{t}): (𝓟120: [miss]𝓛[ty]8666{Boolean})
{
return 𝓟120 = 𝓟119{t}.id.EqualsEqualsEqualsToken(𝓟116{key})
}
return 𝓟117 = 𝓟113{data}.timings.find(𝓟118{$Lambda34}).timing
}
const 𝓟121{getTiming}: [miss]𝓛[ty]8696{Function} = 𝓟115{$Lambda33};
const 𝓟122{dateObj}: [miss]𝓛[ty]8635{Date} = 𝓛8747{Date}.CONSTRUCTOR(𝓟113{data}.generatedTime);
𝓟111{valuesToAppend}.push(𝓛8757{Array}(𝓟113{data}.lighthouseVersion,𝓟113{data}.url,𝓛12554{$Template}(𝓟122{dateObj}.toLocaleDateString(),𝓟122{dateObj}.toLocaleTimeString()),𝓟121{getTiming}(𝓟88{metricsIds}.TTFCP),𝓟121{getTiming}(𝓟88{metricsIds}.TTFMP),𝓟121{getTiming}(𝓟88{metricsIds}.PSI),𝓟121{getTiming}(𝓟88{metricsIds}.FV),𝓟121{getTiming}(𝓟88{metricsIds}.VC100),𝓟121{getTiming}(𝓟88{metricsIds}.TTFI),𝓟121{getTiming}(𝓟88{metricsIds}.TTCI),𝓟121{getTiming}(𝓟88{metricsIds}.VC85)))
}
𝓟109{results}.forEach(𝓟112{$Lambda32})
{
const 𝓟123{googleOauth} = 𝓟86{GoogleOauth}.CONSTRUCTOR();
const 𝓟124{oauth}: [OOV]𝓟[ty]1351{Oauth2Client} = 𝓛12547{$Await}(𝓟123{googleOauth}.authenticate(𝓟[ty]96{Sheets}.clientSecret));
𝓛12547{$Await}(𝓛1{<UNKNOWN>}(𝓟124{oauth},𝓟111{valuesToAppend},𝓟[ty]96{Sheets}.config.options))
}
}
}
𝓛10099{exports}𝓛12563{undefined};

Module: lib/utils/fs

function 𝓟125{getConfigFromFile} (𝓟126{fileName}: 𝓛[ty]10051{String}): (𝓟127: [OOV]any)
{
let 𝓟128{resolved}: (𝓛[ty]8696{Function} ≠ 𝓛[ty]10051{String});
{
𝓟128{resolved}𝓛10097{require}.resolve(𝓛12554{$Template}(𝓟126{fileName}));
}
const 𝓟129{config} = 𝓛10097{require}(𝓟128{resolved});
if (𝓟129{config}.ExclamationEqualsEqualsToken(𝓛12563{undefined}).AmpersandAmpersandToken(𝓛12550{$TypeOf}(𝓟129{config}).EqualsEqualsEqualsToken(𝓛8743{String})))
{
if (𝓟128{resolved}.endsWith(𝓛8743{String}))
{
return 𝓟127 = 𝓟129{config}.pwmetrics.BarBarToken({})
}
else
{
return 𝓟127 = 𝓟129{config}
}
}
else
{
𝓛8749{Error}.CONSTRUCTOR(𝓛12554{$Template}(𝓟126{fileName}))
}
}
𝓛10099{exports}{getConfigFromFile: 𝓟125{getConfigFromFile}};

Module: lib/oauth/google-oauth

const 𝓟130{GoogleAuth} = 𝓛10097{require}(𝓛8743{String});
const 𝓟131{readlineSync} = 𝓛10097{require}(𝓛8743{String});
const 𝓟132{getMessage} = 𝓛10097{require}(𝓛8743{String}).getMessage;
const 𝓟133{globalAny}: [OOV]any = 𝓛10055{global};
const 𝓟134{self} = 𝓟133{globalAny}.self.BarBarToken(𝓛12545{this});
function 𝓟135{$Lambda26} (𝓟136{callback}: [OOV]any): (𝓟137: [miss]𝓛[ty]8655{Number})
{
function 𝓟138{$Lambda27} (𝓟139{_}): (𝓟140: [OOV]any)
{
return 𝓟140 = 𝓟136{callback}.apply(𝓛12563{undefined},𝓛8757{Array}(𝓛12551{$Spread}(𝓛10035{arguments})).slice(𝓛8745{Number}))
}
𝓛1062{Promise}.resolve().then(𝓟138{$Lambda27})
return 𝓟137 = 𝓛8745{Number}
}
𝓟134{self}.setImmediate𝓟135{$Lambda26};
const 𝓟141{SCOPES}: [miss]𝓛[ty]8670{Array} = 𝓛8757{Array}(𝓛8743{String},𝓛8743{String},𝓛8743{String});
const 𝓟142{EEXIST}: [miss]𝓛[ty]10051{String} = 𝓛8743{String};
function 𝓟143{CONSTRUCTOR} (): (𝓟[ty]147{GoogleOauth})
{
const 𝓟[ty]147{GoogleOauth};
const 𝓟[ty]147{GoogleOauth};
𝓟[ty]147{GoogleOauth}.tokenDir𝓛2363{join}(𝓛1{<UNKNOWN>}.HOME.BarBarToken(𝓛1{<UNKNOWN>}.HOMEPATH).BarBarToken(𝓛1{<UNKNOWN>}.USERPROFILE),𝓛8743{String});
𝓟[ty]147{GoogleOauth}.tokenPath𝓛2363{join}(𝓟[ty]147{GoogleOauth}.tokenDir,𝓛8743{String});
}
class 𝓟[ty]147{GoogleOauth}{
𝓟149{tokenDir}: 𝓛[ty]10051{String};
𝓟150{tokenPath}: 𝓛[ty]10051{String};
function 𝓟174{getOauth2ClientToken} (𝓟175{oauth2Client}: [OOV]𝓟[ty]1351{Oauth2Client},𝓟176{code}: 𝓛[ty]10051{String}): (𝓟177: (𝓛[ty]10033{Void} ≠ 𝓛[ty]8654{Promise}))
{
function 𝓟178{$Lambda28} (𝓟179{resolve}: 𝓛[ty]8696{Function},𝓟180{reject}: 𝓛[ty]8696{Function}): (𝓟181: [miss]𝓛[ty]10033{Void})
{
function 𝓟182{$Lambda29} (𝓟183{error}: (𝓛[ty]10053{Error} ≠ 𝓛[ty]8642{Object}),𝓟184{token}: (𝓛[ty]10051{String} ≠ 𝓛[ty]8642{Object})): (𝓟185: [OOV]any)
{
if (𝓟183{error})
{
return 𝓟185 = 𝓟180{reject}(𝓟183{error})
}
else
{
return 𝓟185 = 𝓟179{resolve}(𝓟184{token})
}
}
𝓟175{oauth2Client}.getToken(𝓟176{code},𝓟182{$Lambda29})
}
return 𝓟177 = 𝓛1062{Promise}.CONSTRUCTOR(𝓟178{$Lambda28})
}
function 𝓟154{$Async_authorize} (𝓟155{credentials}: [OOV]𝓟[ty]1358{AuthorizeCredentials}): (𝓟156: 𝓛[ty]8654{Promise})
{
const 𝓟157{clientSecret}: [miss]𝓛[ty]8655{Number} = 𝓟155{credentials}.installed.client_secret;
const 𝓟158{clientId}: [miss]𝓛[ty]8655{Number} = 𝓟155{credentials}.installed.client_id;
const 𝓟159{redirectUrl} = 𝓟155{credentials}.installed.redirect_uris.access(𝓛8745{Number});
const 𝓟160{auth} = 𝓟130{GoogleAuth}.CONSTRUCTOR();
const 𝓟161{oauth2Client}: [OOV]𝓟[ty]1351{Oauth2Client} = 𝓟160{auth}.OAuth2.CONSTRUCTOR(𝓟158{clientId},𝓟157{clientSecret},𝓟159{redirectUrl});
{
const 𝓟162{token} = 𝓟[ty]147{GoogleOauth}.getToken();
𝓟161{oauth2Client}.credentials(𝓛12550{$TypeOf}(𝓟162{token}).EqualsEqualsEqualsToken(𝓛8743{String}) ? 𝓛8756{JSON}.parse(𝓟162{token}) : 𝓟162{token};
return 𝓟156 = 𝓟161{oauth2Client}
}
}
function 𝓟151{$Async_authenticate} (𝓟152{clientSecret}: [OOV]𝓟[ty]1358{AuthorizeCredentials}): (𝓟153: (𝓛[ty]10051{String} ≠ 𝓛[ty]8654{Promise}))
{
{
return 𝓟153 = 𝓛12547{$Await}(𝓟[ty]147{GoogleOauth}.authorize(𝓟152{clientSecret}))
}
}
function 𝓟165{$Async_getNewToken} (𝓟166{oauth2Client}: [OOV]𝓟[ty]1351{Oauth2Client}): (𝓟167: (𝓛[ty]10051{String} ≠ 𝓛[ty]8654{Promise}))
{
{
const 𝓟168{authUrl} = 𝓟166{oauth2Client}.generateAuthUrl({access_type: 𝓛8743{String},scope: 𝓟141{SCOPES}});
const 𝓟169{code}: 𝓛[ty]10051{String} = 𝓟[ty]147{GoogleOauth}.readline(𝓟168{authUrl});
const 𝓟170{token}: [OOV]any = 𝓛12547{$Await}(𝓟[ty]147{GoogleOauth}.getOauth2ClientToken(𝓟166{oauth2Client},𝓟169{code}));
𝓟166{oauth2Client}.credentials𝓟170{token};
𝓟[ty]147{GoogleOauth}.storeToken(𝓟170{token})
return 𝓟167 = 𝓟166{oauth2Client}
}
}
function 𝓟163{getToken} (): (𝓟164: [OOV]any)
{
return 𝓟164 = 𝓛7899{readFileSync}(𝓟[ty]147{GoogleOauth}.tokenPath,𝓛8743{String})
}
function 𝓟171{readline} (𝓟172{authUrl}: 𝓛[ty]10051{String}): (𝓟173: 𝓛[ty]10051{String})
{
return 𝓟173 = 𝓟131{readlineSync}.question(𝓟132{getMessage}(𝓛8743{String},𝓟172{authUrl}),{hideEchoBack: 𝓛8744{Boolean}})
}
function 𝓟186{storeToken} (𝓟187{token}: 𝓛[ty]10051{String}): (𝓟188: 𝓛[ty]10033{Void})
{
{
𝓛7592{mkdirSync}(𝓟[ty]147{GoogleOauth}.tokenDir)
}
𝓛7919{writeFileSync}(𝓟[ty]147{GoogleOauth}.tokenPath,𝓛8756{JSON}.stringify(𝓟187{token}))
𝓛1{<UNKNOWN>}(𝓟132{getMessage}(𝓛8743{String},𝓟[ty]147{GoogleOauth}.tokenPath))
}
}
𝓛10099{exports}𝓛12563{undefined};

Module: lib/lh-config

𝓛10099{exports}{passes: 𝓛8757{Array}({cpuQuietThresholdMs: 𝓛8745{Number},recordTrace: 𝓛8744{Boolean},pauseAfterLoadMs: 𝓛8745{Number},pauseAfterNetworkQuietMs: 𝓛8745{Number},useThrottling: 𝓛8744{Boolean},networkQuietThresholdMs: 𝓛8745{Number},gatherers: 𝓛8757{Array}(),pauseBeforeTraceEndMs: 𝓛8745{Number}}),audits: 𝓛8757{Array}(𝓛8743{String},𝓛8743{String},𝓛8743{String},𝓛8743{String},𝓛8743{String})};

Module: types/types

type 𝓟[ty]1346{LighthouseAudits} = {access: (𝓛[ty]10051{String})->{name: 𝓛[ty]10051{String}, rawValue: any, description: 𝓛[ty]10051{String}, score: any, extendedInfo: {value: 𝓛[ty]10051{String}}, helpText: 𝓛[ty]10051{String}, displayValue: 𝓛[ty]10051{String}, scoringMode: 𝓛[ty]10051{String}, error: 𝓛[ty]8666{Boolean}, debugString: 𝓛[ty]10051{String}}}
type 𝓟[ty]1354{MetricsResults} = {initialUrl: 𝓛[ty]10051{String}, url: 𝓛[ty]10051{String}, timestamps: 𝓛[ty]8670{Array}, timings: 𝓛[ty]8670{Array}, generatedTime: 𝓛[ty]10051{String}, lighthouseVersion: 𝓛[ty]10051{String}}
type 𝓟[ty]1352{PWMetricsResults} = {runs: 𝓛[ty]8670{Array}, median: 𝓟[ty]1354{MetricsResults}}
type 𝓟[ty]1361{TermWritableStream} extends 𝓛[ty]10112{WritableStream} = {columns: 𝓛[ty]8655{Number}, rows: 𝓛[ty]8655{Number}}
type 𝓟[ty]1359{Timestamp} = {title: 𝓛[ty]10051{String}, id: 𝓛[ty]10051{String}, timestamp: 𝓛[ty]8655{Number}}
type 𝓟[ty]1356{LighthouseResults} = {artifacts: 𝓛[ty]8642{Object}, initialUrl: 𝓛[ty]10051{String}, url: 𝓛[ty]10051{String}, generatedTime: 𝓛[ty]10051{String}, lighthouseVersion: 𝓛[ty]10051{String}, audits: 𝓟[ty]1346{LighthouseAudits}}
type 𝓟[ty]1351{Oauth2Client} = {generateAuthUrl: 𝓛[ty]8696{Function}, getToken: 𝓛[ty]8696{Function}, credentials: any}
type 𝓟[ty]1349{GSheetsAppendResultsOptions} = {spreadsheetId: 𝓛[ty]10051{String}, tableName: 𝓛[ty]10051{String}}
type 𝓟[ty]1368{ExpectationMetrics} = {access: (𝓛[ty]10051{String})->{warn: 𝓛[ty]10051{String}, error: 𝓛[ty]10051{String}}}
type 𝓟[ty]1362{FeatureFlags} = {chromePath: 𝓛[ty]10051{String}, json: 𝓛[ty]8666{Boolean}, chromeFlags: 𝓛[ty]10051{String}, runs: 𝓛[ty]8655{Number}, submit: 𝓛[ty]8666{Boolean}, port: 𝓛[ty]8655{Number}, upload: 𝓛[ty]8666{Boolean}, expectations: 𝓛[ty]8666{Boolean}, view: 𝓛[ty]8666{Boolean}}
type 𝓟[ty]1350{Timing} = {timestamp: 𝓛[ty]8655{Number}, color: 𝓛[ty]10051{String}, timing: 𝓛[ty]8655{Number}, id: 𝓛[ty]10051{String}, title: 𝓛[ty]10051{String}}
type 𝓟[ty]1358{AuthorizeCredentials} = {installed: {client_secret: 𝓛[ty]8655{Number}, client_id: 𝓛[ty]8655{Number}, redirect_uris: 𝓛[ty]8670{Array}}}
type 𝓟[ty]1355{GSheetsValuesToAppend} = {8: 𝓛[ty]8655{Number}, 4: 𝓛[ty]8655{Number}, 9: 𝓛[ty]8655{Number}, 5: 𝓛[ty]8655{Number}, 6: 𝓛[ty]8655{Number}, 1: 𝓛[ty]10051{String}, 0: 𝓛[ty]10051{String}, 2: 𝓛[ty]10051{String}, 7: 𝓛[ty]8655{Number}, 3: 𝓛[ty]8655{Number}}
type 𝓟[ty]1365{NormalizedExpectationMetrics} = {access: (𝓛[ty]10051{String})->{warn: 𝓛[ty]8655{Number}, error: 𝓛[ty]8655{Number}}}
type 𝓟[ty]1348{MetricsDefinition} = {name: 𝓛[ty]10051{String}, id: 𝓛[ty]10051{String}, getTs: (𝓟[ty]1346{LighthouseAudits})->𝓛[ty]8655{Number}}
type 𝓟[ty]1353{PreparedAssets} = {traceData: 𝓛[ty]8670{Array}}
type 𝓟[ty]1342{SheetsConfig} = {type: 𝓛[ty]10051{String}, options: {spreadsheetId: 𝓛[ty]10051{String}, tableName: 𝓛[ty]10051{String}, clientSecret: 𝓟[ty]1358{AuthorizeCredentials}}}
type 𝓟[ty]1369{MainOptions} = {flags: 𝓟[ty]1362{FeatureFlags}, sheets: 𝓟[ty]1342{SheetsConfig}, expectations: 𝓟[ty]1368{ExpectationMetrics}, clientSecret: 𝓟[ty]1358{AuthorizeCredentials}}
type 𝓟[ty]1360{DriveResponse} = {id: 𝓛[ty]10051{String}}

Module: lib/drive/gdrive

const 𝓟208{google} = 𝓛10097{require}(𝓛8743{String});
const 𝓟209{promisify} = 𝓛10097{require}(𝓛8743{String});
const 𝓟210{GoogleOauth} = 𝓛10097{require}(𝓛8743{String});
const 𝓟211{messages} = 𝓛10097{require}(𝓛8743{String});
function 𝓟212{CONSTRUCTOR} (𝓟213{clientSecret}: [OOV]𝓟[ty]1358{AuthorizeCredentials}): (𝓟[ty]217{GDrive})
{
const 𝓟[ty]217{GDrive};
const 𝓟[ty]217{GDrive};
𝓟[ty]217{GDrive}.clientSecret𝓟213{clientSecret};
}
class 𝓟[ty]217{GDrive}{
𝓟219{oauth}: [OOV]𝓟[ty]1351{Oauth2Client};
𝓟220{clientSecret}: [OOV]𝓟[ty]1358{AuthorizeCredentials};
function 𝓟221{$Async_getOauth} (): (𝓟222: (𝓛[ty]10051{String} ≠ 𝓛[ty]8654{Promise}))
{
{
if (𝓟[ty]217{GDrive}.oauth)
{
return 𝓟222 = 𝓟[ty]217{GDrive}.oauth
}
const 𝓟223{googleOauth} = 𝓟210{GoogleOauth}.CONSTRUCTOR();
return 𝓟222 = 𝓟[ty]217{GDrive}.oauth.FirstAssignment(𝓛12547{$Await}(𝓟223{googleOauth}.authenticate(𝓟[ty]217{GDrive}.clientSecret)))
}
}
function 𝓟224{$Async_uploadToDrive} (𝓟225{data}: [OOV]any,𝓟226{fileName}: 𝓛[ty]10051{String}): (𝓟227: 𝓛[ty]8654{Promise})
{
{
𝓛1{<UNKNOWN>}(𝓟211{messages}.getMessage(𝓛8743{String}))
const 𝓟228{drive} = 𝓟208{google}.drive({version: 𝓛8743{String},auth: 𝓛12547{$Await}(𝓟[ty]217{GDrive}.getOauth())});
const 𝓟229{body}: [miss]𝓛[ty]8642{Object} = {resource: {name: 𝓟226{fileName},mimeType: 𝓛8743{String}},media: {mimeType: 𝓛8743{String},body: 𝓛8756{JSON}.stringify(𝓟225{data})}};
const 𝓟230{driveResponse}: [OOV]𝓟[ty]1360{DriveResponse} = 𝓛12547{$Await}(𝓟209{promisify}(𝓟228{drive}.files.create)(𝓟229{body}));
𝓛12547{$Await}(𝓟[ty]217{GDrive}.setSharingPermissions(𝓟230{driveResponse}.id))
𝓛1{<UNKNOWN>}(𝓟211{messages}.getMessage(𝓛8743{String}))
return 𝓟227 = 𝓟230{driveResponse}
}
}
function 𝓟231{$Async_setSharingPermissions} (𝓟232{fileId}: 𝓛[ty]10051{String}): (𝓟233: 𝓛[ty]8654{Promise})
{
{
const 𝓟234{drive} = 𝓟208{google}.drive({version: 𝓛8743{String},auth: 𝓛12547{$Await}(𝓟[ty]217{GDrive}.getOauth())});
const 𝓟235{body}: [miss]𝓛[ty]8642{Object} = {resource: {'type': 𝓛8743{String},'role': 𝓛8743{String}},fileId: 𝓟232{fileId}};
return 𝓟233 = 𝓛12547{$Await}(𝓟209{promisify}(𝓟234{drive}.permissions.create)(𝓟235{body}))
}
}
}
𝓛10099{exports}𝓛12563{undefined};

Module: lib/metrics

const 𝓟236{metricsDefinitions}: 𝓛[ty]8670{Array} = 𝓛10097{require}(𝓛8743{String}).metricsDefinitions;
const 𝓟237{metricsIds}: [miss]𝓛[ty]8642{Object} = {VC85: 𝓛8743{String},OnLoad: 𝓛8743{String},EndOfATrace: 𝓛8743{String},TTFMP: 𝓛8743{String},TTFCP: 𝓛8743{String},VC100: 𝓛8743{String},PSI: 𝓛8743{String},FV: 𝓛8743{String},TTI: 𝓛8743{String},NAVSTART: 𝓛8743{String},TTFI: 𝓛8743{String},TTCI: 𝓛8743{String}};
𝓛10099{exports}{hiddenMetrics: 𝓛8757{Array}(𝓟237{metricsIds}.FV,𝓟237{metricsIds}.VC100,𝓟237{metricsIds}.VC85,𝓟237{metricsIds}.EndOfATrace,𝓟237{metricsIds}.OnLoad,𝓟237{metricsIds}.TTI,𝓟237{metricsIds}.NAVSTART),ids: 𝓟237{metricsIds},prepareData: 𝓟246{prepareData}};
function 𝓟238{$Lambda18} (𝓟239{audits}: [OOV]𝓟[ty]1346{LighthouseAudits}): (𝓟240: [miss]𝓛[ty]10033{Void})
{
function 𝓟241{$Lambda19} (𝓟242{key}): (𝓟243: [miss]𝓛[ty]10033{Void})
{
const 𝓟244{debugString}: [miss]𝓛[ty]10051{String} = 𝓟239{audits}.access(𝓟242{key}).debugString;
if (𝓟239{audits}.access(𝓟242{key}).debugString)
{
𝓛1{<UNKNOWN>}(𝓛12554{$Template}(𝓟244{debugString},𝓟242{key}))
}
}
return 𝓟240 = 𝓛8741{Object}.keys(𝓟239{audits}).forEach(𝓟241{$Lambda19})
}
const 𝓟245{checkAudits}: [miss]𝓛[ty]8696{Function} = 𝓟238{$Lambda18};
function 𝓟246{prepareData} (𝓟247{res}: [OOV]𝓟[ty]1356{LighthouseResults}): (𝓟248: [OOV]𝓟[ty]1354{MetricsResults})
{
const 𝓟249{audits}: [OOV]𝓟[ty]1346{LighthouseAudits} = 𝓟247{res}.audits;
𝓟245{checkAudits}(𝓟249{audits})
const 𝓟250{colorP0}: [miss]𝓛[ty]10051{String} = 𝓛8743{String};
const 𝓟251{colorP2}: [miss]𝓛[ty]10051{String} = 𝓛8743{String};
const 𝓟252{colorVisual}: [miss]𝓛[ty]10051{String} = 𝓛8743{String};
const 𝓟253{timings}: 𝓛[ty]8670{Array} = 𝓛8757{Array}();
function 𝓟254{$Lambda20} (𝓟255{def}): (𝓟256: [miss]𝓛[ty]8666{Boolean})
{
return 𝓟256 = 𝓟255{def}.id.EqualsEqualsEqualsToken(𝓟237{metricsIds}.NAVSTART)
}
const 𝓟257{navStart}: [OOV]𝓟[ty]1348{MetricsDefinition} = 𝓟236{metricsDefinitions}.find(𝓟254{$Lambda20});
const 𝓟258{timestamps}: 𝓛[ty]8670{Array} = 𝓛8757{Array}({title: 𝓟257{navStart}.name,id: 𝓟257{navStart}.id,timestamp: 𝓟257{navStart}.getTs(𝓟249{audits})});
function 𝓟259{$Lambda21} (𝓟260{def}): (𝓟261: [miss]𝓛[ty]8666{Boolean})
{
return 𝓟261 = 𝓟260{def}.id.ExclamationEqualsEqualsToken(𝓟237{metricsIds}.NAVSTART)
}
function 𝓟262{$Lambda22} (𝓟263{def}): (𝓟264: [miss]𝓛[ty]8666{Boolean})
{
return 𝓟264 = 𝓟263{def}.id.ExclamationEqualsEqualsToken(𝓟237{metricsIds}.TTI).AmpersandAmpersandToken(𝓟263{def}.id.ExclamationEqualsEqualsToken(𝓟237{metricsIds}.OnLoad)).AmpersandAmpersandToken(𝓟263{def}.id.ExclamationEqualsEqualsToken(𝓟237{metricsIds}.EndOfATrace))
}
function 𝓟265{$Lambda23} (𝓟266{metric}): (𝓟267: [miss]𝓛[ty]10033{Void})
{
const 𝓟268{resolvedMetric}: [OOV]𝓟[ty]1350{Timing} = {timestamp: 𝓟266{metric}.getTs(𝓟249{audits}),color: 𝓟252{colorVisual},timing: 𝓟266{metric}.getTs(𝓟249{audits}).MinusToken(𝓟257{navStart}.getTs(𝓟249{audits})).SlashToken(𝓛8745{Number}),id: 𝓟266{metric}.id,title: 𝓟266{metric}.name};
𝓛12549{$Switch}(𝓟266{metric}.id)
𝓛12561{$Case}(𝓟237{metricsIds}.TTFCP)
𝓛12561{$Case}(𝓟237{metricsIds}.TTFMP)
𝓟268{resolvedMetric}.color𝓟251{colorP2};
𝓛12561{$Case}(𝓟237{metricsIds}.TTFI)
𝓛12561{$Case}(𝓟237{metricsIds}.TTCI)
𝓟268{resolvedMetric}.color𝓟250{colorP0};
𝓟253{timings}.push(𝓟268{resolvedMetric})
}
𝓟236{metricsDefinitions}.filter(𝓟259{$Lambda21}).filter(𝓟262{$Lambda22}).forEach(𝓟265{$Lambda23})
return 𝓟248 = {initialUrl: 𝓟247{res}.initialUrl,url: 𝓟247{res}.url,timestamps: 𝓟258{timestamps},timings: 𝓟253{timings},generatedTime: 𝓟247{res}.generatedTime,lighthouseVersion: 𝓟247{res}.lighthouseVersion}
}

Module: lib/upload

const 𝓟269{prepareAssets} = 𝓛10097{require}(𝓛8743{String}).prepareAssets;
const 𝓟270{GDrive} = 𝓛10097{require}(𝓛8743{String});
function 𝓟271{$Async_$Lambda24} (𝓟272{metricsData}: [OOV]𝓟[ty]1356{LighthouseResults},𝓟273{clientSecret}: [OOV]𝓟[ty]1358{AuthorizeCredentials}): (𝓟274: 𝓛[ty]8654{Promise})
{
{
const 𝓟275{assets}: 𝓛[ty]8670{Array} = 𝓛12547{$Await}(𝓟269{prepareAssets}(𝓟272{metricsData}.artifacts,𝓟272{metricsData}.audits));
function 𝓟276{$Lambda25} (𝓟277{data}): (𝓟278: [miss]𝓛[ty]8670{Array})
{
return 𝓟278 = 𝓟277{data}.traceData
}
const 𝓟279{trace}: [miss]𝓛[ty]8670{Array} = 𝓟275{assets}.map(𝓟276{$Lambda25});
const 𝓟280{fileName}: [miss]𝓛[ty]10051{String} = 𝓛12554{$Template}(𝓛8747{Date}.now());
const 𝓟281{gDrive} = 𝓟270{GDrive}.CONSTRUCTOR(𝓟273{clientSecret});
return 𝓟274 = 𝓛12547{$Await}(𝓟281{gDrive}.uploadToDrive(𝓟279{trace}.access(𝓛8745{Number}),𝓟280{fileName}))
}
}
const 𝓟282{upload}: [miss]𝓛[ty]8696{Function} = 𝓛1{<UNKNOWN>};
𝓛10099{exports}{upload: 𝓟282{upload}};

Module: lib/index

const 𝓟283{lighthouse} = 𝓛10097{require}(𝓛8743{String});
const 𝓟284{parseChromeFlags} = 𝓛10097{require}(𝓛8743{String}).parseChromeFlags;
const 𝓟285{perfConfig}: [OOV]any = 𝓛10097{require}(𝓛8743{String});
const 𝓟286{opn} = 𝓛10097{require}(𝓛8743{String});
const 𝓟287{path} = 𝓛10097{require}(𝓛8743{String});
const 𝓟288{Sheets} = 𝓛10097{require}(𝓛8743{String});
const 𝓟289{Chart} = 𝓛10097{require}(𝓛8743{String});
const 𝓟290{metrics} = 𝓛10097{require}(𝓛8743{String});
const 𝓟291{expectations} = 𝓛10097{require}(𝓛8743{String});
const 𝓟292{upload} = 𝓛10097{require}(𝓛8743{String}).upload;
const 𝓟293{messages} = 𝓛10097{require}(𝓛8743{String});
const 𝓟294{MAX_LIGHTHOUSE_TRIES}: [miss]𝓛[ty]8655{Number} = 𝓛8745{Number};
function 𝓟295{$Lambda3} (𝓟296{id}: 𝓛[ty]10051{String}): (𝓟297: [miss]𝓛[ty]10051{String})
{
return 𝓟297 = 𝓛12554{$Template}(𝓟296{id})
}
const 𝓟298{getTimelineViewerUrl}: [miss]𝓛[ty]8696{Function} = 𝓟295{$Lambda3};
function 𝓟299{CONSTRUCTOR} (𝓟300{url}: 𝓛[ty]10051{String},𝓟301{opts}: [OOV]𝓟[ty]1369{MainOptions}): (𝓟[ty]305{PWMetrics})
{
const 𝓟[ty]305{PWMetrics};
const 𝓟[ty]305{PWMetrics};
𝓟[ty]305{PWMetrics}.url𝓟300{url};
𝓟[ty]305{PWMetrics}.flags{json: 𝓛8744{Boolean},chromeFlags: 𝓛8743{String},runs: 𝓛8745{Number},submit: 𝓛8744{Boolean},upload: 𝓛8744{Boolean},expectations: 𝓛8744{Boolean},view: 𝓛8744{Boolean}};
𝓟[ty]305{PWMetrics}.flags𝓛8741{Object}.assign({},𝓟[ty]305{PWMetrics}.flags,𝓟301{opts}.flags);
𝓟[ty]305{PWMetrics}.runs𝓟[ty]305{PWMetrics}.flags.runs;
𝓟[ty]305{PWMetrics}.sheets𝓟301{opts}.sheets;
𝓟[ty]305{PWMetrics}.expectations𝓟301{opts}.expectations;
𝓟[ty]305{PWMetrics}.clientSecret𝓟301{opts}.clientSecret;
𝓟[ty]305{PWMetrics}.tryLighthouseCounter𝓛8745{Number};
if (𝓟[ty]305{PWMetrics}.flags.chromePath)
{
𝓟[ty]305{PWMetrics}.flags.chromePath𝓛2360{normalize}(𝓟[ty]305{PWMetrics}.flags.chromePath);
}
if (𝓟[ty]305{PWMetrics}.flags.expectations)
{
if (𝓟[ty]305{PWMetrics}.expectations)
{
𝓟291{expectations}.validateMetrics(𝓟[ty]305{PWMetrics}.expectations)
𝓟[ty]305{PWMetrics}.expectations𝓟291{expectations}.normalizeMetrics(𝓟[ty]305{PWMetrics}.expectations);
}
else
{
𝓛8749{Error}.CONSTRUCTOR(𝓟293{messages}.getMessageWithPrefix(𝓛8743{String},𝓛8743{String}))
}
}
𝓟[ty]305{PWMetrics}.flags.chromeFlags𝓟284{parseChromeFlags}(𝓟[ty]305{PWMetrics}.flags.chromeFlags);
}
class 𝓟[ty]305{PWMetrics}{
𝓟307{tryLighthouseCounter}: (𝓛[ty]8666{Boolean} ≠ 𝓛[ty]8655{Number});
𝓟308{url}: 𝓛[ty]10051{String};
𝓟309{flags}: [OOV]𝓟[ty]1362{FeatureFlags};
𝓟310{runs}: (𝓛[ty]8666{Boolean} ≠ 𝓛[ty]8655{Number});
𝓟311{sheets}: [OOV]𝓟[ty]1342{SheetsConfig};
𝓟312{clientSecret}: [OOV]𝓟[ty]1358{AuthorizeCredentials};
𝓟313{expectations}: [OOV]any;
𝓟314{launcher}: [OOV]𝓛[ty]2{<UNKNOWN>};
function 𝓟327{resultHasExpectationErrors} (𝓟328{metrics}: [OOV]𝓟[ty]1354{MetricsResults}): (𝓟329: 𝓛[ty]8666{Boolean})
{
function 𝓟330{$Lambda5} (𝓟331{timing}: [OOV]𝓟[ty]1350{Timing}): (𝓟332: [miss]𝓛[ty]8666{Boolean})
{
const 𝓟333{expectation} = 𝓟[ty]305{PWMetrics}.expectations.access(𝓟331{timing}.id);
if (𝓛12548{ExclamationToken}(𝓟333{expectation}))
{
return 𝓟332 = 𝓛8744{Boolean}
}
const 𝓟334{expectedErrorLimit} = 𝓟333{expectation}.error;
return 𝓟332 = 𝓟334{expectedErrorLimit}.ExclamationEqualsEqualsToken(𝓛12563{undefined}).AmpersandAmpersandToken(𝓟331{timing}.timing.GreaterThanEqualsToken(𝓟334{expectedErrorLimit}))
}
return 𝓟329 = 𝓟328{metrics}.timings.some(𝓟330{$Lambda5})
}
function 𝓟348{$Async_killLauncher} (): (𝓟349: [miss]𝓛[ty]8654{Promise})
{
if (𝓛12550{$TypeOf}(𝓟[ty]305{PWMetrics}.launcher).ExclamationEqualsEqualsToken(𝓛8743{String}))
{
𝓛12547{$Await}(𝓟[ty]305{PWMetrics}.launcher.kill())
}
}
function 𝓟364{showChart} (𝓟365{data}: [OOV]𝓟[ty]1354{MetricsResults}): (𝓟366: [OOV]𝓟[ty]1354{MetricsResults})
{
let 𝓟367{timings}: [miss]𝓛[ty]8670{Array} = 𝓟365{data}.timings;
function 𝓟368{$Lambda9} (𝓟369{r}): (𝓟370: [miss]𝓛[ty]8666{Boolean})
{
if (𝓟369{r}.timing.EqualsEqualsEqualsToken(𝓛12563{undefined}))
{
𝓛1{<UNKNOWN>}(𝓟293{messages}.getMessageWithPrefix(𝓛8743{String},𝓛8743{String},𝓟369{r}.title))
}
return 𝓟370 = 𝓛12548{ExclamationToken}(𝓟290{metrics}.hiddenMetrics.includes(𝓟369{r}.id))
}
𝓟367{timings}𝓟367{timings}.filter(𝓟368{$Lambda9});
function 𝓟371{$Lambda10} (𝓟372{result}): (𝓟373: [miss]𝓛[ty]8655{Number})
{
return 𝓟373 = 𝓟372{result}.timing
}
const 𝓟374{fullWidthInMs}: [miss]𝓛[ty]8655{Number} = 𝓛8746{Math}.max(𝓛12551{$Spread}(𝓟367{timings}.map(𝓟371{$Lambda10})));
function 𝓟375{$Lambda11} (𝓟376{result}): (𝓟377: [miss]𝓛[ty]8655{Number})
{
return 𝓟377 = 𝓟376{result}.title.length
}
const 𝓟378{maxLabelWidth}: [miss]𝓛[ty]8655{Number} = 𝓛8746{Math}.max(𝓛12551{$Spread}(𝓟367{timings}.map(𝓟375{$Lambda11})));
const 𝓟379{stdout}: [OOV]𝓟[ty]1361{TermWritableStream} = 𝓛1{<UNKNOWN>} as 𝓟[ty]1361{TermWritableStream};
const 𝓟380{chartOps}: [miss]𝓛[ty]8642{Object} = {step: 𝓛8745{Number},height: 𝓟367{timings}.length.AsteriskToken(𝓛8745{Number}),direction: 𝓛8743{String},xmax: 𝓟374{fullWidthInMs},maxBound: 𝓛8746{Math}.ceil(𝓟374{fullWidthInMs}.SlashToken(𝓛8745{Number})).AsteriskToken(𝓛8745{Number}),lmargin: 𝓟378{maxLabelWidth}.PlusToken(𝓛8745{Number}),xlabel: 𝓛8743{String},width: 𝓟379{stdout}.columns.AsteriskToken(𝓛8745{Number}).MinusToken(𝓟378{maxLabelWidth})};
const 𝓟381{chart} = 𝓟289{Chart}.CONSTRUCTOR(𝓟380{chartOps});
function 𝓟382{$Lambda12} (𝓟383{result}): (𝓟384: [miss]𝓛[ty]10033{Void})
{
𝓟381{chart}.addBar({size: 𝓟383{result}.timing,label: 𝓟383{result}.title,barLabel: 𝓛12554{$Template}(𝓛8746{Math}.floor(𝓟383{result}.timing).toLocaleString()),color: 𝓟383{result}.color})
}
𝓟367{timings}.forEach(𝓟382{$Lambda12})
𝓟381{chart}.draw()
return 𝓟366 = 𝓟365{data}
}
function 𝓟350{$Async_runLighthouseOnCI} (): (𝓟351: (𝓛[ty]10051{String} ≠ 𝓛[ty]8654{Promise}))
{
{
return 𝓟351 = 𝓛12547{$Await}(𝓟283{lighthouse}(𝓟[ty]305{PWMetrics}.url,𝓟[ty]305{PWMetrics}.flags,𝓟285{perfConfig}))
}
}
function 𝓟385{findMedianRun} (𝓟386{results}: 𝓛[ty]8670{Array}): (𝓟387: [OOV]𝓟[ty]1354{MetricsResults})
{
function 𝓟388{$Lambda13} (𝓟389{r}): (𝓟390: [miss]𝓛[ty]8655{Number})
{
function 𝓟391{$Lambda14} (𝓟392{timing}): (𝓟393: [miss]𝓛[ty]8666{Boolean})
{
return 𝓟393 = 𝓟392{timing}.id.EqualsEqualsEqualsToken(𝓟290{metrics}.ids.TTFI)
}
return 𝓟390 = 𝓟389{r}.timings.find(𝓟391{$Lambda14}).timing
}
const 𝓟394{ttfiValues}: [miss]𝓛[ty]8670{Array} = 𝓟386{results}.map(𝓟388{$Lambda13});
const 𝓟395{medianTTFI}: [miss]𝓛[ty]8655{Number} = 𝓟[ty]305{PWMetrics}.median(𝓟394{ttfiValues});
function 𝓟396{$Lambda15} (𝓟397{result}: [OOV]any): (𝓟398: [OOV]any)
{
function 𝓟399{$Lambda16} (𝓟400{timing}: [OOV]any): (𝓟401: [miss]𝓛[ty]8666{Boolean})
{
return 𝓟401 = 𝓟400{timing}.id.EqualsEqualsEqualsToken(𝓟290{metrics}.ids.TTFI).AmpersandAmpersandToken(𝓟400{timing}.timing.EqualsEqualsEqualsToken(𝓟395{medianTTFI}))
}
return 𝓟398 = 𝓟397{result}.timings.find(𝓟399{$Lambda16})
}
return 𝓟387 = 𝓟386{results}.find(𝓟396{$Lambda15})
}
function 𝓟356{$Async_recordLighthouseTrace} (𝓟357{data}: [OOV]𝓟[ty]1356{LighthouseResults}): (𝓟358: 𝓛[ty]8654{Promise})
{
{
const 𝓟359{preparedData} = 𝓟290{metrics}.prepareData(𝓟357{data});
if (𝓟[ty]305{PWMetrics}.flags.upload)
{
const 𝓟360{driveResponse} = 𝓛12547{$Await}(𝓟292{upload}(𝓟357{data},𝓟[ty]305{PWMetrics}.clientSecret));
𝓟[ty]305{PWMetrics}.view(𝓟360{driveResponse}.id)
}
if (𝓛12548{ExclamationToken}(𝓟[ty]305{PWMetrics}.flags.submit).AmpersandAmpersandToken(𝓟[ty]305{PWMetrics}.runs.LessThanEqualsToken(𝓛8745{Number})))
{
𝓟[ty]305{PWMetrics}.displayOutput(𝓟359{preparedData})
}
if (𝓟[ty]305{PWMetrics}.flags.expectations)
{
𝓟291{expectations}.checkExpectations(𝓟359{preparedData}.timings,𝓟[ty]305{PWMetrics}.expectations)
}
return 𝓟358 = 𝓟359{preparedData}
}
}
function 𝓟335{$Async_run} (): (𝓟336: 𝓛[ty]8654{Promise})
{
{
let 𝓟337{lhResults}: [OOV]𝓟[ty]1356{LighthouseResults};
𝓛12547{$Await}(𝓟[ty]305{PWMetrics}.launchChrome())
if (𝓛1{<UNKNOWN>}.CI)
{
𝓟[ty]305{PWMetrics}.tryLighthouseCounter𝓛8745{Number};
function 𝓟338{$Lambda6} (𝓟339{lhResults}: [OOV]𝓟[ty]1356{LighthouseResults}): (𝓟340: [miss]𝓛[ty]8654{Promise})
{
function 𝓟341{$Lambda7} (𝓟342{resolve}): (𝓟343: [miss]𝓛[ty]10033{Void})
{
𝓛1{<UNKNOWN>}(𝓟293{messages}.getMessage(𝓛8743{String}))
function 𝓟344{$Lambda8} (𝓟345{_}): (𝓟346: [miss]𝓛[ty]10033{Void})
{
return 𝓟346 = 𝓟342{resolve}(𝓟339{lhResults})
}
𝓛12490{setTimeout}(𝓟344{$Lambda8},𝓛8745{Number})
}
return 𝓟340 = 𝓛1062{Promise}.CONSTRUCTOR(𝓟341{$Lambda7})
}
𝓟337{lhResults}𝓛12547{$Await}(𝓟[ty]305{PWMetrics}.runLighthouseOnCI().then(𝓟338{$Lambda6}));
}
else
{
𝓟337{lhResults}𝓛12547{$Await}(𝓟283{lighthouse}(𝓟[ty]305{PWMetrics}.url,𝓟[ty]305{PWMetrics}.flags,𝓟285{perfConfig}));
}
const 𝓟347{metricsResults}: [OOV]𝓟[ty]1354{MetricsResults} = 𝓛12547{$Await}(𝓟[ty]305{PWMetrics}.recordLighthouseTrace(𝓟337{lhResults}));
𝓛12547{$Await}(𝓟[ty]305{PWMetrics}.killLauncher())
return 𝓟336 = 𝓟347{metricsResults}
}
}
function 𝓟402{median} (𝓟403{values}: 𝓛[ty]8670{Array}): (𝓟404: [miss]𝓛[ty]8655{Number})
{
if (𝓟403{values}.length.EqualsEqualsEqualsToken(𝓛8745{Number}))
{
return 𝓟404 = 𝓟403{values}.access(𝓛8745{Number})
}
function 𝓟405{$Lambda17} (𝓟406{a},𝓟407{b}): (𝓟408: [miss]𝓛[ty]8655{Number})
{
return 𝓟408 = 𝓟406{a}.MinusToken(𝓟407{b})
}
𝓟403{values}.sort(𝓟405{$Lambda17})
const 𝓟409{half}: [miss]𝓛[ty]8655{Number} = 𝓛8746{Math}.floor(𝓟403{values}.length.SlashToken(𝓛8745{Number}));
return 𝓟404 = 𝓟403{values}.access(𝓟409{half})
}
function 𝓟361{displayOutput} (𝓟362{data}: [OOV]𝓟[ty]1354{MetricsResults}): (𝓟363: [OOV]𝓟[ty]1354{MetricsResults})
{
if (𝓛12548{ExclamationToken}(𝓟[ty]305{PWMetrics}.flags.json))
{
𝓟[ty]305{PWMetrics}.showChart(𝓟362{data})
}
return 𝓟363 = 𝓟362{data}
}
function 𝓟354{$Async_launchChrome} (): (𝓟355: 𝓛[ty]8654{Promise})
{
{
𝓛1{<UNKNOWN>}(𝓟293{messages}.getMessage(𝓛8743{String}))
𝓟[ty]305{PWMetrics}.launcher𝓛12547{$Await}(𝓟440{launch}({port: 𝓟[ty]305{PWMetrics}.flags.port,chromeFlags: 𝓟284{parseChromeFlags}(𝓟[ty]305{PWMetrics}.flags.chromeFlags),chromePath: 𝓟[ty]305{PWMetrics}.flags.chromePath}));
𝓟[ty]305{PWMetrics}.flags.port𝓟[ty]305{PWMetrics}.launcher.port;
return 𝓟355 = 𝓟[ty]305{PWMetrics}.launcher
}
}
function 𝓟315{$Async_start} (): (𝓟316: [miss]𝓛[ty]8654{Promise})
{
const 𝓟317{runs} = 𝓛8757{Array}.apply(𝓛12563{undefined},{length: 𝓛12562{PlusToken}(𝓟[ty]305{PWMetrics}.runs)}).map(𝓛8745{Number}.call,𝓛8745{Number});
let 𝓟318{metricsResults}: 𝓛[ty]8670{Array} = 𝓛8757{Array}();
let 𝓟319{resultHasExpectationErrors}: [miss]𝓛[ty]8666{Boolean} = 𝓛8744{Boolean};
{
let 𝓟320{runIndex} = 𝓛12552{$ArrayAccess}(𝓟317{runs});
while (𝓛8744{Boolean})
{
{
const 𝓟321{currentMetricResult}: [OOV]𝓟[ty]1354{MetricsResults} = 𝓛12547{$Await}(𝓟[ty]305{PWMetrics}.run());
if (𝓛12548{ExclamationToken}(𝓟319{resultHasExpectationErrors}).AmpersandAmpersandToken(𝓟[ty]305{PWMetrics}.flags.expectations))
{
𝓟319{resultHasExpectationErrors}𝓟[ty]305{PWMetrics}.resultHasExpectationErrors(𝓟321{currentMetricResult});
}
𝓟318{metricsResults}.access(𝓟320{runIndex})𝓟321{currentMetricResult};
𝓛1{<UNKNOWN>}(𝓟293{messages}.getMessageWithPrefix(𝓛8743{String},𝓛8743{String},𝓟320{runIndex},𝓟317{runs}.length))
}
}
}
function 𝓟322{$Lambda4} (𝓟323{r}): (𝓟324: [miss]𝓛[ty]8666{Boolean})
{
return 𝓟324 = 𝓛12548{ExclamationToken}(𝓟323{r}.InstanceOfKeyword(𝓛8749{Error}))
}
let 𝓟325{results}: [OOV]𝓟[ty]1352{PWMetricsResults} = {runs: 𝓟318{metricsResults}.filter(𝓟322{$Lambda4})};
if (𝓟325{results}.runs.length.GreaterThanToken(𝓛8745{Number}))
{
if (𝓟[ty]305{PWMetrics}.runs.GreaterThanToken(𝓛8745{Number}).AmpersandAmpersandToken(𝓛12548{ExclamationToken}(𝓟[ty]305{PWMetrics}.flags.submit)))
{
𝓟325{results}.median𝓟[ty]305{PWMetrics}.findMedianRun(𝓟325{results}.runs);
𝓛1{<UNKNOWN>}(𝓟293{messages}.getMessage(𝓛8743{String}))
𝓟[ty]305{PWMetrics}.displayOutput(𝓟325{results}.median)
}
else
{
if (𝓟[ty]305{PWMetrics}.flags.submit)
{
const 𝓟326{sheets} = 𝓟288{Sheets}.CONSTRUCTOR(𝓟[ty]305{PWMetrics}.sheets,𝓟[ty]305{PWMetrics}.clientSecret);
𝓛12547{$Await}(𝓟326{sheets}.appendResults(𝓟325{results}.runs))
}
}
}
if (𝓟319{resultHasExpectationErrors}.AmpersandAmpersandToken(𝓟[ty]305{PWMetrics}.flags.expectations))
{
𝓛8749{Error}.CONSTRUCTOR(𝓟293{messages}.getMessage(𝓛8743{String}))
}
return 𝓟316 = 𝓟325{results}
}
function 𝓟352{$Async_retryLighthouseOnCI} (): (𝓟353: 𝓛[ty]8654{Promise})
{
𝓛12546{POST_PlusPlusToken}(𝓟[ty]305{PWMetrics}.tryLighthouseCounter)
𝓛1{<UNKNOWN>}(𝓟293{messages}.getMessage(𝓛8743{String}))
{
return 𝓟353 = 𝓛12547{$Await}(𝓟[ty]305{PWMetrics}.runLighthouseOnCI())
}
}
function 𝓟410{view} (𝓟411{id}: 𝓛[ty]10051{String}): (𝓟412: [miss]𝓛[ty]10033{Void})
{
if (𝓟[ty]305{PWMetrics}.flags.view)
{
𝓟286{opn}(𝓟298{getTimelineViewerUrl}(𝓟411{id}))
}
}
}
𝓛10099{exports}𝓛12563{undefined};

Module: lib/expectations

const 𝓟413{getAssertionMessage} = 𝓛10097{require}(𝓛8743{String}).getAssertionMessage;
const 𝓟414{getMessageWithPrefix} = 𝓛10097{require}(𝓛8743{String}).getMessageWithPrefix;
function 𝓟415{validateMetrics} (𝓟416{metrics}: [OOV]𝓟[ty]1368{ExpectationMetrics}): (𝓟417: [miss]𝓛[ty]10033{Void})
{
const 𝓟418{metricsKeys}: [miss]𝓛[ty]8670{Array} = 𝓛8741{Object}.keys(𝓟416{metrics});
if (𝓛12548{ExclamationToken}(𝓟416{metrics}).BarBarToken(𝓛12548{ExclamationToken}(𝓟418{metricsKeys}.length)))
{
𝓛1{<UNKNOWN>}(𝓟414{getMessageWithPrefix}(𝓛8743{String},𝓛8743{String}))
𝓛1{<UNKNOWN>}(𝓛8745{Number})
}
function 𝓟419{$Lambda0} (𝓟420{key}): (𝓟421: [miss]𝓛[ty]10033{Void})
{
if (𝓛12548{ExclamationToken}(𝓟416{metrics}.access(𝓟420{key})).BarBarToken(𝓛12548{ExclamationToken}(𝓟416{metrics}.access(𝓟420{key}).warn)).BarBarToken(𝓛12548{ExclamationToken}(𝓟416{metrics}.access(𝓟420{key}).error)))
{
𝓛1{<UNKNOWN>}(𝓟414{getMessageWithPrefix}(𝓛8743{String},𝓛8743{String},𝓟420{key}))
𝓛1{<UNKNOWN>}(𝓛8745{Number})
}
}
𝓟418{metricsKeys}.forEach(𝓟419{$Lambda0})
}
function 𝓟422{normalizeMetrics} (𝓟423{metrics}: [OOV]𝓟[ty]1368{ExpectationMetrics}): (𝓟424: [OOV]𝓟[ty]1365{NormalizedExpectationMetrics})
{
let 𝓟425{normalizedMetrics}: [OOV]𝓟[ty]1365{NormalizedExpectationMetrics} = {};
function 𝓟426{$Lambda1} (𝓟427{key}): (𝓟428: [miss]𝓛[ty]10033{Void})
{
𝓟425{normalizedMetrics}.access(𝓟427{key}){warn: 𝓛8710{parseInt}(𝓟423{metrics}.access(𝓟427{key}).warn.replace(𝓛8743{String},𝓛8743{String}),𝓛8745{Number}),error: 𝓛8710{parseInt}(𝓟423{metrics}.access(𝓟427{key}).error.replace(𝓛8743{String},𝓛8743{String}),𝓛8745{Number})};
}
𝓛8741{Object}.keys(𝓟423{metrics}).forEach(𝓟426{$Lambda1})
return 𝓟424 = 𝓟425{normalizedMetrics}
}
function 𝓟429{checkExpectations} (𝓟430{metricsData}: 𝓛[ty]8670{Array},𝓟431{expectationMetrics}: [OOV]𝓟[ty]1365{NormalizedExpectationMetrics}): (𝓟432: [miss]𝓛[ty]10033{Void})
{
function 𝓟433{$Lambda2} (𝓟434{metric}): (𝓟435: [miss]𝓛[ty]10033{Void})
{
const 𝓟436{metricName}: [miss]𝓛[ty]10051{String} = 𝓟434{metric}.id;
const 𝓟437{expectationValue}: [miss]𝓛[ty]8642{Object} = 𝓟431{expectationMetrics}.access(𝓟436{metricName});
const 𝓟438{metricValue}: [miss]𝓛[ty]8655{Number} = 𝓟434{metric}.timing;
let 𝓟439{msg};
if (𝓛12548{ExclamationToken}(𝓟437{expectationValue}))
{
}
if (𝓟438{metricValue}.GreaterThanEqualsToken(𝓟437{expectationValue}.error))
{
𝓟439{msg}𝓟413{getAssertionMessage}(𝓛8743{String},𝓟436{metricName},𝓟437{expectationValue}.error,𝓟438{metricValue});
}
else
{
if (𝓟438{metricValue}.GreaterThanEqualsToken(𝓟437{expectationValue}.warn).AmpersandAmpersandToken(𝓟438{metricValue}.FirstBinaryOperator(𝓟437{expectationValue}.error)))
{
𝓟439{msg}𝓟413{getAssertionMessage}(𝓛8743{String},𝓟436{metricName},𝓟437{expectationValue}.warn,𝓟438{metricValue});
}
}
if (𝓟439{msg})
{
𝓛1{<UNKNOWN>}(𝓟439{msg})
}
}
𝓟430{metricsData}.forEach(𝓟433{$Lambda2})
}
𝓛10099{exports}{validateMetrics: 𝓟415{validateMetrics},normalizeMetrics: 𝓟422{normalizeMetrics},checkExpectations: 𝓟429{checkExpectations}};