UNPKG

@currents/playwright

Version:

[Currents](https://currents.dev/playwright) is the most popular and advanced cloud-based platform for Playwright - debugging, error analysis, real-time analytics, orchestration, and more

19 lines (18 loc) 124 kB
"use strict";var oa=Object.create;var fe=Object.defineProperty;var ia=Object.getOwnPropertyDescriptor;var aa=Object.getOwnPropertyNames;var ua=Object.getPrototypeOf,ca=Object.prototype.hasOwnProperty;var h=(e,t)=>()=>(e&&(t=e(e=0)),t);var mr=(e,t)=>{for(var r in t)fe(e,r,{get:t[r],enumerable:!0})},vn=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of aa(t))!ca.call(e,s)&&s!==r&&fe(e,s,{get:()=>t[s],enumerable:!(n=ia(t,s))||n.enumerable});return e};var d=(e,t,r)=>(r=e!=null?oa(ua(e)):{},vn(t||!e||!e.__esModule?fe(r,"default",{value:e,enumerable:!0}):r,e)),la=e=>vn(fe({},"__esModule",{value:!0}),e);var i=h(()=>{"use strict"});var St,Er=h(()=>{"use strict";i();St=class extends Error{}});var me,hr=h(()=>{"use strict";i();me={guide:{ciBuildId:"https://docs.currents.dev/guides/ci-build-id",integration:"https://docs.currents.dev/integration-with-playwright/currents-playwright"}}});function Ee(e){pa.push(e)}var pa,Tr=h(()=>{"use strict";i();pa=[]});function Fn(e){return{...e&&Object.prototype.hasOwnProperty.call(Ln,e)?Ln[e]:Bn}}var tt,ga,da,Bn,Ln,he=h(()=>{"use strict";i();tt={None:"none",Summary:"summary",Detailed:"detailed"},ga={introAndSummary:!1,testOutput:!1,progress:!1,tables:!1,warningsAndErrors:!1},da={introAndSummary:!0,testOutput:"line",progress:!1,tables:!1,warningsAndErrors:!0},Bn={introAndSummary:!0,testOutput:"full",progress:!0,tables:!0,warningsAndErrors:!0},Ln={[tt.None]:ga,[tt.Summary]:da,[tt.Detailed]:Bn}});var Jt,lt,Te=h(()=>{"use strict";i();Jt=[],lt=[]});function Mn(e){Ce=e}function kn(e){return Ce?!!Ce[e]:!0}function rt(e,t){Ee(t),kn(e)&&console.log(t)}function fa(e,t){Ee(et.default.inspect(t,{depth:null})),kn(e)&&console.table(t)}var P,et,Ce,x,Ie,jn,g,At,Gn,R,Ot,Pt,Hn,$n,Qt,Cr,nt,Wn,xt,pt,zt,Xt,$c,Wc,Zt,m,Vc,Vn=h(()=>{"use strict";i();P=d(require("chalk")),et=d(require("util"));he();I();Tr();Te();Ce=null;x=(...e)=>{rt("introAndSummary",et.default.format(...e))},Ie=(...e)=>{rt("progress",et.default.format(...e))},jn=(e,t)=>{Ee(e);let r=Ce?.testOutput??"full";r&&(r==="line"&&t?console.log(` ${t.statusStr} ${t.label}`):r==="full"&&console.log(e))},g=(...e)=>{let t=et.default.format(...e);lt.push(t),p("WARNING: ",t),rt("warningsAndErrors",P.default.bgYellow.black(" WARNING ")+" "+t)},At=(...e)=>{let t=et.default.format(...e);p("WARNING: ",t),rt("warningsAndErrors",P.default.bgYellow.black(" WARNING ")+" "+t)},Gn=(...e)=>{let t=et.default.format(...e);p("ERROR: ",t),rt("warningsAndErrors",P.default.bgRed.white(" ERROR ")+" "+t)},R=(...e)=>{let t=et.default.format(...e);Jt.push(t),p("ERROR: ",t),rt("warningsAndErrors",P.default.bgRed.white(" ERROR ")+" "+t)},Ot=()=>{rt("introAndSummary",` `+Pt()+` `)},Pt=()=>P.default.dim(Array(64).fill("=").join("")),Hn=(e="",t=64)=>{let r=` start of ${e||"block"} `,n=Math.max(t-r.length,0)/2,s=Math.floor(n),o=Math.ceil(n);return P.default.dim(`${Array(s).fill("-").join("")}${r}${Array(o).fill("-").join("")}`)},$n=(e="",t=64)=>{let r=` end of ${e||"block"} `,n=Math.max(t-r.length,0)/2,s=Math.floor(n),o=Math.ceil(n);return P.default.dim(`${Array(s).fill("-").join("")}${r}${Array(o).fill("-").join("")}`)},Qt=(e=2)=>{let t=Math.max(0,Math.floor(e));t!==0&&rt("introAndSummary",Array(t).fill("").join(` `))},Cr=e=>{fa("progress",e)},nt=P.default.cyan,Wn=P.default.blueBright,xt=P.default.red,pt=P.default.yellow,zt=P.default.green,Xt=P.default.gray,$c=P.default.white,Wc=P.default.black,Zt=P.default.magenta,m=P.default.dim,Vc=P.default.bold});var _=h(()=>{"use strict";i();Tr();Vn()});function Yn(e){if(!e)return;if(e==="false")return!1;let t=parseInt(e,10);if(isNaN(t)||t<1)throw new Kn.CommanderError(255,"Invalid argument provided.","--pwc-cancel-after-failures must be a positive integer or 'false', provided: "+e);return t}var Kn,qn=h(()=>{"use strict";i();Kn=require("commander")});function Jn(e){return U[e]?.env}function Qn(e){let t=U[e];return"cli"in t?t.cli:void 0}function zn(e){return U[e].name}function Ir(){return{projectId:process.env[U.projectId.env],recordKey:process.env[U.recordKey.env],ciBuildId:process.env[U.ciBuildId.env],tag:process.env[U.tag.env]?process.env[U.tag.env]?.split(",").map(e=>e.trim()):void 0,environment:process.env[U.environment.env],cancelAfterFailures:Yn(process.env[U.cancelAfterFailures.env]),disableTestTags:process.env[U.disableTestTags.env]||process.env[U.disableTitleTags.env],consoleOutput:process.env[U.consoleOutput.env],testSuiteFile:process.env[U.testSuiteFile.env],machineId:process.env[U.machineId.env],orchestrationId:process.env[U.orchestrationId.env],outputFile:process.env[U.outputFile.env],ciUrl:process.env[U.ciUrl.env]?.trim()||void 0,orchestration:{discoveryFile:process.env[U.discoveryFile.env]}}}var U,Rr=h(()=>{"use strict";i();qn();U={currentsConfigFile:{name:"Currents Config File Path",env:"CURRENTS_CONFIG_FILE_PATH",cli:"--pwc-config"},ciBuildId:{name:"CI Build ID",env:"CURRENTS_CI_BUILD_ID",cli:"--ci-build-id"},recordKey:{name:"Record Key",env:"CURRENTS_RECORD_KEY",cli:"--key"},projectId:{name:"Project ID",env:"CURRENTS_PROJECT_ID",cli:"--project-id"},tag:{name:"Currents Tag",env:"CURRENTS_TAG",cli:"--tag"},environment:{name:"Currents Environment",env:"CURRENTS_ENVIRONMENT",cli:"--pwc-environment"},cancelAfterFailures:{name:"Currents Cancel After Failures",env:"CURRENTS_CANCEL_AFTER_FAILURES",cli:"--pwc-cancel-after-failures"},disableTestTags:{name:"Disable Test Tags",env:"CURRENTS_DISABLE_TEST_TAGS",cli:"--pwc-disable-test-tags"},disableTitleTags:{name:"Disable Title Tags",env:"CURRENTS_DISABLE_TITLE_TAGS",cli:"--pwc-disable-title-tags"},testSuiteFile:{name:"Test Suite File",env:"CURRENTS_TEST_SUITE_FILE",cli:"--pwc-test-suite-file"},machineId:{name:"Machine ID",env:"CURRENTS_MACHINE_ID",cli:"--pwc-machine-id"},orchestrationId:{name:"Orchestration ID",env:"CURRENTS_ORCHESTRATION_ID",cli:"--pwc-orchestration-id"},outputFile:{name:"Output File",env:"CURRENTS_OUTPUT_FILE",cli:"--pwc-output-file"},consoleOutput:{name:"Console Output",env:"CURRENTS_CONSOLE_OUTPUT",cli:"--pwc-console-output"},batchSize:{name:"Batch Size",env:"CURRENTS_BATCH_SIZE",cli:"--pwc-batch-size"},discoveryFile:{name:"Discovery File",env:"CURRENTS_DISCOVERY_FILE",cli:"--pwc-discovery-file"},ciUrl:{name:"CI URL",env:"CURRENTS_CI_URL"}}});function bt(){if(_r)return _r;if(process.env.CURRENTS_PWC_CLI_CONFIG_PATH)try{let e=JSON.parse(Zn.default.readFileSync(process.env.CURRENTS_PWC_CLI_CONFIG_PATH).toString());return Xn("Options from serialized CLI config file: %o",e),_r=e,e}catch(e){return Xn("Could not read CLI config file: %o",e),{}}return{}}var Zn,Xn,_r,yr=h(()=>{"use strict";i();Zn=d(require("fs"));I();Xn=p.extend("cli-options-serializer"),_r=null});function ts(e,t,r={validationFn:Or}){Sr("reporter options: %o",e),Sr("config file options: %o",t);let n={...B(Ar),...B(t),...B(e),...B(bt()),...B(Ir()),orchestration:{...B(Ar.orchestration),...B(t?.orchestration),...B(e?.orchestration),...B(bt().orchestration),...B(Ir().orchestration)},coverage:{...B(Ar.coverage),...B(t?.coverage),...B(e?.coverage),...B(bt().coverage)}};n.disableTitleTags!==void 0&&(n.disableTestTags=n.disableTestTags||n.disableTitleTags),r.validationFn(n),te=n,Mn(Fn(te?.consoleOutput)),Sr("resolved currents config: %o",te)}function Or(e){ma.forEach(t=>{if(!e[t])throw R(`${zn(t)} is required for Currents Reporter. Use the following methods: - environment variable: ${m(Jn(t))} - CLI flag: ${m(Qn(t))} - reporter configuration option ${m(t)} in ${m("playwright.config.ts")} \u{1F4D6} ${me.guide.integration}`),new St("Missing required config variable")})}function B(e){return Object.entries(e??{}).reduce((t,[r,n])=>n===void 0?t:{...t,[r]:n},{})}function $(){return!!te?.orchestrationId}function y(){return te}function es(e){e.preserveOutput!=="always"&&g(`The "preserveOutput" property in your Playwright config is set to ${e.preserveOutput}. This may cause artifacts to be removed before they are uploaded to Currents. We recommend setting it to "always".`)}function rs(e){return e?Object.values(e).map(t=>t.name):[]}function Re(e,t){return t?.projects===!0?e:Array.isArray(t?.projects)?t?.projects.length===0?e:t?.projects.filter(r=>e.includes(r)):[]}var Sr,ma,Ar,te,ee=h(()=>{"use strict";i();I();Er();hr();_();he();Rr();yr();he();Sr=p.extend("config"),ma=["projectId","recordKey"],Ar={removeTitleTags:!1,disableTestTags:!1,consoleOutput:tt.Detailed,orchestration:{skipReporterInjection:!1},coverage:{projects:!1}},te=null});function ss(e){let t=new WeakMap;function r(n){if(typeof n=="object"&&n!==null){if(t.has(n))return"[Circular]";t.set(n,!0)}}return(0,ns.cloneDeepWith)(e,r)}function Ea(e){let r=Object.getOwnPropertySymbols(e).find(s=>s.toString().match(/configInternalSymbol/))??Object.getOwnPropertyNames(e).find(s=>s.match(/_internal/));return r?e[r]:(g("Could not extract internal playwright configuration"),null)}function os(e){let t=Ea(e);return!!(e.failOnFlakyTests??t?.failOnFlakyTests)}var ns,is=h(()=>{"use strict";i();ns=require("lodash");_()});var F=h(()=>{"use strict";i();ee();Rr();yr();is()});var us,as=h(()=>{us={name:"@currents/playwright",version:"2.3.3",main:"./dist/index.js",author:{name:"Currents Software Inc",email:"hello@currents.dev",url:"https://currents.dev"},license:"MIT",homepage:"https://currents.dev",repository:{type:"git",url:"https://github.com/currents-dev/currents-playwright-changelog.git"},scripts:{test:"vitest",rm:"rimraf dist",lint:'TIMING=1 eslint "**/*.ts*"',build:"tsup-node --minify --dts",dev:"tsup-node --watch --dts",release:"release-it --verbose","publish:npm":"npm run rm && npm run build && ./publish.js","release-ci":"npm run rm && npm run build && ./publish.js -t latest"},bin:{pwc:"./dist/bin/pwc.js","pwc-p":"./dist/bin/pwc-p.js"},devDependencies:{"@playwright/test":"^1.56.1","@release-it/conventional-changelog":"^11.0.1","@types/async-retry":"^1.4.5","@types/babel__code-frame":"^7.0.3","@types/debug":"^4.1.13","@types/getos":"^3.0.4","@types/istanbul-lib-coverage":"^2.0.6","@types/json-stringify-safe":"^5.0.3","@types/lodash":"^4.17.24","@types/pluralize":"^0.0.33","@types/proxy-from-env":"^1.0.4","@types/regexp.escape":"^2.0.0","@types/stack-utils":"^2.0.3","@types/tmp":"^0.2.6","@types/ws":"^8.18.1",eslint:"^10.5.0","eslint-config-custom":"*",msw:"^2.14.2","release-it":"^20.2.0",rimraf:"^6.1.3",tsup:"^8.5.0",typescript:"^6.0.3",vitest:"^4.1.9"},dependencies:{"@babel/code-frame":"^7.29.7","@commander-js/extra-typings":"^13.1.0","@currents/commit-info":"1.0.1-beta.0","async-retry":"^1.3.3",chalk:"^4.1.2",commander:"^13.1.0","date-fns":"^4.3.0",debug:"^4.4.3",dotenv:"^17.4.2",execa:"^9.6.0",getos:"^3.2.1","istanbul-lib-coverage":"^3.2.2",jiti:"2.7.0","json-stringify-safe":"^5.0.1","lil-http-terminator":"^1.2.3",lodash:"^4.18.1",nanoid:"^3.3.8","object-sizeof":"^2.6.5","p-debounce":"^2.1.0","p-map":"^4.0.0","p-queue":"6.6.2",pluralize:"^8.0.0","pretty-ms":"^7.0.1","proxy-from-env":"^1.1.0","regexp.escape":"^2.0.1","safe-regex2":"^5.1.1","source-map-support":"^0.5.21","stack-utils":"^2.0.6",tmp:"^0.2.7","tmp-promise":"^3.0.3","ts-pattern":"^5.8.0",undici:"^6.27.0",ws:"^8.21.0"},files:["dist","!**/*.map","!**/*/*.map","**/*.LEGAL.txt","!src/*.md","!src/**/*.md","LICENSE.md","README.md","CHANGELOG.md"],keywords:["playwright","playwright dashboard","cloud dashboard","reporter","currents","tests reporter","sorry cypress","ci"],exports:{".":{import:"./dist/index.js",require:"./dist/index.js"},"./discovery":{import:"./dist/reporters/discovery.js",require:"./dist/reporters/discovery.js"},"./orchestration":{import:"./dist/orchestration/index.js",require:"./dist/orchestration/index.js"},"./package.json":"./package.json"},engines:{node:">=18.17"},publishConfig:{access:"public",registry:"https://registry.npmjs.org"},"release-it":{npm:{publish:!1},github:{release:!0},plugins:{"@release-it/conventional-changelog":{preset:"angular",header:"# Changelog",ignoreVersion:!0,infile:"../../CHANGELOG.md"}},git:{commitMessage:"chore: release v${version}",tagName:"v${version}"},hooks:{"before:github:release":"npm run --prefix ../../ update-public-changelog"}}}});var _e,Pr=h(()=>{"use strict";i();as();_e=us.version});var xr,cs,ls=h(()=>{"use strict";i();xr=()=>process.env.CURRENTS_API_URL??"https://cy.currents.dev",cs=()=>3e4});async function re(e){await Ta(),await new Promise((t,r)=>{if(!wt){r(new Error("WebSocket is not initialized"));return}ye("sending message to ws: %o, %o",wt.url,e),wt.send(JSON.stringify(e),n=>{n?r(n):t()})})}async function Ta(){if(wt){ye("ws already initialized");return}let e=parseInt(process.env.CURRENTS_PWCP_WSS_PORT);ye("setting port to %s",e),await new Promise(t=>{wt=new ps.default(`ws://localhost:${e}`),wt.on("open",()=>{ye("ws opened"),t(null)})})}var ps,ye,wt,Ur=h(()=>{"use strict";i();ps=d(require("ws"));I();ye=p.extend("ws"),wt=null});function ds(){Se.addListener("runCancelled",ms)}function fs(){Se.removeListener("runCancelled",ms)}async function ms(){if(br("Run cancelled: %s",Nr()),$())try{await re({type:"orchestration:run-cancelled",payload:{}}),br("Cancellation message sent to parent")}catch(e){br("Failed to send cancellation message: %o",e)}process.exit(1)}var gs,br,Se,wr=h(()=>{"use strict";i();gs=d(require("events"));ee();I();Ur();Ae();br=p.extend("pubsub"),Se=new gs.default});var Dr,Oe,Nr,Pe,Es=h(()=>{"use strict";i();_();wr();Dr={cancellationReason:null},Oe=e=>{Dr.cancellationReason||(Dr.cancellationReason=e)},Nr=()=>Dr.cancellationReason,Pe=({showWarning:e=!0}={})=>{let t=Nr();t&&(e&&g("%s",t),Se.emit("runCancelled",t))}});var Ae=h(()=>{"use strict";i();Es()});var hs,gt,xe=h(()=>{"use strict";i();hs=require("nanoid"),gt=(0,hs.customAlphabet)("abcdefghijklmnopqrstuvwxyz",10)});var Ue,vr,Nt,be,we=h(()=>{"use strict";i();Ue=require("ts-pattern"),vr={outcome:null,scannerConfig:null,currentsConfig:null,internalConfig:null},Nt=(e,t)=>(0,Ue.match)(e).with(Ue.P.union("scannerConfig","currentsConfig","internalConfig"),r=>{vr[r]=t}).with("outcome",r=>{vr[r]=t}).exhaustive(),be=()=>vr});function Dt(e){if(e===null||typeof e!="object")return!1;let t=e;return typeof t.message!="string"?!1:t.response!==void 0&&t.response!==null?!(typeof t.response.status!="number"||t.response.headers!==void 0&&typeof t.response.headers!="object"):!!(typeof t.code=="string"&&ne.includes(t.code))}var ne,vt=h(()=>{"use strict";i();ne=["ECONNABORTED","ECONNREFUSED","ECONNRESET","ETIMEDOUT","EPIPE","ENETUNREACH","EHOSTUNREACH","ENETRESET","ENOTFOUND","EAI_AGAIN"]});function Rs(e){(0,D.match)(e).when(Dt,Ca).otherwise(()=>{g("Unexpected error while sending network request: %s",e)})}function Ca(e){let t=e.response?.config??e.config;return(0,D.match)(e).with({code:"ECONNABORTED"},()=>{g("Network connection aborted")}).with({code:"ECONNREFUSED"},()=>{g("Network connection aborted")}).with({code:"ECONNRESET"},()=>{g("Network connection reset")}).with({code:"EPIPE"},()=>{g("Network connection reset")}).with({code:"ENETUNREACH"},()=>{g("Network connection aborted")}).with({code:"EHOSTUNREACH"},()=>{g("Network connection aborted")}).with({code:"ETIMEDOUT"},()=>{g("Network connection timeout")}).with({response:D.P.not(D.P.nullish)},r=>{Ia(r,{status:r.response.status,data:r.response.data})}).otherwise(()=>{g(`[currents] Unexpected network error: %s %O`,e.message,{method:t?.method,url:t?.url,status:e.response?.status,payload:t?.data,requestId:se(e)})})}function Ia(e,{status:t,data:r}){let n=e.response?.config??e.config,s=n?.method,o=n?.url;(0,D.match)(t).with(401,()=>{g(`[currents] ${s} ${o} - 401 Unauthorized Request from cloud service`)}).with(400,()=>{g(`[currents] ${s} ${o} - 400 Bad Request from cloud service: %o`,r)}).with(429,()=>{g(`[currents] ${s} ${o} - 429 Too Many Requests from cloud service`)}).with(422,()=>{Ra(e,r)}).otherwise(()=>{g(`[currents] Unexpected network response: %s %O`,e.message,{method:s,url:o,status:e.response?.status,requestId:se(e)})})}function Ra(e,t){let r=e.response?.config??e.config;(0,D.match)(t).with({code:Lr.MISSING_SUITE,message:D.P.string,errors:D.P.array(D.P.string)},async n=>{let{message:s,errors:o}=n;Qt(1),R(...Ts(s,o)),Ne({id:gt(),text:(0,Cs.default)(be(),null,2)}).then(a=>{R(`Please share this URL with Currents support for further investigation: ${a}`)}).catch(a=>{g("Failed to upload debug artifact: %s",a)}),Qt(1)}).with({code:Lr.RUN_CANCELLED,message:D.P.string},n=>{Oe(n.message),Pe()}).with({code:Lr.RUN_EXPIRED,message:D.P.string},n=>{g(n.message)}).with({message:D.P.string,errors:D.P.array(D.P.string)},n=>{let{message:s,errors:o}=n;Qt(1),g(...Ts(s,o)),Qt(1)}).otherwise(()=>{g(`[currents] Unexpected network response: %s %O`,e.message,{method:r?.method,url:r?.url,status:e.response?.status,requestId:se(e)})})}function Ts(e,t){return Is.default.isString(e)?t?.length===0?[e]:[e,` ${(t??[]).map(r=>` - ${r}`).join(` `)} `]:["Unexpected network error"]}function se(e){let t=e?.response?.headers;if(!(!t||typeof t!="object")){for(let[r,n]of Object.entries(t))if(r.toLowerCase()==="apigw-requestid")return Array.isArray(n)?n[0]:n}}var Cs,Is,D,Lr,Br=h(()=>{"use strict";i();Cs=d(require("json-stringify-safe")),Is=d(require("lodash")),D=require("ts-pattern");Ae();xe();_();Fr();we();vt();Lr={RUN_CANCELLED:"RUN_CANCELLED",RUN_EXPIRED:"RUN_EXPIRED",MISSING_SUITE:"MISSING_SUITE"}});function As(e,t,r){let n=r.method?.toUpperCase(),s=r.url,o=se(t),a=(0,_s.default)(Mr(e)),u=`Network request '${n} ${s}' failed: '${t.message}'.${o?` Request ID: ${o}.`:""} Next attempt is in ${a} (${e}/${r["transport-retry"]?.retries??kr()}).`;ys(u),g(u)}var _s,ys,Mr,Ss,kr,Os=h(()=>{"use strict";i();_s=d(require("pretty-ms"));I();_();Br();vt();ys=p.extend("http"),Mr=e=>{let t=[3e3,15e3,3e4];return t[Math.min(Math.max(e-1,0),t.length-1)]},Ss=e=>{if(ys("isRetriableError: %o",{message:e.message,code:"code"in e?e.code:void 0,status:"response"in e?e.response?.status:void 0,headers:"response"in e?e.response?.headers:void 0,data:"response"in e?e.response?.data:void 0}),"code"in e&&e.code&&ne.includes(e.code))return!0;if(!Dt(e)||!e.response)return!1;let t=e.response.headers;return t==null||typeof t!="object"?!1:[429,500,502,503,504].includes(e.response.status??0)},kr=()=>3});function ya(e){let t=Us.default.getProxyForUrl(e);if(t)return _a("Using HTTP proxy %s for %s",t,e),Ps===t&&De||(Ps=t,De=new xs.ProxyAgent(t)),De}function bs(e,t){if(/^https?:\/\//i.test(t))return t;let r=e??"",n=r.endsWith("/")?r:`${r}/`,s=t.replace(/^\/+/,"");return new URL(s,n).href}function Sa(e){let t={};return e.forEach((r,n)=>{let s=t[n];s===void 0?t[n]=r:Array.isArray(s)?s.push(r):t[n]=[String(s),r]}),t}function Aa(e){for(let[t,r]of Object.entries(e))if(t.toLowerCase()==="content-type"){let n=Array.isArray(r)?r[0]:r;return typeof n!="string"?"":n.split(";")[0]?.trim()?.toLowerCase()??""}return""}function Oa(e,t){let r=t.toLowerCase();if(r.includes("application/json")||r.endsWith("+json"))return!0;let n=e.trim();return n.length?/^(?:\{|\[|"|-?\d|true$|false$|null$)/.test(n):!1}function Pa(e,t){if(!e.length)return null;if(Oa(e,t))try{return JSON.parse(e)}catch{return e}return e}function xa(e){let t=e;for(let r=0;r<8&&t&&typeof t=="object";r++){let n=t;if(n.name==="AbortError"||n.name==="TimeoutError"||typeof n.message=="string"&&/aborted|timeout/i.test(n.message))return!0;t=n.cause}return!1}function ws(e){if(!e||typeof e!="object")return;if(xa(e))return"ETIMEDOUT";let t=e,r=typeof t.message=="string"?t.message:"";if(t.name==="AbortError"||t.code==="UND_ERR_ABORTED"||t.code==="ABORT_ERR"||/aborted|timeout/i.test(r)||t.code==="UND_ERR_CONNECT_TIMEOUT"||t.code==="UND_ERR_HEADERS_TIMEOUT"||t.code==="UND_ERR_BODY_TIMEOUT")return"ETIMEDOUT";if(t.code==="UND_ERR_SOCKET")return"ECONNRESET";if(typeof t.code=="string"&&ne.includes(t.code))return t.code;if(t.cause)return ws(t.cause);if(/connection reset|other side closed|terminated|socket hang up/i.test(r))return"ECONNRESET"}function Ua(e){return e instanceof jr.Readable}function ba(e){return Ua(e)?{body:jr.Readable.toWeb(e),duplex:"half"}:{body:e}}async function ve(e,t,r){let n=ya(e),s,o;try{let C={method:t.method,headers:t.headers,signal:t.signal};if(t.body!==void 0){let E=ba(t.body);C.body=E.body,E.duplex&&(C.duplex=E.duplex)}n!==void 0&&(C.dispatcher=n),s=await fetch(e,C),o=await s.text()}catch(C){let E=ws(C);throw{message:C instanceof Error?C.message:String(C),code:E,config:r}}let a=Sa(s.headers),u=Aa(a),c=Pa(o,u),f=s.status,T=s.statusText;if(!s.ok)throw{message:`Request failed with status code ${f}`,config:r,response:{status:f,statusText:T,headers:a,data:c,config:r}};return{data:c,status:f,statusText:T,headers:a,config:r}}var jr,xs,Us,_a,Ps,De,Gr=h(()=>{"use strict";i();jr=require("stream"),xs=require("undici");I();vt();Us=d(require("proxy-from-env")),_a=p.extend("http:transport"),Ps=null,De=null});function ks(e){Ms["x-pw-version"]=e??"0.0.0"}function va(e){if(e){for(let[t,r]of Object.entries(e))if(t.toLowerCase()==="x-currents-idempotency-key"&&r!==void 0)return Array.isArray(r)?r[0]:String(r)}}function La(e,t){if(!e)return;let r=t.toLowerCase();for(let[n,s]of Object.entries(e))if(n.toLowerCase()===r&&s!==void 0)return Array.isArray(s)?s[0]:String(s)}function Ba(e){let t={};if(!e)return t;for(let[r,n]of Object.entries(e))n!==void 0&&(t[r.toLowerCase()]=Array.isArray(n)?n.join(", "):String(n));return t}function Fa(...e){if(typeof AbortSignal.any=="function")return AbortSignal.any(e);let t=new AbortController;for(let r of e){if(r.aborted)return t.abort(r.reason),t.signal;r.addEventListener("abort",()=>t.abort(r.reason),{once:!0})}return t.signal}async function Ma(e){let t={...Da,...e.currentsOptions};return!t.enableCompression||e.data===void 0||Buffer.isBuffer(e.data)||typeof e.data=="string"||(0,Ls.default)(e.data)<=t.compressThresholdBytes?e:{...e,data:await Na((0,Hr.default)(e.data)),headers:{...e.headers,"Content-Encoding":"gzip"}}}function ka(e){let{data:t}=e;if(t!==void 0)return Buffer.isBuffer(t)||typeof t=="string"?t:(0,Hr.default)(t)}async function ja(e){let t=e.baseURL??xr(),r=e["transport-retry"]?.retries??kr(),n=va(e.headers)??(0,vs.nanoid)(),s=await Ma(e),o=ka(s),a=(s.method??"get").toUpperCase(),u=e.signal;if(u?.aborted)throw{message:u.reason?.message??"Request aborted",code:"ECONNABORTED",config:e};let c;for(let f=0;f<=r;f++){let T=s.timeout??cs(),C=AbortSignal.timeout(T),E=u?Fa(u,C):C,b=y(),L={...Ba(s.headers),...Ms,"accept-encoding":"gzip, deflate, br","x-currents-idempotency-key":n,"x-pwc-request-attempt":String(f),"x-currents-key":b?.recordKey??""};b?.orchestrationId&&(L["x-currents-orchestration-id"]=b.orchestrationId),b?.machineId&&(L["x-currents-machine-id"]=b.machineId),La(e.headers,"content-type")||(L["content-type"]=L["content-type"]??"application/json");let ut={...s,method:a,url:e.url,baseURL:t,headers:L},ct=bs(t,e.url??""),qt={method:a,url:e.url,headers:L,data:Buffer.isBuffer(o)?"buffer":o};f?Ns("network request retry: %o",Ds({...qt,isRetry:!0})):Ns("network request: %o",Ds(qt));try{return await ve(ct,{method:a,headers:L,body:o,signal:E},ut)}catch(S){c=S;let Dn=S;if(!Ss(Dn)||f>=r)throw S;As(f+1,Dn,{...e,method:a}),await new Promise(sa=>setTimeout(sa,Mr(f+1)))}}throw c}function Ga(){return{request:e=>ja(e)}}function js(){return Le||(Le=Ga(),Le)}function Ds(e){return{method:e.method,baseUrl:xr(),url:e.url,data:e.isRetry?"<retry>":Ha(e.data),headers:{...e.headers,"x-currents-key":"***"}}}function Ha(e){let t=e;return t?.results?.raw?{...t,results:{...t.results,raw:"***"}}:e}var Hr,vs,Ls,Bs,Fs,Ns,wa,Ms,Na,Da,Le,$r=h(()=>{"use strict";i();Hr=d(require("json-stringify-safe")),vs=require("nanoid"),Ls=d(require("object-sizeof")),Bs=require("util"),Fs=d(require("zlib"));F();I();Pr();ls();Os();Gr();Ns=p.extend("http"),wa=1024*1024*1,Ms={"x-pw-version":"0.0.0","x-pwc-version":_e},Na=(0,Bs.promisify)(Fs.default.gzip);Da={enableCompression:!1,compressThresholdBytes:wa},Le=null});async function M(e,t=js){try{let r=await t().request(e);return Gs("network response: %o",{...Hs.default.omit(r,"request","config"),url:r.config.url,method:r.config.method}),r}catch(r){let n=r;throw Gs("network error: %o",{code:n.code,message:n.message,url:n.config?.url,method:n.config?.method,status:n.response?.status,headers:n.response?.headers,data:n.response?.data}),Rs(n),n}}var Hs,Gs,$s=h(()=>{"use strict";i();Hs=d(require("lodash"));I();$r();Br();Gs=p.extend("http")});var dt=h(()=>{"use strict";i();$s();vt()});var Ws={};mr(Ws,{getDebugUrl:()=>$a});var $a,Vs=h(()=>{"use strict";i();dt();$a=({runId:e,type:t})=>M({method:"POST",url:"runs/debug-logs",data:{type:t,runId:e}}).then(r=>r.data)});function Va(e,t){return Be({path:e,name:null,uploadUrl:t,contentType:"text/plain"},"text/plain")}async function Be(e,t,r){let n=await Ys.default.readFile(e.path);return Wr("Uploading file %s",e.uploadUrl,{buffer:Buffer.byteLength(n)}),zs(n,e.uploadUrl,t,r)}async function Vr(e,t,r){return Wr("Uploading buffer %s",e.name,{buffer:Buffer.byteLength(e.buffer)}),zs(e.buffer,e.uploadUrl,t,r)}function Ka(e){let t;try{t=new URL(e)}catch{throw new Error(`Invalid upload URL: ${e}`)}if(!["http:","https:"].includes(t.protocol))throw new Error(`Unsupported upload URL protocol: ${t.protocol||"unknown"}`);return e}async function Ya(e,t,r,n){let s=Ka(t),o=e,a={"Content-Disposition":"inline","Content-Type":r};n?.compress&&(o=await Wa(e),a["Content-Encoding"]="gzip"),await ve(s,{method:"PUT",headers:a,body:o},{method:"PUT",url:s,headers:a})}async function zs(e,t,r,n){await(0,Ks.default)(async()=>{await Ya(e,t,r,n)},{retries:5,onRetry:(s,o)=>{if(Wr(`Upload failed %d out of 5 attempts: %s %o`,o,s.message,s.response?.data),o===5){R(`Cannot upload after ${o} times: ${s.message}`);return}g(`Upload failed ${o} out of 5 attempts: ${s.message}`)}})}var Ks,Ys,qs,Js,Wr,Wa,Qs,Xs=h(()=>{"use strict";i();Ks=d(require("async-retry")),Ys=d(require("fs/promises")),qs=require("util"),Js=require("zlib");I();Gr();_();Wr=p.extend("upload"),Wa=(0,qs.promisify)(Js.gzip),Qs=(s=>(s.PNG="image/png",s.WEBM="video/webm",s.TEXT="text/plain",s.ZIP="application/zip",s))(Qs||{})});var Zs={};mr(Zs,{ContentType:()=>Qs,sendBuffer:()=>Vr,sendPath:()=>Be,uploadText:()=>Va});var Kr=h(()=>{"use strict";i();Xs()});async function Ne(e){let{getDebugUrl:t}=await Promise.resolve().then(()=>(Vs(),Ws));try{let{readUrl:r,uploadUrl:n}=await t({runId:e.id,type:"pw-debug"}),{uploadText:s,sendBuffer:o}=await Promise.resolve().then(()=>(Kr(),Zs));return"text"in e&&await o({name:`${e.id}-discovery-debug.log`,buffer:Buffer.from(e.text,"utf-8"),contentType:"text/plain",uploadUrl:n},"text/plain"),"path"in e&&await s(e.path,n),r}catch{return null}}var Yr,qr=h(()=>{"use strict";i();Yr=d(require("debug"))});function qa(e){return e==="false"?!1:e==="remote"?"remote":e==="full"?"full":!!e}var to,eo,ro=h(()=>{"use strict";i();to=require("@commander-js/extra-typings"),eo=new to.Option("--pwc-debug [boolean | 'remote' | 'full']","enable debug logs. Specify 'remote' to upload logs to Currents. Specify 'full' to dump the debug logs to stdout and upload to Currents.").argParser(qa).env("CURRENTS_DEBUG")});var no,so,oo=h(()=>{"use strict";i();no=require("@commander-js/extra-typings");ro();so=()=>new no.Command().allowUnknownOption().allowExcessArguments(!0).addOption(eo).helpOption(!1)});var st,io,Qr,ao,uo,Jr,Fe,zr=h(()=>{"use strict";i();st=d(require("debug")),io=d(require("fs")),Qr=d(require("path")),ao=d(require("util")),uo=require("fs/promises");xe();_();oo();qr();st.default.useColors=function(){return!1};Jr=st.default.log,Fe=class e{constructor(t="core"){this.source=t;if(this.mode=so().parse().opts().pwcDebug??!1,this.debug=(0,st.default)(`currents:remote-debug:${this.source}`),!this.mode)return this;if(!this.shouldEnableDebug())return this;let r=process.env.DEBUG?`${process.env.DEBUG},currents*`:"currents*";if(st.default.enable(r),!this.shouldUploadRemoteDebug())return this;let n=gt(),s=Qr.default.resolve(".currents-debug"),o=Qr.default.resolve(s,`${n}.log`);(0,uo.mkdir)(s,{recursive:!0}),x(m(`\u{1F47E} Initiated remote ${this.source} debug log collection:`),m(o));let a=io.default.createWriteStream(o,{flags:"a"});return st.default.log=(...u)=>{this.mode&&(a.write(`${ao.default.formatWithOptions({colors:!1},...u)} `),this.shouldMuteLocalStdout()||Jr(...u))},this.pipelines[n]={id:n,writeStream:a,type:this.source,tempFilePath:o},this}source;static instance;static factory(t="core"){return this.instance||(this.instance=new e(t)),this.instance}pipelines={};mode;debug;getDebugMode(){return this.mode}async finalize({runId:t}={runId:void 0}){try{let r=Object.keys(this.pipelines);r.length===0&&(this.debug("No debug pipelines found"),st.default.log=Jr);for(let n of r)await this.uploadDebug(n,t??gt())}catch{}finally{st.default.log=Jr}}async uploadDebug(t,r){let n=this.pipelines[t];if(!n){this.debug("No debug pipeline found for id %s",t);return}x(m(`\u{1F47E} ${n.type} debug log written:`),m(n?.tempFilePath));try{let s=await Ne({id:r,path:n.tempFilePath});n?.writeStream.end(),x(m(`\u{1F47E} ${n.type} debug log uploaded:`),m(s))}catch(s){g(`Failed to upload ${n.type}} debug log ${m(n.tempFilePath)}: ${s.message}`)}}shouldEnableDebug(){return this.mode==="full"||this.mode==="remote"||this.mode===!0}shouldUploadRemoteDebug(){return this.mode==="full"||this.mode==="remote"}shouldMuteLocalStdout(){return this.mode==="remote"}}});var Fr=h(()=>{"use strict";i();qr();zr()});var p,I=h(()=>{"use strict";i();Fr();p=(0,Yr.default)("currents")});var Sc={};mr(Sc,{ConsoleOutputPreset:()=>tt,configHelpers:()=>_c,currentsReporter:()=>Ic,default:()=>yc,fixtures:()=>Rc});module.exports=la(Sc);i();i();i();var Ao=d(require("crypto")),qe=d(require("fs")),it=d(require("path"));I();i();var Me=d(require("fs")),co=d(require("istanbul-lib-coverage")),lo=d(require("p-map"));I();var ke=p.extend("coverage");function J({target:e,stage:t}){return({event:r,status:n,message:s,details:o})=>{let a=o?JSON.stringify(o):"",u=`[${t}] [${r}] [${n}] ${s} ${a}`,c=["test_attempt_reports_generation","test_attempt_reports_merging"].includes(t)?u:`${u} [${JSON.stringify(e)}]`;ke(c)}}async function je(e){try{return await Me.default.promises.readdir(e)}catch(t){return ke(t),null}}async function Ja(e){try{return await Me.default.promises.readFile(e,"utf-8")}catch(t){return ke(t),null}}async function Qa(e){try{let t=JSON.parse(e);return Object.keys(t).length===0?"empty":t}catch(t){return ke(t),"invalid"}}async function za(e,t){try{let n=(await Me.default.promises.stat(e)).size/(1024*1024),s=await Ja(e);if(!s)return t({event:"file_read",status:"failed",message:"Failed to read file",details:{filePath:e,fileSizeInMB:n}}),null;t({event:"file_read",status:"passed",message:"File read successfully",details:{filePath:e,fileSizeInMB:n}});let o=await Qa(s);switch(o){case"empty":return t({event:"parse",status:"passed",message:"Coverage JSON is empty",details:{filePath:e}}),null;case"invalid":return t({event:"parse",status:"failed",message:"Coverage report is not a valid JSON",details:{filePath:e}}),null;default:return t({event:"parse",status:"passed",message:"Coverage report parsed successfully",details:{filePath:e}}),o}}catch(r){return t({event:"file_read",status:"failed",message:"Error processing coverage file",details:{filePath:e,error:r}}),null}}async function Ge(e,t){let r=co.default.createCoverageMap({}),n=0;if(await(0,lo.default)(e,async s=>{let o=await za(s,t);if(o)try{r.merge(o),n++,t({event:"merge",status:"passed",message:"Merged file successfully",details:{filePath:s}})}catch(a){t({event:"merge",status:"failed",message:"Failed to merge file",details:{filePath:s,error:a}})}},{concurrency:5}),n===0)return t({event:"merge",status:"failed",message:"No files merged",details:{files:e.length}}),null;t({event:"merge",status:"passed",message:"Merged files successfully",details:{files:n}});try{let s=r.toJSON();return t({event:"parse",status:"passed",message:"Parsed coverage map data",details:{files:e.length}}),s}catch(s){t({event:"parse",status:"failed",message:"Failed to parse coverage map data",details:{files:e.length,error:s}})}return null}var po=(e,t={})=>t.coverage?.projects===!0?!0:Array.isArray(t.coverage?.projects)&&t.coverage.projects.includes(e);i();F();i();function oe(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function He(e){return oe(e)!==void 0}i();var Xr=require("lodash");i();var $e=d(require("path"));function go(e,t){return Xa($e.default.relative(t,e.file))}function Xa(e){return e.split($e.default.sep).join($e.default.posix.sep)}function ot(e){return Q(e.parent.project())}function A(e){let t=e.titlePath(),r=Ve(e).title;return t.slice(t.indexOf(r)+1,t.length)}function We(e){return e.titlePath().filter(t=>!!t).join(" > ")}function Ve(e){let t=e.parent;for(;t.parent?.location;)t=t.parent;return t}function W(e,t){let r=Ve(e).location;return go(r,t.rootDir)}function k(e){return e.id??e._id}function ft(e,t){return`${k(e)}-${t.retry}`}function fo(e){return{workerIndex:(0,Xr.isNil)(e.results[0]?.workerIndex)?-1:e.results[0].workerIndex,parallelIndex:(0,Xr.isNil)(e.results[0]?.parallelIndex)?-1:e.results[0].parallelIndex}}function mo(e){if(e._only)return!0;let t=e.parent;for(;t.parent;){if(t._only)return!0;t=t.parent}return!1}function Q(e){if(!e)return"__currents_no_project__";let r=("__projectId"in e?e.__projectId:"").trim(),n=e.name.trim()?r:`project${r?`-0${r}`:""}`;if(n.length>256)throw new Error(`Project name is too long for ${n}`);return n}function Eo(e,t){return e.suites.map(r=>{let n=t.projects.find(a=>a.name===r.title),s=oe(n?.metadata?.pwc?.environment),o=oe(y()?.environment)??oe(process.env.CURRENTS_DISCOVERY_ENVIRONMENT);return{name:Q(r.project()),tags:(n?.metadata?.pwc?.tags??[]).map(a=>a.trim()),environment:s??o,tests:Za(r,t)}})}function Za(e,t){let r=e.allTests().map(n=>({isOnly:mo(n),title:A(n),spec:W(n,t),tags:Lt(n),testId:k(n)}));return r.some(n=>n.isOnly)?r.filter(n=>n.isOnly):r}function Lt(e){let{disableTestTags:t}=tu();if(t)return[];let r=(A(e).join(" ").match(/@(\S+)/g)??[]).filter(Boolean).map(n=>n);return Array.from(new Set([...r,...e.tags??[]].map(n=>n.trim()).map(n=>n.replace("@",""))))}function tu(){return{disableTestTags:y()?.disableTestTags??process.env.CURRENTS_DISCOVERY_DISABLE_TEST_TAGS==="true"}}_();i();var Ke=d(require("fs")),Io=d(require("os")),Ye=d(require("path"));i();var ie={OR8N_SUITE_FILE_PREFIX:"currents-or8n-",FIXTURES_DIR_PREFIX:"currents-fixtures-",FIXTURES_CONFIG_ERR_FILE:"config_fixture_error.log",FIXTURES_WARNING_FILE_PREFIX:"config_fixture_warning"},ae={prefix:"_currents:test:actions:v1",BEFORE:"_currents:test:actions:v1:before",AFTER:"_currents:test:actions:v1:after"},z={ACTION_SKIP:"_currents:rule:skip",ACTION_QUARANTINE:"_currents:rule:quarantine",ACTION_TAG:"_currents:rule:tag",ACTION_MATCH:"_currents:action:match",ACTION_SKIP_POST:"_currents:rule:skip-post",ACTION_QUARANTINE_POST:"_currents:rule:quarantine-post"};i();var Bt=d(require("fs")),eu=require("tmp-promise");function ho(e){try{return Bt.closeSync(Bt.openSync(e,"wx")),!0}catch(t){if(t.code==="EEXIST")return!1;throw t}}function To(e){try{let t=Bt.readFileSync(e,"utf-8");return JSON.parse(t)}catch{return null}}_();var Co=()=>process.env.CURRENTS_FIXTURES_TMP_DIR??Ye.resolve(Io.tmpdir(),`${ie.FIXTURES_DIR_PREFIX}${process.ppid}`),Ro=(e,t)=>{let r=t.stack??t.message;Ke.appendFileSync(e,r)},Zr=e=>(Ke.mkdirSync(Co(),{recursive:!0}),Ye.join(Co(),e)),Ft=(e,t)=>{let r=Zr(`${ie.FIXTURES_WARNING_FILE_PREFIX}_${e}.log`);ho(r)&&t.forEach(s=>g(s))};var Oo=p.extend("fixture");function ru(e){return e.coverage?.dir?it.default.resolve(e.coverage?.dir):it.default.join(process.cwd(),".nyc_output")}function tn(e){return e.name||"project"}function nu(e,t){return it.default.join(e,tn(t))}function su(){return Ao.default.randomBytes(16).toString("hex")}async function ou(e,t){let r=await je(e);if(!r)return t({event:"find",status:"failed",message:"Coverage directory not found",details:{coverageFiles:r}}),null;if(r.length===0)return t({event:"find",status:"failed",message:"No coverage files found",details:{coverageFiles:r,coverageDir:e}}),null;let n=r.map(s=>it.default.join(e,s));return Ge(n,t)}async function iu(e,t,r){let{project:n,testId:s,retry:o,titlePath:a}=t,u=tn(n),c=it.default.join(r,`${s}-${o}`),f=J({target:{projectId:u,titlePath:a,testId:s,attemptId:o},stage:"test_attempt_reports_generation"});return await e.addInitScript(()=>window.addEventListener("beforeunload",()=>{if(console.info("Location: "+window.location.href),!window.__coverage__){console.warn("Coverage data is not available in window.__coverage__ before unloading the page.");return}window.collectIstanbulCoverage(JSON.stringify(window.__coverage__))})),await qe.default.promises.mkdir(c,{recursive:!0}),f({event:"file_write",status:"passed",message:"Coverage directory created",details:{coverageDir:c}}),await e.exposeFunction("collectIstanbulCoverage",T=>{if(!T)return;let C=it.default.join(c,`${su()}.json`);try{qe.default.writeFileSync(C,T),f({event:"file_write",status:"passed",message:"Coverage file created",details:{coverageFilePath:C}})}catch(E){f({event:"file_write",status:"failed",message:"Failed to create coverage file",details:{coverageFilePath:C,error:E}})}}),c}async function au(e,t,r,n){let{project:s,testId:o,retry:a,titlePath:u}=t,c=tn(s);for(let E of e.pages())try{await E.evaluate(()=>{if(!window.__coverage__){console.warn("Coverage data is not available in window.__coverage__ after test execution. This may result in incomplete coverage reports.");return}window.collectIstanbulCoverage(JSON.stringify(window.__coverage__))})}catch{g("Failed to collect coverage from all pages. Coverage may be incomplete")}let f=J({target:{projectId:c,titlePath:u,testId:o,attemptId:a},stage:"test_attempt_reports_merging"}),T=await ou(n,f);if(!T){f({event:"merge",status:"failed",message:"Failed to obtain coverage map",details:{coverageDir:n}});return}let C=it.default.join(r,`${o}-${a}.json`);try{await qe.default.promises.writeFile(C,JSON.stringify(T,null,2)),f({event:"file_write",status:"passed",message:"Test attempt coverage file created",details:{coverageOutputPath:C}})}catch(E){f({event:"file_write",status:"failed",message:"Failed to create test attempt coverage file",details:{coverageOutputPath:C,error:E}})}}var uu=async function({context:e,currentsConfig:t,use:r,testInfo:n}){if(!t)return await Ft("coverageFixture",["Currents config not found. Skipping coverage fixture"]),await r(e);if(!po(Q(n.project),t))return Oo("Coverage is disabled"),await r(e);let{project:s}=n,o,a;try{o=nu(ru(t),s),a=await iu(e,n,o)}catch(u){g("Failed to setup coverage context",u)}if(await r(e),!(!o||!a))try{await au(e,n,o,a)}catch(u){g("Failed to collect coverage",u)}},Po=async({context:e,currentsFixturesEnabled:t,currentsConfig:r},n,s)=>{if(!t)return Oo("Currents fixtures disabled, skipping coverage fixture"),await n(e);await uu({context:e,currentsConfig:r,use:n,testInfo:s})};i();i();i();var en=class{_state={};constructor(){}getState(t){return this._state[t]}upsertState(t,r){return this._state[t]||(typeof r=="function"?this._state[t]=r():this._state[t]=r),this._state[t]}async populateState(t,r){return this._state[t]||(this._state[t]=await r),this._state[t]}},Y=new en;I();i();var vo=require("@currents/commit-info"),Lo=require("lodash");i();var Qe=require("lodash");I();i();var O=require("lodash");I();xe();var Je=p.extend("ci"),cu=(e,...t)=>(0,O.chain)(t).compact().join(e).value(),lu=(e,t)=>(0,O.set)(e,(0,O.camelCase)(t),process.env[t]),w=e=>(0,O.transform)(e,lu,{}),pu=()=>process.env.TF_BUILD&&process.env.AZURE_HTTP_USER_AGENT,gu=()=>(0,O.some)(process.env,(e,t)=>/^CODEBUILD_/.test(t)),du=()=>process.env.bamboo_buildNumber,fu=()=>(0,O.some)(process.env,(e,t)=>/^CONCOURSE_/.test(t)),mu=()=>process.env.GITLAB_CI||process.env.CI_SERVER_NAME&&/^GitLab/.test(process.env.CI_SERVER_NAME),Eu=()=>!!(process.env.BUILD_ID&&process.env.PROJECT_ID&&process.env.PROJECT_NUMBER||process.env.GCP_PROJECT||process.env.GCLOUD_PROJECT||process.env.GOOGLE_CLOUD_PROJECT),hu=()=>process.env.JENKINS_URL||process.env.JENKINS_HOME||process.env.JENKINS_VERSION||process.env.HUDSON_URL||process.env.HUDSON_HOME,Tu={appveyor:"APPVEYOR",azure:pu,awsCodeBuild:gu,bamboo:du,bitbucket:"BITBUCKET_BUILD_NUMBER",buildkite:"BUILDKITE",circle:"CIRCLECI",concourse:fu,codeFresh:"CF_BUILD_ID",drone:"DRONE",githubActions:"GITHUB_ACTIONS",gitlab:mu,goCD:"GO_JOB_NAME",jenkins:hu,googleCloud:Eu,semaphore:"SEMAPHORE",teamcity:"TEAMCITY_VERSION",travis:"TRAVIS",netlify:"NETLIFY"};function Cu(){let{env:e}=process;return(0,O.findKey)(Tu,t=>{if((0,O.isString)(t))return e[t];if((0,O.isFunction)(t))return t()})}var xo=()=>({appveyor:w(["APPVEYOR_JOB_ID","APPVEYOR_ACCOUNT_NAME","APPVEYOR_PROJECT_SLUG","APPVEYOR_BUILD_NUMBER","APPVEYOR_BUILD_VERSION","APPVEYOR_PULL_REQUEST_NUMBER","APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH"]),azure:w(["AGENT_BUILDDIRECTORY","AGENT_ID","AGENT_JOBNAME","AGENT_JOBSTATUS","AGENT_MACHINENAME","AGENT_NAME","AGENT_OS","AGENT_OSARCHITECTURE","BUILD_BUILDID","BUILD_BUILDNUMBER","BUILD_BUILDURI","BUILD_CONTAINERID","BUILD_CRONSCHEDULE_DISPLAYNAME","BUILD_DEFINITIONNAME","BUILD_DEFINITIONVERSION","BUILD_QUEUEDBY","BUILD_QUEUEDBYID","BUILD_REASON","BUILD_REPOSITORY_ID","BUILD_REPOSITORY_NAME","BUILD_REPOSITORY_PROVIDER","BUILD_REPOSITORY_URI","BUILD_REQUESTEDFOR","BUILD_REQUESTEDFOREMAIL","BUILD_REQUESTEDFORID","BUILD_SOURCEBRANCH","BUILD_SOURCEBRANCHNAME","BUILD_SOURCESDIRECTORY","BUILD_SOURCEVERSION","BUILD_SOURCEVERSIONAUTHOR","BUILD_SOURCEVERSIONMESSAGE","BUILD_STAGINGDIRECTORY","BUILD_TRIGGEREDBY_BUILDID","BUILD_TRIGGEREDBY_BUILDNUMBER","BUILD_TRIGGEREDBY_DEFINITIONID","BUILD_TRIGGEREDBY_DEFINITIONNAME","BUILD_TRIGGEREDBY_PROJECTID","COMMON_TESTRESULTSDIRECTORY","PIPELINE_WORKSPACE","SYSTEM_COLLECTIONID","SYSTEM_COLLECTIONURI","SYSTEM_DEFAULTWORKINGDIRECTORY","SYSTEM_DEFINITIONID","SYSTEM_HOSTTYPE","SYSTEM_JOBATTEMPT","SYSTEM_JOBDISPLAYNAME","SYSTEM_JOBID","SYSTEM_JOBNAME","SYSTEM_PHASEATTEMPT","SYSTEM_PHASEDISPLAYNAME","SYSTEM_PHASENAME","SYSTEM_PLANID","SYSTEM_PULLREQUEST_ISFORK","SYSTEM_PULLREQUEST_PULLREQUESTID","SYSTEM_PULLREQUEST_PULLREQUESTNUMBER","SYSTEM_PULLREQUEST_SOURCEREPOSITORYURI","SYSTEM_PULLREQUEST_SOURCEBRANCH","SYSTEM_PULLREQUEST_SOURCECOMMITID","SYSTEM_PULLREQUEST_TARGETBRANCH","SYSTEM_PULLREQUEST_TARGETBRANCHNAME","SYSTEM_STAGEATTEMPT","SYSTEM_STAGEDISPLAYNAME","SYSTEM_STAGENAME","SYSTEM_TEAMFOUNDATIONCOLLECTIONURI","SYSTEM_TEAMPROJECT","SYSTEM_TEAMPROJECTID","SYSTEM_TIMELINEID","RELEASE_RELEASEWEBURL","RELEASE_RELEASEID","RELEASE_RELEASENAME","RELEASE_RELEASEURI","RELEASE_DEFINITIONID","RELEASE_DEFINITIONNAME","RELEASE_ENVIRONMENTID","RELEASE_ENVIRONMENTNAME","RELEASE_REASON","RELEASE_REQUESTEDFOR","RELEASE_REQUESTEDFOREMAIL","RELEASE_REQUESTEDFORID","RELEASE_DEPLOYMENTID","RELEASE_DEPLOYPHASEID","RELEASE_DEFINITIONENVIRONMENTID","RELEASE_ENVIRONMENTURI","RELEASE_TEAMPROJECT","RELEASE_TEAMPROJECTID","RELEASE_PRIMARYARTIFACTSOURCEALIAS","RELEASE_TRIGGERINGARTIFACT_ALIAS","RELEASE_ATTEMPT_NUMBER","RELEASE_SKIPARTIFACTSDOWNLOAD","RELEASE_RELEASEDESCRIPTION","RELEASE_DEPLOYMENT_REQUESTEDFOR","RELEASE_DEPLOYMENT_REQUESTEDFOREMAIL","RELEASE_DEPLOYMENT_REQUESTEDFORID"]),awsCodeBuild:w(["AWS_DEFAULT_REGION","AWS_REGION","CODEBUILD_BATCH_BUILD_IDENTIFIER","CODEBUILD_BUILD_ARN","CODEBUILD_BUILD_ID","CODEBUILD_BUILD_IMAGE","CODEBUILD_BUILD_NUMBER","CODEBUILD_BUILD_SUCCEEDING","CODEBUILD_BUILD_URL","CODEBUILD_INITIATOR","CODEBUILD_PROJECT_ARN","CODEBUILD_PUBLIC_BUILD_URL","CODEBUILD_RESOLVED_SOURCE_VERSION","CODEBUILD_SOURCE_REPO_URL","CODEBUILD_SOURCE_VERSION","CODEBUILD_SRC_DIR","CODEBUILD_START_TIME","CODEBUILD_WEBHOOK_ACTOR_ACCOUNT_ID","CODEBUILD_WEBHOOK_BASE_REF","CODEBUILD_WEBHOOK_EVENT","CODEBUILD_WEBHOOK_HEAD_REF","CODEBUILD_WEBHOOK_MERGE_COMMIT","CODEBUILD_WEBHOOK_PREV_COMMIT","CODEBUILD_WEBHOOK_TRIGGER","CODEBUILD_WEBHOOK_LABEL","CODEBUILD_WEBHOOK_RUN_ID","CODEBUILD_WEBHOOK_JOB_ID","CODEBUILD_WEBHOOK_WORKFLOW_NAME","CODEBUILD_RUNNER_OWNER","CODEBUILD_RUNNER_REPO","CODEBUILD_RUNNER_REPO_DOMAIN","CODEBUILD_RUNNER_WITH_BUILDSPEC"]),bamboo:w(["bamboo_buildNumber","bamboo_buildResultsUrl","bamboo_planRepository_repositoryUrl","bamboo_buildKey"]),bitbucket:w(["CI","BITBUCKET_WORKSPACE","BITBUCKET_REPO_SLUG","BITBUCKET_REPO_UUID","BITBUCKET_REPO_FULL_NAME","BITBUCKET_REPO_IS_PRIVATE","BITBUCKET_REPO_OWNER","BITBUCKET_REPO_OWNER_UUID","BITBUCKET_PROJECT_KEY","BITBUCKET_PROJECT_UUID","BITBUCKET_BUILD_NUMBER","BITBUCKET_PIPELINE_UUID","BITBUCKET_STEP_UUID","BITBUCKET_STEP_RUN_NUMBER","BITBUCKET_STEP_TRIGGERER_UUID","BITBUCKET_PARALLEL_STEP","BITBUCKET_PARALLEL_STEP_COUNT","BITBUCKET_CLONE_DIR","BITBUCKET_COMMIT","BITBUCKET_BRANCH","BITBUCKET_TAG","BITBUCKET_BOOKMARK","BITBUCKET_GIT_HTTP_ORIGIN","BITBUCKET_GIT_SSH_ORIGIN","BITBUCKET_PR_ID","BITBUCKET_PR_DESTINATION_BRANCH","BITBUCKET_PR_DESTINATION_COMMIT","BITBUCKET_DEPLOYMENT_ENVIRONMENT","BITBUCKET_DEPLOYMENT_ENVIRONMENT_UUID","BITBUCKET_EXIT_CODE"]),buildkite:w(["BUILDKITE_ORGANIZATION_SLUG","BUILDKITE_PIPELINE_ID","BUILDKITE_PIPELINE_NAME","BUILDKITE_PIPELINE_SLUG","BUILDKITE_PIPELINE_DEFAULT_BRANCH","BUILDKITE_REPO","BUILDKITE_SOURCE","BUILDKITE_BRANCH","BUILDKITE_TAG","BUILDKITE_COMMIT","BUILDKITE_MESSAGE","BUILDKITE_BUILD_AUTHOR","BUILDKITE_BUILD_AUTHOR_EMAIL","BUILDKITE_JOB_ID","BUILDKITE_BUILD_ID","BUILDKITE_BUILD_URL","BUILDKITE_BUILD_NUMBER","BUILDKITE_LABEL","BUILDKITE_COMMAND","BUILDKITE_STEP_ID","BUILDKITE_STEP_KEY","BUILDKITE_PARALLEL_JOB","BUILDKITE_PARALLEL_JOB_COUNT","BUILDKITE_RETRY_COUNT","BUILDKITE_COMPUTE_TYPE","BUILDKITE_CLUSTER_NAME","BUILDKITE_PULL_REQUEST","BUILDKITE_PULL_REQUEST_REPO","BUILDKITE_PULL_REQUEST_BASE_BRANCH","BUILDKITE_PULL_REQUEST_DRAFT","BUILDKITE_PULL_REQUEST_LABELS","BUILDKITE_MERGE_QUEUE_BASE_BRANCH","BUILDKITE_MERGE_QUEUE_BASE_COMMIT","BUILDKITE_REBUILT_FROM_BUILD_ID","BUILDKITE_REBUILT_FROM_BUILD_NUMBER","BUILDKITE_TRIGGERED_FROM_BUILD_ID","BUILDKITE_TRIGGERED_FROM_BUILD_NUMBER","BUILDKITE_TRIGGERED_FROM_BUILD_PIPELINE_SLUG"]),circle:w(["CI","CIRCLECI","CIRCLE_BRANCH","CIRCLE_BUILD_NUM","CIRCLE_BUILD_URL","CIRCLE_PREVIOUS_BUILD_NUM","CIRCLE_JOB","CIRCLE_WORKFLOW_ID","CIRCLE_WORKFLOW_JOB_ID","CIRCLE_WORKFLOW_WORKSPACE_ID","CIRCLE_PIPELINE_ID","CIRCLE_ORGANIZATION_ID","CIRCLE_PROJECT_ID","CIRCLE_PROJECT_REPONAME","CIRCLE_PROJECT_USERNAME","CIRCLE_REPOSITORY_URL","CIRCLE_WORKING_DIRECTORY","CIRCLE_SHA1","CIRCLE_TAG","CIRCLE_USERNAME","CIRCLE_NODE_INDEX","CIRCLE_NODE_TOTAL","CIRCLE_PR_NUMBER","CIRCLE_PR_REPONAME","CIRCLE_PR_USERNAME","CIRCLE_PULL_REQUEST","CIRCLE_PULL_REQUESTS","CI_PULL_REQUEST"]),concourse:w(["BUILD_ID","BUILD_NAME","BUILD_JOB_NAME","BUILD_PIPELINE_NAME","BUILD_TEAM_NAME","ATC_EXTERNAL_URL"]),codeFresh:w(["CF_BUILD_ID","CF_BUILD_URL","CF_CURRENT_ATTEMPT","CF_STEP_NAME","CF_PIPELINE_NAME","CF_PIPELINE_TRIGGER_ID","CF_PULL_REQUEST_ID","CF_PULL_REQUEST_IS_FORK","CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_TARGET"]),drone:w(["DRONE_BUILD_LINK","DRONE_BUILD_NUMBER","DRONE_PULL_REQUEST"]),githubActions:w(["CI","GITHUB_ACTIONS","GITHUB_WORKFLOW","GITHUB_WORKFLOW_REF","GITHUB_WORKFLOW_SHA","GITHUB_ACTION","GITHUB_ACTION_PATH","GITHUB_ACTION_REPOSITORY","GITHUB_JOB","GITHUB_EVENT_NAME","GITHUB_EVENT_PATH","GITHUB_RUN_ID","GITHUB_RUN_NUMBER","GITHUB_RUN_ATTEMPT","GITHUB_REPOSITORY","GITHUB_REPOSITORY_ID","GITHUB_REPOSITORY_OWNER","GITHUB_REPOSITORY_OWNER_ID","GITHUB_REF","GITHUB_REF_NAME","GITHUB_REF_TYPE","GITHUB_REF_PROTECTED","GITHUB_BASE_REF","GITHUB_HEAD_REF","GITHUB_SHA","GITHUB_ACTOR","GITHUB_ACTOR_ID","GITHUB_TRIGGERING_ACTOR","GITHUB_SERVER_URL","GITHUB_API_URL","GITHUB_GRAPHQL_URL","GITHUB_WORKSPACE","GITHUB_RETENTION_DAYS","RUNNER_OS","RUNNER_ARCH","RUNNER_NAME","RUNNER_ENVIRONMENT","RUNNER_DEBUG"]),gitlab:w(["CI_PIPELINE_ID","CI_PIPELINE_URL","CI_BUILD_ID","CI_JOB_ID","CI_JOB_URL","CI_JOB_NAME","GITLAB_HOST","CI_PROJECT_ID","CI_PROJECT_URL","CI_REPOSITORY_URL","CI_ENVIRONMENT_URL","CI_DEFAULT_BRANCH","CI_MERGE_REQUEST_IID","CI_MERGE_REQUEST_PROJECT_URL","CI_MERGE_REQUEST_TITLE","CI_MERGE_REQUEST_SOURCE_BRANCH_NAME","CI_MERGE_REQUEST_TARGET_BRANCH_NAME","CI_OPEN_MERGE_REQUESTS"]),goCD:w(["GO_SERVER_URL","GO_ENVIRONMENT_NAME","GO_PIPELINE_NAME","GO_PIPELINE_COUNTER","GO_PIPELINE_LABEL","GO_STAGE_NAME","GO_STAGE_COUNTER","GO_JOB_NAME","GO_TRIGGER_USER","GO_REVISION","GO_TO_REVISION","GO_FROM_REVISION","GO_MATERIAL_HAS_CHANGED"]),googleCloud:w(["BUILD_ID","PROJECT_ID","REPO_NAME","BRANCH_NAME","TAG_NAME","COMMIT_SHA","SHORT_SHA"]),jenkins:w(["BRANCH_NAME","BUILD_DISPLAY_NAME","BUILD_ID","BUILD_NUMBER","BUILD_TAG","BUILD_URL","CHANGE_AUTHOR","CHANGE_AUTHOR_DISPLAY_NAME","CHANGE_AUTHOR_EMAIL","CHANGE_BRANCH","CHANGE_FORK","CHANGE_ID","CHANGE_TARGET","CHANGE_TITLE","CHANGE_URL","CI","EXECUTOR_NUMBER","JAVA_HOME","JENKINS_HOME","JENKINS_URL","JOB_BASE_NAME","JOB_NAME","JOB_URL","NODE_LABELS","NODE_NAME","RUN_ARTIFACTS_DISPLAY_URL","RUN_CHANGES_DISPLAY_URL","TAG_NAME","WORKSPACE","WORKSPACE_TMP","GIT_AUTHOR_EMAIL","GIT_AUTHOR_NAME","GIT_BRANCH","GIT_COMMIT","GIT_COMMITTER_EMAIL","GIT_COMMITTER_NAME","GIT_LOCAL_BRANCH","GIT_PREVIOUS_COMMIT","GIT_PREVIOUS_SUCCESSFUL_COMMIT","GIT_URL","ghprbActualCommit","ghprbGhRepository","ghprbPullId","ghprbPullLink","ghprbSourceBranch","ghprbTargetBranch","ghprbTriggerAuthorLogin"]),semaphore:w(["SEMAPHORE_BRANCH_ID","SEMAPHORE_BUILD_NUMBER","SEMAPHORE_CURRENT_JOB","SEMAPHORE_CURRENT_THREAD","SEMAPHORE_EXECUTABLE_UUID","SEMAPHORE_GIT_BRANCH","SEMAPHORE_GIT_DIR","SEMAPHORE_GIT_REF","SEMAPHORE_GIT_REF_TYPE","SEMAPHORE_GIT_REPO_SLUG","SEMAPHORE_GIT_SHA","SEMAPHORE_GIT_URL","SEMAPHORE_JOB_COUNT","SEMAPHORE_JOB_ID","SEMAPHORE_JOB_NAME","SEMAPHORE_JOB_UUID","SEMAPHORE_PIPELINE_ID","SEMAPHORE_PLATFORM","SEMAPHORE_PROJECT_DIR","SEMAPHORE_PROJECT_HASH_ID","SEMAPHORE_PROJECT_ID","SEMAPHORE_PROJECT_NAME","SEMAPHORE_PROJECT_UUID","SEMAPHORE_REPO_SLUG","SEMAPHORE_TRIGGER_SOURCE","SEMAPHORE_WORKFLOW_ID","PULL_REQUEST_NUMBER"]),teamcity:null,travis:w(["TRAVIS_JOB_ID","TRAVIS_BUILD_ID","TRAVIS_BUILD_WEB_URL","TRAVIS_REPO_SLUG","TRAVIS_JOB_NUMBER","TRAVIS_EVENT_TYPE","TRAVIS_COMMIT_RANGE","TRAVIS_BUILD_NUMBER","TRAVIS_PULL_REQUEST","TRAVIS_PULL_REQUEST_BRANCH","TRAVIS_PULL_REQUEST_SHA"]),netlify:w(["BUILD_ID","CONTEXT","URL","DEPLOY_URL","DEPLOY_PRIME_URL","DEPLOY_ID"])}),Iu=()=>{let{env:e}=process;return{ap