@checksum-ai/runtime 1.2.10-alpha → 1.2.11-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env CHANGED
@@ -1 +1 @@
1
- CHECKSUM_RUNTIME_BUILD_TIME=2025-08-24T11:34:34.764Z
1
+ CHECKSUM_RUNTIME_BUILD_TIME=2025-08-24T12:34:47.337Z
package/cli.js CHANGED
@@ -1607,7 +1607,7 @@ ${a.map(u=>[u.type,u.nestedLevel,this.getText(u.body)]).join(`,
1607
1607
  ${rJr}
1608
1608
  ${A}
1609
1609
  ${nJr}
1610
- ${(await u.getFormattedTestFileCode()).code}`)}loadVtgTestFileMirror(n){if(!n||!n.startsWith("/"))throw new Error("Currently vtg mode can only run with absolute path to file");let a=new h3e(n);return a.loadTestFromFile(),a}createActionJsonFileForExistingChecksumSpec(n,a){let u=n.testMirrors[0].translateStatementsToActions({mergeCustomCodeSteps:this.vtgSettingsService.getSettings().mergeCustomCodeSteps}),f=this.getActionJsonFilePath(a);(0,t$.writeFileSync)(f,JSON.stringify(u,null,2))}createFolderIfNotExists(n){return(0,t$.existsSync)(n)||(0,t$.mkdirSync)(n,{recursive:!0}),n}getSavePathForNewChecksumSpec(){return(0,Ule.join)(this.draftsFolderPath,"test.checksum.spec.ts")}getActionJsonFilePath(n){let a=this.getFileName(n).replace(".spec.ts",".json");return(0,Ule.join)(this.draftsFolderPath,a)}getEvalFilePath(n){let a=this.internalE2ETest?".eval.e2e.checksum.spec.ts":".eval.checksum.spec.ts";return(0,Ule.join)(this.draftsFolderPath,a)}getFileName(n){return n.split("/").pop()}};e(pvr,"VtgTestRunner");var H3t=pvr;var dvr=class dvr extends aP{constructor(a,u=!1,f=!1){super(a,u);this.vtgMode=f;this.MAX_COMPLETION_WAIT=2*3600*1e3;this.didFail=!1;this.isolationMode=!1;this.trmMessagesBuffer="";this.completeIndicators={upload:!1,tests:!1,report:!1};this.uploadProgress=0;this.playwrightIdToReportMetadata={};this.logFilter={"upload-progress":{logEveryMS:1e3*30,lastLogTimestamp:0,logOnValueChange:!0,value:""}}}get replMode(){return this.getChecksumArg("repl")??!1}logMemoryUsage(a,u){let f=process.memoryUsage(),g=Math.round(f.heapUsed/1024/1024),A=Math.round(f.heapTotal/1024/1024),E=Math.round(f.external/1024/1024),D=Math.round(f.rss/1024/1024),F=`[Memory] ${a}: Heap: ${g}MB/${A}MB, External: ${E}MB, RSS: ${D}MB`;u&&(F+=` | Child Process: ${u.stage} - Active: ${u.activeAssets}, Completed: ${u.completedAssets}, Errored: ${u.erroredAssets}, Total: ${u.totalAssets}`),console.log(F)}async run(){if(this.loadTracer(),this.validateAuthExists(),this.buildVolatileChecksumConfig(),this.vtgMode&&(this.config.options.hostReports=!1),!await this.getSession())return;this.testSuiteAnalytics=gFe.getInstance(this.testSuiteRunInfo,this.isolationMode),this.testSuiteAnalytics.genericEvent(`Project root found at ${this.projectRootDirectory}`,`Checksum root found at ${this.checksumRoot}`);let a={CHECKSUM_ROOT_FOLDER:this.checksumRoot,CHECKSUM_TEST_SUITE_INFO:JSON.stringify(this.testSuiteRunInfo)},u;try{u=await ow(this.startTestRunMonitor(this.testSuiteRunId),1e4,"test run monitor timeout"),a.CHECKSUM_UPLOAD_AGENT_PORT=u}catch{let E="Error starting test run monitor. Test results will not be available on checksum.";this.testSuiteAnalytics.testRunMonitorError({error:E}),this.log(E)}a.PW_TEST_HTML_REPORT_OPEN="never",this.isolationMode&&(a.CHECKSUM_ISOLATED_MODE="true"),this.testSuiteRunId&&(a.CHECKSUM_TEST_SUITE_ID=this.testSuiteRunId),this.replMode&&(a.CHECKSUM_REPL="true"),this.getChecksumArg("tm")&&(a.CHECKSUM_SHOW_TIME_MACHINE="true");let f=this.getNonChecksumArgs();this.vtgMode&&(await new H3t(this.getChecksumArg("id")||void 0,this.getChecksumArg("edit")||void 0,this.getChecksumArg("legacy")||!1,zy.vtg.isE2ETestMode,this.getChecksumArg("restore")||!1,this.checksumRoot,this.getInternalFilesDirPath()).initAndUpdateEnvAndPlaywrightArgs(a,f),zy.promptKillActivePlaywrightProcesses&&await this.promptKillActivePlaywrightProcesses()),this.replMode&&f.push("--debug");let g=`npx playwright test --config "${this.getPlaywrightConfigFilePath()}" ${f.map(A=>`"${A}"`).join(" ")}`;await this.patchPlaywright();try{console.log(`Tests running with @checksum-ai/runtime version ${this.checksumRuntimeVersion}`),this.replMode?(console.log("Running in REPL mode"),this.execCmd(g,a),await this.execCmd(`node ${__dirname}/repl.js`,a)):(this.testSuiteAnalytics.testSuiteStart(),await this.execCmd(g,a)),console.log(`Tests execution finished. Checksum is finalizing${this.isolationMode?"":" and uploading"} the report, please wait...`)}catch{this.didFail=!0,console.log("Error during test execution: Failed passing test"),this.testSuiteAnalytics.testsFailed()}finally{this.isolationMode||console.log("Waiting for test files to upload to Checksum..."),this.sendReportUploadRequest(),await this.patchPlaywright(!0),this.completeIndicators.tests=!0,await this.handleCompleteMessage()}}loadPlaywrightConfigOptions(){var A,E;let a=e(D=>(eS("Using report folder",D),(0,gme.join)(D,"index.html")),"makeFilePath"),u,f="never";process.env.PLAYWRIGHT_HTML_OUTPUT_DIR&&(u=a(process.env.PLAYWRIGHT_HTML_OUTPUT_DIR));let g=(A=this.playwrightConfig)==null?void 0:A.reporter;if(g instanceof Array){let D=g.filter(F=>F instanceof Array&&F[0]==="html");if(!process.env.PLAYWRIGHT_HTML_OUTPUT_DIR){let F=D.find(P=>{var Q;return(Q=P[1])==null?void 0:Q.outputFolder});F&&(u=a((0,gme.join)(this.checksumRoot,F[1].outputFolder)))}for(let F of D){let P=(E=F[1])==null?void 0:E.open;if(P==="always"||P==="on-failure"){f=P;break}}}u||(zy.isRepoMode?u=a((0,gme.join)(zy.runtimeRoot,"playwright-report")):u=a((0,gme.join)(this.projectRootDirectory,"playwright-report"))),this.playwrightConfigOptions={openReportCriteria:f,reportPath:u}}sendReportUploadRequest(){let a=e(D=>{this.testSuiteAnalytics.testSuiteError({error:D}),this.log(D),this.completeIndicators.report=!0,this.testRunMonitorProcess.stdin.write("cli:report=false")},"makeError");if(!this.playwrightConfigOptions)return a("No playwright config options");let{reportPath:u,openReportCriteria:f}=this.playwrightConfigOptions;if(!(0,G3t.existsSync)(u))return a(`Could not find report file at ${u}`);eS("Sending report upload request",u);let g=this.saveMetadataToFile((0,gme.dirname)(u)),A={reportPath:u,pathToChecksumMetadata:g,openReportCriteria:f,didFail:this.didFail},E=Buffer.from(JSON.stringify(A)).toString("base64");this.testRunMonitorProcess.stdin.write(`cli:report=${E}`)}saveMetadataToFile(a){try{let u=(0,gme.join)(a,`checksum-metadata-${(0,fvr.randomUUID)()}.json`);return(0,G3t.writeFileSync)(u,JSON.stringify(this.playwrightIdToReportMetadata,null,2)),u}catch(u){let f=`Error saving metadata to file - ${u.message}`;this.testSuiteAnalytics.testSuiteError({error:f}),this.log(f);return}}startTestMonitorProcess(a){let f=[JSON.stringify({sessionId:a,apiURL:this.config.apiURL,apiKey:this.config.apiKey}),...this.isolationMode?["isolated"]:[]],g={command:"node",args:[(0,gme.join)(__dirname,"test-run-monitor.js"),...f]};return zy.isRepoMode&&(g.command="yarn",g.args=["test-run-monitor",...f]),Pan.spawn(g.command,g.args)}startTestRunMonitor(a){return new Promise(u=>{console.log("Starting test run monitor"),this.testRunMonitorProcess=this.startTestMonitorProcess(a),this.testRunMonitorProcess.stdout.on("data",f=>{let g=this.parseTRMMessages(f.toString().trim());if(g.length)for(let A of g){if(A.startsWith("trace")){this.logTRMMessage(A),this.handleTestRunMonitorTrace(A.substring("trace".length+1));continue}if(!A.startsWith("monitor")){this.logTRMMessage(A);continue}let E=e(()=>{let Q=A.substring("monitor".length+1),R=Q.indexOf("=");if(R===-1)return{key:Q,value:""};let[W,q]=[Q.substring(0,R),Q.substring(R+1)];return{key:W,value:q}},"getKeyAndValue"),{key:D,value:F}=E();if(!Object.values(ftr).includes(D)){this.logTRMMessage(`Received unknown monitor message: "${A}"`);continue}let P=D;this.logInterProcessEventMessage(P,F),D==="port"?u(F):this.handleTestRunMonitorMessage(P,F)}}),this.testRunMonitorProcess.on("exit",(f,g)=>{let A=`test run monitor process exited with code ${f} and signal ${g}`;this.testSuiteAnalytics.testRunMonitorError({error:A}),this.log(A)}),this.testRunMonitorProcess.stderr.on("data",f=>{let g=`TRM Error: ${f.toString().substring(0,300)}`;this.testSuiteAnalytics.testRunMonitorError({error:g}),this.log(g)}),this.testRunMonitorProcess.on("error",f=>{let g=`Error starting test run monitor: ${f.message}`;this.testSuiteAnalytics.testRunMonitorError({error:g}),this.log(g)})})}logInterProcessEventMessage(a,u){e(()=>{if(!this.logFilter[a])return!0;if(this.logFilter[a].logOnValueChange&&this.logFilter[a].value!==u)return this.logFilter[a].value=u,!0;if(this.logFilter[a].logEveryMS){let g=Date.now();if(g-this.logFilter[a].lastLogTimestamp>=this.logFilter[a].logEveryMS)return this.logFilter[a].lastLogTimestamp=g,!0}return!1},"shouldLog")()&&this.logTRMMessage(`Received monitor message: "${a}${u?`=${u}`:""}"`)}parseTRMMessages(a){let u=this.trmMessagesBuffer+a,f,g,A=e(()=>{f=u.indexOf("{trm}"),g=u.indexOf("{/trm}")},"findIndexes");A();let E=[];for(;f!==-1&&g!==-1&&g>f;){if(E.push(u.substring(f+"{trm}".length,g)),u=u.slice(g+"{/trm}".length).trim(),u.length&&!u.startsWith("{trm}"))return console.warn("Buffered data does not start with start delimiter",u),this.trmMessagesBuffer="",E;this.trmMessagesBuffer=u,A()}return E}setChecksumTestMetadata(a){let{retry:u,type:f,pwTestId:g}=a;this.playwrightIdToReportMetadata[g]||(this.playwrightIdToReportMetadata[g]={}),this.playwrightIdToReportMetadata[g][u]||(this.playwrightIdToReportMetadata[g][u]={}),this.playwrightIdToReportMetadata[g][u][f]=a}async handleTestRunMonitorTrace(a){let u=a.indexOf("="),[f,g]=u>-1?[a.substring(0,u),a.substring(u+1)]:[a,""];if(!Object.values(V6t).includes(f)){eS("Unknown trace event",f);return}try{let A=g?JSON.parse(g):{};switch(f){case"Upload Start":this.testSuiteAnalytics.uploadStart({filename:A.filename});break;case"Upload Complete":this.testSuiteAnalytics.uploadComplete({filename:A.filename});break;case"Upload Failed":this.testSuiteAnalytics.uploadFailed({filename:A.filename,error:A.error});break;case"Trace Processing Error":this.testSuiteAnalytics.traceProcessingError({error:A.error});break}}catch(A){eS(`Error parsing trace payload, ${A.message}`)}}async handleTestRunMonitorMessage(a,u){var f;switch(a){case"uploads-complete-with-errors":console.log("Error uploading test files to Checksum");try{let A=JSON.parse(u);this.testSuiteAnalytics.uploadsCompleteWithErrors(A)}catch{}this.sendProcessingError().then(()=>{this.completeIndicators.upload=!0});break;case"checksumTestMetadata":try{let A=JSON.parse(u);this.setChecksumTestMetadata(A)}catch(A){let E=`Error parsing test metadata event - ${A.message}`;this.testSuiteAnalytics.testSuiteError({error:E}),this.log(E)}break;case"uploads-complete":this.isolationMode||console.log("Test files uploaded successfully"),this.testSuiteAnalytics.allUploadsComplete(),this.sendUploadsComplete().then(()=>{this.completeIndicators.upload=!0});break;case"report-complete":{if(this.isolationMode){this.completeIndicators.report=!0;break}let A=u.slice(0,u.indexOf(":"))==="true",E=u.slice(u.indexOf(":")+1),D=this.handleStats(E);if(this.testSuiteAnalytics.testSuiteEnd({passed:D.passed,failed:D.failed,bug:D.bug,total:((f=D.tests)==null?void 0:f.length)||0}),await this.sendTestRunEnd(D),this.completeIndicators.report=!0,A){let F=`${this.checksumAppUrl}/#/test-runs/${this.testSuiteRunId}`,P=`Checksum report URL: ${F}`,Q="*".repeat(P.length);console.log(`${Q}
1610
+ ${(await u.getFormattedTestFileCode()).code}`)}loadVtgTestFileMirror(n){if(!n||!n.startsWith("/"))throw new Error("Currently vtg mode can only run with absolute path to file");let a=new h3e(n);return a.loadTestFromFile(),a}createActionJsonFileForExistingChecksumSpec(n,a){let u=n.testMirrors[0].translateStatementsToActions({mergeCustomCodeSteps:this.vtgSettingsService.getSettings().mergeCustomCodeSteps}),f=this.getActionJsonFilePath(a);(0,t$.writeFileSync)(f,JSON.stringify(u,null,2))}createFolderIfNotExists(n){return(0,t$.existsSync)(n)||(0,t$.mkdirSync)(n,{recursive:!0}),n}getSavePathForNewChecksumSpec(){return(0,Ule.join)(this.draftsFolderPath,"test.checksum.spec.ts")}getActionJsonFilePath(n){let a=this.getFileName(n).replace(".spec.ts",".json");return(0,Ule.join)(this.draftsFolderPath,a)}getEvalFilePath(n){let a=this.internalE2ETest?".eval.e2e.checksum.spec.ts":".eval.checksum.spec.ts";return(0,Ule.join)(this.draftsFolderPath,a)}getFileName(n){return n.split("/").pop()}};e(pvr,"VtgTestRunner");var H3t=pvr;var dvr=class dvr extends aP{constructor(a,u=!1,f=!1){super(a,u);this.vtgMode=f;this.MAX_COMPLETION_WAIT=2*3600*1e3;this.didFail=!1;this.isolationMode=!1;this.trmMessagesBuffer="";this.completeIndicators={upload:!1,tests:!1,report:!1};this.uploadProgress=0;this.playwrightIdToReportMetadata={};this.logFilter={"upload-progress":{logEveryMS:1e3*30,lastLogTimestamp:0,logOnValueChange:!0,value:""}}}get replMode(){return this.getChecksumArg("repl")??!1}logMemoryUsage(a,u){let f=process.memoryUsage(),g=Math.round(f.heapUsed/1024/1024),A=Math.round(f.heapTotal/1024/1024),E=Math.round(f.external/1024/1024),D=Math.round(f.rss/1024/1024),F=`[Memory] ${a}: Heap: ${g}MB/${A}MB, External: ${E}MB, RSS: ${D}MB`;u&&(F+=` | Child Process: ${u.stage} - Active: ${u.activeAssets}, Completed: ${u.completedAssets}, Errored: ${u.erroredAssets}, Total: ${u.totalAssets}`),console.log(F)}async run(){if(console.log("Running without processing har and trace"),this.loadTracer(),this.validateAuthExists(),this.buildVolatileChecksumConfig(),this.vtgMode&&(this.config.options.hostReports=!1),!await this.getSession())return;this.testSuiteAnalytics=gFe.getInstance(this.testSuiteRunInfo,this.isolationMode),this.testSuiteAnalytics.genericEvent(`Project root found at ${this.projectRootDirectory}`,`Checksum root found at ${this.checksumRoot}`);let a={CHECKSUM_ROOT_FOLDER:this.checksumRoot,CHECKSUM_TEST_SUITE_INFO:JSON.stringify(this.testSuiteRunInfo)},u;try{u=await ow(this.startTestRunMonitor(this.testSuiteRunId),1e4,"test run monitor timeout"),a.CHECKSUM_UPLOAD_AGENT_PORT=u}catch{let E="Error starting test run monitor. Test results will not be available on checksum.";this.testSuiteAnalytics.testRunMonitorError({error:E}),this.log(E)}a.PW_TEST_HTML_REPORT_OPEN="never",this.isolationMode&&(a.CHECKSUM_ISOLATED_MODE="true"),this.testSuiteRunId&&(a.CHECKSUM_TEST_SUITE_ID=this.testSuiteRunId),this.replMode&&(a.CHECKSUM_REPL="true"),this.getChecksumArg("tm")&&(a.CHECKSUM_SHOW_TIME_MACHINE="true");let f=this.getNonChecksumArgs();this.vtgMode&&(await new H3t(this.getChecksumArg("id")||void 0,this.getChecksumArg("edit")||void 0,this.getChecksumArg("legacy")||!1,zy.vtg.isE2ETestMode,this.getChecksumArg("restore")||!1,this.checksumRoot,this.getInternalFilesDirPath()).initAndUpdateEnvAndPlaywrightArgs(a,f),zy.promptKillActivePlaywrightProcesses&&await this.promptKillActivePlaywrightProcesses()),this.replMode&&f.push("--debug");let g=`npx playwright test --config "${this.getPlaywrightConfigFilePath()}" ${f.map(A=>`"${A}"`).join(" ")}`;await this.patchPlaywright();try{console.log(`Tests running with @checksum-ai/runtime version ${this.checksumRuntimeVersion}`),this.replMode?(console.log("Running in REPL mode"),this.execCmd(g,a),await this.execCmd(`node ${__dirname}/repl.js`,a)):(this.testSuiteAnalytics.testSuiteStart(),await this.execCmd(g,a)),console.log(`Tests execution finished. Checksum is finalizing${this.isolationMode?"":" and uploading"} the report, please wait...`)}catch{this.didFail=!0,console.log("Error during test execution: Failed passing test"),this.testSuiteAnalytics.testsFailed()}finally{this.isolationMode||console.log("Waiting for test files to upload to Checksum..."),this.sendReportUploadRequest(),await this.patchPlaywright(!0),this.completeIndicators.tests=!0,await this.handleCompleteMessage()}}loadPlaywrightConfigOptions(){var A,E;let a=e(D=>(eS("Using report folder",D),(0,gme.join)(D,"index.html")),"makeFilePath"),u,f="never";process.env.PLAYWRIGHT_HTML_OUTPUT_DIR&&(u=a(process.env.PLAYWRIGHT_HTML_OUTPUT_DIR));let g=(A=this.playwrightConfig)==null?void 0:A.reporter;if(g instanceof Array){let D=g.filter(F=>F instanceof Array&&F[0]==="html");if(!process.env.PLAYWRIGHT_HTML_OUTPUT_DIR){let F=D.find(P=>{var Q;return(Q=P[1])==null?void 0:Q.outputFolder});F&&(u=a((0,gme.join)(this.checksumRoot,F[1].outputFolder)))}for(let F of D){let P=(E=F[1])==null?void 0:E.open;if(P==="always"||P==="on-failure"){f=P;break}}}u||(zy.isRepoMode?u=a((0,gme.join)(zy.runtimeRoot,"playwright-report")):u=a((0,gme.join)(this.projectRootDirectory,"playwright-report"))),this.playwrightConfigOptions={openReportCriteria:f,reportPath:u}}sendReportUploadRequest(){let a=e(D=>{this.testSuiteAnalytics.testSuiteError({error:D}),this.log(D),this.completeIndicators.report=!0,this.testRunMonitorProcess.stdin.write("cli:report=false")},"makeError");if(!this.playwrightConfigOptions)return a("No playwright config options");let{reportPath:u,openReportCriteria:f}=this.playwrightConfigOptions;if(!(0,G3t.existsSync)(u))return a(`Could not find report file at ${u}`);eS("Sending report upload request",u);let g=this.saveMetadataToFile((0,gme.dirname)(u)),A={reportPath:u,pathToChecksumMetadata:g,openReportCriteria:f,didFail:this.didFail},E=Buffer.from(JSON.stringify(A)).toString("base64");this.testRunMonitorProcess.stdin.write(`cli:report=${E}`)}saveMetadataToFile(a){try{let u=(0,gme.join)(a,`checksum-metadata-${(0,fvr.randomUUID)()}.json`);return(0,G3t.writeFileSync)(u,JSON.stringify(this.playwrightIdToReportMetadata,null,2)),u}catch(u){let f=`Error saving metadata to file - ${u.message}`;this.testSuiteAnalytics.testSuiteError({error:f}),this.log(f);return}}startTestMonitorProcess(a){let f=[JSON.stringify({sessionId:a,apiURL:this.config.apiURL,apiKey:this.config.apiKey}),...this.isolationMode?["isolated"]:[]],g={command:"node",args:[(0,gme.join)(__dirname,"test-run-monitor.js"),...f]};return zy.isRepoMode&&(g.command="yarn",g.args=["test-run-monitor",...f]),Pan.spawn(g.command,g.args)}startTestRunMonitor(a){return new Promise(u=>{console.log("Starting test run monitor"),this.testRunMonitorProcess=this.startTestMonitorProcess(a),this.testRunMonitorProcess.stdout.on("data",f=>{let g=this.parseTRMMessages(f.toString().trim());if(g.length)for(let A of g){if(A.startsWith("trace")){this.logTRMMessage(A),this.handleTestRunMonitorTrace(A.substring("trace".length+1));continue}if(!A.startsWith("monitor")){this.logTRMMessage(A);continue}let E=e(()=>{let Q=A.substring("monitor".length+1),R=Q.indexOf("=");if(R===-1)return{key:Q,value:""};let[W,q]=[Q.substring(0,R),Q.substring(R+1)];return{key:W,value:q}},"getKeyAndValue"),{key:D,value:F}=E();if(!Object.values(ftr).includes(D)){this.logTRMMessage(`Received unknown monitor message: "${A}"`);continue}let P=D;this.logInterProcessEventMessage(P,F),D==="port"?u(F):this.handleTestRunMonitorMessage(P,F)}}),this.testRunMonitorProcess.on("exit",(f,g)=>{let A=`test run monitor process exited with code ${f} and signal ${g}`;this.testSuiteAnalytics.testRunMonitorError({error:A}),this.log(A)}),this.testRunMonitorProcess.stderr.on("data",f=>{let g=`TRM Error: ${f.toString().substring(0,300)}`;this.testSuiteAnalytics.testRunMonitorError({error:g}),this.log(g)}),this.testRunMonitorProcess.on("error",f=>{let g=`Error starting test run monitor: ${f.message}`;this.testSuiteAnalytics.testRunMonitorError({error:g}),this.log(g)})})}logInterProcessEventMessage(a,u){e(()=>{if(!this.logFilter[a])return!0;if(this.logFilter[a].logOnValueChange&&this.logFilter[a].value!==u)return this.logFilter[a].value=u,!0;if(this.logFilter[a].logEveryMS){let g=Date.now();if(g-this.logFilter[a].lastLogTimestamp>=this.logFilter[a].logEveryMS)return this.logFilter[a].lastLogTimestamp=g,!0}return!1},"shouldLog")()&&this.logTRMMessage(`Received monitor message: "${a}${u?`=${u}`:""}"`)}parseTRMMessages(a){let u=this.trmMessagesBuffer+a,f,g,A=e(()=>{f=u.indexOf("{trm}"),g=u.indexOf("{/trm}")},"findIndexes");A();let E=[];for(;f!==-1&&g!==-1&&g>f;){if(E.push(u.substring(f+"{trm}".length,g)),u=u.slice(g+"{/trm}".length).trim(),u.length&&!u.startsWith("{trm}"))return console.warn("Buffered data does not start with start delimiter",u),this.trmMessagesBuffer="",E;this.trmMessagesBuffer=u,A()}return E}setChecksumTestMetadata(a){let{retry:u,type:f,pwTestId:g}=a;this.playwrightIdToReportMetadata[g]||(this.playwrightIdToReportMetadata[g]={}),this.playwrightIdToReportMetadata[g][u]||(this.playwrightIdToReportMetadata[g][u]={}),this.playwrightIdToReportMetadata[g][u][f]=a}async handleTestRunMonitorTrace(a){let u=a.indexOf("="),[f,g]=u>-1?[a.substring(0,u),a.substring(u+1)]:[a,""];if(!Object.values(V6t).includes(f)){eS("Unknown trace event",f);return}try{let A=g?JSON.parse(g):{};switch(f){case"Upload Start":this.testSuiteAnalytics.uploadStart({filename:A.filename});break;case"Upload Complete":this.testSuiteAnalytics.uploadComplete({filename:A.filename});break;case"Upload Failed":this.testSuiteAnalytics.uploadFailed({filename:A.filename,error:A.error});break;case"Trace Processing Error":this.testSuiteAnalytics.traceProcessingError({error:A.error});break}}catch(A){eS(`Error parsing trace payload, ${A.message}`)}}async handleTestRunMonitorMessage(a,u){var f;switch(a){case"uploads-complete-with-errors":console.log("Error uploading test files to Checksum");try{let A=JSON.parse(u);this.testSuiteAnalytics.uploadsCompleteWithErrors(A)}catch{}this.sendProcessingError().then(()=>{this.completeIndicators.upload=!0});break;case"checksumTestMetadata":try{let A=JSON.parse(u);this.setChecksumTestMetadata(A)}catch(A){let E=`Error parsing test metadata event - ${A.message}`;this.testSuiteAnalytics.testSuiteError({error:E}),this.log(E)}break;case"uploads-complete":this.isolationMode||console.log("Test files uploaded successfully"),this.testSuiteAnalytics.allUploadsComplete(),this.sendUploadsComplete().then(()=>{this.completeIndicators.upload=!0});break;case"report-complete":{if(this.isolationMode){this.completeIndicators.report=!0;break}let A=u.slice(0,u.indexOf(":"))==="true",E=u.slice(u.indexOf(":")+1),D=this.handleStats(E);if(this.testSuiteAnalytics.testSuiteEnd({passed:D.passed,failed:D.failed,bug:D.bug,total:((f=D.tests)==null?void 0:f.length)||0}),await this.sendTestRunEnd(D),this.completeIndicators.report=!0,A){let F=`${this.checksumAppUrl}/#/test-runs/${this.testSuiteRunId}`,P=`Checksum report URL: ${F}`,Q="*".repeat(P.length);console.log(`${Q}
1611
1611
  ${P}
1612
1612
  ${Q}`),this.testSuiteAnalytics.reportComplete({stats:D,reportUrl:F})}else this.testSuiteAnalytics.testSuiteError({error:"An error occurred while uploading the test report to Checksum"}),this.testSuiteAnalytics.reportUploadError(),console.log("An error occurred while uploading the test report to Checksum");break}case"upload-progress":{if(this.isolationMode)break;let A=parseInt(u);(A<this.uploadProgress||A>=this.uploadProgress+10||A===100&&this.uploadProgress!==100)&&(this.uploadProgress=A,console.log(`[ Uploads progress: ${this.uploadProgress}% ]`))}break;case"log":console.log(u);break;case"log-memory-usage":try{let A=JSON.parse(u);this.logMemoryUsage("Child Process Request",A)}catch(A){console.log(`Error parsing memory usage data: ${A.message}`)}break;case"trace":let g=u;if(!Object.values(V6t).includes(g))return;this.testSuiteAnalytics.genericEvent(g);break;case"playwrightConfig":try{this.playwrightConfig||(this.playwrightConfig=JSON.parse(u),this.testSuiteAnalytics.playwrightConfig({config:this.playwrightConfig}),this.loadPlaywrightConfigOptions())}catch(A){let E=`Error parsing playwright config - ${A.message}`;this.testSuiteAnalytics.playwrightConfigError({error:E}),this.log(E)}break;default:this.testSuiteAnalytics.testRunMonitorError({error:`Unhandled test run monitor message: ${a}=${u}`}),this.log(`Unhandled test run monitor message: ${a}=${u}`)}}handleStats(a){let u={};try{a&&a.length>0?(u=JSON.parse(a),u.tests=u.tests.map(f=>{let g=this.playwrightIdToReportMetadata[f.playwrightTestId];if(!g)return f;let A=!1,E=!1,D=[];return Object.keys(g??{}).forEach(F=>{var P;if(g[F]){let Q=g[F].autoRecoveryMetadata;A=Q!=null&&Q.data.autoRecoveryTriggered?!0:A,E=Q!=null&&Q.data.autoRecovered?!0:E;let R=g[F].autoRecoverySummaries;(P=R==null?void 0:R.data)!=null&&P.length&&D.push(...R.data)}}),{...f,autoRecovered:E,autoRecoveryTriggered:A,autoRecoverySummaries:D}})):(this.testSuiteAnalytics.testSuiteError({error:"No stats received from test run monitor"}),eS("No stats received from test run monitor"))}catch(f){this.testSuiteAnalytics.testSuiteError({error:`Error parsing stats - ${f.message}`}),this.log(`Error parsing stats - ${f.message}`)}return u}async handleCompleteMessage(){let a=Date.now(),u=12;for(;;){if(Date.now()-a>this.MAX_COMPLETION_WAIT){console.log("Warning: Checksum wasn't able to upload all test assets or expected a file the couldn't be found. This might cause issues when viewing the report/trace."),this.testSuiteAnalytics.runtimeTimeout(),this.shutdown(1);return}if(Object.keys(this.completeIndicators).find(f=>!this.completeIndicators[f]))eS(this.completeIndicators),--u===0&&(this.testSuiteAnalytics.completionStatus({stats:this.completeIndicators}),u=12),await _5(5e3);else{this.testSuiteAnalytics.runtimeComplete(),console.log("Checksum test suite run has completed"),await this.shutdown(this.didFail?1:0);return}}}async shutdown(a=0){await this.cleanup(),process.exit(a)}async cleanup(){await super.cleanup(),this.testRunMonitorProcess&&(this.testRunMonitorProcess.stdin.write("cli:shutdown"),this.testRunMonitorProcess.kill())}async getSession(){let a,u;try{if(!this.config.options.hostReports)return this.setIsolatedMode(),!0;if(u=this.config.apiKey,!u||u==="<API key>"){let F="No API key found in checksum config - please set it in the config file - checksum.config.ts";return this.runtimeTrace(F,"Checksum Config Error"),this.log(F,!0),this.shutdown(1),!1}let f=await this.getEnvInfo(),g=JSON.stringify({...f,isHidden:!!this.config.options.hideReports}),A=await fetch(`${this.config.apiURL}/client-api/test-runs`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json",ChecksumAppCode:u},body:g}),{uuid:E,appName:D}=await A.json();return this.testSuiteRunId=E,f.commit=f.name,f.name=D,this.testSuiteRunInfo={appName:D,commitHash:f.commitHash,envName:f.name,branch:f.branch,testSuiteRunId:E,checksumRuntimeVersion:this.checksumRuntimeVersion},!0}catch(f){let g=`Error connecting to Checksum, the report will not be hosted - ${f.message}`;return this.runtimeTrace(g,"Test Suite Init Error"),this.log(g),this.setIsolatedMode(),!0}}setIsolatedMode(){this.testSuiteRunId=process.env.CHECKSUM_TEST_SUITE_ID||(0,fvr.randomUUID)(),this.isolationMode=!0,this.completeIndicators.upload=!0,zy.testRun.monitoring.segment.debugAnalytics?this.testSuiteRunInfo=XVr(this.checksumRuntimeVersion,this.testSuiteRunId):this.testSuiteRunInfo=YVr(this.checksumRuntimeVersion,this.testSuiteRunId)}async sendTestRunEnd(a){if(!this.isolationMode)try{let u="{}";try{u=JSON.stringify({...a,endedAt:Date.now()})}catch(f){this.testSuiteAnalytics.testSuiteError({error:`Error stringifying stats ${f.message}`}),this.log(`Error stringifying stats ${f.message}`,!0)}await this.updateTestRun(`${this.config.apiURL}/client-api/test-runs/${this.testSuiteRunId}`,"PATCH",u)}catch(u){return this.testSuiteAnalytics.testSuiteError({error:`Error sending test run end ${u.message}`}),this.log(`Error sending test run end ${u.message}`,!0),null}}async sendUploadsComplete(){if(!this.isolationMode)try{await this.updateTestRun(`${this.config.apiURL}/client-api/test-runs/${this.testSuiteRunId}/uploads-completed`,"PATCH")}catch(a){this.testSuiteAnalytics.testSuiteError({error:`Error sending test run uploads complete - ${a.message}`}),this.log(`Error sending test run uploads complete - ${a.message}`,!0)}}async sendProcessingError(){if(!this.isolationMode)try{await this.updateTestRun(`${this.config.apiURL}/client-api/test-runs/${this.testSuiteRunId}/process-error`,"PATCH")}catch(a){this.testSuiteAnalytics.testSuiteError({error:`Error sending test run processing error - ${a.message}`}),this.log(`Error sending test run processing error - ${a.message}`,!0)}}async updateTestRun(a,u,f=void 0){let g=await fetch(a,{method:u,headers:{Accept:"application/json","Content-Type":"application/json",ChecksumAppCode:this.config.apiKey},body:f});return eS("Received update test run response from url:",a),await this.logApiResponse(g),g}async logApiResponse(a){try{if(!a.ok){let{status:f,statusText:g}=a,A=await a.text();this.testSuiteAnalytics.testSuiteError({status:f,statusText:g,error:A});return}a.headers.get("Content-Type").includes("application/json")?a.json().then(f=>{eS("API Response:",f)}):a.text().then(f=>{eS("API Response:",f)})}catch(u){this.testSuiteAnalytics.testSuiteError({error:`Error logging API response - ${u.message}`})}}logTRMMessage(a){(Array.isArray(a)?a:[a]).forEach(u=>{eS("[trm]",u)})}};e(dvr,"TestsRunner");var qXe=dvr;var _vr=class _vr extends aP{constructor(n,a=!1){super(n,a)}async run(n){switch(n){default:console.log(`
1613
1613
  Checksum CLI
package/index.js CHANGED
@@ -1814,7 +1814,7 @@ ${pe}${oe}${_e}${_Bn.default.cursorHide}`});var Wqt=pd(require("child_process"))
1814
1814
  `,$0a=F_t.encode(B4e),V0a=2,hjr=class hjr{constructor(t,r){let{escapeName:a}=this.constructor,o=dp.isString(r),c=`Content-Disposition: form-data; name="${a(t)}"${!o&&r.name?`; filename="${a(r.name)}"`:""}${B4e}`;o?r=F_t.encode(String(r).replace(/\r?\n|\r\n?/g,B4e)):c+=`Content-Type: ${r.type||"application/octet-stream"}${B4e}`,this.headers=F_t.encode(c+B4e),this.contentLength=o?r.byteLength:r.size,this.size=this.headers.byteLength+this.contentLength+V0a,this.name=t,this.value=r}async*encode(){yield this.headers;let{value:t}=this;dp.isTypedArray(t)?yield t:yield*kQt(t),yield $0a}static escapeName(t){return String(t).replace(/[\r\n"]/g,r=>({"\r":"%0D","\n":"%0A",'"':"%22"})[r])}};e(hjr,"FormDataPart");var mjr=hjr,J0a=e((i,t,r)=>{let{tag:a="form-data-boundary",size:o=25,boundary:c=a+"-"+dp.generateString(o,Q0a)}=r||{};if(!dp.isFormData(i))throw TypeError("FormData instance required");if(c.length<1||c.length>70)throw Error("boundary must be 10-70 characters long");let f=F_t.encode("--"+c+B4e),m=F_t.encode("--"+c+"--"+B4e+B4e),b=m.byteLength,C=Array.from(i.entries()).map(([k,I])=>{let R=new mjr(k,I);return b+=R.size,R});b+=f.byteLength*C.length,b=dp.toFiniteNumber(b);let S={"Content-Type":`multipart/form-data; boundary=${c}`};return Number.isFinite(b)&&(S["Content-Length"]=b),t&&t(S),LLn.Readable.from(async function*(){for(let k of C)yield f,yield*k.encode();yield m}())},"formDataToStream"),MLn=J0a;var jLn=pd(require("stream"),1);var yjr=class yjr extends jLn.default.Transform{__transform(t,r,a){this.push(t),a()}_transform(t,r,a){if(t.length!==0&&(this._transform=this.__transform,t[0]!==120)){let o=Buffer.alloc(2);o[0]=120,o[1]=156,this.push(o,r)}this.__transform(t,r,a)}};e(yjr,"ZlibHeaderTransformStream");var gjr=yjr,ULn=gjr;var z0a=e((i,t)=>dp.isAsyncFn(i)?function(...r){let a=r.pop();i.apply(this,r).then(o=>{try{t?a(null,...t(o)):a(null,o)}catch(c){a(c)}},a)}:i,"callbackify"),qLn=z0a;function W0a(i,t){i=i||10;let r=new Array(i),a=new Array(i),o=0,c=0,f;return t=t!==void 0?t:1e3,e(function(b){let C=Date.now(),S=a[c];f||(f=C),r[o]=b,a[o]=C;let k=c,I=0;for(;k!==o;)I+=r[k++],k=k%i;if(o=(o+1)%i,o===c&&(c=(c+1)%i),C-f<t)return;let R=S&&C-S;return R?Math.round(I*1e3/R):void 0},"push")}e(W0a,"speedometer");var QLn=W0a;function H0a(i,t){let r=0,a=1e3/t,o,c,f=e((C,S=Date.now())=>{r=S,o=null,c&&(clearTimeout(c),c=null),i.apply(null,C)},"invoke");return[e((...C)=>{let S=Date.now(),k=S-r;k>=a?f(C,S):(o=C,c||(c=setTimeout(()=>{c=null,f(o)},a-k)))},"throttled"),e(()=>o&&f(o),"flush")]}e(H0a,"throttle");var $Ln=H0a;var jve=e((i,t,r=3)=>{let a=0,o=QLn(50,250);return $Ln(c=>{let f=c.loaded,m=c.lengthComputable?c.total:void 0,b=f-a,C=o(b),S=f<=m;a=f;let k={loaded:f,total:m,progress:m?f/m:void 0,bytes:b,rate:C||void 0,estimated:C&&m&&S?(m-f)/C:void 0,event:c,lengthComputable:m!=null,[t?"download":"upload"]:!0};i(k)},r)},"progressEventReducer"),Yze=e((i,t)=>{let r=i!=null;return[a=>t[0]({lengthComputable:r,total:i,loaded:a}),t[1]]},"progressEventDecorator"),Xze=e(i=>(...t)=>dp.asap(()=>i(...t)),"asyncDecorator");var VLn={flush:Uve.default.constants.Z_SYNC_FLUSH,finishFlush:Uve.default.constants.Z_SYNC_FLUSH},G0a={flush:Uve.default.constants.BROTLI_OPERATION_FLUSH,finishFlush:Uve.default.constants.BROTLI_OPERATION_FLUSH},JLn=dp.isFunction(Uve.default.createBrotliDecompress),{http:K0a,https:Y0a}=ZLn.default,X0a=/https:?/,zLn=t4.protocols.map(i=>i+":"),WLn=e((i,[t,r])=>(i.on("end",r).on("error",r),t),"flushOnFinish");function Z0a(i,t){i.beforeRedirects.proxy&&i.beforeRedirects.proxy(i),i.beforeRedirects.config&&i.beforeRedirects.config(i,t)}e(Z0a,"dispatchBeforeRedirect");function tMn(i,t,r){let a=t;if(!a&&a!==!1){let o=GLn.default.getProxyForUrl(r);o&&(a=new URL(o))}if(a){if(a.username&&(a.auth=(a.username||"")+":"+(a.password||"")),a.auth){(a.auth.username||a.auth.password)&&(a.auth=(a.auth.username||"")+":"+(a.auth.password||""));let c=Buffer.from(a.auth,"utf8").toString("base64");i.headers["Proxy-Authorization"]="Basic "+c}i.headers.host=i.hostname+(i.port?":"+i.port:"");let o=a.hostname||a.host;i.hostname=o,i.host=o,i.port=a.port,i.path=r,a.protocol&&(i.protocol=a.protocol.includes(":")?a.protocol:`${a.protocol}:`)}i.beforeRedirects.proxy=e(function(c){tMn(c,t,c.href)},"beforeRedirect")}e(tMn,"setProxy");var e_a=typeof process<"u"&&dp.kindOf(process)==="process",t_a=e(i=>new Promise((t,r)=>{let a,o,c=e((b,C)=>{o||(o=!0,a&&a(b,C))},"done"),f=e(b=>{c(b),t(b)},"_resolve"),m=e(b=>{c(b,!0),r(b)},"_reject");i(f,m,b=>a=b).catch(m)}),"wrapAsync"),r_a=e(({address:i,family:t})=>{if(!dp.isString(i))throw TypeError("address must be a string");return{address:i,family:t||(i.indexOf(".")<0?6:4)}},"resolveFamily"),HLn=e((i,t)=>r_a(dp.isObject(i)?i:{address:i,family:t}),"buildAddressEntry"),rMn=e_a&&e(function(t){return t_a(e(async function(a,o,c){let{data:f,lookup:m,family:b}=t,{responseType:C,responseEncoding:S}=t,k=t.method.toUpperCase(),I,R=!1,B;if(m){let Ue=qLn(m,Nt=>dp.isArray(Nt)?Nt:[Nt]);m=e((Nt,At,Vt)=>{Ue(Nt,At,(pr,Cr,Ct)=>{if(pr)return Vt(pr);let gi=dp.isArray(Cr)?Cr.map(Tn=>HLn(Tn)):[HLn(Cr,Ct)];At.all?Vt(pr,gi):Vt(pr,gi[0].address,gi[0].family)})},"lookup")}let $=new eMn.EventEmitter,W=e(()=>{t.cancelToken&&t.cancelToken.unsubscribe(re),t.signal&&t.signal.removeEventListener("abort",re),$.removeAllListeners()},"onFinished");c((Ue,Nt)=>{I=!0,Nt&&(R=!0,W())});function re(Ue){$.emit("abort",!Ue||Ue.type?new yZ(null,t,B):Ue)}e(re,"abort"),$.once("abort",o),(t.cancelToken||t.signal)&&(t.cancelToken&&t.cancelToken.subscribe(re),t.signal&&(t.signal.aborted?re():t.signal.addEventListener("abort",re)));let oe=sPe(t.baseURL,t.url),pe=new URL(oe,t4.hasBrowserEnv?t4.origin:void 0),_e=pe.protocol||zLn[0];if(_e==="data:"){let Ue;if(k!=="GET")return Y_e(a,o,{status:405,statusText:"method not allowed",headers:{},config:t});try{Ue=ljr(t.url,C==="blob",{Blob:t.env&&t.env.Blob})}catch(Nt){throw F1.from(Nt,F1.ERR_BAD_REQUEST,t)}return C==="text"?(Ue=Ue.toString(S),(!S||S==="utf8")&&(Ue=dp.stripBOM(Ue))):C==="stream"&&(Ue=lPe.default.Readable.from(Ue)),Y_e(a,o,{data:Ue,status:200,statusText:"OK",headers:new zT,config:t})}if(zLn.indexOf(_e)===-1)return o(new F1("Unsupported protocol "+_e,F1.ERR_BAD_REQUEST,t));let Ee=zT.from(t.headers).normalize();Ee.set("User-Agent","axios/"+cPe,!1);let{onUploadProgress:Pe,onDownloadProgress:je}=t,Fe=t.maxRate,Re,ct;if(dp.isSpecCompliantForm(f)){let Ue=Ee.getContentType(/boundary=([-_\w\d]{10,70})/i);f=MLn(f,Nt=>{Ee.set(Nt)},{tag:`axios-${cPe}-boundary`,boundary:Ue&&Ue[1]||void 0})}else if(dp.isFormData(f)&&dp.isFunction(f.getHeaders)){if(Ee.set(f.getHeaders()),!Ee.hasContentLength())try{let Ue=await XLn.default.promisify(f.getLength).call(f);Number.isFinite(Ue)&&Ue>=0&&Ee.setContentLength(Ue)}catch{}}else if(dp.isBlob(f)||dp.isFile(f))f.size&&Ee.setContentType(f.type||"application/octet-stream"),Ee.setContentLength(f.size||0),f=lPe.default.Readable.from(kQt(f));else if(f&&!dp.isStream(f)){if(!Buffer.isBuffer(f))if(dp.isArrayBuffer(f))f=Buffer.from(new Uint8Array(f));else if(dp.isString(f))f=Buffer.from(f,"utf-8");else return o(new F1("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",F1.ERR_BAD_REQUEST,t));if(Ee.setContentLength(f.length,!1),t.maxBodyLength>-1&&f.length>t.maxBodyLength)return o(new F1("Request body larger than maxBodyLength limit",F1.ERR_BAD_REQUEST,t))}let Le=dp.toFiniteNumber(Ee.getContentLength());dp.isArray(Fe)?(Re=Fe[0],ct=Fe[1]):Re=ct=Fe,f&&(Pe||Re)&&(dp.isStream(f)||(f=lPe.default.Readable.from(f,{objectMode:!1})),f=lPe.default.pipeline([f,new djr({maxRate:dp.toFiniteNumber(Re)})],dp.noop),Pe&&f.on("progress",WLn(f,Yze(Le,jve(Xze(Pe),!1,3)))));let Ve;if(t.auth){let Ue=t.auth.username||"",Nt=t.auth.password||"";Ve=Ue+":"+Nt}if(!Ve&&pe.username){let Ue=pe.username,Nt=pe.password;Ve=Ue+":"+Nt}Ve&&Ee.delete("authorization");let Qe;try{Qe=aPe(pe.pathname+pe.search,t.params,t.paramsSerializer).replace(/^\?/,"")}catch(Ue){let Nt=new Error(Ue.message);return Nt.config=t,Nt.url=t.url,Nt.exists=!0,o(Nt)}Ee.set("Accept-Encoding","gzip, compress, deflate"+(JLn?", br":""),!1);let $e={path:Qe,method:k,headers:Ee.toJSON(),agents:{http:t.httpAgent,https:t.httpsAgent},auth:Ve,protocol:_e,family:b,beforeRedirect:Z0a,beforeRedirects:{}};!dp.isUndefined(m)&&($e.lookup=m),t.socketPath?$e.socketPath=t.socketPath:($e.hostname=pe.hostname.startsWith("[")?pe.hostname.slice(1,-1):pe.hostname,$e.port=pe.port,tMn($e,t.proxy,_e+"//"+pe.hostname+(pe.port?":"+pe.port:"")+$e.path));let We,tt=X0a.test($e.protocol);if($e.agent=tt?t.httpsAgent:t.httpAgent,t.transport?We=t.transport:t.maxRedirects===0?We=tt?YLn.default:KLn.default:(t.maxRedirects&&($e.maxRedirects=t.maxRedirects),t.beforeRedirect&&($e.beforeRedirects.config=t.beforeRedirect),We=tt?Y0a:K0a),t.maxBodyLength>-1?$e.maxBodyLength=t.maxBodyLength:$e.maxBodyLength=1/0,t.insecureHTTPParser&&($e.insecureHTTPParser=t.insecureHTTPParser),B=We.request($e,e(function(Nt){if(B.destroyed)return;let At=[Nt],Vt=+Nt.headers["content-length"];if(je||ct){let Tn=new djr({maxRate:dp.toFiniteNumber(ct)});je&&Tn.on("progress",WLn(Tn,Yze(Vt,jve(Xze(je),!0,3)))),At.push(Tn)}let pr=Nt,Cr=Nt.req||B;if(t.decompress!==!1&&Nt.headers["content-encoding"])switch((k==="HEAD"||Nt.statusCode===204)&&delete Nt.headers["content-encoding"],(Nt.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":At.push(Uve.default.createUnzip(VLn)),delete Nt.headers["content-encoding"];break;case"deflate":At.push(new ULn),At.push(Uve.default.createUnzip(VLn)),delete Nt.headers["content-encoding"];break;case"br":JLn&&(At.push(Uve.default.createBrotliDecompress(G0a)),delete Nt.headers["content-encoding"])}pr=At.length>1?lPe.default.pipeline(At,dp.noop):At[0];let Ct=lPe.default.finished(pr,()=>{Ct(),W()}),gi={status:Nt.statusCode,statusText:Nt.statusMessage,headers:new zT(Nt.headers),config:t,request:Cr};if(C==="stream")gi.data=pr,Y_e(a,o,gi);else{let Tn=[],or=0;pr.on("data",e(function(An){Tn.push(An),or+=An.length,t.maxContentLength>-1&&or>t.maxContentLength&&(R=!0,pr.destroy(),o(new F1("maxContentLength size of "+t.maxContentLength+" exceeded",F1.ERR_BAD_RESPONSE,t,Cr)))},"handleStreamData")),pr.on("aborted",e(function(){if(R)return;let An=new F1("stream has been aborted",F1.ERR_BAD_RESPONSE,t,Cr);pr.destroy(An),o(An)},"handlerStreamAborted")),pr.on("error",e(function(An){B.destroyed||o(F1.from(An,null,t,Cr))},"handleStreamError")),pr.on("end",e(function(){try{let An=Tn.length===1?Tn[0]:Buffer.concat(Tn);C!=="arraybuffer"&&(An=An.toString(S),(!S||S==="utf8")&&(An=dp.stripBOM(An))),gi.data=An}catch(An){return o(F1.from(An,null,t,gi.request,gi))}Y_e(a,o,gi)},"handleStreamEnd"))}$.once("abort",Tn=>{pr.destroyed||(pr.emit("error",Tn),pr.destroy())})},"handleResponse")),$.once("abort",Ue=>{o(Ue),B.destroy(Ue)}),B.on("error",e(function(Nt){o(F1.from(Nt,null,t,B))},"handleRequestError")),B.on("socket",e(function(Nt){Nt.setKeepAlive(!0,1e3*60)},"handleRequestSocket")),t.timeout){let Ue=parseInt(t.timeout,10);if(Number.isNaN(Ue)){o(new F1("error trying to parse `config.timeout` to int",F1.ERR_BAD_OPTION_VALUE,t,B));return}B.setTimeout(Ue,e(function(){if(I)return;let At=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded",Vt=t.transitional||Wze;t.timeoutErrorMessage&&(At=t.timeoutErrorMessage),o(new F1(At,Vt.clarifyTimeoutError?F1.ETIMEDOUT:F1.ECONNABORTED,t,B)),re()},"handleRequestTimeout"))}if(dp.isStream(f)){let Ue=!1,Nt=!1;f.on("end",()=>{Ue=!0}),f.once("error",At=>{Nt=!0,B.destroy(At)}),f.on("close",()=>{!Ue&&!Nt&&re(new yZ("Request stream has been aborted",t,B))}),f.pipe(B)}else B.end(f)},"dispatchHttpRequest"))},"httpAdapter");var nMn=t4.hasStandardBrowserEnv?((i,t)=>r=>(r=new URL(r,t4.origin),i.protocol===r.protocol&&i.host===r.host&&(t||i.port===r.port)))(new URL(t4.origin),t4.navigator&&/(msie|trident)/i.test(t4.navigator.userAgent)):()=>!0;var iMn=t4.hasStandardBrowserEnv?{write(i,t,r,a,o,c){let f=[i+"="+encodeURIComponent(t)];dp.isNumber(r)&&f.push("expires="+new Date(r).toGMTString()),dp.isString(a)&&f.push("path="+a),dp.isString(o)&&f.push("domain="+o),c===!0&&f.push("secure"),document.cookie=f.join("; ")},read(i){let t=document.cookie.match(new RegExp("(^|;\\s*)("+i+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(i){this.write(i,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};var aMn=e(i=>i instanceof zT?{...i}:i,"headersToObject");function kce(i,t){t=t||{};let r={};function a(C,S,k,I){return dp.isPlainObject(C)&&dp.isPlainObject(S)?dp.merge.call({caseless:I},C,S):dp.isPlainObject(S)?dp.merge({},S):dp.isArray(S)?S.slice():S}e(a,"getMergedValue");function o(C,S,k,I){if(dp.isUndefined(S)){if(!dp.isUndefined(C))return a(void 0,C,k,I)}else return a(C,S,k,I)}e(o,"mergeDeepProperties");function c(C,S){if(!dp.isUndefined(S))return a(void 0,S)}e(c,"valueFromConfig2");function f(C,S){if(dp.isUndefined(S)){if(!dp.isUndefined(C))return a(void 0,C)}else return a(void 0,S)}e(f,"defaultToConfig2");function m(C,S,k){if(k in t)return a(C,S);if(k in i)return a(void 0,C)}e(m,"mergeDirectKeys");let b={url:c,method:c,data:c,baseURL:f,transformRequest:f,transformResponse:f,paramsSerializer:f,timeout:f,timeoutMessage:f,withCredentials:f,withXSRFToken:f,adapter:f,responseType:f,xsrfCookieName:f,xsrfHeaderName:f,onUploadProgress:f,onDownloadProgress:f,decompress:f,maxContentLength:f,maxBodyLength:f,beforeRedirect:f,transport:f,httpAgent:f,httpsAgent:f,cancelToken:f,socketPath:f,responseEncoding:f,validateStatus:m,headers:e((C,S,k)=>o(aMn(C),aMn(S),k,!0),"headers")};return dp.forEach(Object.keys(Object.assign({},i,t)),e(function(S){let k=b[S]||o,I=k(i[S],t[S],S);dp.isUndefined(I)&&k!==m||(r[S]=I)},"computeConfigValue")),r}e(kce,"mergeConfig");var IQt=e(i=>{let t=kce({},i),{data:r,withXSRFToken:a,xsrfHeaderName:o,xsrfCookieName:c,headers:f,auth:m}=t;t.headers=f=zT.from(f),t.url=aPe(sPe(t.baseURL,t.url),i.params,i.paramsSerializer),m&&f.set("Authorization","Basic "+btoa((m.username||"")+":"+(m.password?unescape(encodeURIComponent(m.password)):"")));let b;if(dp.isFormData(r)){if(t4.hasStandardBrowserEnv||t4.hasStandardBrowserWebWorkerEnv)f.setContentType(void 0);else if((b=f.getContentType())!==!1){let[C,...S]=b?b.split(";").map(k=>k.trim()).filter(Boolean):[];f.setContentType([C||"multipart/form-data",...S].join("; "))}}if(t4.hasStandardBrowserEnv&&(a&&dp.isFunction(a)&&(a=a(t)),a||a!==!1&&nMn(t.url))){let C=o&&c&&iMn.read(c);C&&f.set(o,C)}return t},"default");var n_a=typeof XMLHttpRequest<"u",sMn=n_a&&function(i){return new Promise(e(function(r,a){let o=IQt(i),c=o.data,f=zT.from(o.headers).normalize(),{responseType:m,onUploadProgress:b,onDownloadProgress:C}=o,S,k,I,R,B;function $(){R&&R(),B&&B(),o.cancelToken&&o.cancelToken.unsubscribe(S),o.signal&&o.signal.removeEventListener("abort",S)}e($,"done");let W=new XMLHttpRequest;W.open(o.method.toUpperCase(),o.url,!0),W.timeout=o.timeout;function re(){if(!W)return;let pe=zT.from("getAllResponseHeaders"in W&&W.getAllResponseHeaders()),Ee={data:!m||m==="text"||m==="json"?W.responseText:W.response,status:W.status,statusText:W.statusText,headers:pe,config:i,request:W};Y_e(e(function(je){r(je),$()},"_resolve"),e(function(je){a(je),$()},"_reject"),Ee),W=null}e(re,"onloadend"),"onloadend"in W?W.onloadend=re:W.onreadystatechange=e(function(){!W||W.readyState!==4||W.status===0&&!(W.responseURL&&W.responseURL.indexOf("file:")===0)||setTimeout(re)},"handleLoad"),W.onabort=e(function(){W&&(a(new F1("Request aborted",F1.ECONNABORTED,i,W)),W=null)},"handleAbort"),W.onerror=e(function(){a(new F1("Network Error",F1.ERR_NETWORK,i,W)),W=null},"handleError"),W.ontimeout=e(function(){let _e=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded",Ee=o.transitional||Wze;o.timeoutErrorMessage&&(_e=o.timeoutErrorMessage),a(new F1(_e,Ee.clarifyTimeoutError?F1.ETIMEDOUT:F1.ECONNABORTED,i,W)),W=null},"handleTimeout"),c===void 0&&f.setContentType(null),"setRequestHeader"in W&&dp.forEach(f.toJSON(),e(function(_e,Ee){W.setRequestHeader(Ee,_e)},"setRequestHeader")),dp.isUndefined(o.withCredentials)||(W.withCredentials=!!o.withCredentials),m&&m!=="json"&&(W.responseType=o.responseType),C&&([I,B]=jve(C,!0),W.addEventListener("progress",I)),b&&W.upload&&([k,R]=jve(b),W.upload.addEventListener("progress",k),W.upload.addEventListener("loadend",R)),(o.cancelToken||o.signal)&&(S=e(pe=>{W&&(a(!pe||pe.type?new yZ(null,i,W):pe),W.abort(),W=null)},"onCanceled"),o.cancelToken&&o.cancelToken.subscribe(S),o.signal&&(o.signal.aborted?S():o.signal.addEventListener("abort",S)));let oe=P_t(o.url);if(oe&&t4.protocols.indexOf(oe)===-1){a(new F1("Unsupported protocol "+oe+":",F1.ERR_BAD_REQUEST,i));return}W.send(c||null)},"dispatchXhrRequest"))};var i_a=e((i,t)=>{let{length:r}=i=i?i.filter(Boolean):[];if(t||r){let a=new AbortController,o,c=e(function(C){if(!o){o=!0,m();let S=C instanceof Error?C:this.reason;a.abort(S instanceof F1?S:new yZ(S instanceof Error?S.message:S))}},"onabort"),f=t&&setTimeout(()=>{f=null,c(new F1(`timeout ${t} of ms exceeded`,F1.ETIMEDOUT))},t),m=e(()=>{i&&(f&&clearTimeout(f),f=null,i.forEach(C=>{C.unsubscribe?C.unsubscribe(c):C.removeEventListener("abort",c)}),i=null)},"unsubscribe");i.forEach(C=>C.addEventListener("abort",c));let{signal:b}=a;return b.unsubscribe=()=>dp.asap(m),b}},"composeSignals"),oMn=i_a;var a_a=e(function*(i,t){let r=i.byteLength;if(!t||r<t){yield i;return}let a=0,o;for(;a<r;)o=a+t,yield i.slice(a,o),a=o},"streamChunk"),s_a=e(async function*(i,t){for await(let r of o_a(i))yield*a_a(r,t)},"readBytes"),o_a=e(async function*(i){if(i[Symbol.asyncIterator]){yield*i;return}let t=i.getReader();try{for(;;){let{done:r,value:a}=await t.read();if(r)break;yield a}}finally{await t.cancel()}},"readStream"),vjr=e((i,t,r,a)=>{let o=s_a(i,t),c=0,f,m=e(b=>{f||(f=!0,a&&a(b))},"_onFinish");return new ReadableStream({async pull(b){try{let{done:C,value:S}=await o.next();if(C){m(),b.close();return}let k=S.byteLength;if(r){let I=c+=k;r(I)}b.enqueue(new Uint8Array(S))}catch(C){throw m(C),C}},cancel(b){return m(b),o.return()}},{highWaterMark:2})},"trackStream");var FQt=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",cMn=FQt&&typeof ReadableStream=="function",u_a=FQt&&(typeof TextEncoder=="function"?(i=>t=>i.encode(t))(new TextEncoder):async i=>new Uint8Array(await new Response(i).arrayBuffer())),lMn=e((i,...t)=>{try{return!!i(...t)}catch{return!1}},"test"),c_a=cMn&&lMn(()=>{let i=!1,t=new Request(t4.origin,{body:new ReadableStream,method:"POST",get duplex(){return i=!0,"half"}}).headers.has("Content-Type");return i&&!t}),uMn=64*1024,bjr=cMn&&lMn(()=>dp.isReadableStream(new Response("").body)),PQt={stream:bjr&&(i=>i.body)};FQt&&(i=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!PQt[t]&&(PQt[t]=dp.isFunction(i[t])?r=>r[t]():(r,a)=>{throw new F1(`Response type '${t}' is not supported`,F1.ERR_NOT_SUPPORT,a)})})})(new Response);var l_a=e(async i=>{if(i==null)return 0;if(dp.isBlob(i))return i.size;if(dp.isSpecCompliantForm(i))return(await new Request(t4.origin,{method:"POST",body:i}).arrayBuffer()).byteLength;if(dp.isArrayBufferView(i)||dp.isArrayBuffer(i))return i.byteLength;if(dp.isURLSearchParams(i)&&(i=i+""),dp.isString(i))return(await u_a(i)).byteLength},"getBodyLength"),p_a=e(async(i,t)=>{let r=dp.toFiniteNumber(i.getContentLength());return r??l_a(t)},"resolveBodyLength"),pMn=FQt&&(async i=>{let{url:t,method:r,data:a,signal:o,cancelToken:c,timeout:f,onDownloadProgress:m,onUploadProgress:b,responseType:C,headers:S,withCredentials:k="same-origin",fetchOptions:I}=IQt(i);C=C?(C+"").toLowerCase():"text";let R=oMn([o,c&&c.toAbortSignal()],f),B,$=R&&R.unsubscribe&&(()=>{R.unsubscribe()}),W;try{if(b&&c_a&&r!=="get"&&r!=="head"&&(W=await p_a(S,a))!==0){let Ee=new Request(t,{method:"POST",body:a,duplex:"half"}),Pe;if(dp.isFormData(a)&&(Pe=Ee.headers.get("content-type"))&&S.setContentType(Pe),Ee.body){let[je,Fe]=Yze(W,jve(Xze(b)));a=vjr(Ee.body,uMn,je,Fe)}}dp.isString(k)||(k=k?"include":"omit");let re="credentials"in Request.prototype;B=new Request(t,{...I,signal:R,method:r.toUpperCase(),headers:S.normalize().toJSON(),body:a,duplex:"half",credentials:re?k:void 0});let oe=await fetch(B),pe=bjr&&(C==="stream"||C==="response");if(bjr&&(m||pe&&$)){let Ee={};["status","statusText","headers"].forEach(Re=>{Ee[Re]=oe[Re]});let Pe=dp.toFiniteNumber(oe.headers.get("content-length")),[je,Fe]=m&&Yze(Pe,jve(Xze(m),!0))||[];oe=new Response(vjr(oe.body,uMn,je,()=>{Fe&&Fe(),$&&$()}),Ee)}C=C||"text";let _e=await PQt[dp.findKey(PQt,C)||"text"](oe,i);return!pe&&$&&$(),await new Promise((Ee,Pe)=>{Y_e(Ee,Pe,{data:_e,headers:zT.from(oe.headers),status:oe.status,statusText:oe.statusText,config:i,request:B})})}catch(re){throw $&&$(),re&&re.name==="TypeError"&&/fetch/i.test(re.message)?Object.assign(new F1("Network Error",F1.ERR_NETWORK,i,B),{cause:re.cause||re}):F1.from(re,re&&re.code,i,B)}});var xjr={http:rMn,xhr:sMn,fetch:pMn};dp.forEach(xjr,(i,t)=>{if(i){try{Object.defineProperty(i,"name",{value:t})}catch{}Object.defineProperty(i,"adapterName",{value:t})}});var fMn=e(i=>`- ${i}`,"renderReason"),f_a=e(i=>dp.isFunction(i)||i===null||i===!1,"isResolvedHandle"),NQt={getAdapter:e(i=>{i=dp.isArray(i)?i:[i];let{length:t}=i,r,a,o={};for(let c=0;c<t;c++){r=i[c];let f;if(a=r,!f_a(r)&&(a=xjr[(f=String(r)).toLowerCase()],a===void 0))throw new F1(`Unknown adapter '${f}'`);if(a)break;o[f||"#"+c]=a}if(!a){let c=Object.entries(o).map(([m,b])=>`adapter ${m} `+(b===!1?"is not supported by the environment":"is not available in the build")),f=t?c.length>1?`since :
1815
1815
  `+c.map(fMn).join(`
1816
1816
  `):" "+fMn(c[0]):"as no adapter specified";throw new F1("There is no suitable adapter to dispatch the request "+f,"ERR_NOT_SUPPORT")}return a},"getAdapter"),adapters:xjr};function Ajr(i){if(i.cancelToken&&i.cancelToken.throwIfRequested(),i.signal&&i.signal.aborted)throw new yZ(null,i)}e(Ajr,"throwIfCancellationRequested");function OQt(i){return Ajr(i),i.headers=zT.from(i.headers),i.data=w_t.call(i,i.transformRequest),["post","put","patch"].indexOf(i.method)!==-1&&i.headers.setContentType("application/x-www-form-urlencoded",!1),NQt.getAdapter(i.adapter||Hze.adapter)(i).then(e(function(a){return Ajr(i),a.data=w_t.call(i,i.transformResponse,a),a.headers=zT.from(a.headers),a},"onAdapterResolution"),e(function(a){return S_t(a)||(Ajr(i),a&&a.response&&(a.response.data=w_t.call(i,i.transformResponse,a.response),a.response.headers=zT.from(a.response.headers))),Promise.reject(a)},"onAdapterRejection"))}e(OQt,"dispatchRequest");var BQt={};["object","boolean","number","function","string","symbol"].forEach((i,t)=>{BQt[i]=e(function(a){return typeof a===i||"a"+(t<1?"n ":" ")+i},"validator")});var dMn={};BQt.transitional=e(function(t,r,a){function o(c,f){return"[Axios v"+cPe+"] Transitional option '"+c+"'"+f+(a?". "+a:"")}return e(o,"formatMessage"),(c,f,m)=>{if(t===!1)throw new F1(o(f," has been removed"+(r?" in "+r:"")),F1.ERR_DEPRECATED);return r&&!dMn[f]&&(dMn[f]=!0,console.warn(o(f," has been deprecated since v"+r+" and will be removed in the near future"))),t?t(c,f,m):!0}},"transitional");BQt.spelling=e(function(t){return(r,a)=>(console.warn(`${a} is likely a misspelling of ${t}`),!0)},"spelling");function d_a(i,t,r){if(typeof i!="object")throw new F1("options must be an object",F1.ERR_BAD_OPTION_VALUE);let a=Object.keys(i),o=a.length;for(;o-- >0;){let c=a[o],f=t[c];if(f){let m=i[c],b=m===void 0||f(m,c,i);if(b!==!0)throw new F1("option "+c+" must be "+b,F1.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new F1("Unknown option "+c,F1.ERR_BAD_OPTION)}}e(d_a,"assertOptions");var N_t={assertOptions:d_a,validators:BQt};var X_e=N_t.validators,Ejr=class Ejr{constructor(t){this.defaults=t,this.interceptors={request:new qMr,response:new qMr}}async request(t,r){try{return await this._request(t,r)}catch(a){if(a instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;let c=o.stack?o.stack.replace(/^.+\n/,""):"";try{a.stack?c&&!String(a.stack).endsWith(c.replace(/^.+\n.+\n/,""))&&(a.stack+=`
1817
- `+c):a.stack=c}catch{}}throw a}}_request(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=kce(this.defaults,r);let{transitional:a,paramsSerializer:o,headers:c}=r;a!==void 0&&N_t.assertOptions(a,{silentJSONParsing:X_e.transitional(X_e.boolean),forcedJSONParsing:X_e.transitional(X_e.boolean),clarifyTimeoutError:X_e.transitional(X_e.boolean)},!1),o!=null&&(dp.isFunction(o)?r.paramsSerializer={serialize:o}:N_t.assertOptions(o,{encode:X_e.function,serialize:X_e.function},!0)),N_t.assertOptions(r,{baseUrl:X_e.spelling("baseURL"),withXsrfToken:X_e.spelling("withXSRFToken")},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let f=c&&dp.merge(c.common,c[r.method]);c&&dp.forEach(["delete","get","head","post","put","patch","common"],B=>{delete c[B]}),r.headers=zT.concat(f,c);let m=[],b=!0;this.interceptors.request.forEach(e(function($){typeof $.runWhen=="function"&&$.runWhen(r)===!1||(b=b&&$.synchronous,m.unshift($.fulfilled,$.rejected))},"unshiftRequestInterceptors"));let C=[];this.interceptors.response.forEach(e(function($){C.push($.fulfilled,$.rejected)},"pushResponseInterceptors"));let S,k=0,I;if(!b){let B=[OQt.bind(this),void 0];for(B.unshift.apply(B,m),B.push.apply(B,C),I=B.length,S=Promise.resolve(r);k<I;)S=S.then(B[k++],B[k++]);return S}I=m.length;let R=r;for(k=0;k<I;){let B=m[k++],$=m[k++];try{R=B(R)}catch(W){$.call(this,W);break}}try{S=OQt.call(this,R)}catch(B){return Promise.reject(B)}for(k=0,I=C.length;k<I;)S=S.then(C[k++],C[k++]);return S}getUri(t){t=kce(this.defaults,t);let r=sPe(t.baseURL,t.url);return aPe(r,t.params,t.paramsSerializer)}};e(Ejr,"Axios");var Zze=Ejr;dp.forEach(["delete","get","head","options"],e(function(t){Zze.prototype[t]=function(r,a){return this.request(kce(a||{},{method:t,url:r,data:(a||{}).data}))}},"forEachMethodNoData"));dp.forEach(["post","put","patch"],e(function(t){function r(a){return e(function(c,f,m){return this.request(kce(m||{},{method:t,headers:a?{"Content-Type":"multipart/form-data"}:{},url:c,data:f}))},"httpMethod")}e(r,"generateHTTPMethod"),Zze.prototype[t]=r(),Zze.prototype[t+"Form"]=r(!0)},"forEachMethodWithData"));var O_t=Zze;var RQt=class RQt{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let r;this.promise=new Promise(e(function(c){r=c},"promiseExecutor"));let a=this;this.promise.then(o=>{if(!a._listeners)return;let c=a._listeners.length;for(;c-- >0;)a._listeners[c](o);a._listeners=null}),this.promise.then=o=>{let c,f=new Promise(m=>{a.subscribe(m),c=m}).then(o);return f.cancel=e(function(){a.unsubscribe(c)},"reject"),f},t(e(function(c,f,m){a.reason||(a.reason=new yZ(c,f,m),r(a.reason))},"cancel"))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;let r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){let t=new AbortController,r=e(a=>{t.abort(a)},"abort");return this.subscribe(r),t.signal.unsubscribe=()=>this.unsubscribe(r),t.signal}static source(){let t;return{token:new RQt(e(function(o){t=o},"executor")),cancel:t}}};e(RQt,"CancelToken");var Cjr=RQt,_Mn=Cjr;function wjr(i){return e(function(r){return i.apply(null,r)},"wrap")}e(wjr,"spread");function Sjr(i){return dp.isObject(i)&&i.isAxiosError===!0}e(Sjr,"isAxiosError");var Djr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Djr).forEach(([i,t])=>{Djr[t]=i});var mMn=Djr;function hMn(i){let t=new O_t(i),r=x_t(O_t.prototype.request,t);return dp.extend(r,O_t.prototype,t,{allOwnKeys:!0}),dp.extend(r,t,null,{allOwnKeys:!0}),r.create=e(function(o){return hMn(kce(i,o))},"create"),r}e(hMn,"createInstance");var rF=hMn(Hze);rF.Axios=O_t;rF.CanceledError=yZ;rF.CancelToken=_Mn;rF.isCancel=S_t;rF.VERSION=cPe;rF.toFormData=O4e;rF.AxiosError=F1;rF.Cancel=rF.CanceledError;rF.all=e(function(t){return Promise.all(t)},"all");rF.spread=wjr;rF.isAxiosError=Sjr;rF.mergeConfig=kce;rF.AxiosHeaders=zT;rF.formToJSON=i=>DQt(dp.isHTMLForm(i)?new FormData(i):i);rF.getAdapter=NQt.getAdapter;rF.HttpStatusCode=mMn;rF.default=rF;var LQt=rF;var{Axios:_xs,AxiosError:mxs,CanceledError:hxs,isCancel:gxs,CancelToken:yxs,VERSION:vxs,all:bxs,Cancel:xxs,isAxiosError:Axs,spread:Exs,toFormData:Cxs,AxiosHeaders:wxs,HttpStatusCode:Sxs,formToJSON:Dxs,getAdapter:Txs,mergeConfig:kxs}=LQt;var eWe=require("fs");var Tjr=class Tjr{constructor(t,r,a,o,c=!1,f={start:e(m=>{},"start"),complete:e(m=>{},"complete"),error:e((m,b)=>{},"error")}){this.apiBaseURL=t;this.apiKey=r;this.uploadTimeout=a;this.makeGetUploadUrlAPIPath=o;this.isolationMode=c;this.reporter=f}logMemoryUsage(t){let r=process.memoryUsage();console.log(`[TestAssetUploader:${t}] Memory:`,{rss:`${Math.round(r.rss/1024/1024)}MB`,heapUsed:`${Math.round(r.heapUsed/1024/1024)}MB`,heapTotal:`${Math.round(r.heapTotal/1024/1024)}MB`})}async uploadAsset(t){if(this.logMemoryUsage("Before upload"),t.uploadStarted=!0,this.isolationMode){t.lastProgress=Date.now(),t.loadedBytes=0,t.sizeBytes=100,t.response=new Promise(o=>{setTimeout(()=>{t.complete=!0,t.lastProgress=Date.now(),t.loadedBytes=100,o({statusCode:200,ok:!0,body:"OK"})},10)});return}let{path:r}=t.info,a=null;try{let c=(0,eWe.statSync)(r).size;if(t.sizeBytes=c,t.loadedBytes=0,t.lastProgress=Date.now(),this.reporter.start(r),await this.getSignedURLForUpload(t),!t.uploadURL){t.error=!0;return}a=(0,eWe.createReadStream)(r);let f=await LQt.put(t.uploadURL,a,{headers:{"Content-Type":Vbn[t.info.type]??"",Connection:"close"},maxBodyLength:1/0,maxContentLength:1/0,onUploadProgress:e(m=>{t.lastProgress=m.loaded>t.loadedBytes?Date.now():t.lastProgress,t.loadedBytes=m.loaded,t.sizeBytes=m.total??c},"onUploadProgress"),timeout:this.uploadTimeout??void 0,httpAgent:!1,httpsAgent:!1});if(f.status!==200)throw new Error(`Upload failed with status ${f.status}`);this.reporter.complete(r),t.complete=!0,t.response={status:f.status,statusText:f.statusText,headers:f.headers},console.log("response.data size",JSON.stringify(f.data).length),t.removeAfterUpload&&(0,eWe.unlinkSync)(r),this.logMemoryUsage("After successful upload")}catch(o){this.reporter.error(r,o),t.error=!0,this.logMemoryUsage("After failed upload")}finally{if(a)try{a.destroy&&a.destroy(),a.removeAllListeners()}catch(o){console.warn("Stream cleanup error:",o)}finally{a=null}this.logMemoryUsage("After cleanup")}}async getSignedURLForUpload(t){try{let r=JSON.stringify(t.info),a=`${this.apiBaseURL}/${this.makeGetUploadUrlAPIPath(t)}`,o={Accept:"application/json","Content-Type":"application/json",ChecksumAppCode:this.apiKey},c=await fetch(a,{method:"POST",headers:o,body:r}),{url:f}=await c.json();t.uploadURL=f}catch(r){return this.reporter.error(t.info.path,"Error getting signed URL for artifact"+String(r)),null}}};e(Tjr,"TestAssetUploader");var MQt=Tjr;var J4e=require("fs"),hWe=require("path");var WT=pd(F8());var N1=pd(F8());var kjr={toBeAttached:[0],toBeChecked:[0],toBeDisabled:[0],toBeEditable:[0],toBeEmpty:[0],toBeEnabled:[0],toBeFocused:[0],toBeHidden:[0],toBeInViewport:[0],toBeVisible:[0],toContainText:[1],toHaveAccessibleDescription:[1],toHaveAccessibleName:[1],toHaveAttribute:[1,2],toHaveClass:[1],toHaveCount:[1],toHaveCSS:[1,2],toHaveId:[1],toHaveJSProperty:[1,2],toHaveRole:[1],toHaveScreenshot:[0,1],toHaveText:[1],toHaveValue:[1],toHaveValues:[1],toMatchAriaSnapshot:[0],toHaveTitle:[1],toHaveURL:[1]};var Z_e=require("crypto");var _VtgTestMirror=class _VtgTestMirror{constructor(i,t,r,a,o,c){this.title=i;this.internalTestId=t;this.storyId=r;this.sourceFile=a;this.testBody=o;this.hooks=c;this.stepsOutput=[]}translateStatementsToSteps(i={}){let r=this.sortStatementsAndExpressionByExecutionOrder().map(a=>this.getStep(a));return i.mergeCustomCodeSteps&&(r=this.mergeCustomCodeSteps(r)),r}translateStatementsToActions(i={}){let t=this.translateStatementsToSteps(i),r=e(a=>!!a.eventCode,"isAction");return t.reduce((a,o)=>{if(r(o))a.push(o);else{let c=a[a.length-1];c.assertions??(c.assertions=[]),c.assertions.push({...o,actionId:c.id})}return a},[])}mergeCustomCodeSteps(i){let t=e(r=>(r==null?void 0:r.eventCode)==="custom_code","isCustomCode");return i.reduce((r,a)=>{let o=r[r.length-1];return t(a)&&t(o)&&a.thought===o.thought?(o.fillValue+=`
1817
+ `+c):a.stack=c}catch{}}throw a}}_request(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=kce(this.defaults,r);let{transitional:a,paramsSerializer:o,headers:c}=r;a!==void 0&&N_t.assertOptions(a,{silentJSONParsing:X_e.transitional(X_e.boolean),forcedJSONParsing:X_e.transitional(X_e.boolean),clarifyTimeoutError:X_e.transitional(X_e.boolean)},!1),o!=null&&(dp.isFunction(o)?r.paramsSerializer={serialize:o}:N_t.assertOptions(o,{encode:X_e.function,serialize:X_e.function},!0)),N_t.assertOptions(r,{baseUrl:X_e.spelling("baseURL"),withXsrfToken:X_e.spelling("withXSRFToken")},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let f=c&&dp.merge(c.common,c[r.method]);c&&dp.forEach(["delete","get","head","post","put","patch","common"],B=>{delete c[B]}),r.headers=zT.concat(f,c);let m=[],b=!0;this.interceptors.request.forEach(e(function($){typeof $.runWhen=="function"&&$.runWhen(r)===!1||(b=b&&$.synchronous,m.unshift($.fulfilled,$.rejected))},"unshiftRequestInterceptors"));let C=[];this.interceptors.response.forEach(e(function($){C.push($.fulfilled,$.rejected)},"pushResponseInterceptors"));let S,k=0,I;if(!b){let B=[OQt.bind(this),void 0];for(B.unshift.apply(B,m),B.push.apply(B,C),I=B.length,S=Promise.resolve(r);k<I;)S=S.then(B[k++],B[k++]);return S}I=m.length;let R=r;for(k=0;k<I;){let B=m[k++],$=m[k++];try{R=B(R)}catch(W){$.call(this,W);break}}try{S=OQt.call(this,R)}catch(B){return Promise.reject(B)}for(k=0,I=C.length;k<I;)S=S.then(C[k++],C[k++]);return S}getUri(t){t=kce(this.defaults,t);let r=sPe(t.baseURL,t.url);return aPe(r,t.params,t.paramsSerializer)}};e(Ejr,"Axios");var Zze=Ejr;dp.forEach(["delete","get","head","options"],e(function(t){Zze.prototype[t]=function(r,a){return this.request(kce(a||{},{method:t,url:r,data:(a||{}).data}))}},"forEachMethodNoData"));dp.forEach(["post","put","patch"],e(function(t){function r(a){return e(function(c,f,m){return this.request(kce(m||{},{method:t,headers:a?{"Content-Type":"multipart/form-data"}:{},url:c,data:f}))},"httpMethod")}e(r,"generateHTTPMethod"),Zze.prototype[t]=r(),Zze.prototype[t+"Form"]=r(!0)},"forEachMethodWithData"));var O_t=Zze;var RQt=class RQt{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let r;this.promise=new Promise(e(function(c){r=c},"promiseExecutor"));let a=this;this.promise.then(o=>{if(!a._listeners)return;let c=a._listeners.length;for(;c-- >0;)a._listeners[c](o);a._listeners=null}),this.promise.then=o=>{let c,f=new Promise(m=>{a.subscribe(m),c=m}).then(o);return f.cancel=e(function(){a.unsubscribe(c)},"reject"),f},t(e(function(c,f,m){a.reason||(a.reason=new yZ(c,f,m),r(a.reason))},"cancel"))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;let r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){let t=new AbortController,r=e(a=>{t.abort(a)},"abort");return this.subscribe(r),t.signal.unsubscribe=()=>this.unsubscribe(r),t.signal}static source(){let t;return{token:new RQt(e(function(o){t=o},"executor")),cancel:t}}};e(RQt,"CancelToken");var Cjr=RQt,_Mn=Cjr;function wjr(i){return e(function(r){return i.apply(null,r)},"wrap")}e(wjr,"spread");function Sjr(i){return dp.isObject(i)&&i.isAxiosError===!0}e(Sjr,"isAxiosError");var Djr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Djr).forEach(([i,t])=>{Djr[t]=i});var mMn=Djr;function hMn(i){let t=new O_t(i),r=x_t(O_t.prototype.request,t);return dp.extend(r,O_t.prototype,t,{allOwnKeys:!0}),dp.extend(r,t,null,{allOwnKeys:!0}),r.create=e(function(o){return hMn(kce(i,o))},"create"),r}e(hMn,"createInstance");var rF=hMn(Hze);rF.Axios=O_t;rF.CanceledError=yZ;rF.CancelToken=_Mn;rF.isCancel=S_t;rF.VERSION=cPe;rF.toFormData=O4e;rF.AxiosError=F1;rF.Cancel=rF.CanceledError;rF.all=e(function(t){return Promise.all(t)},"all");rF.spread=wjr;rF.isAxiosError=Sjr;rF.mergeConfig=kce;rF.AxiosHeaders=zT;rF.formToJSON=i=>DQt(dp.isHTMLForm(i)?new FormData(i):i);rF.getAdapter=NQt.getAdapter;rF.HttpStatusCode=mMn;rF.default=rF;var LQt=rF;var{Axios:_xs,AxiosError:mxs,CanceledError:hxs,isCancel:gxs,CancelToken:yxs,VERSION:vxs,all:bxs,Cancel:xxs,isAxiosError:Axs,spread:Exs,toFormData:Cxs,AxiosHeaders:wxs,HttpStatusCode:Sxs,formToJSON:Dxs,getAdapter:Txs,mergeConfig:kxs}=LQt;var eWe=require("fs");var Tjr=class Tjr{constructor(t,r,a,o,c=!1,f={start:e(m=>{},"start"),complete:e(m=>{},"complete"),error:e((m,b)=>{},"error")}){this.apiBaseURL=t;this.apiKey=r;this.uploadTimeout=a;this.makeGetUploadUrlAPIPath=o;this.isolationMode=c;this.reporter=f}async uploadAsset(t){if(t.uploadStarted=!0,this.isolationMode){t.lastProgress=Date.now(),t.loadedBytes=0,t.sizeBytes=100,t.response=new Promise(o=>{setTimeout(()=>{t.complete=!0,t.lastProgress=Date.now(),t.loadedBytes=100,o({statusCode:200,ok:!0,body:"OK"})},10)});return}let{path:r}=t.info,a=null;try{let c=(0,eWe.statSync)(r).size;if(t.sizeBytes=c,t.loadedBytes=0,t.lastProgress=Date.now(),this.reporter.start(r),await this.getSignedURLForUpload(t),!t.uploadURL){t.error=!0;return}a=(0,eWe.createReadStream)(r);let f=await LQt.put(t.uploadURL,a,{headers:{"Content-Type":Vbn[t.info.type]??"",Connection:"close"},maxBodyLength:1/0,maxContentLength:1/0,onUploadProgress:e(m=>{t.lastProgress=m.loaded>t.loadedBytes?Date.now():t.lastProgress,t.loadedBytes=m.loaded,t.sizeBytes=m.total??c},"onUploadProgress"),timeout:this.uploadTimeout??void 0,httpAgent:!1,httpsAgent:!1});if(f.status!==200)throw new Error(`Upload failed with status ${f.status}`);this.reporter.complete(r),t.complete=!0,t.response=f.data,t.removeAfterUpload&&(0,eWe.unlinkSync)(r)}catch(o){this.reporter.error(r,o),t.error=!0}finally{if(a)try{typeof a.destroy=="function"?a.destroy():typeof a.close=="function"&&a.close()}catch{}a=null}}async getSignedURLForUpload(t){try{let r=JSON.stringify(t.info),a=`${this.apiBaseURL}/${this.makeGetUploadUrlAPIPath(t)}`,o={Accept:"application/json","Content-Type":"application/json",ChecksumAppCode:this.apiKey},c=await fetch(a,{method:"POST",headers:o,body:r}),{url:f}=await c.json();t.uploadURL=f}catch(r){return this.reporter.error(t.info.path,"Error getting signed URL for artifact"+String(r)),null}}};e(Tjr,"TestAssetUploader");var MQt=Tjr;var J4e=require("fs"),hWe=require("path");var WT=pd(F8());var N1=pd(F8());var kjr={toBeAttached:[0],toBeChecked:[0],toBeDisabled:[0],toBeEditable:[0],toBeEmpty:[0],toBeEnabled:[0],toBeFocused:[0],toBeHidden:[0],toBeInViewport:[0],toBeVisible:[0],toContainText:[1],toHaveAccessibleDescription:[1],toHaveAccessibleName:[1],toHaveAttribute:[1,2],toHaveClass:[1],toHaveCount:[1],toHaveCSS:[1,2],toHaveId:[1],toHaveJSProperty:[1,2],toHaveRole:[1],toHaveScreenshot:[0,1],toHaveText:[1],toHaveValue:[1],toHaveValues:[1],toMatchAriaSnapshot:[0],toHaveTitle:[1],toHaveURL:[1]};var Z_e=require("crypto");var _VtgTestMirror=class _VtgTestMirror{constructor(i,t,r,a,o,c){this.title=i;this.internalTestId=t;this.storyId=r;this.sourceFile=a;this.testBody=o;this.hooks=c;this.stepsOutput=[]}translateStatementsToSteps(i={}){let r=this.sortStatementsAndExpressionByExecutionOrder().map(a=>this.getStep(a));return i.mergeCustomCodeSteps&&(r=this.mergeCustomCodeSteps(r)),r}translateStatementsToActions(i={}){let t=this.translateStatementsToSteps(i),r=e(a=>!!a.eventCode,"isAction");return t.reduce((a,o)=>{if(r(o))a.push(o);else{let c=a[a.length-1];c.assertions??(c.assertions=[]),c.assertions.push({...o,actionId:c.id})}return a},[])}mergeCustomCodeSteps(i){let t=e(r=>(r==null?void 0:r.eventCode)==="custom_code","isCustomCode");return i.reduce((r,a)=>{let o=r[r.length-1];return t(a)&&t(o)&&a.thought===o.thought?(o.fillValue+=`
1818
1818
  `+a.fillValue,r):[...r,a]},[])}sortStatementsAndExpressionByExecutionOrder(i=!1){if(!i)return N1.isBlock(this.testBody)?[...this.testBody.statements]:[this.testBody];let t=e(c=>this.hooks.filter(f=>f.type===c),"getHooksByType"),r=e(c=>{let f=c.reduce((m,b)=>{let C=m.get(b.nestedLevel)||[];return m.set(b.nestedLevel,[...C,b]),m},new Map);return Array.from(f.values())},"groupHooksByNestedLevel"),a=e(c=>r(c).reverse().flat(),"getBodiesByReversedNestedLevel");return[...t("beforeAll"),...t("beforeEach"),{body:this.testBody},...a(t("afterEach")),...a(t("afterAll"))].map(c=>c.body).map(c=>N1.isBlock(c)?[...c.statements]:[c]).flat()}getStep(i,{insideImplicitChecksumAIPromise:t}={}){let r={eventCode:"custom_code",fillValue:this.getText(i),id:(0,Z_e.randomUUID)(),codeContext:{frameTargetName:null},source:"manual",...t?{isChecksumAiWithDirectExpression:!0}:{}};return N1.isExpressionStatement(i)&&(i=i.expression),N1.isBinaryExpression(i)?this.getSwitchTabAction(i)??r:N1.isAwaitExpression(i)&&N1.isCallExpression(i.expression)?this.getAwaitCallExpressionType(i.expression)??r:t&&N1.isCallExpression(i)?{...this.getAwaitCallExpressionType(i)??r,isChecksumAiWithDirectExpression:!0}:r}getText(i,{keepTextNodeQuotationMarks:t}={}){return i?!t&&"text"in i?i.text.toString():i.getText(this.sourceFile):""}getSwitchTabAction(i){if(this.getText(i.left)!=="page"||!N1.isAwaitExpression(i.right)||!N1.isCallExpression(i.right.expression))return;let t=i.right.expression;if(!N1.isCallExpression(t)||!N1.isPropertyAccessExpression(t.expression)||!N1.isIdentifier(t.expression.name)||t.expression.name.text!=="getPage"||t.arguments.length!==1)return;let r=this.getText(t.expression.expression),a=this.getText(t.arguments[0]);if(/^\d+$/.test(a))return{id:(0,Z_e.randomUUID)(),source:"manual",eventCode:"switch_tab",switchToTab:{index:parseInt(a,10),id:""},codeContext:{frameTargetName:r&&r!=="page"?r:null}}}getAwaitCallExpressionType(i){if(N1.isIdentifier(i.expression))switch(this.getText(i.expression)){case"login":return this.getLoginAction(i);case"checksumAI":return this.translateChecksumAIToAction(i);default:return}return N1.isPropertyAccessExpression(i.expression)?this.getText(i.expression)==="test.step"?this.getTestStepAction(i):this.getText(i.expression)==="checksumAI.withDialog"?this.translateChecksumAIToAction(i):/^(expect|expect\.soft|expect\[.soft\]\.checksumAI)\(/.test(this.getText(i.expression))?this.processPossibleAwaitExpect(i):this.getAction(i):void 0}getTestStepAction(i){let[t,r]=i.arguments,a=this.getText(t);if(!N1.isArrowFunction(r)&&!N1.isFunctionExpression(r))return;let o=r.body,c=N1.isExpression(o)?this.getText(o):o.statements.map(f=>this.getText(f)).join(`
1819
1819
  `);return{id:(0,Z_e.randomUUID)(),source:"manual",eventCode:"custom_code",codeContext:{frameTargetName:null},thought:a,fillValue:c}}processPropertyAccessExpression(i){let t="",r=i;for(;N1.isPropertyAccessExpression(r);r=r.expression)t=`${this.getText(r.name)}${t?`.${t}`:""}`;return{propertyAccess:t,propertyAccessCalleeNode:r}}processPossibleAwaitExpect(i){let t,r,{propertyAccess:a,propertyAccessCalleeNode:o}=this.processPropertyAccessExpression(i.expression);if(!N1.isCallExpression(o)||this.isUnknownMatcher(a))return;if(["expect","expect.soft"].includes(this.getText(o.expression)))t=o;else if(N1.isPropertyAccessExpression(o.expression)&&N1.isCallExpression(o.expression.expression)&&this.getText(o.expression.name)==="checksumAI"&&["expect","expect.soft"].includes(this.getText(o.expression.expression.expression)))r=this.getText(o.arguments[0]),t=o.expression.expression;else return;let{expression:c,arguments:f}=t,m=this.getText(c)==="expect.soft",{locator:b,codeContext:C}=this.processLocatorCallExpression(f[0]);if(r??(r=f[1]?this.getText(f[1]):void 0),!this.assertionMatcherHasValidArgumentsCount(i.arguments,a))return;let{matcher:S,matcherOptions:k}=this.resolveAssertionMatcherAndMatcherOptions(i,a);return{id:(0,Z_e.randomUUID)(),locator:b,matcher:S,...r!==void 0?{thought:r}:{},isSoft:m,source:"manual",actionId:"",selected:!0,matcherOptions:k,codeContext:C}}resolveAssertionMatcherAndMatcherOptions(i,t){let{argumentNodes:r,optionsArgumentNode:a}=this.resolveAssertionsArgumentNodesAndOptionsNode(i,t);return{matcher:this.createAssertionMatcher(t,r),matcherOptions:a?this.getText(a,{keepTextNodeQuotationMarks:!0}):void 0}}isUnknownMatcher(i){let t=i.replace(/^not\./,"");return!kjr[t]}getPossibleOptionsIndicesByMatcher(i){let t=i.replace(/^not\./,"");return kjr[t]??[]}assertionMatcherHasValidArgumentsCount(i,t){return this.getPossibleOptionsIndicesByMatcher(t).flatMap(o=>[o,o+1]).includes(i.length)}resolveAssertionsArgumentNodesAndOptionsNode(i,t){let r=[...i.arguments],a,o=this.getPossibleOptionsIndicesByMatcher(t);if(o.length===0)return{argumentNodes:r,optionsArgumentNode:void 0};if(o.length===1){let c=o[0];c<r.length&&(a=r[c],r=r.filter((m,b)=>b!==c))}if(o.length===2){let c=Math.max(...o);c<r.length?(a=r[c],r=r.filter((m,b)=>b!==c)):Math.min(...o)<r.length&&(c=Math.min(...o),N1.isObjectLiteralExpression(r[c])&&(a=r[c],r=r.filter((m,b)=>b!==c)))}return{argumentNodes:r,optionsArgumentNode:a}}createAssertionMatcher(i,t){let r=t.map(a=>this.getText(a,{keepTextNodeQuotationMarks:!0})).join(", ");return`${i}(${r})`}processLocatorCallExpression(i){var S;let t=this.getText(i),r=[...Object.values(u_e),"compoundSelection"],o=new RegExp(`\\.(${r.join("|")})\\s*\\(`,"g").exec(t),c=o?{locator:o[1],index:o.index}:null,f,m;c?(f=t.slice(c.index+1),m=t.slice(0,c.index).replace(/^checksumSelector\("([^)]+)"\)\.?/,"")):(f="",m=t);let b=/\.checksumAI\("([^)]+)"\)/,C;return m.match(b)&&(C=(S=m.match(b))==null?void 0:S[1],m=m.replace(b,"")),{locator:f,...C?{thought:C}:{},codeContext:{frameTargetName:m!=="page"?m:null}}}getLoginAction(i){if(!this.validateActionArguments("login",i.arguments))return;let t=this.getText(i.arguments[0]),r={frameTargetName:t!=="page"?t:null},a=ZQe.login,o={eventCode:"login",isInitialAction:!0,id:(0,Z_e.randomUUID)(),source:"manual",codeContext:r},c=i.arguments[a],f={role:void 0,environment:void 0};if(!c)return{...o,login:f};if(!e(C=>N1.isObjectLiteralExpression(C)?C.properties.every(S=>{if(!N1.isPropertyAssignment(S))return!1;let{name:k,initializer:I}=S;return N1.isIdentifier(k)?["role","environment"].includes(k.text):!1}):!1,"isSupportedLoginOptionsNode")(c)){let C=this.getText(c);return{...o,login:f,...C?{actionOptions:C}:{}}}let b={...f,...this.extractValue(c)};return{...o,login:b}}translateChecksumAIToAction(i){let[t,r]=i.arguments;if(!N1.isArrowFunction(r)&&!N1.isFunctionExpression(r))return;let a;if(N1.isExpression(r.body))a=this.getStep(r.body,{insideImplicitChecksumAIPromise:!0});else if(r.body.statements.length===1){let c=r.body.statements[0];a=this.getStep(c)}else r.body.statements.length===2&&(a=this.getActionThenTypeAction(r.body));a??(a={eventCode:"custom_code",fillValue:this.getText(r.body).replace(/^\s*\{\s*/,"").replace(/\s*\}\s*$/,""),id:(0,Z_e.randomUUID)(),source:"manual",codeContext:{frameTargetName:null}});let o=this.getText(t);return{...a,thought:o}}getActionThenTypeAction(i){let[t,r]=i.statements,a=e($=>!N1.isExpressionStatement($)||!N1.isAwaitExpression($.expression)||!N1.isCallExpression($.expression.expression)?{}:this.getLocatorAndPageMethodNameAndArgs($.expression.expression),"getStatementLocatorAndPageMethodName"),{locator:o,pageMethodName:c,args:f,codeContext:m}=a(t),{locator:b,pageMethodName:C,args:S,codeContext:k}=a(r),R={click:"click_and_type",clear:"clear_and_type"}[c],B=m==null?void 0:m.frameTargetName;if(o&&R&&Array.isArray(f)&&f.length===0&&Array.isArray(S)&&S.length===1&&C==="pressSequentially"&&o===b&&B===(k==null?void 0:k.frameTargetName))return{eventCode:R,locator:o,id:(0,Z_e.randomUUID)(),source:"manual",fillValue:S[0],codeContext:{frameTargetName:B&&B!=="page"?B:null}}}getDialogAction(i){let t,r=e(S=>Object.values(JDr).includes(S),"isNativeDialogType");if(!N1.isPropertyAccessExpression(i.expression)||!N1.isCallExpression(i.expression.expression)||!N1.isPropertyAccessExpression(i.expression.expression.expression))return;let a=i.expression.expression.expression.expression;t=this.getText(a);let o=i.arguments[0];if(!o||!N1.isArrowFunction(o)||!N1.isBlock(o.body)||!N1.isExpressionStatement(o.body.statements[0])||!N1.isAwaitExpression(o.body.statements[0].expression))return;let c=o.body.statements[0].expression.expression;if(!N1.isCallExpression(c)||!N1.isPropertyAccessExpression(c.expression))return;let m={accept:"native_accept",dismiss:"native_dismiss"}[this.getText(c.expression.name)];if(!m||c.arguments.length>(m==="native_accept"?1:0))return;let b=this.getText(c.arguments[0]),C=this.getText(c.expression.expression);if(r(C))return{id:(0,Z_e.randomUUID)(),source:"manual",eventCode:m,nativeDialog:{dialogType:C,dialogResult:b},codeContext:{frameTargetName:t!=="page"?t:null}}}getLocatorAndPageMethodNameAndArgs(i){if(!N1.isPropertyAccessExpression(i.expression))return{};let t=i.expression.expression,r=this.getText(i.expression.name);r==="press"&&N1.isPropertyAccessExpression(t)&&this.getText(t.name)==="keyboard"&&(t=t.expression,r="keyboard.press");let{locator:a,thought:o,codeContext:c}=this.processLocatorCallExpression(t),f=i.arguments.map(m=>this.extractValue(m));return{locator:a,pageMethodName:r,args:f,thought:o,codeContext:c}}getAction(i){if(!N1.isPropertyAccessExpression(i.expression))return;if(/\.waitForDialog\(\)\s*\.then/.test(this.getText(i.expression)))return this.getDialogAction(i);let{locator:r,pageMethodName:a,args:o,thought:c,codeContext:f}=this.getLocatorAndPageMethodNameAndArgs(i),m=e3r[a];if(!m||!this.validateActionArguments(m,i.arguments))return;let b=i.arguments,C=this.getActionParams(m,b,o,f);return{source:"manual",id:(0,Z_e.randomUUID)(),...r?{locator:r}:{},...c?{thought:c}:{},eventCode:m,...C,codeContext:f}}validateActionArguments(i,t){if(!Wbn[i].includes(t.length))return!1;let a=ZQe[i];return a!==-1&&t[a]&&!N1.isObjectLiteralExpression(t[a])?!1:i==="upload_files"?N1.isCallExpression(t[0])&&this.getText(t[0].expression)==="page.resolveAssetsFolder"&&t[0].arguments.length===1&&N1.isArrayLiteralExpression(t[0].arguments[0]):!0}getActionParams(i,t,r,a){let o=ZQe[i],c;switch(o<r.length&&t[o]&&(c=this.getText(t[o])),i){case"input":case"selectoption":case"keystroke":case"navigation":return{fillValue:r[0],...c?{actionOptions:c}:{}};case"wait":return{codeContext:a,fillValue:r[0].toString(),...c?{actionOptions:c}:{}};case"drag_and_drop":{let f=this.getText(t[0]),m=(a==null?void 0:a.frameTargetName)??"page",b=new RegExp(`^${m}.`);return{codeContext:a,dropTarget:{locator:f.replace(b,"")},...c?{actionOptions:c}:{}}}case"upload_files":return{codeContext:a,files:t[0].arguments[0].elements.map(f=>this.extractValue(f)),...c?{actionOptions:c}:{}};case"canvas_click":{let[f,m]=r;return{codeContext:a,canvas:{canvasText:f,...m!==void 0?{rectSizeIndex:m}:{}}}}case"logout_and_login":{let f=this.getText(t[0]);return{codeContext:a,userRole:f,isInitialAction:!1}}default:return{codeContext:a,...c?{actionOptions:c}:{}}}}getObjectLiteralValue(i){return!i||!N1.isObjectLiteralExpression(i)?{}:i.properties.reduce((t,r)=>{if(N1.isPropertyAssignment(r)){let{name:a,initializer:o}=r,c=this.getText(a),f=this.extractValue(o);t[c]=f}return t},{})}extractValue(node){var i;if(node&&!(!N1.isExpression(node)&&!N1.isLiteralTypeLiteral(node))){if(N1.isStringLiteral(node)||N1.isNoSubstitutionTemplateLiteral(node))return this.getText(node);if(N1.isLiteralExpression(node)||N1.isLiteralTypeLiteral(node))return eval(this.getText(node));if(N1.isObjectLiteralExpression(node))return this.getObjectLiteralValue(node);if(N1.isArrayLiteralExpression(node))return node.elements.map(t=>this.extractValue(t));if(N1.isTemplateExpression(node)){let t=this.getText(node);return((i=this.getText(node).match(/^\`(.+)\`$/))==null?void 0:i[1])??t}else return"${"+this.getText(node)+"}"}}};e(_VtgTestMirror,"VtgTestMirror");var tWe=_VtgTestMirror;var c5=pd(F8()),OUn=pd(PUn());var z_t=require("fs"),mPe=pd(require("path"));var FUn=`require("${process.env.CHECKSUM_RUNTIME_DEV_MODE==="true"?`${process.cwd()}/src/init.ts`:"@checksum-ai/runtime"}");`,NUn=`const { checksumHotRequire } = ${FUn}`,NAs=`const {
1820
1820
  init,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@checksum-ai/runtime",
3
- "version": "1.2.10-alpha",
3
+ "version": "1.2.11-alpha",
4
4
  "description": "Checksum.ai test runtime",
5
5
  "main": "index.js",
6
6
  "dependencies": {
@@ -15,8 +15,8 @@
15
15
  `,$0=La.encode(St),J0=2,rc=class rc{constructor(t,i){let{escapeName:a}=this.constructor,n=d.isString(i),s=`Content-Disposition: form-data; name="${a(t)}"${!n&&i.name?`; filename="${a(i.name)}"`:""}${St}`;n?i=La.encode(String(i).replace(/\r?\n|\r\n?/g,St)):s+=`Content-Type: ${i.type||"application/octet-stream"}${St}`,this.headers=La.encode(s+St),this.contentLength=n?i.byteLength:i.size,this.size=this.headers.byteLength+this.contentLength+J0,this.name=t,this.value=i}async*encode(){yield this.headers;let{value:t}=this;d.isTypedArray(t)?yield t:yield*$n(t),yield $0}static escapeName(t){return String(t).replace(/[\r\n"]/g,i=>({"\r":"%0D","\n":"%0A",'"':"%22"})[i])}};r(rc,"FormDataPart");var nc=rc,Y0=r((e,t,i)=>{let{tag:a="form-data-boundary",size:n=25,boundary:s=a+"-"+d.generateString(n,G0)}=i||{};if(!d.isFormData(e))throw TypeError("FormData instance required");if(s.length<1||s.length>70)throw Error("boundary must be 10-70 characters long");let o=La.encode("--"+s+St),c=La.encode("--"+s+"--"+St+St),u=c.byteLength,l=Array.from(e.entries()).map(([f,m])=>{let h=new nc(f,m);return u+=h.size,h});u+=o.byteLength*l.length,u=d.toFiniteNumber(u);let p={"Content-Type":`multipart/form-data; boundary=${s}`};return Number.isFinite(u)&&(p["Content-Length"]=u),t&&t(p),Cm.Readable.from(async function*(){for(let f of l)yield o,yield*f.encode();yield c}())},"formDataToStream"),Rm=Y0;var Am=te(require("stream"),1);var oc=class oc extends Am.default.Transform{__transform(t,i,a){this.push(t),a()}_transform(t,i,a){if(t.length!==0&&(this._transform=this.__transform,t[0]!==120)){let n=Buffer.alloc(2);n[0]=120,n[1]=156,this.push(n,i)}this.__transform(t,i,a)}};r(oc,"ZlibHeaderTransformStream");var sc=oc,Om=sc;var X0=r((e,t)=>d.isAsyncFn(e)?function(...i){let a=i.pop();e.apply(this,i).then(n=>{try{t?a(null,...t(n)):a(null,n)}catch(s){a(s)}},a)}:e,"callbackify"),Im=X0;function Q0(e,t){e=e||10;let i=new Array(e),a=new Array(e),n=0,s=0,o;return t=t!==void 0?t:1e3,r(function(u){let l=Date.now(),p=a[s];o||(o=l),i[n]=u,a[n]=l;let f=s,m=0;for(;f!==n;)m+=i[f++],f=f%e;if(n=(n+1)%e,n===s&&(s=(s+1)%e),l-o<t)return;let h=p&&l-p;return h?Math.round(m*1e3/h):void 0},"push")}r(Q0,"speedometer");var Fm=Q0;function ew(e,t){let i=0,a=1e3/t,n,s,o=r((l,p=Date.now())=>{i=p,n=null,s&&(clearTimeout(s),s=null),e.apply(null,l)},"invoke");return[r((...l)=>{let p=Date.now(),f=p-i;f>=a?o(l,p):(n=l,s||(s=setTimeout(()=>{s=null,o(n)},a-f)))},"throttled"),r(()=>n&&o(n),"flush")]}r(ew,"throttle");var Lm=ew;var ct=r((e,t,i=3)=>{let a=0,n=Fm(50,250);return Lm(s=>{let o=s.loaded,c=s.lengthComputable?s.total:void 0,u=o-a,l=n(u),p=o<=c;a=o;let f={loaded:o,total:c,progress:c?o/c:void 0,bytes:u,rate:l||void 0,estimated:l&&c&&p?(c-o)/l:void 0,event:s,lengthComputable:c!=null,[t?"download":"upload"]:!0};e(f)},i)},"progressEventReducer"),Ni=r((e,t)=>{let i=e!=null;return[a=>t[0]({lengthComputable:i,total:e,loaded:a}),t[1]]},"progressEventDecorator"),Bi=r(e=>(...t)=>d.asap(()=>e(...t)),"asyncDecorator");var Dm={flush:lt.default.constants.Z_SYNC_FLUSH,finishFlush:lt.default.constants.Z_SYNC_FLUSH},tw={flush:lt.default.constants.BROTLI_OPERATION_FLUSH,finishFlush:lt.default.constants.BROTLI_OPERATION_FLUSH},Um=d.isFunction(lt.default.createBrotliDecompress),{http:iw,https:aw}=Hm.default,nw=/https:?/,Nm=P.protocols.map(e=>e+":"),Bm=r((e,[t,i])=>(e.on("end",i).on("error",i),t),"flushOnFinish");function rw(e,t){e.beforeRedirects.proxy&&e.beforeRedirects.proxy(e),e.beforeRedirects.config&&e.beforeRedirects.config(e,t)}r(rw,"dispatchBeforeRedirect");function Km(e,t,i){let a=t;if(!a&&a!==!1){let n=jm.default.getProxyForUrl(i);n&&(a=new URL(n))}if(a){if(a.username&&(a.auth=(a.username||"")+":"+(a.password||"")),a.auth){(a.auth.username||a.auth.password)&&(a.auth=(a.auth.username||"")+":"+(a.auth.password||""));let s=Buffer.from(a.auth,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+s}e.headers.host=e.hostname+(e.port?":"+e.port:"");let n=a.hostname||a.host;e.hostname=n,e.host=n,e.port=a.port,e.path=i,a.protocol&&(e.protocol=a.protocol.includes(":")?a.protocol:`${a.protocol}:`)}e.beforeRedirects.proxy=r(function(s){Km(s,t,s.href)},"beforeRedirect")}r(Km,"setProxy");var sw=typeof process<"u"&&d.kindOf(process)==="process",ow=r(e=>new Promise((t,i)=>{let a,n,s=r((u,l)=>{n||(n=!0,a&&a(u,l))},"done"),o=r(u=>{s(u),t(u)},"_resolve"),c=r(u=>{s(u,!0),i(u)},"_reject");e(o,c,u=>a=u).catch(c)}),"wrapAsync"),cw=r(({address:e,family:t})=>{if(!d.isString(e))throw TypeError("address must be a string");return{address:e,family:t||(e.indexOf(".")<0?6:4)}},"resolveFamily"),Mm=r((e,t)=>cw(d.isObject(e)?e:{address:e,family:t}),"buildAddressEntry"),Zm=sw&&r(function(t){return ow(r(async function(a,n,s){let{data:o,lookup:c,family:u}=t,{responseType:l,responseEncoding:p}=t,f=t.method.toUpperCase(),m,h=!1,v;if(c){let F=Im(c,O=>d.isArray(O)?O:[O]);c=r((O,oe,Ct)=>{F(O,oe,(ne,pt,sr)=>{if(ne)return Ct(ne);let Me=d.isArray(pt)?pt.map(Ee=>Mm(Ee)):[Mm(pt,sr)];oe.all?Ct(ne,Me):Ct(ne,Me[0].address,Me[0].family)})},"lookup")}let g=new Wm.EventEmitter,x=r(()=>{t.cancelToken&&t.cancelToken.unsubscribe(b),t.signal&&t.signal.removeEventListener("abort",b),g.removeAllListeners()},"onFinished");s((F,O)=>{m=!0,O&&(h=!0,x())});function b(F){g.emit("abort",!F||F.type?new _e(null,t,v):F)}r(b,"abort"),g.once("abort",n),(t.cancelToken||t.signal)&&(t.cancelToken&&t.cancelToken.subscribe(b),t.signal&&(t.signal.aborted?b():t.signal.addEventListener("abort",b)));let y=Zt(t.baseURL,t.url),k=new URL(y,P.hasBrowserEnv?P.origin:void 0),E=k.protocol||Nm[0];if(E==="data:"){let F;if(f!=="GET")return Ve(a,n,{status:405,statusText:"method not allowed",headers:{},config:t});try{F=Qo(t.url,l==="blob",{Blob:t.env&&t.env.Blob})}catch(O){throw S.from(O,S.ERR_BAD_REQUEST,t)}return l==="text"?(F=F.toString(p),(!p||p==="utf8")&&(F=d.stripBOM(F))):l==="stream"&&(F=Yt.default.Readable.from(F)),Ve(a,n,{data:F,status:200,statusText:"OK",headers:new K,config:t})}if(Nm.indexOf(E)===-1)return n(new S("Unsupported protocol "+E,S.ERR_BAD_REQUEST,t));let w=K.from(t.headers).normalize();w.set("User-Agent","axios/"+Jt,!1);let{onUploadProgress:R,onDownloadProgress:A}=t,T=t.maxRate,I,B;if(d.isSpecCompliantForm(o)){let F=w.getContentType(/boundary=([-_\w\d]{10,70})/i);o=Rm(o,O=>{w.set(O)},{tag:`axios-${Jt}-boundary`,boundary:F&&F[1]||void 0})}else if(d.isFormData(o)&&d.isFunction(o.getHeaders)){if(w.set(o.getHeaders()),!w.hasContentLength())try{let F=await qm.default.promisify(o.getLength).call(o);Number.isFinite(F)&&F>=0&&w.setContentLength(F)}catch{}}else if(d.isBlob(o)||d.isFile(o))o.size&&w.setContentType(o.type||"application/octet-stream"),w.setContentLength(o.size||0),o=Yt.default.Readable.from($n(o));else if(o&&!d.isStream(o)){if(!Buffer.isBuffer(o))if(d.isArrayBuffer(o))o=Buffer.from(new Uint8Array(o));else if(d.isString(o))o=Buffer.from(o,"utf-8");else return n(new S("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",S.ERR_BAD_REQUEST,t));if(w.setContentLength(o.length,!1),t.maxBodyLength>-1&&o.length>t.maxBodyLength)return n(new S("Request body larger than maxBodyLength limit",S.ERR_BAD_REQUEST,t))}let C=d.toFiniteNumber(w.getContentLength());d.isArray(T)?(I=T[0],B=T[1]):I=B=T,o&&(R||I)&&(d.isStream(o)||(o=Yt.default.Readable.from(o,{objectMode:!1})),o=Yt.default.pipeline([o,new ic({maxRate:d.toFiniteNumber(I)})],d.noop),R&&o.on("progress",Bm(o,Ni(C,ct(Bi(R),!1,3)))));let Y;if(t.auth){let F=t.auth.username||"",O=t.auth.password||"";Y=F+":"+O}if(!Y&&k.username){let F=k.username,O=k.password;Y=F+":"+O}Y&&w.delete("authorization");let $e;try{$e=Kt(k.pathname+k.search,t.params,t.paramsSerializer).replace(/^\?/,"")}catch(F){let O=new Error(F.message);return O.config=t,O.url=t.url,O.exists=!0,n(O)}w.set("Accept-Encoding","gzip, compress, deflate"+(Um?", br":""),!1);let X={path:$e,method:f,headers:w.toJSON(),agents:{http:t.httpAgent,https:t.httpsAgent},auth:Y,protocol:E,family:u,beforeRedirect:rw,beforeRedirects:{}};!d.isUndefined(c)&&(X.lookup=c),t.socketPath?X.socketPath=t.socketPath:(X.hostname=k.hostname.startsWith("[")?k.hostname.slice(1,-1):k.hostname,X.port=k.port,Km(X,t.proxy,E+"//"+k.hostname+(k.port?":"+k.port:"")+X.path));let Tt,Xt=nw.test(X.protocol);if(X.agent=Xt?t.httpsAgent:t.httpAgent,t.transport?Tt=t.transport:t.maxRedirects===0?Tt=Xt?zm.default:Pm.default:(t.maxRedirects&&(X.maxRedirects=t.maxRedirects),t.beforeRedirect&&(X.beforeRedirects.config=t.beforeRedirect),Tt=Xt?aw:iw),t.maxBodyLength>-1?X.maxBodyLength=t.maxBodyLength:X.maxBodyLength=1/0,t.insecureHTTPParser&&(X.insecureHTTPParser=t.insecureHTTPParser),v=Tt.request(X,r(function(O){if(v.destroyed)return;let oe=[O],Ct=+O.headers["content-length"];if(A||B){let Ee=new ic({maxRate:d.toFiniteNumber(B)});A&&Ee.on("progress",Bm(Ee,Ni(Ct,ct(Bi(A),!0,3)))),oe.push(Ee)}let ne=O,pt=O.req||v;if(t.decompress!==!1&&O.headers["content-encoding"])switch((f==="HEAD"||O.statusCode===204)&&delete O.headers["content-encoding"],(O.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":oe.push(lt.default.createUnzip(Dm)),delete O.headers["content-encoding"];break;case"deflate":oe.push(new Om),oe.push(lt.default.createUnzip(Dm)),delete O.headers["content-encoding"];break;case"br":Um&&(oe.push(lt.default.createBrotliDecompress(tw)),delete O.headers["content-encoding"])}ne=oe.length>1?Yt.default.pipeline(oe,d.noop):oe[0];let sr=Yt.default.finished(ne,()=>{sr(),x()}),Me={status:O.statusCode,statusText:O.statusMessage,headers:new K(O.headers),config:t,request:pt};if(l==="stream")Me.data=ne,Ve(a,n,Me);else{let Ee=[],_c=0;ne.on("data",r(function(ue){Ee.push(ue),_c+=ue.length,t.maxContentLength>-1&&_c>t.maxContentLength&&(h=!0,ne.destroy(),n(new S("maxContentLength size of "+t.maxContentLength+" exceeded",S.ERR_BAD_RESPONSE,t,pt)))},"handleStreamData")),ne.on("aborted",r(function(){if(h)return;let ue=new S("stream has been aborted",S.ERR_BAD_RESPONSE,t,pt);ne.destroy(ue),n(ue)},"handlerStreamAborted")),ne.on("error",r(function(ue){v.destroyed||n(S.from(ue,null,t,pt))},"handleStreamError")),ne.on("end",r(function(){try{let ue=Ee.length===1?Ee[0]:Buffer.concat(Ee);l!=="arraybuffer"&&(ue=ue.toString(p),(!p||p==="utf8")&&(ue=d.stripBOM(ue))),Me.data=ue}catch(ue){return n(S.from(ue,null,t,Me.request,Me))}Ve(a,n,Me)},"handleStreamEnd"))}g.once("abort",Ee=>{ne.destroyed||(ne.emit("error",Ee),ne.destroy())})},"handleResponse")),g.once("abort",F=>{n(F),v.destroy(F)}),v.on("error",r(function(O){n(S.from(O,null,t,v))},"handleRequestError")),v.on("socket",r(function(O){O.setKeepAlive(!0,1e3*60)},"handleRequestSocket")),t.timeout){let F=parseInt(t.timeout,10);if(Number.isNaN(F)){n(new S("error trying to parse `config.timeout` to int",S.ERR_BAD_OPTION_VALUE,t,v));return}v.setTimeout(F,r(function(){if(m)return;let oe=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded",Ct=t.transitional||Ai;t.timeoutErrorMessage&&(oe=t.timeoutErrorMessage),n(new S(oe,Ct.clarifyTimeoutError?S.ETIMEDOUT:S.ECONNABORTED,t,v)),b()},"handleRequestTimeout"))}if(d.isStream(o)){let F=!1,O=!1;o.on("end",()=>{F=!0}),o.once("error",oe=>{O=!0,v.destroy(oe)}),o.on("close",()=>{!F&&!O&&b(new _e("Request stream has been aborted",t,v))}),o.pipe(v)}else v.end(o)},"dispatchHttpRequest"))},"httpAdapter");var Vm=P.hasStandardBrowserEnv?((e,t)=>i=>(i=new URL(i,P.origin),e.protocol===i.protocol&&e.host===i.host&&(t||e.port===i.port)))(new URL(P.origin),P.navigator&&/(msie|trident)/i.test(P.navigator.userAgent)):()=>!0;var Gm=P.hasStandardBrowserEnv?{write(e,t,i,a,n,s){let o=[e+"="+encodeURIComponent(t)];d.isNumber(i)&&o.push("expires="+new Date(i).toGMTString()),d.isString(a)&&o.push("path="+a),d.isString(n)&&o.push("domain="+n),s===!0&&o.push("secure"),document.cookie=o.join("; ")},read(e){let t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};var $m=r(e=>e instanceof K?{...e}:e,"headersToObject");function Be(e,t){t=t||{};let i={};function a(l,p,f,m){return d.isPlainObject(l)&&d.isPlainObject(p)?d.merge.call({caseless:m},l,p):d.isPlainObject(p)?d.merge({},p):d.isArray(p)?p.slice():p}r(a,"getMergedValue");function n(l,p,f,m){if(d.isUndefined(p)){if(!d.isUndefined(l))return a(void 0,l,f,m)}else return a(l,p,f,m)}r(n,"mergeDeepProperties");function s(l,p){if(!d.isUndefined(p))return a(void 0,p)}r(s,"valueFromConfig2");function o(l,p){if(d.isUndefined(p)){if(!d.isUndefined(l))return a(void 0,l)}else return a(void 0,p)}r(o,"defaultToConfig2");function c(l,p,f){if(f in t)return a(l,p);if(f in e)return a(void 0,l)}r(c,"mergeDirectKeys");let u={url:s,method:s,data:s,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:c,headers:r((l,p,f)=>n($m(l),$m(p),f,!0),"headers")};return d.forEach(Object.keys(Object.assign({},e,t)),r(function(p){let f=u[p]||n,m=f(e[p],t[p],p);d.isUndefined(m)&&f!==c||(i[p]=m)},"computeConfigValue")),i}r(Be,"mergeConfig");var Jn=r(e=>{let t=Be({},e),{data:i,withXSRFToken:a,xsrfHeaderName:n,xsrfCookieName:s,headers:o,auth:c}=t;t.headers=o=K.from(o),t.url=Kt(Zt(t.baseURL,t.url),e.params,e.paramsSerializer),c&&o.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):"")));let u;if(d.isFormData(i)){if(P.hasStandardBrowserEnv||P.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if((u=o.getContentType())!==!1){let[l,...p]=u?u.split(";").map(f=>f.trim()).filter(Boolean):[];o.setContentType([l||"multipart/form-data",...p].join("; "))}}if(P.hasStandardBrowserEnv&&(a&&d.isFunction(a)&&(a=a(t)),a||a!==!1&&Vm(t.url))){let l=n&&s&&Gm.read(s);l&&o.set(n,l)}return t},"default");var lw=typeof XMLHttpRequest<"u",Jm=lw&&function(e){return new Promise(r(function(i,a){let n=Jn(e),s=n.data,o=K.from(n.headers).normalize(),{responseType:c,onUploadProgress:u,onDownloadProgress:l}=n,p,f,m,h,v;function g(){h&&h(),v&&v(),n.cancelToken&&n.cancelToken.unsubscribe(p),n.signal&&n.signal.removeEventListener("abort",p)}r(g,"done");let x=new XMLHttpRequest;x.open(n.method.toUpperCase(),n.url,!0),x.timeout=n.timeout;function b(){if(!x)return;let k=K.from("getAllResponseHeaders"in x&&x.getAllResponseHeaders()),w={data:!c||c==="text"||c==="json"?x.responseText:x.response,status:x.status,statusText:x.statusText,headers:k,config:e,request:x};Ve(r(function(A){i(A),g()},"_resolve"),r(function(A){a(A),g()},"_reject"),w),x=null}r(b,"onloadend"),"onloadend"in x?x.onloadend=b:x.onreadystatechange=r(function(){!x||x.readyState!==4||x.status===0&&!(x.responseURL&&x.responseURL.indexOf("file:")===0)||setTimeout(b)},"handleLoad"),x.onabort=r(function(){x&&(a(new S("Request aborted",S.ECONNABORTED,e,x)),x=null)},"handleAbort"),x.onerror=r(function(){a(new S("Network Error",S.ERR_NETWORK,e,x)),x=null},"handleError"),x.ontimeout=r(function(){let E=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded",w=n.transitional||Ai;n.timeoutErrorMessage&&(E=n.timeoutErrorMessage),a(new S(E,w.clarifyTimeoutError?S.ETIMEDOUT:S.ECONNABORTED,e,x)),x=null},"handleTimeout"),s===void 0&&o.setContentType(null),"setRequestHeader"in x&&d.forEach(o.toJSON(),r(function(E,w){x.setRequestHeader(w,E)},"setRequestHeader")),d.isUndefined(n.withCredentials)||(x.withCredentials=!!n.withCredentials),c&&c!=="json"&&(x.responseType=n.responseType),l&&([m,v]=ct(l,!0),x.addEventListener("progress",m)),u&&x.upload&&([f,h]=ct(u),x.upload.addEventListener("progress",f),x.upload.addEventListener("loadend",h)),(n.cancelToken||n.signal)&&(p=r(k=>{x&&(a(!k||k.type?new _e(null,e,x):k),x.abort(),x=null)},"onCanceled"),n.cancelToken&&n.cancelToken.subscribe(p),n.signal&&(n.signal.aborted?p():n.signal.addEventListener("abort",p)));let y=Fa(n.url);if(y&&P.protocols.indexOf(y)===-1){a(new S("Unsupported protocol "+y+":",S.ERR_BAD_REQUEST,e));return}x.send(s||null)},"dispatchXhrRequest"))};var pw=r((e,t)=>{let{length:i}=e=e?e.filter(Boolean):[];if(t||i){let a=new AbortController,n,s=r(function(l){if(!n){n=!0,c();let p=l instanceof Error?l:this.reason;a.abort(p instanceof S?p:new _e(p instanceof Error?p.message:p))}},"onabort"),o=t&&setTimeout(()=>{o=null,s(new S(`timeout ${t} of ms exceeded`,S.ETIMEDOUT))},t),c=r(()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(l=>{l.unsubscribe?l.unsubscribe(s):l.removeEventListener("abort",s)}),e=null)},"unsubscribe");e.forEach(l=>l.addEventListener("abort",s));let{signal:u}=a;return u.unsubscribe=()=>d.asap(c),u}},"composeSignals"),Ym=pw;var uw=r(function*(e,t){let i=e.byteLength;if(!t||i<t){yield e;return}let a=0,n;for(;a<i;)n=a+t,yield e.slice(a,n),a=n},"streamChunk"),dw=r(async function*(e,t){for await(let i of fw(e))yield*uw(i,t)},"readBytes"),fw=r(async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}let t=e.getReader();try{for(;;){let{done:i,value:a}=await t.read();if(i)break;yield a}}finally{await t.cancel()}},"readStream"),cc=r((e,t,i,a)=>{let n=dw(e,t),s=0,o,c=r(u=>{o||(o=!0,a&&a(u))},"_onFinish");return new ReadableStream({async pull(u){try{let{done:l,value:p}=await n.next();if(l){c(),u.close();return}let f=p.byteLength;if(i){let m=s+=f;i(m)}u.enqueue(new Uint8Array(p))}catch(l){throw c(l),l}},cancel(u){return c(u),n.return()}},{highWaterMark:2})},"trackStream");var Xn=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",Qm=Xn&&typeof ReadableStream=="function",mw=Xn&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),eh=r((e,...t)=>{try{return!!e(...t)}catch{return!1}},"test"),hw=Qm&&eh(()=>{let e=!1,t=new Request(P.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),Xm=64*1024,lc=Qm&&eh(()=>d.isReadableStream(new Response("").body)),Yn={stream:lc&&(e=>e.body)};Xn&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!Yn[t]&&(Yn[t]=d.isFunction(e[t])?i=>i[t]():(i,a)=>{throw new S(`Response type '${t}' is not supported`,S.ERR_NOT_SUPPORT,a)})})})(new Response);var vw=r(async e=>{if(e==null)return 0;if(d.isBlob(e))return e.size;if(d.isSpecCompliantForm(e))return(await new Request(P.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(d.isArrayBufferView(e)||d.isArrayBuffer(e))return e.byteLength;if(d.isURLSearchParams(e)&&(e=e+""),d.isString(e))return(await mw(e)).byteLength},"getBodyLength"),xw=r(async(e,t)=>{let i=d.toFiniteNumber(e.getContentLength());return i??vw(t)},"resolveBodyLength"),th=Xn&&(async e=>{let{url:t,method:i,data:a,signal:n,cancelToken:s,timeout:o,onDownloadProgress:c,onUploadProgress:u,responseType:l,headers:p,withCredentials:f="same-origin",fetchOptions:m}=Jn(e);l=l?(l+"").toLowerCase():"text";let h=Ym([n,s&&s.toAbortSignal()],o),v,g=h&&h.unsubscribe&&(()=>{h.unsubscribe()}),x;try{if(u&&hw&&i!=="get"&&i!=="head"&&(x=await xw(p,a))!==0){let w=new Request(t,{method:"POST",body:a,duplex:"half"}),R;if(d.isFormData(a)&&(R=w.headers.get("content-type"))&&p.setContentType(R),w.body){let[A,T]=Ni(x,ct(Bi(u)));a=cc(w.body,Xm,A,T)}}d.isString(f)||(f=f?"include":"omit");let b="credentials"in Request.prototype;v=new Request(t,{...m,signal:h,method:i.toUpperCase(),headers:p.normalize().toJSON(),body:a,duplex:"half",credentials:b?f:void 0});let y=await fetch(v),k=lc&&(l==="stream"||l==="response");if(lc&&(c||k&&g)){let w={};["status","statusText","headers"].forEach(I=>{w[I]=y[I]});let R=d.toFiniteNumber(y.headers.get("content-length")),[A,T]=c&&Ni(R,ct(Bi(c),!0))||[];y=new Response(cc(y.body,Xm,A,()=>{T&&T(),g&&g()}),w)}l=l||"text";let E=await Yn[d.findKey(Yn,l)||"text"](y,e);return!k&&g&&g(),await new Promise((w,R)=>{Ve(w,R,{data:E,headers:K.from(y.headers),status:y.status,statusText:y.statusText,config:e,request:v})})}catch(b){throw g&&g(),b&&b.name==="TypeError"&&/fetch/i.test(b.message)?Object.assign(new S("Network Error",S.ERR_NETWORK,e,v),{cause:b.cause||b}):S.from(b,b&&b.code,e,v)}});var pc={http:Zm,xhr:Jm,fetch:th};d.forEach(pc,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});var ih=r(e=>`- ${e}`,"renderReason"),gw=r(e=>d.isFunction(e)||e===null||e===!1,"isResolvedHandle"),Qn={getAdapter:r(e=>{e=d.isArray(e)?e:[e];let{length:t}=e,i,a,n={};for(let s=0;s<t;s++){i=e[s];let o;if(a=i,!gw(i)&&(a=pc[(o=String(i)).toLowerCase()],a===void 0))throw new S(`Unknown adapter '${o}'`);if(a)break;n[o||"#"+s]=a}if(!a){let s=Object.entries(n).map(([c,u])=>`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build")),o=t?s.length>1?`since :
16
16
  `+s.map(ih).join(`
17
17
  `):" "+ih(s[0]):"as no adapter specified";throw new S("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return a},"getAdapter"),adapters:pc};function uc(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new _e(null,e)}r(uc,"throwIfCancellationRequested");function er(e){return uc(e),e.headers=K.from(e.headers),e.data=Ta.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Qn.getAdapter(e.adapter||Oi.adapter)(e).then(r(function(a){return uc(e),a.data=Ta.call(e,e.transformResponse,a),a.headers=K.from(a.headers),a},"onAdapterResolution"),r(function(a){return Ca(a)||(uc(e),a&&a.response&&(a.response.data=Ta.call(e,e.transformResponse,a.response),a.response.headers=K.from(a.response.headers))),Promise.reject(a)},"onAdapterRejection"))}r(er,"dispatchRequest");var tr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{tr[e]=r(function(a){return typeof a===e||"a"+(t<1?"n ":" ")+e},"validator")});var ah={};tr.transitional=r(function(t,i,a){function n(s,o){return"[Axios v"+Jt+"] Transitional option '"+s+"'"+o+(a?". "+a:"")}return r(n,"formatMessage"),(s,o,c)=>{if(t===!1)throw new S(n(o," has been removed"+(i?" in "+i:"")),S.ERR_DEPRECATED);return i&&!ah[o]&&(ah[o]=!0,console.warn(n(o," has been deprecated since v"+i+" and will be removed in the near future"))),t?t(s,o,c):!0}},"transitional");tr.spelling=r(function(t){return(i,a)=>(console.warn(`${a} is likely a misspelling of ${t}`),!0)},"spelling");function bw(e,t,i){if(typeof e!="object")throw new S("options must be an object",S.ERR_BAD_OPTION_VALUE);let a=Object.keys(e),n=a.length;for(;n-- >0;){let s=a[n],o=t[s];if(o){let c=e[s],u=c===void 0||o(c,s,e);if(u!==!0)throw new S("option "+s+" must be "+u,S.ERR_BAD_OPTION_VALUE);continue}if(i!==!0)throw new S("Unknown option "+s,S.ERR_BAD_OPTION)}}r(bw,"assertOptions");var Da={assertOptions:bw,validators:tr};var Ge=Da.validators,dc=class dc{constructor(t){this.defaults=t,this.interceptors={request:new To,response:new To}}async request(t,i){try{return await this._request(t,i)}catch(a){if(a instanceof Error){let n={};Error.captureStackTrace?Error.captureStackTrace(n):n=new Error;let s=n.stack?n.stack.replace(/^.+\n/,""):"";try{a.stack?s&&!String(a.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(a.stack+=`
18
- `+s):a.stack=s}catch{}}throw a}}_request(t,i){typeof t=="string"?(i=i||{},i.url=t):i=t||{},i=Be(this.defaults,i);let{transitional:a,paramsSerializer:n,headers:s}=i;a!==void 0&&Da.assertOptions(a,{silentJSONParsing:Ge.transitional(Ge.boolean),forcedJSONParsing:Ge.transitional(Ge.boolean),clarifyTimeoutError:Ge.transitional(Ge.boolean)},!1),n!=null&&(d.isFunction(n)?i.paramsSerializer={serialize:n}:Da.assertOptions(n,{encode:Ge.function,serialize:Ge.function},!0)),Da.assertOptions(i,{baseUrl:Ge.spelling("baseURL"),withXsrfToken:Ge.spelling("withXSRFToken")},!0),i.method=(i.method||this.defaults.method||"get").toLowerCase();let o=s&&d.merge(s.common,s[i.method]);s&&d.forEach(["delete","get","head","post","put","patch","common"],v=>{delete s[v]}),i.headers=K.concat(o,s);let c=[],u=!0;this.interceptors.request.forEach(r(function(g){typeof g.runWhen=="function"&&g.runWhen(i)===!1||(u=u&&g.synchronous,c.unshift(g.fulfilled,g.rejected))},"unshiftRequestInterceptors"));let l=[];this.interceptors.response.forEach(r(function(g){l.push(g.fulfilled,g.rejected)},"pushResponseInterceptors"));let p,f=0,m;if(!u){let v=[er.bind(this),void 0];for(v.unshift.apply(v,c),v.push.apply(v,l),m=v.length,p=Promise.resolve(i);f<m;)p=p.then(v[f++],v[f++]);return p}m=c.length;let h=i;for(f=0;f<m;){let v=c[f++],g=c[f++];try{h=v(h)}catch(x){g.call(this,x);break}}try{p=er.call(this,h)}catch(v){return Promise.reject(v)}for(f=0,m=l.length;f<m;)p=p.then(l[f++],l[f++]);return p}getUri(t){t=Be(this.defaults,t);let i=Zt(t.baseURL,t.url);return Kt(i,t.params,t.paramsSerializer)}};r(dc,"Axios");var Mi=dc;d.forEach(["delete","get","head","options"],r(function(t){Mi.prototype[t]=function(i,a){return this.request(Be(a||{},{method:t,url:i,data:(a||{}).data}))}},"forEachMethodNoData"));d.forEach(["post","put","patch"],r(function(t){function i(a){return r(function(s,o,c){return this.request(Be(c||{},{method:t,headers:a?{"Content-Type":"multipart/form-data"}:{},url:s,data:o}))},"httpMethod")}r(i,"generateHTTPMethod"),Mi.prototype[t]=i(),Mi.prototype[t+"Form"]=i(!0)},"forEachMethodWithData"));var Ua=Mi;var ir=class ir{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let i;this.promise=new Promise(r(function(s){i=s},"promiseExecutor"));let a=this;this.promise.then(n=>{if(!a._listeners)return;let s=a._listeners.length;for(;s-- >0;)a._listeners[s](n);a._listeners=null}),this.promise.then=n=>{let s,o=new Promise(c=>{a.subscribe(c),s=c}).then(n);return o.cancel=r(function(){a.unsubscribe(s)},"reject"),o},t(r(function(s,o,c){a.reason||(a.reason=new _e(s,o,c),i(a.reason))},"cancel"))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;let i=this._listeners.indexOf(t);i!==-1&&this._listeners.splice(i,1)}toAbortSignal(){let t=new AbortController,i=r(a=>{t.abort(a)},"abort");return this.subscribe(i),t.signal.unsubscribe=()=>this.unsubscribe(i),t.signal}static source(){let t;return{token:new ir(r(function(n){t=n},"executor")),cancel:t}}};r(ir,"CancelToken");var fc=ir,nh=fc;function mc(e){return r(function(i){return e.apply(null,i)},"wrap")}r(mc,"spread");function hc(e){return d.isObject(e)&&e.isAxiosError===!0}r(hc,"isAxiosError");var vc={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(vc).forEach(([e,t])=>{vc[t]=e});var rh=vc;function sh(e){let t=new Ua(e),i=wa(Ua.prototype.request,t);return d.extend(i,Ua.prototype,t,{allOwnKeys:!0}),d.extend(i,t,null,{allOwnKeys:!0}),i.create=r(function(n){return sh(Be(e,n))},"create"),i}r(sh,"createInstance");var J=sh(Oi);J.Axios=Ua;J.CanceledError=_e;J.CancelToken=nh;J.isCancel=Ca;J.VERSION=Jt;J.toFormData=kt;J.AxiosError=S;J.Cancel=J.CanceledError;J.all=r(function(t){return Promise.all(t)},"all");J.spread=mc;J.isAxiosError=hc;J.mergeConfig=Be;J.AxiosHeaders=K;J.formToJSON=e=>Hn(d.isHTMLForm(e)?new FormData(e):e);J.getAdapter=Qn.getAdapter;J.HttpStatusCode=rh;J.default=J;var ar=J;var{Axios:CA,AxiosError:RA,CanceledError:AA,isCancel:OA,CancelToken:IA,VERSION:FA,all:LA,Cancel:DA,isAxiosError:UA,spread:NA,toFormData:BA,AxiosHeaders:MA,HttpStatusCode:jA,formToJSON:PA,getAdapter:zA,mergeConfig:qA}=ar;var ji=require("fs");var xc=class xc{constructor(t,i,a,n,s=!1,o={start:r(c=>{},"start"),complete:r(c=>{},"complete"),error:r((c,u)=>{},"error")}){this.apiBaseURL=t;this.apiKey=i;this.uploadTimeout=a;this.makeGetUploadUrlAPIPath=n;this.isolationMode=s;this.reporter=o}logMemoryUsage(t){let i=process.memoryUsage();console.log(`[TestAssetUploader:${t}] Memory:`,{rss:`${Math.round(i.rss/1024/1024)}MB`,heapUsed:`${Math.round(i.heapUsed/1024/1024)}MB`,heapTotal:`${Math.round(i.heapTotal/1024/1024)}MB`})}async uploadAsset(t){if(this.logMemoryUsage("Before upload"),t.uploadStarted=!0,this.isolationMode){t.lastProgress=Date.now(),t.loadedBytes=0,t.sizeBytes=100,t.response=new Promise(n=>{setTimeout(()=>{t.complete=!0,t.lastProgress=Date.now(),t.loadedBytes=100,n({statusCode:200,ok:!0,body:"OK"})},10)});return}let{path:i}=t.info,a=null;try{let s=(0,ji.statSync)(i).size;if(t.sizeBytes=s,t.loadedBytes=0,t.lastProgress=Date.now(),this.reporter.start(i),await this.getSignedURLForUpload(t),!t.uploadURL){t.error=!0;return}a=(0,ji.createReadStream)(i);let o=await ar.put(t.uploadURL,a,{headers:{"Content-Type":Yd[t.info.type]??"",Connection:"close"},maxBodyLength:1/0,maxContentLength:1/0,onUploadProgress:r(c=>{t.lastProgress=c.loaded>t.loadedBytes?Date.now():t.lastProgress,t.loadedBytes=c.loaded,t.sizeBytes=c.total??s},"onUploadProgress"),timeout:this.uploadTimeout??void 0,httpAgent:!1,httpsAgent:!1});if(o.status!==200)throw new Error(`Upload failed with status ${o.status}`);this.reporter.complete(i),t.complete=!0,t.response={status:o.status,statusText:o.statusText,headers:o.headers},console.log("response.data size",JSON.stringify(o.data).length),t.removeAfterUpload&&(0,ji.unlinkSync)(i),this.logMemoryUsage("After successful upload")}catch(n){this.reporter.error(i,n),t.error=!0,this.logMemoryUsage("After failed upload")}finally{if(a)try{a.destroy&&a.destroy(),a.removeAllListeners()}catch(n){console.warn("Stream cleanup error:",n)}finally{a=null}this.logMemoryUsage("After cleanup")}}async getSignedURLForUpload(t){try{let i=JSON.stringify(t.info),a=`${this.apiBaseURL}/${this.makeGetUploadUrlAPIPath(t)}`,n={Accept:"application/json","Content-Type":"application/json",ChecksumAppCode:this.apiKey},s=await fetch(a,{method:"POST",headers:n,body:i}),{url:o}=await s.json();t.uploadURL=o}catch(i){return this.reporter.error(t.info.path,"Error getting signed URL for artifact"+String(i)),null}}};r(xc,"TestAssetUploader");var nr=xc;var bc=class bc{constructor(){}sendToCLI(...t){console.log(`{trm}${t.map(i=>i.toString()).join(`,
19
- `)}{/trm}`)}event(t,i){return new Promise(a=>{let n=i?`${t}=${i}`:t;setTimeout(()=>{this.sendToCLI(`monitor:${n}`),a(!0)},100)})}trace(t,i){let a=i?`${t}=${JSON.stringify(i)}`:t;setTimeout(()=>{this.sendToCLI(`trace:${a}`)},100)}log(t){return this.event("log",t)}debug(...t){this.sendToCLI(t)}};r(bc,"CLIChannel");var gc=bc,yc=class yc{constructor(t,i=!1){this.config=t;this.isolationMode=i;this.MAX_UPLOADS=15;this.MONITOR_INTERVAL=2500;this.UPLOAD_TIMEOUT=10*60*1e3;this.UPLOAD_STALL_TIMEOUT=3*60*60*1e3;this.WATCH_TIMEOUT=2*60*1e3;this.assets=[];this.watchAssets=[];this.reportComplete=!1;this.processingInProgress=!1;this.pwTestIdToChecksumTestId={};this.monitorInterval=null;this.activeWatchers=new Set;this.stdinListener=null;this.rrwebRecordingFolder=null;this.completedAssetsCount=0;this.erroredAssetsCount=0;this.totalAssetsAdded=0;this.channel=new gc,this.logMemoryUsage("TestRunMonitor initialized"),this.testAssetUploader=new nr(t.apiURL,t.apiKey,this.UPLOAD_TIMEOUT,()=>`client-api/test-runs/${this.config.sessionId}/get-upload-url`,this.isolationMode,{start:r(a=>this.channel.trace("Upload Start",{filename:a}),"start"),complete:r(a=>this.channel.trace("Upload Complete",{filename:a}),"complete"),error:r((a,n)=>this.channel.trace("Upload Failed",{filename:a,error:n}),"error")}),this.monitorInterval=setInterval(this.monitorUploads.bind(this),this.MONITOR_INTERVAL),this.listenForMessages(),this.startServer()}listenForMessages(){this.stdinListener=async t=>{let i=t.toString().trim();if(!i.startsWith("cli:"))return;let[a,n]=i.substring(4).split("=");switch(this.channel.debug("Received message from CLI "+a+" "+n),a){case"report":if(this.testRunEndTime=Date.now(),n!=="false")try{let s=Buffer.from(n,"base64").toString("utf-8"),o=JSON.parse(s);await this.handleReport(o)}catch(s){this.channel.debug("Error JSON parsing report payload, continue without report. Error: "+this.stringify(s)),this.reportComplete=!0}else this.reportComplete=!0;this.monitorUploadsCompletion();break;case"shutdown":this.shutdown();break}},process.stdin.on("data",this.stdinListener)}readMetadataFile(t){try{return JSON.parse((0,pe.readFileSync)(t,"utf-8"))}catch(i){return this.channel.trace("Runtime Error",`Error reading checksum metadata file ${t}: ${i.message}`),{}}}async serveReport(t){try{let i=(0,ke.dirname)(t);await this.channel.log("Serving report in browser: "+i);let a=Dn.isRepoMode?`yarn playwright show-report ${i}`:`npx playwright show-report ${i}`,n=(0,ch.execSync)(a,{encoding:"utf8",stdio:"pipe"});await this.channel.log("Success: Report opened in browser")}catch(i){await this.channel.log(`Error serving report in browser: ${i.message}`),i.stderr&&await this.channel.log(i.stderr.toString())}}async handleReport(t){let{reportPath:i,pathToChecksumMetadata:a,didFail:n,openReportCriteria:s}=t;this.channel.debug(`Handling report ${this.isolationMode?"(isolation mode)":""}`+i),this.uploadReportData((0,ke.dirname)(i));try{let o=this.readMetadataFile(a),c=new Un(i,this.config.sessionId,this.pwTestIdToChecksumTestId,o,{hosted:!this.isolationMode},this.channel);try{this.reportAsset=this.initAsset({type:"report",path:void 0}),await c.process(),this.reportAsset.info.path=c.getProcessedFilePath(),this.uploadAsset(this.reportAsset)}catch(l){this.channel.debug("Error processing report, "+l.message),this.reportAsset.error=!0}this.stats=c.getReportsStats(),this.channel.debug("Checking watch assets");let u=this.watchAssets.filter(l=>!(l.type!=="trace"||c.testHasTrace(l.testId,l.project)));u.length>0&&(this.channel.debug("Removed watch assets - "),this.channel.debug(JSON.stringify(u.map(l=>l.path)))),this.watchAssets=this.watchAssets.filter(l=>l.type!=="trace"||c.testHasTrace(l.testId,l.project))}catch(o){this.channel.debug("Error processing report, "+this.stringify(o)),this.reportAsset.error=!0}finally{if((s==="always"||s==="on-failure"&&n)&&await this.serveReport(i),a&&(0,pe.existsSync)(a))try{(0,pe.unlinkSync)(a)}catch(c){console.error(`Error deleting checksum metadata file ${a}: ${c.message}`)}}}async uploadReportData(t){let i=(0,ke.join)(t,"data");try{let a=(0,pe.readdirSync)(i),n=[".zip",".webm"],s=a.filter(o=>!n.includes((0,ke.extname)(o)));this.channel.debug("Preparing to upload report data files,"+s);for(let o of s)this.channel.debug("Uploading report data file,"+o),this.addAsset({type:"report-data-file",fileName:o,path:`${i}/${o}`})}catch(a){this.channel.debug(`Error reading/adding report data files from dir ${i}`+a.message)}}shutdown(){this.channel.debug("Received shutdown message from CLI"),this.cleanup(),process.exit(0)}cleanup(){this.monitorInterval&&(clearInterval(this.monitorInterval),this.monitorInterval=null);for(let t of this.activeWatchers)try{t.close()}catch{}this.activeWatchers.clear(),this.stdinListener&&(process.stdin.removeListener("data",this.stdinListener),this.stdinListener=null),this.server&&(this.server.close(),this.server=null);for(let t of this.assets)t.response=void 0,t.uploadURL=void 0,t.sizeBytes=void 0,t.loadedBytes=void 0,t.lastProgress=void 0;this.assets=[],this.rrwebRecordingFolder=null}async monitorUploadsCompletion(){var t;if(!this.reportComplete&&this.reportAsset&&(this.reportAsset.complete||this.reportAsset.error)){this.reportComplete=!0;let i="{}";try{i=JSON.stringify(this.stats)}catch(a){this.channel.debug("Error stringifying stats"),this.channel.log(`[monitorUploadsCompletion] Error stringifying stats: ${a.message}`)}this.channel.event("report-complete",`${(t=this.reportAsset)!=null&&t.complete?"true":"false"}:${i}`)}if(!this.processingInProgress&&this.reportComplete&&(this.assets.filter(i=>i.complete||i.error).length===this.assets.length||this.isUploadStalled())&&(this.watchAssets.length===0||this.testRunEndTime&&Date.now()-this.testRunEndTime>this.WATCH_TIMEOUT)){let i=this.assets.filter(s=>s.error),a=i.length>0?"uploads-complete-with-errors":"uploads-complete",n=a==="uploads-complete"?{}:{uploadErrors:i.map(s=>{try{return JSON.stringify(s)}catch{return s.info.path}}),watchAssets:this.watchAssets,testRunEndTime:this.testRunEndTime,now:Date.now(),completedCount:this.assets.filter(s=>s.complete).length,erroredCount:i.length,totalCount:this.assets.length};this.logMemoryUsage("Before final cleanup"),this.cleanUp(),this.logMemoryUsage("After final cleanup"),this.channel.event(a,JSON.stringify(n));return}await Na(1e3),this.monitorUploadsCompletion()}cleanUp(){if(this.rrwebRecordingFolder)try{(0,pe.rmdirSync)(this.rrwebRecordingFolder,{recursive:!0}),this.channel.debug(`Cleaned up rrweb folder: ${this.rrwebRecordingFolder}`)}catch(t){this.channel.debug(`Error cleaning up rrweb folder: ${t.message}`)}else this.channel.debug("No rrweb recording folder to clean up");for(let t of this.assets)t.response=void 0,t.uploadURL=void 0,t.sizeBytes=void 0,t.loadedBytes=void 0,t.lastProgress=void 0;this.assets=[]}isUploadStalled(){let t=this.assets.reduce((i,a)=>Math.max(i,a.lastProgress??0),0)-Date.now()>this.UPLOAD_STALL_TIMEOUT;return t&&this.channel.log("Uploads are stalled"),t}async startServer(){let t=await this.acquirePortNumber();this.channel.event("port",t.toString()),this.server=(0,ph.createServer)((i,a)=>{let n=r(o=>{a.writeHead(400,{"Content-Type":"text/plain"}),a.end(o)},"returnErrorWithMessage");if(i.method!=="POST"){a.writeHead(404,{"Content-Type":"text/plain"}),a.end("Method not allowed");return}let s="";i.on("data",o=>{s+=o.toString()}),i.on("end",()=>{let o;try{o=JSON.parse(s)}catch{return n("Invalid body")}let{type:c,payload:u,watch:l}=o;switch(this.channel.debug(`Server received message, ${c}, ${this.stringify(u)}`),c){case"asset":if(!u.path||!u.type)return n("Missing arguments");l?this.watchAsset(u):this.processAsset(u);break;case"testInfo":if(!u.pwTestId||!u.checksumTestId)return n("Missing arguments");this.pwTestIdToChecksumTestId[u.pwTestId]=u.checksumTestId;break;case"checksumTestMetadata":let p=u;if(!p.checksumTestId||!u.data)return n("Missing arguments");this.channel.event("checksumTestMetadata",JSON.stringify({...p}));break;case"testStats":break;case"playwrightConfig":this.channel.event("playwrightConfig",JSON.stringify(u));break;default:return n("Invalid message type")}a.writeHead(200,{"Content-Type":"text/plain"}),a.end("OK")})}),this.server.listen(t)}stringify(t){try{return JSON.stringify(t)}catch{return"message"in t?t.message:t}}monitorUploads(){this.cleanupCompletedAssets(),this.logMemoryUsageAtKeyPoints();let{totalSizeBytes:t,totalUploadedBytes:i}=this.calculateUploadProgress();if(t>0&&!this.isolationMode){let s=(i/t*100).toFixed(2);this.channel.event("upload-progress",s)}let a=this.assets.filter(s=>!s.uploadStarted);if(a.length===0)return;let n=r(()=>this.assets.filter(s=>s.uploadStarted&&!s.complete&&!s.error).length,"getNumOfActiveUploads");if(!(n()>=this.MAX_UPLOADS))for(;a.length>0&&n()<this.MAX_UPLOADS;){let s=a.pop();this.uploadAsset(s)}}calculateUploadProgress(){let t=this.assets.reduce((a,{sizeBytes:n})=>a+(n??0),0),i=Math.min(t,this.assets.reduce((a,{loadedBytes:n})=>a+(n??0),0));return{totalSizeBytes:t,totalUploadedBytes:i}}cleanupCompletedAssets(){let t=this.assets.length;this.assets=this.assets.filter(n=>n.complete||n.error?(n.complete?this.completedAssetsCount++:n.error&&this.erroredAssetsCount++,n.response=void 0,n.uploadURL=void 0,n.sizeBytes=void 0,n.loadedBytes=void 0,n.lastProgress=void 0,!1):!0);let i=this.assets.length,a=t-i;a>0&&(this.channel.debug(`Cleaned up ${a} completed assets. Active assets: ${i}`),this.logMemoryUsage(`After cleanup (removed ${a} assets)`))}logMemoryUsageAtKeyPoints(){this.assets.length>0&&this.assets.length%5===0&&this.logMemoryUsage(`Upload progress - ${this.assets.length} assets`)}logMemoryUsage(t){let i={stage:t,activeAssets:this.assets.length,completedAssets:this.completedAssetsCount,erroredAssets:this.erroredAssetsCount,totalAssets:this.totalAssetsAdded};this.channel.event("log-memory-usage",JSON.stringify(i))}getUploadLogMessage(t){switch(t.info.type){case"report":return"Uploading report";case"har":return`Uploading har file for test ${t.info.testId}`;case"trace":return`Uploading trace file for test ${t.info.testId}`;case"esra":return`Uploading metadata file for test ${t.info.testId}`;case"test-files":return`Uploading auto-healed test code for file ${t.info.path}`}}async uploadAsset(t){try{t.uploadStarted=!0;let i=this.getUploadLogMessage(t);i&&!this.isolationMode&&this.channel.event("log",i),await this.testAssetUploader.uploadAsset(t)}catch(i){t.error=!0,this.channel.debug("Error uploading asset"+this.stringify(i)),this.channel.trace("Upload Failed",{asset:t.info.fileName,error:String(i)})}}async getSignedURLForUpload(t){try{let{apiKey:i,sessionId:a,apiURL:n}=this.config,s=t.info,o=await fetch(`${n}/client-api/test-runs/${a}/get-upload-url`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json",ChecksumAppCode:i},body:JSON.stringify(s)}),{url:c}=await o.json();t.uploadURL=c}catch(i){return this.channel.debug("Error getting signed URL for artifact"+this.stringify(i)),null}}watchAsset(t){this.channel.debug("Watching file "+t.path),this.watchAssets.push({...t,addedAt:Date.now()});let i=r(async()=>{await this.waitForFileComplete(t.path)&&(this.processAsset(t),this.watchAssets=this.watchAssets.filter(n=>n.path!==t.path))},"waitForCompletion");if((0,pe.existsSync)(t.path))i();else{let a=(0,ke.dirname)(t.path),n=(0,ke.basename)(t.path),s=!1,o=(0,pe.watch)(a,async(c,u)=>{if(!(u!==n||s))try{this.channel.debug("Watched file changed "+t.path),s=!0,await i()}finally{o.close(),this.activeWatchers.delete(o)}});this.activeWatchers.add(o)}}waitForFileComplete(t,i=1e3,a=6e4,n=1){return new Promise(s=>{let o=Date.now(),c=0,u=r(()=>{if(!(0,pe.existsSync)(t))return this.channel.debug(`Asset required for upload doesn't exist anymore ${t}`),s(!1);let l=(0,pe.statSync)(t).size;if(l===c){if(n>0){this.channel.debug(`File size has not changed, verifying stabilization, ${t}, size: ${l}, equalSizeValidationCountLeft: ${n}`),n--,setTimeout(u,i);return}return this.channel.debug(`File size has not changed, stabilization verified, ${t}, size: ${l}`),s(!0)}if(this.channel.debug(`File size changed, waiting for stabilization, ${t}, previous size: ${c}, current size: ${l}`),Date.now()-o>a)return this.channel.debug(`Asset required for upload is taking over ${a} ms to write to disk ${t}`),s(!0);c=l,setTimeout(u,i)},"checkFile");u()})}processAsset(t){switch(t.type){case"trace":return this.processTrace(t.path,t.testId);case"har":return this.processHar(t.path,t.testId);case"rrweb-recording":case"esra":case"test-files":return this.addAsset(t)}}async processHar(t,i){await Na(1e3);let a=await Md(t);if(this.channel.debug("Processed har, sending for upload"),a)return this.addAsset({type:"har",path:a,testId:i})}calculateSha1(t){let i=(0,lh.createHash)("sha1");return i.update(t),i.digest("hex")}async processTrace(t,i){try{this.processingInProgress=!0,await Na(1e3);let a=t.replace(".zip",".processed.zip"),n=new On("runtime",(0,ke.dirname)(t),a,"$checksum"),s=await n.process(),c=r(()=>{let u=n.getBuffer(t);return this.calculateSha1(u)+(0,ke.extname)(t)},"makePlaywrightHTMLReporterName")();s?(this.channel.debug("Processed trace files and sending for upload"),this.addAsset({type:"report-data-file",path:a,testId:i,fileName:c}),this.addAsset({type:"report-data-file",path:t,testId:i,fileName:`${c}.original`})):(this.channel.debug("Trace file has not been processed, sending original file for upload"),this.addAsset({type:"report-data-file",path:t,testId:i,fileName:c}))}catch(a){let n=String(a);this.channel.debug("Error processing trace file"+n),this.channel.trace("Trace Processing Error",{error:n})}finally{this.processingInProgress=!1}}addAsset(t){this.channel.debug("Adding file "+t.path);let i=this.initAsset(t);return this.assets.push(i),this.totalAssetsAdded++,t.type==="rrweb-recording"&&t.path&&(this.rrwebRecordingFolder=(0,ke.dirname)(t.path)),this.assets.length%10===0&&this.logMemoryUsage(`After adding ${this.assets.length} assets`),i}initAsset(t){return{complete:!1,error:!1,response:void 0,info:t,removeAfterUpload:t.type==="rrweb-recording"}}async acquirePortNumber(){return await new Promise((t,i)=>{let a=uh.createServer();a.unref(),a.on("error",i),a.listen(0,()=>{let n=a.address().port;a.close(()=>{t(n)})})})}};r(yc,"TestRunMonitor");var rr=yc,dh;try{dh=JSON.parse(process.argv[2])}catch(e){console.log("Error starting test run monitor",e),process.exit(1)}var oh;new rr(dh,((oh=process.argv)==null?void 0:oh[3])==="isolated");0&&(module.exports={TestRunMonitor});
18
+ `+s):a.stack=s}catch{}}throw a}}_request(t,i){typeof t=="string"?(i=i||{},i.url=t):i=t||{},i=Be(this.defaults,i);let{transitional:a,paramsSerializer:n,headers:s}=i;a!==void 0&&Da.assertOptions(a,{silentJSONParsing:Ge.transitional(Ge.boolean),forcedJSONParsing:Ge.transitional(Ge.boolean),clarifyTimeoutError:Ge.transitional(Ge.boolean)},!1),n!=null&&(d.isFunction(n)?i.paramsSerializer={serialize:n}:Da.assertOptions(n,{encode:Ge.function,serialize:Ge.function},!0)),Da.assertOptions(i,{baseUrl:Ge.spelling("baseURL"),withXsrfToken:Ge.spelling("withXSRFToken")},!0),i.method=(i.method||this.defaults.method||"get").toLowerCase();let o=s&&d.merge(s.common,s[i.method]);s&&d.forEach(["delete","get","head","post","put","patch","common"],v=>{delete s[v]}),i.headers=K.concat(o,s);let c=[],u=!0;this.interceptors.request.forEach(r(function(g){typeof g.runWhen=="function"&&g.runWhen(i)===!1||(u=u&&g.synchronous,c.unshift(g.fulfilled,g.rejected))},"unshiftRequestInterceptors"));let l=[];this.interceptors.response.forEach(r(function(g){l.push(g.fulfilled,g.rejected)},"pushResponseInterceptors"));let p,f=0,m;if(!u){let v=[er.bind(this),void 0];for(v.unshift.apply(v,c),v.push.apply(v,l),m=v.length,p=Promise.resolve(i);f<m;)p=p.then(v[f++],v[f++]);return p}m=c.length;let h=i;for(f=0;f<m;){let v=c[f++],g=c[f++];try{h=v(h)}catch(x){g.call(this,x);break}}try{p=er.call(this,h)}catch(v){return Promise.reject(v)}for(f=0,m=l.length;f<m;)p=p.then(l[f++],l[f++]);return p}getUri(t){t=Be(this.defaults,t);let i=Zt(t.baseURL,t.url);return Kt(i,t.params,t.paramsSerializer)}};r(dc,"Axios");var Mi=dc;d.forEach(["delete","get","head","options"],r(function(t){Mi.prototype[t]=function(i,a){return this.request(Be(a||{},{method:t,url:i,data:(a||{}).data}))}},"forEachMethodNoData"));d.forEach(["post","put","patch"],r(function(t){function i(a){return r(function(s,o,c){return this.request(Be(c||{},{method:t,headers:a?{"Content-Type":"multipart/form-data"}:{},url:s,data:o}))},"httpMethod")}r(i,"generateHTTPMethod"),Mi.prototype[t]=i(),Mi.prototype[t+"Form"]=i(!0)},"forEachMethodWithData"));var Ua=Mi;var ir=class ir{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let i;this.promise=new Promise(r(function(s){i=s},"promiseExecutor"));let a=this;this.promise.then(n=>{if(!a._listeners)return;let s=a._listeners.length;for(;s-- >0;)a._listeners[s](n);a._listeners=null}),this.promise.then=n=>{let s,o=new Promise(c=>{a.subscribe(c),s=c}).then(n);return o.cancel=r(function(){a.unsubscribe(s)},"reject"),o},t(r(function(s,o,c){a.reason||(a.reason=new _e(s,o,c),i(a.reason))},"cancel"))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;let i=this._listeners.indexOf(t);i!==-1&&this._listeners.splice(i,1)}toAbortSignal(){let t=new AbortController,i=r(a=>{t.abort(a)},"abort");return this.subscribe(i),t.signal.unsubscribe=()=>this.unsubscribe(i),t.signal}static source(){let t;return{token:new ir(r(function(n){t=n},"executor")),cancel:t}}};r(ir,"CancelToken");var fc=ir,nh=fc;function mc(e){return r(function(i){return e.apply(null,i)},"wrap")}r(mc,"spread");function hc(e){return d.isObject(e)&&e.isAxiosError===!0}r(hc,"isAxiosError");var vc={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(vc).forEach(([e,t])=>{vc[t]=e});var rh=vc;function sh(e){let t=new Ua(e),i=wa(Ua.prototype.request,t);return d.extend(i,Ua.prototype,t,{allOwnKeys:!0}),d.extend(i,t,null,{allOwnKeys:!0}),i.create=r(function(n){return sh(Be(e,n))},"create"),i}r(sh,"createInstance");var J=sh(Oi);J.Axios=Ua;J.CanceledError=_e;J.CancelToken=nh;J.isCancel=Ca;J.VERSION=Jt;J.toFormData=kt;J.AxiosError=S;J.Cancel=J.CanceledError;J.all=r(function(t){return Promise.all(t)},"all");J.spread=mc;J.isAxiosError=hc;J.mergeConfig=Be;J.AxiosHeaders=K;J.formToJSON=e=>Hn(d.isHTMLForm(e)?new FormData(e):e);J.getAdapter=Qn.getAdapter;J.HttpStatusCode=rh;J.default=J;var ar=J;var{Axios:CA,AxiosError:RA,CanceledError:AA,isCancel:OA,CancelToken:IA,VERSION:FA,all:LA,Cancel:DA,isAxiosError:UA,spread:NA,toFormData:BA,AxiosHeaders:MA,HttpStatusCode:jA,formToJSON:PA,getAdapter:zA,mergeConfig:qA}=ar;var ji=require("fs");var xc=class xc{constructor(t,i,a,n,s=!1,o={start:r(c=>{},"start"),complete:r(c=>{},"complete"),error:r((c,u)=>{},"error")}){this.apiBaseURL=t;this.apiKey=i;this.uploadTimeout=a;this.makeGetUploadUrlAPIPath=n;this.isolationMode=s;this.reporter=o}async uploadAsset(t){if(t.uploadStarted=!0,this.isolationMode){t.lastProgress=Date.now(),t.loadedBytes=0,t.sizeBytes=100,t.response=new Promise(n=>{setTimeout(()=>{t.complete=!0,t.lastProgress=Date.now(),t.loadedBytes=100,n({statusCode:200,ok:!0,body:"OK"})},10)});return}let{path:i}=t.info,a=null;try{let s=(0,ji.statSync)(i).size;if(t.sizeBytes=s,t.loadedBytes=0,t.lastProgress=Date.now(),this.reporter.start(i),await this.getSignedURLForUpload(t),!t.uploadURL){t.error=!0;return}a=(0,ji.createReadStream)(i);let o=await ar.put(t.uploadURL,a,{headers:{"Content-Type":Yd[t.info.type]??"",Connection:"close"},maxBodyLength:1/0,maxContentLength:1/0,onUploadProgress:r(c=>{t.lastProgress=c.loaded>t.loadedBytes?Date.now():t.lastProgress,t.loadedBytes=c.loaded,t.sizeBytes=c.total??s},"onUploadProgress"),timeout:this.uploadTimeout??void 0,httpAgent:!1,httpsAgent:!1});if(o.status!==200)throw new Error(`Upload failed with status ${o.status}`);this.reporter.complete(i),t.complete=!0,t.response=o.data,t.removeAfterUpload&&(0,ji.unlinkSync)(i)}catch(n){this.reporter.error(i,n),t.error=!0}finally{if(a)try{typeof a.destroy=="function"?a.destroy():typeof a.close=="function"&&a.close()}catch{}a=null}}async getSignedURLForUpload(t){try{let i=JSON.stringify(t.info),a=`${this.apiBaseURL}/${this.makeGetUploadUrlAPIPath(t)}`,n={Accept:"application/json","Content-Type":"application/json",ChecksumAppCode:this.apiKey},s=await fetch(a,{method:"POST",headers:n,body:i}),{url:o}=await s.json();t.uploadURL=o}catch(i){return this.reporter.error(t.info.path,"Error getting signed URL for artifact"+String(i)),null}}};r(xc,"TestAssetUploader");var nr=xc;var bc=class bc{constructor(){}sendToCLI(...t){console.log(`{trm}${t.map(i=>i.toString()).join(`,
19
+ `)}{/trm}`)}event(t,i){return new Promise(a=>{let n=i?`${t}=${i}`:t;setTimeout(()=>{this.sendToCLI(`monitor:${n}`),a(!0)},100)})}trace(t,i){let a=i?`${t}=${JSON.stringify(i)}`:t;setTimeout(()=>{this.sendToCLI(`trace:${a}`)},100)}log(t){return this.event("log",t)}debug(...t){this.sendToCLI(t)}};r(bc,"CLIChannel");var gc=bc,yc=class yc{constructor(t,i=!1){this.config=t;this.isolationMode=i;this.MAX_UPLOADS=15;this.MONITOR_INTERVAL=2500;this.UPLOAD_TIMEOUT=10*60*1e3;this.UPLOAD_STALL_TIMEOUT=3*60*60*1e3;this.WATCH_TIMEOUT=2*60*1e3;this.assets=[];this.watchAssets=[];this.reportComplete=!1;this.processingInProgress=!1;this.pwTestIdToChecksumTestId={};this.monitorInterval=null;this.activeWatchers=new Set;this.stdinListener=null;this.rrwebRecordingFolder=null;this.completedAssetsCount=0;this.erroredAssetsCount=0;this.totalAssetsAdded=0;this.channel=new gc,this.logMemoryUsage("TestRunMonitor initialized"),this.testAssetUploader=new nr(t.apiURL,t.apiKey,this.UPLOAD_TIMEOUT,()=>`client-api/test-runs/${this.config.sessionId}/get-upload-url`,this.isolationMode,{start:r(a=>this.channel.trace("Upload Start",{filename:a}),"start"),complete:r(a=>this.channel.trace("Upload Complete",{filename:a}),"complete"),error:r((a,n)=>this.channel.trace("Upload Failed",{filename:a,error:n}),"error")}),this.monitorInterval=setInterval(this.monitorUploads.bind(this),this.MONITOR_INTERVAL),this.listenForMessages(),this.startServer()}listenForMessages(){this.stdinListener=async t=>{let i=t.toString().trim();if(!i.startsWith("cli:"))return;let[a,n]=i.substring(4).split("=");switch(this.channel.debug("Received message from CLI "+a+" "+n),a){case"report":if(this.testRunEndTime=Date.now(),n!=="false")try{let s=Buffer.from(n,"base64").toString("utf-8"),o=JSON.parse(s);await this.handleReport(o)}catch(s){this.channel.debug("Error JSON parsing report payload, continue without report. Error: "+this.stringify(s)),this.reportComplete=!0}else this.reportComplete=!0;this.monitorUploadsCompletion();break;case"shutdown":this.shutdown();break}},process.stdin.on("data",this.stdinListener)}readMetadataFile(t){try{return JSON.parse((0,pe.readFileSync)(t,"utf-8"))}catch(i){return this.channel.trace("Runtime Error",`Error reading checksum metadata file ${t}: ${i.message}`),{}}}async serveReport(t){try{let i=(0,ke.dirname)(t);await this.channel.log("Serving report in browser: "+i);let a=Dn.isRepoMode?`yarn playwright show-report ${i}`:`npx playwright show-report ${i}`,n=(0,ch.execSync)(a,{encoding:"utf8",stdio:"pipe"});await this.channel.log("Success: Report opened in browser")}catch(i){await this.channel.log(`Error serving report in browser: ${i.message}`),i.stderr&&await this.channel.log(i.stderr.toString())}}async handleReport(t){let{reportPath:i,pathToChecksumMetadata:a,didFail:n,openReportCriteria:s}=t;this.channel.debug(`Handling report ${this.isolationMode?"(isolation mode)":""}`+i),this.uploadReportData((0,ke.dirname)(i));try{let o=this.readMetadataFile(a),c=new Un(i,this.config.sessionId,this.pwTestIdToChecksumTestId,o,{hosted:!this.isolationMode},this.channel);try{this.reportAsset=this.initAsset({type:"report",path:void 0}),await c.process(),this.reportAsset.info.path=c.getProcessedFilePath(),this.uploadAsset(this.reportAsset)}catch(l){this.channel.debug("Error processing report, "+l.message),this.reportAsset.error=!0}this.stats=c.getReportsStats(),this.channel.debug("Checking watch assets");let u=this.watchAssets.filter(l=>!(l.type!=="trace"||c.testHasTrace(l.testId,l.project)));u.length>0&&(this.channel.debug("Removed watch assets - "),this.channel.debug(JSON.stringify(u.map(l=>l.path)))),this.watchAssets=this.watchAssets.filter(l=>l.type!=="trace"||c.testHasTrace(l.testId,l.project))}catch(o){this.channel.debug("Error processing report, "+this.stringify(o)),this.reportAsset.error=!0}finally{if((s==="always"||s==="on-failure"&&n)&&await this.serveReport(i),a&&(0,pe.existsSync)(a))try{(0,pe.unlinkSync)(a)}catch(c){console.error(`Error deleting checksum metadata file ${a}: ${c.message}`)}}}async uploadReportData(t){let i=(0,ke.join)(t,"data");try{let a=(0,pe.readdirSync)(i),n=[".zip",".webm"],s=a.filter(o=>!n.includes((0,ke.extname)(o)));this.channel.debug("Preparing to upload report data files,"+s);for(let o of s)this.channel.debug("Uploading report data file,"+o),this.addAsset({type:"report-data-file",fileName:o,path:`${i}/${o}`})}catch(a){this.channel.debug(`Error reading/adding report data files from dir ${i}`+a.message)}}shutdown(){this.channel.debug("Received shutdown message from CLI"),this.cleanup(),process.exit(0)}cleanup(){this.monitorInterval&&(clearInterval(this.monitorInterval),this.monitorInterval=null);for(let t of this.activeWatchers)try{t.close()}catch{}this.activeWatchers.clear(),this.stdinListener&&(process.stdin.removeListener("data",this.stdinListener),this.stdinListener=null),this.server&&(this.server.close(),this.server=null);for(let t of this.assets)t.response=void 0,t.uploadURL=void 0,t.sizeBytes=void 0,t.loadedBytes=void 0,t.lastProgress=void 0;this.assets=[],this.rrwebRecordingFolder=null}async monitorUploadsCompletion(){var t;if(!this.reportComplete&&this.reportAsset&&(this.reportAsset.complete||this.reportAsset.error)){this.reportComplete=!0;let i="{}";try{i=JSON.stringify(this.stats)}catch(a){this.channel.debug("Error stringifying stats"),this.channel.log(`[monitorUploadsCompletion] Error stringifying stats: ${a.message}`)}this.channel.event("report-complete",`${(t=this.reportAsset)!=null&&t.complete?"true":"false"}:${i}`)}if(!this.processingInProgress&&this.reportComplete&&(this.assets.filter(i=>i.complete||i.error).length===this.assets.length||this.isUploadStalled())&&(this.watchAssets.length===0||this.testRunEndTime&&Date.now()-this.testRunEndTime>this.WATCH_TIMEOUT)){let i=this.assets.filter(s=>s.error),a=i.length>0?"uploads-complete-with-errors":"uploads-complete",n=a==="uploads-complete"?{}:{uploadErrors:i.map(s=>{try{return JSON.stringify(s)}catch{return s.info.path}}),watchAssets:this.watchAssets,testRunEndTime:this.testRunEndTime,now:Date.now(),completedCount:this.assets.filter(s=>s.complete).length,erroredCount:i.length,totalCount:this.assets.length};this.logMemoryUsage("Before final cleanup"),this.cleanUp(),this.logMemoryUsage("After final cleanup"),this.channel.event(a,JSON.stringify(n));return}await Na(1e3),this.monitorUploadsCompletion()}cleanUp(){if(this.rrwebRecordingFolder)try{(0,pe.rmdirSync)(this.rrwebRecordingFolder,{recursive:!0}),this.channel.debug(`Cleaned up rrweb folder: ${this.rrwebRecordingFolder}`)}catch(t){this.channel.debug(`Error cleaning up rrweb folder: ${t.message}`)}else this.channel.debug("No rrweb recording folder to clean up");for(let t of this.assets)t.response=void 0,t.uploadURL=void 0,t.sizeBytes=void 0,t.loadedBytes=void 0,t.lastProgress=void 0;this.assets=[]}isUploadStalled(){let t=this.assets.reduce((i,a)=>Math.max(i,a.lastProgress??0),0)-Date.now()>this.UPLOAD_STALL_TIMEOUT;return t&&this.channel.log("Uploads are stalled"),t}async startServer(){let t=await this.acquirePortNumber();this.channel.event("port",t.toString()),this.server=(0,ph.createServer)((i,a)=>{let n=r(o=>{a.writeHead(400,{"Content-Type":"text/plain"}),a.end(o)},"returnErrorWithMessage");if(i.method!=="POST"){a.writeHead(404,{"Content-Type":"text/plain"}),a.end("Method not allowed");return}let s="";i.on("data",o=>{s+=o.toString()}),i.on("end",()=>{let o;try{o=JSON.parse(s)}catch{return n("Invalid body")}let{type:c,payload:u,watch:l}=o;switch(this.channel.debug(`Server received message, ${c}, ${this.stringify(u)}`),c){case"asset":if(!u.path||!u.type)return n("Missing arguments");l?this.watchAsset(u):this.processAsset(u);break;case"testInfo":if(!u.pwTestId||!u.checksumTestId)return n("Missing arguments");this.pwTestIdToChecksumTestId[u.pwTestId]=u.checksumTestId;break;case"checksumTestMetadata":let p=u;if(!p.checksumTestId||!u.data)return n("Missing arguments");this.channel.event("checksumTestMetadata",JSON.stringify({...p}));break;case"testStats":break;case"playwrightConfig":this.channel.event("playwrightConfig",JSON.stringify(u));break;default:return n("Invalid message type")}a.writeHead(200,{"Content-Type":"text/plain"}),a.end("OK")})}),this.server.listen(t)}stringify(t){try{return JSON.stringify(t)}catch{return"message"in t?t.message:t}}monitorUploads(){this.cleanupCompletedAssets(),this.logMemoryUsageAtKeyPoints();let{totalSizeBytes:t,totalUploadedBytes:i}=this.calculateUploadProgress();if(t>0&&!this.isolationMode){let s=(i/t*100).toFixed(2);this.channel.event("upload-progress",s)}let a=this.assets.filter(s=>!s.uploadStarted);if(a.length===0)return;let n=r(()=>this.assets.filter(s=>s.uploadStarted&&!s.complete&&!s.error).length,"getNumOfActiveUploads");if(!(n()>=this.MAX_UPLOADS))for(;a.length>0&&n()<this.MAX_UPLOADS;){let s=a.pop();this.uploadAsset(s)}}calculateUploadProgress(){let t=this.assets.reduce((a,{sizeBytes:n})=>a+(n??0),0),i=Math.min(t,this.assets.reduce((a,{loadedBytes:n})=>a+(n??0),0));return{totalSizeBytes:t,totalUploadedBytes:i}}cleanupCompletedAssets(){let t=this.assets.length;this.assets=this.assets.filter(n=>n.complete||n.error?(n.complete?this.completedAssetsCount++:n.error&&this.erroredAssetsCount++,n.response=void 0,n.uploadURL=void 0,n.sizeBytes=void 0,n.loadedBytes=void 0,n.lastProgress=void 0,!1):!0);let i=this.assets.length,a=t-i;a>0&&(this.channel.debug(`Cleaned up ${a} completed assets. Active assets: ${i}`),this.logMemoryUsage(`After cleanup (removed ${a} assets)`))}logMemoryUsageAtKeyPoints(){this.assets.length>0&&this.assets.length%5===0&&this.logMemoryUsage(`Upload progress - ${this.assets.length} assets`)}logMemoryUsage(t){let i={stage:t,activeAssets:this.assets.length,completedAssets:this.completedAssetsCount,erroredAssets:this.erroredAssetsCount,totalAssets:this.totalAssetsAdded};this.channel.event("log-memory-usage",JSON.stringify(i))}getUploadLogMessage(t){switch(t.info.type){case"report":return"Uploading report";case"har":return`Uploading har file for test ${t.info.testId}`;case"trace":return`Uploading trace file for test ${t.info.testId}`;case"esra":return`Uploading metadata file for test ${t.info.testId}`;case"test-files":return`Uploading auto-healed test code for file ${t.info.path}`}}async uploadAsset(t){try{t.uploadStarted=!0;let i=this.getUploadLogMessage(t);i&&!this.isolationMode&&this.channel.event("log",i),await this.testAssetUploader.uploadAsset(t)}catch(i){t.error=!0,this.channel.debug("Error uploading asset"+this.stringify(i)),this.channel.trace("Upload Failed",{asset:t.info.fileName,error:String(i)})}}async getSignedURLForUpload(t){try{let{apiKey:i,sessionId:a,apiURL:n}=this.config,s=t.info,o=await fetch(`${n}/client-api/test-runs/${a}/get-upload-url`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json",ChecksumAppCode:i},body:JSON.stringify(s)}),{url:c}=await o.json();t.uploadURL=c}catch(i){return this.channel.debug("Error getting signed URL for artifact"+this.stringify(i)),null}}watchAsset(t){this.channel.debug("Watching file "+t.path),this.watchAssets.push({...t,addedAt:Date.now()});let i=r(async()=>{await this.waitForFileComplete(t.path)&&(this.processAsset(t),this.watchAssets=this.watchAssets.filter(n=>n.path!==t.path))},"waitForCompletion");if((0,pe.existsSync)(t.path))i();else{let a=(0,ke.dirname)(t.path),n=(0,ke.basename)(t.path),s=!1,o=(0,pe.watch)(a,async(c,u)=>{if(!(u!==n||s))try{this.channel.debug("Watched file changed "+t.path),s=!0,await i()}finally{o.close(),this.activeWatchers.delete(o)}});this.activeWatchers.add(o)}}waitForFileComplete(t,i=1e3,a=6e4,n=1){return new Promise(s=>{let o=Date.now(),c=0,u=r(()=>{if(!(0,pe.existsSync)(t))return this.channel.debug(`Asset required for upload doesn't exist anymore ${t}`),s(!1);let l=(0,pe.statSync)(t).size;if(l===c){if(n>0){this.channel.debug(`File size has not changed, verifying stabilization, ${t}, size: ${l}, equalSizeValidationCountLeft: ${n}`),n--,setTimeout(u,i);return}return this.channel.debug(`File size has not changed, stabilization verified, ${t}, size: ${l}`),s(!0)}if(this.channel.debug(`File size changed, waiting for stabilization, ${t}, previous size: ${c}, current size: ${l}`),Date.now()-o>a)return this.channel.debug(`Asset required for upload is taking over ${a} ms to write to disk ${t}`),s(!0);c=l,setTimeout(u,i)},"checkFile");u()})}processAsset(t){switch(t.type){case"trace":return this.processTrace(t.path,t.testId);case"har":return this.processHar(t.path,t.testId);case"rrweb-recording":case"esra":case"test-files":return this.addAsset(t)}}async processHar(t,i){}calculateSha1(t){let i=(0,lh.createHash)("sha1");return i.update(t),i.digest("hex")}async processTrace(t,i){return;try{this.processingInProgress=!0,await Na(1e3);let a=t.replace(".zip",".processed.zip"),n=new On("runtime",(0,ke.dirname)(t),a,"$checksum"),s=await n.process(),c=r(()=>{let u=n.getBuffer(t);return this.calculateSha1(u)+(0,ke.extname)(t)},"makePlaywrightHTMLReporterName")();s?(this.channel.debug("Processed trace files and sending for upload"),this.addAsset({type:"report-data-file",path:a,testId:i,fileName:c}),this.addAsset({type:"report-data-file",path:t,testId:i,fileName:`${c}.original`})):(this.channel.debug("Trace file has not been processed, sending original file for upload"),this.addAsset({type:"report-data-file",path:t,testId:i,fileName:c}))}catch(a){let n=String(a);this.channel.debug("Error processing trace file"+n),this.channel.trace("Trace Processing Error",{error:n})}finally{this.processingInProgress=!1}}addAsset(t){this.channel.debug("Adding file "+t.path);let i=this.initAsset(t);return this.assets.push(i),this.totalAssetsAdded++,t.type==="rrweb-recording"&&t.path&&(this.rrwebRecordingFolder=(0,ke.dirname)(t.path)),this.assets.length%10===0&&this.logMemoryUsage(`After adding ${this.assets.length} assets`),i}initAsset(t){return{complete:!1,error:!1,response:void 0,info:t,removeAfterUpload:t.type==="rrweb-recording"}}async acquirePortNumber(){return await new Promise((t,i)=>{let a=uh.createServer();a.unref(),a.on("error",i),a.listen(0,()=>{let n=a.address().port;a.close(()=>{t(n)})})})}};r(yc,"TestRunMonitor");var rr=yc,dh;try{dh=JSON.parse(process.argv[2])}catch(e){console.log("Error starting test run monitor",e),process.exit(1)}var oh;new rr(dh,((oh=process.argv)==null?void 0:oh[3])==="isolated");0&&(module.exports={TestRunMonitor});
20
20
  /*! Bundled license information:
21
21
 
22
22
  mime-db/index.js:
@@ -1810,7 +1810,7 @@ Executing locator ${this.getCurrentLocatorInChain().type} with ${typeof t=="stri
1810
1810
  `,rda=c_t.encode(E4e),nda=2,SMr=class SMr{constructor(t,n){let{escapeName:a}=this.constructor,o=dp.isString(n),c=`Content-Disposition: form-data; name="${a(t)}"${!o&&n.name?`; filename="${a(n.name)}"`:""}${E4e}`;o?n=c_t.encode(String(n).replace(/\r?\n|\r\n?/g,E4e)):c+=`Content-Type: ${n.type||"application/octet-stream"}${E4e}`,this.headers=c_t.encode(c+E4e),this.contentLength=o?n.byteLength:n.size,this.size=this.headers.byteLength+this.contentLength+nda,this.name=t,this.value=n}async*encode(){yield this.headers;let{value:t}=this;dp.isTypedArray(t)?yield t:yield*Hqt(t),yield rda}static escapeName(t){return String(t).replace(/[\r\n"]/g,n=>({"\r":"%0D","\n":"%0A",'"':"%22"})[n])}};e(SMr,"FormDataPart");var wMr=SMr,ida=e((i,t,n)=>{let{tag:a="form-data-boundary",size:o=25,boundary:c=a+"-"+dp.generateString(o,tda)}=n||{};if(!dp.isFormData(i))throw TypeError("FormData instance required");if(c.length<1||c.length>70)throw Error("boundary must be 10-70 characters long");let f=c_t.encode("--"+c+E4e),m=c_t.encode("--"+c+"--"+E4e+E4e),x=m.byteLength,C=Array.from(i.entries()).map(([k,I])=>{let M=new wMr(k,I);return x+=M.size,M});x+=f.byteLength*C.length,x=dp.toFiniteNumber(x);let S={"Content-Type":`multipart/form-data; boundary=${c}`};return Number.isFinite(x)&&(S["Content-Length"]=x),t&&t(S),kRn.Readable.from(async function*(){for(let k of C)yield f,yield*k.encode();yield m}())},"formDataToStream"),IRn=ida;var PRn=Ad(require("stream"),1);var TMr=class TMr extends PRn.default.Transform{__transform(t,n,a){this.push(t),a()}_transform(t,n,a){if(t.length!==0&&(this._transform=this.__transform,t[0]!==120)){let o=Buffer.alloc(2);o[0]=120,o[1]=156,this.push(o,n)}this.__transform(t,n,a)}};e(TMr,"ZlibHeaderTransformStream");var DMr=TMr,FRn=DMr;var ada=e((i,t)=>dp.isAsyncFn(i)?function(...n){let a=n.pop();i.apply(this,n).then(o=>{try{t?a(null,...t(o)):a(null,o)}catch(c){a(c)}},a)}:i,"callbackify"),NRn=ada;function sda(i,t){i=i||10;let n=new Array(i),a=new Array(i),o=0,c=0,f;return t=t!==void 0?t:1e3,e(function(x){let C=Date.now(),S=a[c];f||(f=C),n[o]=x,a[o]=C;let k=c,I=0;for(;k!==o;)I+=n[k++],k=k%i;if(o=(o+1)%i,o===c&&(c=(c+1)%i),C-f<t)return;let M=S&&C-S;return M?Math.round(I*1e3/M):void 0},"push")}e(sda,"speedometer");var ORn=sda;function oda(i,t){let n=0,a=1e3/t,o,c,f=e((C,S=Date.now())=>{n=S,o=null,c&&(clearTimeout(c),c=null),i.apply(null,C)},"invoke");return[e((...C)=>{let S=Date.now(),k=S-n;k>=a?f(C,S):(o=C,c||(c=setTimeout(()=>{c=null,f(o)},a-k)))},"throttled"),e(()=>o&&f(o),"flush")]}e(oda,"throttle");var BRn=oda;var kve=e((i,t,n=3)=>{let a=0,o=ORn(50,250);return BRn(c=>{let f=c.loaded,m=c.lengthComputable?c.total:void 0,x=f-a,C=o(x),S=f<=m;a=f;let k={loaded:f,total:m,progress:m?f/m:void 0,bytes:x,rate:C||void 0,estimated:C&&m&&S?(m-f)/C:void 0,event:c,lengthComputable:m!=null,[t?"download":"upload"]:!0};i(k)},n)},"progressEventReducer"),Oze=e((i,t)=>{let n=i!=null;return[a=>t[0]({lengthComputable:n,total:i,loaded:a}),t[1]]},"progressEventDecorator"),Bze=e(i=>(...t)=>dp.asap(()=>i(...t)),"asyncDecorator");var RRn={flush:Ive.default.constants.Z_SYNC_FLUSH,finishFlush:Ive.default.constants.Z_SYNC_FLUSH},uda={flush:Ive.default.constants.BROTLI_OPERATION_FLUSH,finishFlush:Ive.default.constants.BROTLI_OPERATION_FLUSH},LRn=dp.isFunction(Ive.default.createBrotliDecompress),{http:cda,https:lda}=JRn.default,pda=/https:?/,MRn=t4.protocols.map(i=>i+":"),jRn=e((i,[t,n])=>(i.on("end",n).on("error",n),t),"flushOnFinish");function fda(i,t){i.beforeRedirects.proxy&&i.beforeRedirects.proxy(i),i.beforeRedirects.config&&i.beforeRedirects.config(i,t)}e(fda,"dispatchBeforeRedirect");function WRn(i,t,n){let a=t;if(!a&&a!==!1){let o=qRn.default.getProxyForUrl(n);o&&(a=new URL(o))}if(a){if(a.username&&(a.auth=(a.username||"")+":"+(a.password||"")),a.auth){(a.auth.username||a.auth.password)&&(a.auth=(a.auth.username||"")+":"+(a.auth.password||""));let c=Buffer.from(a.auth,"utf8").toString("base64");i.headers["Proxy-Authorization"]="Basic "+c}i.headers.host=i.hostname+(i.port?":"+i.port:"");let o=a.hostname||a.host;i.hostname=o,i.host=o,i.port=a.port,i.path=n,a.protocol&&(i.protocol=a.protocol.includes(":")?a.protocol:`${a.protocol}:`)}i.beforeRedirects.proxy=e(function(c){WRn(c,t,c.href)},"beforeRedirect")}e(WRn,"setProxy");var dda=typeof process<"u"&&dp.kindOf(process)==="process",_da=e(i=>new Promise((t,n)=>{let a,o,c=e((x,C)=>{o||(o=!0,a&&a(x,C))},"done"),f=e(x=>{c(x),t(x)},"_resolve"),m=e(x=>{c(x,!0),n(x)},"_reject");i(f,m,x=>a=x).catch(m)}),"wrapAsync"),mda=e(({address:i,family:t})=>{if(!dp.isString(i))throw TypeError("address must be a string");return{address:i,family:t||(i.indexOf(".")<0?6:4)}},"resolveFamily"),URn=e((i,t)=>mda(dp.isObject(i)?i:{address:i,family:t}),"buildAddressEntry"),HRn=dda&&e(function(t){return _da(e(async function(a,o,c){let{data:f,lookup:m,family:x}=t,{responseType:C,responseEncoding:S}=t,k=t.method.toUpperCase(),I,M=!1,B;if(m){let Ue=NRn(m,Nt=>dp.isArray(Nt)?Nt:[Nt]);m=e((Nt,At,Vt)=>{Ue(Nt,At,(pr,Cr,Ct)=>{if(pr)return Vt(pr);let gi=dp.isArray(Cr)?Cr.map(Tn=>URn(Tn)):[URn(Cr,Ct)];At.all?Vt(pr,gi):Vt(pr,gi[0].address,gi[0].family)})},"lookup")}let $=new zRn.EventEmitter,W=e(()=>{t.cancelToken&&t.cancelToken.unsubscribe(re),t.signal&&t.signal.removeEventListener("abort",re),$.removeAllListeners()},"onFinished");c((Ue,Nt)=>{I=!0,Nt&&(M=!0,W())});function re(Ue){$.emit("abort",!Ue||Ue.type?new hZ(null,t,B):Ue)}e(re,"abort"),$.once("abort",o),(t.cancelToken||t.signal)&&(t.cancelToken&&t.cancelToken.subscribe(re),t.signal&&(t.signal.aborted?re():t.signal.addEventListener("abort",re)));let oe=WIe(t.baseURL,t.url),pe=new URL(oe,t4.hasBrowserEnv?t4.origin:void 0),_e=pe.protocol||MRn[0];if(_e==="data:"){let Ue;if(k!=="GET")return J_e(a,o,{status:405,statusText:"method not allowed",headers:{},config:t});try{Ue=bMr(t.url,C==="blob",{Blob:t.env&&t.env.Blob})}catch(Nt){throw F1.from(Nt,F1.ERR_BAD_REQUEST,t)}return C==="text"?(Ue=Ue.toString(S),(!S||S==="utf8")&&(Ue=dp.stripBOM(Ue))):C==="stream"&&(Ue=YIe.default.Readable.from(Ue)),J_e(a,o,{data:Ue,status:200,statusText:"OK",headers:new JT,config:t})}if(MRn.indexOf(_e)===-1)return o(new F1("Unsupported protocol "+_e,F1.ERR_BAD_REQUEST,t));let Ee=JT.from(t.headers).normalize();Ee.set("User-Agent","axios/"+KIe,!1);let{onUploadProgress:Pe,onDownloadProgress:je}=t,Fe=t.maxRate,Re,ct;if(dp.isSpecCompliantForm(f)){let Ue=Ee.getContentType(/boundary=([-_\w\d]{10,70})/i);f=IRn(f,Nt=>{Ee.set(Nt)},{tag:`axios-${KIe}-boundary`,boundary:Ue&&Ue[1]||void 0})}else if(dp.isFormData(f)&&dp.isFunction(f.getHeaders)){if(Ee.set(f.getHeaders()),!Ee.hasContentLength())try{let Ue=await VRn.default.promisify(f.getLength).call(f);Number.isFinite(Ue)&&Ue>=0&&Ee.setContentLength(Ue)}catch{}}else if(dp.isBlob(f)||dp.isFile(f))f.size&&Ee.setContentType(f.type||"application/octet-stream"),Ee.setContentLength(f.size||0),f=YIe.default.Readable.from(Hqt(f));else if(f&&!dp.isStream(f)){if(!Buffer.isBuffer(f))if(dp.isArrayBuffer(f))f=Buffer.from(new Uint8Array(f));else if(dp.isString(f))f=Buffer.from(f,"utf-8");else return o(new F1("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",F1.ERR_BAD_REQUEST,t));if(Ee.setContentLength(f.length,!1),t.maxBodyLength>-1&&f.length>t.maxBodyLength)return o(new F1("Request body larger than maxBodyLength limit",F1.ERR_BAD_REQUEST,t))}let Le=dp.toFiniteNumber(Ee.getContentLength());dp.isArray(Fe)?(Re=Fe[0],ct=Fe[1]):Re=ct=Fe,f&&(Pe||Re)&&(dp.isStream(f)||(f=YIe.default.Readable.from(f,{objectMode:!1})),f=YIe.default.pipeline([f,new EMr({maxRate:dp.toFiniteNumber(Re)})],dp.noop),Pe&&f.on("progress",jRn(f,Oze(Le,kve(Bze(Pe),!1,3)))));let Ve;if(t.auth){let Ue=t.auth.username||"",Nt=t.auth.password||"";Ve=Ue+":"+Nt}if(!Ve&&pe.username){let Ue=pe.username,Nt=pe.password;Ve=Ue+":"+Nt}Ve&&Ee.delete("authorization");let Qe;try{Qe=zIe(pe.pathname+pe.search,t.params,t.paramsSerializer).replace(/^\?/,"")}catch(Ue){let Nt=new Error(Ue.message);return Nt.config=t,Nt.url=t.url,Nt.exists=!0,o(Nt)}Ee.set("Accept-Encoding","gzip, compress, deflate"+(LRn?", br":""),!1);let $e={path:Qe,method:k,headers:Ee.toJSON(),agents:{http:t.httpAgent,https:t.httpsAgent},auth:Ve,protocol:_e,family:x,beforeRedirect:fda,beforeRedirects:{}};!dp.isUndefined(m)&&($e.lookup=m),t.socketPath?$e.socketPath=t.socketPath:($e.hostname=pe.hostname.startsWith("[")?pe.hostname.slice(1,-1):pe.hostname,$e.port=pe.port,WRn($e,t.proxy,_e+"//"+pe.hostname+(pe.port?":"+pe.port:"")+$e.path));let We,tt=pda.test($e.protocol);if($e.agent=tt?t.httpsAgent:t.httpAgent,t.transport?We=t.transport:t.maxRedirects===0?We=tt?$Rn.default:QRn.default:(t.maxRedirects&&($e.maxRedirects=t.maxRedirects),t.beforeRedirect&&($e.beforeRedirects.config=t.beforeRedirect),We=tt?lda:cda),t.maxBodyLength>-1?$e.maxBodyLength=t.maxBodyLength:$e.maxBodyLength=1/0,t.insecureHTTPParser&&($e.insecureHTTPParser=t.insecureHTTPParser),B=We.request($e,e(function(Nt){if(B.destroyed)return;let At=[Nt],Vt=+Nt.headers["content-length"];if(je||ct){let Tn=new EMr({maxRate:dp.toFiniteNumber(ct)});je&&Tn.on("progress",jRn(Tn,Oze(Vt,kve(Bze(je),!0,3)))),At.push(Tn)}let pr=Nt,Cr=Nt.req||B;if(t.decompress!==!1&&Nt.headers["content-encoding"])switch((k==="HEAD"||Nt.statusCode===204)&&delete Nt.headers["content-encoding"],(Nt.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":At.push(Ive.default.createUnzip(RRn)),delete Nt.headers["content-encoding"];break;case"deflate":At.push(new FRn),At.push(Ive.default.createUnzip(RRn)),delete Nt.headers["content-encoding"];break;case"br":LRn&&(At.push(Ive.default.createBrotliDecompress(uda)),delete Nt.headers["content-encoding"])}pr=At.length>1?YIe.default.pipeline(At,dp.noop):At[0];let Ct=YIe.default.finished(pr,()=>{Ct(),W()}),gi={status:Nt.statusCode,statusText:Nt.statusMessage,headers:new JT(Nt.headers),config:t,request:Cr};if(C==="stream")gi.data=pr,J_e(a,o,gi);else{let Tn=[],or=0;pr.on("data",e(function(An){Tn.push(An),or+=An.length,t.maxContentLength>-1&&or>t.maxContentLength&&(M=!0,pr.destroy(),o(new F1("maxContentLength size of "+t.maxContentLength+" exceeded",F1.ERR_BAD_RESPONSE,t,Cr)))},"handleStreamData")),pr.on("aborted",e(function(){if(M)return;let An=new F1("stream has been aborted",F1.ERR_BAD_RESPONSE,t,Cr);pr.destroy(An),o(An)},"handlerStreamAborted")),pr.on("error",e(function(An){B.destroyed||o(F1.from(An,null,t,Cr))},"handleStreamError")),pr.on("end",e(function(){try{let An=Tn.length===1?Tn[0]:Buffer.concat(Tn);C!=="arraybuffer"&&(An=An.toString(S),(!S||S==="utf8")&&(An=dp.stripBOM(An))),gi.data=An}catch(An){return o(F1.from(An,null,t,gi.request,gi))}J_e(a,o,gi)},"handleStreamEnd"))}$.once("abort",Tn=>{pr.destroyed||(pr.emit("error",Tn),pr.destroy())})},"handleResponse")),$.once("abort",Ue=>{o(Ue),B.destroy(Ue)}),B.on("error",e(function(Nt){o(F1.from(Nt,null,t,B))},"handleRequestError")),B.on("socket",e(function(Nt){Nt.setKeepAlive(!0,1e3*60)},"handleRequestSocket")),t.timeout){let Ue=parseInt(t.timeout,10);if(Number.isNaN(Ue)){o(new F1("error trying to parse `config.timeout` to int",F1.ERR_BAD_OPTION_VALUE,t,B));return}B.setTimeout(Ue,e(function(){if(I)return;let At=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded",Vt=t.transitional||Ize;t.timeoutErrorMessage&&(At=t.timeoutErrorMessage),o(new F1(At,Vt.clarifyTimeoutError?F1.ETIMEDOUT:F1.ECONNABORTED,t,B)),re()},"handleRequestTimeout"))}if(dp.isStream(f)){let Ue=!1,Nt=!1;f.on("end",()=>{Ue=!0}),f.once("error",At=>{Nt=!0,B.destroy(At)}),f.on("close",()=>{!Ue&&!Nt&&re(new hZ("Request stream has been aborted",t,B))}),f.pipe(B)}else B.end(f)},"dispatchHttpRequest"))},"httpAdapter");var GRn=t4.hasStandardBrowserEnv?((i,t)=>n=>(n=new URL(n,t4.origin),i.protocol===n.protocol&&i.host===n.host&&(t||i.port===n.port)))(new URL(t4.origin),t4.navigator&&/(msie|trident)/i.test(t4.navigator.userAgent)):()=>!0;var KRn=t4.hasStandardBrowserEnv?{write(i,t,n,a,o,c){let f=[i+"="+encodeURIComponent(t)];dp.isNumber(n)&&f.push("expires="+new Date(n).toGMTString()),dp.isString(a)&&f.push("path="+a),dp.isString(o)&&f.push("domain="+o),c===!0&&f.push("secure"),document.cookie=f.join("; ")},read(i){let t=document.cookie.match(new RegExp("(^|;\\s*)("+i+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(i){this.write(i,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};var YRn=e(i=>i instanceof JT?{...i}:i,"headersToObject");function Cce(i,t){t=t||{};let n={};function a(C,S,k,I){return dp.isPlainObject(C)&&dp.isPlainObject(S)?dp.merge.call({caseless:I},C,S):dp.isPlainObject(S)?dp.merge({},S):dp.isArray(S)?S.slice():S}e(a,"getMergedValue");function o(C,S,k,I){if(dp.isUndefined(S)){if(!dp.isUndefined(C))return a(void 0,C,k,I)}else return a(C,S,k,I)}e(o,"mergeDeepProperties");function c(C,S){if(!dp.isUndefined(S))return a(void 0,S)}e(c,"valueFromConfig2");function f(C,S){if(dp.isUndefined(S)){if(!dp.isUndefined(C))return a(void 0,C)}else return a(void 0,S)}e(f,"defaultToConfig2");function m(C,S,k){if(k in t)return a(C,S);if(k in i)return a(void 0,C)}e(m,"mergeDirectKeys");let x={url:c,method:c,data:c,baseURL:f,transformRequest:f,transformResponse:f,paramsSerializer:f,timeout:f,timeoutMessage:f,withCredentials:f,withXSRFToken:f,adapter:f,responseType:f,xsrfCookieName:f,xsrfHeaderName:f,onUploadProgress:f,onDownloadProgress:f,decompress:f,maxContentLength:f,maxBodyLength:f,beforeRedirect:f,transport:f,httpAgent:f,httpsAgent:f,cancelToken:f,socketPath:f,responseEncoding:f,validateStatus:m,headers:e((C,S,k)=>o(YRn(C),YRn(S),k,!0),"headers")};return dp.forEach(Object.keys(Object.assign({},i,t)),e(function(S){let k=x[S]||o,I=k(i[S],t[S],S);dp.isUndefined(I)&&k!==m||(n[S]=I)},"computeConfigValue")),n}e(Cce,"mergeConfig");var Gqt=e(i=>{let t=Cce({},i),{data:n,withXSRFToken:a,xsrfHeaderName:o,xsrfCookieName:c,headers:f,auth:m}=t;t.headers=f=JT.from(f),t.url=zIe(WIe(t.baseURL,t.url),i.params,i.paramsSerializer),m&&f.set("Authorization","Basic "+btoa((m.username||"")+":"+(m.password?unescape(encodeURIComponent(m.password)):"")));let x;if(dp.isFormData(n)){if(t4.hasStandardBrowserEnv||t4.hasStandardBrowserWebWorkerEnv)f.setContentType(void 0);else if((x=f.getContentType())!==!1){let[C,...S]=x?x.split(";").map(k=>k.trim()).filter(Boolean):[];f.setContentType([C||"multipart/form-data",...S].join("; "))}}if(t4.hasStandardBrowserEnv&&(a&&dp.isFunction(a)&&(a=a(t)),a||a!==!1&&GRn(t.url))){let C=o&&c&&KRn.read(c);C&&f.set(o,C)}return t},"default");var hda=typeof XMLHttpRequest<"u",XRn=hda&&function(i){return new Promise(e(function(n,a){let o=Gqt(i),c=o.data,f=JT.from(o.headers).normalize(),{responseType:m,onUploadProgress:x,onDownloadProgress:C}=o,S,k,I,M,B;function $(){M&&M(),B&&B(),o.cancelToken&&o.cancelToken.unsubscribe(S),o.signal&&o.signal.removeEventListener("abort",S)}e($,"done");let W=new XMLHttpRequest;W.open(o.method.toUpperCase(),o.url,!0),W.timeout=o.timeout;function re(){if(!W)return;let pe=JT.from("getAllResponseHeaders"in W&&W.getAllResponseHeaders()),Ee={data:!m||m==="text"||m==="json"?W.responseText:W.response,status:W.status,statusText:W.statusText,headers:pe,config:i,request:W};J_e(e(function(je){n(je),$()},"_resolve"),e(function(je){a(je),$()},"_reject"),Ee),W=null}e(re,"onloadend"),"onloadend"in W?W.onloadend=re:W.onreadystatechange=e(function(){!W||W.readyState!==4||W.status===0&&!(W.responseURL&&W.responseURL.indexOf("file:")===0)||setTimeout(re)},"handleLoad"),W.onabort=e(function(){W&&(a(new F1("Request aborted",F1.ECONNABORTED,i,W)),W=null)},"handleAbort"),W.onerror=e(function(){a(new F1("Network Error",F1.ERR_NETWORK,i,W)),W=null},"handleError"),W.ontimeout=e(function(){let _e=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded",Ee=o.transitional||Ize;o.timeoutErrorMessage&&(_e=o.timeoutErrorMessage),a(new F1(_e,Ee.clarifyTimeoutError?F1.ETIMEDOUT:F1.ECONNABORTED,i,W)),W=null},"handleTimeout"),c===void 0&&f.setContentType(null),"setRequestHeader"in W&&dp.forEach(f.toJSON(),e(function(_e,Ee){W.setRequestHeader(Ee,_e)},"setRequestHeader")),dp.isUndefined(o.withCredentials)||(W.withCredentials=!!o.withCredentials),m&&m!=="json"&&(W.responseType=o.responseType),C&&([I,B]=kve(C,!0),W.addEventListener("progress",I)),x&&W.upload&&([k,M]=kve(x),W.upload.addEventListener("progress",k),W.upload.addEventListener("loadend",M)),(o.cancelToken||o.signal)&&(S=e(pe=>{W&&(a(!pe||pe.type?new hZ(null,i,W):pe),W.abort(),W=null)},"onCanceled"),o.cancelToken&&o.cancelToken.subscribe(S),o.signal&&(o.signal.aborted?S():o.signal.addEventListener("abort",S)));let oe=u_t(o.url);if(oe&&t4.protocols.indexOf(oe)===-1){a(new F1("Unsupported protocol "+oe+":",F1.ERR_BAD_REQUEST,i));return}W.send(c||null)},"dispatchXhrRequest"))};var gda=e((i,t)=>{let{length:n}=i=i?i.filter(Boolean):[];if(t||n){let a=new AbortController,o,c=e(function(C){if(!o){o=!0,m();let S=C instanceof Error?C:this.reason;a.abort(S instanceof F1?S:new hZ(S instanceof Error?S.message:S))}},"onabort"),f=t&&setTimeout(()=>{f=null,c(new F1(`timeout ${t} of ms exceeded`,F1.ETIMEDOUT))},t),m=e(()=>{i&&(f&&clearTimeout(f),f=null,i.forEach(C=>{C.unsubscribe?C.unsubscribe(c):C.removeEventListener("abort",c)}),i=null)},"unsubscribe");i.forEach(C=>C.addEventListener("abort",c));let{signal:x}=a;return x.unsubscribe=()=>dp.asap(m),x}},"composeSignals"),ZRn=gda;var yda=e(function*(i,t){let n=i.byteLength;if(!t||n<t){yield i;return}let a=0,o;for(;a<n;)o=a+t,yield i.slice(a,o),a=o},"streamChunk"),vda=e(async function*(i,t){for await(let n of bda(i))yield*yda(n,t)},"readBytes"),bda=e(async function*(i){if(i[Symbol.asyncIterator]){yield*i;return}let t=i.getReader();try{for(;;){let{done:n,value:a}=await t.read();if(n)break;yield a}}finally{await t.cancel()}},"readStream"),kMr=e((i,t,n,a)=>{let o=vda(i,t),c=0,f,m=e(x=>{f||(f=!0,a&&a(x))},"_onFinish");return new ReadableStream({async pull(x){try{let{done:C,value:S}=await o.next();if(C){m(),x.close();return}let k=S.byteLength;if(n){let I=c+=k;n(I)}x.enqueue(new Uint8Array(S))}catch(C){throw m(C),C}},cancel(x){return m(x),o.return()}},{highWaterMark:2})},"trackStream");var Yqt=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",tLn=Yqt&&typeof ReadableStream=="function",xda=Yqt&&(typeof TextEncoder=="function"?(i=>t=>i.encode(t))(new TextEncoder):async i=>new Uint8Array(await new Response(i).arrayBuffer())),rLn=e((i,...t)=>{try{return!!i(...t)}catch{return!1}},"test"),Ada=tLn&&rLn(()=>{let i=!1,t=new Request(t4.origin,{body:new ReadableStream,method:"POST",get duplex(){return i=!0,"half"}}).headers.has("Content-Type");return i&&!t}),eLn=64*1024,IMr=tLn&&rLn(()=>dp.isReadableStream(new Response("").body)),Kqt={stream:IMr&&(i=>i.body)};Yqt&&(i=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!Kqt[t]&&(Kqt[t]=dp.isFunction(i[t])?n=>n[t]():(n,a)=>{throw new F1(`Response type '${t}' is not supported`,F1.ERR_NOT_SUPPORT,a)})})})(new Response);var Eda=e(async i=>{if(i==null)return 0;if(dp.isBlob(i))return i.size;if(dp.isSpecCompliantForm(i))return(await new Request(t4.origin,{method:"POST",body:i}).arrayBuffer()).byteLength;if(dp.isArrayBufferView(i)||dp.isArrayBuffer(i))return i.byteLength;if(dp.isURLSearchParams(i)&&(i=i+""),dp.isString(i))return(await xda(i)).byteLength},"getBodyLength"),Cda=e(async(i,t)=>{let n=dp.toFiniteNumber(i.getContentLength());return n??Eda(t)},"resolveBodyLength"),nLn=Yqt&&(async i=>{let{url:t,method:n,data:a,signal:o,cancelToken:c,timeout:f,onDownloadProgress:m,onUploadProgress:x,responseType:C,headers:S,withCredentials:k="same-origin",fetchOptions:I}=Gqt(i);C=C?(C+"").toLowerCase():"text";let M=ZRn([o,c&&c.toAbortSignal()],f),B,$=M&&M.unsubscribe&&(()=>{M.unsubscribe()}),W;try{if(x&&Ada&&n!=="get"&&n!=="head"&&(W=await Cda(S,a))!==0){let Ee=new Request(t,{method:"POST",body:a,duplex:"half"}),Pe;if(dp.isFormData(a)&&(Pe=Ee.headers.get("content-type"))&&S.setContentType(Pe),Ee.body){let[je,Fe]=Oze(W,kve(Bze(x)));a=kMr(Ee.body,eLn,je,Fe)}}dp.isString(k)||(k=k?"include":"omit");let re="credentials"in Request.prototype;B=new Request(t,{...I,signal:M,method:n.toUpperCase(),headers:S.normalize().toJSON(),body:a,duplex:"half",credentials:re?k:void 0});let oe=await fetch(B),pe=IMr&&(C==="stream"||C==="response");if(IMr&&(m||pe&&$)){let Ee={};["status","statusText","headers"].forEach(Re=>{Ee[Re]=oe[Re]});let Pe=dp.toFiniteNumber(oe.headers.get("content-length")),[je,Fe]=m&&Oze(Pe,kve(Bze(m),!0))||[];oe=new Response(kMr(oe.body,eLn,je,()=>{Fe&&Fe(),$&&$()}),Ee)}C=C||"text";let _e=await Kqt[dp.findKey(Kqt,C)||"text"](oe,i);return!pe&&$&&$(),await new Promise((Ee,Pe)=>{J_e(Ee,Pe,{data:_e,headers:JT.from(oe.headers),status:oe.status,statusText:oe.statusText,config:i,request:B})})}catch(re){throw $&&$(),re&&re.name==="TypeError"&&/fetch/i.test(re.message)?Object.assign(new F1("Network Error",F1.ERR_NETWORK,i,B),{cause:re.cause||re}):F1.from(re,re&&re.code,i,B)}});var PMr={http:HRn,xhr:XRn,fetch:nLn};dp.forEach(PMr,(i,t)=>{if(i){try{Object.defineProperty(i,"name",{value:t})}catch{}Object.defineProperty(i,"adapterName",{value:t})}});var iLn=e(i=>`- ${i}`,"renderReason"),wda=e(i=>dp.isFunction(i)||i===null||i===!1,"isResolvedHandle"),Xqt={getAdapter:e(i=>{i=dp.isArray(i)?i:[i];let{length:t}=i,n,a,o={};for(let c=0;c<t;c++){n=i[c];let f;if(a=n,!wda(n)&&(a=PMr[(f=String(n)).toLowerCase()],a===void 0))throw new F1(`Unknown adapter '${f}'`);if(a)break;o[f||"#"+c]=a}if(!a){let c=Object.entries(o).map(([m,x])=>`adapter ${m} `+(x===!1?"is not supported by the environment":"is not available in the build")),f=t?c.length>1?`since :
1811
1811
  `+c.map(iLn).join(`
1812
1812
  `):" "+iLn(c[0]):"as no adapter specified";throw new F1("There is no suitable adapter to dispatch the request "+f,"ERR_NOT_SUPPORT")}return a},"getAdapter"),adapters:PMr};function FMr(i){if(i.cancelToken&&i.cancelToken.throwIfRequested(),i.signal&&i.signal.aborted)throw new hZ(null,i)}e(FMr,"throwIfCancellationRequested");function Zqt(i){return FMr(i),i.headers=JT.from(i.headers),i.data=r_t.call(i,i.transformRequest),["post","put","patch"].indexOf(i.method)!==-1&&i.headers.setContentType("application/x-www-form-urlencoded",!1),Xqt.getAdapter(i.adapter||Pze.adapter)(i).then(e(function(a){return FMr(i),a.data=r_t.call(i,i.transformResponse,a),a.headers=JT.from(a.headers),a},"onAdapterResolution"),e(function(a){return n_t(a)||(FMr(i),a&&a.response&&(a.response.data=r_t.call(i,i.transformResponse,a.response),a.response.headers=JT.from(a.response.headers))),Promise.reject(a)},"onAdapterRejection"))}e(Zqt,"dispatchRequest");var eQt={};["object","boolean","number","function","string","symbol"].forEach((i,t)=>{eQt[i]=e(function(a){return typeof a===i||"a"+(t<1?"n ":" ")+i},"validator")});var aLn={};eQt.transitional=e(function(t,n,a){function o(c,f){return"[Axios v"+KIe+"] Transitional option '"+c+"'"+f+(a?". "+a:"")}return e(o,"formatMessage"),(c,f,m)=>{if(t===!1)throw new F1(o(f," has been removed"+(n?" in "+n:"")),F1.ERR_DEPRECATED);return n&&!aLn[f]&&(aLn[f]=!0,console.warn(o(f," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(c,f,m):!0}},"transitional");eQt.spelling=e(function(t){return(n,a)=>(console.warn(`${a} is likely a misspelling of ${t}`),!0)},"spelling");function Sda(i,t,n){if(typeof i!="object")throw new F1("options must be an object",F1.ERR_BAD_OPTION_VALUE);let a=Object.keys(i),o=a.length;for(;o-- >0;){let c=a[o],f=t[c];if(f){let m=i[c],x=m===void 0||f(m,c,i);if(x!==!0)throw new F1("option "+c+" must be "+x,F1.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new F1("Unknown option "+c,F1.ERR_BAD_OPTION)}}e(Sda,"assertOptions");var l_t={assertOptions:Sda,validators:eQt};var z_e=l_t.validators,NMr=class NMr{constructor(t){this.defaults=t,this.interceptors={request:new YLr,response:new YLr}}async request(t,n){try{return await this._request(t,n)}catch(a){if(a instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;let c=o.stack?o.stack.replace(/^.+\n/,""):"";try{a.stack?c&&!String(a.stack).endsWith(c.replace(/^.+\n.+\n/,""))&&(a.stack+=`
1813
- `+c):a.stack=c}catch{}}throw a}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Cce(this.defaults,n);let{transitional:a,paramsSerializer:o,headers:c}=n;a!==void 0&&l_t.assertOptions(a,{silentJSONParsing:z_e.transitional(z_e.boolean),forcedJSONParsing:z_e.transitional(z_e.boolean),clarifyTimeoutError:z_e.transitional(z_e.boolean)},!1),o!=null&&(dp.isFunction(o)?n.paramsSerializer={serialize:o}:l_t.assertOptions(o,{encode:z_e.function,serialize:z_e.function},!0)),l_t.assertOptions(n,{baseUrl:z_e.spelling("baseURL"),withXsrfToken:z_e.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let f=c&&dp.merge(c.common,c[n.method]);c&&dp.forEach(["delete","get","head","post","put","patch","common"],B=>{delete c[B]}),n.headers=JT.concat(f,c);let m=[],x=!0;this.interceptors.request.forEach(e(function($){typeof $.runWhen=="function"&&$.runWhen(n)===!1||(x=x&&$.synchronous,m.unshift($.fulfilled,$.rejected))},"unshiftRequestInterceptors"));let C=[];this.interceptors.response.forEach(e(function($){C.push($.fulfilled,$.rejected)},"pushResponseInterceptors"));let S,k=0,I;if(!x){let B=[Zqt.bind(this),void 0];for(B.unshift.apply(B,m),B.push.apply(B,C),I=B.length,S=Promise.resolve(n);k<I;)S=S.then(B[k++],B[k++]);return S}I=m.length;let M=n;for(k=0;k<I;){let B=m[k++],$=m[k++];try{M=B(M)}catch(W){$.call(this,W);break}}try{S=Zqt.call(this,M)}catch(B){return Promise.reject(B)}for(k=0,I=C.length;k<I;)S=S.then(C[k++],C[k++]);return S}getUri(t){t=Cce(this.defaults,t);let n=WIe(t.baseURL,t.url);return zIe(n,t.params,t.paramsSerializer)}};e(NMr,"Axios");var Rze=NMr;dp.forEach(["delete","get","head","options"],e(function(t){Rze.prototype[t]=function(n,a){return this.request(Cce(a||{},{method:t,url:n,data:(a||{}).data}))}},"forEachMethodNoData"));dp.forEach(["post","put","patch"],e(function(t){function n(a){return e(function(c,f,m){return this.request(Cce(m||{},{method:t,headers:a?{"Content-Type":"multipart/form-data"}:{},url:c,data:f}))},"httpMethod")}e(n,"generateHTTPMethod"),Rze.prototype[t]=n(),Rze.prototype[t+"Form"]=n(!0)},"forEachMethodWithData"));var p_t=Rze;var tQt=class tQt{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(e(function(c){n=c},"promiseExecutor"));let a=this;this.promise.then(o=>{if(!a._listeners)return;let c=a._listeners.length;for(;c-- >0;)a._listeners[c](o);a._listeners=null}),this.promise.then=o=>{let c,f=new Promise(m=>{a.subscribe(m),c=m}).then(o);return f.cancel=e(function(){a.unsubscribe(c)},"reject"),f},t(e(function(c,f,m){a.reason||(a.reason=new hZ(c,f,m),n(a.reason))},"cancel"))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;let n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){let t=new AbortController,n=e(a=>{t.abort(a)},"abort");return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new tQt(e(function(o){t=o},"executor")),cancel:t}}};e(tQt,"CancelToken");var OMr=tQt,sLn=OMr;function BMr(i){return e(function(n){return i.apply(null,n)},"wrap")}e(BMr,"spread");function RMr(i){return dp.isObject(i)&&i.isAxiosError===!0}e(RMr,"isAxiosError");var LMr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(LMr).forEach(([i,t])=>{LMr[t]=i});var oLn=LMr;function uLn(i){let t=new p_t(i),n=X0t(p_t.prototype.request,t);return dp.extend(n,p_t.prototype,t,{allOwnKeys:!0}),dp.extend(n,t,null,{allOwnKeys:!0}),n.create=e(function(o){return uLn(Cce(i,o))},"create"),n}e(uLn,"createInstance");var rF=uLn(Pze);rF.Axios=p_t;rF.CanceledError=hZ;rF.CancelToken=sLn;rF.isCancel=n_t;rF.VERSION=KIe;rF.toFormData=A4e;rF.AxiosError=F1;rF.Cancel=rF.CanceledError;rF.all=e(function(t){return Promise.all(t)},"all");rF.spread=BMr;rF.isAxiosError=RMr;rF.mergeConfig=Cce;rF.AxiosHeaders=JT;rF.formToJSON=i=>zqt(dp.isHTMLForm(i)?new FormData(i):i);rF.getAdapter=Xqt.getAdapter;rF.HttpStatusCode=oLn;rF.default=rF;var rQt=rF;var{Axios:nvs,AxiosError:ivs,CanceledError:avs,isCancel:svs,CancelToken:ovs,VERSION:uvs,all:cvs,Cancel:lvs,isAxiosError:pvs,spread:fvs,toFormData:dvs,AxiosHeaders:_vs,HttpStatusCode:mvs,formToJSON:hvs,getAdapter:gvs,mergeConfig:yvs}=rQt;var Lze=require("fs");var MMr=class MMr{constructor(t,n,a,o,c=!1,f={start:e(m=>{},"start"),complete:e(m=>{},"complete"),error:e((m,x)=>{},"error")}){this.apiBaseURL=t;this.apiKey=n;this.uploadTimeout=a;this.makeGetUploadUrlAPIPath=o;this.isolationMode=c;this.reporter=f}logMemoryUsage(t){let n=process.memoryUsage();console.log(`[TestAssetUploader:${t}] Memory:`,{rss:`${Math.round(n.rss/1024/1024)}MB`,heapUsed:`${Math.round(n.heapUsed/1024/1024)}MB`,heapTotal:`${Math.round(n.heapTotal/1024/1024)}MB`})}async uploadAsset(t){if(this.logMemoryUsage("Before upload"),t.uploadStarted=!0,this.isolationMode){t.lastProgress=Date.now(),t.loadedBytes=0,t.sizeBytes=100,t.response=new Promise(o=>{setTimeout(()=>{t.complete=!0,t.lastProgress=Date.now(),t.loadedBytes=100,o({statusCode:200,ok:!0,body:"OK"})},10)});return}let{path:n}=t.info,a=null;try{let c=(0,Lze.statSync)(n).size;if(t.sizeBytes=c,t.loadedBytes=0,t.lastProgress=Date.now(),this.reporter.start(n),await this.getSignedURLForUpload(t),!t.uploadURL){t.error=!0;return}a=(0,Lze.createReadStream)(n);let f=await rQt.put(t.uploadURL,a,{headers:{"Content-Type":L7n[t.info.type]??"",Connection:"close"},maxBodyLength:1/0,maxContentLength:1/0,onUploadProgress:e(m=>{t.lastProgress=m.loaded>t.loadedBytes?Date.now():t.lastProgress,t.loadedBytes=m.loaded,t.sizeBytes=m.total??c},"onUploadProgress"),timeout:this.uploadTimeout??void 0,httpAgent:!1,httpsAgent:!1});if(f.status!==200)throw new Error(`Upload failed with status ${f.status}`);this.reporter.complete(n),t.complete=!0,t.response={status:f.status,statusText:f.statusText,headers:f.headers},console.log("response.data size",JSON.stringify(f.data).length),t.removeAfterUpload&&(0,Lze.unlinkSync)(n),this.logMemoryUsage("After successful upload")}catch(o){this.reporter.error(n,o),t.error=!0,this.logMemoryUsage("After failed upload")}finally{if(a)try{a.destroy&&a.destroy(),a.removeAllListeners()}catch(o){console.warn("Stream cleanup error:",o)}finally{a=null}this.logMemoryUsage("After cleanup")}}async getSignedURLForUpload(t){try{let n=JSON.stringify(t.info),a=`${this.apiBaseURL}/${this.makeGetUploadUrlAPIPath(t)}`,o={Accept:"application/json","Content-Type":"application/json",ChecksumAppCode:this.apiKey},c=await fetch(a,{method:"POST",headers:o,body:n}),{url:f}=await c.json();t.uploadURL=f}catch(n){return this.reporter.error(t.info.path,"Error getting signed URL for artifact"+String(n)),null}}};e(MMr,"TestAssetUploader");var nQt=MMr;var I4e=require("fs"),tWe=require("path");var zT=Ad(VT());var N1=Ad(VT());var jMr={toBeAttached:[0],toBeChecked:[0],toBeDisabled:[0],toBeEditable:[0],toBeEmpty:[0],toBeEnabled:[0],toBeFocused:[0],toBeHidden:[0],toBeInViewport:[0],toBeVisible:[0],toContainText:[1],toHaveAccessibleDescription:[1],toHaveAccessibleName:[1],toHaveAttribute:[1,2],toHaveClass:[1],toHaveCount:[1],toHaveCSS:[1,2],toHaveId:[1],toHaveJSProperty:[1,2],toHaveRole:[1],toHaveScreenshot:[0,1],toHaveText:[1],toHaveValue:[1],toHaveValues:[1],toMatchAriaSnapshot:[0],toHaveTitle:[1],toHaveURL:[1]};var W_e=require("crypto");var _VtgTestMirror=class _VtgTestMirror{constructor(i,t,n,a,o,c){this.title=i;this.internalTestId=t;this.storyId=n;this.sourceFile=a;this.testBody=o;this.hooks=c;this.stepsOutput=[]}translateStatementsToSteps(i={}){let n=this.sortStatementsAndExpressionByExecutionOrder().map(a=>this.getStep(a));return i.mergeCustomCodeSteps&&(n=this.mergeCustomCodeSteps(n)),n}translateStatementsToActions(i={}){let t=this.translateStatementsToSteps(i),n=e(a=>!!a.eventCode,"isAction");return t.reduce((a,o)=>{if(n(o))a.push(o);else{let c=a[a.length-1];c.assertions??(c.assertions=[]),c.assertions.push({...o,actionId:c.id})}return a},[])}mergeCustomCodeSteps(i){let t=e(n=>(n==null?void 0:n.eventCode)==="custom_code","isCustomCode");return i.reduce((n,a)=>{let o=n[n.length-1];return t(a)&&t(o)&&a.thought===o.thought?(o.fillValue+=`
1813
+ `+c):a.stack=c}catch{}}throw a}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Cce(this.defaults,n);let{transitional:a,paramsSerializer:o,headers:c}=n;a!==void 0&&l_t.assertOptions(a,{silentJSONParsing:z_e.transitional(z_e.boolean),forcedJSONParsing:z_e.transitional(z_e.boolean),clarifyTimeoutError:z_e.transitional(z_e.boolean)},!1),o!=null&&(dp.isFunction(o)?n.paramsSerializer={serialize:o}:l_t.assertOptions(o,{encode:z_e.function,serialize:z_e.function},!0)),l_t.assertOptions(n,{baseUrl:z_e.spelling("baseURL"),withXsrfToken:z_e.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let f=c&&dp.merge(c.common,c[n.method]);c&&dp.forEach(["delete","get","head","post","put","patch","common"],B=>{delete c[B]}),n.headers=JT.concat(f,c);let m=[],x=!0;this.interceptors.request.forEach(e(function($){typeof $.runWhen=="function"&&$.runWhen(n)===!1||(x=x&&$.synchronous,m.unshift($.fulfilled,$.rejected))},"unshiftRequestInterceptors"));let C=[];this.interceptors.response.forEach(e(function($){C.push($.fulfilled,$.rejected)},"pushResponseInterceptors"));let S,k=0,I;if(!x){let B=[Zqt.bind(this),void 0];for(B.unshift.apply(B,m),B.push.apply(B,C),I=B.length,S=Promise.resolve(n);k<I;)S=S.then(B[k++],B[k++]);return S}I=m.length;let M=n;for(k=0;k<I;){let B=m[k++],$=m[k++];try{M=B(M)}catch(W){$.call(this,W);break}}try{S=Zqt.call(this,M)}catch(B){return Promise.reject(B)}for(k=0,I=C.length;k<I;)S=S.then(C[k++],C[k++]);return S}getUri(t){t=Cce(this.defaults,t);let n=WIe(t.baseURL,t.url);return zIe(n,t.params,t.paramsSerializer)}};e(NMr,"Axios");var Rze=NMr;dp.forEach(["delete","get","head","options"],e(function(t){Rze.prototype[t]=function(n,a){return this.request(Cce(a||{},{method:t,url:n,data:(a||{}).data}))}},"forEachMethodNoData"));dp.forEach(["post","put","patch"],e(function(t){function n(a){return e(function(c,f,m){return this.request(Cce(m||{},{method:t,headers:a?{"Content-Type":"multipart/form-data"}:{},url:c,data:f}))},"httpMethod")}e(n,"generateHTTPMethod"),Rze.prototype[t]=n(),Rze.prototype[t+"Form"]=n(!0)},"forEachMethodWithData"));var p_t=Rze;var tQt=class tQt{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(e(function(c){n=c},"promiseExecutor"));let a=this;this.promise.then(o=>{if(!a._listeners)return;let c=a._listeners.length;for(;c-- >0;)a._listeners[c](o);a._listeners=null}),this.promise.then=o=>{let c,f=new Promise(m=>{a.subscribe(m),c=m}).then(o);return f.cancel=e(function(){a.unsubscribe(c)},"reject"),f},t(e(function(c,f,m){a.reason||(a.reason=new hZ(c,f,m),n(a.reason))},"cancel"))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;let n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){let t=new AbortController,n=e(a=>{t.abort(a)},"abort");return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new tQt(e(function(o){t=o},"executor")),cancel:t}}};e(tQt,"CancelToken");var OMr=tQt,sLn=OMr;function BMr(i){return e(function(n){return i.apply(null,n)},"wrap")}e(BMr,"spread");function RMr(i){return dp.isObject(i)&&i.isAxiosError===!0}e(RMr,"isAxiosError");var LMr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(LMr).forEach(([i,t])=>{LMr[t]=i});var oLn=LMr;function uLn(i){let t=new p_t(i),n=X0t(p_t.prototype.request,t);return dp.extend(n,p_t.prototype,t,{allOwnKeys:!0}),dp.extend(n,t,null,{allOwnKeys:!0}),n.create=e(function(o){return uLn(Cce(i,o))},"create"),n}e(uLn,"createInstance");var rF=uLn(Pze);rF.Axios=p_t;rF.CanceledError=hZ;rF.CancelToken=sLn;rF.isCancel=n_t;rF.VERSION=KIe;rF.toFormData=A4e;rF.AxiosError=F1;rF.Cancel=rF.CanceledError;rF.all=e(function(t){return Promise.all(t)},"all");rF.spread=BMr;rF.isAxiosError=RMr;rF.mergeConfig=Cce;rF.AxiosHeaders=JT;rF.formToJSON=i=>zqt(dp.isHTMLForm(i)?new FormData(i):i);rF.getAdapter=Xqt.getAdapter;rF.HttpStatusCode=oLn;rF.default=rF;var rQt=rF;var{Axios:nvs,AxiosError:ivs,CanceledError:avs,isCancel:svs,CancelToken:ovs,VERSION:uvs,all:cvs,Cancel:lvs,isAxiosError:pvs,spread:fvs,toFormData:dvs,AxiosHeaders:_vs,HttpStatusCode:mvs,formToJSON:hvs,getAdapter:gvs,mergeConfig:yvs}=rQt;var Lze=require("fs");var MMr=class MMr{constructor(t,n,a,o,c=!1,f={start:e(m=>{},"start"),complete:e(m=>{},"complete"),error:e((m,x)=>{},"error")}){this.apiBaseURL=t;this.apiKey=n;this.uploadTimeout=a;this.makeGetUploadUrlAPIPath=o;this.isolationMode=c;this.reporter=f}async uploadAsset(t){if(t.uploadStarted=!0,this.isolationMode){t.lastProgress=Date.now(),t.loadedBytes=0,t.sizeBytes=100,t.response=new Promise(o=>{setTimeout(()=>{t.complete=!0,t.lastProgress=Date.now(),t.loadedBytes=100,o({statusCode:200,ok:!0,body:"OK"})},10)});return}let{path:n}=t.info,a=null;try{let c=(0,Lze.statSync)(n).size;if(t.sizeBytes=c,t.loadedBytes=0,t.lastProgress=Date.now(),this.reporter.start(n),await this.getSignedURLForUpload(t),!t.uploadURL){t.error=!0;return}a=(0,Lze.createReadStream)(n);let f=await rQt.put(t.uploadURL,a,{headers:{"Content-Type":L7n[t.info.type]??"",Connection:"close"},maxBodyLength:1/0,maxContentLength:1/0,onUploadProgress:e(m=>{t.lastProgress=m.loaded>t.loadedBytes?Date.now():t.lastProgress,t.loadedBytes=m.loaded,t.sizeBytes=m.total??c},"onUploadProgress"),timeout:this.uploadTimeout??void 0,httpAgent:!1,httpsAgent:!1});if(f.status!==200)throw new Error(`Upload failed with status ${f.status}`);this.reporter.complete(n),t.complete=!0,t.response=f.data,t.removeAfterUpload&&(0,Lze.unlinkSync)(n)}catch(o){this.reporter.error(n,o),t.error=!0}finally{if(a)try{typeof a.destroy=="function"?a.destroy():typeof a.close=="function"&&a.close()}catch{}a=null}}async getSignedURLForUpload(t){try{let n=JSON.stringify(t.info),a=`${this.apiBaseURL}/${this.makeGetUploadUrlAPIPath(t)}`,o={Accept:"application/json","Content-Type":"application/json",ChecksumAppCode:this.apiKey},c=await fetch(a,{method:"POST",headers:o,body:n}),{url:f}=await c.json();t.uploadURL=f}catch(n){return this.reporter.error(t.info.path,"Error getting signed URL for artifact"+String(n)),null}}};e(MMr,"TestAssetUploader");var nQt=MMr;var I4e=require("fs"),tWe=require("path");var zT=Ad(VT());var N1=Ad(VT());var jMr={toBeAttached:[0],toBeChecked:[0],toBeDisabled:[0],toBeEditable:[0],toBeEmpty:[0],toBeEnabled:[0],toBeFocused:[0],toBeHidden:[0],toBeInViewport:[0],toBeVisible:[0],toContainText:[1],toHaveAccessibleDescription:[1],toHaveAccessibleName:[1],toHaveAttribute:[1,2],toHaveClass:[1],toHaveCount:[1],toHaveCSS:[1,2],toHaveId:[1],toHaveJSProperty:[1,2],toHaveRole:[1],toHaveScreenshot:[0,1],toHaveText:[1],toHaveValue:[1],toHaveValues:[1],toMatchAriaSnapshot:[0],toHaveTitle:[1],toHaveURL:[1]};var W_e=require("crypto");var _VtgTestMirror=class _VtgTestMirror{constructor(i,t,n,a,o,c){this.title=i;this.internalTestId=t;this.storyId=n;this.sourceFile=a;this.testBody=o;this.hooks=c;this.stepsOutput=[]}translateStatementsToSteps(i={}){let n=this.sortStatementsAndExpressionByExecutionOrder().map(a=>this.getStep(a));return i.mergeCustomCodeSteps&&(n=this.mergeCustomCodeSteps(n)),n}translateStatementsToActions(i={}){let t=this.translateStatementsToSteps(i),n=e(a=>!!a.eventCode,"isAction");return t.reduce((a,o)=>{if(n(o))a.push(o);else{let c=a[a.length-1];c.assertions??(c.assertions=[]),c.assertions.push({...o,actionId:c.id})}return a},[])}mergeCustomCodeSteps(i){let t=e(n=>(n==null?void 0:n.eventCode)==="custom_code","isCustomCode");return i.reduce((n,a)=>{let o=n[n.length-1];return t(a)&&t(o)&&a.thought===o.thought?(o.fillValue+=`
1814
1814
  `+a.fillValue,n):[...n,a]},[])}sortStatementsAndExpressionByExecutionOrder(i=!1){if(!i)return N1.isBlock(this.testBody)?[...this.testBody.statements]:[this.testBody];let t=e(c=>this.hooks.filter(f=>f.type===c),"getHooksByType"),n=e(c=>{let f=c.reduce((m,x)=>{let C=m.get(x.nestedLevel)||[];return m.set(x.nestedLevel,[...C,x]),m},new Map);return Array.from(f.values())},"groupHooksByNestedLevel"),a=e(c=>n(c).reverse().flat(),"getBodiesByReversedNestedLevel");return[...t("beforeAll"),...t("beforeEach"),{body:this.testBody},...a(t("afterEach")),...a(t("afterAll"))].map(c=>c.body).map(c=>N1.isBlock(c)?[...c.statements]:[c]).flat()}getStep(i,{insideImplicitChecksumAIPromise:t}={}){let n={eventCode:"custom_code",fillValue:this.getText(i),id:(0,W_e.randomUUID)(),codeContext:{frameTargetName:null},source:"manual",...t?{isChecksumAiWithDirectExpression:!0}:{}};return N1.isExpressionStatement(i)&&(i=i.expression),N1.isBinaryExpression(i)?this.getSwitchTabAction(i)??n:N1.isAwaitExpression(i)&&N1.isCallExpression(i.expression)?this.getAwaitCallExpressionType(i.expression)??n:t&&N1.isCallExpression(i)?{...this.getAwaitCallExpressionType(i)??n,isChecksumAiWithDirectExpression:!0}:n}getText(i,{keepTextNodeQuotationMarks:t}={}){return i?!t&&"text"in i?i.text.toString():i.getText(this.sourceFile):""}getSwitchTabAction(i){if(this.getText(i.left)!=="page"||!N1.isAwaitExpression(i.right)||!N1.isCallExpression(i.right.expression))return;let t=i.right.expression;if(!N1.isCallExpression(t)||!N1.isPropertyAccessExpression(t.expression)||!N1.isIdentifier(t.expression.name)||t.expression.name.text!=="getPage"||t.arguments.length!==1)return;let n=this.getText(t.expression.expression),a=this.getText(t.arguments[0]);if(/^\d+$/.test(a))return{id:(0,W_e.randomUUID)(),source:"manual",eventCode:"switch_tab",switchToTab:{index:parseInt(a,10),id:""},codeContext:{frameTargetName:n&&n!=="page"?n:null}}}getAwaitCallExpressionType(i){if(N1.isIdentifier(i.expression))switch(this.getText(i.expression)){case"login":return this.getLoginAction(i);case"checksumAI":return this.translateChecksumAIToAction(i);default:return}return N1.isPropertyAccessExpression(i.expression)?this.getText(i.expression)==="test.step"?this.getTestStepAction(i):this.getText(i.expression)==="checksumAI.withDialog"?this.translateChecksumAIToAction(i):/^(expect|expect\.soft|expect\[.soft\]\.checksumAI)\(/.test(this.getText(i.expression))?this.processPossibleAwaitExpect(i):this.getAction(i):void 0}getTestStepAction(i){let[t,n]=i.arguments,a=this.getText(t);if(!N1.isArrowFunction(n)&&!N1.isFunctionExpression(n))return;let o=n.body,c=N1.isExpression(o)?this.getText(o):o.statements.map(f=>this.getText(f)).join(`
1815
1815
  `);return{id:(0,W_e.randomUUID)(),source:"manual",eventCode:"custom_code",codeContext:{frameTargetName:null},thought:a,fillValue:c}}processPropertyAccessExpression(i){let t="",n=i;for(;N1.isPropertyAccessExpression(n);n=n.expression)t=`${this.getText(n.name)}${t?`.${t}`:""}`;return{propertyAccess:t,propertyAccessCalleeNode:n}}processPossibleAwaitExpect(i){let t,n,{propertyAccess:a,propertyAccessCalleeNode:o}=this.processPropertyAccessExpression(i.expression);if(!N1.isCallExpression(o)||this.isUnknownMatcher(a))return;if(["expect","expect.soft"].includes(this.getText(o.expression)))t=o;else if(N1.isPropertyAccessExpression(o.expression)&&N1.isCallExpression(o.expression.expression)&&this.getText(o.expression.name)==="checksumAI"&&["expect","expect.soft"].includes(this.getText(o.expression.expression.expression)))n=this.getText(o.arguments[0]),t=o.expression.expression;else return;let{expression:c,arguments:f}=t,m=this.getText(c)==="expect.soft",{locator:x,codeContext:C}=this.processLocatorCallExpression(f[0]);if(n??(n=f[1]?this.getText(f[1]):void 0),!this.assertionMatcherHasValidArgumentsCount(i.arguments,a))return;let{matcher:S,matcherOptions:k}=this.resolveAssertionMatcherAndMatcherOptions(i,a);return{id:(0,W_e.randomUUID)(),locator:x,matcher:S,...n!==void 0?{thought:n}:{},isSoft:m,source:"manual",actionId:"",selected:!0,matcherOptions:k,codeContext:C}}resolveAssertionMatcherAndMatcherOptions(i,t){let{argumentNodes:n,optionsArgumentNode:a}=this.resolveAssertionsArgumentNodesAndOptionsNode(i,t);return{matcher:this.createAssertionMatcher(t,n),matcherOptions:a?this.getText(a,{keepTextNodeQuotationMarks:!0}):void 0}}isUnknownMatcher(i){let t=i.replace(/^not\./,"");return!jMr[t]}getPossibleOptionsIndicesByMatcher(i){let t=i.replace(/^not\./,"");return jMr[t]??[]}assertionMatcherHasValidArgumentsCount(i,t){return this.getPossibleOptionsIndicesByMatcher(t).flatMap(o=>[o,o+1]).includes(i.length)}resolveAssertionsArgumentNodesAndOptionsNode(i,t){let n=[...i.arguments],a,o=this.getPossibleOptionsIndicesByMatcher(t);if(o.length===0)return{argumentNodes:n,optionsArgumentNode:void 0};if(o.length===1){let c=o[0];c<n.length&&(a=n[c],n=n.filter((m,x)=>x!==c))}if(o.length===2){let c=Math.max(...o);c<n.length?(a=n[c],n=n.filter((m,x)=>x!==c)):Math.min(...o)<n.length&&(c=Math.min(...o),N1.isObjectLiteralExpression(n[c])&&(a=n[c],n=n.filter((m,x)=>x!==c)))}return{argumentNodes:n,optionsArgumentNode:a}}createAssertionMatcher(i,t){let n=t.map(a=>this.getText(a,{keepTextNodeQuotationMarks:!0})).join(", ");return`${i}(${n})`}processLocatorCallExpression(i){var S;let t=this.getText(i),n=[...Object.values(N_e),"compoundSelection"],o=new RegExp(`\\.(${n.join("|")})\\s*\\(`,"g").exec(t),c=o?{locator:o[1],index:o.index}:null,f,m;c?(f=t.slice(c.index+1),m=t.slice(0,c.index).replace(/^checksumSelector\("([^)]+)"\)\.?/,"")):(f="",m=t);let x=/\.checksumAI\("([^)]+)"\)/,C;return m.match(x)&&(C=(S=m.match(x))==null?void 0:S[1],m=m.replace(x,"")),{locator:f,...C?{thought:C}:{},codeContext:{frameTargetName:m!=="page"?m:null}}}getLoginAction(i){if(!this.validateActionArguments("login",i.arguments))return;let t=this.getText(i.arguments[0]),n={frameTargetName:t!=="page"?t:null},a=G$e.login,o={eventCode:"login",isInitialAction:!0,id:(0,W_e.randomUUID)(),source:"manual",codeContext:n},c=i.arguments[a],f={role:void 0,environment:void 0};if(!c)return{...o,login:f};if(!e(C=>N1.isObjectLiteralExpression(C)?C.properties.every(S=>{if(!N1.isPropertyAssignment(S))return!1;let{name:k,initializer:I}=S;return N1.isIdentifier(k)?["role","environment"].includes(k.text):!1}):!1,"isSupportedLoginOptionsNode")(c)){let C=this.getText(c);return{...o,login:f,...C?{actionOptions:C}:{}}}let x={...f,...this.extractValue(c)};return{...o,login:x}}translateChecksumAIToAction(i){let[t,n]=i.arguments;if(!N1.isArrowFunction(n)&&!N1.isFunctionExpression(n))return;let a;if(N1.isExpression(n.body))a=this.getStep(n.body,{insideImplicitChecksumAIPromise:!0});else if(n.body.statements.length===1){let c=n.body.statements[0];a=this.getStep(c)}else n.body.statements.length===2&&(a=this.getActionThenTypeAction(n.body));a??(a={eventCode:"custom_code",fillValue:this.getText(n.body).replace(/^\s*\{\s*/,"").replace(/\s*\}\s*$/,""),id:(0,W_e.randomUUID)(),source:"manual",codeContext:{frameTargetName:null}});let o=this.getText(t);return{...a,thought:o}}getActionThenTypeAction(i){let[t,n]=i.statements,a=e($=>!N1.isExpressionStatement($)||!N1.isAwaitExpression($.expression)||!N1.isCallExpression($.expression.expression)?{}:this.getLocatorAndPageMethodNameAndArgs($.expression.expression),"getStatementLocatorAndPageMethodName"),{locator:o,pageMethodName:c,args:f,codeContext:m}=a(t),{locator:x,pageMethodName:C,args:S,codeContext:k}=a(n),M={click:"click_and_type",clear:"clear_and_type"}[c],B=m==null?void 0:m.frameTargetName;if(o&&M&&Array.isArray(f)&&f.length===0&&Array.isArray(S)&&S.length===1&&C==="pressSequentially"&&o===x&&B===(k==null?void 0:k.frameTargetName))return{eventCode:M,locator:o,id:(0,W_e.randomUUID)(),source:"manual",fillValue:S[0],codeContext:{frameTargetName:B&&B!=="page"?B:null}}}getDialogAction(i){let t,n=e(S=>Object.values(iDr).includes(S),"isNativeDialogType");if(!N1.isPropertyAccessExpression(i.expression)||!N1.isCallExpression(i.expression.expression)||!N1.isPropertyAccessExpression(i.expression.expression.expression))return;let a=i.expression.expression.expression.expression;t=this.getText(a);let o=i.arguments[0];if(!o||!N1.isArrowFunction(o)||!N1.isBlock(o.body)||!N1.isExpressionStatement(o.body.statements[0])||!N1.isAwaitExpression(o.body.statements[0].expression))return;let c=o.body.statements[0].expression.expression;if(!N1.isCallExpression(c)||!N1.isPropertyAccessExpression(c.expression))return;let m={accept:"native_accept",dismiss:"native_dismiss"}[this.getText(c.expression.name)];if(!m||c.arguments.length>(m==="native_accept"?1:0))return;let x=this.getText(c.arguments[0]),C=this.getText(c.expression.expression);if(n(C))return{id:(0,W_e.randomUUID)(),source:"manual",eventCode:m,nativeDialog:{dialogType:C,dialogResult:x},codeContext:{frameTargetName:t!=="page"?t:null}}}getLocatorAndPageMethodNameAndArgs(i){if(!N1.isPropertyAccessExpression(i.expression))return{};let t=i.expression.expression,n=this.getText(i.expression.name);n==="press"&&N1.isPropertyAccessExpression(t)&&this.getText(t.name)==="keyboard"&&(t=t.expression,n="keyboard.press");let{locator:a,thought:o,codeContext:c}=this.processLocatorCallExpression(t),f=i.arguments.map(m=>this.extractValue(m));return{locator:a,pageMethodName:n,args:f,thought:o,codeContext:c}}getAction(i){if(!N1.isPropertyAccessExpression(i.expression))return;if(/\.waitForDialog\(\)\s*\.then/.test(this.getText(i.expression)))return this.getDialogAction(i);let{locator:n,pageMethodName:a,args:o,thought:c,codeContext:f}=this.getLocatorAndPageMethodNameAndArgs(i),m=Ykr[a];if(!m||!this.validateActionArguments(m,i.arguments))return;let x=i.arguments,C=this.getActionParams(m,x,o,f);return{source:"manual",id:(0,W_e.randomUUID)(),...n?{locator:n}:{},...c?{thought:c}:{},eventCode:m,...C,codeContext:f}}validateActionArguments(i,t){if(!U7n[i].includes(t.length))return!1;let a=G$e[i];return a!==-1&&t[a]&&!N1.isObjectLiteralExpression(t[a])?!1:i==="upload_files"?N1.isCallExpression(t[0])&&this.getText(t[0].expression)==="page.resolveAssetsFolder"&&t[0].arguments.length===1&&N1.isArrayLiteralExpression(t[0].arguments[0]):!0}getActionParams(i,t,n,a){let o=G$e[i],c;switch(o<n.length&&t[o]&&(c=this.getText(t[o])),i){case"input":case"selectoption":case"keystroke":case"navigation":return{fillValue:n[0],...c?{actionOptions:c}:{}};case"wait":return{codeContext:a,fillValue:n[0].toString(),...c?{actionOptions:c}:{}};case"drag_and_drop":{let f=this.getText(t[0]),m=(a==null?void 0:a.frameTargetName)??"page",x=new RegExp(`^${m}.`);return{codeContext:a,dropTarget:{locator:f.replace(x,"")},...c?{actionOptions:c}:{}}}case"upload_files":return{codeContext:a,files:t[0].arguments[0].elements.map(f=>this.extractValue(f)),...c?{actionOptions:c}:{}};case"canvas_click":{let[f,m]=n;return{codeContext:a,canvas:{canvasText:f,...m!==void 0?{rectSizeIndex:m}:{}}}}case"logout_and_login":{let f=this.getText(t[0]);return{codeContext:a,userRole:f,isInitialAction:!1}}default:return{codeContext:a,...c?{actionOptions:c}:{}}}}getObjectLiteralValue(i){return!i||!N1.isObjectLiteralExpression(i)?{}:i.properties.reduce((t,n)=>{if(N1.isPropertyAssignment(n)){let{name:a,initializer:o}=n,c=this.getText(a),f=this.extractValue(o);t[c]=f}return t},{})}extractValue(node){var i;if(node&&!(!N1.isExpression(node)&&!N1.isLiteralTypeLiteral(node))){if(N1.isStringLiteral(node)||N1.isNoSubstitutionTemplateLiteral(node))return this.getText(node);if(N1.isLiteralExpression(node)||N1.isLiteralTypeLiteral(node))return eval(this.getText(node));if(N1.isObjectLiteralExpression(node))return this.getObjectLiteralValue(node);if(N1.isArrayLiteralExpression(node))return node.elements.map(t=>this.extractValue(t));if(N1.isTemplateExpression(node)){let t=this.getText(node);return((i=this.getText(node).match(/^\`(.+)\`$/))==null?void 0:i[1])??t}else return"${"+this.getText(node)+"}"}}};e(_VtgTestMirror,"VtgTestMirror");var Mze=_VtgTestMirror;var u5=Ad(VT()),wjn=Ad(Ejn());var E_t=require("fs"),rPe=Ad(require("path"));var Cjn=`require("${process.env.CHECKSUM_RUNTIME_DEV_MODE==="true"?`${process.cwd()}/src/init.ts`:"@checksum-ai/runtime"}");`,Abs=`const { checksumHotRequire } = ${Cjn}`,Ebs=`const {
1816
1816
  init,